ADS-B

本文介绍了如何安装和配置 ADS-B 模块,使飞机能够感知和/或向附近的其他飞机和空中交通管制部门发送信息。这也可让地面上的飞行员了解附近的有人驾驶飞机,并可选择让飞行器自动避开这些飞机。

ADS-B(又名 自动监视广播)是一种空中交通监控技术,可使空中交通管制员和其他飞行员无需传统雷达就能准确跟踪飞机。

警告

避让功能是仍在开发中的新功能,应谨慎使用。如果启用了 ADSB 闪避功能,强烈建议设置 RCx_OPTION=38(ADSB 闪避 En)功能,以便在飞行中根据需要轻松禁用。

所需硬件

传感器可直接从 uAvionixSagetech 或从以下经销商处购买

连接(飞行)控制器

./_images/adsb_and_pixhawk.png

ADSB 接收器应连接到(飞行)控制器的串行端口。接收器的安装应使天线垂直。

设置

设置 ADSB_TYPE 参数,以匹配接收器的串行通信协议。

连接接收机的串行端口也应配置为与 ADSB 接收机的协议相匹配:

ADSB 协议

ADSB_TYPE

SERIALx_PROTOCOL

SERIALx_BAUD

MAVLINK

1

MAVLink2 (2)

57600

Sagetech

2

ADSB (35)

UCP

3

115200

Sagetech MX

4

例如,如果将 uAvionix Ping2020i 插头插入(飞行)控制器上指定为 SERIAL4 的 UART,就可以设置:

备注

ADSB 接收器的规格可能只规定 MAVLink 为协议。在这种情况下,首先尝试 MAVLink2,如果不成功,则使用 MAVLink 作为串行端口协议。

更改后,您需要重新启动电路板。

要将 ADSB 数据流传输到 GCS,您需要检查 StreamRate 参数。在某些情况下,该参数已经设置,但最好还是检查一下。这些速率可根据遥测数据进行调整,例如在同时连接高带宽和低带宽链路的情况下。调整速率的参数取决于 GCS 连接的是哪一个。大多数情况下是 telem1。

一旦投入使用,地面站地图上就会出现约 50 千米范围内的飞机。

../_images/ADSB_MissionPlanner.jpg

要测试该系统,您可以与以下网站上显示的航班进行比较 flightradar24.com.

ADSB 输出配置

警告

确保您拥有使用 ADSB 硬件进行发射的正确权限。您将出现在空中交通管制员的机场雷达上!

以下参数用于配置 ADS-B 输出:

  • ADSB_ICAO_ID:ICAO_ID 该飞机的唯一载具识别号。这是一个限制为 24 位的整数。如果设置为 0,则将随机生成一个。如果设置为-1,则不发送静态信息,收发器被认为已预先编程。

  • ADSB_EMIT_TYPE:ADSB 对发射应答器信号的载具类型的分类。默认值为 14(UAV)。

  • ADSB_LEN_WIDTH:飞机长度和宽度尺寸选项,长度和宽度单位为米。大多数情况下,最小尺寸的值为 1。

  • adsb_offset_lat:GPS 天线横向偏移。描述飞机上 GPS 天线中心偏移的实际位置。

  • adsb_offset_lon:GPS 天线纵向偏移。通常设置为 1,由传感器应用

  • ADSB_RF_SELECT:收发器射频选择,用于启用 Rx 和/或 Tx。这只影响可以发送和/或接收的设备。只接收 Rx 的设备可覆盖此选项,使其始终只接收 Rx。

  • ADSB_SQUAWK:Squawk/Transponder(模式 3/A):向 ATC 广播的代码,通常由 ATC 为特定航班指定。在美国/加拿大,VFR 的默认 squawk 代码为 1200。欧洲和澳大利亚的大部分地区使用 7000。如果设置的八进制数无效,则会重置为 1200。

  • ADSB_OPTIONS:允许启用某些设备的特定功能,并允许在某些载具故障触发保护机制上 "鸣叫 "紧急代码。

在许多情况下,默认设置都没有问题,您不需要更改其中的任何内容,但以下情况除外 ADSB_RF_SELECT 这是开启发射机的必要条件。发射器 ADSB_RF_SELECT 传输位在启动时清零,以确保只有在有意启用时才进行传输。

