User:Scdwyer

From PaparazziUAV
Jump to navigation Jump to search

About Me

  • Name: Stephen Dwyer
  • Location: Edmonton, Alberta, Canada
  • Masters student in Mechanical Engineering at University of Alberta
  • Member of the University of Alberta UAS Group
  • Contact: scdwyerATualbertaDOTca

I have very little experience with Paparazzi thus far. I hope to remedy this in the near future, both for fun and (hopefully) as part of my Masters research. I have been following the wiki and mailing list for quite some time though.

I began working with small unmanned aircraft systems with the U of A Aerial Robotics Group, where I was team lead for 2 years, co-team lead for 1 year, and attended 3 AUVSI Student UAS competitions. We used the Micropilot MP2128g in our systems, and I gained valuable experience understanding the difficulty of autonomous system integration.

Current Work

I am working with two other students as part of a larger University of Alberta UAS Group to prepare a small demonstration platform. This UAV platform will be the beginning of an attempt to foster UAS research at our university, and provide an initial starting point for researchers from a variety of disciplines and departments to begin research on unmanned aircraft systems directly, or, more likely, investigate payloads and applications.

This unfortunately is taking most of my time (among other things like being a TA) and limits my personal system development. I am however looking forward to getting my Quadshot Expresso in the coming months!


Scratch Area

Overview

Paparazzi System Overview

Paparazzi is a complete system of 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 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 configured from 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 optional gaia agent is also available to introduce some environmental parameters such as wind, infrared contrast, GPS quality, and time scale reference.

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:

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.

SOME AIRFRAME PICTURES HERE

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:

  • Main Autopilot Board
  • Sensors, including:
    • GPS Receiver
    • Attitude Sensors
      • IMU, or
      • IR sensors
    • Pressure sensors
    • Others: current, sonar, etc.
  • Datalink Radio
  • RC Receiver (safety link)
  • Actuators (servos)
  • Propulsion System (electric motors/speed controls or IC engines)
  • 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.

An example overview diagram of a fixed-wing system layout is presented. The classic FunJet 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 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 100g 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 User's Gallery shows some of the many Paparazzi aircraft.

Airborne Electronics

Controller Board
Tiny Controller Board

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 of the schematics and PCB files are available under the GPL licence.
More details on the controller boards are available on the Hardware Pages.

Sensors
2 Axis IR Sensor Board

Paparazzi autopilots can interface with virtually any type of sensor but the vast majority of applications rely on 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 that may confuse inertial-based autopilots. Paparazzi also uses conventional inertial systems on hovering aircraft such as quadrotors and helicopters with freely available software and hardware sources.

Fixed wing airborne hardware typically includes infrared sensors, GPS & occasionally a gyroscope for roll or pitch rate damping on more agile aircraft. A standard GPS receiver from u-blox is used, either as a stand-alone unit for the Classix or TWOG autopilots, or as a fully integrated package in the Tiny autopilot.

More details on the sensors are available on the Sensors page.

Communications
Aerocomm AC4868 Radio-Modem

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 Modems page.

Example Setup
Sample 2 servo setup

A typical configuration would include two servos (elevon setup), receiver, IR sensors, FTDI or RF Modem for serial communications either wired or wireless. ESC is not shown. NOTE: DO NOT CONNECT POWER WIRE FROM ESC TO TINY. Only connect Ground and Signal for the ESC to the Tiny.

Airborne Software

The Paparazzi autopilot provides the following features:

  • RC receiver (PPM signal) decoding
  • Servos and motor controller (PWM signal) control
  • Manual control with the RC
  • 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 (sequence, loops, goto...)
  • Telemetry to the ground station
  • Telecontrol (datalink) from the ground station (navigation control, waypoint modifications, tuning)

The autopilot code is written in C while all the configuration code is translated from XML files at compile time. 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.

Ground Control Station (GCS)

Ground Computer

The software is developped to be run on a i386 architecture with the Debian GNU/linux operating system. However a Live CD including all the software is provided: it should be able to boot any standard laptop.

Ground Software

The software mainly provides

  • compiling tools to produce the airborne code from the configuration;
  • a GUI to control and interact with the UAV(s) during flight;
  • a basic simulator to ease the development of flight plans.

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). 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.

Safety Link

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.

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. The Classix board can also be connected to a Gumstix Computer for highly sophisticated payload software applications.

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. 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 someone from the Paparazzi team before beginning any hardware investment as we can help you get the most out of the system.



Autopilot Feature Comparison Matrix

A basic feature comparison table is presented to help in the autopilot hardware selection process. Stable well tested and used LPC or more cutting edge STM32 that requires some debugging.

For information regarding architecture and firmware compatibility of various subsystems and modules, please see the appropriate Subsystems overview and Modules List pages.

NOTE: The accuracy of this table may not be 100% correct, the best resource is always hardware and software source files and individual autopilot pages.


