\section{Shared Control Techniques}\label{exampletechniques}

Obstacle avoidance is the major challenge in autonomous and semi-autonomous control of wheelchairs. Several methodologies have been developed to detect and avoid obstacles. Vector Field Histogram (VFH) and Potential Field Methods (PFM) are two popular obstacle avoidance techniques used by many smart wheelchair developers. Petry et al (2010) have summarised the advantages and drawbacks of these methods. VFH was originally designed for autonomous robots and have to be suitably modified for use in wheelchairs. The success of the VFH and PFM implementations are dependent on the accuracy of the sensor readings. They are also sensitive to local traps which may be overcome using global path planners. Oscillations in the wheelchair motion are commonly seen in PFM based systems, but not in those using VFH. In this section, examples of shared control approaches based on these concepts are first discussed, before moving on to other methodologies.

NavChair Assistive Wheelchair Navigation System (Simpson et al, 1998) provides a number of modes performing different behaviours and imparting different levels of autonomy to the user. NavChair is fitted with 12 ultrasonic sensors on the front of the wheelchair on a lap-tray. The obstacle avoidance mode provides the controller with the greatest level of autonomy. Minimum Vector Field Histogram (MVFH) and Vector Force Field (VFF) methods are used to implement general obstacle avoidance. MVFH is an improvised version of the VFH. It takes the rectangular shape of the wheelchair into consideration and also prevents jerky movements of the wheelchair by appropriate speed control. In this method, a map, known as certainty grid, is constructed of the possible locations of obstacles in the vicinity of the wheelchair, using data from the sonar sensors and wheel motion sensors. The certainty grid is combined with range data from the sensors to determine obstacle density in a particular direction. The direction requested by the driver is used as a weighting function to determine the path of least obstacle density in the desired direction. The speed of the wheelchair is altered depending on its proximity to obstacles in the path selected. In addition to the MVFH, NavChair uses VFF, a Potential Field Method, to determine the final direction of the wheelchair. This is based on the concept of imaginary repulsive forces exerted by obstacles on the wheelchair. Collisions are avoided by changing the direction of travel to encounter least number of obstacles, deduced from the magnitude of the repulsive forces. The obstacle avoidance behaviour maintains the wheelchair at the largest distance from obstacles compared to the other modes. The speed of travel is also the least in this mode since the wheelchair is slowed down by impending obstacles. The door passage mode imparts more control to the user and allows the wheelchair to move closer to obstacles. The MVFH method is used to achieve this behaviour by weighting the user input lesser than that done in the case of general obstacle avoidance. The automatic wall following mode uses the side sonar sensors to follow a wall. MVFH and VFF are inactive in this mode. Obstacles are detected by the front sonar sensors and those on the other side as that facing the wall. Mode switching is automatically done in NavChair.

The navigation of the Hephaestus Smart Wheelchair System (Simpson et al, 2002) is based on that of NavChair. The Hephaestus system was designed for commercialisation and can be attached to a standard power wheelchair to provide navigation assistance. The sensor arrangement is similar, though attaining a wider coverage area by positioning 13 sensors at the front on the lap-tray and 3 at the rear on the battery tray. Additionally, bump sensors have been added to bring the wheelchair to a sudden stop if they are activated by contact with an obstacle.

Sharioto, the intelligent wheelchair developed at KU Leuven (Nuttin et al, 2002) uses a modified VFH method for obstacle avoidance. It also provides other assistive manoeuvres such as collision avoidance and docking at a table. It has been equipped with 20 ultrasound sensors, 9 infra-red sensors, a \textquoteleft{lidar}' (infra-red scanner) sensor and a gyroscope for estimating rotational velocity. In obstacle avoidance mode, a polar histogram is constructed using sensor data and current state of the wheelchair. This information is combined with the estimated user intent to determine a safe heading direction as required by the user. Collision avoidance algorithm computes the time to collision using current velocity of the wheelchair and slows down the wheelchair if a risk of collision occurs. If the user continues to point in the direction of the obstacle, collision avoidance will be deactivated. Docking is achieved by combining the estimated user intent with information about the environment, such as the tabletop, for docking at a table. Sharioto also has a simulated version.

