How-To

How To Use AWS as a Robotics Platform

AWS RoboMaker is more than just a tool for managing and monitoring fleets of robots. The service is also designed to act as a development tool, allowing engineers to write, test and refine code prior to applying that code to a production robot.

One of the biggest trends in the world of IT over the last few years has been the proliferation of Internet of Things (IoT) devices. Although much of the business focus on IoT has revolved around relatively mundane things such as industrial sensors, robotics are increasingly being Internet-enabled. Not surprisingly, Amazon Web Services (AWS) offers a service called RoboMaker that's designed to act as a platform for creating, testing and maintaining Internet-connected robotics.

The AWS RoboMaker service allows you to define an entire fleet of robots, with each individual robot acting as a member of the fleet. However, AWS RoboMaker is more than just a tool for managing and monitoring fleets of robots. The service is also designed to act as a development tool, allowing engineers to write, test and refine code prior to applying that code to a production robot.

On the surface, these capabilities probably sound just like any other development environment. Microsoft's Visual Studio, for example, also provides tools for writing and debugging code. However, there are two things that make writing code for robotics different from writing other types of applications. First, the code will eventually run on specialized hardware, where it will be required to recognize and interpret sensor data. Second, a robot has to be able to interact (or at least recognize) its surrounding environment. As such, those who wish to create and test robotics in a virtual environment have historically had to simulate both the robot and the environment within which the robot will be operating.

One of the things that makes AWS RoboMaker such a great platform is that AWS has greatly simplified things for you. In fact, AWS provides several predefined test environments, which are coupled with sample robotic code. The underlying code is made available (on GitHub) to those who wish to modify it for their own purposes, or who want to use it as a tool for learning how to write code for robots.

Even if you aren't necessarily interested in designing and simulating your own robots, the test environment is still worth checking out because you can do some really cool and interesting things with it. If you look at Figure 1, for example, you can see that AWS provides sample applications for things like navigation and person recognition, voice commands, and even a self-driving car.

[Click on image for larger view.] Figure 1. AWS provides some really interesting sample applications.

If you want to check out one of these sample applications for yourself, simply select the application and then click on the Launch Simulation Job button, found at the bottom of the screen.

When you launch the simulation, AWS will have to set up several resources, as shown in Figure 2. You'll also notice that the figure indicates that simulation jobs run for an hour, and should be terminated once the job finishes.

[Click on image for larger view.] Figure 3. AWS will need to provision several resources prior to running a simulation.

Once the various resources are in place, AWS will take you to the screen that's shown in Figure 3, and will launch the simulation.

[Click on image for larger view.] Figure 3. My simulation is now running.

As you can see in the figure, the Simulation Tools section provides terminals that you can use for interacting with the simulation. Clicking on Gazebo, for instance, opens the display shown in Figure 4. As you may recall, I said earlier that a big part of robotic simulation was simulating the environment. In this case, I'm simulating a driverless car, and as you can see in the figure, AWS has provided a test track.

[Click on image for larger view.] Figure 4. This is how you interact with the simulation.

If I change the view a bit, you can see the car driving around the track, as shown in Figure 5.

[Click on image for larger view.] Figure 5. The robotic car is driving on the test track.

In case you're wondering, AWS provides plenty of data pertaining to the simulation. Scrolling down on the screen shown in Figure 3 reveals some of the available data. Additional metrics are also available through CloudWatch.

When you finish running a simulation job, you can terminate the job (to avoid extra charges) by clicking on the Actions button, and choosing the Cancel option. Depending on which simulation you ran, some additional cleanup might also be required in AWS CloudFormation, IAM and Cloud9. You can find the full cleanup instructions here.

About the Author

Brien Posey is a 22-time Microsoft MVP with decades of IT experience. As a freelance writer, Posey has written thousands of articles and contributed to several dozen books on a wide variety of IT topics. Prior to going freelance, Posey was a CIO for a national chain of hospitals and health care facilities. He has also served as a network administrator for some of the country's largest insurance companies and for the Department of Defense at Fort Knox. In addition to his continued work in IT, Posey has spent the last several years actively training as a commercial scientist-astronaut candidate in preparation to fly on a mission to study polar mesospheric clouds from space. You can follow his spaceflight training on his Web site.

Featured

Subscribe on YouTube