Part 3: Autonomous Navigation using the Kobuki
The best part about forming the map in the part 2 is that we can now play around in it. Similar to Simultaneous Localisation and Mapping (SLAM) there are many algorithms for Autonomous Navigation as well.
Autonomous Navigation can be broken up into 2 parts. Global Navigation and Local Navigation. Global Navigation involves planning a path from Point A to Point B while avoiding the fixed obstacles in the map that we formed earlier. Local Navigation involves avoiding dynamic obstacles that may appear out of nowhere. These include humans, pets, or shifted objects such as roller office chairs. In general it is beneficial to always have the global plan in mind while watching out for local obstacles via the local plan.
There are a few Global Navigation algorithms out there including Djikstra, A*, Carrot planner. Carrot planner is a legacy global planner that teaches you about the intuition of global planners in general. Beyond that it does not really have a place in modern navigation algorithms. For local planners, there is the Dynamic Window Approach, Timed Elastic Band Approach, and Trajectory Rollout Approach.
I find that Djikstra global planner and Timed Elastic Band Approach seems to work best in my opinion for the Kobuki if the parameters are tuned right.