**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]

**Instructor (Oussama Khatib)**:I cannot hear you.

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

**Instructor (Oussama Khatib)**:Yeah. The Jacobian. So delta X, delta theta or the derivative, if we divide by [inaudible] theta delt and ace delt will be related to each other through this Jacobian matrix. Now, X delta, again, involves two things. Remember our earlier presentation of X involves the position and the orientation, so there is a part that discusses the linear velocity and there is another part that represents the angular velocity in this factor. So what we need to do is to find this relationship and establish this Jacobian matrix that connects those displacements. So to study the Jacobian we’re going to start by looking at differential motion and we’re going to discuss how do we compute a linear velocity at a visual object, how angular velocity is computed as we propagate and how we can compute the impact of angular velocity on the linear and angular velocity of the endofactor.
So this will take place through this propagation of velocities from one joint to the next and that is going to provide us with a sort of recursive relation that will allow us to find the velocities and the endofactor. We are going to examine another way of doing this analysis rather than propagating velocities. We’re going to examine the structure of the kinematics of a robot and its impact on the endofactor of velocities and that will lead us to something really interesting that we call the explicitly form of the Jacobian matrix. That is we are going to analysis the kinematics and we will see that in each of the columns of this matrixes we are going to have an association with a specific joint.
So if we take the first column, this first column corresponds to the first joint and its impact on the velocity of the endofactor velocity linear and angular. So this [inaudible] form is going to be very important in establishing the model that connects the displacement or velocities of the joint and of the endofactor, and this model is going to be very important, also, in establishing the relationship between forces. Forces are acting on the joints. Depending on the type of the joints, if we have a prismatic joint, we have a force; if we have a volute joint, we will have a torque. Now, if we apply a set of torques to the arm, there will be some resulting forces at the endofactor.
It turned out that the relationship between torques and forces resulting in the endofactor comes from exactly the same model from the same Jacobian. There is a dual relationship between velocities and static forces that we will use and this will lead us to establishing the relationship between torques and forces. So first, we are going to analysis those displacements and what we need is a description of [inaudible]. So we picked the joint angles as [inaudible], but sometimes we have joint displacement if we have a prismatic joint. So we will use a variable we call Q to represent, to capture, the joint angle whether it is prismatic or a volute joint and this is done by introducing QI as theta I or DI, epsilon is equal to zero or one.
It’s a binary number so if we have another volute joint, epsilon is zero. If we have a prismatic joint, it’s one and epsilon bar is the compliment. So the QI is going to be either theta I or DI following the type of the joint. So with the joint Jacobian vector Q1, Q2, Q3. Now we can go to the representation and find the relationship between the two that is between X and Q and then compute those differentiations. So we can differentiate as you suggested to compute this relationship and this differentiation is going to involve multi variables so X, Y, Z, whatever representation we have, maybe alpha, delta, gamma and then Q, Q1, Q2, Q3. So this is sort of a vector differentiation.
We have X1 that corresponds to the first function. F1, this could be just the coordinate X. X2 is Y, etcetera and we have all these functions. So the Jacobian could be computed simply by this differentiation, partial differentiation. We can compute delta X1 as the partial derivative of F with respect to Q1 and F1 is function of all the Qs so we would take the partial derivative with respect to all the Qs and that provides delta X1. Delta XM in the same way, we take the less variable, less function, differentiate and obtain the relationship. Now, here we have a set of equations. How many equations do we have? Can you count them?

**Student:**M.

**Instructor (Oussama Khatib)**:M. So we have M equations. Depending on how many variables? Number of joints, how many joints do we have? N. So it is, basically, M equations that is expressed in function of all these N variables. So do you have another way to write this equation so it’s a little bit more compact because I’m not going to write this every time. So we can put it in a matrix form where delta X [inaudible] is a vector, delta X and delta Q1 to QN is a vector, delta Q and the relationship between the two is this matrix. So do you see the first column of this matrix? How do we transform a set of equations into a matrix vector form? So how do we do that? Do you see, first of all, what would be the first column? Come on. What is the first column? Where is it?

**Student:**[Inaudible] with respect to QN.

**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]

**Instructor (Oussama Khatib)**:Theta one plus theta two.

**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]

**Instructor (Oussama Khatib)**:Co-sine. Excellent. And with respect to Q4? Does X, Y or Z depend on Q4, no, so it should be zero, zero, zero. Okay. Well, here is the part of the Jacobian related to X dot, Y dot and Z dot. That was easy. Yes?

