AWS Open Source Blog

AWS DeepRacer is now open source and ready to hit the road with ROS 2

Reinforcement learning (RL) has become one of the most popular machine learning techniques for training robots in simulation. RL enables models to learn complex behaviors without labeled training data and allows the models to make short-term decisions while optimizing for longer-term goals.

AWS DeepRacer offers an autonomous 1/18th scale race car driven by a reinforcement learning model, a cloud-based 3D racing simulator, and a global racing league. More than 85,000 developers have participated in the AWS DeepRacer virtual and in-person leagues, making AWS DeepRacer one of the most popular developer programs to ramp up on reinforcement learning.

For all the thrills of racing, our developers want to go beyond league racing with their vehicle. AWS DeepRacer developers want to build further by going deeper in areas such as navigation, perception, and prototyping robotics applications. To make it easier for developers of all skill levels to prototype new and interesting uses for their car, as well as build solutions and applications beyond racing, we are open sourcing the code running the AWS DeepRacer vehicle under the hood.

The AWS DeepRacer software will be available through GitHub, where we are also providing 15 Robot Operating System (ROS 2) packages, ranging from low-level camera drivers to perception inference nodes, AWS sample applications (e.g., Follow the Leader, Off Road, and Mapping), projects submitted by the open source community (e.g., DeepBlaster, RoboCat, and DeepDriver), and documentation to help developers get started building their own applications.

Existing AWS DeepRacer car owners and new developers will be able to build prototypes for navigation, autonomous delivery, and object detection applications. Direct access to the source code running on the vehicle will enable new racing and non-racing use cases. We are excited to see what developers build with AWS DeepRacer and the open source code.

AWS DeepRacer modules

Figure 1. Knowledge map of all AWS DeepRacer open source modules.

New use cases and more ways to build fun projects

We originally built AWS DeepRacer as a ROS Kinetic architecture and application. ROS is a flexible framework for developing robot applications, comprising a collection of tools, libraries, and capabilities with a flourishing developer community. As ROS Kinetic was approaching end-of-life, we decided to upgrade the AWS DeepRacer vehicle to Ubuntu 20.04 and migrate our code base to the latest ROS release, ROS 2 Foxy Fitzroy. This approach will give developers the longest support by providing access to the latest generation of the software development framework.

ROS 2 Foxy is the most secure and reliable ROS distribution for developing production robotics applications. Migrating to Foxy will ensure that AWS DeepRacer developers get access to the benefits and features in ROS 2. With these efforts, we not only migrated our developed applications, we also migrated three community-owned upstream dependencies on behalf of the community.

AWS DeepRacer developers are also excited to extend the hardware capabilities of our reference devices with additional sensors like lidar and stereo cameras, such as on the latest generation AWS DeepRacer Evo vehicle. Although many robots are capable of running ROS, most take anywhere from a few hours to a few days to build and configure. Many developers want the challenge of building new applications without having to first design and build a robot. Few robot developer kits combine an easy on-ramp with how-to instructions, and purpose-built hardware for robotics applications. At an affordable price point, AWS DeepRacer offers an integrated hardware and software kit for learners and developers who want to develop and contribute to the ROS 2 ecosystem, much like Turtlebot, a low-cost personal robot development kit, did for ROS 1 development.

Along with the base drivers, framework, and applications, we are releasing three new sample applications. The first sample application is Follow the Leader (FTL), which developers can use to get the AWS DeepRacer vehicle to detect a person and follow them around in an indoor environment. The FTL sample application uses an object detection machine learning model through which the AWS DeepRacer vehicle can identify and follow an object. With the FTL application, developers can prototype safe navigation applications in human environments with interactivity, similar to the many delivery robots being tested in cities around the world.

The second sample application is a Mapping project that will enable developers to map both indoor and outdoor spaces by collecting a point cloud using an Intel RealSense™ D435 depth camera as shown in Figure 2. With the sample Mapping application, developers get hands-on experience with simultaneous localization and mapping (SLAM).

AWS DeepRacer Mapping sample application in action, visualized using RVIZ.

Figure 2. AWS DeepRacer Mapping sample application in action, visualized using RVIZ.

The third sample application is an Off Road project that uses a series of QR codes as waypoints to steer the AWS DeepRacer around a custom path. Developers can create their own custom path by placing the basic waypoint codes as a sequence along the track or encode additional instructions in them to invent new applications.

Building the future of robotics development together

More than a decade ago, the Defense Advanced Research Projects Agency (DARPA) designated autonomous vehicle development as a grand challenge. Since then, billions of dollars have poured into research and development of autonomous cars. Communities like F1TENTH have succeeded in getting a development platform in the hands of graduate students and researchers. However, to solve the autonomy challenge for robots and cars, a bigger, broader, and more diverse base of developers is needed.

We hope that building with AWS DeepRacer in the open will bring multiple communities together to collaborate and advance the state of the art. Our developer community is starting to demonstrate that approach with innovative projects and ideas that are making AWS DeepRacer extensible and flexible for prototyping and development.

To get started, please visit the AWS DeepRacer Open Source page and use one of the sample applications. Developers can use their existing AWS DeepRacer vehicle (Evo model is not required), download and build the GitHub repositories to their vehicle, then run the installation script. We welcome issues, comments, and pull requests in our GitHub repositories.

To celebrate the open sourcing of the device software, we are offering a 25% discount on all AWS DeepRacer and AWS DeepRacer Evo vehicles until May 27, 2021.

Camilo Buscaron

Camilo Buscaron

Cam is an open source robotics technologist and strategist. Primarily interested in cloud robotics, artificial intelligence and automotive technology and businesses.

Eddie Calleja

Eddie Calleja

I am an SDM for AWS DeepRacer. He is the manager of the AWS DeepRacer simulation application and device software stacks. As a former physicist he spends his spare time thinking about applying AI techniques to modern day physics problems.

Siddalingesha Devarmani Shivakumar

Siddalingesha Devarmani Shivakumar

Siddalingesha D S is a Software Development Engineer at AWS DeepRacer, where he works on DeepRacer device software, science and simulation application stack. In Siddalingesha's spare time, he enjoys learning more about AI/ML applications in robotics field.

Jayadev Vadakkanmarveettil

Jayadev Vadakkanmarveettil

Jayadev is a Principal Product Manager at AWS. He is focused on helping developers build applications and improve business outcomes with AWS AI Services. His current charter is focused on developer engagement with AWS AI Devices (AWS DeepRacer, DeepComposer, and DeepLens). In his spare time, he enjoys eating something delicious and burning those calories with a hike or bike ride.