Assigning coordinate frames

From Robotics
Revision as of 15:02, 10 November 2015 by Nickchen (talk | contribs) (Position and orientation of the coordinate frames)

Jump to: navigation, search
← Back: Denavit-Hartenberg Convention Overview: Denavit-Hartenberg Convention Next: Denavit-Hartenberg parameters

To be able to determine the spatial relationship or transformation, respectively, between the links of a manipulator, local coordinate frames have to be assigned to them first. There are several rules that have to be observed when assigning coordinate frames following the Denavit-Hartenberg convention. The first rule is, that the manipulator has to be moved to its zero position. So all the joints or their joint parameters, respectively, have to be set to zero. Then the coordinate frames are assigned regarding the zero position.

Notation

The notation of the links and joints is shown in the figure below. A manipulator consists of k links that are connected with k joints. The links correspond to the rigid parts of an arm and the joints are the flexible connections between them. A joint is always assigned to the proximate link. So a link L_n is connected with its joint J_n to the end of link L_{n-1}. The proximate link L_{n+1} is then mounted to the end of L_n via its joint J_{n+1}. The first link L_1 is mounted on the base via joint J_1. So the base is actually link L_0 but does not directly belong to the manipulator. The end of the last link L_k corresponds to the end-effector.

There are k coordinate frames defined for the k links of a manipulator plus one base or reference frame, respectively. The coordinate frames are always attached to the end of the links at the distal joints. The first coordinate frame, indexed K_0, is the base or reference frame and attached to the base in joint J_1. The next frame is K_1 at the end of link L_1 in joint J_2 followed by K_2 at the end of L_2 and so on. The coordinate frame K_k of the last link is finally attached to the end of of the manipulator and so to the end-effector.

Links.png

Main joint axes

Privres-zaxes.png
Right-hand-rotation.png

Following the above notation, a coordinate frame is attached to each end of a link at the corresponding joint. The orientation of the coordinate frames depends on the joint and on the prior frame. There is one rule, that is always valid. This is, that the z-axis of a coordinate frame is always pointing in the direction of the main axis of the related joint. Like can be seen in the figure on the left, the main axis of a prismatic joint is the axis along which the displacement in positive direction is applied. For a revolute joint, the main axis is the rotation axis. The direction of the rotation axis and so of the main axis is depending on the positive rotation direction. When you hold your right hand like shown on the right and point your thumb in the direction of the rotation axis, the four other fingers indicate the rotation direction for positive angles. So the right hand can be used to determine the direction of the main axis. In the figure on the left, the thumb of the right hand has to point upwards, so that the four fingers correspond to the direction of the arrow indicating the positive rotation direction. Thus the main axis is directed upwards as well.

Common normal

Common-normal.png

The common normal is the shortest line perpendicular to the joint axes of two consecutive joints. So it corresponds to the distance of two lines through the joints with the joint axes as direction vectors. This is illustrated on the left side of the figure on the right. The direction of the common normal can be computed using the cross product of the two main joint axes, so of the two z-axes:


\vec{\mathbf{n}}_n=\vec{\mathbf{z}}_{n-1}\times \vec{\mathbf{z}}_n

Its length depends on the spatial relation of the joint axes. There are some special cases, shown on the right side of the figure, that have to be considered when assigning the coordinate frames:

  1. When the two joint axes are parallel or antiparallel, the length of the common normal is distinct and larger than zero. But the position along the two axes is not distinct as two parallel lines have the same distance all over.
  2. When the lines through the two joint axes intersect, their distance and so the length of the common normal is 0. But the imaginary direction that the common normal would have is distinct and it would start (and end as it has length 0) in the intersection point.
  3. When the joint axes are collinear, their distance or the length of the common normal, respectively, is 0. The imaginary direction of the common is orthogonal to the joint axes. But as both lines are collinear it could be rotated by any angle about the line. Additionally its position along the line is not distinct.

Position and orientation of the coordinate frames

First coordinate frame K_0
Following the notation presented above, the first coordinate frame is always the base or reference frame K_0. The origin of the base is coincident with the origin of the first joint and their axes are aligned. So the joint axis of the first frame is normal to the xy-plane of the base or world frame, respectively. As the world frame is usually known, the orientation of K_0 is already defined and does not have to be determined.
Origin of the frames
As already explained, the intermediate frames K_1 to K_{k-1} are attached to the distal joints. The exact origin of frame K_n corresponds to the intersection of the common normal \vec{\mathbf{n}}_n and the main axis of the distal joint J_{n+1}. In the above figure (showing the common normal), these points are marked with red dots. If there is no unique common normal, so if the axes are parallel or collinear, the origin of the distal joint is chosen.
The last frame is always located in the center of the end-effector.
z-axis
Like described above, the z-axis of coordinate frame K_n is coincident with the main axis of joint J_{n+1}. This holds for the base frame as well as for all the intermediate frames. So the direction of the z-axes can easily be determined for the whole manipulator.
Corresponding to the notation, there is no joint and consequently no main joint axis at the end-effector. Thus the last frame K_n is usually kept parallel to the previous frame K_{n-1} if possible.
x-axis
The x-axis of frame K_n is defined as collinear to the common normal \vec{\mathbf{n}}_n of the link. This means that it lies on the same line, but could either have the same direction or the opposite. For simplicity, the direction of the x-axis should be kept as for the previous frame if possible.
As the base frame has no prior coordinate frame, there is no common normal \vec{\mathbf{n}}_0. Thus, if the world frame is not defined yet, the first x-axis is a free choice. Nevertheless it should be chosen well-considered as it is important for the determination of the Denavit-Hartenberg parameters.
For special case 2 of the common normal (intersection), the length of the common normal is 0, but its direction is distinct.
If the two joint axis are collinear (special case 3), the direction of the common normal is not distinct. As already mentioned before, in such a case, the direction of the x-axis should be kept preferably like before. This simplifies the determination of the Denavit-Hartenberg parameters.
Like mentioned before, the last coordinate frame K_n and so the x_n-axis is usually kept as before if possible.
Right-hand-rule.png
y-axis
As the x- and the z-axis are already defined, the y-axis can be determined using the right hand rule shown in the figure on the right.

For further illustration, watch the video in the next article about the Denavit-Hartenberg parameters. There the whole process including the assignment the coordinate frames and the determination of the parameters is explained very well.

Dh-ex-frames.png