IMAGE ALT TEXT HERE

Citation

If you wish, please cite our work (link) as

@INPROCEEDINGS{panerati2021learning,
      title={Learning to Fly---a Gym Environment with PyBullet Physics for Reinforcement Learning of Multi-agent Quadcopter Control}, 
      author={Jacopo Panerati and Hehui Zheng and SiQi Zhou and James Xu and Amanda Prorok and Angela P. Schoellig},
      booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
      year={2021},
      volume={},
      number={},
      pages={},
      doi={}
}

Simple OpenAI Gym environment based on PyBullet for multi-agent reinforcement learning

The default DroneModel.CF2X dynamics are based on Bitcraze’s Crazyflie 2.x nano-quadrotor

formation flight control info

Requirements and Installation

The repo was written using Python 3 on macOS 10.15 and tested on macOS 11, Ubuntu 18.04

On macOS and Ubuntu

Major dependencies are gym, pybullet, stable-baselines3, and rllib

pip3 install --upgrade numpy matplotlib Pillow cycler 
pip3 install --upgrade gym pybullet stable_baselines3 'ray[rllib]'

Video recording requires to have ffmpeg installed, on macOS

$ brew install ffmpeg

On Ubuntu

$ sudo apt install ffmpeg

The repo is structured as a Gym Environment and can be installed with pip install --editable

$ git clone https://github.com/utiasDSL/gym-pybullet-drones.git
$ cd gym-pybullet-drones/
$ pip3 install -e .

On Windows

Check these step-by-step instructions written by Dr. Karime Pereida for Windows 10

Use, Examples, and Documentation

Refer to the master branch’s README.md for further details

Trajectory Tracking

sparse way points flight control info

RGB, Depth, and Segmentation Views

rgb view depth view segmentation view

Downwash

downwash example control info

Learn

learning 1learning 2 learning 3learning 4

Debug

yaw saturation control info

Compare

pid flight on sine trajectroy control info

References

Bonus GIF for Scrolling this Far

formation flight control info


UofT’s Dynamic Systems Lab / Vector Institute / Cambridge’s Prorok Lab / Mitacs