Reasoning Algotithms

When planning the decision making process for autonomous navigation we incrementally developed modules accounting for portions of the systems required functionality. We identified the segments of the reasoning algorithm as an obstacle avoidance module, a location tracking module, an error-handling module, a computation module, and an interfacing module. The obstacle avoidance module will analyze the environment and determine the safest route of travel. The location tracking module will track the systems current location and goal location, influencing the robot to travel in the destinations direction when it is reasonably safe. The error handling module will prevent system deadlocks if the goal for events such as an unreachable goal location or if the robot has no safe direction for travel. The computation module will compute all of the sensors input and deliver it in a usable format for the other modules. Lastly, the interfacing module will integrate each module, controlling the decision making process for each situation, maintaining the cycle of the decision making process, and outputting a result to the NAO robot.

Below is a MATLAB simulation coded to generate random obstacles and incorporates the previously described reasoning algorithms. The environment mapping algorithm is created using the fuzzy logic toolbox, accepting the inputs from the 3 sensors and outputting the safest route of travel. In the simulation results it can be seen that the robot navigates from the start location to the goal location with high levels of safety, maintaining a distance of at least 1 meter from any given obstacle. Additionally, the varying speeds can be seen, as represented by the colored dots on the traveled path.
Untitled