dotbot run - host-side processes#

dotbot run launches the things that run on your computer: the control plane, the gateway bridge, a simulator, calibration, demos, and teleop drivers. (fw / device / swarm are the things you manage; run is the long-lived processes that talk to them.)

dotbot run --help        # the full list

Subcommand

Launches

controller

Control plane: REST/WS API + web dashboard. The hub everything else talks to.

gateway

Host bridge: gateway firmware UART ↔ MQTT broker.

simulator

Standalone simulator (no hardware).

lh2-calibration

Lighthouse calibration: capture / apply, on one cabled board.

demo

Built-in research demos (qrkey phone bridge, …).

keyboard

Drive a DotBot from the keyboard.

joystick

Drive a DotBot from a joystick.

controller - the control plane + web UI#

Connect to a swarm and serve the dashboard at http://localhost:8000/PyDotBot/. --conn is one discriminated string: mqtts://host:port, a serial path, or simulator.

dotbot run controller --conn mqtts://argus.paris.inria.fr:8883 --swarm-id 1234 -w
dotbot run controller --conn /dev/ttyACM0 -w

Flag

Meaning

-n/--conn

mqtts://host:port, serial path, or simulator

-s/--swarm-id

hex swarm id - required for MQTT, ignored for serial/simulator

-w/--webbrowser

open the dashboard automatically

--csv-data-output

record robot data to a CSV file

Full options and the dashboard tour live in the controller guide. See dotbot run controller --help.

gateway - UART ↔ MQTT bridge#

Runs wherever the gateway firmware is plugged in. With --mqtt-url it bridges serial frames to the broker; without it, it just prints what it receives.

dotbot run gateway -m mqtts://argus.paris.inria.fr:8883 -p /dev/cu.usbmodem1234
dotbot run gateway                # autodetect port, print-only (no broker)

run gatewaydevice flash-mari-gateway. This is the host process that bridges a gateway board to MQTT. device flash-mari-gateway is the firmware you flash onto that board, once. Same word, different objects.

simulator - standalone simulator#

No hardware, no gateway. Exactly equivalent to run controller --conn simulator, so it shares the controller’s flags and serves the same dashboard.

dotbot run simulator -w

lh2-calibration - capture & apply#

Lighthouse v2 calibration against a single serial-attached board. collect opens a TUI to capture LH2 counts; apply writes the saved calibration out as a C header.

dotbot run lh2-calibration collect
dotbot run lh2-calibration apply ./lh2_calibration.h

See the LH2 calibration guide. To push a calibration to the whole fleet over the air, use swarm calibrate-lh2.

demo - built-in demos#

dotbot run demo --list      # what's available
dotbot run demo qr          # qrkey phone bridge

keyboard / joystick - teleop#

Drive a DotBot live through a running controller (start one with run controller first). Both default to localhost:8000; pass -d to target a specific robot by hex address.

dotbot run keyboard
dotbot run joystick -j 0 -d 1234567890abcdef

See dotbot run keyboard --help / dotbot run joystick --help for the host, port, and application (dotbot/sailbot) flags.