Configure your robot
The structure of robot.yaml and ready-made configuration templates.
A single robot.yaml file describes everything the Sentinel runtime controls: the robot systems, cameras, operator controls, and dataset recording. The launcher mounts it into the container read-only at /config/robot.yaml.
Robot configuration is moving into website-managed form fields. During the transition, most integrations use a robot.yaml built from the templates below.
Start from a template
Download the template that matches your hardware and fill in the placeholder fields (<EDIT: ...> or <PLACEHOLDER>). Each template documents its required fields at the top of the file.
| Template | Hardware |
|---|---|
ros2_single_arm.yaml | Any ROS 2 robot — single arm, gripper, and one bridged camera |
ros2_dual_arm.yaml | Any ROS 2 robot — dual arm |
yam_dual_3realsense.yaml | Bimanual i2rt YAM with three RealSense cameras |
yam_dual_zed_immersive.yaml | Bimanual i2rt YAM with a Feetech neck and ZED Mini reference setup |
trossen_dual_3realsense.yaml | Dual Trossen arms with three RealSense cameras |
trossen_dual_zed_immersive.yaml | Dual Trossen arms with a Feetech neck and ZED Mini reference setup |
For other supported robots, contact the team at contact@avearobotics.com for a starting configuration.
For the D435i, ZED Mini, ZED X Mini, Feetech, and Dynamixel neck combinations, follow Add an immersive neck.
Generate a license key per robot in the dashboard. With the daemon install, the key is entered once at sentinel enroll and does not go in the config file. Only the legacy run_sentinel.sh launcher still reads it from system.license_key.
The motion sections ship with conservative velocity, acceleration, and workspace limits. Validate a new configuration with a cleared workspace before raising any limit.
File structure
The top-level sections of every configuration:
| Section | What it configures |
|---|---|
system | License key and global switches such as enable_dataset_recording |
xr | What the operator sees: camera views and video latency budget |
analog_inputs and buttons | Controller mapping — which button arms, disarms, drives, and controls episodes |
cameras | Camera adapters (RealSense, ZED, UVC, or a bridged ROS 2 topic) and their video encoders |
dataset_recording | Recording output directory, storage format, and the exact topics recorded |
systems | One entry per independently controlled robot: adapters, capabilities, safety, state machine, and orchestration |
Systems
Each entry in systems is one namespaced robot with its own adapters and lifecycle. A bimanual setup is typically two systems (yam_left, yam_right); see Systems and robots.
Within a system:
adaptersconnect Sentinel to the hardware — either a ready-made hardware adapter (for examplesentinel_adapter_yam::YamAdapter) or the genericsentinel_adapter_ros2_bridge::Ros2BridgeAdapterdocumented in Robot control topics.capabilitiesdefine what the operator controls: manipulator chains with joint limits and IK settings, grippers, and their retargeting from headset motion.safetysets joint-limit margins, velocity scaling, and emergency-stop behavior.state_machinesets joint names, home and start positions, and motion timeouts.orchestrationlists the node lifecycle transitions run on arm, disarm, and teleop start/stop. The templates mark this section as not to be edited.
Controller mapping
The buttons section binds controller inputs to robot and episode actions. The public template default:
| Input | Action |
|---|---|
| Grip (hold) | Start teleoperation; releasing stops it |
| A button | Arm all systems when disarmed; move to the start pose when armed |
| A button (long press) | Send all systems home |
| B button | Disarm all systems |
| X button | Progress the episode: start, advance subtasks, finish successful on the last |
| Y button | Fail the current subtask and the episode |
| Y button (long press) | Delete the most recent episode |
Customer-specific configurations can use different bindings. Check the buttons section of the exact robot.yaml you launch before operating the robot.
Dataset recording
dataset_recording lists the exact topics recorded into each episode and where recordings are written. See Collect data for the recording workflow and Using your data for the on-disk format.
Validate a configuration
Fill in every placeholder
Search the file for <EDIT and <PLACEHOLDER. Placeholders left in the file fail at runtime, not at startup.
Start Sentinel with the config
Run the launcher and watch the logs for adapter and camera startup errors.
Verify before arming
For ROS 2 robots, run the pre-Sentinel checks before the first arm.
Next step
Run the quickstart
Start the runtime with your configuration and run a first session.