Skip to main content

Getting Started with Cloud Robotics

This guide is designed to help you use the cloud - and AWS in particular - to design and build a robot, from coming up with the initial idea all the way through to supporting your robots out in the wild! This guide will be updated over time as I'm able to build and upload new content, so keep checking back.

How to use this guide

Each category shows how a different technology can be supported using the cloud, both in development and in production. Resources in each category will link to blog posts, YouTube videos, and any other content that will help with that category, including providing guidance on AWS services that can assist.

If you use all of the knowledge here, you could end up with a scalable management system in the cloud for onboarding, monitoring, and controlling robots anywhere in the world (with an internet connection!).

Categories

Take a look at the following categories to find more resources for each.

AWS Services

Getting Started with AWS

AWS Account: Signup, Costs, and Budgets!

Taking the first step into a new set of services is scary, but AWS has controls to make it easy. Take a look at some of the options ready to start your AWS journey.

AWS IoT Core

What is AWS IoT Core?

Learn about AWS IoT Core, which you can use to connect your robots to the cloud!

What are AWS IoT Device Shadows?

Continue with AWS IoT Core by looking at Device Shadows, a powerful feature to keep a JSON document synchronized between cloud and robot!

AWS IoT Greengrass

AWS IoT Greengrass Concepts and Components!

See how to set up and use AWS IoT Greengrass, the reliable method of deploying and managing software at the edge.

Building Greengrass Components in Java and Python!

Build your own Greengrass components in Java and in Python using this sample repository.

Automatically Sending ROS2 Data to IoT Core with Greengrass

Connect ROS2 robots to the cloud with no changes to robot firmware using a custom Greengrass component.

AWS IoT Device Management

How to Build a Fleet Overview with AWS IoT Fleet Indexing

See how to set up Fleet Indexing from IoT Device Management, which is a tool for collecting select information from across your IoT devices.

Amazon CloudWatch

Collect and Filter Robot Logs with Amazon CloudWatch!

Send ROS2 log messages into Amazon CloudWatch using IoT Rules, and see what useful information can be pulled out from those logs. Also includes how to spot and fix a few common mistakes.

AWS Cloud Development Kit

From AWS IoT Core to SiteWise with CDK Magic!

See how to use Rules to ingest data from IoT Core into SiteWise. Set up performed manually, then automated with CDK.

AWS Lambda

Co-ordinating Robot Fleets with AWS Lambda

See how to build simple Lambda functions for co-ordinating your robot fleet from the cloud.

AWS Step Functions

Ordering Smoothies with AWS Step Functions and Robots

Understand how to chain multiple Lambda functions together with AWS Step Functions, including sending MQTT messages to robots.

Robot Setup

Initial Setup of Waveshare Jetbot AI Robot!

Initial setup of a Waveshare Jetbot AI Robot kit, minus the kit assembly. Show the parts up close and the installation steps to get the robot moving.

Using I2C to control PWM

Part 1 of a new series to control a JetBot using ROS Control. This entry uses I2C from a Jetson Nano to control the PWM from an AdaFruit FeatherWing board controlling the motors.

Boston Dynamics Spot Robot: Going for a Walk!

I show some of the basics of getting a Boston Dynamics Spot robot up and running. I show how it's packaged, how to connect the tablet, and how to get it moving around. In the future, I'll show how to use the Spot SDK and run some of the examples.

How to use the Boston Dynamics Spot SDK

I show how to download and set up the Boston Dynamics Spot SDK, talk through one of the examples, and show a few of the examples in action. The examples are to stand the robot up, have a virtual e-stop button, and build up a map that the robot can be moved around by specifying waypoints.

Connecting to the Cloud

How to send ROS2 Data to AWS IoT Core!

See how to create X.509 certificates for connecting your robot to IoT Core, a great first step in writing your data to the cloud.

From AWS IoT Core to SiteWise with CDK Magic!

See how to use Rules to ingest data from IoT Core into SiteWise. Set up performed manually, then automated with CDK.

Building a ROS2 Node using Rust!

Hear about the benefits of Rust, and why it's useful in many areas, including robotics. Then build a sample repository and use it to push data to AWS IoT Core.

Deployment

Deploying Docker Compose with Greengrass!

Find out how to build custom Docker images and deploy them into ECR, then reference them in Docker Compose files deployed as custom Greengrass components.

Visualizing Data

Estimating Battery Health with SiteWise!

Connect your robots to AWS IoT SiteWise to enable graphing of key metrics and other visualization!

Streaming JetBot Webcam data to Amazon KVS!

Set up two different ways of streaming data into KVS from the JetBot - direct ingestion and streaming using WebRTC.

Remote Controlling Robots

Turning off a robot from the cloud!

Configure your ROS2 node to only operate if the AWS IoT Device Shadow says it's enabled for a simple remote on/off button.

JetBot Gamepad Control with ROS2!

Move the JetBot around using a PlayStation controller over ROS2.

How to Build Gamepad Control in ROS2 for the Jetbot!

Deep dive of the previous video, with more detail on setting up the workspaces from scratch, including Docker development in VSCode.

Using a phone to move a JetBot using an AWS Amplify Webapp!

Deploy a webapp that will listen for messages and forward them to a ROS2 robot. Includes arrow keys so a cell phone can be used as a remote control!

Testing and Verification

Resources coming soon.

Simulation

Resources coming soon.

Engineering Career

Getting Started as a Robotics Software Engineer!

Learn how to get started as a robotics engineer - what to buy, and what to practise. I talk about hardware, your first programming language, and some robot kits to get going.

The Best Way for Beginners to Learn from Tutorials!

Learn how to get the most out of every tutorial by explaining every line, checking online resources, and digging through the code with a debugger and testing.

5 Tips on How to Stand Out as a Software Engineer

I tell you my 5 top tips on how to advance in your career and interact with your manager and team, and I end with some actions you can take today to start getting ahead.