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.

Validation: 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

Root child elements