CS4610: Lecture 9 - Arm Kinematics
Arm Coordinate Frames
- Recall from Lecture 3 that we defined a world coordinate frame (w in the figure below) that is fixed to the environment, with standard basis
and origin
. The
axis of world frame points up from the ground, and we normally draw the
axis pointing right and the
axis pointing up. - We also defined a robot frame (r in the figure below) that moves with the robot. It has basis
and origin
at the point on the ground midway between the two wheel contact points. (The basis and origin vectors of robot frame are expressed in world frame coordinates.)
(i.e. the
axis of robot frame also points up from the ground),
always points directly forward on the robot, and
always points to the robot’s left.
is the CCW positive angle from
to
(i.e. from the world frame
axis direction to the robot frame
axis direction). - We now define several coordinate frames on the arm (see figure below):
- Frame 0 is attached to link 0 on the arm, the initial link that is rotated by the arm shoulder joint. The
axis of frame 0 points down link 0; the
axis points to robot left, and the
axis points “up” on link 0. The origin of frame 0 is the point where the arm shoulder rotation axis intersects the
plane of robot frame, which is at the fixed location
in robot frame. - Frame 1 is attached to link 1 on the arm, the second link that is rotated by the arm elbow joint. The
axis of frame 1 points down link 1; the
axis points to robot left, and the
axis points “up” on link 1. The origin of frame 1 is the point where the arm elbow rotation axis intersects the
plane of robot frame, which is at the fixed location
in frame 0. - Frame 2 is attached to link 2 on the arm, the third link that is rotated by the arm wrist joint. This is also the link that carries the gripper. The
axis of frame 2 points down link 2; the
axis points to robot left, and the
axis points “up” on link 2. The origin of frame 2 is the point where the arm wrist rotation axis intersects the
plane of robot frame, which is at the fixed location
in frame 1. - Frame g (gripper frame) is also attached to link 2; it models the point where an object could be gripped. It is co-oriented with frame 2, and its origin is the center of the circular notch between the gripper fingers, which is at the fixed location
in frame 2.
- The arm joint angles are
: the CCW positive angle from the direction of
to 
: the CCW positive angle from the direction of
to 
: the CCW positive angle from the direction of
to
. - Positive values of each rotate the arm down (i.e. these are right-hand-rule rotations about the corresponding
axes). - The ranges of motion are
, 
, 
,
. - The figure shows the arm in home pose which has
,
,
, and the gripper closed. - We also define a calibration pose where the arm is pointing straight forward, i.e.
and the gripper is closed.
Forward Kinematics
- In Lecture 3 we also developed the forward position kinematics of the robot mobility, including a mathematical function with inputs
(the robot pose) and output
, a
homogenous transformation matrix taking coordinates in robot frame to world frame. - We can restate this function using two components:
is a pure translation transform
is a pure rotation about the
axis
- Then
. - Remember, transforms compose from right to left. Given a 3D point
in robot frame, transform it to world frame
by appending an extra 1 and then left-multiply by
: 
- We now extend this function to include the arm; the inputs will be
, and the output will be
, a
homogenous transformation matrix taking gripper frame to world frame. - Defining
as a pure rotation about the
axis, continue the composition to include transforms all the way from gripper frame to world frame:

- Using abbreviations
and
, and observing that the product of a pure translation and a pure rotation (in that order) is given simply by copying the upper left
submatrix of the rotation and the upper right
submatrix of the translation,




, 
, 

- This shows that the transform taking gripper frame to robot frame is the product of a pure translation and a pure rotation:

- In other words,
- the orientation of the gripper in the robot frame
plane is
, i.e. the CCW positive angle from
to
is the sum of the joint angles - the gripper location in robot frame (the grip point) is

- in this case, both of these results could have been found directly using only basic trigonometry (in fact the derivation is very easy)
- but the transform composition formalism with homogenous transformation matrices works the same way for a very broad class of kinematic chains, not just this particular gripper, and it is efficient
Analytic Inverse Kinematics
- Just as inverse position kinematics was very useful for robot mobility, it will also be useful for the arm.
- Conceptually, we would like to literally invert the forward kinematic function.
- Recall that for robot mobility, this meant finding some drive trajectory that would bring the robot to a desired pose
. - For the arm, we can define the inverse kinematic problem as finding a set of joint angles
that put the gripper at a desired location
and orientation
in the robot frame
plane. - Later, we’ll show a simple extension that also uses turn-in-place wheel motions to allow the arm to reach a 3D volume in world frame.
- We’ll make one simplification: we will only solve a version of the problem where
. That is, we will solve a restricted version of the arm IK problem where the gripper is always held parallel to the ground. This simplifies the math somewhat while still demonstrating the essence of IK. Also, it’s not too much of a compromise in many practical grasping tasks. - Inverse kinematics is a well-studied area. There are a number of approaches; two common ones are analytic (or closed form) IK and numeric (or iterative optimization) IK. We’ll first demonstrate an analytic IK solution for our arm; later we’ll re-solve the problem using the numeric approach.
- The basic idea of analytic IK is to try to algebraically invert the forward kinematics equations. When this is possible (and it is not always possible), the approach has several key properites:
- Once the IK equations are found (on paper), they can be coded up, and at runtime their solution(s) can be found (by definition) in constant time. So analytic IK is usually fast.
- Note carefully: there can be more than one solution. For example, in our version of the problem, the elbow could “kink” up or down.
- Unreachable targets are also identified in constant time.
- Here’s one way to solve our version of the IK problem with an analytic approach:
- First, since
, we can immediately derive
(1)
- The same fact implies
and
, which lets us simplify


to


- Now expand the trig identities for angle sums
(2)
(3)
- and add the two identities
(4)
(5)
- Tecnically (2–5) are a system of 4 equations in 4 unknowns (
), so we should be able to solve for all unknowns. - This is a little tricky unless we apply some geometric insight. Define the reach triangle with vertices given by the origins of frames 0, 1, and 2 (i.e. the intersections of the shoulder, elbow, and wrist rotation axes with the vertical
plane in robot frame). Two of the triangle side lengths are
and
; the angle between those two sides is
. Defining the reach vector as
, the third triangle side has length
(6)
- Apply the cosine angle difference identity and the law of cosines to solve for
:
(7)
(8)
- If
then (8) implies
, but otherwise the given target is unreachable. - Assuming the target is reachable, use (5) to find
, taking the positive branch of the square root to make the arm “kink up”, i.e. to find a solution with
:
(9)
- Together, (8–9) determine
. (10)
- The target is unreachable if
, otherwise continue. - The final job is to calculate
. It will be the difference of the orientation
(11)
of the reach vector and the angle
in the reach triangle between the sides with lengths
and
:
(12)
can be found by another application of the law of cosines:
. (13)
- The target is reachable if
. - Finally, calculate
by (1); the target is reachable iff
. - Summing up:
is calculated by (10), which depends on (6,8,9); then
is calculated by (12) which depends on (6,11,13); and finally
is given by (1).
- This approach can be extended to include a “yaw” rotation by using the wheels to turn in place, which allows the arm to reach a 3D volume in world frame.
- Let the 3D target location for the gripper be
in world frame, and assume that the robot reference point is at the world frame origin. - Calculate the yaw angle
. - Transform
to
with the robot at orientation
:

- This boils down to



where
is the distance from robot frame origin to the projection of the grip point on the ground plane, and
are the coordinates of the grip point in robot frame. - Continue as above with the target
in the robot frame
plane.
Numeric Inverse Kinematics
TBD