- 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.
