• Air Traffic Avoidance: ADS-B/FLARM
    • Supported Hardware {#supported_hardware}
    • Hardware Setup
      • PingRX
    • FLARM
    • Software Configuration
      • Port Configuration
      • Configure Traffic Avoidance
    • Implementation
    • Further Information

    Air Traffic Avoidance: ADS-B/FLARM

    PX4 can use ADS-B or FLARM transponders to support simple air traffic avoidance in missions. If a potential collision is detected, PX4 can warn, immediately land, or return (depending on the value of NAV_TRAFF_AVOID).

    Supported Hardware {#supported_hardware}

    PX4 traffic avoidance works with ADS-B or FLARM products that supply transponder data using the MAVLink ADSB_VEHICLE message.

    It has been tested with the following devices:

    • PingRX ADS-B Receiver (uAvionix)
    • FLARM

    Hardware Setup

    Either device can can be connected to any free/unused serial port on the flight controller. Most commonly it they are connected to TELEM2 (if this is not being use for some other purpose).

    PingRX

    The PingRX MAVLink port uses a JST ZHR-4 mating connector with pinout as shown below.

    Pin Signal Volt
    1 (red) RX (IN) +5V tolerant
    2 (blk) TX (OUT)
    3 (blk) Power +4 to 6V
    4 (blk) GND GND

    The PingRX comes with connector cable that can be attached directly to the TELEM2 port (DF13-6P) on an mRo Pixhawk. For other ports or boards, you will need to obtain your own cable.

    FLARM

    FLARM has an on-board DF-13 6 Pin connector that has an identical pinout to the mRo Pixhawk.

    Pin Signal Volt
    1 (red) VCC +4V to +36V
    2 (blk) TX (OUT) +3.3V
    3 (blk) RX (IN) +3.3V
    4 (blk) - +3.3V
    5 (blk) - +3.3V
    6 (blk) GND GND

    Note The TX and RX on the flight controller must be connected to the RX and TX on the FLARM, respectively.

    Software Configuration

    Port Configuration

    Flarm/PingRX are configured in the same way as any other MAVLink Peripheral. The only specific setup is that the port baud rate must be set to 57600 and the a low-bandwidth profile (MAV_X_MODE).

    Assuming you have connected the device to the TELEM2 port, set the parameters as shown:

    • MAV_1_CONFIG = TELEM 2
    • MAV_1_MODE = Normal
    • MAV_1_RATE = 0 (default sending rate for port).
    • MAV_1_FORWARD = Enabled

    Then reboot the vehicle.

    You will now find a new parameter called SER_TEL2_BAUD, which must be set to 57600.

    Note Prior to PX4 v1.9 you can set up the port using the deprecated parameter: SYS_COMPANION.

    Configure Traffic Avoidance

    Configure the action when there is a potential collision using the parameter below:

    Parameter Description
    NAV_TRAFF_AVOID Enable traffic avoidance mode specify avoidance response. 0: Disable, 1: Warn only, 2: Return mode, 3: Land mode.

    Implementation

    PX4 listens for valid transponder reports during missions.

    If a valid transponder report is received, PX4 first uses the transponder position and heading information to estimate whether the vehicles will share a similar altitude before they pass each other. If they may then PX4 it estimates how the closest distance between the path to the next waypoint and the other vehicles predicted path. If the crossing point is less that 500m for altitude and path distance (hard coded), the Traffic Avoidance Failsafe action is started, and the vehicle will either warn, land, or return.

    The code can be found in Navigator::check_traffic (/src/modules/navigator/navigator_main.cpp).

    PX4 will also forward the transponder data to a GCS if this has been configured for the MAVLink instance (this is recommended).

    Further Information

    • MAVLink Peripherals
    • Serial Port Configuration