top of page

Path Planning

Obstacle Course Navigation

In this project, we built a roomba that could traverse an obstacle course. This was a partner project with a fellow mechanical engineer. My task was to use information from a LIDAR sensor to plan a path for our roomba. Relevant skills used in this project are:​​​

​

  • Graphical representation of a 3D space

  • Gradient Descent

  • Path Planning

 

​​My methodology for this project is shown below.

​

Source code: https://github.com/titut/Gauntlet/

Full Map.jpg

Collecting LIDAR data

LIDAR data comes in the form of distance and angle. Using transformation matrices, we transformed this data onto a cartesian plane. Also, an extra transformation was needed for the red scan, where the reading was taken from a location offset from the origin.

Creating a "map"

We generate a 3D "map" by creating a function where each data point is a source. Then, we create a sink at the target location. To navigate the obstacle course, we simply tell the robot to go to the lowest possible point.

3D Map.jpg
Path of Gradient Descent.jpg

Gradient Descent

To go to the lowest possible point, we use gradient descent. First, we calculate the negative gradient of the 3D function. Then, we simply substitute in the x and y coordinate of our robot to get the direction of steepest decrease.

Demo

Reflection: From the video, we can see that the robot went to close to the bottom wall. This was a result of the sink being on the bottom of the map. In a way, this means our algorithm is working as it is finding the "shortest" path possible to reach the destination. However, it leaves very little room for error. As many different physical conditions could lead the roomba's movement to be inaccurate, in the future, it is better to create a path that leaves a higher margin for error.

bottom of page