The Robotarium's quadcopter python simulator (Python3.5 or later).
The purpose of the Robotarium simulator is to ensure that algorithms perform reasonably well before deployment onto the Robotarium's quadcopters (COMING SOON!). The objective is to make scripts created for the simulator directly applicable onto the Robotarium's quadcopters. To ensure minimum modification after deployment, the simulator has been created to closely approximate the actual behavior of the Robotarium's agents.
Regarding user-level control, for safety purposes, the user only gets to specify a desired position for each quadcopter at each timestep, which is tracked using a differential flatness controller as in [1]. Also, a collision avoidance solution based on [2] is provided to the user.
We recommend trying out the various example files provided to get started! Let us know what you think, we highly value feedback! :-)
To use this simulator, we recommend using an Anaconda environment (Anaconda).
- To create a conda environment with the necessary package requirements:
conda create --name [name of environment] --file requirements_[platform].txt --channel conda-forge
The supported platforms arelinux-64
,osx-64
andwin-64
. - Activate the environment by running:
conda activate [name of environment]
- Install the python-control through pip:
pip install control
- Navigative to repo:
cd quadtarium-python-simulator
- As a sanity check, run the files in the
examples
directory using this command:
python -m examples.[filename]
Make sure to omit the.py
. - If you want to install it as a pip package run
pip install -e .
- Move your file to the
quadtarium-python-simulator
directory - Make sure it has similar syntax to the example files (
examples/go_to_point.py
is a good starting point) - run
python [your file]
[1]
Mellinger, Daniel, and Vijay Kumar. "Minimum snap trajectory generation and control for quadrotors." 2011 IEEE international conference on robotics and automation. IEEE, 2011.
[2]
Wang, Li, Aaron D. Ames, and Magnus Egerstedt. "Safe certificate-based maneuvers for teams of quadrotors using differential flatness." 2017 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2017.