Quick Jump:

Print-friendly PDF version

Kinematics of a five-degree of freedom arm

Solving forward kinematics mathematically

Rotation with respect to an absolute frame

In the Preface, we told the story of the Wright brothers’ invention of the airplane and mentioned a frame of reference centered on an airplane.  When pilots want to change the orientation of their airplane, they refer to roll, pitch, and yaw angles.  These are rotations that refer to a relative reference frame, for example, a frame of reference relative to the airplane.  By convention, the long axis of the airplane is defined as the x-axis, the wings define the y-axis, and a line perpendicular to the plane containing the wings is defined as the z-axis.  According to these definitions, when the airplane flies a level course, parallel to the ground, rotations around the x-axis describe roll, rotations around the y-axis describe pitch, and rotations around the z-axis describe yaw.  To see what direction is a positive rotation about an axis, orient your hand so that your right thumb points along the axis of interest.  The curvature of your fingers will show you the direction that is a positive rotation.  For example, in Figure 1, a positive roll angle will tilt the right wing down.

Figure 1. Roll, pitch, and yaw as defined for an aircraft.  The long axis of the airplane is defined as the x-axis, the wings define the y-axis, and a line perpendicular to the plane containing the wings is defined as the z-axis.  Rotation about these axes is called roll, pitch, and yaw, respectively.  As the airplane maneuvers, the coordinate system remains “attached” to the airplane.

            In a relative reference frame, the axes that we have defined for this airplane remain attached to the airplane, so that even as the aircraft ascends steeply, it still rolls around its x-axis.  One analogue of this situation for reaching movements is a shoulder-centered coordinate system that moves as the body moves.  Such coordinate frames are especially important in motor control because our muscles generate forces in relative coordinate frames, i.e., based on their locations within the body and attachments to the skeleton.


            The alternative to a relative reference frame is an absolute reference frame.  For example, rather than defining the z-axis, as above, with respect to the plane containing the wings and fuselage of the airplane, we could instead define it with respect to a fixed place on the ground.  Our x-axis might point east, our y-axis might point north, and our z-axis would point to space.  In this frame of reference, when an airplane ascends steeply, and the aircraft maneuvers to rotate around its long axis, this would be described as a change mostly in yaw angle rather than a roll angle.  No pilot would describe it that way, because aerial maneuvers are expressed in a relative reference frame based on the airplane.  Absolute reference frames are important in understanding motor control, however, because the targets of movement, including the target of reaching movement, exist in a world-centered, absolute reference frame.  For example, the cup we discussed earlier as the target of your reaching movement does not move if you move.  Its position is most readily described by a coordinate system fixed to the table, for example.


            In absolute frames, when an object rotates around some axis of the frame, further rotations are also expressed with respect to the same frame.  This is shown in Figure 2.  In this figure, you start with frame {B} coincident with {A}.  You rotate {B} about  by angle g.  This is called a roll angle.  A vector in {B} can be represented in {A} as:



You then rotate your vector about by angle b.  This is called a pitch angle.  You now have:



Finally, you rotate your vector about by angle a.  This is called a yaw angle.  You have:




You have:




which expresses the vector in terms of frame {A} after that vector underwent a sequence of roll, pitch, and yaw rotations.  If you multiply these matrices, you will get at single matrix that expresses this three-dimensional transformation.  To simplify our notation, let us dispense with cos and sin and simply use c and s instead:



Figure 2. Roll, pitch, and yaw rotations of frame {B} with respect to an absolute frame {A}.  Frame {B} and {A} start as coincident (not shown).  From left to right: {B} rotates about by angle g.  This is the roll angle.  Next, {B} rotates about by angle b.  This is the pitch angle.  Finally, {B} rotates about by angle a.  This is the yaw angle.


You can now use this result to compute hand position for a simplified two-joint arm, which as you recall, can only rotate around the shoulder joint.  Consider the coordinate system in Figure 3.  When your hand is hanging by the side of your body, pronation and supination are rotations around the z-axis, which extends up from the ground.  This is defined, in absolute coordinates, as the yaw angle.  Similarly, flexion/extension and abduction/adduction are rotations around the x- and y-axes, respectively, and thus are described as roll and pitch angles, respectively.  However, notice that when you raise your arm so that it is in a flexed posture with the forearm aligned with the y-axis (right most plot in Figure 3), pronation/supination is now a rotation about the y-axis.  Therefore, in absolute (but not relative) coordinates, with your arm hanging by your side, pronation changes the yaw angle, while in another position pronation changes the pitch angle.  The reason for this change is that our coordinate system does not move as our arm moves.  In the next section, we will consider relative coordinate systems.


Figure 3. Roll, pitch, and yaw angles for the shoulder.  Pronation and supination are rotations about the z-axis (yaw).  Abduction and adduction are rotations about the y-axis (pitch).  Flexion and extension are rotations about the x-axis (roll).

Rotation with respect to a relative frame

