IntroductionToRobotics Lecture06 PDF
IntroductionToRobotics Lecture06 PDF
Instructor (Oussama Khatib):All right. Let’s get started. So today is a video segment is
video segment. Something happened. Okay. We have a little problem. I guess we can
start over. Okay. My computer just crashed. Okay. Let’s start over. Take two. So today
the video segment is about polypod. Have you heard about polypod? No. These are little
small robots that we connect to build a shape so that we call them configurable robots and
they are module and there is a lot of interest in this area. One of the pioneers in this area
was Markham. Markham was a PhD student in the robotics lab in the early 90s and he is
now a professor teaching robotics and building very advanced polypod systems. So I’m
going to show you the concept that he proposed in 94 and some of the realizations that he
made at that time. Polypod. If we could have the light off, please? [Video]:
Polypod is a reconfigurable module robot. It’s made up of two types of modules called
segments and nods. Segments are two degree freedom modules with two motors, force
and position sensing and a microcomputer on board. Nods are [inaudible] shaped
housings for batteries. Segments may be mounted parallel to each other or they may be
mounted perpendicular to each other. Modules may also attach on any face of a nod.
Simple locomotion gaits are statically stable gaits that move along a straight line. The rest
of this video will quickly present a series of locomotion gaits through simulation and
implementation on polypod. Each segment runs semi-autonomously by controlling each
degree of freedom with the sequence of behaviors. All of the following motions use two
simple behavioral modes called ents mode and springs mode. With the springs mode, a
degree of freedom acts as a well damned spring using force sensors. With ents mode, the
degree of freedom moves at a constant speed until it reaches [inaudible] limit. Many of
the gaits from here are extendable to an arbitrary number of modules by adding to the
length of the robot. This next set of locomotion gaits combines simple modes to achieve
more complex or of commotion. In this case, segments are added perpendicularly
interspersed between the original segments. This gait may be used as a platform to carry
objects. Thermo modules used are larger and heavier the object may be. The next two
gaits will show the robot turning. In this gait, as the robot turns, the two feet of the robot
in contact with the ground rotate with respect to each other and so they must slide on the
ground. This would create problems if the robot were trying to navigate using dead
reckoning or if it were walking on carpet. Here segments are again interspersed
perpendicularly between segments. Since the segments are placed on the ground at one
end and picked up by the other, most fighting will occur. The following two gaits are
called exotic gaits. While not necessarily efficient or useful, they are still interesting. This
gate is called the moonwalk. Manipulation of large objects and locomotion can be
considered equivalent. Here, we are doing both. This last simulation is not a locomotion
mode, but it shows one possible dynamic reconfiguration of polypod.
Instructor (Oussama Khatib):Cool. Well, the early realization was really difficult and
very simple, but today, there are a lot of interesting devices that can carry all these
simulations and I hope we will have the chance to see them later. Okay. So today, we are
going to start on instantaneous kinematics and that is going to introduce the model I
discussed many times before. I refer to this kinematics model called the Jacobian Metrics.
That is going to be a very important part of all what we’re going to do later in term of not
only the motion, but also the dynamics of the motion. So you remember our first task was
to try to understand how we localize the endofactor, so we know now this frame of the
endofactor and we can describe the position and orientation of that endofactor will
respect to its frame. So if we start moving, we are going to have small displacement that
we can monitor in time and if we go to a small displacement from the current
configuration so we are at [inaudible], we have theta 1 to theta N and we know the
exposition, but if we make a small displacement of theta, so that would be a sort of delta
theta that we are introducing to each of those joint angles. We are going to have a small
displacement, delta X. It’s not only delta X in the position, but also in the orientation and
the question is what is this delta X given that we know delta theta and we know that theta
where we are. So this question, finding the relationship between delta theta and delta X is
answered by a linear relationship that connects the two. Delta theta and delta X are
connected by –
Student:
[Inaudible]
Student:Derivatives.
Instructor (Oussama Khatib):Yes, it is derivatives, but what is this model that is going
to connect the two? You guessed it now. So delta X is going to be related to delta theta by
a matrix.
Student:The Jacobian.
Student:M.
Instructor (Oussama Khatib):So all the co-efficients of QN, so the first column is
partial derivative of F1 with respect to QN to partial derivative of FM with respect to QN.
So basically, this is the matrix. And this is precisely your Jacobian matrix, which is a
matrix with M by N and its connecting the delta QN to your delta X. So here is the
Jacobian, but doing this computation is not simple. You’ll have different kinds of
representations. There are different ways of expressing your position and orientation and
if you go and analyze this Jacobian, you are going to find yourself analyzing both the
kinematics, the representation that you use and it’s very difficult to make sense of what is
happening. Let’s take an example. Oh, yeah, by the way, this writing that I’m writing
here is a connection between delta Q and delta X it is exactly the same matrix that
connects Q dot to X dot because we are doing this differentiation if you take it with
respect to the time then Q dot is connected to X dot through the same matrix. So the
element of this Jacobian is the partial derivative of the function I with respect to J and
here is the example. It’s a really simple example. Two degrees of freedom with
[inaudible] length, L1 and L2, and our representation is going to be just X and Y so what
is X in this case? Okay. Let’s do the [inaudible] parameters and do the frame assignment
and the propagation or maybe you can just give me X directly by looking at the figure
and this is finished. Oh, good. Good to know. Theta one and theta two. So X will be on
this direction so it will be the co-sines so it will be L1 – come on – co-sine theta one plus
L2 – co-sines –
Student:[Inaudible]
Student:Yeah. Yes.
Instructor (Oussama Khatib):Right. Because the signs will give you the Y. So here is
A1 co-sine one plus L2 co-sine one plus two and Y. So in this case, to differentiate it’s
very simple. The differentiation gives you this and now you have your matrix and you
can see that the first row is minus Y, the second row is just X. So the Jacobian in this case
is quite simple and this Jacobian gives you this relation for small displacement. For delta
theta, you can compute the corresponding delta X and for velocities in joint space, you
have velocities as the endofactor. Actually, this matrix has been widely used to control
the robot because you can say I’m here, I would like to move the endofactor with little
displacement. You can take that displacement and generate a trajectory and compute
small displacement delta thetas so you want to find the delta theta by displacing the
endofactor by a little bit. What is the derivative of co-sine two?
Student:[Inaudible]
Instructor (Oussama Khatib):So it will be co-sine one, co-sine two, D3 and the second
component?
Student:Sign one.
Instructor (Oussama Khatib):Co-sine one, co-sine two, D3 and the last one minus sign
two, D3. So that’s correct? Okay. So what about the third column we derive with respect
to D3 or Q3? This would be –
Student:[Inaudible]
Student:[Inaudible]
Instructor (Oussama Khatib):Obviously, it’s going to be the sum of the velocity with
respect to frame A and the velocity of the origin with respect to frame B, so you just add
these two vectors and that is the velocity of the point P with respect to frame B. So here
we discussed the motion of the frame and this motion is uniquely produced by a
translation with a velocity VA of the origin of that frame with respect to B. Now, it
becomes a little more complicated when you have a rotation, so suppose you are
translating and at the same time, you are rotating. So we need to introduce the F factor of
rotation and when we rotate a frame, different points will move at different velocities,
right? So if you’re rotating an object, depending on the axis of rotation, this point is
moving faster than this point if I’m rotating above this axis. Actually, on this object, there
will be a point that will have zero velocity. Do you know which points will have zero
velocity? The points that lies on the axis of rotation. So if we take an apple and we rotate
it above this axis, there will be some points that will not be rotating, but actually, the
points on the outside will be rotating more, and what you are concerned with is if I have a
vector or instantaneous velocity, what are the linear velocities at different points located
by a vector P, and that is the question we need to answer first. Do you know the answer?
Not yet? Three, four, minutes, you will know the answer. Okay. So we have an axis of
rotation, we have all these fixed points, so we’re just doing a pure rotation, so these
points are fixed. Let’s have a schematic simpler to C, so obviously the points closer to the
axis are going to move at slower velocities. Let’s pick a point P and with concern with
the velocity at this point. The angular velocity measured above this axis is omega and
omega itself is representing the vector so it’s vector and magnitude. Now, what is the
magnitude of VP and its value given that we know its location P and we know omega?
Well, first of all, we need to locate P with respect to some frame and we need to make
sure that this frame is not moving so we put a frame on the axis so the origin of the frame
is fixed with respect to this rotation, and we located with our vector P. Okay. Now we
have everything we need to find VP. So let’s see. The magnitude of VP is going to
increase with the magnitude of omega. That makes sense. You’re going to increase with
the distance from the center, which is the vector P multiple by the sign of the angle. The
further away from the center, the largest the VP is going to be, and we can notice also
that VP is [inaudible] to both omega, the axis of rotations so the velocity is [inaudible] to
that and also [inaudible]to the vector locating that point because we are taking the point
from the fixed point. So that means with all of this, that means what? VP is equal to –
when you have three vectors that are [inaudible] and you have the sign, then you will
have cross –
Student:Product.
Student:Well, the movement in this frame is going to add to the linear velocity in that
one.
Instructor (Oussama Khatib):So the linear velocity is computed at the origin of that
frame, right? So the omega involved will not be that omega I plus one, the large omega I
plus one. This instantaneous rotation here – if this is I, the volute joint, this will be
rotating. So this rotation will not change the velocity here. What will change the velocity
here is the rotation, omega I of this point located by this vector, so this would be omega I,
which is here, cross this vector locating this point. So this is the first term. Now, can
anyone explain the second term? Yes?
Instructor (Oussama Khatib):So the second term only appears if the joint, the Z axis,
was not a volute joint, but was a prismatic joint that is translating along the Z axis so
along ZI plus one and the magnitude will be the D dot I plus one. D is a variable in this
case for the prismatic joint. So this is the D dot I plus one, ZI is the local velocity in
frame I plus one of that point and the omega I cross PI is the contribution of the rotation
of the frame and plus all the translation that was happening before? You had a question?
Instructor (Oussama Khatib):Yeah, it is always on the ZI plus one. So this will appear
only if this was not volute, it was prismatic and it is translating along the ZI plus one.
Student:Oh, I just assumed because I saw the two headed arrow under ZI.
Student:Okay.
Student:Are these two frames rotating independently, like, is there a volute joint on I and
is there a volute joint in I plus one?
Student:In your previous slide, where did you get theta I plus one from?
Student:Omega I plus one equals the theta I plus one, where did you get that theta I plus
one from?
Student:Yes.
Student:Is theta I plus one and DI plus one, aren’t those defined along the ZI plus one
axis?
Instructor (Oussama Khatib):At this point, this dot, no, it’s not dot product. It’s
proportional. No, theta dot is a scalar and the ZI is a vector, so no, this is not a dot
product. This is just a scalar multiplication. All right. Other questions? Yes.
Student:Why isn’t it expressed in terms of the coordinates for I plus one if when we do
the forward kinematics you’re gonna get the inverse?
Instructor (Oussama Khatib):Okay. So the algorithm that we are using here for the
propagation is taking the velocities and propagating to the end so we compute that in
frame N and at the end if we need them in frame zero we do the transformation back to
frame zero. This is the way this algorithm is done. You can do the computation backward
and you compute everything in frame zero or actually the most efficient place to do this
computation is you know where? Not out frame zero or out frame N. It is in the middle
because those transformations become more and more complicated if you go from the
base to the end. In the middle, the transformations are simpler so if you transform just to
the middle, as you propagate you will get the most efficient form, but in this algorithm
we are showing that if we use R1, I plus one, we will end up with velocities omega N and
VN that will give us the total linear and angular velocity in frame N and if we need them
in frame N that is fine, otherwise, we transform them here. Now, where is the Jacobian in
all of this? Anyone can see the Jacobian? I showed you this recursive propagation. We
called it a propagation computing the velocities, but where is the Jacobian? No? You
cannot see it? Well, it is there, you have to find it. You have to go inside so you write out
the relationships, you do the propagation. What do you need to extract from those
expressions to find the Jacobian? You need to get the theta dot I plus one and the V dot I
plus one out and everything else is going to give you these columns of the Jacobian, so
you cannot really see it, but it is there. Now, velocity propagation is very nice
numerically, but it doesn’t give you any idea about the structure, about the contribution of
the joint, about your kinematics and it is not really the best way to analyze your
mechanism. What we’re going to do is we’re going to in fact analyze and work with this
explicit form of the Jacobian that would allow us to really look at the mechanism and see,
immediately, the Jacobian matrix and its columns and its structure. So next time when we
analyze the explicit Jacobian you will be able, immediately, to look at the mechanisms so
now you see the Stanford [inaudible], you look at Stanford [inaudible] and you see this is
the first column, this is the second column, this is the third column, this is how the
Jacobian is going to be. Before we leave, we still have a few more minutes, there is an
example – this example is useful if you want really to understand literally the velocity
propagation and this example is done over a very simple three degree of freedom
mechanism. We know the answer of the Jacobian, you know the Jacobian for this is you
write theta one, theta two – you can write X, Y and Z which is [inaudible] co-sine theta
one plus L2 co-sine, one and two and L3 co-sine, one, two, three and sign and you do the
differentiation and you find your Jacobian. At the same time, if you do it through velocity
propagation using these relations, you go to the first propagation, the base is at zero, you
compute the linear velocity at P2, you compute it, you get this expression, you compute
the velocity of two. So just a take look at this example. Once you completed the
propagation you’ll find that your omega vector is the sum of these velocities, which
means, essentially, your total omega is coming from these three rotations; one, two and
three contributes to the total rotations of your endofactor. The meaning of velocities are
going to be – this would be the Jacobian so if extract theta dot one, theta dot two out, this
is your Jacobian for the position and this is your omega so this is the Jacobian for the
omega. Now, this whole computation turned out to be – well, through this miracle
propagation, but if you do it through the analysis, what you’re going to find is for zero
omega you see here what we have, zero, zero, one, zero, zero, one, zero, zero, one; what
is this zero, zero, one? This is the Z vector. All the omegas are rotating above the Z
vector, which means, essentially, the Jacobian associated with angular motion is simply
the ZI vectors associated with the joint angles. What is this? Well, I mean, this could be
directly computed from the partial derivatives or it could be computed from this cross
product of those joint angle rotations with the point locating that point. So we will see
that structure next time and then you can see much better the properties of the Jacobian as
it relates to the kinematics of the robot. I will see you on Monday.
[End of Audio]
Duration: 70 minutes