Motion Planning

Computational Geometry final project, Bruno R. L. Netto and Ricardo T. Figueiredo. Original version

Loading planning core…

How it works

The robot only slides, never rotates. Growing every obstacle by the robot's shape (a Minkowski sum) gives the red configuration space: wherever the robot's centre enters it, the robot overlaps an obstacle. Planning then only has to move a single point.

The shortest path for a point bends only at corners of the red regions, so the default planner connects the start, the goal and those corners wherever they can see each other, and searches that visibility graph with A*.

RRT instead grows a tree of short random steps from the start until it reaches the goal: quick, but the path zigzags. RRT* keeps sampling and rewires the tree so every node is reached as cheaply as possible, so its path approaches the shortest one. The random walk is the original project's planner, kept for comparison.

The other two settings take the map away. Knowing only where the goal is, the Bug algorithms feel their way round obstacles by touch, TangentBug looks ahead with a range sensor, and replanning A* plans through what it has seen so far, assuming the rest is empty. Knowing nothing, the robot has to search: wall following keeps a hand on the wall (and can circle an island forever), Trémaux marks passages and backtracks like a maze solver with chalk, and frontier exploration heads for the nearest unexplored area. The grey fog covers what the robot hasn't sensed yet, and the stats compare the distance it travelled with the shortest path.