This is just a version of laser_100_test's project with some of the code cleaned up. They get all of the credit for the algorithm itself.