In short: This is a non-cooperative distributed model predictive control (DMPC) robot simulation on a 2D plane, where each robot/agent/vehicle acts based on a local controller. To reduce the communication effort to ensure collision avoidance constraints, an occupancy grid is used to reduce the communication burden. Publications, which describes the overall scenario in detail are published here and here.
What is Model Predictive Control? What is Distributed Model Predictive Control?
This scenario describes a 2D plane, where different agents (e.g. robots, vehicles, etc.) given fixed start positions try to achieve their individual targets while ensuring collison avoidance between each other. In the preset, start and targets are given in the edges of the 2D space and the agents have to traverse diagonal to reach their target. Each robot is under the regime of a local controller, which calculates the next movements, here control based on the received prediction of the other robot. The order is fixed (or calculated by a priority rule) while each robot solves an Optimal Control Problem (OCP). The costs are roughly spoken the distance between current position and given individual target. The constraints depict the distances, which have to be kept to the other robots.
Herein, a holonomic model is used for each simulated robot and for each robot, an online MPC controller is applied. Start and target positions are predefined (on diagonal directions opposite to each other). The 2D plane is quantised onto an occupancy grid.
Each robot requests and communicate the requested cells based on this occpuancy grid, where the cells are discretised in an equidistant manner.
- Qt5 (open-source, https://qt.io)
- nlopt (https://github.com/stevengj/nlopt)
- QwtPlot (https://qwt.sourceforge.io/)
This project is licensed under MIT license. If you use this code (also partially), I would appreciate if you would kindly cite in publications or any other usage (commercial or not commercial) then DMPCRobotSimulation by
T. Sprodowski, A DMPC Robot Simulation, https://github.com/SirTobias/DMPCRobotSimulation
Thank you.