Specification
The HCDF schema defines the complete vocabulary for describing cyber-physical robotic systems. It covers physical structure (components, joints, geometry, kinematics), sensors and actuators (noise models, motor curves, control modes, encoders), functional and physical connectivity, communication topology and configuration, electrical power delivery, liquid and gas transfer, energy systems, joint groups, named states, self-collision, human-machine interfaces, dynamic surfaces, software identity, discovery metadata, and structured domain extensions.
hcdf validate --xsd your-file.hcdf checks XML structure,
ordering, attributes, values, and cardinality against the pinned XSD. Then run
hcdf validate your-file.hcdf for the semantic and cross-reference checks. Both paths
are implemented in Rust and are intentionally separate.
Schema Reference
Core Schema
The main schema covers components, joints, geometry, sensors, actuators, transmissions, energy systems, HMI, dynamic surfaces, software and discovery metadata, physical connection assemblies, functional-to-physical bindings, connector mates, and seven network topology forms.
Stream Profile
A separate .streams.xml schema declares application-level streams, groups,
talkers, listeners, QoS requirements, forwarding paths, and optional FRER behavior. An HCDF
document can reference multiple profile resources for different operating configurations.
Extension Schemas
ROS 2 Extension org.ros2
Maps sensors and motors to ROS 2 topics with message types and QoS profiles. Enables declarative topic configuration from the hardware description.
ros2_control Extension org.ros2.control
Types the ros2_control hardware-interface surface: the hardware plugin and parameters, and the per-joint command- and state-interface wiring the controller_manager consumes.
Gazebo Extension org.gazebosim
Gazebo physics engine settings, model and link simulation flags, velocity decay, and plugin declarations.
IEEE 1722 Extension org.ieee.1722
AVTP capabilities and per-stream framing configuration: audio, compressed and raw video, and control protocol tunneling over Ethernet.
Schema Architecture
HCDF uses a single-root XML document with <hcdf> as the document element.
Every HCDF file is a self-describing module: standalone robot descriptions and reusable sub-assemblies
share the same root element with the same metadata. When composed via <include>,
each file retains its own name, author, and license for provenance tracking. The core XSD is ordered
and closed: unknown core children and children in the wrong sequence fail XSD validation.
Domain-specific or otherwise unknown content belongs inside <extension>.
Root attributes
name(required) Robot or module name (e.g., "cogni-humanoid-v2", "7dof-arm")versionHCDF schema version (default: "1.0")body-frameBody-frame axis convention:FLU(X-forward, Y-left, Z-up; ground robotics) orFRD(X-forward, Y-right, Z-down; aerospace)world-frameWorld-frame axis convention:ENU(X-east, Y-north, Z-up; GIS/ground robotics) orNED(X-north, Y-east, Z-down; aerospace/marine)
Root child elements
<description>Human-readable description of this file's contents<author>Creator or organization (tracked per sub-assembly in composed systems)<license>SPDX license identifier (e.g., "Apache-2.0", "CERN-OHL-S-2.0")<url>Canonical project or documentation URL<comp>Rigid bodies and hardware assemblies with geometry, ports, connectors, antennas, sensors, actuators, software, discovery metadata, and other component features<joint>Kinematic connections between components, including loop-closure metadata<group>Named joint collections for planning and control (hierarchical, composable)<state>Named kinematic configurations (home, transport, calibration)<self-collision-disable>Component pairs to skip for collision checking<harness>,<cable>,<plumbing>, and<umbilical>Physical connection assemblies with paths, junctions, connectors, terminations, and optional visible representations<binding>Declared mapping between a functional endpoint and a physical endpoint, with functional, presented, exact, or quantified fidelity<mate>A physical connector-to-connector relationship with optional position mappings<link>,<bus>,<chain>,<star>,<ring>,<mesh>, and<tree>Root topology objects. Each selects a purpose and carrier and may contain network configuration<stream-profile>Reference to a separate stream-profile resource, with optional SHA pinning<transmission>Motor-to-joint mechanical power transfer (gear ratio, efficiency, backlash, compliant springs)<color>Named RGBA palette shared across component visuals<include>Module composition with optional SHA content pinning<extension>Domain-specific XML content. The core uses lax processing; a corresponding extension XSD can validate its typed payload separately