(music) >> This presentation is delivered by the Stanford
Center for Professional Development.
>> Okay, let's get started.
Welcome to Intro to Robotics, 2008.
Well, Happy New Year to everyone.
So in Introduction to Robotics, we are going to really cover
the foundations of robotics--that is, we are going to look
at mathematical models that represents
[sic] robotic systems in many different ways.
And in fact, you just saw those in class.
You saw a
[sic] assimilation of a humanoid robotic system that we are
controlling at the same time.
And if you think about a model that you are going to use for
the assimilation, you need really to represent the
kinematics of the system.
You need also to be able to actuate the system by going to
the motors and finding the right torques to make the robot
move.
So let's go back to this--
I think it is quite interesting.
So here's a robot you would like to control.
And the question is: How can we really come up with a way of
controlling the hands to move from one location to another?
And if you think about this problem, there are many
different ways of, in fact, controlling the robot.
First of all, you need to know where the robot is, and to
know where the robot is, you need some sensors.
So, what kind of sensors you would have
[sic] on the robot to know where the robot is?
Any idea?
>> GPS.
>> GPS?
Okay.
Well, all right, how many parameters you can measure with
GPS?
That's fine.
I mean, we can try that.
How many parameters you can--
What can you determine with GPS?
>> Probably X and Y coordinates.
>> Yeah, you will locate X and Y for the location of the
GPS, right?
But how many degrees of freedom?
How many bodies are moving here?
When I'm moving this--like here--how many bodies are moving?
How many GPS you want
[sic] to put on the robot?
(laughter) You will need about 47 if you have 47 degrees of
freedom, and that won't work.
It will be too expensive.
Another idea.
We need something else.
>> Try encoders.
>> Encoders, yeah, encoders.
So, encoders measures
[sic] one degree of freedom, just the angle.
And how many encoders we need
[sic] for 47 degrees of freedom?
Forty-seven.
Now that will give you the relative position, but we will
not know whether this configuration is here or here, right?
So you need the GPS to maybe locate one object and then
locate everything with respect to it if you--
Any other idea to locate--
>> Differential navigation.
>> Yeah, by integrating from an initial known position or
using >> Vision systems.
>> vision systems to locate at least one or two objects,
then you know where the robot is, and then the relative
position, the velocities could be determined as we move.
So once we located the robot, then we need to somehow find a
way to describe where things are.
So where is the right hand?
Where the left hand?
[sic] Where-- So you need--
What do you need there?
You need to find the relationship between all these rigid
bodies so that once the robot is standing, you know where to
position--where the arm is positioned, where the hand is
positioned, where the head is positioned.
So you need something that comes from the science of--
Well, I am not talking now about sensors.
We know the information, but we need to determine--
>> A model.
>> A model, the kinematic model.
Basically, we need the kinematics.
And when the thing is moving, it generates dynamics, right?
So you need to find the inertial forces.
You need to know--
So if you move the right hand, suddenly everything is
moving, right?
You have coupling between these rigid bodies that are
connected.
So we need to find the dynamics.
And once you have all these models, then you need to think
about a way to control the robot.
So how do we control a robot like this?
So let's say I would like to move this to here.
How can we do that?
The hand--I would like to move it to this location.
I'm sorry?
>> Forward, inverse kinematics.
>> Oh, very good.
Well, the forward kinematics gives you the location of the
hand.
The inverse kinematics give you--given
[sic] a position for the hand that you desire.
You need to--
You will be able to solve what joint angles--
Yeah.
And if you do that, then you know your goal position angle
for each of the joints.
Then you can control these joints to move to the appropriate
joint positions, and the arm will move to that
configuration.
Well, can we do inverse kinematics for this robot?
It's not easy.
It's already difficult for six-degree-of-freedom robot like
an arm, but for a robot with many degrees of freedom--
So suppose I would like to move to this location--this
location here.
There are infinite ways I can move there.
And there are many, many different solutions to this
problem.
In addition, a human do not
[sic] really do it this way.
I mean, when you're moving your hand, do you do inverse
kinematics?
Anyone? No.
So we will see different ways of--
Oh, I will come back to this a little later, but let's--
I'm not sure, but the idea about robots is basically was
captured
[sic] by this image--that is, you have a robot working in an
isolated environment in a manufacturing plant, doing things,
picking, pick and place, moving from one location to another
without any interaction with humans. But robotics, over the
years, evolved.
And today, robotics is in many different areas of
application: from robots working with a surgeon to operate a
human
[sic], to robot assisting a worker to carry a heavy load, to
robots in entertainment, to robots in many, many different
fields.
And this is what is really exciting about robotics: the fact
that robotics is getting closer and closer to the human--
that is we are using the robot now to carry, to lift, to
work, to extend the hands of the human through haptic
interaction.
You can feel a virtual environment or a real environment.
I'm not sure if everyone knows what is haptics.
[sic] Haptics comes from the sense--a Greek word that
describe
[sic] the sense of touch.
And from haptics--
So here is the hands
[sic] of the surgeon, and the surgeon is still operating.
So he is operating from outside, but essentially the robot
is inserted, and instead of opening the body, we have a
small incisions
[sic] through which we introduce the robot, and then we do
the operation.
And the recovery is amazing.
A few days of recovery, and the patient is out of the
hospital.
Teleoperation through haptics or through master devices
allow us to control--
So here is the surgeon working far away, operating, or
operating underwater, or interacting with a physical
environment in homes or in the factory.
Another interesting thing about robotics is that because
robotics focuses on articulated body systems, we are able
now to use all these models, all these techniques we
developed in robotics, to model a human and to create sort
of a digital model of the human that can, as we will see
later, that can be assimilated and controlled to reproduce
actual behavior captured from motion capture devices about
the human behavior.
Also, with this interaction that we are creating with the
physical world, we are going to be able to use haptic
devices to explore physical world that cannot be touched in
reality--that is, we cannot, for instance, go to the atom
level, but we can simulate the atom level, and through
haptic devices, we can explore those world.
[sic] Maybe the most exciting area in robotics is
reproducing devices, robots that look like the human and
behave like life, animals or humans.
And a few years ago, I was in Japan.
Anyone recognize where this photo is?
>> Osaka.
>> He said Osaka.
>> Yokohama.
>> Very good, but you are cheating because you were there.
(laughter) So this is from Yokohama, and in Yokohama, there
is Robodex.
Robodex brings thousand and thousand
[sic] of people to see all the latest in robotics.
This was a few years ago.
And you could see ASIMO here--ASIMO which is really the
latest in a series of development
[sic] at Honda following P2 and P3 robots.
And in addition, you could see, well, most of the major
players in robotics, in humanoid robotics.
Anyone have seen
[sic] this one?
Do you know this one?
This is the Sony robot that--
Actually, I think I have a video.
Let's see if it works.
The Sony is balancing on a moving bar, and this is not an
easy task.
And you can imagine the requirements in real-time control
and dynamic modeling and all the aspect
[sic] of this.
And this was accomplished a few years ago.
Well, actually, we brought this robot here to Stanford a few
years ago, and they did a performance here, and it was quite
exciting to see this robot dancing and performing.
There are a lot of different robots, especially in Asia--
Japan and Korea--humanoid robots.
AIST built a series of robots: HRP, HRP-1 and 2.
And they are building and developing more capabilities for
those robots.
One of the interesting show
[sic] that we had recently was near Nagoya during the World
Expo in Aichi, and they demonstrated a number of projects.
Some of them came from research laboratories that
collaborated with the industry to build those machines.
This is a dancing robot.
Let's see This is HRP.
So HRP is walking.
Walking is now well-mastered.
But the problem is: How can you move to a position, take an
object and control the interaction with the physical world?
This is more challenging.
You see that sliding and touching is not completely mastered
yet, but this is the direction of research in those areas.
This is an interesting device that come
[sic] from Waseda University.
This robot has additional degrees of freedom that--
Okay, another problem.
So you have additional degrees of freedom in the hip joints
to allow it to move a little bit more like a human.
Let's see This is one of my favorite.
This is a humanlike, and humanlike actuation in it, so
artificial muscles that are used to create the motion.
But obviously, you have a lot of problems with artificial
muscles because dynamic response is very slow and the power
that you can bring is not yet--
But we will talk about those issues, as well.
Okay, let me know what you think about this one.
So?
So what do you think?
Do we need robots to really have the perfect appearance of a
human?
Or, like, we need the functionalities of the environment?
Like if we are working with the trees, we specialize the
robot to cut trees.
If we are working in the human environment, then we will
have a robot that has the functionalities of two arms, the
mobility, the vision capabilities.
So these are really interesting issues to think about:
whether we need to have the robot biologically based or
functionally based, and how we can create those interactions
in an effective way.
Last one, I think is--
Yeah, this is an interesting example of how we can extend
the capabilities of human with an exoskeleton system.
So you wear it, and you become a superman or a superwoman,
and you can carry a heavy load.
They will demonstrate here carrying, I believe, 60 kilograms
without feeling any weight because everything is taken by
the structure of the exoskeletal system you are wearing.
Another interesting one is this one from Tokyo Institute of
Technology, a swimming robot.
So make sure no water gets into the motors.
Anyway, the thing is robotics is getting closer and closer
to the human.
And as we see, robots are getting closer to the human.
We are facing a lot of challenges in really making these
machines work in the unstructured, messy environment of the
human.
When we were working with robots in structured manufacturing
plants, the problems were much simpler.
Now you need to deal with many issues, including the fact
that you need safety.
You need safety to create that interaction.
And this distance between the human and the robot is very
well justified.
You don't want yet to bring the robot very close to the
human because these machines are not yet quite safe.
Well, development in robotics has many aspects and many
forms.
And really at Stanford, we are fortunate to have a large
number of classes, courses offered in different areas of
robotics, graphics and computational geometry, haptics and
all of these things.
And you have a list of the different courses offered all
along the year.
And in fact, in my--
This is the Intro to Robotics.
In spring, I will be offering two additional courses that
would deal with Experimental Robotics--that is, applying
everything you have learned during this class to a real
robot and experimenting with the robot, as well as exploring
advanced topics in research, and this is in Advanced
Robotics.
So, I'm Oussama Khatib, your instructor.
And you have--
This year, we are lucky.
We have three TAs helping with the class: Pete, Christina
and Channing.
So let's--
They are over here.
Please stand up, or just turn your faces so they will
recognize you.
And the office hours are listed.
So we will have office hours for me on Monday and Wednesday,
and Monday, Tuesday and Thursday for the TAs.
The lecture notes are here, and they are available at the
bookstore.
This is the 2008 edition.
So we keep improving it.
It's not yet a textbook, but it is quite complete in term
[sic] of the requirements and the things you need to have
for the class.
So, um, let's see The schedule--
So we are today on Wednesday the 9th, and we will go to the
final examination on March the 21st.
There are few changes in the schedule from the handout you
have, and we will update these later.
There is--
These changes happened just in this area here around the
dynamics and control schedule.
But essentially, what we're going to do starting next week
is to start covering the models, so we will start with the
spatial descriptions.
We go to the forward kinematics, and we will do the
Jacobian.
And I will discuss these little by little.
That will take us to the midterm.
One important thing about the midterm and the final is that
we will have review sessions.
And the class is quite large, so we will split the class in
two.
And we will have two groups that will attend these review
sessions, which will take place in the evening.
And they will take place in the lab, in the robotics lab.
And during those sessions, we will cover the midterm of past
years and the finals of past years.
And what is nice about those sessions is that you will have
a chance to see some demonstrations of robots while eating
pizza and drinking some So that will happen between 7:00 and
9:00.
Sometimes it goes to 10:00 because we have a lot of
questions and discussions.
But these sessions are really, really important, and I
encourage you and I encourage also the remote students to be
present for the sessions.
They are very, very helpful in preparing you for the midterm
and the final.
So as I said, this class covers mathematical models that are
essential.
I know some of you might not really like, well, getting too
much into the details of mathematical models, but we are
going to really have to do it if we are going to try to
control these machines or build these machines, design these
machines.
We need to understand the mathematical models, the
foundations in kinematics and dynamics.
And we will then use these models to create controllers, and
we are going to control motions, so we need to plan these
motions.
We need to plan motion that are
[sic] safe, and we need to generate trajectories that are
smooth.
So these are the issues that we need to address in the
planning and control, in addition to the fact that we need
to touch, feel, interact with the world.
So we need to create compliant motions, which rely on force
control.
So force control is critical in creating those interaction.
[sic] And we will see how we can control the robot to move
in free space or in contact space as the robot is
interacting with the world.
And then we will have some time to discuss some advanced
topics, just introduce those advanced topics, so that those
of you who are interested in pursuing research in robotics
could make maybe plans to take the more advanced courses
that will be offered in spring.
So let's go back to the problem I talked about in the
beginning: the problem of moving this robot from one
location to another.
Suppose you would like to move this platform.
This is a mobile manipulator platform.
You would like to move it from here to here.
How do we do that?
Well, we said--
Essentially, what we need to do is somehow find a way of
discovering a configuration through which the robot reaches
that final goal position.
And this is one of them.
You can imagine the robot is going to move to that
configuration.
But the problem with this is the fact that if you have
redundancy.
So what is redundancy?
Redundancy is the fact that you can reach that position with
many different configuration
[sic] because you have more degrees of freedom in the
system.
And when you have redundancy, this problem of inverse
kinematics becomes pretty difficult problem.
But if you solve it, then you will be able to say I would
like to move each of those joints from this current
position, this joint position to this joint position.
So you can control the robot by controlling its joint
positions and by creating trajectories for the joints to
move, and then you will then be able to reach that goal
position.
Well, this is not the most natural way of controlling
robots, and we will see that there will be different ways of
approaching the problem that are much more natural.
So to control the robot, first you need to find all these
position and orientation
[sic] of the mechanism itself, and that requires us to find
descriptions of position and orientation of object in space.
Then we need to deal with the transformation between frames
attached to these different objects because here, to know
where this end effector is, you need to know how--
If you know this position, this position of those different
objects, how you transform the descriptions to find,
finally, the position of your end effector.
So you need transformations between different frames
attached to both objects.
So the mechanism, that is the arm in this case, is defined
by a rigid object that is fixed, which is the base, and
another rigid object that is moving, which we call the end
effector.
And between these two objects, you have all the links that
are going to carry the end effector to move it to some
location.
And the question is: How can we describe this mechanism?
So we will see that we are raising joints, different kinds,
joints that are revolute, prismatic.
And through those descriptions, we can describe the link and
then we can describe the chain of links connected through a
set of parameters.
Don't worry--
Denavit and Hartenberg were two PhD students here at
Stanford in the early ???70s, and they thought about this
problem, and they came up with a set of parameters, minimal
set of parameters, to represent the relationship between two
successive links on a chain.
And their notation now is basically used everywhere in
robotics.
And through this notation and those parameters, we will be
able to come up with a description of the forward
kinematics.
The forward kinematics is the relationship between these
joint angles and the position of the end effector, so
through forward kinematics, you can compute where the end
effector position and orientation is.
So these parameters are describing the common normal
distance between two axes of rotation--
So this distance, and also the orientation between these
axes, and through this, we can go through the chain and then
attach frames to the different joints and then find the
transformation between the joints in order to find the
relationship between the base frame and the end effector
frame.
So once we have those transformations, then we can compute
the total transformation.
So we have local transformation between successive frames,
and we can find the local transformation.
Now once we know the geometry--that is, we know where the
end effector is, where each link is with respect to the
others, then we can use this information to come up with a
description of the second important characteristic in
kinematics, and this is the velocities: how fast things are
moving with respect to each other.
And we need to consider two things: not only the linear
velocity of the end effector, but also the angular velocity
at its rotate.
[sic] And we will examine the different velocities--linear
velocities, angular velocities--with which we will see a
duality with the relationships between torques applied at
the joints and forces resulting at the end effector.
Forces, this is the linear--
Forces are associated with linear motion.
Movement, torques associated with angular motion.
And there is a duality that brings this Jacobian, the model
that relates velocities, to be playing two roles: one to
find the relationships between joint velocities with end
effector velocities, and one to find the relationship
between forces applied to the environment and torque applied
to the motors.
The Jacobian plays a very, very important role, and we will
spend some time discussing the Jacobian and finding ways of
obtaining the Jacobian.
So the Jacobian, as I said, describes this V vector, the
linear velocity, and the omega vector, the angular velocity,
and it relates those velocities to the joint velocities.
So the Jacobian, through that, gives you the linear and
angular velocities.
And we will see that essentially this Jacobian is really
related to the way the axes of this robot are designed.
And once you understood this model, you are going to be able
to look at a robot and see the Jacobian automatically.
You look at the machine, and you see the model automatically
through this explicit form that we will develop to compute
those linear velocities and angular velocities through the
analysis of the contribution of each axis to the final
resulting velocities.
So we will also discuss inverse kinematics, although we are
not going to use it extensively as it has been done in
industrial robotics.
We will use--
We will examine inverse kinematics and look at the
difficulties in term
[sic] of the multiplicity of solutions and the existence of
those solutions and examine different techniques for finding
those solutions.
So, again, the inverse kinematics is how I can find this
configuration that correspond
[sic] to the desired end effector position and orientation.
And then using those solutions, we can then do this
interpolation between where the robot is at a given point
and then how to move the robot to the final configuration
through trajectory that are smooth both in velocity and
acceleration and other constraints that we might impose
through the generation of trajectories, both in joint space
and in Cartesian space.
So this--
Oh, I'm going backwards.
So this will result in those smooth trajectories that could
have via points that could impose upper bound on the
velocities or the accelerations and resolving all of these
by finding this interpolation between the different points.
And that will bring us to the midterm, which will be on
Wednesday, February the 13th.
It's not a Friday 13th.
It's Wednesday.
So no worries.
And it will be in class, and it will be during the same
schedule.
Now for the midterm, the time of the class is short, and
you'll have really to be ready not really to, like to
discover how to solve the problem but really immediately to
work on the problem.
So that's why the review sessions are very important to
prepare you for the midterm to make sure that you will be
able to solve all the problems, although we will make sure
that the size of the problem fits with the time constraints
that we have in the midterm.
After the midterm, we will start looking at dynamics,
control and other topics.
And first, what we need to do is to--
Well, I'm not assuming--
I'm not sure how many of you are mechanical engineers.
Let's see, how many are mechanical engineers in the class?
Good.
And how many are CS?
Wow! That is about right.
We have half of the class who's familiar with some of the
physical models that we are going to develop, and some
others who are not.
But I'm going to assume that really everyone has no
knowledge of dynamics or control or kinematics, and I will
start with really the basic foundation.
So you shouldn't worry about the fact that you don't have
strong background in those areas.
We will cover them from the start.
We will go to: What is inertia?
What is--
How do we describe accelerations?
And then we will establish the dynamics, which is quite
simple.
Anyone recalls the Newton equation?
So, let's see.
What is the relationship between forces and accelerations?
You need to know that, everyone. (laughter) Okay, I need to
hear it.
Someone tell me.
Okay, good.
Mass, acceleration equal force.
Well, this is all what you need to know.
[sic] If you know how one particle can move under the
application of a force, then we will be able to generalize
to many particles attached in a rigid body, and then we will
put them into a structure that will take us to multi-body
system, articulated multi-body system.
So we will cover these without difficulty, hopefully.
The result is quite interesting.
So this is a robot.
This is a robot that is controlled not by motors on the
joints but by cables.
So really, the active part of the robot is from here to
there, and here, you'll see all the motors and cables-driven
system that is on the right.
Now if you think about the dynamics of this robot, it gets
to be really complicated.
So you see on the right here--
So this is the robot, and here you have some of the
descriptions of--
Wait, you cannot see anything probably.
But you have all the descriptions of--
For instance, what is the inertia view from the first joint
when you move?
So this inertia is changing as you move.
So imagine, if I'm considering the inertia above this axis,
right?
If I'm deploying the whole arm, the inertia will increase.
If I'm putting the arm like this, I will have smaller
inertia above this axis.
Bigger inertia, smaller inertia.
So the configuration--
The inertia view from a joint is going to depend on the
structure following that joint.
And we will see that essentially all of this will come very
naturally from the equations that will be generated from the
multi-body system.
But what we are going to use for this is a very simple
description that again will allow you to take a look at this
robot and say, Oh, this is the characteristics, the dynamic
characteristics of this joint.
And you can almost see the coupling forces between the
different joints in a visual form that all depend on those
axes of rotation and all translation of the robot.
And this comes through the explicit form of dynamics that we
will develop.
This representation is an abstract, abstraction of the
description that we will do with the Jacobian.
So I said in the Jacobian case, we will take a description
that is based on the contribution of each joint to the total
velocity, and we will do the same thing.
What is the contribution of each link to the resulting
inertial forces?
So when we do this, we will look at what is the contribution
of this joint and the attached link and the contribution of
the others.
And we just add them all, and you will see this structure
coming all together.
So that is a very different way than the way Newton and
Euler formalized the dynamics, which relies on the fact that
we take each of these rigid bodies and connect them through
reaction forces.
So if you take all the links and if you remove the joints,
you get one link.
But when you remove the joint, you substitute the removal of
the joint with reaction forces, and then you can study all
these reaction forces and try to find the relationship
between forces and acceleration.
Well, this way, which is called the Recursive Newton-Euler
formulation, is going to require elimination of these
internal forces and elimination of the forces of contact
between the different rigid bodies.
And what we will do instead--we will go to the velocities,
and we will consider the energy associated with the motion
of these rigid bodies.
So if you have a velocity V and omega at the center of mass,
and you can write the energy, the kinetic energy, associated
with this moving mass and inertia associated with the rigid
body.
And simply by adding the kinetic energy of these different
links, you have the total kinetic energy of the system.
And by then taking these velocities and taking the Jacobian
relationship between velocities to connect them to joint
velocities, you will be able to extract the mass properties
of the robot.
So the mass metrics will become a very simple form of the
Jacobian.
So that's why I'm going to insist on your understanding of
the Jacobian.
Once you understand the Jacobian, you can scale the Jacobian
with the masses and the inertias and get your dynamics.
So going to dynamics is going to be very simple if after the
midterm, you really understood what is the Jacobian.
The dynamics--
This mass metrics associated with the dynamics of the system
comes simply by looking at the sum of the contributions of
the center of mass velocities and the Jacobian associated
with the center of masses.
In control, we will examine--
Oh, I'm going to assume also a little background in control.
So we will go over just a single mass-spring system and
analyze it, and then we will examine controllers such as PD
controllers or PID controllers, proportional derivative or
proportional integral derivative, and then we apply these in
joint space and in task space by augmenting the controllers
with the dynamic structure so that we account for the
dynamics when we are controlling the robot.
And that is going to lead to a very interesting analysis of
the dynamics and how dynamics affect the behavior of the
robot.
And you can see that the equation of motion for two degrees
of freedom comes to be sort of two equations involving not
only the acceleration of the joint but the acceleration of
the second joint, the velocities, centrifugal, Coriolis
forces and gravity forces.
And through this, all of these will have an effect, dynamic
effect, and disturbances on the behavior.
But we will analyze a structure that would allow us to
design torque one and torque two, the torques applied to the
motor, to create the behavior that is going to allow us to
compensate for those effects.
So all of these are descriptions in joint space--that is,
descriptions of what torque and what motion at the joint.
[sic] And what we will see is that in controlling robots, we
can really simplify much further the problem by considering
the behavior of the robot in term
[sic] of its motion when it's performing a task--that is, we
can go to the task itself, the task, in the case of the
example I described, is how to move the hand to this
location, without really focusing on how each of the joint
is going to move.
And this concept can be captured by simply thinking about
this robot, this total robot, as if the robot was attracted
to move to the goal position.
This is similar to the way a human operate.
[sic] When you are controlling your hand to move to a goal
position, essentially you are visually surveying your hand
to the goal.
You are not thinking about how the joints are moving.
You are just moving the hand by applying these forces to
move the hand to the goal position.
So it's like holding the hand and pulling it down to the
goal.
And at the initial configuration, you have no commitment
about the final configuration of the arm.
You are just applying the force towards the goal, and you
are moving towards the goal.
So simply by creating a gradient of a potential energy, you
will be able to move to that configuration.
And this is precisely what we saw in this example, in the
example of this robot here.
So this motion that we are creating--
So if we are going to move the hand to this location, we are
going to generate a force that pulls like a magnet.
It will pull the hand to this configuration.
But at the same time, you have--
In this complex case, you have a robot that is standing, and
it has to balance.
So there are other things that needs
[sic] to be taken into account.
And what we are doing is we are also applying other
potential energies to the rest of the body to balance.
So when we apply this force, you see it's just following.
It's like a magnet.
It's following this configuration.
There is no computation of the joint positions.
Simply we are applying these attractive forces to the goal.
We can apply it here, apply it there, or apply it to both.
Now obviously, if you cut the motors, it's going to fall.
And it behaves a little bit like a human, actually.
When you cut the muscle (laughter) In fact, this
environment, we developed--
It's quite interesting.
You can not only interact with it by moving the goal, but
you can go and pull the hair. (laughter) Ouch.
You can pull anywhere.
When I click here, I'm computing the forward kinematics and
the Jacobian.
And I'm applying a force that is immediately going to
produce that force computed by the Jacobian on the motors,
and everything will react in that way.
So we are able to create those interaction
[sic] between the graphics, the kinematics and apply it to
the dynamic system.
And everything actually is simulated on the laptop here.
So this is an environment that allow us
[sic] to do a lot of interesting simulations of humanlike
structures.
So you apply the force and you transform it.
As I said, the relationship between forces and torques is
also the Jacobian, so the Jacobian plays a very important
role.
And then the computer dynamics--all that we need to do is to
understand the relationship between forces applied at the
end of factor and the resulting acceleration.
Now when we talked earlier about Newton law, we said force--
mass, acceleration equal force.
And the mass was scalar.
But this is a multi-value system.
And the mass is going to be a big M, mass metrics.
So the relationship between forces and acceleration is not
linear--that is, forces and acceleration are not aligned
because of the fact that you have a metrics.
And because of that, you need to establish the relationship
between the two.
And once you have this model, you can account for the
dynamics in your forces, and then you can align the forces
to move, to be in the direction that produces the right
acceleration.
Finally, we need to deal with the problem of controlling
contact.
So when you are moving in space, it's one thing, but when we
are going to move in contact space, it's a different thing.
Applying this force put
[sic] the whole structure under a constraint, and you have
to account for these constraints and compute the normals to
find reaction forces in order to control the forces being
applied to the environment.
So we need to deal with force control, and we need to
stabilize the transition from free space to contact space--
so that is, we need to be able to control these contact
forces while moving.
And what is nice--
If you do this in the Cartesian space or in the task space,
you will be able to just merge the two forces together to
control the robot directly to produce motion and contact.
I mentioned that we will discuss some other topics.
There will be a guest lecturer that will talk about vision
in robotics, and we will also discuss issues about design.
I would like to discuss a little bit some issues related to
safety and the issues related to making robots lighter with
structures that become safer and flexible to work in a human
environment.
Also, we need to discuss a little bit about motion planning,
and especially if we are going to insert those robots in the
human environment, we need reactive planning.
And there is--
In this video, you can see how a complex robotic system is
reacting here to obstacles that are coming at it.
It's moving away from those obstacles.
And this is simply done by using the same type of concept
that I described for moving to a goal position.
I said we can create an attractive potential energy.
In here, to create this motion, we are creating a repulsive
potential energy.
So if you put two magnets north-north, they will repel, and
this is exactly what is happening.
We are creating artificially those forces and making the
robot move away.
But if you have a global plan, you need to deal with the
full plan so that you will not reach a local minima, and we
then apply this technique to modify all the intermediate
configurations so that a robot like this would be moving to
a goal position through this plan.
And when an obstacle or when the world is changed, the
trajectory is moving, the hand is moving, and all of this is
happening in real time, which is amazing for a robot with
this number of degrees of freedom.
The reason is--
I'm not sure if you're familiar with the problem.
Oh, sorry, let me just--
The problem of motion planning in robotics is exponential in
the number of degrees of freedom.
So usually, if you want to replan a motion when one obstacle
has moved, it would take hours to do for a large number of
degrees of freedom.
And here we are able to do this quite quickly because we are
using the structure and we are using this concept of
repulsive forces that modifies future configurations and
integrate--
So this is an example showing Indiana Jones going through
the obstacles modified by--in real time, actually, modified
all these configurations.
And all these computations are taking place in real time
because we are using this initial structure and
incrementally modifying all the configurations.
Another topic that I mentioned slightly earlier is the
implication on digital modeling of human.
[sic] And learning from the human
[sic] is very interesting and very attractive to create good
controls for robots, and also understanding the human
motion.
In fact, currently, we are modeling Tai Chi motion and
trying to analyze and learn from those motions.
So you can go from motion capture to copying that motion to
the robot.
But in fact, you will end up with just one example of
motion.
The question really is how you can generalize, not just one
specific motion.
And to do that, if you want to generalize, you need to take
the motion of the human from motion capture and map it not
to the robot but to a model of the human.
So you need to model the human, and modeling the human
involves modeling the skeletal system.
So we worked on this problem, so now you have--
This is a new kind of robot system with many degrees of
freedom, about 79 degrees of freedom.
And all of this is modeled through the same model of
kinematics, dynamics.
And then you can model the actuation, which is muscles now,
and from this, you can learn a lot of things about the
model.
And then now you can control it.
You can control--
This is synthesized motion.
And you understand how this is working.
You just guide the task, and then you have the balance
taking place through other minimization of the reminder of
the degrees of freedom.
And then you can take those characteristics and map them to
the robot, scale them to the robot--not copying trajectories
but copying the characteristics of the motion.
It's quite interesting.
We'll discuss also a little bit about haptics.
This will be more developed in Advanced Robotics later in
the spring, but haptics is very important, especially in the
interaction with the environment, the real physical
environment.
So you go and touch--
And now you have information that allows you to reconstruct
the surface and move over now more descriptions of what you
are touching and what normals you have.
Well, contact. (laughter) Quite amazing.
What is amazing about this is this is done in real time.
So someone from the automotive industry was visiting us and
said, ?Now you have model of skeletal systems and good
models for resolving contact.
Why don't you use them for crashes instead of using dummies,
right?
So--
Ouch.
But it's only in the model.
Well, there is a lot that will come later, but I will
mention a few things about the interactivity also with
obstacles and how we can deal with those issues and then
combining locomotion--walking with manipulation and dynamic
skills like jumping, landing and all these different things.
Okay, so what is happening here?
Okay, this is a different planet.
I'm going to just--
Okay, and that will take us to the final, which will be on
Friday, the 21st of March.
And the time is different.
It will be at 12:15.
We will announce it, and hopefully we will have again a
review session before that.
It is on the schedule.
In that review session, we'll review previous finals, and
here you will have enough time to solve some good problems.
So, by the way, not everything that you see in simulation is
valid for the real world.
And let's see How many skiers do we have here?
Skiers.
That's all?
I would have thought--
Okay.
Okay.
Does it ski?
Let's see the ski.
Don't do that. (laughter) All right.
I will see some of you on Monday. Okay.