Logo Lanfrica

Press-Start-2-Play/Operation-Bandit--Sim-

Domaine:

peace and security

Type de record:

software
Créateur:
Pre
Hôte:
Swarm Search is a multi-agent simulation of an autonomous drone swarm searching for bandit camps and hostages in Northwest Nigeria. Designed for communication-degraded environments, it eliminates centralized control by using stigmergy—coordinating drones entirely through a shared virtual pheromone grid. # Swarm Search — Project Handoff *Last updated: June 2026* ## What this project is A simulation of a drone swarm performing autonomous search over conflict-affected terrain in Nigeria — specifically targeting two tasks: 1. **Hideout detection** — coverage search across large terrain (forests, hills, rural settlements) for structures or heat/RF signatures suggesting bandit camps. 2. **Victim/hostage localization** — once a zone of interest is flagged, narrowing down to precise location. The motivating context is the banditry crisis in Nigeria's Northwest (Zamfara, Katsina, Sokoto). This is a generalized-unit simulation — no specific hardware platform is assumed. The goal right now is to get the coordination algorithm right in simulation before any hardware considerations enter the picture. ## Core idea: unified pheromone field Instead of coordinating robots with a central controller or explicit communication protocol, the swarm coordinates indirectly through a shared **virtual pheromone field** — stigmergy, the same mechanism ants use. The field is a scalar grid, each cell holding a value in **[-1, 1]**: - **Negative** = repulsive — "this area is covered, go elsewhere" - **Positive** = attractive — "something interesting here, investigate" - **Zero** = neutral — unexplored This single scale unifies what would otherwise be two separate systems (coverage logic and detection logic) into one number a robot can read and act on. ### Why two channels under the hood Although robots act on a single net field value, the field is actually computed from two separate channels that are tracked and decayed independently: - `F_cov` — coverage/repulsion, written whenever a robot passes through a cell, decays fast - `F_det` — detection/attraction, written when a robot's sensor confidence crosses a threshold, decays slow These are summed into `F_net = clip(F_cov + F_det, -1, 1)` for movement decisions. The reason for keeping them separate rather than just using one field: …