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.
- Mechanism
Joint - 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:
multipliertimes it. - Origin
- A frame relative to another, as URDF writes it: moved by
xyz(metres) after turning byrpy(radians) — aboutx, theny, thenz, 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.urdfand its meshes (seeexport). - Urdf
Export - A robot and the files it is written as.
- Urdf
Options - 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§
- Joint
Type - 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
outputbuilt — where its parts are now — as a URDF robot calledname, meshedqualityfine (seegeop_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 (seetree).