This project was done for the class, Quantitative Engineering Analysis (QEA) 2, as a final. A NEATO robotic vacuum is supposed to navigate an obstacle course set up in a Gazebo simulation:
Layout of obstacle course.
The first stage was to use gradient ascent to reach the Barrel, knowing the location of the NEATO, obstacles, and Barrel. We implemented an open-loop control algorithm, assigning various weights to the sources and sinks.
On my own, for the second stage, I used LIDAR onboard the NEATO to replace knowing the location of the obstacles. In order to distinguish lines and map where they were, I used a Random Sample Consensus (RANSAC) algorithm. RANSAC avoids the problems with PCA or linear regression because it works off of consensus: it can handle mixed data, such as multiple lines and random points.
RANSAC sample.
NEATO completing the course.
This project helped me better understand gradient ascent because it was, quite literally, a visualization of gradient ascent. This proved useful when I took Machine Learning with the vanishing gradient problem. It also allowed me to feel more comfortable using ROS and Gazebo.