**Student:**What are the joint coordinates for Q4 through Q6?

**Instructor (Oussama Khatib)**:Well, they are not – I mean, X, Y and Z is independent. You remember because X, Y and Z was chosen at the risk point so when we move the endofactor, the point is still six. So you got zero columns for four, five and six. Okay. All right. Well, what seems very simple for X, Y and Z becomes a little bit more challenging for the orientation. So let’s take R1, R2, R3. You remember R1, R2, R3 are these three vectors representing the direction co-sines and if we write the derivative, it’s going to be R dot, R dot two, R dot three will be related to the Q dots by the partial derivative of R with respect to Q one. So let’s do that. Okay. Five minutes.
Well, I doubt it. You might be able to write a program to do it in five minutes, and still, it will be quite complicated to find all these columns, but more than that, what we have here is we have a matrix that corresponds to this description, which means that we are computing a Jacobian for the position and the orientation represented with direction co-sines and this matrix will have dimensions. We found the first one three by six and the second one, nine by six so it will be a 12 by six matrix. So if you look at the rank of that matrix, it’s not square matrix. Its rank is at most six, but you cannot really analyze this matrix and make sense of what is happening.
You will remember there might be configurations that will bring singularities if we are using a lot of angles or some minimal representation and that is going to be reflected in the Jacobian so our Jacobian is really not giving us the properties of the mechanism in terms of the linear velocity and angular velocity, rather, it is mixing everything up; mixing the representation properties with the properties of the mechanism itself. So when we have an XP and XR, we have contingencies for [inaudible], for the orientation, we might have a lot of angles, fixed angles, direction co-sines, a lot of parameters and if we compute the Jacobian this way.
That is, if we compute the Jacobian for the position from differentiation and from the orientation, this resulting Jacobian is going to be depending on the representation and it will have dimensions that accommodate the representation. So this is not something you want to do. If you are trying to find the Jacobian of your robot, you want to find the properties associated with robot in terms of its linear velocities and angular velocities. So this is really what we’re after. We are trying to find how the endofactor moves when we put velocities at the joints when we make small displacement of the joint.
What is the linear velocity? What is the angular velocity? So the linear velocity and angular velocity will be related to Q dot, and there is a matrix that provides that relationship. It is the Jacobian matrix that connects this six by one vector. Linear velocity is VX, VY, VZ; angular velocity is Omega X, Omega Y, Omega Z and Q dot has the number of degrees of freedom and this Jacobian will be sort of like that basic Jacobian that is describing the kinematics independently of your representation. What is interesting is this Jacobian; J0 will play a very important role in the kinematics, but also in describing the velocities for your representation.
Any representation that you will have can be connected to this Jacobian because any representation of velocities can be connected to linear and angular velocities. These angular velocities are instantaneous so there are representations of orientation. If we take three angular, alpha, beta, gamma – if you take the derivative of those angles, alpha, dot, beta, dot, gamma, dot, they are related to Omega. They are not equal to Omega. The derivative of [inaudible] angles are not angular velocities, but they are related to the angular velocities by other presentation, by a very simple model, a three by three matrix and using those relationships, we will be able to describe the Jacobian for any representation and connected to this Jacobian.
So if we have spherical coordinates, the derivative of the spherical coordinates are connected to the linear velocity by a simple matrix that is only function of the representation of spherical coordinates. If we have a lot of angles, we connect them to do omega simply by a three by three matrix that only involves alpha, beta and gamma. So through this relation we can see that we connect except for the position and the orientation to V omega and because your omega is connected to a Q dot, then we have a relationship between the Jacobian associated with this representation and the Jacobian associated with the kinematics.
So here are some examples. If we take a lot of angles, so if we take alpha, beta, gamma and take the derivative, we can see that these derivatives of alpha, beta, gamma are related by omega by a matrix which is, in this case, the sign of alpha, co-sine of beta, so it is only function of a lot of angles. If we take [inaudible] coordinates, the matrix that connect [inaudible] coordinates to linear velocity is simply the identity matrix because the derivative of [inaudible] are the linear velocities. So using this type of computing the linear and angular velocities, we will be able to generalize and find the Jacobian associated with any representation.
So the Jacobian for other presentation X, X is XP and XR will be a Jacobian we call JX for that specific X, and this Jacobian will be related to the basic Jacobian by a matrix E where E is going to connect the descriptions of linear and angular representation to V and omega through this relation. So here’s an example. If we take X dot as related to V through this matrix and X dot R related to omega through this matrix because Z and omega are related to Q dot by JV and J omega then we will have this relation which leads to this relation that is the part associated with the position representation is simply the Jacobian V associated with linear velocity previously supplied by EP.
That is the wishes function only as the representation or ER for the rotations which means if we combine them together, we obtain this relation, that is the Jacobian associated with other presentation is related to the basic Jacobian by an E matrix that has a diagonal form where EP is the matrix associated with the linear motion and ER is the matrix associated with E representation of the rotations. So the focus is on J zero. We have to find J zero. Linear and instantaneous angular velocities. But first let’s examine some Es. For the position representation, X, Y and Z, we said is the identity matrix. How about cylindrical coordinates?
Cylindrical coordinates you get roll theta and Z and here is the relationship between X, Y and Z and those coordinates. All what you need to do is to relate the differential relationship between delta X, delta Y and delta Z and those coordinates and you’ll find the matrix. And that leads to this matrix for cylindrical coordinates. What is nice is yeah, you go and store this in your library and you have access to all this. You don’t have to recompute them. So for cylindrical coordinates you have this matrix. For spherical coordinates you have this matrix, so these are things that if you want to change your representation, you just change your EP.
I’m almost sure that all of you understand what is the vector of linear velocity, but probably there is some confusion when we start propagating and moving and putting multiple variables and multiple frames, so I’m going to go a little bit back and describe how we can compute linear velocities as we propagate our vectors and we go from one link to the next. So here’s a point and this point is moving with respect to something. If it is moving with respect to the origin of frame A we talk about the velocity P of that point with respect to A, A, being the frame. Now, you have to distinguish between this magnitude of the velocity and its direction as a vector and its components and where we are expressing this vector.
So this vector could be expressed in frame A, right, we can have its component in frame A, but also we can express it in frame B and we can have its component in frame B. But still this vector is the vector representing the velocity of point P moving with respect to frame A. Now, if you want, we can put it in C. So don’t be confused about the vector and where we are expressing this vector. And that’s why I’m putting P/A, specifically, to show that measuring the magnitude of the velocity, the vector of velocity with respect to frame A. Now, let’s have the following situation.
I have this point that is moving with respect to frame A so I have a vector representing the velocity of point P with respect to frame A, this vector; now, if frame A is moving with respect to another frame and this is the frame of length three moving with respect to length two or whatever, there is a velocity of the origin and as this velocity is the velocity of the origin representing the velocity with respect to frame B. The question is what is the velocity of P with respect to frame B? What would be that velocity?

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

