Learning to Fly -- a Gym Environment with PyBullet Physics for Reinforcement Learning of Multi-agent Quadcopter Control
Robotic simulators are crucial for academic research and education as well as\nthe development of safety-critical applications. Reinforcement learning\nenvironments -- simple simulations coupled with a problem specification in the\nform of a reward function -- are also important to standardize the development\n(and benchmarking) of learning algorithms. Yet, full-scale simulators typically\nlack portability and parallelizability. Vice versa, many reinforcement learning\nenvironments trade-off realism for high sample throughputs in toy-like\nproblems. While public data sets have greatly benefited deep learning and\ncomputer vision, we still lack the software tools to simultaneously develop --\nand fairly compare -- control theory and reinforcement learning approaches. In\nthis paper, we propose an open-source OpenAI Gym-like environment for multiple\nquadcopters based on the Bullet physics engine. Its multi-agent and vision\nbased reinforcement learning interfaces, as well as the support of realistic\ncollisions and aerodynamic effects, make it, to the best of our knowledge, a\nfirst of its kind. We demonstrate its use through several examples, either for\ncontrol (trajectory tracking with PID control, multi-robot flight with\ndownwash, etc.) or reinforcement learning (single and multi-agent stabilization\ntasks), hoping to inspire future research that combines control theory and\nmachine learning.\n