Menlo
System Tour

Software

Asimov 1 firmware, motion control, edge services, telemetry, media, and application interfaces.

Asimov 1 separates low-level motion control from media, networking, and application connectivity. This lets developers work at different layers without treating the robot as a single software process.

Compute Responsibilities

LayerRuns onResponsibility
Motion controlRadxa CM5 in the RPUActuator communication, IMU state, control modes, command handling, and firmware telemetry
Edge servicesRaspberry Pi 5 in the Head Compute UnitCamera, microphone, speaker, networking, media transport, and external connectivity
ApplicationExternal computer or serviceOperator interfaces, data processing, teleoperation logic, autonomy, and project-specific behavior

The CM5 and Pi 5 use matched software images and communicate over a direct Ethernet link. The Pi 5 sits in the Head Compute Unit, and the CM5 sits in the Robot Processing Unit (RPU) in the torso.

Data Flow

The documented low-level interface uses LiveKit and WebRTC to connect an application to the robot.

PathDirectionContentTransport
CommandsApplication to robotMode, velocity, and joint trajectory requestsReliable DataChannel
TelemetryRobot to applicationJoint state, current, temperature, IMU, and alerts at 10 HzLossy DataTrack
System eventsRobot to applicationErrors and diagnosticsReliable DataChannel
VideoRobot to applicationH.264 video, requested at 1280 x 720 and 30 fpsWebRTC media track
AudioBidirectionalMicrophone input and speaker outputOpus media tracks

The Asimov API reference documents these release-specific control, telemetry, media, and protocol interfaces.

Control Model

The current interface describes three firmware control states:

StatePurpose
DAMPSoftware-requested compliant actuator state
STANDTransition toward a standing pose
MOVEPolicy-based velocity control or direct joint trajectory control

Direct trajectory messages contain targets for all 25 powered joints. Policy control accepts planar velocity commands, while telemetry reports the robot state back to the application.

DAMP is not an emergency stop

DAMP is a software-requested compliant state. Use the released startup, support, shutdown, and emergency-disconnect procedures when operating the physical robot.

Included Locomotion

The CM5 firmware image includes the Asimov 1 locomotion policy. After both computers are flashed and the robot completes first-time setup, no separate policy installation is required.

Velocity commands provide forward, backward, lateral, and turning control. The locomotion policy runs against the 23-DOF body model, with the two neck joints locked.

Direct Control and Teleoperation

Trajectory requests provide direct control over all 25 actuator targets. An active trajectory session streams at approximately 50 Hz and automatically transitions to DAMP if packets stop.

Directional remote driving through velocity commands is available. The camera, microphone array, speaker, and bidirectional media tracks provide the audiovisual path for remote interaction. Full-body joint teleoperation is in development.

Python Client SDK and Emulator

We are actively developing and battle-testing the Python Client SDK and emulator internally, with a public release coming soon.

How is this guide?

On this page

Assign actuator IDs before assembly

Assign and verify all 25 actuator IDs before assembling the robot. The robot will not work correctly with missing or incorrect IDs. IDs must be assigned one actuator at a time on the bench; you may need to disassemble the robot if you skip this step.

Go to Assign Actuator IDs

The override applies to this browser tab only. It does not mark actuator IDs as assigned.