Redundant Communication

From PaparazziUAV
Revision as of 17:23, 27 April 2013 by Camlee (talk | contribs)
Jump to navigation Jump to search

Redundant Communication

There is currently a pull request to integrate a redundant communication system into the existing ground segment agents: [1]. The goal of this project is to allow multiple radio modems or other links be used between the aircraft and the ground station in a redundant fashion so that even if one link is lost, communication can be maintained. So far, the plane to ground component has been created and tested. The ground to plane component has not been created yet.

Communication from the aircraft to the ground is called telemetry. This communication allows the status of the aircraft such as location, altitude, airspeed, battery level, current flight block, and much more to be monitored in real time. If a single link is used, as is typical, then if the plane goes out of range, or that link is otherwise lost, none of this information can be displayed on the GCS. Using the following redundant link system allows multiple links to be used in an effort to avoid this. Typically, you would introduce diversity when adding links. For example:

  • If you have an on-board computer, you could tunnel messages through Wi-Fi over UDP in addition to a traditional 900 MHz XBee radio modem.
  • You could use a satellite phone for long-range monitoring in addition to a radio modem.
  • You could use a cellular modem in addition to a radio modem.
  • With additional ground infrastructure, you could have radio modems located at different locations.
  • You could use radio modems at different frequencies or with different antenna gains or orientations.

There are undoubtedly many more possibilities.

This project was made to be fully backwards compatible and support some of the awesome functionality that Paparazzi already has. This includes:

  • Completely backwards compatible - includes aircraft configuration files, previous flight logs, existing sessions, etc...
  • Logging and replay - if multiple links are used, data received through either link is recorded. Also, replays will include


Aircraft to Ground

Features

Enabling redundant communication from the aircraft to the ground enables the following features:

  • Redundancy - as long as one link is receiving data, it will be logged and displayed on the GCS
  • Monitoring - the status, ping time, and rate of receiving messages for each link is shown (this makes it useful even if you're only using one link)
  • Alerts - new alerts are added to the console in the GCS to alert you when a link has been connected for the first time, lost, or re-gained.


How to use

For an example session using two USB-serial adaptors, see the Flight USB-serial Redundant session saved in the example control_panel.xml configuration (on master branch, once the pull request has been accepted).

For the details, keep reading: In order to implement redundant links using this code, there are three simple steps to follow:

  • Connect the hardware - on the airborne side, connect the Rx pin of the autopilot to multiple radio modems or whatever other device which will get the information to the ground. On the ground side, connect multiple modems as normal (using USB to serial adapters, a UDP connection, or whatever).
  • Launch a Link agent for each modem. Configure the agents as you would have before (serial port, baud rate, UDP, etc...). None of these features have been modified or removed. Use two new command line arguments: -redlink and -id. The -redlink flag tells Link that it's one of multiple links. The -id flag lets you specify an integer number as the id of that particular link.
  • Launch the Link Combiner agent. This agent listens to all of the Link agents that have their -redlink set and combines the data.

The following screenshot shows a session with two links, connected to serial ports ttyUSB0 and ttyUSB1, and with id's 1 and 2:

Screenshot+from+2013-04-15+23_02_27.png


The Agents Running in a Redundant Link Setup

Ground to Aircraft