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:
- open netcore.emProject and bootloader.emProject in SES
- build and load the netcore application on the nRF53 network core,
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30f8e335b4c5fc2eaec6915d4962719a36a073f3b38d5dc8c6e7dd1bbae67c9a
|
|
| MD5 |
bd7e4b2dfd3be3709b9fe97bf9570e12
|
|
| BLAKE2b-256 |
dcd617e4a5700a7993f9f6052cf67e060f950dee4f09d76c0d8c4e63a9f40311
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bbe434c7ab41f9eb5cdf4d7215ac36ed8f3423184638f698b3324b4eb2b5351
|
|
| MD5 |
fb4c3e52850e1949a8ee0deac95fed85
|
|
| BLAKE2b-256 |
f3924a031ba566e26019619aa0dd100de5ff3b5fcbd6b2ba7014d6e6723df44c
|