System architecture » History » Revision 18
Revision 17 (Rafael Bailon-Ruiz, 2020-09-10 13:38) → Revision 18/19 (Rafael Bailon-Ruiz, 2020-10-07 15:07)
h1. System architecture CAMS is a software framework for cloud exploration using fleets of UAVs. The system drives a *fleet of UAVs* inside *clouds* acoording to *user's plans* and *collects sensor data*. Afterwards the information is processed by *dedicated atmosphere analysis algorithms* to produce 4D *cloud maps* that are simultaneously *stored in a database* for future use and *shown to operator* through a *graphical user interface*. This graphical user interface also provides operators the means to *manage the fleet of UAVs* . !system_overview.png! h2. Main features The goal of this system is to provide an easy to use [[Graphical User Interface]] to perform four main features: * **Monitor data acquisition :** ** Predicted 4D cloud maps (3D + time). ** Various data profiles, including raw data display and vertical atmospheric profiles. %{background:lightgreen}insert images here ?% * **Monitor fleet status :** ** Current UAV positions on map. ** Status updates for each UAVs, including current task, (predicted path ?), flight time, battery voltage and many others. ** Dedicated interface for telepilots as a tool to validate generated flight plans (for safety). %{background:lightgreen}insert images here ?% * **Generate flight plans :** ** Depending on current fleet status and map of cloud, the user will be able to require a UAV to execute a specific flight pattern. The interface aims at providing a user-friendly interface to generate complex flight plans. %{background:lightgreen}insert images here ?% * **Simulation :** ** Using the simulation capabilities of the Paparazzi framework and MesoNH atmospheric simulation data, the whole system is able to run entirely on simulation. See "here":https://redmine.laas.fr/projects/nephelae/wiki/Simulation for more details. %{background:lightgreen}insert images here ?% h2. Modes of operation CAMS designed to work in several [[modes of operation]] fulfilling different user use cases: * Pure simulation * Mixed-reality * Field deployment * Mission replay h2. Main software components The software is made of several key sub-systems: sub-systems, most of them programmed in **Python 3.5** (NOT compatible with Python 2): * **Graphical user interface:** Web-based user interface for :** Web browser interface (HTML, CSS, JavaScript). Made with the operation of "Django framework":https://www.djangoproject.com to link the fleet of UAVs and display of sensor data and cloud maps. web-based front-end with the Python back-end. More details "here":https://redmine.laas.fr/projects/nephelae/wiki/Graphical_user_interface. * **Paparazzi interface:** The "paparazzi autopilot":http://paparazziuav.org is a _libre_ software and hardware platform for autonomous unmanned aerial vehicles encompassing the flight controller and the ground station. CAMS provides a software interface that takes care module :** Python interface with Paparazzi system. In charge of the communication with UAVs and the ground station via the IvyBus. The idea is to receive sensor data abstract the link between Paparazzi and control the fleet. rest of the LAAS software. More details "here":https://redmine.laas.fr/projects/nephelae-devel/wiki/Paparazzi_framework. * **Mapping:** **Mapping module :** ** Full dense maps of clouds using sparse data generated by the UAVs, with the help of "Gaussian Process Regression":https://scikit-learn.org/stable/modules/gaussian_process.html (GPR). ** Higher level functions to estimate some cloud parameters from a dense map (segmentation, area, border, etc...). ** Single map interface, behind which can be a GPR predicted map, or a section of MesoNH data to be used as ground-truth in simulation. * **MesoNH interface:** interface module :** Provides functions helper function to read data in a "MesoNH":http://mesonh.aero.obs-mip.fr/mesonh54 atmospheric simulation databases so they can be used database. Used to simulate UAV flights in a realistic cloud environments for UAV flight and sensor data acquisition. Wind, atmosphere by emulating wind, pressure, liquid water content, and many other variables can be exploited as emulated variables. Also used to emulate UAV sensor data. * **Data server:** server :** Aggregates all data coming down from flying or simulated UAVs (or any other source) into a single server instance. Any module which needs data, like the mapping module or the GUI module must require data from the data server. More details "here":. For more information on the codebase see "here":https://redmine.laas.fr/projects/nephelae-devel/wiki.