From PaparazziUAV
Jump to navigation Jump to search

Is it possible to do XYZ?

Yes, sure! The beauty Paparazzi is that it is fully opensource'ed - Any feature or function you want can be added to the software and even the hardware.

How can I contribute?

See the how to contribute wiki page.

How do I check which Paparazzi Version I'm using

Run ./paparazzi_version from you paparazzi directory.
This simple script will run git describe to find the next reachable tag and print something like v5.1.1_testing-43-ge060371.
The output contains the most recent reachable tag, number of commits since then, SHA1 of that commit and whether the working directory was dirty.
If you have an older version of Paparazzi that does not contain that script you can just run git describe --match "v[0-9].[0-9]*" --dirty --always --long

What equipment and components are suggested

  1. Linux (Debian or Ubuntu) compatible or Apple Macintosh notebook computer, preferably with a very bright screen for outdoor use.
  2. Most any airframe that will accommodate a Paparazzi Autopilot and some extra weight and wiring - brushless motors are strongly suggested. See the User's Gallery for some airframe examples.
  3. One of the Autopilots from one of the Paparazzi vendors or build your own from the downloadable plans/gerbers
  4. If it is not already included with the AP a external IMU
  5. A 2.4 GHz R/C Transmitter and Receiver with a 3-position switch and PPM output for selecting Manual/Stabilized/Auto.
  6. A pair of Modems along with any enclosures and antennas
  7. A USB <-> UART adapter for connecting the modem to your USB port and/or for serial flashing of bootloader code or tunnel access to the GPS receiver
  8. A standard Mini-B and Micro-B USB cable
  9. Lots of very durable wire, crimpers, and molex pins or pre-crimped wire.

Are internal combustion engines supported?

Yes, not relying solely on inertial measurement, the Paparazzi system is very well suited for aircraft with high vibration levels. Care must be taken to prevent oily exhaust residue buildup on the IR sensors and a simple variable must be added to properly address the special idle/kill needs of an IC engine.

Can Paparazzi fly a glider?

Sure. Paparazzi uses throttle and pitch to control climb rate by default. You can fit an airspeed sensor and adjust your airframe configuration to maintain airspeed instead.

Will the autopilot provide enough 5V power for many/large/digital servos as well as a modem, video TX, etc.?

Depends on the Autopilot, compare the maximum output of the AP and the needed power
The Tiny includes a high capacity and high efficiency switching voltage regulator intended to power servos, modems, video systems and other payloads. This regulator should be preferred to power the servos rather than a linear regulator. While linear regulators may be rated for several amps, they require a great deal of cooling and can easily overheat with only a few hundred milliamps of continuous current without cooling. By comparison, the switching regulator included on the Tiny can work continuously at 2A with little or no cooling. Be careful using high power or digital servos consuming a lot of current. If you use four or more of them on your airframe it is recommended to supply them separately. It is important to realize that the servos in any stabilized aircraft will operate continuously. Therefore a power supply that powers the servos reliably in manual flight may easily overheat or produce critical voltage drops in autonomous flight.

Do I need a separate battery or regulator to isolate the autopilot, servos, video, modem, etc. from one another?

The autopilot processor and sensors are powered by a 3.3V regulator and therefore are rather isolated from voltage fluctuations on the battery or 5V bus.

Can I use a Sirf, Trimble, etc. instead of the u-Blox GPS receiver?

