Software

The robot runs two separate processes on two custom PCBs.

Process

Board

Asimov Firmware

Motion Control Board (ARM64)

Asimov Manager

Perception and Network Controller (x86)

They talk nanopb over UDP:

        flowchart LR
    subgraph pnc["Perception & Network Controller"]
        manager["Asimov Manager<br/>Cameras, Audio, Net"]
    end
    subgraph mcb["Motion Control Board"]
        firmware["Asimov Firmware<br/>Motors, IMU, RL Policy"]
    end
    manager -->|"UDP :8888<br/>Commands"| firmware
    firmware -->|"UDP :8889<br/>State"| manager
    
  • Port 8888: Commands (manager → firmware)

  • Port 8889: State (firmware → manager)