Uploaded by StanfordUniversity on 22.07.2008

Transcript:

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

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.