3 Robot Software Systems
This chapter covers
- The robot software stack
- The basics of embedded real-time systems, distributed systems, mechatronic systems, embodied intelligence and their relation to robot software
- Four abstract example robots as reference robot architectures
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 towards 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. In order 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.