2 Robots from a Software Point of View
This chapter covers
- Interacting with the real world through robot APIs
- Three fundamental types of robots
- Using basic robot sensors and actuators
- Basic processing of sensor data and controlling actuators
In the previous chapter, we discussed what properties make a device a robot. Furthermore, we looked at the conceptual structure that can be used for all types of robot systems. In this chapter, our focus is on the software interface, the API, which we use to interact with the different parts of a robot.
Along with introducing the robot hardware building blocks, especially sensors and actuators, we will look at a possible API for each of them. Why a possible API and not the API? Each robot software ecosystem, both open source and proprietary, has come up with its own specific APIs for each type of robot, sensor, and actuator. However, each type of device has a natural abstract API due to its inner workings, the functionality it provides, and its purpose in the robot system. Therefore, once you have understood the abstract API for different devices, it is easy to learn the specific APIs that you will encounter. When working with (real or simulated) actual robots in later chapters, we will see in detail how our abstract APIs map to the Robot Operating System (ROS) API. The Robot Operating System (ROS) framework will be introduced in chapter 4. The Gazebo robot simulator in chapter 7.