# A Single RF Emitter-Based Indoor Navigation Method for Autonomous Service Robots
## 6 Mapping and Path Planning
### Path Planning
Additionally, if the space between obstacles is less than three grid cells, then the values in these cells are essentially high enough to prevent a path from being planned through this space, ensuring that the robot avoids those obstacles. Lastly, due to the simplified movement requiring alignment to cardinal directions, turning to change the direction of motion requires coming to a complete stop and turning until the correct direction is reached. This manoeuvre time is included as a type of cost in the path by using the current orientation as a proxy, so that the robot will also prefer paths that have fewer changesin orientation, even if this means that the actual path is longer. Figure 12 shows a visualisation of these different components. This includes the map, in grey and black, the particles from the particle filter in blue, and the weighted sum of these particles in pink. The robot is represented by the red arrow, with the arrow pointing in the target direction. The planned path from the red arrow to the pink target is visible in green; it can be seen that there is an obstacle in front of the robot and that the path diverts around it. During exploration of the unknown areas, the SLAM module maps these areas and assigns values based on the occupancy of the cells. Since the path planning is executed periodically, the new information is taken into account and the path is updated over time in a way that supports continued exploration until a valid path is found to the target destination. The target destination is defined by both the direction and distance to the target emitter. However, we mostly focus on the direction, as the distance measured is often inaccurate, and so we rely on iterative improvements to the planned path by running the module periodically to update the path as the robot progresses towards the goal. With SLAM and path planning, the motion planning module described in Section 5 was then expanded upon to allow for execution of the path provided by the path planning module, as shown in Figure 2a. By providing the odometry data to the motion planning module, it is possible to determine the current location on the map, and thus the current point in the path. By comparing the path's current position and next position, the robot can calculate the desired bearing of motion, turning as necessary to reach it. Once facing the right direction, the system will continue to move forward until this direction changes. Figure 12: Visualisation of the map, particle filter, and path. In the event that the robot finds itself off of the path provided, it will fall back to the preliminary system (i.e., using only target localisation and motion planning modules) for finding the target. This can sometimes occur when the map output from the SLAM module experiences a discontinuity, causing a discrete jump in the position of the robot relative to the map. This generally only occurs as a result of drift in odometry when the robot rotates, as the drift for regular motion is much lower and does not require the same degree of compensation.