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.0rc2.tar.gz (1.2 MB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: pydotbot-0.29.0rc2.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.0rc2.tar.gz
Algorithm Hash digest
SHA256 0ec0d707250ba9a64dd1588f59c586aa2de8d6d0ee7a92dc8cf5c60494e29544
MD5 1f4a9d3fbbab6b2b31a2f8a68ec871f3
BLAKE2b-256 ed822c1bec63998999dca709c168f18c8e461a7437fe090713f3e6a0eb75120c

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