Skip to main content

Package to easily control your DotBots and SailBots.

Project description

CI PyPI version Documentation Coverage License

PyDotBot

This package contains a complete environment for controlling and visualizing DotBots.

The DotBots hardware design can be found here (PCB). The firmware running on the DotBots can be found here.

This package can also be used to control devices running the SailBot firmware application.

DotBots controller overview

Installation

Run pip install pydotbot

Setup

Flash the required firmwares on the DotBots and gateway board (use an nRF52833DK/nRF52840DK/nrf5340DK board as gateway), as explained in the DotBots firmware repository.

Usage

A single dotbot CLI dispatches to every workflow — controller, testbed ops, calibration, demos:

dotbot --help
Usage: dotbot [OPTIONS] COMMAND [ARGS]...

  Control DotBots: drive robots, run testbed experiments, calibrate, demos.

Commands:
  controller  Start the controller (adapter + REST/WS + dashboard).
  sim         Standalone simulator (equivalent to controller --adapter dotbot-simulator).
  testbed     Testbed-side ops: provision, status, start/stop, OTA flash, monitor.
  calibrate-lh2 LH2 calibration: capture, apply, export (serial-side / single device).
  demo        Built-in research demos (qrkey phone bridge, ...).
  fw          Firmware-developer workflow (scaffold/build/flash). Not yet implemented.
  keyboard    Drive a DotBot from the keyboard (live).
  joystick    Drive a DotBot from a joystick (live).

Some subcommands need optional runtime deps:

pip install pydotbot[testbed]    # adds swarmit (testbed orchestration)
pip install pydotbot[provision]  # adds intelhex (used by `dotbot testbed provision`)
pip install pydotbot[calibrate]  # adds opencv-python + textual (LH2 calibration TUI + exporter)
pip install pydotbot[all]        # all of the above

Calibration (dotbot calibrate-lh2) and provisioning (dotbot testbed provision) are vendored in-tree, but their heavyweight runtime deps (textual / opencv-python / intelhex) are gated behind extras so the core install stays lean.

Starting the controller

Run dotbot controller --help for the full flag list (adapter, MQTT, HTTP port, map size, etc.). By default the controller expects the serial port to be /dev/ttyACM0 on Linux — use --port to override (e.g. --port COM3 on Windows).

With --webbrowser, a tab opens at http://localhost:8000/PyDotBot. The page lists available DotBots, lets you select and control one, and exposes a virtual joystick and RGB LED control.

Use --config-path for a TOML config file:

# Use settings from the config file
dotbot controller --config-path config_sample.toml
# Use config file but override port and adapter (simulator example)
dotbot controller --config-path config_sample.toml -a dotbot-simulator

CLI flags override config-file values when both are provided.

The legacy dotbot-controller, dotbot-keyboard, and dotbot-joystick console scripts remain as backwards-compatible aliases for one deprecation cycle. Prefer dotbot <subcommand> for new code.

Firefox users: If the webapp is not working, press Ctrl + L, type about:config, and set network.http.http2.websockets to false.

Tests

To run the tests, install tox and use it:

tox

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydotbot-0.29.0rc1.tar.gz (1.2 MB view details)

Uploaded Source

File details

Details for the file pydotbot-0.29.0rc1.tar.gz.

File metadata

  • Download URL: pydotbot-0.29.0rc1.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pydotbot-0.29.0rc1.tar.gz
Algorithm Hash digest
SHA256 67ceac3920f1d5be7be17504cba39feb249ec3ccf8cc2038c22d20a2b7588e37
MD5 9599117555c72973bde185b5c7e9352d
BLAKE2b-256 1758f5619cb73c8593e2e0c85a346acc8b565a67c74ff9b3c269cd46bd274280

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page