
Chapter 1. What is Robotics?¶

What is a robot?¶

It might come as a surprise that it is actually tricky to define the word "robot." Contrast the idea of a science fiction android with a remote control flying drone. The android (appears) to think, feel, and move with the intellect of a human, while the drone simply executes the command of its operator. Yet, most people are in agreement that they can be rightfully called "robots."

There are some necessary conditions for something to be a robot. A robot is a machine that:

• Moves in the physical world,

• Senses its environment and/or itself, and

• Uses computational elements to generate its movement.

However, these are not sufficient for qualifying a machine as a robot. For example, your washing machine (if built in the last 10 years) will likely have all of these characteristics. A washing machine certainly moves; it senses the settings of its controls, the weight of your laundry, the incoming water temperature, possibly the dirtiness of your laundry, and so on; and will adjust its cycle speeds and duration accordingly using computation circuits. But there seems to be something missing here, since few people would refer to their washing machine as a robot! Similarly, your (relatively modern) car performs fuel injection, anti-lock braking, cruise control, and airbag deployment using several computers and sensors to monitor fuel efficiency, tire pressure, velocity, seat occupancy, etc. Yet, we are not ready to call it a robot just yet$^{[1]}$.

Let us propose a couple of other possible criteria to call a system a robot. What about if a robot were required to:

• Exhibit autonomy or automation, and

• Exhibit apparently intelligent behavior?

These provide a sharper boundary, as they would disqualify the washing machine and non-self-driving car from consideration as robots. But, there exist many robots that are not autonomous, such as the remote-controlled drone mentioned above, or surgical robots under surgeon control, like the Intuitive Surgical Da Vinci robot.

An intelligence criterion is also difficult to apply because since it is challenging to define "intelligence" without delving into a philosophical minefield! By using the phrase "apparently intelligent" we sidestep the issue by assuming a human judge. But what is agreed upon as "intelligent" may change from year to year; compared to those devices in the 1950's, our modern washing machines and cars are actually quite smart! Perhaps as the control and artificial intelligence technology used in robots becomes more widely adopted, the line dividing robot and non-robot machines will become blurrier and blurrier... until the term "robot" has lost its meaning.

Overall, it may be a pointless exercise to extract a precise definition of robot. In any case, the layperson's "I know a robot when I see one" should suffice for the purposes of this book.

How to Develop a Robot¶

A roboticist is a thinker, not a tinkerer. Although many students begin tinkering with robots at a relatively young age, this process is not usually the best way to develop a robot that performs a task well. Robotics is a more deliberate way of reaching the end goal that is informed through decades of prior research, analysis, and practical experience. One way to define it would be as follows:

Robotics: the study of systematic, principled techniques to aid in the development of robots that perform desired functions.

Although robots are some of the most complex machines in the world, there is a logic to how they should be developed. A good roboticist will follow this logic whilst using any available techniques at his/her disposal.

Specifically, the recipe for developing an intelligent robot must follow these major steps:

1. Fabrication: Design and fabricate a mechanism with sensing, actuation, and computing capabilities to fulfill the intended task.

2. Measurement: Develop measurement apparatus(es) and a testing protocol to observe the function of the mechanism

3. Calibration: Use measurements to calibrate (or learn) a model of the mechanism's dynamics, actuation, and sensing.

4. Control: Develop and validate a control subsystem that maintains system stability and provides medium-level functionality for planning.

5. Knowledge representation: Decide upon a knowledge representation to be shared between planning and perception subsystems.

6. Perception: Develop and evaluate a perception subsystem that produces knowledge relevant to the task (robot state, maps, object identities)

7. Planning: Implement and test a planning subsystem that generates feasible trajectories to accomplish high-level tasks.

8. Supervisor: Develop a high-level supervisor that schedules tasks, provides a user interface, etc.

9. Testing and evaluation: Test the entire system in the field (on the real task in the real world, and perhaps with human end-users).

It is important to note that these steps are almost never followed linearly, because robot design is a cyclic process of trial and error. Any robotics project will incur many, many design cycles over its lifetime. For example, unless the team is limited to an established robot platform, or purchasing off-the-shelf parts, redesigns of the mechanism usually occur after steps 3, 4, and 6. Mechanical redesigns may also occur after planning tests to make task execution more successful. On the software side, new knowledge, perception, and planning requirements are bound to arise as tasks are tested more thoroughly. After testing with end-users, it is not uncommon to go all the way "back to the drawing board" to build a new mechanism! A wise roboticist will develop their later components to rapidly accommodate minor mechanical changes.

Buying an established robot platform can greatly speed up development time by shortcutting steps 1-4, but many vendors sell fairly raw hardware (requiring a rehash of steps 2-4). Also, there may be locked-in decisions that prevent certain functionality to be implemented later. To use a robot as a haptic device, make sure its motor controllers provide high-rate feedback and a force control mode! To have your robot navigate outdoors, make sure that it has a laser sensor or stereo vision rather than a structured light sensor! This makes it very important to examine the technical specs of a robot — even the most mundane details — with a fine-toothed comb before making a purchase.

The theory, mathematics, and algorithms that are discussed in this book are designed to facilitate the development of functional robots. For example, it is unnecessary to go to "square one" for every component of a robot, as long as that component is deeply understood. A good roboticist will understand which off-the-shelf techniques apply, and where. However, there is no substitute for real-world testing!

Testing is one of the most painful parts of robotics, but ultimately one of its most satisfying. Although a given technique might be theoretically beautiful, it will have been largely tested in the lab, making certain idealizations of the real world, or for a slightly different use case. The bulk of time spent doing robotics work is usually tweaking, tuning, and testing these tried-and-true techniques until they fit for the problem at hand. But once the technique is validated by thorough field testing, its merits are unimpeachable!

In summary, a good roboticist:

• Understands the robot development process.

• "Minds the gaps:" understands how their sub-system works with other components of the project.

• Is not afraid of testing.

• Clearly communicates the assumptions, performance measures, and limitations of their sub-system.

• Understands the assumptions made by any technique before employing it successfully in practice — or making the tweaks necessary to make it work.

• Is aware of classical and state-of-the-art techniques.

• Is up-to-date on current design tools, hardware, software, algorithms, and programming languages used in robotics.

Footnotes¶

[1]: Presumably, by time of publication, self-driving cars are not yet widely commercially available.