WP3-13: Difference between revisions

From COMP4DRONES
Jump to navigation Jump to search
(Start porting ENAC page from github.)
Line 5: Line 5:
|  Contributor || ENAC
|  Contributor || ENAC
|-
|-
|  Levels || xxx
|  Levels || Platform
|-
|-
|  Require || xxx
|  Require || C2LINK or Flight Plan definition
|-
|-
|  Provide || xxx
|  Provide || Modular and flexible UAV autopilot system for testing and operation
|-
|-
|  Input
|  Input
|
|
* xxx
Depending on the flight mode:
* yyy
* flight plan definition,
* mission sequence from datalink,
* position/speed from datalink,
* low-level remote control
|-
|-
|  Output || xxx
|  Output || Stabilized aircraft (fixedwing, multicopter, hybrid) on a given trajectory or attitude
|-
|-
|  C4D building block || xxx
|  C4D building block || Flight control, Actuation, + parts of Perception and Communication
|-
|-
|  TRL || xxx
|  TRL || 4 to 6
|}
|}
==Current status==
Paparazzi is a complete system of open source hardware and software for Unmanned Aircraft Systems (UAS), including both the airborne autopilot as well as complete ground station mission planning and monitoring software utilizing a bi-directional datalink for telemetry and control. Paparazzi has been created at ENAC in 2003, and is now supported by other institutes such as MAVLAB of the TU-Delft, individual developers, and some private UAV companies from several countries.
The Paparazzi system was initially designed for robust small fixed-wing aircrafts in 2003, but it now supports several other configurations and concepts such as high-aspect ratio gliders, multi-rotors, transitioning vehicles, and rovers. The communication between the software blocks running on the ground and the airborne autopilot is based on the PPRZLINK library, which provides API in C/C++, Python and OCaml.
<gallery>
File:pprz_01_com_arch.png|Paparazzi communication architecture
File:pprz_02_control_options.png|Control options for Paparazzi UAVs
</gallery>
See the [https://wiki.paparazziuav.org/wiki/Main_Page Wiki] and the [https://github.com/paparazzi/paparazzi/ Github] repository.
==Contribution and Improvements==
Several improvements are intended in the scope of C4D projects.
* Improvement of the internal airborne code organization: a detailed analysis of the timing between the elements of the embedded software have led to a new definition of the internal tasks’ groups. A particular attention has been given to the timing between the tasks and functions to provide a stable and reliable end-to-end execution time.
* Explicit definition of the dependencies between modules, both at functional and logic level: it allows to simplify the configuration of an aircraft (only relevant high-level modules needs to be specified), the dependency solver will include all the required modules. The overall system is also more robust as it can detect circular dependencies, conflicts and missing functionalities.
* Improvements of the static scheduling for the telemetry messages to spread the link loading over time and avoid buffer saturation and delays. The same approach can be applied to the scheduling of some of the functions calls inside the different tasks of the autopilot, linked to the new code organization mentioned in point 1.
Performance analysis have been carried out. Some results are presented in the following figures. The first two are the different tasks and timing for the legacy architecture for fixedwing and rotorcraft firmwares. It can be seen that the group of tasks are not harmonized and don’t reflect the actual functional blocks of the system. If most of the timing are respected, the ‘event’ polling function that is expected to run at 10kHz is a bit slower than expected.

Revision as of 16:07, 7 March 2022

Paparazzi UAV

ID WP3-13
Contributor ENAC
Levels Platform
Require C2LINK or Flight Plan definition
Provide Modular and flexible UAV autopilot system for testing and operation
Input

Depending on the flight mode:

  • flight plan definition,
  • mission sequence from datalink,
  • position/speed from datalink,
  • low-level remote control
Output Stabilized aircraft (fixedwing, multicopter, hybrid) on a given trajectory or attitude
C4D building block Flight control, Actuation, + parts of Perception and Communication
TRL 4 to 6

Current status

Paparazzi is a complete system of open source hardware and software for Unmanned Aircraft Systems (UAS), including both the airborne autopilot as well as complete ground station mission planning and monitoring software utilizing a bi-directional datalink for telemetry and control. Paparazzi has been created at ENAC in 2003, and is now supported by other institutes such as MAVLAB of the TU-Delft, individual developers, and some private UAV companies from several countries.

The Paparazzi system was initially designed for robust small fixed-wing aircrafts in 2003, but it now supports several other configurations and concepts such as high-aspect ratio gliders, multi-rotors, transitioning vehicles, and rovers. The communication between the software blocks running on the ground and the airborne autopilot is based on the PPRZLINK library, which provides API in C/C++, Python and OCaml.

See the Wiki and the Github repository.

Contribution and Improvements

Several improvements are intended in the scope of C4D projects.

  • Improvement of the internal airborne code organization: a detailed analysis of the timing between the elements of the embedded software have led to a new definition of the internal tasks’ groups. A particular attention has been given to the timing between the tasks and functions to provide a stable and reliable end-to-end execution time.
  • Explicit definition of the dependencies between modules, both at functional and logic level: it allows to simplify the configuration of an aircraft (only relevant high-level modules needs to be specified), the dependency solver will include all the required modules. The overall system is also more robust as it can detect circular dependencies, conflicts and missing functionalities.
  • Improvements of the static scheduling for the telemetry messages to spread the link loading over time and avoid buffer saturation and delays. The same approach can be applied to the scheduling of some of the functions calls inside the different tasks of the autopilot, linked to the new code organization mentioned in point 1.

Performance analysis have been carried out. Some results are presented in the following figures. The first two are the different tasks and timing for the legacy architecture for fixedwing and rotorcraft firmwares. It can be seen that the group of tasks are not harmonized and don’t reflect the actual functional blocks of the system. If most of the timing are respected, the ‘event’ polling function that is expected to run at 10kHz is a bit slower than expected.