# A Single RF Emitter-Based Indoor Navigation Method for Autonomous Service Robots
## 5 Motion Planning  
The readings from the environmental sensors (i.e., the laser range finder and contact sensors) provide information about obstacles in the local context, which can also be placed onto a global map. In the initial case where there is no map, these sensors play a major role in ensuring safe navigation by avoiding obstacles while the robot drives directly towards the estimated target location and the map is being formed.  
We mounted the directional antennae and parabolic reflectors on top of the Pioneer as shown in Figure 2b. This allowed the target localisation module to use the RSS readings while the Pioneer moves in order to determine an approximate direction of travel. By comparing the relative strengths along the two axes, an approximation for the distances in each axis can be found. Through simple trigonometry, these distances can then be combined to find the distance and direction of the target emitter from the current position. However, the derived distance is generally very inaccurate, as it is strongly influenced by noise and multipath effects, so we primarily focus on using the direction for motion planning purposes. Collectively, the location information and environmental sensor inputs are used in our motion planning algorithm to control the local movements and gradually move towards the target location.  
In the initial case when the robot is first turned on, we follow a simple heuristic for safe navigation. If there is no obstacle within 20 cm of the laser range finder, and the angle to the target is within 15\({}^{\circ}\) to  
Figure 8: Raw and filtered errors over the course of a benchmark test.  
either side of its current heading direction, then the robot will drive forward. Otherwise, the robot will gradually turn towards the target while driving forward. If there is an obstacle within a 20 cm range, then the system enters its obstacle avoidance mode. In this mode, the robot will continue to turn until there are no obstacles detected within a 20 cm range of the rangefinder. When the obstacle is no longer in front of the robot, the robot will continue to move forward if the target is in the forward direction of the robot (i.e., target is located less than \(90^{\circ}\) either side relative to the current robot heading direction). When the sum of the front and back RSS values is above a certain threshold that indicates a distance to the target that is less than 50 cm, we consider the robot to have reached the target destination (since the robot has a diameter of 40 cm), causing the robot to stop. An overview of this motion control algorithm is given in Figure 9. In addition, if any of the front contact sensors detect an object then the robot will reverse immediately to avoid the object. Similarly, if any of the rear contact sensors detect an object then the robot will drive forwards.  
With this preliminary implementation, we verified that the wireless emitter could be used as a point of reference, and that our RSS-based algorithm with angle approximation provided an accurate target direction. In scenarios where there is a direct path to the emitter, this method is sufficient for reaching the goal. In some scenarios where the direct path is partially blocked, the system is able to use the variance in the received signal and simple local obstacle avoidance to reach the goal destination. However, due to the simplistic nature of the motion planning, and without any memory of the position of obstacles this system, the system is unable to recognise dead ends and is susceptible to being trapped in corners. This is quite common in the context of factory automation, where the strength of the emitter could be very strong indicating the target is near, but it is not actually directly reachable  
Figure 9: A simplified overview of the preliminary system control flow chart.  
due to obstacles such as conveyor lines and shelves. Therefore, introducing mapping and long-term path planning into the system is required in order to find viable paths and avoid deadlock.