You aim is to describe position of the hand with respect to your shoulder.  The formulation that you are going to use was devised by John Soechting1.  Following his approach, we define a reference frame at your shoulder, which remains stationary, and another frame that rotates with your moving arm.  We describe angles with respect to the moving (relative) frame, rather than the stationary (absolute) frame.  In this way, for example, the angle of the elbow will be defined with respect to the orientation of the upper arm, rather than in an absolute coordinate system.

Figure 4. Front and side view of frames {S} and {E}.  A. Frames {S} and {E} are coincident.  {E} is attached to the arm while {S} is stationary.  B. The arm rotates about the z-axis of frame {E}.  This is supination.  The new position of frame {E} is named {E’}.

            Start with your arm hanging by your side as in Figure 4.  Your initial goal is to be able to describe the position of your elbow with respect to your shoulder, allowing for the three degrees of freedom at your shoulder.  In Figure 4A, {S} is our fixed coordinate frame and {E} is attached to your upper arm at the shoulder and rotates with it.  The z-axis of frame {E} points along the length of the arm.  Because it is “attached” to the upper arm, it will always point along the length of the arm toward your elbow.  If the length of the upper arm is l1, then the position of your elbow in frame {E} is always defined as:


We would like to be able to compute , that is, position of your elbow with respect to the stationary, shoulder-centered frame {S}.  Begin with supination Figure 4B: rotate {E} around the z-axis of frame {E}, that is , by an amount .  This rotates your hand, but your arm continues to hang beside your body.  The orientation of frame {E} has changed, but not the position of your hand.  Let us label the position of frame {E} at this new location {E’}.  The vector points to your elbow in this rotated frame.  There is a rotation matrix that can transform this vector into frame {S}:




Now consider abduction (Figure 5A): rotate {E’} around  by angle q.  This rotation lifts your arm up and also changes the orientation of frame {E’}.  To reflect this change, we label the current position of this frame as {E’’}.  The position of your elbow is now described by .  A matrix rotation takes this vector to {E’}, and another rotation takes the vector to {S}.


You have already computed but need to compute:


The final rotation is of {E’’} about by angle (Figure 5B).  The final position of the reference frame is labeled as {E’’’} and the vector now points to your elbow.  You have:


You can now write the sequence of rotation matrices that transform into :




* simply points to your elbow and is:



Multiplying this by the matrix in Eq. (2) gives:




This is the position of your elbow with respect to your shoulder for the angles that are plotted in Figure 5C.

Figure  5. A.  Abduction: frame {E’} rotates about its own y-axis. B.  Frame {E’’} rotates about its own z-axis.  C.  Final configuration of the arm, with the angles that are used for computing elbow position.

Eq. (2) provides you with a rotation matrix that transforms any vector in {E’’’} frame into the {S} frame.  If you can describe a vector in {E’’’} that always pointed to your hand, you could use Eq. (2) to transform that vector to the {S} frame and therefore compute your hand’s position with respect to your shoulder.  However, to describe a vector that always points to your hand, you have to allow for the degrees of freedom that exist at the elbow.


            The two degrees of freedom at the elbow are flexion/extension and pronation/supination.  Start with flexion/extension.  In Figure 6A, the frame {H} is defined at your elbow joint.  Its x-axis is aligned with the forearm and vector   points to your hand.  The forearm has length :



In Figure 6A, your elbow has flexed by an amount a.  Your intention is to represent in terms of the frame {E’’’}.  Note that with respect to {E’’’}, {H} is displaced by a vector of length and rotated about by angle a.  You have:


Compute and insert it into the above expression:



Figure 6. A. Flexion at the elbow.  Frame {H} rotates about its own y-axis.  B.  Pronation at the elbow. Frame {H} rotates about its own y-axis.

The final step allows for pronation/supination at the elbow.  Figure 6B represents this as a rotation of frame {H} about its own z-axis by an amount r.  Vector L continues to point to your hand and is defined as:


Using a rotation matrix, you can represent this vector in terms of the frame {H}:


Because you have been imagining your arm as a stick that has a joint at the elbow and a joint at the shoulder, a pronation or supination of the elbow should not change the position of the hand.  Rather, it changes its orientation.  This means that after a pronation, position of your hand should not change with respect to frame {H}.  Stated another way, we should have: , and indeed this is the case.  Note that pronation or supination at the elbow does change the orientation of {H} and thus end effectors held in the hand, such as a stick grasped by your hand, with vary as a function of that rotation.  For now, we focus on end effectors such as the hand or a mouse-controlled cursor, which are not affected by pronation or supination at the elbow.

            You can now use your sequence of rotation matrices to compute hand position with respect to the shoulder:



Multiplying the matrices gives us an equation for computing position of the hand in terms of the angles of the arm [Eq. (5)].  In Figure 7, these angles are drawn.




If your arm’s sensory transducers could measure your limb’s joint angles, we could insert these angles into Eq. (5) to compute a vector that describes hand position with respect to the cartesian frame {S}, centered on the shoulder.  This transformation solves the forward kinematics problem, at least mathematically, and shows us a way that the central nervous system, using the information from the peripheral nervous system, could compute hand location from sensors that reflect joint angular position of the limb.


Figure 7.  A view of the arm with the angles that are used for describing its configuration.