Software assisted control is a great feature to implement - however, like any system, it has its potential pitfalls. This article will discuss the use of software assisted control in FIRST robots, and present a real-world example of its use.
The X-31 Project
NASA provides a very good example of software assisted control systems through the X-31 experimental fighter. This fighter used thrust-vectoring technology, which allowed it to travel in a direction other than the way the nose was pointing, leading to a highly maneuverable aircraft. The trade-off for maneuverability, however, is controllability. The X-31 was nearly impossible to control manually; it literally required to use of computers to stay in the air. The software was programmed to use sensors on board the aircraft to adjust the X-31's multitude of control surfaces to fly the airplane in the direction chosen by the pilot. The X-31 project showed what was possible when computer and pilot were used together to create a smooth interaction between the machine and its operational environment.
However, the project was interrupted when the X-31 crashed during a test flight. The pilot lost control of the craft and ejected - and the multi-million dollar aircraft fell to earth, trying unsuccessfully to right itself the entire way. The cause: during maintenance, one sensor hadn't been plugged back in, and there was no way to turn off the software assist and glide the plane down. In short, with no override, the safety of the aircraft was entirely decided by the computer, which in turn made its decisions based on sensor input - and when one sensor started returning erroneous data, the entire system unraveled.
Software Assisted Control
Applications in Remotely Controlled Robots
The concept of helping the driver through on board algorithms translates quite well in the realm of robotics. During a competition such as FIRST, the driver has to worry about his/her immediate surroundings, and what it happening each instant, in addition to instructions given by the coach. Each calculation or consideration that pertains to driving is something extra the driver must worry about as he/she is operating it. Therefore, the more that can be handled on board the machine, the simpler the control of the robot can be made, and the less the driver has to consider during operation. These systems can range from simply having driver oriented control implemented to fully autonomous targeting and delivery systems.
There are several specific applications of software assisted control that readily come to mind. In a holonomic drive system, the joystick can be simplified to controlling the robot's speed and direction based on its magnitude and orientation. Using a gyro, a robot can also react based on the driver's frame of reference no matter which way it is pointed. In 2006, the turret on Team 190's robot acquired and shot at the high goal automatically, and accounted for the robot's motion when aiming. Software can allow numerous simplifications in control that allow the operator to focus on their task.
The Decision to Implement
The advantages of a software assisted system are readily brought to mind, but other considerations need to be taken into account before deciding to implement such a feature. One consideration is whether an override is required. In the case of a system like driver oriented control, it is probably not necessary. However, a system like an automated turret could require a human to take over the judgment calls, since all situations cannot be prepared for - and if the turret doesn't work, the robot isn't going to score any points. The disable switch at competitions is a failsafe should anything go wrong with a robot and require it to be deactivated before an unsafe situation occurs.
In your car, there is a speedometer, mirrors, and various lights on the dashboard that indicated things like whether your lights or turn signal is on. Just as these feedback systems increase the ease with which you drive, various feedback systems can be used to decrease the difficulty of operating a robot. Systems implemented in the past have included light-up goggles, customized output to the operator interface indicators, and lights on the robot itself. Feedback significantly helps in the decisions an operator must make on the field. The other side of the coin, however, is that too much feedback can be a distraction. The driver doesn't need 20 little blinking lights in front of him/her to be a distraction as he/she is trying to score a game piece in tandem with their fellow operator. The key to a good feedback system is to recognize the critical data and create an effective method to relay that information to the operator through both software and hardware.