An excerpt from Robotics for Software Engineers by Andreas Bihlmaier

This article explores what a robot is and what it is not.

Read this if you are a software developer who is interested in learning more about robotics.

Take 25% off Robotics for Software Engineers by entering fccbihlmaier into the discount code box at checkout at

Robots and other machines

Before having a look at what makes up a robot system, let’s get a better understanding what is a robot and what is not. To avoid getting into theoretical debates on the nature of robots or getting lost in encyclopedic definitions, we answer this question, for the purpose of this article, from a practical perspective, by looking at some examples.

The first boundary between robots and other things is simple: If there is no significant direct physical interaction with the real world, it is not a robot. Showing something on a screen, blinking LEDs or generating sounds is not sufficient to count as significant interaction. Thus, chat “bots”, voice assistants, “robotic” process automation (RPA), smartphones and regular computers in general are not considered to be robots.

The second boundary we want to draw is between robots and machines in general. All machines satisfy the criteria of significant direct physical interaction with the real world. No matter whether you think of a microwave, your coffee maker, (non-self-driving) cars or industrial equipment, each of them clearly significantly alters something in its physical environment. However, what the majority of machines lack to qualify them as robots is programmability and a general nature. Being able to use software to control the operation of a device is a quite straightforward criterion. Although more and more machines, even very simple ones, are controlled through software running on some sort of microcontrollers, the firmware is not meant to be changed, apart from bug fixes. Yes, it is possible to “hack” your coffee maker and change details of its operation by modifying its firmware. This is where the second part comes in, the general purpose nature or open-endedness of robots. Robots are intended to change their behavior and tasks according to the program being executed on them. Of course, a particular type of robot is limited in what it can do by hardware or physics. There are no universal robots in the sense of computers being universal in the computations they can perform. Still, using some common sense, it is quite obvious how a robot that can be programmed to either weld car chassis, assemble a smartphone, draw calligraphy or serve coffee, is much more general purpose than a device that can make hot water, espresso, and latte macchiato.

The reason for making sure you have a solid understanding of what is a robot and what is not can be found in the proverb “if all you have is a hammer, everything looks like a nail”. Not only will this book teach you robot programming skills, but you will also start seeing your environment from a robotics perspective. In other words, you identify the robotic aspects of the man-made and natural systems around you. Yet, as enlightening (and at times hilarious!) as this new perspective can be, you should make sure that you apply robotics software to robots. Don’t force robotics software principles onto things that are not robots.

Robotics the big picture

Every robot system can be conceptually split into six distinct parts: Environment, Sensors, Sensing, Planning, Acting, and Actuators. Figure 1 illustrates how these parts belong together and how information flows through the robot system from left to right.

Figure 1. The conceptual structure and essential six parts of all robot systems.

The elements and shapes in figure 1 are essential to robots. Depending on what subsystem of the robot we focus on and what type of robot we are looking at, they will have different sizes, perform different functions and show more or less inner structure, but they will still be easy to recognize. Figure 2 shows three different robot types and two different emphases on subsystems. You don’t have to completely understand the details now, but the important part is to realize that widely different types of robots can be seen and structured in a common way.

Figure 2. An example of different robot systems and how they can be structured in a common way. The diagrams reflect the relative importance of each part through its size and degree of detail.

That’s the basics of what makes a robot and how robots have commonalities even if their appearance might vary wildly.

If you want to learn more about the book, check it out on Manning’s liveBook platform here.