MPC based optimal control of a flying drones fleet for obstacle avoidance/surface monitoring
- MAP GENERATION and GRID QUANTIZATION
- INITIAL DRONE POSITIONS
- VORONOI PARTITION (WIP)
- LLOYD RELAXATION (init only)
- STATIC CELL ASSIGNMENT
- LOCAL WAYPOINT GENERATION
- LOCAL PATH PLANNING
- DISTRIBUTED MPC
- (PYBULLET SIMULATION)
multi-UAVs-trajectory-optimization/
│
├── main.m % main script to run the simulation
├── sim_params.m % simulation parameters (Ts, limits, horizon, etc.)
├── drone_model.m % discrete-time 3D drone model
│
├── utils/ % helper functions (plotting, obstacle generation)
│ ├── DWA.m % Dynamic Window Approach function
│ ├── FindIntesections.m % function to minimize drones collision
│ └── generateDroneMap.m % function to generate a 3D map with obstacles
│
├── mpc/ % MPC scripts and functions
│ ├── pred_mats.m % function to generate prediction matrices for QP
│ ├── QP_mats.m % function to generate QP problem
│ └── MPC.m % MPC
│
├── results/ % saved logs and figures
├── data/ % static data (waypoints, obstacles, maps)
├── docs/ % documentation and diagrams
│
├── .gitignore
└── README.md
- Clone the repository:
git clone https://github.com/veneziaandrea/multi-UAVs-trajectory-optimization.git
- Run main.m
- MATLAB R2020a or later
Pull requests and issues are welcome.
MIT License