.URDFModelica.Documentation.Joints

Information

Package URDFModelica/Joints contains the prototypes for robot joints as specified by the Unified Robot Description Format URDF ROS Wiki. Models for translational and rotational friction that are simpler than the Standard Library models, are in here too.

Joints connect links together. There are six types. When a new robot package is created, copies of joints of appropriate type are put in the new Joints subpackage for each joint together with a joint parameter record for each joint. Thus, the joint models can be adapted independent of the parameter definitions, parameters which can be updated at any time without modifying the joint models.

Fixed joints rigidly connect two links together without any degree of freedom.

Continuous joints connect two links together around a Modelica.Mechanics.MultiBody.Joints.Revolute leaving thus one rotational degree of freedom free. The joint flanges are also propagated to the outside such that the angle can be controlled. An integer parameter can optionally be set to mark the flange number for easier reference in a robot diagram.

Revolute is the same as Continuous with the difference that limits for angle (upper and lower limit), angle velocity absolute value and effort (torque) absolute value are checked against at. A warning is output if a limit is violated. An integer parameter can optionally be set to mark the flange number for easier reference in a robot diagram.

Prismatic is the same as Revolute for translational connection between links using Modelica.Mechanics.MultiBody.Joints.Prismatic. The joint flanges are also propagated to the outside such that the position can be controlled. A warning is output if a limit (upper and lower position, velocity absolute value, effort (force) absolute value) is violated. An integer parameter can optionally be set to mark the flange number for easier reference in a robot diagram.

Planar joints connect two links together with three degrees of freedom around a Modelica.Mechanics.MultiBody.Joints.Planar. A protected function converts the URDF axis parameters to Modelica axis parameters.

Floating joints connect two links together with all six degrees of freedom around a Modelica.Mechanics.MultiBody.Joints.FreeMotion.

Joint has all joint types in one model conditionally by a type parameter. This is used in the generic robot model.

Friction models, optional in revolute and prismatic joints, are simpler than Standard Library Modelica.Mechanics.Translational.Components.SupportFriction and Modelica.Mechanics.Rotational.Components.BearingFriction. The friction force is calculated as follows

f_r = Rv * v + 2 * Rh / (1 + exp(-steep * v)) - Rh;

that is continuously differentiable. Parameters are

Rotational friction is the same with torque and angle replacing force and position.

The URDFModelica/Joints models stand as is and do not need to be processed by the Python script to work. One can add a link to any multibody model of Modelica because all parameters have default values and optional components are conditionally included. The advantage of the URDF joints compared to Standard Library joints are the attached parameter record with which it is easy to have very different joints of different types with some optional components (friction, limits, mimic, safety controller).


Generated at 2025-10-07T18:21:17Z by OpenModelicaOpenModelica 1.25.4 using GenerateDoc.mos