**Instructor (Oussama Khatib)**:Which one is first? So VP is equal to cross product of what by what? I said you will know in four minutes and it is almost four minutes so here is the answer. What is the answer? It’s omega cross P, it’s not P cross omega. By the way, we will see P cross F to produce the torque. There is a dual relation so here we have velocity, you have omega, you have the point. Now, you can imagine on the same figure that instead of omega and applying a torque and the result will be a force and there is a similar relationship between the two. And in that case, the relationship will be involving the distance first times the force and to produce the torque. Okay.
We will see that later. Probably on Monday. So now we have this relation, linear velocity is the angular velocity across the distance. It is represented as a vector model here. What we need to do in order to go to the matrixes, we need to introduce a matrix representation. That is, instead of writing a vector representation, I need to write this in a matrix form. So V is a vector now and C is a vector and A is the vector transformed into this matrix, a parameter, that does for you the A cross B. So we need to find this A [inaudible], the operator that is equivalent to A cross. Are you familiar with this? The cross product operator?
So this is essentially an askew matrix whose diagonals are zero, which is formed directly from the vector AX minus Y, Z component and it is not symmetric metrics and you start with a vector A. If you take this vector and put it in this matrix, then you get the matrix that will operate on the vector to produce the cross product of that vector and that will be your resulting linear velocity in the case of omega cross P. So now that we are going to combine linear and angular motion, the new velocity there in that frame is going to involve this omega cross P and this will be added to that vector.
That is, you have the velocity of the point coming from the linear motion, the velocity of the origin and the velocity due to this rotation. And this is omega cross the vector locating the point. Now be careful about where you express your vectors because if we say we are going to compute those quantities to express them in frame A, the result has to be expressed of each term should be expressed in frame A. So if we have the vector P expressed in frame B, we will have to transform it to frame A and then do the multiplication and we have to express this in frame A so that the whole result is finally in frame A.
So you have to make sure that each term or each vector is expressed in the same frame. It doesn’t matter which frame it is, but it has to be in the same frame, and if you need A, then everything has to be transformed to A. Wow. That was interesting. Good. All right. We’re ready now. So we’re going to take those concepts and now apply them to all our mechanisms. And I think we’re going to skip the movie segment. We will see it on Monday. So the way we’re going to proceed is by taking those velocities from one frame and taking those velocities and propagating them as we move from one link to the other until reaching the velocity at V and omega.
So this propagation is going to involve two velocities. The linear velocity, V, and the angular velocity, omega. All right. And when we get there, we will have the Jacobian that will be in the total velocity. That is, once you V and omega, you will have implicitly the expression of the Jacobian multiplied by theta which you can extract. So let’s start with the linear velocity. So here’s let’s take a vector, VI and omega I that is describing the velocities of this origin of frame I and the rotation of the frame with respect to omega I, that is representing the instantaneous velocity. And let’s go to the next frame where we have a new linear velocity, I plus one and the new instantaneous angular velocity, omega I plus one.
So what is the resulting linear velocity VI plus one as related to the velocity VI? So first of all, don’t look at your notes and let’s see if you have the intuition about it. So what would be VI plus one as a function of VI? Is it smaller, larger? So VI plus one is going to be equal to – Is it related to VI by any chance? So there is a translation. Everything is moving with VI. So the VI plus one is going to have VI in there without doubt, but there are two terms that will appear and the first one is omega I cross PI plus one. You didn’t tell me why, but maybe now that I’m showing you what is the [inaudible], tell me why? Yes.