Autopilot1 Feature Matrix
Feature Lisa/L v1.1 Lisa/M v2.0 Umarim v1.0 Tiny v2.11 TWOG v1.0 YAPA v2.0
MCU
Part STM32F103RE STM32F105RCT6 LPC2148 LPC2148 LPC2148 LPC2148
Clock 72MHz 72MHz 60MHz 60MHz 60MHz 60MHz
Flash 512kB 256kB 512kB 512kB 512kB 512kB
RAM2 64kB 64kB 32kB & 8kB 32kB & 8kB 32kB & 8kB 32kB & 8kB
Onboard Sensors3
MEMS IMU no aspirin yes no no no
Baro yes yes yes no no no
Diff Pressure yes no no no no no
GPS no no no yes no no
Input/Output4
UART 3 & 1RX 2 & 2RX 2 1 2 2
I2C 2 1 + 15 2 1 1 1
SPI 2 1 1 1 1 1
ADC 3 (12bit) 3 + 2 (12bit)5 0 + 4 (10bit)6 8 (10bit) 8 (10bit) 6 (10bit)
PWM 6 6 + 25 6 8 8 10
PPM Output no no 1 1 1 no
PPM Capture 1 0 + 15 1 1 1 1
GPIO7 ? 1 0 + 46 2 2 1
Onboard LEDs 8 5 2 3 3 3
USB Peripheral Onboard USB JTAG + UART bootloader bootloader bootloader bootloader bootloader
CAN 1 1 no no no no
Other Overo w/ I/O incl. USB Host Aspirin footprint, JTAG header XBee connector, RS232 options
Power Management
Supply Input 6.1V - 18V 5V - 16V 5.5V - 17V 6.1V - 18V 6.1V - 18V 6.1V - 18V
Supply Output 2.25@5V, 2.25A@3.3V, Other 500mA@3.3V, 250mA@5V 1A@3.3V, 1.5A@5V 1A@3.3V, 2.25A@5V 1A@3.3V, 2.25A@5V 2x 1A@3.3V, 2.25A@5V
Software Switch 2 no no 1 1 1
Mechanical
Size ~100mm x ~50mm 34mm x 60mm x 10mm 56mm x 25mm 70.8mm x 40mm 40.2mm x 30.5mm 80.0mm x 40.0mm?
Weight ? 9.9g - 10.8g 9g 24g 8g 23g w/ XBee?
Connector Style Picoblade Picoblade & 0.1" Servo Picoblade Picoblade Picoblade 0.1" Headers
PCB Style 4-layer 4-layer 4-layer 2-layer 2-layer 2-layer
Mounting Holes 4x ?mm 4x 2mm 4x 2mm no no 4x M3
Comments
IMU and Overo Mount Location, Many Features Onboard XBee connector allows clean and easy radio modem integration

Notes:

1. Only the newest revisions of the more commonly used autopilots are listed

2. The extra 8kB of RAM on the LPC2148 shared with the USB DMA

3. The onboard sensors are almost always supplemented with external sensors. For example, TWOG can use an external IMU or IR sensors, and also needs an external GPS.

4. Input/Outputs listed are generally those easily accessible on regular autopilot connectors, customization/hacks can modify available I/O, for example free an extra I2C on Tiny and TWOG

5., 6. Some features use shared resources - denoted by X + Y where Y is shared - and cannot be used simultaneously

5. Lisa/M v2.0 shared resources include: one I2C is shared with 2 PWM outputs, two ADCs are shared with LEDs, one RX only UART is shared with the PPM capture

6. Umarim v1.0 shared resources include: 4 ADCs are shared with 4 GPIOs

7. Usually other unused pins can be used for additional GPIO with some code modifications


