Difference between revisions of "Overview"

From PaparazziUAV
Jump to navigation Jump to search
 
(26 intermediate revisions by 14 users not shown)
Line 1: Line 1:
[[image:Paparazzi_System_overview.jpg|right|Paparazzi System Overview]]
[[image:Paparazzi_System_overview.jpg|right|Paparazzi System Overview]]
Paparazzi is a complete system of hardware and software for autonomous aircraft as well as complete ground station mission planning and monitoring software utilizing a bi-directional datalink for telemetry and control.
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.


== System Architecture ==


The following figure show the main agents of the system: one (or several) aircraft and the distributed ground architecture (usually distributed on a single computer):
== Aircraft ==


[[Image:Pprz_communication_agents.gif]]
Paparazzi was originally designed for use with fixed-wing aircraft, but has since been expanded to include rotorcraft and work is underway to properly support hybrid aircraft. The hardware required for each type of airframe is essentially the same, and software uses many of the same elements with some parts interchanged. For example, fixed-wing stabilization control loop requirements are different than rotorcraft, while a datalink driver is essentially identical.


The UAV (in blue) is navigating autonomously and is monitored and controlled from the ground (in brown). The [[#Ground_Control_Station|ground control station (GCS)]] provides a graphical user interface with telemetry data received by the ''link agent'' which manages the ground-based radio modem. The ''link agent'' distributes telemetry data across the network (a single computer, a local network or the internet) where it can be used locally or remotely by
=== The Airframe ===
* '''messsage''', a basic optional debugging tool
* '''server''' which logs these messages in a local file and preprocesses them for the GCS.
All of these processes run simultaneously and are easily started thru the ''control panel''.


Your first experiments with the system should be with the simulator where everything runs on your local machine. The configuration is then slightly different:
The Paparazzi airborne system is highly configurable and can be used to autonomously operate almost any airframe. It is currently in use on airframes ranging from 20cm to 4.3m, and 40g to 25kg. In the early days of the project, slow and stable airframes such as the venerable Twinstar and Microjet were favored, but today the system is employed in a wide variety of high performance aircrafts, many with little or no natural stability, and many designed specifically around the Paparazzi system.


[[Image:comm_sitl.gif]]
The Paparazzi software suite by default supports traditional fixed-wing and multicopter airframes. The customizability of the software and support for a variety of hardware results in a flexible system capable of controlling many airframe configurations. In addition, hybrid aircraft development is underway and with some effort, additional systems such as traditional helicopters, gliders, marine and ground vehicles could be added (though are currently not supported by default).


Here the aircarft and its radio link are replaced by the simulator. The optional ''gaia'' agent is there to set some parameters about the environment: the wind, the infrared constrast, the GPS coverage and the time scale reference.
The key components in a Paparazzi UAV are:
* Main [[Autopilots|Autopilot]] Board
* [[Sensors]], including:
** Attitude Sensors
*** [[IMU]], or
*** [[IR]] sensors
** [[GPS]] Receiver
** [[Sensors/Airspeed|Pressure]] sensors
** Others: [[Sensors/Current|current]], sonar, etc.
* [[Modems|Datalink Radio Modem]]
* [[RC_Receivers_and_Radios|RC Receiver]] (safety link)
* Actuators (servos)
* Propulsion System (electric motor(s)/speed control(s) or IC engine(s))
* Batteries
* Payload (example: camera and video transmitter)


In general, some components can be omitted or additional ones added, depending on the system requirements. For example, if no ground station is used (besides an RC transmitter), the datalink radio is not required.


== Aircraft ==
An example overview diagram of a fixed-wing system layout is presented. The classic MicroJet is illustrated here. Different configurations are certainly possible!
{|
{|
|-
|-
| [[image:Paparazzi_Equiped_Aircraft.jpg|Paparazzi Equiped Aircraft]]
| [[image:Paparazzi_Equiped_Aircraft.jpg|Paparazzi Equipped Fixed-wing Aircraft]]
|
|
* '''A'''utopilot Control Board
* '''A'''utopilot Control Board
Line 29: Line 40:
* '''D'''atalink Radio-Modem & Antenna
* '''D'''atalink Radio-Modem & Antenna
* '''G'''PS Receiver
* '''G'''PS Receiver
* '''I'''R Sensor Board
* '''I'''R Sensor Board (if no IMU)
* '''M'''otor & Controller
* '''M'''otor & Controller
* '''R'''C Receiver & Antenna
* '''R'''C Receiver & Antenna
* '''S'''ervos
* '''S'''ervos
* '''P'''ayload = Camera & Video Transmitter
* '''P'''ayload (Example: Camera & Video Transmitter)
|}
|}


=== The Airframe ===
The [[Gallery|User's Gallery]] and [[Booz/UserList|Booz User List]] show some of the many Paparazzi aircraft.
 
=== Airborne Electronics ===
 
==== [[Autopilots|Controller Board]] ====
 
Over the years, a large number of autopilot main boards have been designed and tested for use as part of the Paparazzi system. Historically, Atmel AVR MCUs were used, though this transitioned to Philips/NXP ARM7 LPC21xx microcontrollers. More recently, support for the STMicroelectronics STM32Fxxx series of microcontrollers has been introduced. These boards include one or two microcontrollers and the required connectors to handle the servos, motor controllers, sensors, RC receiver, radio modem, and a variety of payloads.
 
All of the hardware design files are available under the GPL and/or CC-BY-SA licences in the [https://github.com/paparazzi/paparazzi-hardware hardware file repository].
 
Each control board was designed to meet some specific application. As such, most boards (even old designs) are still actively used. The software side is maintained to support all of the different hardware (exception being obsolete AVR-based boards). Some boards have onboard sensors for tighter integration while others separate all sensors from the main board to help with challenges mounting equipment and overcoming EMI, RFI and/or mechanical vibration issues.
 
Work has also been completed in integrating Linux-based single board computers such as the Gumstix product line. These devices provide the computing power required for very advanced aircraft control schemes or payloads.
 
More details on the controller boards are available on the [[Autopilots]] page.
 
==== [[Sensors]] ====
 
Paparazzi autopilots can interface with virtually any type of sensor. Many are supported by default, and adding support for new sensors is relatively straightforward given the software framework.
 
Again, any Paparazzi-designed hardware sources are available under the GPL and/or CC-BY-SA licences in the [https://github.com/paparazzi/paparazzi-hardware hardware file repository].
 
===== Attitude =====
 
Historically, fixedwing aircraft used a set of 6 orthogonal infrared temperature sensors to estimate the orientation of the aircraft relative to the warm earth and cold sky.  The IR system provides a robust and absolute attitude estimate that is immune to vibration and disorienting launches, wind gusts, or stalls. More recently, full inertial measurement solutions have been integrated into the fixedwing systems. Paparazzi also uses conventional inertial systems on rotorcraft. There is software sources for a wide variety of inertial systems, including inexpensive analog accelerometers and gyroscopes, small paparazzi-targeted purpose-built IMUs, or commercially available AHRS solutions.
 
Some autopilots have an IMU integrated on board while others use an external IMU. All autopilot main boards support both inertial and IR attitude sensing solutions.
 
See the [[IMU]] page and the [[IR]] page for more details.
 
===== [[GPS]] =====
 
Generally, a standard GPS receiver from [http://www.u-blox.com/ u-blox] is used, either as an external stand-alone unit , or as a fully integrated package, like in the [[Tiny]] series of autopilot. This brand of GPS receiver is used because of its high performance and very efficient binary protocol. While more expensive than some other GPS units, the tighter integration, lower parsing overhead and generally better quality data makes it more advantageous. Support is also available for MediaTek MT3329 chipsets with DIYDrones firmware. In addition, limited or experimental support is available for SkyTraq binary and traditional NMEA sentence GPS data.
 
GPS is required for UAV localization. It is used in the autonomous navigation stages of flight control to enable waypoint navigation, as well as to supplement Attitude Heading and Reference System (AHRS) state estimates (especially in fixedwing aircraft).
 
More details are available on the [[GPS]] page.
 
===== [[Sensors|Other Sensors]] =====
 
A wide variety of other sensors may be useful onboard a UAV, either as part of flight control or just for measurement. Some examples of currently supported sensor types include:
* differential pressure (airspeed)
* barometric pressure (altitude)
* sonar (altitude)
* current (energy consumption)
* temperature and humidity (meteorological measurements)
 
==== Communications ====
 
Airborne hardware also includes communications devices: Radio Modem (Datalink) & RC Receiver (Safety Link).
 
===== Telemetry and Datalink =====
 
Any wireless device providing a serial link can be used for the telemetry and the telecontrol (Datalink). Historically, even audio-channel based telemetry has been used. Bi-directional communication is generally recommended, but not required in very special applications. The most common datalink device is the venerable XBee series of radio modem. Other systems include powerful long range radios such as the Digi 9XTend modules, cellular network communications or satellite communications with Iridium satellite modems.
 
The telemetry part of the link (from aircraft to ground) is used to obtain status information about the UAV to aid an operator and monitor mission progress, as well as provide some payload data. The datalink or telecontrol part of the link (from ground to aircraft) is used to send commands to the aircraft and interact with a payload. Example: telemetry provides the current location of the aircraft with can be viewed on the GCS map in real time, while the datalink allows a user to move a waypoint on the ground to modify the path the aircraft will follow in real time.
 
More details on communications hardware are available on the [[Modems]] page.
 
===== Safety Link =====


The Paparazzi airborne system is highly configurable and can be used to fly autonomously almost any airframe. It has already been used for airframes ranging from 30cm to 1.4m, 1.4kg. In the early days of the project, only easy to fly airframes of the shelf were favoured. Today, the Paparazzi autopilot flies at least half a dozen  of more or less customized aircraft.
A traditional radio control transmitter and receiver pair is used to provide a manual control option for the UAV. The airborne hardware and software support the connection to a standard (patched) radio-control receiver. The autopilot reads output from the R/C receiver onboard the aircraft and decides what control mode is desired. When in manual mode, a safety pilot on the ground may use the R/C transmitter to control the aircraft. In the case of rotorcraft, some level of computer control is usually necessary to maintain stable flight, even under "manual" control. The Paparazzi manual bypass or "Fly-by-Wire" system has been finely tuned over many years and provides a reliable method of providing override control even though the autopilot always remains inline between R/C receiver and actuators.


The choice of the right airframe is constrained by many parameters (size, payload weight, easiness to build or to launch, cost, ...) but not by the autopilot itself.
While this link is not required for actual autonomous flights, it may help during the tuning of a new aircraft and is usually considered as an important safety control redundancy.


=== Airborne Electronics ===
Paparazzi can support almost all types of R/C system.


===== Controller Board =====
Further information can be found on the [[RC_Receivers_and_Radios]] page.


[[image:tiny_proto1_top_small.jpg|frame|Tiny Controller Board]]
==== Example Setups and Tutorials ====
Several controller boards have been designed to run the Paparazzi autopilot software, using either Atmel AVR or Philips ARM7 LPC micro-controllers. These boards include one or two micro-controllers and the required connectors to handle the
servos, motor controllers, sensors, RC receiver, radio modem, and a variety of payloads.  All the schematics and PCBs files are [http://cvs.savannah.nongnu.org/viewcvs/paparazzi3/hw/?root=paparazzi available] under the GPL licence. There are currently no vendors offering PCB kits or assembled controller boards.


More details on the controller boards are available on the [[Hardware|Hardware Pages]].
There is a tiny bit in the [[Tutorials]] category. <br/>
<br style="clear:both;"/>


===== Sensors =====
Look at the [[Getting_Started]], wiki pages and [http://lists.paparazziuav.org/| mailing list]. This will solve most questions if you are already a bit familiar with electronics / microcontroller and R/C models.


[[image:ir_sensor_bot_small.jpg|frame|2 Axis IR Sensors Board]]
==== Getting Hardware ====
Airborne hardware includes sensors like infrared, GPS & Gyroscope.
A standard GPS receiver (from u-blox) is used, packages as a module or soldered on the board itself and Gyroscope and infrared sensors boards are easy to assemble.


More details on the sensors are available on the [[Hardware|Hardware Pages]].
Because the Paparazzi project is open source, anyone can manufacture their own hardware. Alternatively, if this isn't really an option due to time or expertise, various vendors offer Paparazzi hardware or other useful products.
<br style="clear:both;"/>
===== Communications =====


[[image:ac4868_transceiver.jpg|frame|Aerocomm AC4868 Radio-Modem]]
Please see the [[Get_Hardware]] page for details.
Airborne hardware also includes communications devices : Radio Modem (Datalink) & RC Receiver (Safety Link).
Any wireless device providing a serial link can be used for the telemetry and the telecontrol (Datalink).  


More details on communications hardware are available on the [[Hardware|Hardware Pages]].
<br style="clear:both;"/>
=== Airborne Software ===
=== Airborne Software ===


The Paparazzi autopilot provides the following features:
<div id="buildworkflow"></div>
* RC receiver (PPM signal) decoding
[[Image:Pprz_build_workflow.png|thumb|600px|Paparazzi Airborne Software Build Process]]
* Servos and motor controller (PPM signal) control
 
* Manual control with the RC
The airborne portion of the software runs on the main autopilot control board.
 
The Paparazzi autopilot provides by default the following features:
 
==== Fixed-Wing ====
* Manual control with the RC Transmitter
* RC receiver (PPM signal or Spektrum) decoding
* Servos and motor controller (PWM signal) control
* Control with augmented stability (named '''AUTO1''')
* Control with augmented stability (named '''AUTO1''')
* Autonomous navigation (named '''AUTO2''') in 3D, including
* Autonomous navigation (named '''AUTO2''') in 3D, including
Line 80: Line 146:
** Segment and circle navigation
** Segment and circle navigation
** Altitude hold, glide following
** Altitude hold, glide following
** High level flight plan language execution (sequence, loops, goto, ...)
** High level flight plan language execution (takeoff, landing, sequence, loops, surveys, goto, etc.)
* Telemetry to the ground station
** Advanced failsafe configurations (geo-fencing, lost link behaviour, etc.)
* Telecontrol (datalink) from the ground station (navigation control, waypoint modifications, tuning)
* Telemetry to the ground station (sensor data, navigation data, status information, etc.)
* Telecontrol (datalink) from the ground station (navigation control, waypoint modifications, tuning, etc.)
 
New features can be added by only changing a configuration setting
 
==== Rotorcraft ====
 
Description coming soon!
*
 
==== Configuration ====
 
The autopilot code is written in C and features a level of hardware abstraction. Paparazzi uses code generation to allow for easy configuration through XML files. This build process is [[#buildworkflow|illustrated here]]. The primary configuration files are the:
* [[Airframe_Configuration|Airframe XML File]]
** defines all autopilot parameters, including hardware configurations and control loop default set values
* [[Flight_Plans|Flight Plan XML File]]
** defines autonomous flight behaviors and high level fail-safes
In addition, the following files are also used (either default or modified):
* [[Radio_Control|Radio XML File]]
** describes valid radio transmitter behavior used under manual control
* [[Telemetry|Telemetry XML File]]
** describes what messages are sent and at which rate a message is send
* [[Settings|Settings XML Files]]
** describes the available and valid settings for various autopilot parameters as seen in the GCS used for e.g. inflight tuning
 
Code is segregated into two processes respectively handling the ''fly by wire'' (manual control) and the ''autopilot'' itself (stabilization and navigation). Usually, rotorcraft do not use a direct manual control mode as some level of computer-aided stabilization is often needed to maintain stable flight. In addition, onboard code is split between ''periodic tasks'' and ''event tasks''. Periodic tasks are scheduled time sensitive tasks executed at specific periodic intervals. Examples include navigation actions, control loops and periodic telemetry messages. Event tasks are carried out in response to something. For example, receiving new GPS data or a datalink message. The fly by wire process is always given priority.


The autopilot code is written in C while all the configuration code is translated from XML files at compile time.
== Ground Control Station ([[GCS]]) ==
Code is segregated into two processes respectively handling the ''fly by wire'' (manual control) and the ''autopilot'' itself (stabilization and navigation). These processes are segregated on two-processor controllers such as the [[Classix|Classix]].


== Ground Control Station (GCS) ==
The ground control station is where an operator interacts with an Unmanned Aircraft System. It generally consists of several parts, usually providing feedback about UAV activity, allowing command and control of the aircraft and providing a method of override control for the system.


=== Ground Computer ===
=== Ground Computer ===


The software is developped to be run on a i386 architecture with the [http://www.debian.org Debian GNU/linux] operating system. However a Live CD including all the software is provided: it should be able to boot any standard laptop.
The software suite was developed to be run on a i386 architecture based on the [http://www.debian.org Debian GNU/linux] operating system. Currently, Ubuntu is a popular and well supported choice for Paparazzi, while Mac OS X is also supported. Selection of a computer will vary based on application, but a small notebook easy to take to the flying field with good battery life is typical.
 
For more information on operating system options, please visit the [[Installation]] page.


=== Ground Software ===
=== Ground Software ===


The software mainly provides
Just as important as the software running onboard the main autopilot board in the air is the corresponding software on the GCS, providing the human interface for configuration, monitoring and control of the UAS.
* compiling tools to produce the airborne code from the configuration;
 
* a GUI to control and interact with the UAV(s) during flight;
The Paparazzi software suite is fully featured with solid core functionality, easy customization and flexible extensibility. It supports all types of airframes, as well as multiple UAVs.
* a basic simulator to ease the development of flight plans.
 
The software suite mainly provides
* compilation tools to produce the airborne software from the configurations and source code
* a GUI to control and interact with the UAV(s) during flight as well as mission planning and simulation
* a basic simulator to ease the development of flight plans and verify some airborne code behaviour
* a data logging system with plot-based viewer for real-time and post-flight analysis
* a number of utilities for communicating with the UAV and other agents
* a number of tools for calibration, etc.
* a control panel GUI for configuration and program management
* an easy method of extending functionality with the Ivy Bus
 
=== Groundside Datalink ===
 
Paparazzi offers several possibilities to supervise the UAV flight from the ground. The default one uses a bidirectionnal wireless modem which supports both telemetry (downlink) and telecontrol (uplink), as described above in the [[#Telemetry_and_Datalink|Airborne Telemetry and Datalink]] section. Thanks to this datalink, flight parameters are available in real time and full control of the navigation and tuning of one or several aircraft is possible from the ground station.
 
The ground side of the link usually consists of a matching radio modem, like an XBee, connected to the ground station computer over USB or serial port.
 
=== Groundside Safety Link ===
 
The ground side of the safety link usually consists of a radio control transmitter (and safety pilot). It is used to provide manual control of the aircraft, as described above in the [[#Safety_Link|Airborne Safety Link]] section.
 
== System Architecture ==
 
The following figure shows the main agents (processes or programs), of the system: one (or several) aircraft and the distributed ground architecture (usually distributed on a single computer):
 
[[Image:Pprz_communication_agents.gif]]
 
The UAV (in blue) is navigating autonomously and is monitored and controlled from the ground (in brown). The [[GCS|ground control station (GCS)]], or '''gcs''' agent, provides a graphical user interface with telemetry data received by the '''link''' agent which manages the ground-based radio modem. The '''link''' agent distributes telemetry data across the network (a single computer, a local network or the internet) where it can be used locally or remotely by the:
* '''server''' - an agent that logs, distributes, and preprocesses these messages for the [[GCS]] and other agents
* '''messages''' - a real-time numeric display of all telemetry data
* A number of other useful agents, including:
** a GCS-based flight plan editor to modify waypoints
** a UAV [[Simulation|simulator]] to test flight plans and code modifications
** a [[RTPlotter|real-time plotter]] for graphical telemetry data visualization
** a [[Plotter|log plotter]] for graphical telemetry visualization after a flight
 
All of these processes run simultaneously and each module is independently launched and can be configured via the [[Paparazzi_Center|'''Paparazzi Center''']], where further detail can be found.
 
First experiments with the system should be with the [[Simulation|'''simulator''']] where everything runs on a local machine. The configuration is then slightly different:


=== Datalink ===
[[Image:comm_sitl.gif]]


Paparazzi offers several possibilities to supervise the UAV flight from the ground. The default one uses a bidirectionnal wireless modem which supports both telemetry (downlink) and telecontrol (uplink). Thanks to this datalink, flight parameters are available in real time and full control of the navigation of one or several aircraft is possible on the ground station.
Here the aircraft and its radio link are replaced by the [[Simulation|'''simulator''']].  


=== Safety Link ===
An helpful GUI tool for Gaia [[Simulation#Change_the_environment|Environment Simulator agent, '''Gaia''']] is available to set your environmental parameters such as:
* Windspeed,
* Wind direction
* GPS failure
* Don't want to wait to long for full complex flightplan? ... one can even speed up simulation time till a max of 10x


The airborne hardware and software support the connection to a standard (patched) radio-control receiver. While this link is not required for actual autonomous flights, it may help during the tuning of a new aircraft and is usually considered as an important safety control redundancy.
Because of the modular nature of the Paparazzi software suite, custom agents enhancing functionality are (relatively) easy to create and integrate with existing software. Some examples include:
* a [[WeatherStationInterface|weather station interface]]
* an external [[GPSd_position|gps position]] display
* a [[Input2Ivy|joystick interface]] for controlling aircraft or payloads from the GCS


== Payloads ==
== Payloads ==


Paparazzi has not been designed with a specific payload in mind. However the airborne control board offers several connectors to control extra servos (to point a [:Overview/PayloadUseCases#camera: video camera]), to connect digital devices (e.g. to switch on lights (for night flights) or trigger a digital camera) or to exploit a sensor with an ADC or a serial link. The associated required sofware can be easyly integrated in the autopilot open Paparazzi code. The Classix Paparazzi control board model can also be connected to a [:Overview/PayloadUseCases#gumstix: generic application board].
Paparazzi is designed to interface with a wide variety of payloads. The airborne board can control many servos for autonomous and/or manual [[Pan_Tilt_Camera|Pan/Tilt camera systems]] or other mechanical payloads, SPI, I<sup>2</sup>C, and GPIO connections are available to connect digital devices (i.e. lights or digital camera shutter), and analog inputs are available to interface with just about any sensor imaginable. The associated software is easily integrated into the open-source code. Some boards can also be connected to a [http://www.gumstix.com Gumstix Computer] for highly sophisticated payload software applications, as described in [[OMAP|OMAP Integration]].


== Disclaimers ==
== Disclaimers ==
Line 116: Line 253:
It should be understood that smooth, reliable autonomous flight is a great feat and will require significant time and effort to achieve, even with a highly evolved open system like Paparazzi. The time required will vary based on experience, aircraft, and luck. From experience however, users can expect to spend a similar amount of time learning and configuring Paparazzi as they may with any of the commercially available systems.
It should be understood that smooth, reliable autonomous flight is a great feat and will require significant time and effort to achieve, even with a highly evolved open system like Paparazzi. The time required will vary based on experience, aircraft, and luck. From experience however, users can expect to spend a similar amount of time learning and configuring Paparazzi as they may with any of the commercially available systems.


Linux itself can pose quite a challenge to install, configure, and learn. To help ease the transition for those not already running Linux, the LiveCD option is available to help get you started. The LiveCD allows the user to save all configuration files as well as any user-modified source code on a pen drive or as a compressed file on your hard drive without affecting your existing OS.  We strongly urge new users to [[Contact|Contact]] someone from the Paparazzi team before beginning any hardware invenstment as we can help you get the most out of the system.
Linux itself can pose quite a challenge to install, configure, and learn.  We strongly urge new users to [[Contact|Contact]] someone from the Paparazzi team before beginning any hardware investment as we can help you get the most out of the system.
 
The Paparazzi software and hardware are distributed without any guarantee, in particular they are not certified by any national or international authorities. Before flying, please refer to your country national aviation regulation for Unmanned Aerial Systems, or the one of the country you intend to overfly.
 
[[Category:User_Documentation]]

Latest revision as of 13:22, 22 January 2018

Paparazzi System Overview

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.


Aircraft

Paparazzi was originally designed for use with fixed-wing aircraft, but has since been expanded to include rotorcraft and work is underway to properly support hybrid aircraft. The hardware required for each type of airframe is essentially the same, and software uses many of the same elements with some parts interchanged. For example, fixed-wing stabilization control loop requirements are different than rotorcraft, while a datalink driver is essentially identical.

The Airframe

The Paparazzi airborne system is highly configurable and can be used to autonomously operate almost any airframe. It is currently in use on airframes ranging from 20cm to 4.3m, and 40g to 25kg. In the early days of the project, slow and stable airframes such as the venerable Twinstar and Microjet were favored, but today the system is employed in a wide variety of high performance aircrafts, many with little or no natural stability, and many designed specifically around the Paparazzi system.

The Paparazzi software suite by default supports traditional fixed-wing and multicopter airframes. The customizability of the software and support for a variety of hardware results in a flexible system capable of controlling many airframe configurations. In addition, hybrid aircraft development is underway and with some effort, additional systems such as traditional helicopters, gliders, marine and ground vehicles could be added (though are currently not supported by default).

The key components in a Paparazzi UAV are:

In general, some components can be omitted or additional ones added, depending on the system requirements. For example, if no ground station is used (besides an RC transmitter), the datalink radio is not required.

An example overview diagram of a fixed-wing system layout is presented. The classic MicroJet is illustrated here. Different configurations are certainly possible!

Paparazzi Equipped Fixed-wing Aircraft
  • Autopilot Control Board
  • Battery
  • Datalink Radio-Modem & Antenna
  • GPS Receiver
  • IR Sensor Board (if no IMU)
  • Motor & Controller
  • RC Receiver & Antenna
  • Servos
  • Payload (Example: Camera & Video Transmitter)

The User's Gallery and Booz User List show some of the many Paparazzi aircraft.

Airborne Electronics

Controller Board

Over the years, a large number of autopilot main boards have been designed and tested for use as part of the Paparazzi system. Historically, Atmel AVR MCUs were used, though this transitioned to Philips/NXP ARM7 LPC21xx microcontrollers. More recently, support for the STMicroelectronics STM32Fxxx series of microcontrollers has been introduced. These boards include one or two microcontrollers and the required connectors to handle the servos, motor controllers, sensors, RC receiver, radio modem, and a variety of payloads.

All of the hardware design files are available under the GPL and/or CC-BY-SA licences in the hardware file repository.

Each control board was designed to meet some specific application. As such, most boards (even old designs) are still actively used. The software side is maintained to support all of the different hardware (exception being obsolete AVR-based boards). Some boards have onboard sensors for tighter integration while others separate all sensors from the main board to help with challenges mounting equipment and overcoming EMI, RFI and/or mechanical vibration issues.

Work has also been completed in integrating Linux-based single board computers such as the Gumstix product line. These devices provide the computing power required for very advanced aircraft control schemes or payloads.

More details on the controller boards are available on the Autopilots page.

Sensors

Paparazzi autopilots can interface with virtually any type of sensor. Many are supported by default, and adding support for new sensors is relatively straightforward given the software framework.

Again, any Paparazzi-designed hardware sources are available under the GPL and/or CC-BY-SA licences in the hardware file repository.

Attitude

Historically, fixedwing aircraft used a set of 6 orthogonal infrared temperature sensors to estimate the orientation of the aircraft relative to the warm earth and cold sky. The IR system provides a robust and absolute attitude estimate that is immune to vibration and disorienting launches, wind gusts, or stalls. More recently, full inertial measurement solutions have been integrated into the fixedwing systems. Paparazzi also uses conventional inertial systems on rotorcraft. There is software sources for a wide variety of inertial systems, including inexpensive analog accelerometers and gyroscopes, small paparazzi-targeted purpose-built IMUs, or commercially available AHRS solutions.

Some autopilots have an IMU integrated on board while others use an external IMU. All autopilot main boards support both inertial and IR attitude sensing solutions.

See the IMU page and the IR page for more details.

GPS

Generally, a standard GPS receiver from u-blox is used, either as an external stand-alone unit , or as a fully integrated package, like in the Tiny series of autopilot. This brand of GPS receiver is used because of its high performance and very efficient binary protocol. While more expensive than some other GPS units, the tighter integration, lower parsing overhead and generally better quality data makes it more advantageous. Support is also available for MediaTek MT3329 chipsets with DIYDrones firmware. In addition, limited or experimental support is available for SkyTraq binary and traditional NMEA sentence GPS data.

GPS is required for UAV localization. It is used in the autonomous navigation stages of flight control to enable waypoint navigation, as well as to supplement Attitude Heading and Reference System (AHRS) state estimates (especially in fixedwing aircraft).

More details are available on the GPS page.

Other Sensors

A wide variety of other sensors may be useful onboard a UAV, either as part of flight control or just for measurement. Some examples of currently supported sensor types include:

  • differential pressure (airspeed)
  • barometric pressure (altitude)
  • sonar (altitude)
  • current (energy consumption)
  • temperature and humidity (meteorological measurements)

Communications

Airborne hardware also includes communications devices: Radio Modem (Datalink) & RC Receiver (Safety Link).

Telemetry and Datalink

Any wireless device providing a serial link can be used for the telemetry and the telecontrol (Datalink). Historically, even audio-channel based telemetry has been used. Bi-directional communication is generally recommended, but not required in very special applications. The most common datalink device is the venerable XBee series of radio modem. Other systems include powerful long range radios such as the Digi 9XTend modules, cellular network communications or satellite communications with Iridium satellite modems.

The telemetry part of the link (from aircraft to ground) is used to obtain status information about the UAV to aid an operator and monitor mission progress, as well as provide some payload data. The datalink or telecontrol part of the link (from ground to aircraft) is used to send commands to the aircraft and interact with a payload. Example: telemetry provides the current location of the aircraft with can be viewed on the GCS map in real time, while the datalink allows a user to move a waypoint on the ground to modify the path the aircraft will follow in real time.

More details on communications hardware are available on the Modems page.

Safety Link

A traditional radio control transmitter and receiver pair is used to provide a manual control option for the UAV. The airborne hardware and software support the connection to a standard (patched) radio-control receiver. The autopilot reads output from the R/C receiver onboard the aircraft and decides what control mode is desired. When in manual mode, a safety pilot on the ground may use the R/C transmitter to control the aircraft. In the case of rotorcraft, some level of computer control is usually necessary to maintain stable flight, even under "manual" control. The Paparazzi manual bypass or "Fly-by-Wire" system has been finely tuned over many years and provides a reliable method of providing override control even though the autopilot always remains inline between R/C receiver and actuators.

While this link is not required for actual autonomous flights, it may help during the tuning of a new aircraft and is usually considered as an important safety control redundancy.

Paparazzi can support almost all types of R/C system.

Further information can be found on the RC_Receivers_and_Radios page.

Example Setups and Tutorials

There is a tiny bit in the Tutorials category.

Look at the Getting_Started, wiki pages and mailing list. This will solve most questions if you are already a bit familiar with electronics / microcontroller and R/C models.

Getting Hardware

Because the Paparazzi project is open source, anyone can manufacture their own hardware. Alternatively, if this isn't really an option due to time or expertise, various vendors offer Paparazzi hardware or other useful products.

Please see the Get_Hardware page for details.

Airborne Software

Paparazzi Airborne Software Build Process

The airborne portion of the software runs on the main autopilot control board.

The Paparazzi autopilot provides by default the following features:

Fixed-Wing

  • Manual control with the RC Transmitter
  • RC receiver (PPM signal or Spektrum) decoding
  • Servos and motor controller (PWM signal) control
  • Control with augmented stability (named AUTO1)
  • Autonomous navigation (named AUTO2) in 3D, including
    • Waypoint navigation
    • Segment and circle navigation
    • Altitude hold, glide following
    • High level flight plan language execution (takeoff, landing, sequence, loops, surveys, goto, etc.)
    • Advanced failsafe configurations (geo-fencing, lost link behaviour, etc.)
  • Telemetry to the ground station (sensor data, navigation data, status information, etc.)
  • Telecontrol (datalink) from the ground station (navigation control, waypoint modifications, tuning, etc.)

New features can be added by only changing a configuration setting

Rotorcraft

Description coming soon!

Configuration

The autopilot code is written in C and features a level of hardware abstraction. Paparazzi uses code generation to allow for easy configuration through XML files. This build process is illustrated here. The primary configuration files are the:

  • Airframe XML File
    • defines all autopilot parameters, including hardware configurations and control loop default set values
  • Flight Plan XML File
    • defines autonomous flight behaviors and high level fail-safes

In addition, the following files are also used (either default or modified):

  • Radio XML File
    • describes valid radio transmitter behavior used under manual control
  • Telemetry XML File
    • describes what messages are sent and at which rate a message is send
  • Settings XML Files
    • describes the available and valid settings for various autopilot parameters as seen in the GCS used for e.g. inflight tuning

Code is segregated into two processes respectively handling the fly by wire (manual control) and the autopilot itself (stabilization and navigation). Usually, rotorcraft do not use a direct manual control mode as some level of computer-aided stabilization is often needed to maintain stable flight. In addition, onboard code is split between periodic tasks and event tasks. Periodic tasks are scheduled time sensitive tasks executed at specific periodic intervals. Examples include navigation actions, control loops and periodic telemetry messages. Event tasks are carried out in response to something. For example, receiving new GPS data or a datalink message. The fly by wire process is always given priority.

Ground Control Station (GCS)

The ground control station is where an operator interacts with an Unmanned Aircraft System. It generally consists of several parts, usually providing feedback about UAV activity, allowing command and control of the aircraft and providing a method of override control for the system.

Ground Computer

The software suite was developed to be run on a i386 architecture based on the Debian GNU/linux operating system. Currently, Ubuntu is a popular and well supported choice for Paparazzi, while Mac OS X is also supported. Selection of a computer will vary based on application, but a small notebook easy to take to the flying field with good battery life is typical.

For more information on operating system options, please visit the Installation page.

Ground Software

Just as important as the software running onboard the main autopilot board in the air is the corresponding software on the GCS, providing the human interface for configuration, monitoring and control of the UAS.

The Paparazzi software suite is fully featured with solid core functionality, easy customization and flexible extensibility. It supports all types of airframes, as well as multiple UAVs.

The software suite mainly provides

  • compilation tools to produce the airborne software from the configurations and source code
  • a GUI to control and interact with the UAV(s) during flight as well as mission planning and simulation
  • a basic simulator to ease the development of flight plans and verify some airborne code behaviour
  • a data logging system with plot-based viewer for real-time and post-flight analysis
  • a number of utilities for communicating with the UAV and other agents
  • a number of tools for calibration, etc.
  • a control panel GUI for configuration and program management
  • an easy method of extending functionality with the Ivy Bus

Groundside Datalink

Paparazzi offers several possibilities to supervise the UAV flight from the ground. The default one uses a bidirectionnal wireless modem which supports both telemetry (downlink) and telecontrol (uplink), as described above in the Airborne Telemetry and Datalink section. Thanks to this datalink, flight parameters are available in real time and full control of the navigation and tuning of one or several aircraft is possible from the ground station.

The ground side of the link usually consists of a matching radio modem, like an XBee, connected to the ground station computer over USB or serial port.

Groundside Safety Link

The ground side of the safety link usually consists of a radio control transmitter (and safety pilot). It is used to provide manual control of the aircraft, as described above in the Airborne Safety Link section.

System Architecture

The following figure shows the main agents (processes or programs), of the system: one (or several) aircraft and the distributed ground architecture (usually distributed on a single computer):

Pprz communication agents.gif

The UAV (in blue) is navigating autonomously and is monitored and controlled from the ground (in brown). The ground control station (GCS), or gcs agent, provides a graphical user interface with telemetry data received by the link agent which manages the ground-based radio modem. The link agent distributes telemetry data across the network (a single computer, a local network or the internet) where it can be used locally or remotely by the:

  • server - an agent that logs, distributes, and preprocesses these messages for the GCS and other agents
  • messages - a real-time numeric display of all telemetry data
  • A number of other useful agents, including:
    • a GCS-based flight plan editor to modify waypoints
    • a UAV simulator to test flight plans and code modifications
    • a real-time plotter for graphical telemetry data visualization
    • a log plotter for graphical telemetry visualization after a flight

All of these processes run simultaneously and each module is independently launched and can be configured via the Paparazzi Center, where further detail can be found.

First experiments with the system should be with the simulator where everything runs on a local machine. The configuration is then slightly different:

Comm sitl.gif

Here the aircraft and its radio link are replaced by the simulator.

An helpful GUI tool for Gaia Environment Simulator agent, Gaia is available to set your environmental parameters such as:

  • Windspeed,
  • Wind direction
  • GPS failure
  • Don't want to wait to long for full complex flightplan? ... one can even speed up simulation time till a max of 10x

Because of the modular nature of the Paparazzi software suite, custom agents enhancing functionality are (relatively) easy to create and integrate with existing software. Some examples include:

Payloads

Paparazzi is designed to interface with a wide variety of payloads. The airborne board can control many servos for autonomous and/or manual Pan/Tilt camera systems or other mechanical payloads, SPI, I2C, and GPIO connections are available to connect digital devices (i.e. lights or digital camera shutter), and analog inputs are available to interface with just about any sensor imaginable. The associated software is easily integrated into the open-source code. Some boards can also be connected to a Gumstix Computer for highly sophisticated payload software applications, as described in OMAP Integration.

Disclaimers

It should be understood that smooth, reliable autonomous flight is a great feat and will require significant time and effort to achieve, even with a highly evolved open system like Paparazzi. The time required will vary based on experience, aircraft, and luck. From experience however, users can expect to spend a similar amount of time learning and configuring Paparazzi as they may with any of the commercially available systems.

Linux itself can pose quite a challenge to install, configure, and learn. We strongly urge new users to Contact someone from the Paparazzi team before beginning any hardware investment as we can help you get the most out of the system.

The Paparazzi software and hardware are distributed without any guarantee, in particular they are not certified by any national or international authorities. Before flying, please refer to your country national aviation regulation for Unmanned Aerial Systems, or the one of the country you intend to overfly.