uavionix.xml 中的 ADSB 有额外的 MAVLink 消息,允许 GCS 设置所有这些选项。即 msg UAVIONIX_ADSB_OUT_CFG 和 UAVIONIX_ADSB_OUT_DYNAMIC,其中 _cfg 是唯一可以指定自定义呼号的地方。

备注

Mission Planner地面站的应答器选项卡无法向 Sagetech XP 系列应答器发送正确的信息。为了更改操作模式,可使用 Sagetech 的工程图形用户界面将应答器设置为 ALT 模式,以确保与飞行控制器的传输正常。

实现载人载具避让

ArduPilot 包含一种飞行模式 AVOID_ADSB,可根据 ADS-B 传感器的输出试图避开有人驾驶载具。当需要根据以下参数进行规避时,会自动进入该模式。当威胁过去后,也会自动退出。

要启用此功能,请连接地面站并设置以下参数:

  • AVD_ENABLE:设置为 "1 "可启用基于 ADS-B 的避障(设置后可能需要刷新参数)。

  • AVD_F_DIST_XY:以米为单位的水平距离,应视为近距离失误

  • AVD_F_DIST_Z:载具上方或下方应被视为近距离碰撞的垂直距离(米)。

  • AVD_F_TIME:在预计的近距离碰撞发生前多少秒(基于载具当前位置和速度),载具应启动 AVD_F_ACTION.

  • AVD_F_ACTION:控制载具如何对预计的近距离失误做出反应(例如,2:爬升或下降,3:水平移动,4:三维垂直移动,5:RTL 或 6:悬停)

  • AVD_F_RCVRY:设定飞行器在清除近失区后的行为方式(即 1 = 恢复之前的飞行模式)

注意:还有一些等效的 "警告 "参数(如 AVD_W_DIST_XY)可用于调整地面站何时向飞行员发出警告。

在 ArduPilot 固件 4.0 及更高版本中,可通过 RC 通道开关设置通道的 RCx_OPTION = 38(ADSB Avoidance En)来启用或禁用该模式。如果 RC PWM 为 >1800us,则在出现威胁时进入该模式。

载具数据库

启用后,ADS-B 库最多可存储 ADS-B 接收机检测到的 50 架飞行器的信息,但可以使用 ADSB_LIST_MAX 参数。由于其他功能(如 EKF2)的一些实验工作,可用 RAM 可能有限。值得注意的是,当 ADS-B 禁用时 (ADSB_TYPE = 0)则释放内存,从而有效释放约 1KB 的 RAM。启用后,每秒会对检测到的载具列表进行一次潜在冲突检查。

开发人员信息,包括模拟

数据通过 ADSB_VEHICLE 信息.ArduPilot 接收到信息后,会使用 SRx_ADSB 值,其中 x 是遥测端口号,值是每秒要串流的载具数。如果使用 telem1,则流率参数为 SR1_ADSB.列表的重复速度不会超过 1 秒。这种灵活性有助于节省数据链路的带宽,同时也能为高速链路(如机载伴侣计算机)提供最大更新率。

ArduPilot 的 SITL 包括模拟支持 ADS-B 的飞机。要启用此功能,您必须安装 pymavlink v1.1.70 或更高版本。如果使用的是旧版本,请使用

苏都 核心 安装 --升级 pymavlink MAVProxy

设置要模拟的飞机数量。 SIM_ADSB_COUNT 参数。通过设置参数 SIM_ADSB_TX.ADS-B 还有其他模拟选项,均以 SIM_ADSB_.

使用 USB 转串口转换器或 PingUSB 将硬件 ADS-B 接收机插入计算机,就可以在模拟中叠加真实的 ADS-B 流量。您可以通过这种方式调用 SITL 来实现这一效果:

模拟载具.py -v ArduCopter -A "--serial3 uart:$SERIAL_DEVICE:57600";

在 Linux 系统中,SERIAL_DEVICE 可能是 /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A4008ZND-if00-port0(使用以下命令查找有效串行设备列表 ls /dev/serial/by-id/*ls /dev/ttyS* 的 COM 端口)。SITL 启动后,可能需要设置 SERIAL3_ 参数

:ref:`SERIAL3_PROTOCOL<SERIAL3_PROTOCOL>` 1 :ref:`SERIAL3_BAUD<SERIAL3_BAUD>` 57600