Skip to content

Latest commit

 

History

History
56 lines (40 loc) · 3.33 KB

File metadata and controls

56 lines (40 loc) · 3.33 KB

ARC capability parity and provenance

This implementation was checked against both Synthiam's published EZ-B protocol and a local ARC installation with the factory JD project (bot.EZB):

The original .EZB remains read-only. Export scripts create Commander's versioned assets.

Implemented from the factory project

ARC capability Commander implementation
Auto Position (127 frames, 39 actions) Safe motion library, risk tiers, recorder, editable frames/timelines, mirroring, trim profiles
RGB Animator Exact official 18-LED I²C encoding, all 13 factory animations, solid/per-LED color control, bounded flow/MCP actions
Soundboard v4 All 10 factory tracks, 63 timestamped action/eye cues, uploads, volume and MP4-independent audio playback
Camera Device One fan-out camera connection, MJPEG, snapshots, neural objects, color/QR/face/ArUco modes
Point and Track Bounded target centering plus a single-arm point gesture; D0 pan is opt-in because this unit's pan servo is faulty
Camera movement tracking Low-cost frame differencing, flow triggers, automatic pre/post-roll MP4 event clips
Wii Remote control Browser Gamepad API and virtual joystick with a required deadman control
EZ-Script automation Bounded visual flows, including eyes/grippers/sounds and a sensor-polling repeat_until primitive

Protocol capabilities added

The command client and simulator now share implementations for:

  • CPU temperature;
  • ADC A0-A7 and digital D0-D23;
  • PWM output;
  • configured I²C reads/writes and clock rate;
  • UART0/1/2 initialize, write, available and read;
  • RGB eye-board writes at the factory address 0xA0.

Commander deliberately does not scan I²C addresses. The eye board stays disabled on physical hardware until a human confirms it is connected. Raw digital/PWM output is human-only, requires an explicit confirmation, and refuses every port assigned to a JD servo.

Operator surfaces

  • Stage: eyes, semantic grippers, soundboard, deterministic vision, Point-and-Track, clips, and named sensor diagnostics.
  • Teleop: virtual joystick and any standard browser gamepad. Releasing A/LB or the pointer stops and holds.
  • Recorder: live-pose frame capture, mirrored frames, ordered action timelines, risk/abort policy, and calibration profiles.
  • Digital Twin: orbitable Three.js model articulated by the same live servo telemetry shown elsewhere.
  • Flows/MCP: composition and agent access use the ordinary service endpoints, so battery, tier, rate, travel and connection guardrails remain centralized.

Export commands

python scripts/export_actions.py
python scripts/export_eyes.py
python scripts/export_soundboard.py

The eye export contains all 13 factory animations. The sound export is deterministic: rerunning it replaces only ARC-derived tracks, preserves uploads, and produces stable IDs from the source audio.

Known physical limitation

D0 head pan is recorded as non-working on this robot. Tracking therefore enables tilt only by default and reports that limitation in the API. It can be explicitly re-enabled after the servo is repaired; no software path silently assumes it works.