IntroductionToRobotics-Lecture06

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?

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?

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?