...
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
System
Drawio | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Multiprocessing
TODO R D : Link to multiprocessing page when written
Workers
...
Key:
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:
...
Detects objects (if any) in images. | Task:
|
Output:
...
Data merge |
...
worker |
...
data_merge_worker
Perception.
Input:
flight_input_worker:
OdometryAndTime
detect_target_worker:
DetectionsAndTime
Synchronizes telemetry and detected objects. | Task:
|
Output:
geolocation_worker:
MergedOdometryDetections
geolocation_worker
Perception.
Input:
data_merge_worker:
MergedOdometryDetections
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
TODO: command ready state
cluster_estimation_worker:
list[PositionWorld]
Task:
|
...
Output:
...