8.1. Lagrangian Formulation of Dynamics (Part 2 of 2)

This video continues our study of the dynamic equations of motion of a robot, focusing on the velocity-product terms, namely, Coriolis terms and centripetal terms.

In the last video we derived the equations of motion for a 2R robot. In this video we focus on the velocity-product terms, c of (theta, theta-dot). In particular, terms that have the square of a single joint velocity are called centripetal terms. Terms that have a product of two different joint velocities are called Coriolis terms. To gain some intuition as to the physical meaning of these terms, let's continue to use the 2R arm.

To focus on the velocity-product terms, let's assume that gravity and the joint accelerations are zero. Then the force needed to move mass_1 is f_1 equals m_1 times the x-y-z linear acceleration of the mass. We can write these accelerations in terms of joint one's velocity and acceleration as you see here, where c_1 means cosine of theta_1 and s_1 means sine of theta_1. Notice that there are joint velocity squared terms. In other words, zero acceleration of the joints does not mean zero acceleration of the mass in the linear coordinates x, y, and z. We could do the same thing for mass_2 and get this expression for f_2 in terms of the joint velocities and accelerations. C_1,2 means cosine of theta_1-plus-theta_2 and s_1,2 means sine of theta_1-plus-theta_2.

Now let's put the robot at theta_1 equal to zero and theta_2 equal to pi over 2. At this configuration, the velocity-product acceleration terms for mass_2 are given here. Now consider the case where theta_1-dot is positive but theta_2-dot is zero. Then the mass travels around a circle with its center at the first joint. The centripetal acceleration of the mass is proportional to theta_1-dot-squared toward joint 1. Without that centripetal acceleration, the mass would fly off on a straight-line tangent to the circle. Also notice that the line of acceleration of mass_2 passes through the first joint, and therefore the line of force needed to create that acceleration creates no moment about joint 1. So joint 1 does not have to apply a torque at this configuration and velocity. Joint 2, on the other hand, has to apply a positive torque to keep the mass moving along the circle.

Next, consider the case where theta_1-dot is zero but theta_2-dot is positive. Now the mass travels around a circle with its center at the second joint, and the centripetal acceleration is proportional to theta_2-dot-squared. Finally, consider the case where both theta_1-dot and theta_2-dot are positive. In addition to the centripetal accelerations, there is now a Coriolis acceleration toward joint 2. Mass_2 times this Coriolis acceleration is a force that creates negative moment about joint 1. In other words, to keep both joint velocities constant, we must apply a negative torque to joint 1. If zero torque were applied to joint 1, joint 1 would accelerate. This is what happens to a skater in a spin when he pulls in his outstretched arms--since his inertia decreases, his spinning velocity increases.

In summary, we can write a robot's equations of motion this way, but we can also write the velocity-product terms as theta-dot-transposed times Gamma of theta times theta-dot. I personally like this way of writing the velocity-product terms, as it emphasizes the fact that the terms are quadratic in the joint velocities. Also, it emphasizes that Gamma of theta depends only on the joint values theta. You can think of Gamma as a three-dimensional n-by-n-by-n matrix, whose entries are called the Christoffel symbols of the mass matrix. Viewed this way, Gamma_i is an n-by-n matrix constructed of components Gamma_i,j,k. The Christoffel symbols Gamma_i,j,k are calculated from the derivatives of the mass matrix with respect to the joint variables, and the velocity-product vector can be calculated as shown here.

Although this looks complex, the main point is that the velocity-product term can be written explicitly as a quadratic in the joint velocity vector. Just keep in mind this simple example. A mass m with a scalar velocity x-dot has a scalar momentum p. The force acting on the mass is the time derivative of the momentum. If we assume the mass is constant, then f equals m x-double-dot. If the mass changes with the configuration, though, as it does for an articulated robot, then by the chain rule for derivatives, the time derivative of the momentum has a term depending on d_m d_x, the derivative of the mass with respect to the configuration. D_m d_x plays the same role as the Christoffel symbols of a mass matrix.

Back to our list of ways to compactly represent a robot's dynamics, another common way to write the velocity-product term is to express it as the product of a Coriolis matrix and the joint velocity vector. The elements c_i,j of the Coriolis matrix can be constructed from the Christoffel symbols and the joint velocity vector.

Finally, we sometimes lump all the terms not dependent on theta-double-dot into a single vector, h of (theta, theta-dot).

To any of these forms of the equations of motion, we can add the joint forces and torques needed to create a desired wrench F_tip at the end-effector. Now that we have a better understanding of the velocity-product terms, in the next video we will focus on the mass matrix.