A robot model is handled using the class dynamicRobot, and it is build using the following components: <ul> <li> Bodies</li> <li> Joints</li> </ul> A humanoid robot (humanoidDynamicRobot) is a particular robot which has in addition the following components: <ul> <li> Hand </li> <li> Foot </li> </ul> All those components are created using an object factory. The class ObjectFactory provides such a factory.<br>
Creating an empty humanoid robot is therefore very simple:
The same way a joint can be created by specifying the pose of the joint when the robot is at state . Therefore if the first joint is at the origin of the reference frame, the following code snippet can be used:
IMPORTANT: It is assumed that the revolute joint axis is aligned with the -axis of its own frame. This normalization is very similar to the one of Davit-Hartenberg, and is compatible with KineoWorks. The position of the joint and the kinematic tree specified below allow the library to derive all the needed parameters automatically.
The same way a body can be build
The body mass is specified with:
The inertia matrix can be specified using:
Finally the center of mass for the body l1 is written:
A body is related with the joint which is the parent of all the other joints on the body. It is specified with:
The library handles robots as kinematic trees. Therefore each joint has a father or is the root of the robot kinematic tree.
To specify the root of the kinematic for the humanoid robot created above:
A joint is set as the son of another joint with:
In order to compute quantities, it is important to initialize the internal structure of the library by calling the following method: