If you’ve ever tried creating a robot (the kind with physical elements) from scratch, you probably have a deep appreciation for what the effort really takes, such as setting up the application development and deployment environment. There’s also a lot of complexity involving hardware, software, network, cloud and edge-related issues.
For example, Robot Care Systems built a healthcare robot called LEA (for Lean Empowering Assistant) that enables elderly people with Parkinson’s Disease to walk independently. LEA has 72 sensors, some of which are redundant so, for example, if the camera sensor fails to sense a glass on the floor, the infrared sensor will detect it. The robot uses a low-end CPU to keep the cost of the device down, so cloud services are necessary to expand LEA’s capabilities. Robot Care Systems also developed its own abstract robotics language called ROL that generates Robot Operating System (ROS 1 or ROS 2) C++ code (see below for more information about ROS).
“New sensors are coming out. [If you] want to try a new sensor, [you] may have to write software from scratch to get the robot to work for every piece of hardware,” said Roger Barga, general manager for AWS Robotics in his AWS re:Invent 2018 presentation last week. “If you’re writing every software component from the ground up, you need people who know what they’re doing and simulation is important, but expensive.”
Introducing AWS RoboMaker
The new AWS RoboMaker is lowering many of the barriers to robot-related innovation. The service takes advantage of the open source ROS framework for robotics, which includes tools, libraries and conventions that simplify the creation of complex robot behavior across a variety of robotic platforms. ROS’s core components include a communications infrastructure that consists of publish/subscribe anonymous message passing, recording and playback of messages, request/response remote procedure calls (RPCs) and a distributed parameter system. Additional libraries and tools include standard messaging definitions for robots, a robot geometry library, a robot description language, preemptable RPCs, diagnostics, pose estimation, localization, mapping and navigation. Barga said Amazon chose ROS so customers could take advantage of that ecosystem.
AWS Robomaker includes a cloud-based development environment, cloud extensions, a simulation service and a fleet management service.
“Before you can start writing application code, you have to spend hours or days to ensure the dev environment is operating properly. You have to download the robot OS software framework, different kinds of tooling and make sure they’re wired together to [ensure] they’re working properly,” said Amazon Product Manager Ray Zhu in a re:Invent presentation.
Wasted time negatively impacts innovation, so instead of doing a lot of manual work, developers can simply choose an environment that’s the right size for their project and start writing code within a few minutes, after the environment has been set up automatically. When the application code is ready, the developer can upload it to an S3 bucket and begin running a simulation.
RoboMaker’s cloud extensions are important because they enable robots to do far more than they could using only local resources. The cloud extensions are written as ROS packages so developers familiar with ROS can easily embed them in their applications. Zhu said Amazon currently has five integrated services including Amazon Lex and Amazon Polly which enable developers to add natural language conversation capabilities to their robots, the Amazon Kinesis data streaming service, the Amazon Rekognition service for facial recognition and object detection, and the AWS Cloud Watch service for near real-time live streaming of telemetry and log data for monitoring individual robots and fleets.
RoboMaker also includes a simulation environment, which is necessary because not all developers working on robotic applications have access to the target device. Using RoboMaker, developers can simply upload code to the simulated device and test it faster than would be possible on hardware. In fact, developers can run hundreds or thousands of simulation jobs for regression testing purposes. One Amazon customer apparently slashed its testing time from one month to a day or two, according to Zhu.
The final piece is fleet management. Once the application has been developed and tested it needs to be installed. The fleet management capability includes a robot registry, security and fault tolerance. To prepare for software deployment. developers simply register their robots with the fleet management service and create one or more fleets. To actually deploy the software, they upload the application to an S3 bucket, create a deployment job on the RoboMaker console and select the a fleet for application deployment.
RoboMaker is integrated with the AWS Green Grass service which is part of the AWS IoT ecosystem. It has edge computing capabilities that can include local Lambda functions, local messaging and programming of machine learning models.
Robot Care Systems’ robot takes advantage of the RoboMaker service for simulation and parameter tuning, Amazon Kinesis data streaming capabilities to monitor sensors and the health of the robot, Amazon Lex and Polly for voice interaction, AWS EC2 to host a portal for caregivers and family so they can monitor the patient and S3 to deploy software updates.
Like so many of Amazon’s latest services, AWS RoboMaker makes complex, time-consuming work faster, easier and more affordable so developers have more time to innovate.