How to build a ROS CI Pipeline using AWS RoboMaker and CodePipeline(Part 1)?

Reading Time: 9 minutes

Robots are being used more widely in society for increasingly sophisticated functions like picking and packing, last-mile delivery, complex assembly, search and rescue, environmental monitoring, and assisted surgery. Robots are utilized for commercial logistics and consumer cleaning, distribution, and companionship in the autonomous mobile robot (AMR) and autonomous ground vehicle (AGV) industry segments.

According to Interact Analysis, the Industrial Robot Market will return to growth at a 4.6% CAGR forecast for 2021-2024. That means, there will be a need for more automation to increase productivity, efficiency, worker safety, and product quality. One of the key causes driving the manufacture of robotic units worldwide is the need to automate and meet increasing demands from all sectors.

Self-driving automobiles, self-cooking, home maintenance, security, and surveillance robots are all around us! To function effectively, these robots require the integration of technologies such as image recognition, sensing, artificial intelligence, machine learning, and reinforcement learning. Developing and testing applications for autonomous robots is challenging, time-consuming, and costly. AWS RoboMaker helps in resolving these challenges. It is a fully managed, scalable simulation infrastructure for multi-robot simulation and CI/CD integration with simulation regression testing. With the help of AWS RoboMaker, you can complete things that used to take months in hours or days!

In this blog, we will discuss AWS RoboMaker, how it works, benefits, features, use cases, applications, pricing, and customers who are using it. To see the full demonstration of how to build a ROS CI Pipeline using AWS RoboMaker and CodePipeline, refer to Part 2 of the blog here.

In this blog, we will cover:

  • Challenges in Robotic Industry
  • What is AWS RoboMaker?
  • How does it work ?
  • Benefits of AWS RoboMaker
  • Common Use cases
  • Features of AWS RoboMaker
  • Sample Robot Applications
  • Pricing
  • AWS RoboMaker Customers
  • Conclusion

Challenges in Robotic Industry  

Traditionally, development teams design code to cover a wide range of deployment situations, integrate the code and then test the application scenarios on robotics hardware in real-world settings. This manual development and testing approach wastes staff time, necessitates expensive technology, slows program update release cycles, and is difficult to scale. Building and testing applications for autonomous robots is difficult, time-consuming, and expensive.

What is AWS RoboMaker?

AWS RoboMaker is the most comprehensive cloud solution for robotic developers looking to simulate, test, and scale robotic applications. Customers use RoboMaker’s fully managed, scalable simulation infrastructure for multi-robot simulation and CI/CD integration with simulation regression testing. AWS RoboMaker also includes an IDE, application deployment capabilities, ROS extensions, and seamless connectivity with a variety of Amazon and AWS services, allowing users to create and deliver best-in-class robotic solutions. The managed ROS and Gazebo software stacks from RoboMaker free up engineering resources and allow you to get started creating rapidly.

What is AWS RoboMaker?

How does it work?

  • Build a robot application: A robot application is a software program that runs on a robot using the Robot Operating System (ROS).To run your application in an AWS RoboMaker simulation, you build an architecture version of the robot application.
  • Build a simulation application: A simulation program consists of a 3D artificial world and Gazebo plugins that govern a robot’s movement within it.
AWS RoboMaker
  • Launch the robot and simulation application: To run the programs, use ROS. Use rqt, Gazebo, and other tools to explore the running simulation.

Benefits of AWS RoboMaker 

Build intelligent robots

With a set of AWS services for building end-to-end solutions, you can easily integrate sophisticated machine learning, speech recognition, and language processing capabilities into your robotics applications. RoboMaker gives developers that use the Robot Operating System, or ROS, extensions for cloud services like Amazon Kinesis (video stream), Amazon Rekognition (image and video analysis), Amazon Lex (speech recognition), Amazon Polly (speech creation), and Amazon CloudWatch (logging and monitoring).

Benefits of AWS RoboMaker 

Simulation and Application Deployment Capabilities

You can deliver software updates to a fleet of robots using AWS RoboMaker application deployment, and you can simply model and test robotics applications using RoboMaker simulation features. You can monitor these robots throughout their lives using the CloudWatch metrics and logs extension for ROS to learn about their CPU, speed, memory, battery, and more. You can use RoboMaker simulation for regression testing before distributing a fix or new feature using RoboMaker application deployment.

