Skip to main content

Module urdf

Module urdf 

Source
Expand description

URDF export: an assembly as a robot description, for simulators — ROS, Gazebo, MuJoCo, PyBullet, Isaac — to load (export), written by the exporter Urdf as one ZIP archive of the robot and its meshes.

A robot is a tree of links joined by joints. Its links are the placed parts, those that mates hold rigidly together merged into one, the root the fixed part (see tree); its joints are the assembly’s revolute joints (revolute with limits, continuous without) and sliders (prismatic). A coupling between two of them — gears, a rack and pinion, a screw — makes the second mimic the first.

Frames. The root link’s frame is the assembly’s. Every other link’s frame is its joint’s: origin on the axis, z along it, x the direction turns are measured from — so every joint’s axis is z, and a joint’s coordinate in the URDF is the assembly’s own: at the angle the assembly measures, the link is where it is drawn, and the limits are the joint’s limits. Joint origins come from the connectors where the assembly is now; the exported pose is that of zero coordinates.

Units. URDF is SI: lengths in metres, angles in radians, masses in kilograms, inertia in kg·m². geop’s lengths are millimetres, so meshes are written in millimetres and scaled by 0.001.

Inertia. Each link’s mass, centre of mass and inertia tensor come from the exact B-rep of its solids, each of its own part’s material (see geop_ops_model::placed::solids), the tensor about the centre of mass along the link frame’s axes. A link of no material at all has no <inertial>; one of which only some solids have a material is refused, naming a solid of none: its mass would leave them out.

Meshes. Each placed component is meshed once, in its own frame, as binary STL (meshes/<file>.stl), and is each link’s <visual> and <collision> where its parts are. geop models no actuators: effort and velocity, which URDF requires of a limited joint, are written as 0, as CAD exporters do — set them for the drives.

What URDF cannot express is refused, by name: closed loops (a four-bar), parts that mates leave free to move but no joint names, cylindrical joints, limits one way only.

Modules§

tree
tree: a part’s mechanism as a URDF robot’s tree of links — which placed parts move as one link, and which joint carries each link on the one before it — or why it is none.
zip
zip: files packed into one ZIP archive, stored as they are.

Structs§

Body
A rigid body of the mechanism: a part placed in the assembly, however deep.
Coupling
A coupling of the mechanism: its second joint’s coordinate following its first’s, by index in Mechanism::joints.
End
An end of a joint: the body it is on — none for the assembly itself — and its connector, in that body’s frame.
Inertial
A link’s mass (kg), centre of mass in its frame (m), and inertia tensor about the centre along its frame’s axes (kg·m²).
Joint
Link
Mechanism
The rigid bodies of an assembly and its mates between them, as the part a reader reads has them: the bodies in the order they were placed, the constraints — by name, and the bodies of their two entities — the joints and the couplings each in the order the steps made them.
MechanismJoint
A joint of the mechanism, at the coordinates the state has: the angle in degrees, and the distance.
Mimic
A joint’s coordinate following another’s: multiplier times it.
Origin
A frame relative to another, as URDF writes it: moved by xyz (metres) after turning by rpy (radians) — about x, then y, then z, the fixed axes.
Robot
A robot: its links, the root first, and its joints, each after the joint carrying its parent.
Urdf
Writes an assembly as a URDF robot: one ZIP archive of robot.urdf and its meshes (see export).
UrdfExport
A robot and the files it is written as.
UrdfOptions
How a URDF robot is written.
Visual
One placed part of a link, drawn: its mesh, a path in the export, where it is in the link’s frame.

Enums§

JointType
What a joint lets its child do, and within what limits: radians for a turn, metres for a slide.

Constants§

URDF_FILE
The URDF file’s path in an export.

Functions§

export
The assembly output built — where its parts are now — as a URDF robot called name, meshed quality fine (see geop_core_rasterize::rasterize). Refuses an assembly whose mates do not hold where its parts are — it would describe a robot that is not the one drawn — and one URDF cannot express (see tree).