This package contains description files to generate OpenArm URDFs (Universal Robot Description Files). See documentation for details.
Robot entries load assets/component_loader.xacro. The loader locates each component using the existing type, product, and config fields, then optionally loads <component directory>/urdf/component.xacro. Components without this file use the standard YAML model generator.
A component interface can override either or both macros:
| Macro | Parameters | Result |
|---|---|---|
describe_component |
component_name component_cfg config_root options out_name |
Set the property named by out_name in the parent scope to a component descriptor. |
emit_component |
component_desc component_runtime options |
Emit the component links, joints, mounting joint and reference frames. |
The default implementations are openarm_describe_config_component and openarm_emit_config_component. A descriptor supplies the root link, topology, model data and reference points; supports_frame_shift states whether its root can absorb a parent's empty terminal link. The runtime supplies resolved mounting, reflection and joint overrides.
Interface files declare macros; implementation and third-party model includes belong inside those macros. Each interface is loaded in a local scope, so its definitions do not affect other components. Presets need no implementation selector or product registry.
- 📚 Read the documentation
- 💬 Join the community on Discord
- 📬 Contact us through openarm@enactic.ai
Copyright 2025 Enactic, Inc.
All participation in the OpenArm project is governed by our Code of Conduct.