**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?

**Student:**[Inaudible] prismatic joints.

**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?

**Student:**Yeah. It looks like the prismatic is on the ZI in that frame?

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

**Instructor (Oussama Khatib)**:That’s representing D delt here.

**Student:**Okay.

**Instructor (Oussama Khatib)**:Okay. Now, what about angular velocities? We are concerned with what is omega I plus one as a function of omega I. So if the joint, I plus one, was prismatic, so there is no rotation between the two, what would be omega I plus one? It would identical to omega I. If it is a volute, then there will be the omega I plus one that will be added, and the omega I plus is simply the dot of theta I plus one along ZI plus one. So to propagate from one frame to the next what we need to do is to take these two relations and go from the fixed base where ZO is zero, it’s attached to the ground and omega zero is zero, there is no motion, and propagate to the end and when we reach theta end, we are going to have the V associated with the endofactor, the omega associated with the endofactor. Now, in both relations what do you see? You see that you are using D dot and theta dot and the kinematics, obviously, the Z axis so that means we are going to be able to compute the total velocities V and omega at the endofactor as a function of the theta dots and the D dots or the Q dots. Yes?

**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?

**Instructor (Oussama Khatib)**:There could be a volute joint in frame I plus one, or a prismatic joint. And depending on the nature of the joint, you get either D dot or you get the omega I. Okay. So when you do this computation, you are going to have an expression of the total linear velocities, total angular velocities as a function of the D dots or the theta dots. So for joint one, V1 and omega one can be expressed in frame one and this is going to be sort of using this relation to compute the omega I plus one from the initial frame. This would be the expression for I plus one and this would take us, because we are expressing all these in the frame, I plus one, we are going to find the total expression of the velocities in the frame N as we propagate, and once you reach the final velocities in frame N, you can transform them back to the base frame and that will give you the total velocities at the endofactor in frame zero. Yes?

**Student:**In your previous slide, where did you get theta I plus one from?

**Instructor (Oussama Khatib)**:Theta?

**Student:**The previous slide.

**Instructor (Oussama Khatib)**:Yes. Which variable?

**Student:**Omega I plus one equals the theta I plus one, where did you get that theta I plus one from?

**Instructor (Oussama Khatib)**:This one?

**Student:**Yes.

**Instructor (Oussama Khatib)**:Okay. So omega I plus one is the angular velocity associated with the motion of joint I plus one if the joint is volute, and if the joint is volute, the velocity vector is about the vector ZI plus one so this is a unit vector and the magnitude of that velocity is proportional to theta dot I plus one. So this is actually joint I plus one. If you take the derivative, you remember we aligned the rotations of each volute joint along the Z axis so that is where it comes from. Yes?

**Student:**Is theta I plus one and DI plus one, aren’t those defined along the ZI plus one axis?

**Instructor (Oussama Khatib)**:Always.

**Student:**So it’s not necessary of the dot product, right?

**Instructor (Oussama Khatib)**:What do you mean it’s not dot product?

**Student:**Dot ZI plus one, that’s not adding anything is it if there’s [inaudible]

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