Early on, researchers of robotics at Stanford University found that prototyping software for robots was an intensive programming task, as they had to start coding from scratch for every project. There was a time in which programming languages such as C++ and Python were used for robotics as the general programming languages they are, and that fact required great efforts to build every piece of software to provide a robotic level of functionality, such as navigation or manipulation.
It was not only a question of the reusability of the code, but it was also a matter of how things worked in robotics. In procedural programming, the typical flow of a program executes one step after another, as shown in the following diagram:
The task that this program executes is to combine multiple images into one, as can be easily inferred. From our robotic point of view, the...