This is an implementation of the Bug2 Algorithm (as explained here: http://cs.jhu.edu/~hager/teaching/cs336/notes/chap2-bug-alg.pdf ) in a nice robotic simulator. It's not perfect-- I just did this for a homework assignment-- but it works fairly well, and I thought it was neat to watch the robot run around. The essential algorithm is to calculate a straight-line path to the goal right from the start. Then, whenever an obstacle is encountered, the robot follows the obstacle boundary until it re-encounters the straight line, at which point it assumes it's gone far enough around the obstacle, and continues heading for the goal.