Skip to main content

Run Your Own Robot Swarm Testbed.

Project description

SwarmIT

SwarmIT provides a embedded C port for nRF53 as well as Python based services to easily build and deploy a robotic swarm infrastructure testbed. ARM TrustZone is used to create a sandboxed user environment on each device under test, without requiring a control co-processor attached to it.

Features

  • Experiment management: start, stop, monitor and status check
  • Deploy a custom firmware on all or on a subset of robots of a swarm testbed
  • Resilient robot state: even when crashed by buggy user code, the robot can be reprogrammed remotely and wirelessly

Usage

Embedded C code

SwarmIT embedded C code can be built using Segger Embedded Studio (SES).

To provision a device, follow the following steps:

  1. open netcore.emProject and bootloader.emProject in SES
  2. build and load the netcore application on the nRF53 network core,
  3. build and load the bootloader application on the nRF53 application core.

The device is now ready.

Gateway

The communication between the computer and the swarm devices is performed via a gateway board connected via USB to the computer. The gateway board is a Nordic nRF53840DK.

The firmware to run on the gateway can also be compiled and flash using SES. The SES project to open is located at gateway.emProject.

After flashing the gateway firmware, LED1 on the DK should blink fast during 1s.

Python CLI script

The Python CLI script provides commands for flashing, starting and stopping user code on the device, as well as monitoring and checking the status of devices in the swarm.

The Python CLI script connects via a virtual COM port to the gateway connected to the computer.

The Python CLI script is available on PyPI. Install it using:

pip install swarmit

Default usage:

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

Options:
  -p, --port TEXT         Serial port to use to send the bitstream to the
                          gateway. Default: /dev/ttyACM0.
  -b, --baudrate INTEGER  Serial port baudrate. Default: 1000000.
  -d, --devices TEXT      Subset list of devices to interact with, separated
                          with ,
  --help                  Show this message and exit.

Commands:
  flash
  monitor
  start
  status
  stop

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

swarmit-0.3.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swarmit-0.3.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file swarmit-0.3.0.tar.gz.

File metadata

  • Download URL: swarmit-0.3.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for swarmit-0.3.0.tar.gz
Algorithm Hash digest
SHA256 30f8e335b4c5fc2eaec6915d4962719a36a073f3b38d5dc8c6e7dd1bbae67c9a
MD5 bd7e4b2dfd3be3709b9fe97bf9570e12
BLAKE2b-256 dcd617e4a5700a7993f9f6052cf67e060f950dee4f09d76c0d8c4e63a9f40311

See more details on using hashes here.

File details

Details for the file swarmit-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: swarmit-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for swarmit-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8bbe434c7ab41f9eb5cdf4d7215ac36ed8f3423184638f698b3324b4eb2b5351
MD5 fb4c3e52850e1949a8ee0deac95fed85
BLAKE2b-256 f3924a031ba566e26019619aa0dd100de5ff3b5fcbd6b2ba7014d6e6723df44c

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