Denavit‐Hartenberg parameters of NAO H25 V5 - Adorno-Lab/Nao-robot GitHub Wiki
📝 The reader is assumed to be familiar with the Denavit-Hartenberg parameters convention and its usual nomenclature. For more information, please refer to Spong et al. (2006) and Siciliano et al. (2009).
- Spong, M. W.; Hutchinson, S.; and Vidyasagar, M. 2006. Robot Modeling and Control. New York, NY: Wiley.
- Siciliano, B.; Sciavicco, L.; Villani, L.; and Oriolo, G. 2009. Robotics. London: Springer London.
The image below shows the robot NAO H25 V5 (our robot) in the zero posture (i.e., when all the joints have value zero). The diagram on the right shows the position of the joints, all revolute and named following the Aldebaran documentation, and the five kinematic chains in which we divided the robot: head, left arm, right arm, left leg, and right leg.
The joints names given by Aldebaran will be needed to monitor and control the robot. However, we found some of the names, which include the words roll, pitch, and yaw, somewhat confusing, even with the documentation explicitly saying that the convention is XYZ-RPY. So, our suggestion is that you do not get too attached to the name of the joint, and follow the diagrams from the documentation and the frames of the DH models shown here to understand the movement of each one. Check the diagrams in the documentation about the links and joints of the robot.
The torso frame is the reference of all five chains. After we obtain the Denavit-Hartenberg (DH) parameters of each chain, we obtain the transformations from torso to the first joint and from the last joint to the end-effector. A translation is represented by
If you are using DQ Robotics and Python, the robot is implemented here.
This chain is composed of two joints, HeadYaw and HeadPitch, located at the same position in the robot. There are two end-effectors of interest: the two cameras, located on the top and bottom of the head. You can find more information about them here. Below is the chain diagram, followed by the table with the DH parameters.
|
|
|||||
|---|---|---|---|---|---|
| HeadYaw | 1 |
|
|||
| HeadPitch | 2 |
|
|||
Considering the torso as the reference frame, the transformation from torso to the beginning of the chain is a translation of
You can use the same chain and DH parameters for both cameras, just choose the correct transformation from the last joint frame to the end-effector. If using the top camera as the end-effector, the transformation from the last joint frame to it is
This chain is composed of five joints, from shoulder to wrist. The diagram of the left arm chain and the table with its DH parameters are shown below.
|
|
|||||
|---|---|---|---|---|---|
| LShoulderPitch | 1 |
|
|||
| LShoulderRoll | 2 |
|
|||
| LElbowYaw | 3 |
|
|||
| LElbowRoll | 4 |
|
|||
| LWristYaw | 5 |
|
|||
The transformation from torso to the first joint frame is
Similar to the left arm, this chain has also five joints, and is symmetric to the left arm, resulting in a similar set of DH parameters.
|
|
|||||
|---|---|---|---|---|---|
| RShoulderPitch | 1 |
|
|||
| RShoulderRoll | 2 |
|
|||
| RElbowYaw | 3 |
|
|||
| RElbowRoll | 4 |
|
|||
| RWristYaw | 5 |
|
|||
The transformation from torso to the start of the chain is
The legs have the longest chains, with six joints each. However, as said in the robot documentation, "LHipYawPitch and RHipYawPitch are physically just one motor so they cannot be controlled independently. In case of conflicting orders, LHipYawPitch always takes the priority". So remember that when controlling these chains. The diagram and the DH parameters of the left leg are below.
|
|
|||||
|---|---|---|---|---|---|
| LHipYawPitch | 1 |
|
|||
| LHipRoll | 2 |
|
|||
| LHipPitch | 3 |
|
|||
| LKneePitch | 4 |
|
|||
| LAnklePitch | 5 |
|
|||
| LAnkleRoll | 6 |
|
|||
The transformation from torso to the pelvis joint frame, the first of the chain, is
As expected, the right leg is also symmetric to the left leg, with the following DH parameters.
|
|
|||||
|---|---|---|---|---|---|
| RHipYawPitch | 1 |
|
|||
| RHipRoll | 2 |
|
|||
| RHipPitch | 3 |
|
|||
| RKneePitch | 4 |
|
|||
| RAnklePitch | 5 |
|
|||
| RAnkleRoll | 6 |
|
|||
The transformation from torso to the first joint frame is