Sentinel

Changelog

Sentinel release notes — runtime versions and platform updates.

Daemon 1.1.0August 13, 2026
  • sentinel enroll — enrollment is its own command. sentinel enroll prompts for the license key; sentinel enroll <key> runs without prompts for scripted setups; re-enrolling an already-enrolled robot shows the current identity and asks for confirmation.
  • Breaking: sentinel start no longer enrolls and no longer takes --license-key — it fails with a pointer to sentinel enroll when the robot is not enrolled. The deprecated sentinel up alias is removed. Update any provisioning scripts.
  • sentinel status now surfaces authentication failures instead of reporting a rejected device as enrolled, moves full error text to an errors: section below the summary, and colorizes state words on terminals.
  • Fixed runtime-container logs and metrics being dropped: the shared telemetry spool was not writable by the container's producers on some installs.

Upgrade by re-running the installer: curl -fsSL https://sentinel.avearobotics.com/install.sh | bash

PlatformAugust 10, 2026
  • Webhooks — subscribe an HTTPS endpoint to episode lifecycle events (episode.finalized, episode.synced, episode.verified, episode.failed, episode.pruned) instead of polling. Deliveries are HMAC-signed, secrets rotate with a 24-hour grace window, and dead-lettered deliveries can be inspected and redelivered. See Webhooks.
  • Dataset cloud sync — finalized episodes sync from robots to your storage through per-episode grants. Configure destinations and routing rules; optional retention prunes the local copy after every destination verifies. See Cloud sync.
  • Grant providers — run an endpoint that issues presigned upload URLs and robots upload directly to your storage; Avea relays the URLs and never has access to the data. A conformance check (POST /v1/destinations/{id}/check) grades your implementation in CI. See Build a grant provider.
  • Episode responses include replicas — per-destination sync state — and GET /v1/episodes filters on sync_state.
  • GET /v1/sync-health/robots reports per-robot sync backlog for alerting.
  • POST endpoints accept an Idempotency-Key header; retries with the same key return the stored response for 24 hours.
0.13.0July 27, 2026
  • Subtasks for operators — step through a task's subtasks from the controller; ordered subtask context and outcomes are recorded with each episode.
  • Immersive stereo neck view — a ZED X Mini stereo camera renders as the headset's immersive view.
  • Dynamixel neck backend — necks support Dynamixel XC330 servos alongside Feetech (backend: feetech | dynamixel).
  • Smoother fine arm motion on YAM — corrected gravity model, end-effector mass override, and stiction compensation reduce overshoot and stick-slip in small motions.
  • PiPER X arms can hold position on shutdown (adapter.hold_on_shutdown) instead of dropping — the arms have no brakes.
  • Neck reliability — motion profiles are re-applied after a motor reboot (no more full-speed snaps), goals track across the encoder boundary, and end-of-travel jitter is fixed.
  • ZED cameras recover automatically after a driver restart or GMSL link drop.
  • Recording fixes — commanded joint and gripper actions are recorded so episodes are train-ready, and the gripper state topic records correctly.
  • Fixed episode discard handling.
0.12July 10–20, 2026
  • UFACTORY xArm7 support — native Ethernet adapter with gripper support, e-stop handling, and fault recovery on re-arm.
  • Anvil devbox support for OpenArm v1/v2, including an optional Cartesian mode that drives Anvil's on-devbox IK as a config switch.
  • OpenArm reliability — CAN fault detection with motor deadman and bus self-healing, safe first-power-on behavior, and per-chain torque limits.
  • More responsive teleop — velocity feedforward in trajectory smoothing removes command lag; bench-tuned profiles ship for OpenArm.
  • Absolute (shoulder-relative) posturing mode (retargeting.absolute) closes the start-of-session pose gap.
  • Haptics route to the correct side on bimanual systems.
  • The generic ROS 2 bridge can emit Float64MultiArray command streams (manipulator.command.outputs).
  • Episodes carry task and operator names plus robot hardware and firmware metadata (robot_platform, per-arm hardware info) in metadata.yaml and the platform API.
  • Fixed a silent adapter failure that blocked re-arming until a full stack restart; fixed connection-status reporting on the new WebRTC transport.
  • Software H.264 (x264) encoder included in the runtime image.
0.11.0July 7, 2026
  • Native H.264 encoding — NVENC on discrete GPU and Jetson, with correct profile/level signaling.
  • New WebRTC transport with custom congestion control for smoother video under changing network conditions.
  • Torso recentering safety measure — the waist recenters slowly and recentering is gated so it can't fire during active teleop.
  • Dataset labeling and task selection for operators, plus more reliable episode reporting.
  • Advanced logging — runtime logs and telemetry ship to our cloud for faster support and diagnostics.
  • API to transition robot states remotely (arm, disarm, e-stop).
  • OpenArm (Enactic) support.
  • Almond Axol support.
  • RealMan RMC-DA (dual-arm wheeled) support.
  • Bug fixes.
