How ROS Works On a Physical Robot

Building a robot with common maker parts

Jason Bowling
Exploring ROS Robotics

--

One of the issues I most struggled with when I first started learning ROS was how it connected with the robot hardware. I didn’t understand how sensors and actuators like motors were connected. There are a number of ways this can be done, and ROS is quite flexible — here’s how I chose to do it. I’ll discuss the choices and options below.

The main computer

First, I opted for a Raspberry Pi 4 (the 2 gigabyte of RAM model) because it’s what I had on hand. A higher memory version would have been even better. A Jetson Nano would also make an excellent board for a small robot like this, especially if you wanted to run GPU accelerated applications like NVidia’s Isaac Gems or darknet_ros. Most standard ROS nodes don’t use GPU acceleration, and the CPU on the Pi 4 is a bit more potent than the one on Jetson Nano, so it’s not a bad choice to get started with.

The Raspberry Pi 4 is loaded with Ubuntu 20.04 for the Pi since ROS is easiest to install on Ubuntu. ROS versions (at least ROS1) were tightly bound to the version of Ubuntu they were released for. It’s a bit resource intensive, and the camera was challenging to get work, but it otherwise works really well. More on that installation process later — right now, we’ll stick with the top-level overview.

--

--