Get started quickly

Sample robotics applications are included in AWS RoboMaker to help you get started quickly. These provide a foundation for the voice command, recognition, monitoring, and application deployment capabilities that intelligent robotics applications normally require. Robotics and simulation application code are included in the sample applications.

Common Use cases 

  • Ensure that the robots can navigate around each other in the same environment.
  • For a custom data-driven application, data is collected from many robots running at the same time.
  • Machine learning is being used to teach robots how to behave to other robots in the same environment.
  • Developing algorithms (such as path planning) that shape behavior by using state data from other robots in the fleet

Features of AWS RoboMaker

Features of AWS RoboMaker

ROS Cloud Extensions

RoboMaker provides tools for developers to test and iterate code in 3D virtual environments, making simulation at scale economical and accessible to all robotics enterprises. The service can handle large-scale and parallel simulations, and it scales up or down automatically depending on the complexity of the scenarios being tested. Robotics organizations may use RoboMaker simulation to make robotics application testing and machine learning faster, cheaper, and more reliable.

Simulation

Developers can use simulation to test applications in virtual environments, or worlds, which allows them to expand testing coverage, decrease code errors, and speed up development. The ability to test and teach robots in a vast number and different set of worlds is one of the most important advantages of employing simulation. The ability to do robust regression testing, reinforcement learning, and synthetic data production is unlocked by scaling simulation. Building simulation worlds, managing simulation infrastructure, and scaling testing, on the other hand, is costly and requires specialized skills for robotics firms. This has a significant impact on the use of simulation in robotics firms, as well as the benefits of automated testing.

Application Deployment

AWS IoT Greengrass is connected with RoboMaker’s application deployment service to provide robot registry, security, and fault tolerance. Companies can use the registry service to identify, track, and organize their robots into ideal fleets. RoboMaker application deployment allows developers to safely distribute their applications to their robots using AWS’ fully-managed over-the-air (OTA) update infrastructure. Greengrass connects to AWS cloud services using encrypted connections using X.509 certificates, managed subscriptions, AWS IoT policies, and IAM roles. RoboMaker’s OTA service enables conditional updates, which add intelligence to the OTA process and reduce the danger of software upgrades being interrupted or incomplete.

Development Environment

RoboMaker’s development environment is a tailored AWS Cloud9 environment for robotics development. This environment includes sample applications as well as ROS pre-installed. Other RoboMaker functions, such as simulation, are also incorporated into this environment, allowing you to use them directly from the development environment’s interface.

Sample Robot Applications

Sample robotics applications are included in AWS RoboMaker to help you get started quickly. These serve as the foundation for the voice command, recognition, monitoring, and fleet management capabilities that intelligent robotics systems normally require. Sample applications come with simulation application code (defining the environment in which your simulations will run) and robotics application code (instructions for the functionality of your robot).

Launch in RoboMaker

Hello world

Learn the fundamentals of structuring robot and simulation programs, editing code, building, launching new simulations, and deploying robot apps. Begin by creating a simple project template that includes a robot in an empty simulation scenario.

Robot Monitoring

Using Amazon CloudWatch Metrics and Amazon CloudWatch Logs, keep track of a robot’s health and operational metrics in a virtual bookstore. Speed, distance to nearest obstacle, distance to current target, collision count, robot CPU utilization, and RAM usage are among the parameters streamed.

Simulation launcher
Launch batch simulations in AWS RoboMaker with CodePipeline and Step Functions. 

Robot navigation
Create a map and navigate the robot to a designated location in the RoboMaker simulator. 

Reinforcement learning
Escape from a maze world by training a reinforcement learning model on AWS RoboMaker.

End-to-end robotics application
This sample application uses NASA JPL’s Open Source Rover to demonstrate an end-to-end robotics system. It comes with a URDF file that is based on the popular open source project.

Multi-robot fleet simulation
Learn how to use Gazebo to simulate a fleet of robots in order to design and test apps like path planners and fleet management systems.

Pricing

Pricing of AWS RoboMaker

