Maxime Chevalier-Boisvert, Florian Golemo, Liam Paull . Mila, Universit´ e de Montr´ eal Software Infrastructure: Overview Applied robotics presents a number of unique challenges in education and practice, spanning a broad set of technical and theoretical disciplines. [1] These concepts are difficult to learn in a classroom setting, and can be disconnected from their practical application on modern robotics platforms. Researchers often need to rebuild or re-implement prior work for new platforms and environments. These difficulties present significant obstacles to reproducibility and comparison of software for robotics research. Duckietown [2] is a low-cost hardware platform for robotics development deployed in many university and industrial robotics laboratories worldwide. We propose a software extension to the Duckietown platform for robotics education and machine learning research, leveraging best practices in software engineering and systems architecture. Our platform offers deployable solutions and advice for similar projects in robotics and ML. Simulator: Gym-Duckietown [3] Gym-Duckietown is an OpenGL based simulator written in pure Python. Provides an OpenAI Gym [4] compatible API for training, validation and testing of autonomous vehicles with a number of useful features: Offers a GPU-accelerated rendering pipeline for rapid training of deep learning models Supports Domain Randomization [5] for improved generalization and transfer learning Provides several baseline implementations for reinforcement learning algorithms Developer Tools: Hatchery Hatchery is a CLion-based IDE for ROS development written in pure Kotlin. Supports for C/C++ and Python with roscpp and rospy client libraries. Syntax comprehension, auto-completion and static analysis in common ROS filetypes ROS toolchain and build support, simplified project creation and refactoring Assistance for remote deployment and debugging, with ROS and RQT specific libraries Enables rapid prototyping in a self-contained, integrated development environment for ROS development. Minimal user configuration required. Simulator integration and ROS 2 support is currently a work in progress. Learn more details at https://github.com/duckietown/hatchery Container Stack: ROS and Machine Learning Choose one of two available frameworks: Robot Operating System (ROS) for classical robotics or PyTorch for machine learning implementations. Docker offers several of benefits for robotics development, including: Portability: Containers are cross-platform and OCI-compatible runtime environments Reproducibility: Images are self-contained, binary-reproducible deployment artifacts Usability: Images can be easily built, deployed, and run on a variety of platforms Flexibility: Highly configurable, network-ready, and modular runtime environments System Architecture Applications are evaluated using the QEMU emulator running on x86, then tested on an ARM-based SoC for hardware-in-the-loop validation. Successful models are deployed to the physical Duckietown platform for evaluation. Collected logs are serialized and hosted on Amazon S3. Docker containers are used for testing and deployment. Changes to the platform are automatically rebuilt using a continuous integration pipeline. References Jacopo Tani, Liam Paull, Maria T Zuber, Daniela Rus, Jonathan How, John Leonard, et al. Duckietown: an innovative way to teach autonomy. In International Conference EduRobotics 2016, pages 104–121. Springer, 2016. Liam Paull, Jacopo Tani, Heejin Ahn, Javier Alonso-Mora, Luca Carlone, Michal Cap, Yu Fan Chen, Changhyun Choi, Jeff Dusek, Yajun Fang, et al. Duckietown: an open, inexpensive, flexible platform for autonomy education and research. In Robotics and Automation (ICRA), 2017 IEEE International Conference on. IEEE, 2017. Maxime Chevalier-Boisvert, Florian Golemo, Yanjun Cao, Bhairav Mehta, and Liam Paull. Duckietown environments for OpenAI Gym. https://github.com/duckietown/gym-duckietown, 2018. Greg Brockman, Vicki Cheung, Ludwig Pettersson, Jonas Schneider, John Schulman, et al. OpenAI Gym, 2016. Joshua Tobin, Rachel Fong, Alex Ray, Jonas Schneider, et al. Domain randomization for transferring deep neural networks from simulation to real world. CoRR, abs/1703.06907, 2017. Mila, Universit´ e de Montr´ eal {breandan.considine, maximechevalierb, fgolemo}@gmail.com,
[email protected]