Autopilot1 Feature Matrix
Autopilot Board MCU Onboard Sensors ' ' ' Input/Output ' ' ' ' ' ' ' ' ' ' ' Power Management ' ' Mechanical ' ' ' ' Comments
' Part MEMS IMU Baro Diff Pressure GPS UART I2C SPI ADC PWM PPM Output PPM Capture GPIO Onboard LEDs USB Peripheral CAN Other Supply Input Supply Output Software Switch Size Weight Connector Style PCB Style Mounting Holes
Lisa/L v1.0 STM32F1 no yes yes no 3 & 1RX 2 2 3 (12bit) 6 no 1 ? 8 Onboard USB JTAG + UART 1 Overo w/ I/O incl. USB Host 6.1V - 18V 2.25@5V, 2.25A@3.3V, Other 2 ~100mm x ~50mm ? Picoblade 4-layer 4x M3 IMU and Overo Mount Location, Many Features
Lisa/L v1.1 STM32F1 no yes yes no 3 & 1RX 2 2 3 (12bit) 6 no 1 ? 8 Onboard USB JTAG + UART 1 Overo w/ I/O incl. USB Host 6.1V - 18V 2.25@5V, 2.25A@3.3V, Other 2 ~100mm x ~50mm ? Picoblade 4-layer 4x M3 IMU and Overo Mount Location, Many Features
Lisa/M v1.0 STM32F1 Aspirin yes no no 2 & 2RX 1 + 1 1 3 + 2 (12bit) 7 no 0 + 1 2 3 needs mod 1 Aspirin footprint, JTAG header 5V - 16V 500mA@3.3V, 250mA@5V no 33mm x 56mm x 10mm 9.9g - 10.8g Picoblade + 0.1\" Servo 4-layer 4x 2mm USB needs hardware mod to work
Lisa/M v2.0 STM32F1 Aspirin yes no no 2 & 2RX 1 + 1 1 3 + 2 (12bit) 6 + 2 no 0 + 1 1 5 bootloader 1 Aspirin footprint, JTAG header 5V - 16V 500mA@3.3V, 250mA@5V no 34mm x 60mm x 10mm 9.9g - 10.8g Picoblade + 0.1\" Servo 4-layer 4x 2mm
Booz LPC2148 Booz yes no Booz 2? ? ? ? ? ? ? ? ? bootloader no ? ? ? ? ? ? Picoblade ? ? Multi-board design
Umarim v1.0 LPC2148 yes yes no no 2 2 1 0 + 4 (10bit) 6 1 1 0 + 4 2 bootloader no 5.5V - 17V 1A@3.3V, 1.5A@5V no 56mm x 25mm 9g Picoblade 4-layer 4x 2mm
Tiny v0.99 LPC2148 no no no yes 1 1 1 8 (10bit) 6 no 1 no 2 bootloader no Button, audio downlink ? ? 1? ? ? Picoblade ? no Onboard GPS for cleaner integration
Tiny v1.1 LPC2148 no no no yes 1 1 1 8 (10bit) 7 no 1 no ? bootloader no Button ?V - 20V ?A@3.3V, 2A@5V 1? 63mm x 35mm 25g Picoblade 4-layer no Onboard GPS for cleaner integration
Tiny v2.11 LPC2148 no no no yes 1 1 1 8 (10bit) 8 1 1 2 3 bootloader no 6.1V - 18V 1A@3.3V, 2.25A@5V 1 70.8mm x 40mm 24g Picoblade 2-layer no Onboard GPS for cleaner integration
TWOG v1.0 LPC2148 no no no no 2 1 1 8 (10bit) 8 1 1 2 3 bootloader no 6.1V - 18V 1A@3.3V, 2.25A@5V 1 40.2mm x 30.5mm 8g Picoblade 2-layer no Offboard GPS to address interference or special installation
YAPA v1.0 LPC2148 no no no no 2 1 1 5 (10bit) 8 no 1 no 1 bootloader no XBee connector, RS232 options 6.1V - 18V 2x 1A@3.3V, 2.25A@5V 1 80.0mm x 40.0mm 23g w/ XBee 0.1\" Headers 2-layer 4x M3 Onboard XBee connector allows clean and easy radio modem integration
YAPA v2.0 LPC2148 no no no no 2 1 1 6 (10bit) 10 no 1 1 3 bootloader no XBee connector, RS232 options 6.1V - 18V 2x 1A@3.3V, 2.25A@5V 1 80.0mm x 40.0mm? 23g w/ XBee? 0.1\" Headers 2-layer 4x M3 Onboard XBee connector allows clean and easy radio modem integration
Classix LPC2148 x2 no no no no 2 2 2 14 (10bit) 6 ? 2 ? 2 bootloader no Gumstix connector, audio downlink 5V 3.3V, 3.7V for Gumstix no 89mm x 30mm 12g Picoblade ? 4x ?mm Dual MCU development board design
HB v1.0 LPC2148 yes yes yes no 2 2 2 ? ? ? 1 ? ? bootloader no ? ? ? ? ? Picoblade ? ? Multi-board design

Notes:

1. Only the newest revisions of the more commonly used autopilots are listed

2. The extra 8kB of RAM on the LPC2148 shared with the USB DMA

3. The onboard sensors are almost always supplemented with external sensors. For example, TWOG can use an external IMU or IR sensors, and also needs an external GPS.

4. Input/Outputs listed are generally those easily accessible on regular autopilot connectors, customization/hacks can modify available I/O, for example free an extra I2C on Tiny and TWOG

5., 6. Some features use shared resources - denoted by X + Y where Y is shared - and cannot be used simultaneously

5. Lisa/M v2.0 shared resources include: one I2C is shared with 2 PWM outputs, two ADCs are shared with LEDs, one RX only UART is shared with the PPM capture

6. Umarim v1.0 shared resources include: 4 ADCs are shared with 4 GPIOs

7. Usually other unused pins can be used for additional GPIO with some code modifications


MCU Comparison
MCU Clock RAM Flash Used In
LPC21481 60MHz 32kB + 8kB 512kB All Others
STM32F103RE 72MHz 64kB 512kB Lisa/L Series
STM32F105RCT6 72MHz 64kB 256kB Lisa/M Series

Notes:

1. The extra 8kB of RAM on the LPC2148 shared with the USB DMA