Repository for the project on quadrotor 3D planning and control using an RRT* method as a global path planner, minimum snap optimization for the conversion of the global path into a trajectory tracked by a nonlinear Model Predictive Controller for local obstacle avoidance.
The present document describes the contents of the folders and the instructions on the usage of the different simulator files and functions
Please, in order not to encounter any trouble while running the files, clone the repository to a folder and use pyCharm. Notice that using a different IDE may require modifications to the import statements. Additionally, FORCESPRO needs to be installed in the device and the current libraries with respective versions need to be installed (in a virtual environment is enough):
The current algorithm has been developed and tested in four different scenarios, represented in the following pictures. Please, note that the obstacle avoidance with an additional obstacle (not considered in global planning) has only been tested on scenario 2, which was observed to be sufficiently wide and ample so as to ensure complete collision avoidance.
Scenario 0 | Scenario 1 |
---|---|
![]() |
![]() |
Scenario 2 | Scenario 3 |
---|---|
![]() |
![]() |
The file simulator.py depicts the trajectory tracking with the Geometric Nonlinear Controller. Multiple settings are provided both for the RRT* and the minimum snap optimization, with their corresponding descriptions in the file itself.
The file simulator_MPC.py allows for the simulation of the MPC in multiple operation modes, but with more limited options in terms of minimum snap. Please notice once again that, in order to perform collision avoidance with an unpredicted obstacle (that is, an obstacle in the way of the trajectory), scenario 2 is the only one for which the avoidance has been tested to be performed robustly.
The folder full_results_and_more contains data related to some of the tests carried out during the evaluation of the solution as well as file summaries of the inspected results. The folder back_end contains data related to the trajectory tracking and obstacle avoidance; while the folder front_end contains the data and results of RRT and minimum snap.
Scenario 0 | Scenario 1 |
---|---|
![]() |
![]() |
Scenario 0 | Scenario 1 |
---|---|
![]() |
![]() |
Path following | Local avoidance |
---|---|
![]() |
![]() |
The report of this project can be found here
Distributed under the MIT License. See LICENSE
for more infomation.
Rubén Martín Rodríguez - r.martinrodriguez@student.tudelft.nl
Xinjie Liu - x.liu-47@student.tudelft.nl
Yuezhe Zhang -y.zhang-130@student.tudelft.nl
Paul Féry - p.h.fery-1@student.tudelft.nl