- No, no, no, no, no.
The Infinity War begins.
Hello world, it's Siraj.
And a robotics company, called Boston Dynamics,
released yet another incredible video
demonstrating its flagship robot, the Atlas, doing parkour.
And I'm going to explain the technical details
of how it works, in this video.
This thing can now, literally, jump up stairs like a human,
in addition to being able to run in the forest
without any tethers,
and perform a bunch of acrobatic balancing acts.
This is so dope.
We can use humanoid robots, like Atlas,
to perform rescue operations in scenarios
that would otherwise be deadly for humans,
like firefighting or bomb disposal.
They can perform entertaining live shows
involving wild stunts.
And maybe, even someday, act as a personal companion,
performing chores for us humans
and helping us out in various ways.
If we read through the comments section, though,
of these videos,
every other comment is something about Terminator robots
or some kind of military usage.
Yes, DARPA did fund the development of this robot,
but for performing search and rescue missions, not combat.
And the United Nations has already begun
important and promising discussions
on what a proper set of regulations look like
that prevents these robots from being used for homicide.
Boston Dynamics began as a spinoff from MIT in '92,
and thinks of its robot, the software,
and the physical world, as one holistic pipeline.
Physical forces, like the kinetic energy of motion
and the force of gravity from the world
cause the springs and gears of the robot
to react in certain ways.
And the robot responds to this.
They also have this rapid experimentation mentality
that I love:
"Build it, break it, fix it."
Which is why we see them kicking the robots a lot.
So, let's start off with the hardware
of the latest version of Atlas.
It's 1.5 meters tall and weighs 80 kilograms.
It has 28 degrees of freedom throughout its body,
each degree of freedom is a different kind of motion
the robot can make along an axis, say it's elbow or knee.
Think of them like the robotic analog to joints.
To power all of these joints,
the Atlas robot uses a hydraulic power unit
with high pressure oil.
Hydraulic systems convert mechanical energy
into hydraulic energy.
When a hydraulic pump operates, it performs two functions.
First, its mechanical action creates a vacuum
at the inlet of the pump,
which allows atmospheric pressure to force liquid
from the reservoir into the inlet of the pump.
Next, it's mechanical action delivers this liquid
to the pump outlet and forces it into the hydraulic system.
Besides robotics, they're also used
in a wide range of applications,
from factory machinery to giant Japanese mech robots.
Basically, anytime an application requires
heavy and systematic lifting,
a repeated use of powerful and directional force.
B.D.'s hydraulic system can run for about half an hour,
up to a full hour without needing to be tethered
to a power source.
It consists mainly of a motor, a reservoir,
and a hydraulic pump.
The system can generate a tremendous amount of power,
and is based on Pascal's Law of Physics,
drawing its power from ratios of area and pressure.
The major difference between Atlas and the vast majority
of other humanoid robots,
is that it's not powered by electric motors,
but by these hydraulic actuators,
driven by a battery powered electric pump.
Even though hydraulic actuation is more complex to set up,
it gives them way more power than electric motors,
and more compliance to absorb shocks.
Which is crucial to perform highly dynamic motions.
Atlas also uses a LIDAR to create a 3D map
of its environment.
This is an imaging system that makes sense of an environment
by bouncing lasers off of it,
then analyzing how they reflect back.
It's a precise range finder that operates in 3D space.
Additionally, it uses some stereo-proximity cameras
for situational awareness.
Each pointed in different directions,
so don't try to surprise it.
All of these components are controlled
by its onboard, real time control computer,
and cooled by the onboard thermal management system.
One more thing to note, here, is that a lot of the parts
were 3D printed because it's fast and efficient.
DARPA funded a robotics challenge for a couple of years,
and the Atlas robot was given to test
to different academic teams.
The goal was to get a robot to perform eight tasks
in different tracks,
including driving a vehicle, and climbing a ladder.
It was a very difficult challenge,
and resulted in a lot of hilarious robot fail videos
for us to watch on YouTube.
But dozens of teams that all had Atlas robots
could spend as much time as they wanted
taking them apart, and reverse engineering the hardware.
Despite this freedom, none of them achieved performance
anywhere near what Boston Dynamics was doing
even before the challenge started.
Do you know what that means?
No?
It means, the value of Boston Dynamics
is almost entirely in their closed-source control software.
What sort of algorithm could they possible be using
that's giving them such amazing results?
The first thing that comes to mind
is deep reinforcement learning.
In fact, both Google and OpenAI have used deep R. L.
to enable robots to manipulate physical objects
with unprecedented dexterity.
Luckily for us, B.D.'s CEO
recently had a Q&A session at MIT,
where he was asked this question.
Let's hear what he had to say.
- I'm sure we will use learning before too long.
I'm not sure whether it'll be deep reinforcement learning
or something else,
but mostly we're interested in optimizing
the complicated staged space partitioning we do.
- No deep R. L. So far.
In fact they're not using any machine learning technology
on that robot, incredibly.
You heard the man.
So, what are they using?
They're likely using a sack
of very carefully hand-designed, classic control laws.
Classical Control Theory provides us
with strong mathematical guarantees
of stability and performance,
without requiring a learning process.
It works outta the box,
if we've designed our control system properly.
But the scope of its abilities are limited.
Control algorithms have to be designed
specifically to perform a range of tasks.
If we change the task, we need to redesign the control laws.
We can see on the web that Boston Dynamics developed
a simulated Atlas software package
for the popular Gazebo Robotics Simulation Environment.
This acts as a high level controller
that lets developers make a set of joints
follow a desired trajectory,
specified as joint angles.
And it's a part of ROS, the Robot Operating System,
which Atlas' physical version probably uses as well.
ROS is a collection of software libraries
aimed at simplifying the task of creating robot behavior.
It allows us to create a control system
where individual robotic components are defined as nodes,
and can communicate data between each other
at the protocol level.
Framing our system this way
is also beneficial for enabling concurrent movement
across the distributed set of components on the robot.
Like moving an arm while moving a leg.
If we know what the hardware components are
and we can use ROS to create a control system
that encapsulates each component,
then comes the question of the control algorithm
to use on this this system.
Like the CEO said, an end to end approach is not used
but instead, several control algorithms,
each suited for different tasks, probably are.
The one they're using for walking looks pretty sick.
And a similar humanoid robot, Honda's ASIMO,
a delightful, human-sized Lego piece,
open sourced its walking algorithm
called "Zero Moment Point."
So, let's start with that.
Moment refers to a moment of inertia, it's a tensor.
The amount of torque needed
to cause any given angular acceleration
is proportional to the moment of inertia of a body.
Since robots have two points of contact with the floor,
their feet,
and they're supposed to walk run or jump,
their motion needs to be planned
in regards to the dynamical stability of their whole body.
All the positions, velocities, and joint angles,
need to be taken into account.
This is non-trivial, especially because the torso
of the robot has a larger mass and inertia
than the legs, which are supposed
to support and move the robot.
It's like the problem of balancing an inverted pendulum,
it's heavier up top than below.
The trajectory of a walking robot is planned
using the angular momentum equation
to ensure that the generated joint trajectories
allow for dynamical postural stability.
And this is quantified by the distance
of the zero moment point in the boundaries
of a pre-defined stability region.
The position of the ZMP is effected by the referred mass
and inertia of the robot's torso.
Since its motions generally require large ankle torques
to maintain stability.
ZMP accounts for the inertia of the robot
and can tell when it's about to fall.
It's dynamically stable.
If we paused it in the middle of a step,
it could fall.
It works by calculating the zero point moment
which is the spot at which all your inertia is canceled out
by the angle at which you catch yourself.
It's like sticking your foot out to catch a fall.
That's what the robot is doing.
ZMP is still inefficient.
It requires very large ankle torques
because it's in a near constant state of fall.
If we walk slowly with a 20 degree bend at our knees,
keeping our feet as flat as possible,
we can simulate what it's like.
Basically the ankles are responsible
for pushing the robot up.
But they probably aren't using ZMP, at least anymore.
They've got to be using a combination
of more dynamical control strategies.
There's actually been a lot of work in this space.
Capture point control, model predictive control,
quadratic programming,
direct inverse dynamical optimization.
All of these strategies are worthy
of a full course in robotics.
It's too much to fit into one video.
And that's not even including any machine learning,
which is exciting.
There are three things to remember:
Boston Dynamics is powered
using a very efficient hydraulic power unit,
which converts mechanical energy into hydraulic energy.
The Zero Moment Point algorithm is used
to help bipedal robots walk, run, and jump,
by computing a stabilized trajectory for the robot.
And Boston Dynamics likely uses a stack
of different dynamical control algorithms
to help its robot perform motions.
What was your first reaction when you saw Atlas do parkour?
Lemme know in the comments section,
and hit subscribe if you wanna see more educational videos.
For now, I've gotta run, literally.
So, thanks for watching.