Mission Profiles
Mission profiles define how a drone behaves from launch to landing. Each profile specifies flight parameters, camera settings, evidence capture rules, and trigger conditions. Turqoa ships with four built-in profiles that can be customized per site.
Alarm Verification
The highest-priority mission type. A drone launches immediately when a perimeter alarm fires, flies directly to the alarm coordinates, and captures evidence for operator review.
Trigger Conditions
- Perimeter sensor alarm with confidence >= 0.70
- Camera-based motion detection in restricted zones
- Gate OS anomaly flag (unrecognized vehicle, tailgating)
- Manual operator dispatch
Flight Parameters
alarm_verification:
flight:
altitude_meters: 30
approach_speed_ms: 12
orbit_radius_meters: 15
orbit_count: 2
hover_duration_seconds: 30
return_speed_ms: 10
camera:
mode: auto_track
zoom: adaptive
thermal_overlay: true
resolution: "4K"
frame_rate: 30
priority: critical
max_response_time_seconds: 90
preempt_lower_priority: true
Evidence Capture
| Setting | Value |
|---|---|
| Video recording | Continuous from launch |
| Thermal imaging | Enabled during orbit |
| Snapshot interval | Every 2 seconds during hover |
| Audio recording | Optional (if hardware supports) |
| Metadata overlay | Timestamp, GPS, heading, altitude |
| Storage | Local + cloud sync |
| Retention | 90 days (configurable) |
Configuration Example
{
"profile": "alarm_verification",
"trigger": {
"event_types": ["motion_detected", "perimeter_breach", "gate_anomaly"],
"min_confidence": 0.70,
"zones": ["north_perimeter", "east_perimeter", "gate_1", "gate_2"],
"time_window": "24/7"
},
"flight": {
"altitude_meters": 30,
"approach_speed_ms": 12,
"orbit_radius_meters": 15,
"orbit_count": 2,
"hover_duration_seconds": 30
},
"evidence": {
"video": { "enabled": true, "resolution": "4K", "thermal": true },
"snapshots": { "enabled": true, "interval_seconds": 2 },
"retention_days": 90
}
}
Patrol
Scheduled flights along predefined waypoint routes. Patrol missions provide continuous visual coverage of areas between fixed cameras.
Trigger Conditions
- Cron-based schedule (e.g., every 4 hours)
- Threat level elevation (automatic increase in patrol frequency)
- Manual operator request
Flight Parameters
patrol:
flight:
altitude_meters: 40
cruise_speed_ms: 8
waypoint_hover_seconds: 10
route_type: predefined # predefined | random | adaptive
camera:
mode: sweep
sweep_angle_degrees: 120
thermal_overlay: false
resolution: "1080p"
frame_rate: 24
priority: low
schedule:
cron: "0 */4 * * *"
skip_if_weather_unsafe: true
Route Configuration
Define patrol routes as ordered waypoint lists:
{
"profile": "patrol",
"route": {
"name": "north_perimeter_patrol",
"waypoints": [
{ "lat": 51.5074, "lng": -0.1278, "altitude_m": 40, "hover_s": 10 },
{ "lat": 51.5080, "lng": -0.1265, "altitude_m": 40, "hover_s": 10 },
{ "lat": 51.5085, "lng": -0.1250, "altitude_m": 40, "hover_s": 15 },
{ "lat": 51.5090, "lng": -0.1240, "altitude_m": 40, "hover_s": 10 }
],
"loop": false,
"reverse_on_return": true
},
"schedule": {
"cron": "0 */4 * * *",
"timezone": "Europe/London"
}
}
Evidence Capture
| Setting | Value |
|---|---|
| Video recording | Continuous during flight |
| Thermal imaging | Disabled by default |
| Snapshot interval | At each waypoint |
| Anomaly detection | AI-based change detection vs. baseline |
| Storage | Cloud sync on landing |
| Retention | 30 days |
Investigation
Operator-initiated missions for real-time reconnaissance. The operator has full control of the flight path and camera during an investigation.
Trigger Conditions
- Manual operator dispatch only
- Typically follows an alarm verification that requires further inspection
- Can be initiated from Command Center or mobile app
Flight Parameters
investigation:
flight:
altitude_meters: 15 # lower for detail
max_speed_ms: 6
control_mode: manual # manual | semi_auto | waypoint
geofence_enforced: true
camera:
mode: operator_controlled
zoom: manual
thermal_overlay: true
resolution: "4K"
frame_rate: 30
gimbal_control: operator
priority: high
max_duration_minutes: 15
operator_required: true
Evidence Capture
| Setting | Value |
|---|---|
| Video recording | Continuous with operator annotations |
| Thermal imaging | Operator toggle |
| Snapshot | On-demand (operator button) |
| Evidence tagging | Real-time bookmarks with notes |
| Live stream | To Command Center + recording |
| Retention | 180 days |
Operator Controls
During an investigation, the operator console exposes:
interface InvestigationControls {
// Flight
setHeading(degrees: number): void;
setAltitude(meters: number): void;
setSpeed(metersPerSecond: number): void;
hoverInPlace(): void;
returnToBase(): void;
// Camera
setZoom(level: number): void;
toggleThermal(): void;
setGimbalAngle(pitch: number, yaw: number): void;
captureSnapshot(): void;
// Evidence
addBookmark(note: string): void;
startHighPriorityRecording(): void;
tagPersonOfInterest(boundingBox: BoundingBox): void;
}
Perimeter Sweep
A comprehensive perimeter flight triggered by elevated security conditions. The drone follows the entire facility boundary, recording continuous video.
Trigger Conditions
- Threat level raised to HIGH or CRITICAL
- Post-incident sweep requested
- Scheduled (e.g., shift change)
- Decision Engine rule trigger
Flight Parameters
perimeter_sweep:
flight:
altitude_meters: 50
cruise_speed_ms: 6
follow_boundary: true
boundary_offset_meters: 10 # fly 10m inside fence line
overlap_percent: 15 # overlap start/end by 15%
camera:
mode: continuous_record
orientation: outward # face away from facility
thermal_overlay: true
resolution: "4K"
frame_rate: 30
priority: high
estimated_duration_minutes: 25
require_full_battery: true
Evidence Capture
| Setting | Value |
|---|---|
| Video recording | Continuous, dual-stream (visual + thermal) |
| Panoramic stitching | Enabled post-flight |
| Change detection | Compare against previous sweep baseline |
| Anomaly alerts | Real-time during flight |
| Storage | Immediate cloud sync |
| Retention | 365 days |
Configuration Example
{
"profile": "perimeter_sweep",
"trigger": {
"threat_levels": ["high", "critical"],
"event_types": ["threat_level_change", "post_incident"],
"schedule": {
"cron": "0 6,18 * * *",
"timezone": "UTC"
}
},
"boundary": {
"source": "site_geofence",
"offset_meters": 10,
"direction": "interior"
},
"evidence": {
"video": { "enabled": true, "resolution": "4K", "dual_stream": true },
"change_detection": { "enabled": true, "baseline": "last_sweep" },
"retention_days": 365
}
}
Profile Priority Matrix
When multiple missions are requested simultaneously, priority determines which drone is assigned first:
| Profile | Priority | Can Preempt | Preempted By |
|---|---|---|---|
| Alarm Verification | Critical | Patrol | None |
| Investigation | High | Patrol | Alarm Verification |
| Perimeter Sweep | High | Patrol | Alarm Verification |
| Patrol | Low | None | All higher priorities |
Custom Profiles
Create custom profiles by extending a base profile:
custom_profiles:
- name: vip_escort
extends: investigation
overrides:
flight:
altitude_meters: 20
control_mode: semi_auto
camera:
resolution: "4K"
face_blur: false
priority: critical
max_duration_minutes: 60