Skip to main content
Version: ROS 2 Humble

Links

Links are any URDF primitive.

keep the frames in mind:

Just as is the case in URDF, links have their frame at the center of the primitive. In other words, you will need to slide up all links by half their height to have it "sit" on its parent link.

Frame

Just a link without any geometry.

links:
frame:
- name: link_name
parent: base_link
xyz: [0.0, 0.0, 0.0]
rpy: [0.0, 0.0, 0.0]

Box

A box of defined size.

links:
box:
- name: box_name
parent: base_link
xyz: [0.0, 0.0, 0.0]
rpy: [0.0, 0.0, 0.0]
size: [0.01, 0.01, 0.01]

Cylinder

A cylinder of defined height and radius.

links:
cylinder:
- name: cylinder_name
parent: base_link
xyz: [0.0, 0.0, 0.0]
rpy: [0.0, 0.0, 0.0]
radius: 0.01
length: 0.01

Sphere

A sphere of defined radius.

links:
sphere:
- name: sphere_name
parent: base_link
xyz: [0.0, 0.0, 0.0]
rpy: [0.0, 0.0, 0.0]
radius: 0.01

Mesh

Include your custom mesh without creating a URDF of your own. You can either provide an absolute link to the mesh file or if it is included in a ROS 2 package, then you can provide both the package name and relative link to the install location within the package.

If you prefer to add a URDF instead, then you can link it directly through the platform.extras entry.

links:
mesh:
- name: mesh_name
parent: base_link
xyz: [0.0, 0.0, 0.0]
rpy: [0.0, 0.0, 0.0]
visual:
package: package_name # optional
path: relative/path/to/mesh/in/package.stl # or /absolute/path/to/mesh.stl

Sample

Sample A200 Links Section

Husky A200 with Open User Bay

In this sample, we will use links to add thin box to cover up the user bay.

We add an entry under the box list:

box:
- name: user_bay_cover
parent: top_plate_link # add it to the top_plate_link
xyz: [0.0, 0.0, 0.00735] # move it up 6.35mm (thickness of top plate) and move it up 1mm (half height of the box)
rpy: [0.0, 0.0, 0.0]
size: [0.4, 0.4, 0.002] # length 400mm, width 400mm and 2mm thick.
Husky A200 with Covered User Bay

We leave the rest of the lists all empty, for the resulting links section:

links:
box:
- name: user_bay_cover
parent: top_plate_link
xyz: [0.0, 0.0, 0.00735]
rpy: [0.0, 0.0, 0.0]
size: [0.4, 0.4, 0.002]
cylinder: []
frame: []
mesh: []
sphere: []