Chapter 4. Controlling Embedded Boards Using ROS
Do you know how a robot makes decisions according to its sensor data? It has a processing unit, right? The processing unit can be either a computer or a microcontroller. We are using high-end computers to process data if the robot has sensors such as camera, laser scanners, and LIDARs. On the other hand, microcontrollers are commonly used in all kind of robots for interfacing low-bandwidth sensors and for performing real-time tasks. Both these units are commonly found in a standard robotic system.
In small robots such as line follower, we may do everything using a single controller. The sensors such as ultrasonic distance sensors, Imus can easily interface with a microcontroller. So in a robotic system, these two units can work independently, and there will be some kind of communication happening between them.
In this chapter, we will discuss how we can communicate with an embedded controller board from a computer running on ROS. It is very useful to acquire sensor data from a controller using a computer, and you can do the remaining processing on the computer. In most of the high-end robots, both controller and computer are used for low-level and high-level control and processing.
We'll also look at some popular embedded boards and their interfacing techniques with ROS.
Here are the topics we will look in this chapter:
- Getting started with popular embedded boards
- Interfacing Arduino with ROS
- Interfacing STM32 with ROS
- Working with Raspberry Pi 2 and ROS
- Odroid and ROS