Skip to content

openswarm-eu/swarmake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

swarmake   CI status Latest Version

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.

Features

  • 🔄 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

Installation

Install swarmake using pip:

pip install swarmake

Usage

For help with any command, use:

swarmake [command] --help

Building Components

Build the DotBot firmware:

# Clone the dotbot repo and build it in Docker using the recipe in swarmake.toml
swarmake build dotbot

Build the Coaty Data Distribution Agent:

# Clone the repo and prepare the docker image
swarmake build dda

Running Components

Build and run the lakers library:

# Build the lakers component
swarmake build lakers 2> /dev/null
# Run according to swarmake.toml configuration
swarmake run lakers

Deploying Swarms

Deploy a swarm of DotBots with monitoring:

TARGET_APP=move swarmake deploy --monitor

This command will:

  1. Clone & build the dotbot and swarmit projects
  2. Flash the firmware to available dotbots
  3. Start the experiment
  4. Monitor and display logs from the dotbots

Adding New Components

To add a new component to swarmake:

  1. Open the swarmake.toml configuration file
  2. Add your project with its repository URL in the _core.repositories section
  3. Define recipes for:
    • build (optional): Build and setup instructions
    • run (optional): Commands to run the component
    • repo (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"

Contributing

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.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgement

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.

OpenSwarm - Funded by the European Union

About

Fetch, build, and run the OpenSwarm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 3

  •  
  •  
  •  

Languages