A BCI controlled smart wheelchair providing adaptive assistance has been developed by integrating the IDIAP BCI with Sharioto (Philips et al, 2007). The focus of the research has been on activating assisting behaviours such as obstacle avoidance, collision avoidance and orientation recovery as and when required by the user, thus adapting to his or her needs. The shared control system receives the user input as estimated probability distribution values for three commands, Forward, Left and Right, from the BCI system. The command with the highest probability is identified as the user's intention and is converted into translational and rotational velocity values, which are combined with the current motor signal values to produce new wheelchair motor signals (Millán, 2009). Simultaneously, the shared control system receives an \textquoteleft{appropriateness level}' for three assisting behaviours, namely, collision avoidance, obstacle avoidance and orientation recovery. These levels are calculated based on information of the environment obtained with the laser scanner. A winner-takes-all algorithm is used to select the assisting behaviour with the  highest appropriateness level, which then modifies the motor signal obtained using the user input to create the final motor signal. Collision avoidance brings the wheelchair to a halt when it is within 0.4m from an obstacle. Obstacle avoidance uses a higher threshold of 0.5m. The orientation recovery behaviour adjusts the direction of the wheelchair if it is misaligned by more than 105°. Tests conducted in a simulated environment showed that accurate BCI performance was not necessary for efficient driving, provided that crucial situations are handled by a large number of accurate commands. The current shared control implementation can be made more adaptive by determining the activation thresholds based on the driving skills of the user.

Petry et al (2010) use the concept of PFM for performing obstacle avoidance in the IntellWheels smart wheelchair. The sensors used include two encoders, 8 sonar sensors and 8 infra-red sensors. Each sonar sensor reading corresponds to a virtual repulsive force acting on the wheelchair. The destination exerts an attractive force that is directly proportional to current user input. The resultant force is the sum of all the repulsive forces and the attractive force. To maintain user autonomy until facing a risk of collision, the repulsive forces are taken into consideration only when the wheelchair crosses a certain threshold of safety, which is determined using information about the distance to obstacles and speed of the wheelchair. The safety range designed also helps in eliminating oscillations, one of the previously mentioned limitations of PFM. Their approach does not require localisation and hence there are no dead reckoning errors. The obstacle avoidance algorithm was also tested on a wheelchair simulator, the IntellWheels Simulator. 

Uridales et al (2010) have used PFM on a novel biometrically modulated shared control system. While Petry et al (2010) formulated only one resultant vector taking the user input as the goal direction, the approach here generates two resultant vectors. The human vector is derived from the user's commands. The robot vector is calculated as the sum of the repulsive forces from all the obstacles and the attractive force from the goal. To determine the final direction of movement of the wheelchair, these two vectors are then summed after applying weighting factors. Driving efficiency and the user's state are used to weight user and robot commands. The efficiency is measured by the smoothness, directness and safety of driving. Hence if a user's performance is good, the final direction of the wheelchair will be largely controlled by the user. Since the parameters of efficiency are measured locally, as and when the user performance changes, the proportion of the user's influence on the final direction of the wheelchair varies. The second weighting factor is the user's mental state. This is determined by measuring the pulse using a pulse oximeter worn on the wrist. Using heart rate as a marker for stress, more assistance is provided when the user's stress levels are higher. However, since performance is also taken as a weighting factor, the user will be in control if he or she drives well, in spite of being nervous. Hence their technique is very much adaptive in nature and upholds user autonomy. They claim that the aspect of deliberation contributed by the user input, when added to the reactive responses of the robot, helps to avoid local traps. However, the wheelchair is subject to oscillations, unlike the case in the work done by Petry et al (2010). Tests conducted using people with disabilities have provided successful results for collaborative control of the wheelchair. The tests also confirmed that stress reduced performance. 

VAHM (Autonomous Vehicle for people with Motor Disabilities) was developed in a French project with work starting in 1989 (Bourhis et al, 2001). It provides manual mode, assisted manual mode and automatic mode. Two encoders provide information on position and orientation, while 16 sonar sensors are used for detection of obstacles, with three being placed on either side, two at the rear and the rest in front providing full coverage of the environment in front of the wheelchair. The access device is a GUI displayed on a LCD screen. Obstacle avoidance is used in both automatic and shared control modes. They use a method where independent activation of a sensor produces a particular behaviour of the wheelchair determined by its orientation with the obstacle. The direction followed when multiple sensors are activated is estimated by considering the respective behaviour associated with each sensor and the distance measured by them. The assisted manual mode provides additional \textquoteleft{local primitives}' that allow performing specific tasks while avoiding obstacles. \textquoteleft{Free-space search}' avoids obstacles while moving without a specific aim, \textquoteleft{direction following}' does the same but maintains a particular direction, and \textquoteleft{wall following}' allows moving in a straight line along a wall by formulating the equation of a straight line using data from the side sensors. Tests conducted in a rehabilitation centre proved the effectiveness of the semi-autonomous mode for people who could operate the wheelchair with a joystick. However, those who used a single switch operated by the head to move in an obstacle-filled environment, required autonomous operation that makes use of path planning and localisation. 