0.10.0June 24, 2026
  • Humanoid torso control — joystick-driven waist yaw and tilt.
  • Generic ROS 2 adapter — bridge Sentinel to your own robot over standard ROS 2 topics. See Connect with ROS 2.
  • image_transport camera adapter for existing ROS 2 camera streams.
  • Network diagnostics on the operator dashboard.
  • Logs and metrics are tagged with the container build version.
  • Fixed MCAP file-name suffixes.
0.9.0June 13, 2026
  • PTZ camera control — toggle between locomotion and PTZ mode to aim PTZ cameras with the joysticks.
  • AgileX PiperX support.
  • Independent left/right arm control via per-arm grip gating.
  • E-stop handling and disarm support, including software e-stop recovery without restarting the runtime.
  • Fixed the multi-chain deadman system.
  • Connection reliability improvements.
0.8.0June 1, 2026
  • Configs can change camera panel placement and size in pass-through mode.

    • Panels sit in a 3×3 grid: {top,middle,bottom}_{left,center,right}.
    • Sizes are fractional values in [0.25, 4.0].
    xr:
      coordinate_system: "webxr"
      video:
        enabled: true
        mode: "pre_encoded"
        cameras:
          - {id: "neck", panel_position: "middle_left", panel_size: 2.0}
          - {id: "chest", panel_position: "middle_right"}
          - {id: "left_wrist", panel_position: "bottom_left"}
          - {id: "right_wrist", panel_position: "bottom_right", panel_size: 0.25}
        resolution: [1920, 1080]
        fps: 30
        max_latency_ms: 100
  • Improved connection and retry logic for more robust, reliable connections.

  • Fixed a bug where turning your head too far in one direction caused neck commands to roll around the other way.

0.7.0May 25, 2026
  • New platform:
  • Support for non-CUDA computers:
    • amd64 — x86_64
    • arm64 — arm64
    • amd64-cu13 — x86_64 CPU with discrete NVIDIA GPU (CUDA Toolkit 13)
    • jp6.2 — Jetson family running JetPack 6.2.x (CUDA Toolkit 12.6)
  • New transport backend — faster connection times, more stable streams.
  • Added LimX Dynamics Oli robot: arm retargeting, neck movement, head and chest camera access, locomotion, Inspire gripper, BrainCo dex-hand (pre-programmed grasps + open/close).
  • Dataset recording changes:
    • Episodes are written to session_<ts>/episode-###.in_progress/ while recording, then atomically renamed to *.finalized/ on stop. NAS sync, sqlite ledgers, and downstream tooling can rely on the suffix to tell unfinalized data apart.
    • Session rollover — episodes_per_session rotates session folders automatically.
    • Two new services — discard_episode (hard delete; counter rolls back so there are no gaps) and fail_episode (mark outcome=failure and let policy decide: keep, delete, or mark-and-archive).
0.6.0May 16, 2026
  • Fixed inconsistent "A" button behavior for dual-arm robots.
  • Added "success"/"failure" labeling with the fail_episode service.
0.5.1May 11, 2026
  • Added support for UR robots.
  • Added support for the Robotiq gripper.
0.4.1April 30, 2026
  • Fixed a bug in the cycle_wrist_cam handler for RGB-only or heatmap-only encoder setups.
0.4.0April 27, 2026
  • Haptics when control error crosses a configured threshold, with a matching visual indicator in the UI.
  • Added depth encoders to cameras: PNG encoder for lossless 16UC1 depth, and a heatmap + H.264 encoder for visualizing depth in the Quest.
  • Fixed a track-labeling bug.
  • Added the cycle_wrist_cam button handler.
  • Auto-stop tracks from being sent when not displayed in the UI.
  • Support for up to 5 videos in the UI.
0.3.0April 22, 2026
  • Added depth-image collection from ZED and RealSense cameras.
  • Permissions fixes.
  • Bumped ZED SDK to 5.2 on all platforms.
  • Formal support for JetPack 6.2.2 (l4t 36.5).
0.2.0April 20, 2026
  • Added analog control of velocity scale for arm retargeting.
  • Refactored the button system — all buttons and analog sources are remappable; analog sources can act as virtual buttons with rising/falling edge events.
  • Added 6-DoF neck support.
  • Web client UI improvements: unified HUD, episode start/stop, system state indicator, network quality indicator, RTT indicator.
  • Reduced dependency footprint.
0.1.6April 15, 2026
  • Added Trossen WXAI support.
  • Added XLeRobot neck support.
0.1.5 — Initial releaseApril 10, 2026
  • Standard Bots and YAM support.
  • ZED, ZED X, RealSense, and UVC camera support.
  • JetPack 6.2 and amd64 support.
  • Multi-host runtime.
  • Dataset recording.