The figure shows high level architectural design of the system.
First, the preprocessing step, the system will receive data from ADS-B
signals using an antenna equipped on drone. The data, directly from
the antenna, will be decoded and imported as a .json file
by an external system (dump1090 data decoder).
After the preprocessing, the .json file will be analyzed and interpreted
by the inputEngine. Upon successfully confirming the validity of the .json file,
the inputEngine will create a list of Aerial Object data and pass
it to collisionEngine package for further processing.
The Aerial Object data will be processed by the collisionEngine to determine possible
collision points between the drone and all Aerial Object in the list.
The data of all collision points will be processed by decisionEngine package.
If a collision point is in the dangerous threshold, the decisionEngine
will calculate and issue an optimal path to avoid collision. If the optimal path cannot be found,
the decisionEngine will attempt to stop the drone.
Finally, all calculated and gathered data will be passed to the GUIEngine module
for testing purpose of viewing of collected and processed data.