swarmake is a command-line tool for managing OpenSwarm components. It simplifies the process of fetching, building, and running various components of the OpenSwarm ecosystem, making it easier to work with robot swarms.
- 🔄 Automated build process for OpenSwarm components
- 📥 Automatically downloads repositories from the OpenSwarm GitHub organization
- 📡 Deployment tools with real-time monitoring of robot swarms
- 🛠️ Extensible recipe system for custom components
Install swarmake using pip:
pip install swarmakeFor help with any command, use:
swarmake [command] --helpBuild the DotBot firmware:
# Clone the dotbot repo and build it in Docker using the recipe in swarmake.toml
swarmake build dotbotBuild the Coaty Data Distribution Agent:
# Clone the repo and prepare the docker image
swarmake build ddaBuild and run the lakers library:
# Build the lakers component
swarmake build lakers 2> /dev/null
# Run according to swarmake.toml configuration
swarmake run lakersDeploy a swarm of DotBots with monitoring:
TARGET_APP=move swarmake deploy --monitorThis command will:
- Clone & build the dotbot and swarmit projects
- Flash the firmware to available dotbots
- Start the experiment
- Monitor and display logs from the dotbots
To add a new component to swarmake:
- Open the
swarmake.tomlconfiguration file - Add your project with its repository URL in the
_core.repositoriessection - Define recipes for:
build(optional): Build and setup instructionsrun(optional): Commands to run the componentrepo(optional): Override the repository name (uses project name by default)list-outputs(optional): Command to list build outputs
Example configuration:
[project.mycomponent]
build = """
pip install mycomponent
"""
run = "./run-my-component.sh"Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE file for details.
Part of the source code in this repository is developed within the frame and for the purpose of the OpenSwarm project. This project has received funding from the European Unioan's Horizon Europe Framework Programme under Grant Agreement No. 101093046.