Wheelesley (Yanco, 2000), a semi-autonomous wheelchair is capable of navigating in outdoor and indoor environments. Automatic detection of these environments is possible using a light-to-voltage optical sensor and a thermistor. Indoor navigation is provided with the help of 4 sonar sensors mounted on each side and 12 infra-red sensors, most facing the front. The wheelchair is also equipped with wheel encoders and 2 Hall effect sensors used as bumpers to detect obstacles escaping the vision of the other sensors. A reactive navigation algorithm is used for obstacle avoidance such that the wheelchair continues to travel in the direction commanded by the user, avoiding obstacles along its path, until a new command is given. Common sense constraints are used to navigate away from obstacles. If the wheelchair is blocked in front, it turns right by default or to the left if the right is obstructed. If blocked on either side, it reverses automatically. Hall centring assistance is provided by using side sensor readings to equalise the distance from either wall. Obstacles are detected while moving down the hall. Outdoor navigation is provided using a similar approach with the help of a vision system mounted on a lap-tray oriented 40° towards the ground.

The methodology adopted in the MAid project (Prassler et al, 1999), mentioned in \hyperref[controlmode]{section 1.2.2}, differs from most of the smart wheelchairs discussed above. Their implementation was based on the opinion that developing specific strategies for behaviours such as wall following and door passage were not beneficial to people with disabilities who possess fine motor control. Hence they focussed on reducing the driver's fatigue while navigating in narrow spaces and wide crowded areas, by employing Narrow Area Navigation (NAN) using semi-autonomous control and the autonomous Wide Area Navigation (WAN), respectively. The sensors used by MAid include wheel encoders and a gyroscope for dead-reckoning, sonar sensors, infra-red scanners and a laser range finder for detecting moving obstacles. NAN uses a configuration space based planner (Prassler et al, 1998). The position estimation module provides the planner with a starting configuration composed of position and orientation information. The user provides the destination configuration. The planner then calculates all the sets of configurations to reach the goal without any collisions and finally selects those sequences of configurations that form the shortest path. The configurations are then converted into rotational and translational velocities by the path execution and position control modules. Users have the power to override the wheelchair movement at any time. It may be noted that in achieving the goals of NAN and WAN, the wheelchair automatically performs manoeuvres such as obstacle avoidance, wall following, door passage etc.

The Collaborative Wheelchair Controller (CWA) has been developed primarily for reducing fatigue or for drivers with physical and cognitive disabilities (Zeng et al, 2006). Their assumption is that users are capable of detecting obstacles and have not implemented any obstacle avoidance algorithms. Hence they require only two encoders and a barcode scanner as sensors. Bar code patterns affixed to landmarks in the environment are read by the bar code scanner placed under the seat of the wheelchair. Localisation of the system is achieved using these readings as well as odometry data from the encoders. Shared control is implemented using an \textquoteleft{Elastic Path Controller}'. On a GUI interface, the user constructs a desired path to the intended destination, prior to driving the wheelchair. The user is then required to use only forward or reverse commands to move the wheelchair, since the collaborative controller guides it along the defined path to reach the destination. If obstacles are detected by the user, he or she can deviate from the path due to its \textquoteleft{elasticity}' and the controller brings the wheelchair back to the guiding path. While this shared control strategy has yielded successful results in tests conducted on able-bodied volunteers and a person with cerebral palsy, its application is limited to familiar environments.

Another control strategy requiring modification of the environment has been designed by Carlson \& Demiris (2008), which is capable of supporting both autonomous and shared control of the wheelchair. The concept of orientation recovery described previously (Philips, 2007) has been adopted to develop a \textquoteleft{safe mini-trajectory}' generator. The arrangement of sensors was based on Sharioto, with a laser scanner and sonar sensors mounted along the front and sides of the wheelchair, respectively. Additionally, a camera was used to detect 2D markers fixed on the ceiling to aid in global localisation of the system. Prediction of user intent is performed using joystick input signals and the localisation data. It may be noted that user intention is recognised only in familiar environments by reverse modelling the route to be taken to fixed destinations in the environment. The safe-mini-trajectory generator uses this information to dynamically compute a safe path towards the goal. The decision to alter the joystick signals is made by considering the intention of the user and the safe paths generated. An obstacle avoidance module finally checks for obstacles in the selected heading direction and alters the signals to the motor control unit appropriately. A limitation of the methodology could be that if multiple starting points are required within the environment, the complexity of the inverse models would increase for large number of destinations.
