Robot Dynamics Library

Model Structure

RDL stores the model internally in the Model Structure. For each Body it contains spatial velocities, accelerations and other variables that describe the state of the rigid body system. Furthermore it contains variables that are used as temporary variables in the algorithms.

The construction of Model Structures makes use of carefully designed constructors of the classes Body and Joint to ease the process of creating articulated models.

Bodies are created by calling one of its constructors. Usually they are created by specifying the mass, center of mass and the inertia at the center of mass. Joints are similarly created and is described in detail in Joint Modeling.

Adding bodies to the model is done by specifying the parent body by its id, the transformation from the parent origin to the joint origin, the joint specification as an object, and the body itself. These parameters are then fed to the function RobotDynamics::Model::addBody() or RobotDynamics::Model::appendBody().

To create a model with a floating base (a.k.a a model with a free-flyer joint) it is recommended to use joint_floatingbase.

Once this is done, the model structure can be used with the functions of Kinematics, Dynamics, External Contacts, and Hydrodynamic Utility Functions to perform computations.

After creating a model, access the body frames for moving bodies in the RobotDynamics::Model:bodyFrames vector and for fixed bodies in RobotDynamics::Model::fixedBodyFrames.

Using URDF

For this see the documentation see RobotDynamics::Urdf::urdfReadFromFile.