Sentinel

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.

TemplateHardware
ros2_single_arm.yamlAny ROS 2 robot — single arm, gripper, and one bridged camera
ros2_dual_arm.yamlAny ROS 2 robot — dual arm
yam_dual_3realsense.yamlBimanual i2rt YAM with three RealSense cameras
yam_dual_zed_immersive.yamlBimanual i2rt YAM with a Feetech neck and ZED Mini reference setup
trossen_dual_3realsense.yamlDual Trossen arms with three RealSense cameras
trossen_dual_zed_immersive.yamlDual 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:

SectionWhat it configures
systemLicense key and global switches such as enable_dataset_recording
xrWhat the operator sees: camera views and video latency budget
analog_inputs and buttonsController mapping — which button arms, disarms, drives, and controls episodes
camerasCamera adapters (RealSense, ZED, UVC, or a bridged ROS 2 topic) and their video encoders
dataset_recordingRecording output directory, storage format, and the exact topics recorded
systemsOne 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:

  • adapters connect Sentinel to the hardware — either a ready-made hardware adapter (for example sentinel_adapter_yam::YamAdapter) or the generic sentinel_adapter_ros2_bridge::Ros2BridgeAdapter documented in Robot control topics.
  • capabilities define what the operator controls: manipulator chains with joint limits and IK settings, grippers, and their retargeting from headset motion.
  • safety sets joint-limit margins, velocity scaling, and emergency-stop behavior.
  • state_machine sets joint names, home and start positions, and motion timeouts.
  • orchestration lists 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:

InputAction
Grip (hold)Start teleoperation; releasing stops it
A buttonArm all systems when disarmed; move to the start pose when armed
A button (long press)Send all systems home
B buttonDisarm all systems
X buttonProgress the episode: start, advance subtasks, finish successful on the last
Y buttonFail 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.