Hi, my name is Mark Bespin and today we are going to talk about walking for robots
So
The general idea of this lecture will be first. We have some introduction then we will see two very important
Approaches on walking ZMP and linear inverted pendulum
And then we will talk about how to stabilize walking and in the end
We will also talk a little bit about other full body motions which are related
Okay, so first why should we care about walking in the first place?
I mean we have robots with wheels we have drones that can fly so so why should we care about walking?
It seems a lot of work
But yeah, what's the reason so?
first of all
locomotion in difficult terrain is just not possible with wheels but
Using legs and walking. That's very nicely possible
so we see here a picture of those goats which are able to climb really well in mountainsides and
Yes, you could now argue okay, I can also fly with my drone to the top of a mountain
While this is generally true drones have other issues such as they cannot carry so much weight
Or if there's like a storm or a lot of wind for example, they can also have issues so
for having
autonomous robots in
Doing locomotion in difficult terrain. It is nice to have
Walking as an option
Furthermore legs can be used for different other things too
so while a robot that uses wheels or a drone that uses rotors can
use those basically only for
For yeah locomotion legs
more there's a title so we see here a picture on a monkey on the right and
Yeah, obviously monkeys also use their legs for climbing
similarly
you as a human also use your legs for example to play football or
Yeah to do other things maybe close the door behind with your foot or stuff like that. So
legs are more of the other tile and
But the most important point why we should care about walking and for robots is if we want to integrate robots in our
own human environment
It is really necessary for them to have walking capabilities because well all our
environment
Artificial environment at least that we shape by ourselves is shaped for humans and therefore is shaped for
Yeah
agents basically which can walk so we have stuff like stairs and so on and
Yes, we also have a lot of
especially in the recent years
Created more exability especially for people in wheelchairs
So you could also argue here we can do something similar for
wheeled robots and wheeled robots could use the same elevators or Rams and so on as
persons in wheelchairs, that's true
but
Yeah
typically, we only put this additional effort into places which are
for example public transport or maybe university buildings, but we did not and we do not plan to redesign all
personal homes for example to be
Accessible and that's also
Typically not always possible especially with older buildings
So instead of making changing around all of our environment for the robots to fit in
It would make more sense
For the robots to be adapted to our environment
so
but
As nice as walking is it comes with a couple of problems first is stability
So that's quite obvious
Robot that is on four wheels basically like an autonomous car for example will well typically not that easy fall over
Robot especially one was just to we have two legs
Is very prone to falling and well, we know this as humans, too
We also fall sometimes especially when we're younger and we're still kind of learning to walk
Which takes us quite a couple of years actually to do it quite nicely
So we have this issue of stability and thereby also an issue of safety
because falling robot which is probably made out of metal and
Maybe also comparably heavy. I can easily and injure
Another person when it falls onto it
So that's an issue
Another issue is that the control of such a robot is much more difficult in comparison to a wheeled one for example
We the wheeled one. We just have to say okay rotate your wheels forward and the road is going forward
If we have a leg that we have to actuate then there are typically multiple actuators
And a bipolar robot in each leg typically six or even more
So we have to control each of those and then keep stability at the same time. So it's much more complex
The hardware cost are also typically higher
So again when we compare to a wheeled robot, we have just maybe two wheels
With one motor each and we can that's basically enough for a wheeled robot
For yes, I said, even if we have just the road was just two legs
We need around six actuators for legs or twelve actuators
That's already much more
motors than we need in quantity and they also have to be
typically of higher quality as they need to perform higher torques and
Another issue a bit related to this is the energy consumption
But you can already guess like if I have a wheeled robot again
It just stands around and it does not drive. It does not consume any energy
And like the robot does consume energy while standing
You know this as a human too if you are standing you consume energy and you're rather sit
And
There has been some research. This is quite from
Comparably old paper from the 70s, but it's quite a nice graph. I think which compares different animals and
machines in terms of their
Power they need to locomote so we have
On the one for one the x-axis the body mass
logarithmic scale
And on the other one the cost of transportation also in a logarithmic scale
Which is divided by the weight and the velocity of the object and
What we see here is quite nice. We see here
Quite a nice line of different fish species
Different flying animals are here. So from very small ones like mosquitoes and flies and bees
To larger ones like a pigeon for example
But they all
Kind of on one line and then we have running animals so like the animals
So there are some which are a little bit more off like this different mice's here then we have your lizards reds
Rabbit a groose and
a dog
Sheeter and a horse and so on
and
One other aspect here is this migratory line where the researchers said, okay
every animal below this line
Does walk typically more than 20 kilometers today?
And the other ones not so those are more like stationary so to say
Compared to the others which depends on their this rate of this kind of this cost of transportation that they have
So so where are we we are here? We are quite bad actually
or comparably bad at least
in our cost of transportation
so and
generally, we can already see that running is worse than flying or even swimming and
Interestingly, there are also different machines here. So motorcycle or
Volkswagen
Or Cadillac or you're also a bicycle. So, I mean bicycle is basically a human with wheels
If you want to take it simple and we see that the bicycle is much more energy efficient than the human by itself
so
That's
Quite impressive it I mean, it's kind of clear everybody who rode a bicycle knows
It's much easier and much faster to go by bike than by foot and that's kind of the whole point of it
But it's interesting to see nevertheless and it also gives us some idea on how
How good our energy consumption would be if we would if humans would have wheels so to say
And that would rather put us here in the direction of flying
animals
okay, so
Still evolution has
Made us have legs and not wheels. It has also things to do with that in biology. It's really hard to
Create some wheels
But
Obviously, there are also other strong points about being too like
As I already said that you are more as a title with this than with wheels
Okay, so coming a little bit back to
to robots
When we talk about walking for robots, there are a lot of different types of walking and I want to make some
Yeah, some vocabulary clear in the beginning
So first they're static and dynamic walking static walking means
Basically that at any given point in time
While you're walking you can just stop you're like not not stopping in the idea of finishing your step
But stopping in just the idea of not moving at all and you will not fall
You can try this at home and typically in a real lecture. I would
Make you stand up now and do it. So if you want to try it at home, just walk a little bit
and then
Try to suddenly stop all of your movements. You will recognize that
You will directly you will you will be able to do this, but your body will directly
move around a little bit so
That you become stable again. That's because humans don't walk statically
When you walk dynamically, you can walk also statically as a human
When you always shift your upper body be
Over your over one of your legs and then use this leg as one of your support leg and then do a step
With the other leg and keep both legs on the ground shift your body on to the other leg and so forth
You can also try this out yourself at home
So that's one
big difference between
those two
Then there's passive and active walking passive walking means you don't have any actuators yourself in your robot
But you use just some other form of energy to propel yourself. Typically
Due to going down some slope and I also have a video from of this
So here we see
This has obviously no motors or something. It's just some pieces of metal and some
Yeah, some
Some joints so to say but not actuated and it just uses the energy from going down the slope
And it's kind of walking but obviously this is more
Yes
interesting for research maybe
But not really applicable in real life and
Yeah, we also talked about static walking so
Here you can see comparably an old robot from the 90s doing some static walking. So it shifts
weight
above this leg the support leg then it puts down the next leg and now you see it shifts all
the weight on top of this leg and
and
now it
starts using the other leg to do one more step and you see we're 30 seconds into the video and we have
Almost done two steps. So it's comparably fast
Obviously you could still do this faster, but generally static walking is not not that fast
So to a degree we want to have dynamic and active walking
then we can also
Differentiate between different numbers of legs. So typically it's either two four six eight, but basically it can be any number
and
There are also different names for this. So two like robots are bipedal robots or four-legged robots are kratropets and so on
another
Thing is open loop and closed loop walking. This just means
In an open loop walking. I don't use any sensor input to correct what I'm doing. I'm just
Yeah, I'm just
kind of computing where I want to put my feet and I will just assume that I do this so
Cleverly and nicely that this will work out in a closed loop system
I will have some feedback from my sensors and adapt my movements
Due to that
So in this lecture, we will mainly talk about active bipedal walking not running
So running is when you have at some point no feet on the ground. That's a much more difficult problem
Yeah
so
Yeah, the video I already showed
So what of what different types?
Of implementation can we do to get it walking so we can use
some control theory
to yeah, that basically means creating some model of our robot and then
Yeah coming up with some formulas on how the physics will behave and based on this
Kind of find out how we have to control the robot
We can use neural networks and learn it
You can use central pattern generators. It's a more
approach which is closer to
Yeah biology. That's kind of how animals and humans work by having some
neurons which create some patterns and
Based on these patterns we move our muscles
Then we can use evolutional computing
Or we can also use expert solution, which basically just means there's a human
telling
Yeah, basically directly how to move
the robot
The expert is kind of the human because you humans are kind of experts and bipedal walking
So some more important words so support leg or foot
I already used it means just the leg or the foot where the robot is currently standing on
Flying leg or foot is the other leg, which is currently in the air
There are also different words for this. That's typically what I call it
The torso is the upper body of the robot the trunk this kind of the area between
both legs typically the point where
Like the point in the center of where both legs are attached to the upper body
That's typically around the spot where the center of mass of a robot is
One step
Typically just yeah doing just one step with one foot forward double step is doing two foot
sagittal means
That's kind of forward or backwards like in this
plane of
Which goes forward and backwards from the point of view of the robot and lateral is?
Autogonal to this it's basically the plane which means left and right
okay, so
One
Very important concept in walking is the support polygon and the support polygon is just
Basically the convex hull of all ground contact points so we can see here some images
So if we are standing with both feet on the ground
Then our support polygon is this whole area here
so the area of both feet and
everything in between so to say if we have
One foot completely on the ground and one touching just
Basically with the toes so to say the ground then we have this area here
if we would have just one feet on the ground it would be just
Just the area of the feet itself
so
Why this is so important we will see in a second
Another very important
Yeah
Kind of measurement
Or model for walking is the center of pressure
Basically this is just the center of all ground reaction forces
So ground reaction forces are basically the forces that apply to the feet of the robot
or to the human
Based
Mostly on gravity, but also on other forces that are acting on the human or the robot
so if we are just standing perfectly still and
Equal we typically have some
comparably flat ground reaction forces
If we lean like if we stand and we lean forward and we shift our weight forward and the
Segatal plane then we typically have more ground reaction forces here on on the front and that will also shift our center of
this
ground reaction forces or this center of pressure
and if we are like really shifting our
weight so much force that we are kind of falling forward then
basically, we will have all of our
ground reaction forces just at the tip and our center of pressure will be
Also here you can also try this out at home
just stand up from your comfortable chair where you're probably sitting in or your bed and
You just stand there
best without any shoes on and then just try to lean forward and backward or left or right a little bit and
Try to kind of feel this ground reaction forces in your own feet
and
Typically we as humans don't really think about walking. We don't really think about our
Sensors that we have because we use them so intuitively
But we have quite good sensing
in our feet to
Know kind of where our own center of pressure is because it's also something we use as humans as an input
in our
neural network so to say
Right, so this
center of pressure is
especially important because it's also
the zero moment point and
the zero moment point is
Yeah, it's a little bit strange at first if you hear it, but
And it's basically the point where all moments are zero
So that's not very helpful as an explanation. I know so deal with me
so if we take basically
this here as an example, then it's ours center of pressure or
zero moment point is here because
we have some moments to turn the feet in like this direction like counterclockwise because we have
Some ground reaction forces here. Basically those ground reaction forces want to push our foot
like
Yeah, upwards so this would kind of really result in some counterclockwise
Rotation of this foot if there would be no forces here, but there are equal forces here which
Create a momentum in clockwise direction
So basically we have some momentum here and we have some momentum there, but we don't have any momentum here
So we have zero moment
Yeah, that's kind of the point so
If we look here then
The point is shifted because we have more
Moment on this side than on that side
So the zero point is here and in the case where we are already kind of falling forward
We don't have any moment here
We just have because there's no ground reaction forces anymore because there's just no foot anymore on that side
but we have
well, we would have some here so we
Would actually fall because we yeah, we kind of always rotate around this
Zero moment point. Okay, so
We will go go back to this in one second
first
There is also a relationship between the center of mass
So just the center of masses. I guess you know it. It's like the center of all mass in our
In our body or in the body of the robot
and as long as we are standing
the projection of our center of mass
towards the ground is identically with the zero moment point and that makes also sense if you think about it because
the only
Ground reaction forces that we get then in this case are coming from gravity
So that's basically yeah, we we don't have any dynamical forces
So we only have the force that we get from gravity
Due to our mass and
That then results in this center of mass projection being the ZMP
because we have equal
moment on all sides of this point
But when we are moving dynamically like this tennis player here
then this is not true anymore because
Besides our
Gravitational forces we have some dynamical forces. So because we have some velocity here
Then our center of mass is not a
projection of the ZMP and
Furthermore
The center of mass is also typically not then in the support polygon
And this is already when we come back to this example of the static and dynamic walking
Then we have already now some way to describe
The difference between
static and dynamic walking and that is that in
static walking our
Center of mass is always above the support polygon while in dynamic walking
It is not and if you we have a look again at our support polygon
then we can see easily how this works, so
First we are standing with both feet on the ground when we shift our upper body on top of one of the feet
then our center of mass is also on top of that and then we can
lift our other feet and put it forward because
Our support polygon will then only be this one support foot
support foot on the ground, but our center of mass is above that and
when we put
the flying foot back on the ground
Our support polygon will again be similar like this quite large and we can transfer our center of mass
Kind of through this corridor
That is created by our feet. And this is how you can create a static walking
It's comparably easy to do and comparably easy to program
but it's obviously very slow because
You have to have very long phases of having both feet on the ground and that's also why we don't
Typically walk like this. You can if we want to but we are typically not doing it
So typically when we walk our center of mass is outside of our support polygon and
That's why when we suddenly would stop
We would fall if we would not then
Automatically shift a little bit our torso to the side above the support polygon
Okay, so
And the ZMP is always inside or on the edge of the support polygon
Just because of the fact that
If it's not inside the support polygon
But on the edge then we start to rotate about this zero moment point because we have more
yeah, we have moment on one side, but not on the other so to say and
There thereby it cannot shift further because we are already turning
Okay, so
Let's say we have a robot here. So this is let's say use our center of mass
We have two legs. So currently we're standing on this support foot here and
We have some forces acting up on our robot. So some gravitational force and some other force
which
Yeah, it's goes
Forward for example, and then we can
kind
Of combine those forces in those two dimensions to get like the combined force vector that is acting on this
On this robot and when we follow this line we can get the ZMP point
Okay, so
That sounds nice. I mean the other way around we could use some foot pressure sensors here
Measure where our center of pressure is we know that's the same as our ZMP and then we could based on this measurement
Conclude which kind of forces are acting on our robot
So, but what happens now if we would apply more force
To the robot
So by pushing it for example would then this
MP get out of the support polygon
Know that that MP is always in the support polygon
but it would come to the edge of the support polygon and
Then we would start to rotate about around this point and rotation
Around some point of your foot means just falling basically and
So you can do controlled falling obviously, but
Generally, you do not want to rotate about around the edges of your feet because yeah, that would make your robot unstable
Okay, so
This set MP is really nice
Because we can use it as a criterion to say when we are stable and when we are not
especially for static things
We don't only have to talk about walking. We can also talk about other things that you might want to do. So
You might want to stand up for example with your robot
then you don't have to
Lift your feet from the ground anyway, but you just want to
Kind of keep stable while getting up from some kind of squatting position then it
Makes for example sense to use the set MP
to
Yeah, know if you're stable or not or do something about it if you're not but it has some limitations
so
One on the one hand we have this general limitation that if we want to keep this always in
inside our support polygon
Then
Yeah, so
saying it otherwise so we also always want to keep it inside our support polygon, but
This set MP does not model everything. So it only models
Like
The direct yet model models more than the center of mass because it also models dynamical
Forces on the robot, but it does not model slipping on the ground for example because it only cares about one
dimension so to say and
It does not take into account if other parts of the robot
Are in contact with the environment?
Which for example would be the case of you're using a stick
for walking or you're
Holding your handrail or something like that
And it also assumes that the ground is perfectly level. So
That's also in reality
basically never the case and
in nature, especially
definitely not
so
Furthermore this does not tell us yet exactly how we need to move
It's more a criterion that says us how we are stable how we should shift to become stable
But how can we really model the complete walking of the robot?
So the one of the simplest models is a linear inverted pendulum model
Basically the idea is we see our robot
Mostly as a pendulum. So we have one foot on the ground. That's kind of where the pendulum is fixed
Then we have a center of mass. It's yeah the mass of our pendulum and
Then it's like in inverted pendulum, so you know the normal ones from the
From a very old clock for example
But here it's kind of inverted. So it's upside down. The mass is here and the fixed point is there and
It's a linear inverted pendulum because
We have some linear
Joint here so to say so this is kind of like a prismatic or linear joint which you can
Make longer or shorter so you can change the length of the pendulum
So this makes sense because basically this is what why we have nice so
Basically
the story why we why humans and animals have nice is that we can
Change the lengths of our legs with it
because
linear joints are
basically
Yeah, basically impossible by nature to evolve
Just based again on the fact how cells are working
Because it would be very difficult to have for example
Blood flowing from one part to the other and stuff like that
So we have instead knees and which looks a little bit different, but actually it does basically the same
So we can make it shorter or longer our neck
Okay, so if we
Now model this as some small physical model
then
We can say okay. We have one
Force also called kick force, which is the force that is applied on this
linear joint here and
We have some torque here around the fixed point
Which is basically the torque coming from our pendulum. We have some mass here and some links of this panel
so
when we
now have a look at different kind of cases, so
We start with the pendulum being something like this here and then we apply no force
to the linear
joint then what happens is we basically just fall down because
because if we have a mass here and
like in
linear joint without any force
then
so that's
Then it just falls down due to gravity and since there is no force in
Making this shorter or longer. This will
Be just like direct fall to the ground
okay, so then we can choose our
Force a little bit more cleverly so that we kind of presume the length of our leg
Then we don't fall down directly, but we still fall down but we kind of fall in some kind of
Yeah, more pendulum like
Shape here
Okay, so maybe we need even more force
So we could
Create more force and we may accelerate and get longer, but that's still not enough
But
What we actually want to do is we want to apply the mass times gravity divided by cosine of theta
which then results basically in
This kind of motion that we make our leg longer
and
keep our
Center of mass at the same height and that's kind of what we want to do not falling basically also means just
Keeping your center of mass at the same height
So, but this still has some issue
because
Typically, we cannot extend our leg as long as we want
Because there's just some maximum length that we have
so we cannot keep doing this forever at some point we would reach the maximum length and
Yeah, we could not keep the height and fall down again
So what can we do? Yeah. Well, we have to change
Our support leg. So that's kind of why we have two legs in the first place
because at some point it's
Yeah, we cannot get make it longer. So we switch to the other one and keep going like this
Yeah, if we
If we change
the point where we
change our spot leg
Then we can also influence our walking because an
Earlier touchdown of the next step would result in slowing down while a later touchdown would
Result in speeding up
that's again based on this model where you see here also that gains on speed because the
Yeah, the spatial difference here between two points gets higher
So we can also use this
to change the speed and
Obviously just changing the leg is not enough because
This kind of 2d idea is nice, but in reality
This would not walk work. This would not walk because
Then the two legs would collide. So at some point we have to do this kind of in a 3d manner with both legs being
parallel to each other
And then we also need to introduce some lateral movement
so that the
Center of mass is not always fixed in the center because then we would fall just to the side
So but that's also something we can do we can do
Movement like this where you the different colors are the different support legs and then you could get
the stable
moving so to say
But that's also not enough yet because this is just walking forward we want to walk in all directions
Or which is also called holonomic walking
So typically want to walk forward sideward and turn around our own main axis
Obviously this still
assumes that we are on a rough
plane and
We talk about mountains or something
We would also walk upwards
Somehow but to keep it simple we assume we are on at least a rough plane
So but we can also introduce this in our linear in vector pendulum model and come up with something like this here
this black line is and the
trajectory of the center of mass and
Those green dots are where the legs change and those are where we put our feet
Okay, that sounds nice. That sounds like okay. We solved everything
We why do we have still researchers on it? That's still not enough
The next issue is then that it's it's a good idea to change your leg
But there's an issue because in the the exact moment where we change our leg we basically
Have an unlimited acceleration because this is our speed
like going like this and
Then suddenly when we want to change our speed to this and you see this is not a smooth
Trajectory and that's always bad
and
we get a
huge accelerations at this support foot exchange point and
Accelerations always means forces and forces generally means falling down
So that's not really feasible in reality
So what can we do?
We can introduce a double support phase. That just means
We have a small
time
When we change the leg where both feet are on the ground and that allows us
to transition smoothly them
from
the speed
While having both feet on the ground and having not this abrupt change
That's also something we do as humans. We do it a bit mark. Yeah, we do it even more cleverly because
For now, we always assume our feet are just some plates we put on the ground
Human feet are a little bit more
cleverly made we have toes and
When we walk we roll those toes and that's kind of how we do our double support phase
So it for humans that basically looks a little bit more
like this image here where we use our
This rolling of our toes to create some double support face time
Without having the need to stick the whole foot to the ground like this
Okay
So that sounds nice
And then we can come up with the trajectory like this where we have some double support face marked here in blue
Okay
What we did not talk about yet, so we talked about single support
This is when we have just one foot on the ground talk about double support when we have both feet on the ground
What about zero support?
So
Basically when we are running we don't have any foot on the ground at sometimes
That's
Not possible really to model with this
kind of model
And we are just kind of not going to talk about it so much because it's not that
Relevant for now too. We are just basically not really there yet
Okay, so but still
Why are we not finished yet? Why don't we pack our things and say, okay, it's done. We know how to walk
Well, let me explain this as a video
so it's yeah, this video is a few years old now, but still
most of the robots kind of look like this so it's a
compilation of
Yeah, a lot of robots falling down from a robotic competition from DAPA
and
the
Well on the one hand, it's a little bit funny and it's also sad because each of those robots costs a few hundred thousand euros
But the point I want to get across here is that reality is
kind of annoying you can have your make your nice little model and
Do some physics and think well, okay. I know exactly
where my center of mass is and so on and so on and then the ground is not flat or
Something in your robot is differently than you modeled this and your center of mass is a little bit
somewhere else or
For example in this one case here
You modeled everything and you think you are now having some forces from this
valve that this robot
obviously tries to
Turn around but the robot didn't really grasp it correctly. So this force is kind of missing now. So
fine
and
Yeah, sometimes also something breaks just because out of hardware issues and
Yeah, this one is also really nice
So that's kind of the main issue that
Having such a model is nice and can generate you a general
Trajectory which also kind of makes sense, but it's just not enough to really have a real actual robot
Walk in reality. What we need is some kind of stabilization methods
so
Before we go to the robots quick question, how do we humans do this? So I mean we don't
Just compute how we should move our feet, but we actually have some sensors and use them
For walking so what kind of sensors do we use you can think about it a few seconds
Okay, so I already kind of spoiled at one so we have
Kind of force in those on the sole of our feet
that's something we obviously use for walking and I guess most of you also guess that we use our
Yeah
Balance sense of balance in up that we have from our ears
That's also one
Which is very important then we also use proprioception which is a sense which kind of gives us
an idea on
How our own body current what's the state of our own body kind of is so
how our joints are turned and how much talk we apply on our own muscles and
We also use vision not only to see where we have to put our feet in terms of where there is kind of the path
But we also use it as a stabilization method because we
Yeah, you can use vision to also balance yourself
at least to some degree
Okay, so humans use the coin quite a lot of different sensors
What can we do for robots so we can use I am use its inertia bed measurement units its sensor, which basically
Is something like a balanced sensor cannot get the how your how the sensor is oriented in the space
We can
Use four centers on the foot. So we can use
six excess top force toxins in the ankle. So those are
Yeah, those are centers which measure
All three dimensions of force and all three dimensions of torque
So you kind of get which force is acting on your foot
we can use
the joint torques and
We can use a camera
And besides the sensors we typically also need some kind of information of our robot from kind of a model
side of you
so we are our joints what are our masses of our different links and all the inertial of those and
What's the rigidity of those links?
So kind of how how squishy are they?
Yeah, so
if we have this data what kind of
What approaches can we do? So the very?
Simplest one is just stop just do nothing for a second
That sounds stupid, but it's also
comparably effective
and
That's also something with that we do as humans. So if you
If you get pushed by somebody and you become unstable you would just do one step finish your step
maybe but then just stop for a second and
Regain balance
Then we can do counter movements with the arms of the torso and we can change
Our step position. So where we put our next step that's also called capture steps
okay, so I
Will not really talk about the stopping because it's so trivial counter movements with our upper body
so
Basically, the idea is we are here with one leg on the ground and then we could use
either our flying leg or our upper body including arms
to generate some kind of counter force to towards the one that is making us falling down
The issue is using the flying neck is that it's mostly not really usable for this because you need to put it in the right
Place to do your next step
so
Typically you rather use your upper body or your arms and that's also something we do as humans. So if we
you get pushed you will kind of move your arms to
keep stable and
Animals are doing this too. So when we famously cats
Are really good at
if you throw them
In landing or they fall in landing on their feet and that's basically the same principle. They rotate their own body by
You by moving their arms and feet or yeah legs
Maybe not really arms, but the legs and their tail
So that they land on their feet and that's basically the same principle
Okay, and then the other approach is capture steps
so
Here we use the so-called capture point
Which is the point where the robot comes to a complete stop
if
Yeah, so that you kind of want to stop your robot
And to do this
you can
Sometimes it's enough to do just one step to this point and then you're then you're done and then you're captured yourself
sometimes you need multiple steps to do this depending on the
Kind of the forces that are acting on your on your robot
And I also have a video for that
So here you see one robot walking around
and
Yeah, it was around so the interesting part is now now it gets pushed
and you see how it reacts to this by
changing
The kind of where it puts the feet so it basically walks on the
spot as long as this
As it is not pushed and then if it gets pushed it
Takes a longer step forward
And trying to capture itself. So you see also this
That did not work perfectly
but
At least to some degree and here you see the same thing but with lateral movements
So again
One more time here see also to take multiple steps for the robot to become stable again
And here it again did not work perfectly
So it's also not not always working perfectly
And forces don't need to be applied like
actively it can be also
forces like
running into something
Okay
So another idea is obviously to use machine learning we will not really cover this in this lecture
if you're interested in machine learning and
Robots then I do some advertisement for my own lecture intelligent robotics in the winter term
But just a general idea for you
So general approaches are learning the parameters of a walking pattern generator
So it's what you cannot learn for example
how long this double support
Phase should be and then the walking
This gets more
Yeah, I kind of
fits more to the actual robot
Then just some abstract model that you have done
Then you can obviously just learn some neural network from scratch to do your walking that's
But that's kind of difficult. You can learn from demonstration
So I have some human provide you some demonstrations often how walking works
Or you can create some artificial central pattern generators and learn that
Yeah
and then some
videos
from
The current state-of-the-art to give you an impression how
Walking works. So really well
one of the yeah best and most dynamic ones and it's
Yeah, already comparably famous
Also outside of the robotics community is of course Boston dynamics with the Atlas robot
And this is just one of the videos they have multiple ones
Trusting to see is
That it has actually some zero support phase. It's one of the very few robots I know of
So, why is this robot so good?
Some people a lot of people always think this is AI and this is learned and so on and so on
No, it's not it's control theory. They don't really
Release much of their work because well, it's not really some open source
Thing but rather a commercial product and also a lot of research for the military so they
Keep most of their stuff closed
But from the stuff that
Is known is it is quite known that they don't use any machine learning, but this is just control three but
The thing is also what I want to point out here
This is not just good software. This is also really good hardware
And obviously one of those robots costs a huge amount of money
More in the area of millions
But just I mean you can write the nicest
Walking code that you want if your robot has not the forces
In yours in the servos or in the joints to push itself
Upward so quickly then you will never be able to program this because yeah, just limited by the hardware
So they have quite strong joints and they also have very precise
Joints, that's the other point and that's why they actually managed to make it work with control theory
Quite well so that it works really good
But they are not the only ones who are comparatively well this next one here is Cassie it's also
comparably famous bipedal robot
It's more like a bird from the legs
So the the knees are to the back but that does not matter that much
And it does not have a torso
But you see the the foot are really really small so the support polygon is super tiny and
You can see that it can walk actually on really different grounds. So not just on a perfect flat
artificial floor, but also on snow and
sand
And yeah, they
One thing I want to point out is they have this stick here
Okay, obviously they are kind of testing something. They don't want to make it their robot fall down 300 times
This one is really nice because it looks
very funny, but yeah
And obviously they're not really holding this robot
And obviously this robot can also work without but I just want to point out that this having such a cable or
Rope or something even really loosely on the robot
Helps typically the robot a lot. So because higher frequency
Wiggling is a very scientific term of this
Can be reduced quite a lot by those even loosely held ropes or cables or whatever
Because it has some damping effects on it
So and here you can see that it slipped but it actually recovered quite quite nice and
But you see also the the problems of walking robots if it would have not recovered
It would probably shut up this glass wall over there
So
Yeah, and it can kind of squat handle moving and shifting
Ground and it can also drive a segue
But driving the segue is actually I would say that the most
Easy part of all of this because you just have to lean forward and backward
Yeah, then like on a little bit more
I would say lower cost side
Here are some robot from the RoboCup, so this was the final from 2018
So these robots are still expensive
But more in the directions of a few ten thousands of euros and not
100,000 or million, so it's already like factor 10
and
Yeah here
you see
that there are
Not as fast
but still managed to
To be quite stable
And here you can see why Lex can also do other stuff you can also kick a ball with it for example
So
Here's some of my own research
So that's just paper which is currently in publication process of
Kind of our own
bipolar robot
So here is a lot of
enough points on the hardware
This is this IMU sensor I already talked about and
This robot costs like yeah from material point of view like 10,000 euros and also can
Walk quite nicely here. You can see actually this stabilization approach of just standing
That we also talked about so it worked quite well. We won actually I think first place in this
In this technical challenge of getting pushed by some weight
And he can see falling reaction, that's also something very important
and
Robustness against those falls like that. You don't break something
when the fall occurs and
Standing up is also obviously a very important thing because
At some point you will always fall down
With a walking robot and then you need to be able to stand back up again
Okay, so
Basically, there are some
Very expensive robots currently that managed to solve the problem at least most of the time
using control theory
Sheep are robots and sheep means just a few 10,000 euros
Still struggle to achieve really stable walking. This has to do with for example backlash
And so joints being not that accurate
Machine learning approaches are still mostly working in simulation. So we have this reality gap or the symptom to real gap issue
But I think
During the last year there were some
advances
Yeah, I would guess that in the future there will be more to come
and one direction of career research in this field is working on better comparison between approaches because in science you want to
Have some quantitative measurements. You want to really compare stuff with each other and that's really hard with walking because
Well, you can just say well, I can walk
Yeah, one meter per second or something
But then it depends on the floor and maybe your robots just bigger than another one and so on
So one of the current approaches there is a huge
Project from the European Union and from the Horizon 2020 program called Eurobench where they try to
Yeah, get some standard sized benchmarks so to say for
Walking with robots and for
also for
wearable robotics or
For example for humans which lost one leg and have
one robotic leg that's basically
kind of
It's not the same as a robot, but it's
quite close to each other
so
They are trying to build some
standardized benchmarking
For that so for example having some ramps or some
Difficult terrain or opening a door and going through it
things like that
Then coming now a little bit to full body motions, so
Just as a quick overview
so
Full body motions means basically we we want to just do more than just move our legs
So we also want to move well the rest of our bodies or meaning mostly our torso and our hands
so one example is
walking with hands on a handrail or
Also standing up because we typically use our hands for that
and this has generally a higher complexity since all limbs are involved and
We can easily break assumptions that we made for normal walking
so if we for example have one contact with the handrail then
we would
This ZMP assumption for example would not be true because we have another contact point
Such motions can be periodic like walking or can be also non-periodic periodic, so they just have start at an end
Yeah, so typical walking with hand contacts would be a handrail
But also pushing a card like for example a shopping car
Opening a door and going through it while you keep like while holding it open
Holding hands with somebody why I don't know why a robot needs to do it, but we as humans do it
and we do it and
Not only because we like it, but also if you are in rough terrain you may also
Hold on to another person because it's easier
to not fall
Using walking sticks
Or collab or rate of carrying so carrying with two robots or a human and a robot together one thing
that
yeah, it's that creates additional forces on the robot obviously and
Your support polygon can also be different due to that
And you need to use more complex models
So what currently mostly used approach is quadratic programming
So you kind of try to solve the problem by optimizing
quadratic function with multiple linear constraints
Typically using some rigid body dynamics was together with a model
But this also has issues again. So your model is typically not perfect. It's just a model after all
and if you're carrying an object
then you also need a model of that object, you know the mass and the size and the inertia and so on and
Your robot is maybe not perfectly rigid and then yeah all soft
robot things are still not researched so well and it's hard to model this then
Yeah
Non-periodic motions are typically simpler because they have some known start and end
Examples are standing up kicking a ball, for example grasping something or just waving
How can we do this
The easiest way is key point teach in so we put the robot in some
Key point positions. So for example, I want to make the robot wave
I put it in this position and then I put it in like this position and
Then I save those two positions and I interpolate between them and then the raw adjusters does something like this
This is quite useful and because you can do it quite simple
And for simple motions like just some waving that's that's just enough
But it's it's just completely loop it has no feedback and
Yeah, that's why it does not work so well for more complex task
What we can also do is learning from demonstrations
So either we demonstrate on the robot itself by using some remote controlling
Or we use some motion capture device and demonstrate the movement as a human
typically more than once and
It's not just replaying but we kind of use this to learn them and actually working on movement
And another approach is using Cartesian splines so we define the trajectory of the limbs
in
Cartesian with Cartesian splines manually as a human
This is much easier for us as humans
Working this Cartesian space than in joint space. So joint space would be the description in
Like each dimension of the joint space would be
The angle of one joint. So that's just something we can we cannot really do as humans
and then we can use inverse kinematics to compute the joint goals from this Cartesian splines and
Make these we can make these splines configurable by some
parameters and then we can optimize these parameters for example by using its tree structured Poisson estimator and
these parameters can then for example be the length of the double support phase or
how how long one step should take or
Yeah, how our torso is oriented towards the ground or something like that and we can optimize these parameters and find some
motions which fit
We can obviously also use deep learning for
non-periodic motions
So we just let it learn in simulation because typically you cannot do it on the actual robot because the robot will break
Then we put it on the robot and well, we hope for the best
Typically, we have issues with the reality gap. But as I already said things are getting a little bit better in this
area and
Yeah, then obviously we can again use control theory
Also, for example have some open loop trajectory
for example from a teach-in or from having some kind of model like the linear and virtual pendulum model and
Then we can use some stability criteria
For example ZMP and adjust our joint goals with some
controller for example a simple PID controller, which just takes like, okay, my
ZMP should be here, but it is here. So based on this I shift
the my center of mass more to the left or something like this
Yeah, I'm on this learning aspects in the intelligent robotics lecture
Yeah, so I can't answer you any questions now. I will just show you maybe
a little bit more
Some different implementation methods for
Non periodic motion. So in this case stand up. So here we have
Yeah key frame animation so this key frame teach-in method
this was our
Something we used in the past. So
This kind of work
so we basically teach those different key like this position and then this position or
Maybe I start again. So the start position we would say then we should say this position this position
this position
this position and the end position and the robot would interpolate between them and it kind of works, but it's
Really brittle to fall and then we can do this also with splines
it looks not much different, but it's a bit faster and
You can also find this parameters manually and here it's from the other side
And
then we kind of learned or better to say optimize those parameters and
We can come up with a much faster. You can see it in the time
stand up motions
Okay, yeah, that's it for this lecture. Thanks for watching and have a nice day. Bye