This is a minimal, "Hello World" template for building decentralized drone swarms using the Tashi Vertex RS consensus engine and Microsoft AirSim.
The goal of this starter kit is to demonstrate a peer-to-peer (P2P) handshake between two drones. Instead of a central server, the drones use a Hashgraph-based gossip protocol to agree on a state (in this case, a simple string message).
- AirSim: Installed and running (Unreal Engine environment).
- Tashi Vertex RS: A local clone of the tashi-vertex-rs repository, compiled using
cargo build. - OS Support:
- macOS / Linux: Direct execution supported.
- Windows: Supported via WSL (Windows Subsystem for Linux).
To run this swarm, AirSim needs to be configured for multiple vehicles.
- Windows:
Documents\AirSim\settings.json - Linux/Mac:
~/Documents/AirSim/settings.json
Paste the following configuration into your settings.json. This spawns two drones in a clear environment:
{
"SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md",
"SettingsVersion": 1.2,
"SimMode": "Multirotor",
"ClockType": "SteppableClock",
"Vehicles": {
"Drone1": {
"VehicleType": "SimpleFlight",
"X": 0, "Y": 0, "Z": 0
},
"Drone2": {
"VehicleType": "SimpleFlight",
"X": 2, "Y": 0, "Z": 0
}
}
}Launch any AirSim-compatible binary (e.g., Africa, Blocks, or CityEnviron). When asked to use Car or Multirotor, choose Multirotor.
-
Verify Binary Paths: Open
hello_mission.pyand ensure thetashi_pathpoints to your localtashi-vertex-rsdirectory.self.tashi = TashiStarterManager(DRONES, tashi_path="../tashi-vertex-rs")
-
Run the Mission:
python hello_mission.py
- Consensus Boot: The script cleans old network ports and launches two Tashi P2P nodes.
- Sync Takeoff:
Drone1andDrone2take off and hover together. - The Handshake:
Drone1broadcasts a decentralized greeting via the Vertex network. - Consensus Verification: Once
Drone2receives the message via the Gossip layer, it confirms the data is synchronized. - Soft Landing: Upon verified agreement, both drones initiate an autonomous landing sequence and disarm.