Resceding Horizon Path Planner

Feburary 2022 - April 2022

2D Resceeding Horizon

2D initial tests before 3D implementation

Overview

Using our in lab underwater simulator, HoloOcean a project partner and I designed and implemented a real time receding horizon path planner algorithm. Mounting virtual stereo cameras on our simulated under water vehicle, we extracted the 3D information from detected feature points and inserted them into our path planner algorithm that would optimize the best path moving forward. We used Scipy’s minimize function with the objective being the distance towards the min goal, with objective constraints limiting our motion per time step and not allowing our current location to be within a given safety radius of any detected feature point. Our main assumption for this project is that features will only be detected in feature rich environments, like obstacles, and not in areas like open water, the actual safe place to travel.

To give ourselves a safety radius, we decided that we wanted our implementation to have 99% accuracy. Given that our cameras had simulated noise of 0.1 meters, we multiplied the z score for 99% probability with 0.1m + 0.55m. 0.55m is the distance from the center of the robot to the furthest edge. To test our implementation, we ran our simulator for 300 times and finished with 2 failed runs where a collision occurred, a 99.33% success rate which was desired. Typically, you would run more than 300 iterations, but our deadline was approaching, and each iteration took a while to run.

My Contributions

For this project I wrote the program to extract the 3D information of each detected feature point and prepare it to be inserted into the optimization algorithm. My project partner Chad, took point on writing the optimization objective function and constraints, with some assistance from me. Together we wrote the safety radius and reliability handling.

3D point estimation

Vehicle point of view and features detected from cameras

3D results

3D results and trajectory

Things I learned and Skills Developed

This project was the semester project of our Techniques in Optimization graduate class. This was the culmination of a course where we covered constrained and unconstrained optimization, and gradient vs gradient free optimization techniques and methods. The approach we used for this project was a constrained gradient-based optimizer by SciPy.