WorldForge: You can use RoboMaker WorldForge to create a world (including 3D assets) for use with RoboMaker Simulation and then export it to your Amazon S3 bucket for usage with other programs and services. For each world that you create and each world that you export, you will be charged a set cost.

Application deployment: For over-the-air (OTA) deployment, or remote software updates, AWS RoboMaker application deployment uses AWS Greengrass. There are no additional charges for using this capability within AWS RoboMaker application deployment; standard AWS Greengrass pricing applies. The pricing of AWS Greengrass is determined by the number of active devices that interact with AWS during a particular month.

Development environment: AWS Cloud9 hosts the AWS RoboMaker development environment. There are no additional charges for using the RoboMaker development environment; standard AWS Cloud9 pricing applies.  AWS Cloud9 charges the computing and storage resources (such as EC2 instances and EBS volumes) that are utilized to run and store your code.

AWS RoboMaker Customers 

iRobot: “Using the AWS RoboMaker simulator, we can run tests faster than real time and in parallel, enabling us to run 20 times the number of tests we did before, which gives us a more comprehensive measure of the product’s stability.”

  • Chris Kruger, Director of Software Engineering, iRobot

Seafloor: “With AWS RoboMaker Simulation, we’ve been able to scale our field use cases without the complexity, cost, and difficulty of performing identical tests on the open water. RoboMaker enables us to integrate our simulation testing into a CI/CD pipeline using AWS CodePipeline and CodeBuild. This made it possible for us to standardize and automate our software release process, maintain critical pre-configured environments, and keep the entire code base stable and maintained.”

  • Marcos Barerra, Lead Robotics and AI Research Engineer, Seafloor Systems Inc.
AWS RoboMaker Customers 

Cheetah Mobile: “We began investigating how to simulate our robots’ mobility and how to provide simulation testing to our secondary developer customers as a service. We tried building and running test environments in Gazebo environments that we managed ourselves, but the development costs were too high, and it took much of our staff’s time. With the help of AWS RoboMaker, our customers can create multiple, realistic testing environments and run simulations tests with substantially lower costs and less work for our team. Since adopting AWS RoboMaker WorldForge, we have reduced our simulation development costs by 80% and the cost of operating simulators by 40%. Additionally, we and our customers benefit from the consistent excellent quality and automation that RoboMaker and AWS support provide, which can further reduce our operating expenses.”

  • Kang Zhong Zhang, General Manager of AI Open Platform – Cheetah Mobile

MultiplyLabs: “Using AWS RoboMaker, we can centrally orchestrate each manufacturing cluster of robots, with 9–15 different robots all connected to AWS RoboMaker. As a result, we can deliver customized therapies to patients in a single pill. We are also ready to scale this to all our customers quickly. Using AWS RoboMaker, it will be easy for us to go from our first nine robots to our next 100.”

  • Zack Bright, Chief Technology Officer – Multiply Labs

LEA: “Because RoboMaker helps us easily access AWS machine-learning services, we will be able to analyze sensor data from LEA to make predictions and send alerts. By using RoboMaker to stream data to the cloud, we’re enabling the next generation of Lea robots to better detect movement and behavior changes that might suggest a heightened fall risk and reduce device speed or alert caregivers.”

  • Gabriel Lopes, Control and Robotics Scientist – Robot Care Systems

Conclusion

In this blog,  we have explored AWS RoboMaker’s benefits, how it works, features, use cases, applications, pricing and customers who are using it. You can easily manage, and scale simulation infrastructure for multi-robot simulation and CI/CD integration with simulation regression testing. We will demonstrate how to build a ROS CI Pipeline using AWS RoboMaker and CodePipeline with step-by-step instructions in our upcoming blog. Stay tuned to keep getting all updates about our upcoming new blogs on AWS and relevant technologies. 

Meanwhile …

Keep Exploring -> Keep Learning -> Keep Mastering

This blog is part of our effort towards building a knowledgeable and kick-ass tech community. At Workfall, we strive to provide the best tech and pay opportunities to AWS-certified talents. If you’re looking to work with global clients, build kick-ass products while making big bucks doing so, give it a shot at workfall.com/partner today.

Back To Top