Programming a Robotic Car. Learn how to program all the major systems of a robotic car from the leader of Google and Stanford's autonomous driving teams.
How can robots use their motors and sensors to move around in an unstructured environment? You will understand how to design robot bodies and behaviors that recruit limbs and more general appendages to apply physical forces that confer reliable mobility in a complex and dynamic world. We develop an approach to composing simple dynamical abstractions that partially automate the generation of complicated sensorimotor programs.
Specific topics that will be covered include: mobility in animals and robots, kinematics and dynamics of legged machines, and design of dynamical behavior via energy landscapes.
Introduction: Motivation and Background
We start with a general consideration of animals, the exemplar of mobility in nature. This leads us to adopt the stance of bioinspiration rather than biomimicry, i.e., extracting principles rather than appearances and applying them systematically to our machines. A little more thinking about typical animal mobility leads us to focus on appendages – limbs and tails – as sources of motion. The second portion of the week offers a bit of background on the physical and mathematical foundations of limbed robotic mobility. We start with a linear spring-mass-damper system and consider the second order ordinary differential equation that describes it as a first order dynamical system. We then treat the simple pendulum – the simplest revolute kinematic limb – in the same manner just to give a taste for the nature of nonlinear dynamics that inevitably arise in robotics. We’ll finish with a treatment of stability and energy basins.
Graded: 1.1.1 Why and how do animals move
Graded: 1.1.2 Bioinspiration
Graded: 1.1.3 Legged Mobility: dynamic motion and the management of energy
Behavioral (Templates) & Physical (Bodies)
We’ll start with behavioral components that take the form of what we call “templates:” very simple mechanisms whose motions are fundamental to the more complex limbed strategies employed by animal and robot locomotors. We’ll focus on the “compass gait” (the motion of a two spoked rimless wheel) and the spring loaded inverted pendulum – the abbreviated versions of legged walkers and legged runners, respectively.We’ll then shift over to look at the physical components of mobility. We’ll start with the notion of physical scaling laws and then review useful materials properties and their associated figures of merit. We’ll end with a brief but crucial look at the science and technology of actuators – the all important sources of the driving forces and torques in our robots.
Graded: 2.1.1 Walking like a rimless wheel
Graded: 2.1.2 Running like a spring-loaded pendulum
Graded: 2.1.3 Controlling the spring-loaded inverted pendulum
Graded: 2.2.1 Metrics and Scaling: mass, length, strength
Graded: 2.2.2 Materials, manufacturing, and assembly
Graded: 2.2.3 Design: figures of merit, robustness
Graded: 2.3.1 Actuator technologies
Anchors: Embodied Behaviors
Now we’ll put physical links and joints together and consider the geometry and the physics required to understand their coordinated motion. We’ll learn about the geometry of degrees of freedom. We’ll then go back to Newton and learn a compact way to write down the physical dynamics that describes the positions, velocities and accelerations of those degrees of freedom when forced by our actuators.Of course there are many different ways to put limbs and bodies together: again, the animals can teach us a lot as we consider the best morphology for our limbed robots. Sprawled posture runners like cockroaches have six legs which typically move in a stereotyped pattern which we will consider as a model for a hexapedal machine. Nature’s quadrupeds have their own varied gait patterns which we will match up to various four-legged robot designs as well. Finally, we’ll consider bipedal machines, and we’ll take the opportunity to distinguish human-like robot bipeds that are almost foredoomed to be slow quasi-static machines from a number of less animal-like bipedal robots whose embrace of bioinspired principles allows them to be fast runners and jumpers.
Graded: 3.1.1 Review of kinematics (MATLAB)
Graded: 3.1.2 Introduction to dynamics and control
Graded: 3.2.1 Sprawled posture runners
Graded: 3.2.2 Quadrupeds
Graded: 3.2.3 Bipeds
Graded: Simply stabilized SLIP (MATLAB)
Composition (Programming Work)
We now introduce the concept of dynamical composition, reviewing two types: a composition in time that we term “sequential”; and composition in space that we call “parallel.” We’ll put a bit more focus into that last concept, parallel composition and review what has been done historically, and what can be guaranteed mathematically when the simple templates of week 2 are tasked to worked together “in parallel” on variously more complicated morphologies. The final section of this week’s lesson brings you to the horizons of research into legged mobility. We give examples of how the same composition can be anchored in different bodies, and, conversely, how the same body can be made to run using different compositions. We will conclude with a quick look at the ragged edge of what is known about transitional behaviors such as leaping.
Graded: 4.1.1 Sequential and Parallel Composition
Graded: 4.2.1 Why is parallel hard?
Graded: 4.2.3a RHex
Graded: 4.3.1 Compositions of vertical hoppers
Graded: MATLAB: composition of vertical hoppers
Graded: 4.3.2 Same composition, different bodies
Graded: 4.3.3 Same body, different compositions
Graded: 4.3.4 Transitions