HIVE-MIND

What Is HIVE-MIND?

 

HIVE-MIND is the collective term for the software stack that enables KillerBees Drone Swarms. Some key features include:

 

  • GPS denied autonomous navigation, using Visual Inertial Navigation
  • Computer Vision / Object Detection "AI" to identify and respond to emerging threats, obstacles and targets.
  • Swarming Logic which allows each drone to act independantly, but which results in collective behaviour.
  • Heuristic decision making. The choices made by drones are transparent and easily understood as decision trees.

 

Although this page is dedicated to our software stack, it's important to mention the role of our world leading AI acceleration hardware, which used to deliver best in class capability with low CSWAP.

 

HIVE-MIND provides a TAK based interface for configuring missions, which communicates mission parameters to each drone prior to launch. The key configuration parameters are outlined below.
 

 

Key Configuration Parameters

 

pub enum Deployment {

            PointToPoint,

            Pincer,

            Perimeter,

            Encircle,

            Linear,

            Mesh,

            QuickMap,

}

 

pub enum EndState {

            Attack,

            AerialSensor,

            GroundSensor,

            ReturnToLauncher,

}

 

pub enum FlightState {

            PreLaunch,

            Launch,

            Mission,

            Terminal,

            Complete,

}

 

pub enum ThreatResponse {

            GoAround,

            Engage,

            Flee,

            Evade, 

}

 

pub struct Mission {

            callsign: String,

            swarm_size: usize,

            deployment: Deployment,

            end_state: EndState,

            threat_response: ThreatResponse,

            checkpoints: Vec<PointLatLong>,

            current_checkpoint: u32,

            flight_state: FlightState,

}

 

 

The Mission

 

A Mission, as configured by the TAK UI consists of the following elements which are sent to the launcher and uploaded to the drone if required before launch.

 

callsign: String

            Callsign of the HIVE launcher, mainly used for TAK interface.

 

swarm_size: usize

            Number of drones to be tasked to the Mission. Used by the HIVE launcher to deploy the correct number of drones.

 

deployment: Deployment

            See below.

 

end_state: EndState

            See below.

 

threat_response: ThreatResponse

            See below.

 

checkpoints: Vec<PointLatLong>

List of calculated navigation checkpoints required to complete the mission. Determined by target location, Deployment and EndState.

 

current_checkpoint: u32

Internal tracker for current navigation goal. Vec index.

 

flight_state: FlightState

            See below.

 

 

Flight State

 

PreLaunch

Permission to launch has not been received. Drone cannot conduct any actions in this state.

 

Launch

Permission to launch has been received. Drones are launched to a random location at 100m altitude within a grid of Mission::SwarmSize X Mission::SwarmSize, then enters FlightState::Mission.

 

Mission

Autonomous navigation in accordance with selected deployment. Enters Terminal or Complete once finished.

 

Terminal

Terminal Guidance mode used for EndState::Attack. The drone will enter terminal guidance mode when within SwarmParams::DetectionDistance.

 

Complete

            Mission Complete

 

 

Deployments


PointToPoint

The PointToPoint deployment is the simplest, and deploys all allocated drones to a single point. Typically used with EndState::Attack, as tasking multiple units to the EXACT same location for ISR roles is likely to have limited use cases.

 

Pincer

Performs a pincer movement on a target location. The user must specify a radius (R) for the pincer movement (typically the effective range of the target’s defence). Units tasked to this deployment will be allocated to groups Pincer1 and Pincer2 on an alternating basis, based on launch order. Each group will proceed to a location R meters from the target at +-90 from the bearing between the target and launcher. Typically used with EndState::Attack.

 

Perimeter

Drones will form a perimeter at a radius (R) from a given location. Perimeter will fly the shortest distance and form a perimeter User can specify the number of drones, or HIVE-MIND will calculate it based on min/max spacing constraints (e.g. for comprehensive sensor deployment). CANNOT be used with EndState::Attack without operator oversight, as the likelyhood of self-detections is too high.*

 

Encircle

Similar to Perimeter, with some exceptions. Encircle will fly around the target radius, and time the arrival of all drones to simultaneously envelop an area.*

 

Linear

Form a line.

 

Mesh

Forms a grid within a rectangular area. Users can allocate a number of drones or calculate the number of required drones based on max/min spacing requirements. **+

 

QuickMap

Allocate a number of drones to rapidly map an area using the onboard 4k cameras. Transmit 4k images multiple times per second, and construct 3D maps on a base station using Gaussian splatting. Typically used with EndState::ReturnToLauncher+

 

Complex

Support is planned for complex deployments, involving manual waypoint/navigation selection and multiple end states. The stage 1 implementation will be to read complex missions from file using the mission_from_file() function on the Mission object. Stage 2 will integrate complex missions with the TAK UI.

 

*Currently only implements circular deployments.

**Currently only implements square grid spacing, though other lattices are planned.

+Currently only implements rectangular deployment areas.

 

 

End States

 

Attack

When within both SwarmParams::detection_distance of a target, enter FlightState::Terminal. Use onboard object detection to seek out a predefined object class* and a software PID to control actuators based on the difference in current position and target position. Once within SwarmParams::engagement_distance of the target, arm the payload connected to the drone body payload adaptor (if required).

 

AerialSensor

Continue to hover until battery runs out, then land. Camera detections and outputs from any sensors in the drone body payload adaptor will be forwarded over radio link.

 

GroundSensor

Once in position, land. Detections and outputs from any sensors in the drone body payload adaptor will be forwarded over radio link.

 

ReturnToLauncher

            Return to the HIVE launcher and land. 

 

Complex

Support for conditional end states is planned for future implementation. Some use cases might be operating as a sensor and then returning to base once battery is low, or attacking if a suitable target is identified.

 

* Current implementation is tightly coupled to the object detection model used.

 

 

ThreatResponse

 

            NB: Currently only ThreatResponse::GoAround has been implemented.

 

GoAround

Treat threats as obstacles.

 

Engage

EndState::Attack, FlightMode::Terminal

 

Flee

Add steering vector in opposite direction. Would require a ‘self-preservation’ weight to be added to swarming algorithm.

 

Evade

Add stochastic movement at each timestep to evade cUAS tracking and targeting.