Table of Contents |
---|
Overview
The airside system is an autonomous perception-decision-control system that runs on the drone. All workers use local space except for flight_interface_worker. A diagram of the pipeline is shown below.The airside system implements the multiprocessing worker model: Python multiprocessing worker model
All worker use the local space coordinate system except for Flight interface worker: Unit and Coordinate Conventions
More information on autonomous systems in general: Autonomous Systems
System
Drawio | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Multiprocessing
TODO R D : Link to multiprocessing page when written
Workers
...
Key:
Red: Perception
Orange: Tracking
White: Decision
Green: Control (also perception from drone telemetry)
Blue: Not the responsibility of the system
Workers
Worker | Description | Task |
---|---|---|
Flight interface worker | Interfaces with the flight controller. The output of the worker is used for perception and decision making; the input is used for |
...
controlling the drone. | Task:
|
...
|
...
Input:
decision_worker:
AirsideCommand
Output:
data_merge_worker: TODO:
OdometryAndTime
decision_worker: Tuple of:
TODO: telemetry
TODO: waypoint state
TODO: command ready state
video_input_worker
...
| ||
Video input worker | Interfaces with the camera device. | Task:
|
Output:
...
Detect target |
...
worker |
...
detect_target_worker
Perception.
Input:
video_input_worker:
ImageAndTime
Detects objects (if any) in images. | Task:
|
Output:
...
Data merge |
...
worker |
...
data_merge_worker
Perception.
Input:
...
flight_input_worker: OdometryAndTime
...
Synchronizes telemetry and detected objects. | Task:
|
Output:
geolocation_worker:
MergedOdometryDetections
geolocation_worker
Perception.
Input:
Geolocation worker | Finds out where the detected object is in the world. | Task:
|
Output:
...
Cluster estimation |
...
worker |
...
cluster_estimation_worker
Perception.
Input:
geolocation_worker: list[DetectionInWorld]
...
Estimates the location of objects in the world based on groups of detections. | Input list length is the number of simultaneous detections in a single frame. Task:
|
...
Output:
controller_worker: list[ObjectInWorld]
...
Decision worker | Builds a model of the world and takes action. | Input list is sorted in descending order of confidence (i.e. index 0 is best, 1 is next best, etc.) |
...
decision_worker
...
. |
...
Input:
flight_interface_worker: Tuple of:
...
TODO: telemetry
...
TODO: waypoint state
...
...
cluster_estimation_worker: list[PositionWorld]
Task:
|
...
Output:
...