ROS Path Control

For my Vehicle Mechatronics: Control course at Aalto University students were tasked with using Linux and the Robot Operating System (ROS) to control a Turtlebot robot in a simulation environment. I coded a simple path-finding control method.  My code searches for the largest area of open space in front of the robot and uses PID to aim towards that space. It also uses a proportional controller to adjust its velocity based on the  length of open space in its path. The basic method is described in the following powerpoint slides.

ROS control presentation.pdf

The control is tested in an  simulation environment with various features intended to try to trick the robot.  The video below shows result at x2 speed. You can see how the robot searches for open space and changes its velocity based on the distance of open space ahead.  However, it obviously lacks the ability to intelegently plan ahead. There is of room for improvement in the code, but this project served as an excellent introduction to ROS.