8.2. Dynamics of a Single Rigid Body (Part 1 of 2)
8.2. Dynamics of a Single Rigid Body (Part 1 of 2)
This video introduces the center of mass of a rigid body; its 3×3 symmetric, positive-definite rotational inertia matrix; the principal axes and moments of inertia of an inertia matrix; and the equations governing the rotation of a rigid body.
Starting in Chapter 8.2, we learn the Newton-Euler method for deriving the dynamics of a robot. Whereas the Lagrangian formulation starts with the potential and kinetic energy and applies a variational approach based on derivatives, the Newton-Euler method is derived directly from f equals m-a for the rigid bodies that make up the robot. One advantage of this approach is that we can derive an efficient recursive algorithm for computing the dynamics of open-chain robots.
Let's start with the dynamics for a single rigid body. You can think of a rigid body as a collection of point masses that are rigidly attached to each other. We define the center of mass to be the unique point at the centroid of the mass distribution, and we fix a frame {b} to the rigid body at the center of mass. The definition of the center of mass is that the sum of the mass-weighted vectors to the point masses in the {b} frame is zero.
We define the twist of the rigid body, expressed in the {b} frame, as V_b, consisting of an angular velocity omega_b and a linear velocity v_b. Then the linear velocity of mass i is p_i-dot equals v_b plus omega_b cross p_i. We define the acceleration of the rigid body to be V_b-dot, and using this we can take the derivative of p_i-dot to get p_i-double-dot. Notice that the last term is omega-b cross the time derivative of p_i, so we can substitute in the expression above to get this equation for p_i-double-dot. Notice that it has velocity-product terms in the form of omega_b cross v_b and omega_b cross omega_b cross p_i.
Now, taking as a given that f equals m-a, we get the force f_i needed to move the mass m_i using the expression for p_i-double-dot we just derived. The corresponding moment in the {b} frame is m_i equals p_i cross f_i, written here with our bracket notation. The total wrench F_b, consisting of a moment m_b and a force f_b, needed to accelerate the body with acceleration V_b-dot when it is moving with a twist V_b is just the sum of forces and moments needed for the individual point masses. If we define m to be the total mass of the body, then using the fact that we defined the frame {b} to be at the center of mass of the body, the total force f_b is just m times v_b-dot plus bracket-omega_b times v_b. The total moment m_b is I_b times omega_b-dot plus bracket-omega_b times I_b times omega_b, where I_b is called the inertia matrix. The inertia matrix is the negative of the sum of each mass times the bracket of its position squared. We can write the 3-by-3 inertia matrix in terms of its nine components, with the diagonal terms Ixx, Iyy, and Izz, as well as the off-diagonal components Ixy, Ixz, and Iyz. These components are calculated as shown here. As an example, the top left element of the matrix, Ixx, is called the moment of inertia about the x-axis. This inertia gets larger if the mass m_i is further from the x-axis, where the square of the distance from the x-axis is given by y_i-squared plus z_i-squared. Basically, if the mass of the body is far from the x-axis, it takes more torque to accelerate about the x-axis.
The off-diagonal elements are called products of inertia.
Now imagine that we replace the individual point masses of the rigid body by a continuous mass density rho as a function of position. Then the elements of the inertia matrix are calculated as volume integrals instead of summations, but conceptually there is no difference. In the book you can see some simplified formulas for calculating the inertia matrix of some common bodies.
Just like the mass matrix for a robot, the inertia matrix I_b for a rigid body is symmetric and positive definite. Also similar to the mass matrix for a robot, the kinetic energy for a rotating rigid body is one-half omega_b-transpose times I_b times omega_b.
Now let's consider a particular rigid body, an ellipsoid, with a frame {b} at its center of mass and the inertia matrix I_b shown here. Now consider the same body but with a frame {p}, also at the center of mass, with a different orientation. In this frame {p}, the inertia matrix has a particularly simple form, with all off-diagonal elements zero. When the off-diagonal elements are zero, the {p}-frame coordinate axes are called principal axes of inertia, and the scalar inertias about those axes are called the principal moments of inertia. You can find the principal axes of inertia from the inertia matrix for any frame {b} at the center of mass by evaluating the eigenvectors and eigenvalues of the inertia matrix I_b. The principal axes of inertia are aligned with the eigenvectors, which are expressed in the {b} frame, and the principal moments of inertia are the eigenvalues. The rotation matrix expressing the {p} frame in the {b} frame, R_bp, has the eigenvectors as its columns.
If we equate the kinetic energy expressed in the {p} and {b} frames, we can calculate the inertia matrix in the {p} frame as R_bp-transpose times I_b times R_bp. When possible, it is preferable to choose the body frame to be aligned with the principal axes of inertia, to simplify the inertia matrix. This also simplifies the rotational equations of motion.
For an arbitrary {b} frame at the center of mass, the rotational equations of motion are what we derived before. If the {b} frame is aligned with the principal axes of inertia, however, the equations can be expressed more simply, as you see here. This form involves many fewer multiplications, additions, and subtractions.
To summarize, these are our equations of motion for a single rigid body. In the next video we will study these equations further, in preparation for using them for the dynamics of a robot.