A robot can be thought of as a computer on wheels: it is distinguished from a traditional computer by its physical, movable "body", and is distinguished from a traditional machine by its computational "brain."
The body of a robot moves in some 2D or 3D space, by means of applying forces to the robot's own body or its environment. The body can have a wide range of forms, ranging from a ground vehicle with wheels to a complex humanoid robot. Most robots are usually made of metal or some other rigid material, where rigid sections known as links are connected by movable joints at their articulation points.
Link. A rigid component of a robot, often attached to other links via joints.
Joint. An articulation point between two robot links.
The "brain" of a robot consists of one or more computers running software that process inputs from its sensors and computes outputs that drive the robot's actuators. Communication between the processor, sensors, and actuators is accomplished via wires or sometimes wireless communication.
Each of these components is analogous to some component of a biological system. Links are analogous to bones; joints are analogous to, well, joints; sensors are analogous sensory organs; actuators are analogous to muscles, and wires are analogous to nerves. Just as there are millions of biological species with diverse, sometimes exotic external and internal structures, the range of possible robot designs is endless.
|Pioneer mobile robot||Honda Asimo humanoid robot|
|1 link (body), 0 joints||72 links (incl. fingers), 26 joints|
|Actuated by wheels (differential drive)||Actuated by electrical motors + speaker|
|Sensors: SICK laser, sonar ,wheel encoders||Sensors: stereo cameras, joint encoders, gyroscope, inertial measurement unit, foot pressure sensors|
The capabilities of robots have been changing fluidly over the years, as researchers invent new materials, fabrication strategies, circuits, computers, sensors, and actuation devices. Indeed, keeping up with the state-of-the-art can be exhausting!
Like the bones of an animal, a robot's links offer structural support and protection of internal parts. Most often, some sort of metal is used to provide strong structural support, although some robots use other materials like wood, plastic, or composites. Surfaces that are meant to interact with the environment should be shaped appropriately for the desired task, and may be coated in rubber or another high-friction material to ensure consistency of contact.
Joints in robots typically either allow rotation or translation. Rotation usually occurs about a single hinge-joint axis. Ball-and-socket joints like in the human hip or shoulder are much more rare due to the difficulty of fabrication, lubrication, and actuation. Translational joints are fairly common in the form of linear slides used in gantries and Cartesian positioning stages, and in pistons used in many hydraulic and pneumatic robots. To ensure precise movement and durable operation, the joint should be constructed from high-strength materials and high-precision manufacturing. Friction reduction along joints is usually provided using lubrication, bearings, or bushings.
The links and joints of a robot also make up its outward appearance, and for some applications significant effort is devoted to designing a pleasing appearance. To an engineer this may seem like a frivolous concern, but the success of a consumer product often rests on the appeal of its design! Robots that are designed for direct human interaction, such as haptic devices or exoskeletons, should also be designed with ergonomic concerns in mind.
It should be noted that although links are mostly rigid, all materials do flex and resonate to some extent. This can be problematic for high-precision applications. Flexibility can also be exploited for certain applications, such as impact-tolerant end-effectors. Soft rubber is often used in robot fingertips to encourage a larger surface area to be in contact. Moreover, some researchers have developed soft robots whose bodies are designed explicitly to be flexible, like octopuses or elephant trunks. For flexible links and soft robots, the traditional link-and-joint modeling framework that we will cover in depth in this book does not directly apply. Instead, more complex continuum mechanics models should be used to analyze and predict their behavior.
Sensors are devices that measure some physical quantities of the world and encode the signals into electrical (typically digital) form. There are many kinds of sensors, and more are being invented every year. Common sensor types in robotics are given below.
|Proprioceptive||joint encoders (relative or absolute), joint limit contact switches||Measure the position of a link relative to another.|
|Inertial||gyro, accelerometer, IMU||Measure the acceleration, velocity, or position of a link.|
|Tactile||contact switch, force/torque sensor (load cell), scale, pressure sensor, tactile array||Detect external forces on the robot's body.|
|Visual||monocular camera, stereo camera, laser rangefinder, depth sensor||Measure light intensity from the robot's surroundings. Some sensors estimate distance from the device to objects in the world via triangulation or time-of-flight.|
|Other||GPS, sonar, temperature (especially motor temperature), gas sensors, battery voltage|
Most of the time, sensors are mounted to a link of the robot, and move while the robot moves. The raw data produced by the sensor is often not particularly useful in itself (e.g., cameras will give you pixel colors rather than object identities), and perception algorithms must process this data into meaningful quantities. It is important to build accurate models of the physics behind the sensor (and methods for "inverting" these physics) in order to help a robot correlate sensor signals into an understanding of the physical world.
The position and orientation of the sensor on the link is extremely important to be able to make sense of sensor data; we will look into this more when we discuss calibration.
TODO: fill out section
The title of this section is a bit misleading: robots don't perform "cognition" as humans and animals do. However, they do indeed need to process sensor information and make decisions about how to act. This processing is accomplished via one or more computers, rather than biological brains. The nature of a robot's computing hardware is relatively unimportant to its behavior, as long as there are sufficient computing resources available. Instead, what has greater impact is the form and function of information processing elements, which is referred to as a cognitive architecture.
(The terminology used in this chapter is highly influenced by Chapter 2 in Stuart and Russell's excellent textbook Artificial Intelligence: a Modern Approach.)
A cognitive architecture resides in the robot's mind, which controls the robot's body, which interacts with the outside world. The body and external world form the information processing environment of the mind. (Note that the mind cannot alter the outside world directly: in other words, no telepathy is allowed!) The role of a robot's mind is to receive sensor information (sense), do some processing (plan) and to output commands to the body's actuators (act). This perspective is also known as the sense-plan-act framework.
Imagining one's brain severed from one's body at the spinal cord, the sense-plan-act framework views the brain's role as processing the input and output that pass through the nerves at the spinal cord. The brain is a highly developed organ that processes information, makes decisions, learn, and adapts in such a way to generate the infinite richness of human behavior. When we program a robot's software, we likewise control the contents and functions of its mind. The question is, how do we construct a mind so that the robot behaves intelligently (or at least, usefully)?
The notion of "useful task" is defined external to the robot itself, and is selected by the robot's designer. We will discuss techniques and issues with measuring performance in later chapters on system engineering; for now we shall assume there is some existing quantifiable performance metric, like tracking a curve as closely as possible, or having a low risk of colliding with pedestrians, etc.
First, we will consider a simple reflexive architecture, in which the inputs are converted to outputs via a set of fixed operations (rules). Examples of this architecture include servomotors, automatic doors, some factory automation components, and other simple electromechanical devices. The input processing can be sophisticated, such as those found in camera autofocus systems. We will cover other sensor processing methods in Section V. Often, simple reflexive machines are not even thought of as "robots" because they operate only on the data that is immediately provided to them, and do not derive any richer understanding.
In the model-based reflexive architecture, the robot estimates the current state of its environment using history. State represents an understanding of the robot's body and world, which may include information outside of what is currently observed. To implement such an architecture, the robot needs both memory of previous state(s) and a model of how its environment changes — that is, how the world behaves on its own and how its body interacts with the world. The architecture contains a state estimator that performs continual state updates. However, it still chooses its actions by fixed rules as a function of its state. Nevertheless, high-performance behavior can be obtained by 1) an accurate model, 2) an accurate state estimator, 3) carefully designed rules. Examples of this architecture include automatic stabilization for quadcopters, aircraft autopilots, and driver assistance systems in modern automobiles (e.g., automatic braking and lane keeping). We will cover dynamic models in detail in Section IV and state estimation in Section VI.
The next level of architecture complexity adds prediction and deliberation into the fold. A deliberative architecture uses a predictive model to estimate how its future actions alter the environment as well as a performance metric to choose which course of action is the best. To generate possible future actions in a systematic way, a planner computes many potential options and their outcomes. By maximizing performance a deliberative architecture is designed explicitly to achieve some notion of optimality. (Contrast this with a reflexive device, which can perform well only by coincidence or shrewdly designed rules.) These techniques can generate excellent behaviors if 1) the predictive model is accurate, 2) the planner discovers a high-quality sequence of actions quickly, and 3) the metric encoded by the robot is truly a good measure of performance (as judged by human observers). Section III covers planning in detail.
TODO: describe learning architectures.