Let’s summarise some of the concepts that we’ve learned in this lecture. It’s all being about motion in three-dimensional space. First of all, we introduced the concept of translational velocity that is the rate of change of the X, Y and Z components of a point in space and we define that with respect to a reference coordinate frame.
We introduced the concept of angular velocity and that is a vector quantity. The direction of the vector is the axis about which the body is rotating at that instance in time and the magnitude of the vector is the rate of rotation. Angular velocity has three components: ωx, ωy, and ωz defined with respect to a reference coordinate frame.
Translational velocity V and angular velocity ω are combined into a quantity we referred to as spatial velocity or sometimes referred to as twist. It’s a six-element vector. We introduced a skew symmetric matrix. This is a matrix whose transpose is equal to the negative of itself. When we are talking about rotation in three dimensions, the relevant skew symmetric matrix is a 3.3 element matrix which is a function of a vector. There is a really important relationship between the angular velocity of that body and the time derivative of the rotation matrix.
For a robot with six joints, we can write a relationship like this, which relates the rate of change of the robot joint angles to this spatial velocity of the robots end effector, and the relationship is in terms of a six by six Jacobian matrix which we denote by the symbol J. The Jacobian matrix is a function of the joint angles themselves.
We can write this general relationship between the robot joint angle velocity Qdot and spatial velocity in terms of the Jacobian matrix. If the Jacobian matrix is square, then we can invert the relationship and that allows us to transform a desired spatial velocity for the robot’s end effector into the joint angle rates of the robots’ motors need to attain.
The motion of any robot joint affects the spatial velocity of the robot’s end effector. We can think of the columns of the Jacobian matrix as described at that relationship. The first column tells us how the spatial velocity is affected by the first joint. The second column tells us how the spatial velocity is affected by the second joint and so on. We can think of it as a summation of the effect of each of the individual joints, we add them all together to determine the overall spatial velocity of the robot’s end effector.
In some cases, the robot Jacobian can be singular and that’s when more than one joint cause exactly the same motion of the robot end effector, that there are two columns in the Jacobian matrix which are identical and that makes the robot singular.
For robots that move in three-dimensional space, the Jacobian matrix always has six rows but the number of columns is equal to the number of joints that the robot has. If the robot has six joints, the Jacobian matrix will be square and we can invert it so long as the robot is not in a singular configuration. For a robot with less than six joints which we refer to as an under-actuated robot, the Jacobian is not square. In order to square it up so we can use it for control purposes, we need to eliminate some rows in that Jacobian matrix. For the case of a robot with more than six joints, which we refer to as an over-actuated robot, the Jacobian has many more columns than has rows. If we want to invert it for control purposes, we need to use a technique called the Pseudo Inverse. We can also think about the robot like this as having a large number of spare joints and we can use this to control the configuration with the shape of the robot arm independently of the pose of its end effector. We refer to this as null space motion.
We can transform velocity expressed with respect to one frame to velocity with respect to another frame by a Jacobian matrix, and that Jacobian matrix is a function of the relative pose between the two frames. In particular, it’s a function of the relative orientation between the two coordinate frames.
We can use that velocity transform technique in order to determine the robot’s end-effector spatial velocity with respect to the end-effector coordinate frame rather than the world coordinate frame, and that’s typically a very useful and convenient thing to have. We can therefore define a variant of the Jacobian matrix which gives us the velocity in frame six, the end-effector coordinate frame.
Angular velocity is a somewhat abstract concept that’s a little difficult to visualize. We often talk about the orientation of a body in terms of its roll, pitch, and yaw angles so it’s more intuitive to express the rotational velocity of an object in terms of the rates of change of its roll, pitch, and yaw angles. We can derive a 3x3 Jacobian matrix which transforms roll, pitch, and yaw angle rates into traditional angular velocity. Then we can introduce a variant of a spatial velocity vector and we replace the angular velocity component with a roll, pitch, yaw velocity component. This leads to something called the Analytic Jacobian matrix and this maps robot joint angle rates to the modified spatial velocity vector.
We introduced the concept of the velocity ellipsoid in three dimensions. The ellipsoid says something about the ability of the robot to achieve velocity in different directions in three-dimensional space. The end-effector is able to move most quickly in the direction parallel to the longest axis of the ellipsoid and it moves most slowly parallel to the direction of the shortest axis of the ellipsoid. We can describe the overall shape of the ellipsoid in terms of a scalar measure which we call manipulability, and it says something about the compactness of the ellipsoid. If the manipulability is equal to one, the ellipsoid is in fact the sphere, and we refer to this as the isotropic motion case. The robot is able to move equally quickly in any direction. In the case of manipulability is equal to zero, that indicates that motion in one partition direction is not possible and the three-dimensional ellipsoid has been flattened into an elliptical plate.
We revisit the important points from this masterclass.
This content assumes high school level mathematics and requires an understanding of undergraduate-level mathematics; for example, linear algebra - matrices, vectors, complex numbers, vector calculus and MATLAB programming.