Yes, but it would require a tremendous amount of work as some of the navigation code is dependent on some of the UBX messages. NMEA does not provide messages in the desired form and substantial calculation would be required for conversion. Any of the other proprietary protocols would work but you would need to write your own protocol handler. u-Blox (Hobbyking's costs <14€) offers great performance, size, and speed as well as the ability to easily configure the internal Kalman filter parameters to expect significant acceleration in 3-D space - a very important feature.

Does Paparazzi use DGPS, WAAS, EGNOS, or MSAS?

Most modern GPS receivers have the ability to process serial data sent from an external DGPS receiver, but the advent of WAAS/EGNOS has made the early ground-based DGPS transmitters nearly obsolete. The u-Blox GPS receiver supports all common SBAS systems (WAAS, EGNOS, and MSAS), as well as any standard form of external DGPS. It's important to understand that DGPS merely improves the accuracy of the position estimate by subtracting any static error. The only way to improve the precision of the GPS is by improving the antenna or the GPS module itself. See Wikipedia:Accuracy and Precsion for a detailed explanation of these terms.

How does the R/C receiver interface with the autopilot?

Standard hobby R/C transmitters multiplex up to 9 channels of PWM servo data into a single PPM signal which is encoded onto an FM wave for transmission, this signal is then decoded by the RF section of the R/C receiver back into the original PPM signal containing 9 servo position PWM values. This signal is normally then sent to a demultiplexer (i.e. 4017) where it is separated into 9 individual servo signals on 9 individual pins. The Paparazzi autopilot intercepts the signal between the RF section and the demultiplexer and does its own demultiplexing, filtering, and processing before multiplexing the manual or autonomous servo commands back into a single signal and passing them to the 4017 to be distributed to the servos.

Why does Paparazzi tap directly into the R/C receiver instead of using individual servo signals?

By connecting directly to the RF section of the R/C receiver we are able to obtain up to 9 channels of R/C servo data from a small, lightweight inexpensive 4 channel receiver with only 3 wires needed to connect the components. Furthermore, the autopilot then has direct access to the raw R/C signal where it can be filtered, evaluated, and assessed for quality. The autopilot can then alert the user of any loss of R/C signal as well as perform any pre-configured autonomous commands in response to a loss of signal.

Are PCM or 2.4GHz R/C systems compatible with Paparazzi?

Yes. Most good 2.4Ghz receivers can directly output a PPM signal on one servo pin. A general rule of thumb is that if you see any type of demultiplexer on your R/C receiver, you can look up the data sheet for it and likely tap into the input pin with success. Some information on compatible R/C receivers and how to find the PPM signal of your own receiver is given in the RC receiver section.
If that's not possible, you can use the available PPM encoder board, to re-multiplex the servo channels into one PPM signal. This seems to be a common solution.

What R/C transmitters are compatible?

No mixing or programming is done in the transmitter so even the simplest models will suffice but one important requirement is a 3-position switch to select among the three autopilot modes: manual, stabilized only, and fully autonomous. Those handy with electronics can replace a dial with a switch and resistor if needed. The transmitter's PPM values need to be recorded and the channel used to control the autopilot mode must be stated. Some commonly used transmitter configuration files are provided in the conf/radios folder and the syntax of these files is easy to follow for those using other brands or models.

Can a gamepad/joystick be used to control the aircraft through the modem?

Yes, the code to do this was written some time ago though it was not tested in flight due to latency concerns with the primitive Coronis modems used at the time. Any of the modems currently recommended should work well in this manner but the theoretical reliability is still questionable due to the fact that no interrupt or prioritization structure exists for the telemetry data so any manual control inputs would be lumped in with the rest of the data to be lost or delayed as needed.

What do MANUAL/AUTO1/AUTO2 stand for?

Those are the three modes that Paparazzi can operate in. Confer to AutopilotModes for more information.

What Electronic Speed Controllers (ESC) are compatible?

Any controller can be used, the exact PWM value that is sent to the controller for 0-100% throttle is completely configurable in the airframe file so all controllers are compatible and any controller will arm properly with or without the use of an R/C transmitter. Upon each boot, the autopilot immediately sends whatever you have defined as 0% throttle (typically around 1200μs) and maintains that signal until a manual or autonomous command is given. Most modern controllers are "auto calibrating" which is an undesirable feature for R/C pilots and even more so for autonomous systems but can be dealt with. The calibration is done by defining the PWM value at boot to be 0% power and then defining some initial arbitrary mid-range value such as 1500μs to be 100% until a higher value is seen. The net result of this behavior is that the motor is given full power at any command above 50% throttle until 100% throttle has actually been commanded at least once. This is not an issue for planes that routinely take off at 100% throttle but can disrupt the throttle tuning and altitude control on any flights where 100% throttle has never been commanded. Castle Creations Electronic Speed Controllers can be configured for "fixed endpoints" so the ESC does not need to "learn" the endpoints at first takeoff this providing a consistent and predictable throttle response. By default this range 1250-1850μs but can be set at different values where needed.
For quadrocopters a ESc with a very low latency is highly recommended. That can be a cheap standard ESC with a upgraded firmware (which uses I2C as input) or a high quality esc (mocrocopter ESC)

Can traditional throttle stick programming be done on the ESC once connected to the autopilot?

Yes. If the transmitter is on with the throttle at full or whatever is required for your ESC when the autopilot is first booted, the autopilot will immediately see the manual control signal and the throttle position and pass that along to the ESC as the first value, triggering the programming mode.

Does Paparazzi support digital servos?

Of course. Digital servos use exactly the same electrical interface as their analog counterparts, the only difference being in the way they control the motor. Analog servos use a Proportional feedback loop, meaning the voltage sent to the motor is proportional to the difference between the measured and intended position of the arm. Digital servos use a Proportional + Derivative (PD) feedback loop. The derivative term considers the current speed and direction of the servo as well as the speed and direction of the pilot's stick command. The derivative term will increase power to the motor if the servo is moving the wrong direction (providing faster direction changes) and will reduce/reverse power if the servo is near it's desired position but moving too fast (reducing overshoot). The net effect of this is that a digital servo can use a much stronger P term without risk of oscillation and overshoot because the D term is there to intelligently dampen it as needed and boost it whenever it can.
How does the inclusion of a D term make an analog servo become digital? Analog servos use a simple opamp to linearly relate the motor voltage to the difference between the potentiometer reading and PWM signal, whereas digital servos use a microprocessor to analyze the potentiometer position and velocity as well as the current and recent PWM signals to calculate the optimum voltage to send to the motor.
Important: Please be aware that autonomous flight involves continuous movement of all servos. Make sure your power supply is capable of handling this and that your servos are capable of continuous operation without overheating - especially if you use digital servos.

Can I solder wires directly to the autopilot instead of using the molex connectors?

Sure, only for some board it is easier to do than for others. Tiny: All of the molex headers are thru-hole and you can easily solder small gauge wire directly to the pins that protrude from these headers on the back of the board. It's important to note that standard servo wire cannot be soldered reliably in this fashion - you must use only high-grade wire intended for soldering (no vinyl insulation!). Direct soldering is not recommended, but it is possible ofcourse. See the Wiring section for suggested wire types and sources. If you want to go the direct soldering path, be sure to you have excellent soldering skills and use high quality wiring.

What are the paparazzi failsafe features and how do I configure them?

The basic autopilot already has several built-in failsafe features ranging from lowlevel to highlevel and from implied to optional. For more details take a look on the Failsafe page.

Why do I only get a blank (black) GCS

The GCS stays blank until you get telemetry messages (either from the real aircraft or simulated) with the correct MD5 checksum meaning the autopilot has the correct and up to date flightplan/airframe/... programmed in it (in case of an MD5 problem you constantly get a lot of warnings in paparazzi center).
Solution: Probably your telemetry is not set up correctly, this is most likely a XBee configuration issue.Configure the baudrate for your XBee connected to the autopilot and set the baudrate for the link to the one the ground XBee uses (They don't need to be the same). Also make sure your xbee cable is correct, transmit (tx) of xbee goes to receive (rx) on the autopilot and vice versa.

Why do I get a Failure("#of_world:no georef") when trying to load map tiles

You get the georef error because the location is not initialized (probably GCS still blank and no aircraft are present). You can't get map tiles for nowhere...
Solution: Set up your telemetry properly so you get messages from the aircraft OR start a simulation with the appropriate coordinates then load the map tiles.

How do I check if my telemetry is working?

Solution: Launch the link and messages tools in the Paparazzi Center. You should see the the messages coming in (blinking green) in the messages window.
If you get an the error Failure("Error opening modem serial device : fd < 0 (/dev/ttyUSB0)") from link, your modem is either not connected at all, or just available under a different device name. Check if you set the udev rules and if your modem becomes available under the device you set.
You might need to adjust the device and baud-rate of the link according to your setup, e.g. link -d /dev/ttyUSB0 -s 57600
If you're stuck you can make link very verbose by setting the PPRZ_DEBUG environment variable to '*'

Why don't I get a GPS position?

Problem: Your GPS seems to be working, but you cannot get a valid position fix. Speed and course are displayed correctly, though. Possibly you also see Invalid_argument("Latlong.of_utm") errors on the GCS log.

This may happen if you have configured the wrong GPS subsystem for your Tiny board. If you have the LEA-5H module on your Tiny board, but have configured <subsystem name="gps" type="ublox_utm"/> in your airframe file, this will occur because the 5H module does not support UTM position.

Solution: Make sure your GPS is configured correctly and change the gps type to "ublox" if applicable.

Why do I get a CRITICAL **: murrine_style_draw_box: assertion `width >= -1' failed error message on starting the GCS

Solution: This error is not critical at all and can be safely ignored.

It is triggered by a bug in the Murrine GTK engine in combination with the default theme which Ubuntu uses, as detailed here: https://bugs.launchpad.net/ubuntu/+source/light-themes/+bug/538499

Do Paparazzi autopilots support onboard datalogging with an uSD or SD card?

This depends on the board you are using. Writing to an SD card takes a considerable amount of processor resources, enough to significantly impact critical timings and autopilot performance on usual processors. For this reason, onboard datalogging is not supported on those autopilots. If logging is needed for these processors (say for use without a datalink) then a second board that "sniffs" the datalink telemetry is needed (see Data Logger). However, Recently introduced boards like the Apogee/v1.00 using a faster processor and an on board SD card tray allow logging of flight recorder information and individual data of sensors if activated in the air frame file.

Telemetry not working

If you are receiving the error "Failure("Error opening modem serial device : fd < 0 (/dev/ttyUSB0)")"
Solution: You might need to add your user to the modems group (dialout), then log out and in again.
write in terminal:$ sudo adduser <user> dialout
it will be effective after your next login or simply write:
$newgrp dialout

Can't flash autopilot

If you are trying to flash your autopilot board via USB and get e.g. can't find STM32 (autopilot) device
Solution: Check if your board is recognized by the kernel and you have sufficient rights on the device (should normally be set by Udev rules).
See also DFU#Troubleshooting

What does the name "Paparazzi" mean?

The original name of the project reads "PaparaDzIY" (http://www.nongnu.org/paparazzi/gallery_v0.html) which might be a French abbreviation, but the meaning of that name seems to be lost. In cases where the name "Paparazzi" is unfavourably (i.e. for serious applications not dealing with taking unasked pictures of persons) the use of the abbreviation PPRZ can be recommended.