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), networking and connectivity (topology, scheduling, security, power distribution), energy systems (batteries, fuel cells, charging), embodiment intelligence (joint groups, named states, self-collision), human-machine interfaces, dynamic surfaces, firmware identity, device discovery, and a structured extension mechanism for vendor and domain-specific data.
python3 validate.py hcdf.xsd your-file.hcdf
for XSD structural validation. The Rust CLI (hcdf validate) provides additional
cross-reference checking for port paths, joint references, and motor-encoder bindings.
Schema Reference
Core Schema
The main HCDF schema: components, joints (10 types including cylindrical and free), sensors (11 categories with noise models), motors (with load curves, control modes, and solenoids), compliant actuators (SEA/PEA/CPEA/AE-PEA/VSA via spring elements), networking (topology, scheduling, security), power systems (battery, tank, fuel cell, solar, supercapacitor), dynamic surfaces (including gripper), HMI, and embodiment features (groups, states, self-collision). 147 complex types, 42 enumerations.
Stream Profile
Separate .streams.xml schema for declaring application-level data flows with
bandwidth, latency, and priority requirements. The same hardware can have multiple profiles
for different operational modes (operational, calibration, safe-mode).
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.
Gazebo Extension org.gazebosim
Simulation parameters: physics engine settings, plugin bindings, aerodynamics, and contact properties for Gazebo-based simulation.
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.
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>Components: rigid bodies with ports, sensors, motors, switches, HMI, surfaces, power sources<joint>Kinematic connections between components (10 joint types, loop closure support)<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<network>Connectivity topology and configuration (links, buses, chains, meshes, scheduling, security)<transmission>Motor-to-joint mechanical power transfer (gear ratio, efficiency, backlash, compliant springs)<material>Shared material definitions (color, friction, restitution)<include>Verified file composition with SHA content addressing