Forward and inverse kinematics of the AR4 arm, by Chris Annin (Annin Robotics), whose open-source Denavit-Hartenberg models this section builds on.
The AR4 is an open-source arm with six revolute joints. Its configuration is a single vector of joint angles, a point in a six-dimensional configuration space bounded by the mechanical joint limits. Everything below is a function of that vector.
Denavit-Hartenberg parameters
A serial arm is a chain of links connected by joints. The Denavit-Hartenberg (DH) convention is the standard bookkeeping that attaches a coordinate frame to every link and summarises the geometry between consecutive frames with just four numbers per joint: the joint angle , the link offset , the link length , and the link twist . Each row of the table is nothing more than one homogeneous transform, so the whole arm is the product of six of the matrices from the homogeneous coordinates section. There are two DH conventions in common use, and the AR4 ships with both. Standard (classic) DH places each frame at the far end of its link; modified (Craig) DH places it at the near end. They describe the same physical arm and produce the same hand pose, but the numbers in the table differ, which is a frequent source of confusion when reading someone else’s model. The table below is the AR4 in the standard convention. The column is the fixed offset added to each joint variable, so the joint you command is and the angle the transform sees is .The DH transform
For the standard convention, the transform from frame to frame is a rotation about by , a translation along by , a translation along by , and a rotation about by , composed into the single matrix The top-left block is the orientation of link relative to link ; the last column is its position. This is exactly the homogeneous transform of the earlier section, specialised to the four DH numbers.Forward kinematics
Forward kinematics is the product . It maps a point in the six-dimensional configuration space to a single hand pose: a position and an orientation in the world frame. The map is smooth and, for a given arm, exact, so it is the natural ground truth to check an implementation against. At the home configuration the AR4 hand sits at a known point, which is what the next cell confirms.End-effector orientation
The hand pose carries an orientation as well as a position. The rotation block of can be read out in any of the motion representations; a Euler triple (yaw, pitch, roll) is convenient because it matches how the arm’s controller reports the tool pose.Seeing the arm
Reading a pose off a matrix is abstract; drawing the arm makes the chain concrete. Taking the running product gives the position of every joint, and connecting them in order traces the physical links from the base to the hand. The figure shows the AR4 at its home pose and at a bent configuration.

