16-735 Assingment 4 - A*

Jeremy Stolarz

In this movie the robot successfully plans a route to the goal using A* and arrives at the goal. Successful movie

In this movie the A* planning fails as the goal is unreachable. Failure movie

A note on the movies:
The Blue nodes are unvisited nodes.
The Black nodes are those that are unreachable since they are within a C-space obstacle.
The Red node is the goal node.
The Green node is the one that is currently being expanded by the A* algorithm. When A* is finished, it is also used to represent the start node.
The Orange nodes are those that are currently in the Open List priority queue.
The Grayish nodes are those that have already been expanded and are thus on the Closed list.
The Teal nodes show the shortest path to the goal once A* is complete.

For this assignment I implemented the A* path planning algorithm to find a path from start to finish. After a few false starts with priority queues, I ended up using my friend Matt McNaughton's priority queue template class with a few minor adaptations and one bug fix to work with my code.

With regards to cost functions, I decided to keep it simple and as close to "reality" (reality in a simulator?) as possible. The cost between nodes was just their Euclidean distance, and the heuristic cost was the straight distance from the node to the goal. I chose this heuristic because it is an admissible heuristic, meaning it ensures that you can find the optimal path to the goal since the heuristic cost is less than or equal to the actual cost (in the plane). It also happens to be the one used in the text. :-)