3 Robot Software Systems
We learned about the six essential parts of a robot system (sensors, sense, plan, act, actuators, environment) in chapter 1. Chapter 2 explained the three fundamental robot types (manipulators, mobile robots, mobile manipulators). Furthermore, the basics of sensors, sensing, acting, actuators, and their abstract API were discussed. In this chapter, we take the next step toward implementing concrete robot software components.
Real robot systems have a certain inherent complexity to them as they need to deal with the complexity of the real environment. To manage this complexity well, just like with any other complex software system, we need a suitable software architecture. Although, we leave many details of robot software architecture - and software engineering - to later chapters, you will already have a solid understanding of the typical robot software stack by the end of this chapter. It is important to have a feeling for the different layers in the robot software stack because each specific robot functionality exists in a wider context and not in isolation.