(1)ADS-B接收机

文章目录

        前言

1.1 所需硬件

1.2 连接到自动驾驶仪

1.3 设置

1.4 ADSB输出配置

1.5 启用载人飞行器避障功能

1.6 飞行器数据库

1.7 开发者信息包括模拟


前言

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


ADS-B(又称自动依赖监视广播)(Automatic Dependent Surveillance Broadcast)是一种空中交通监视技术,使飞机能够被空中交通管制员和其他飞行员准确跟踪,而不需要传统雷达。

Warning

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

1.1 所需硬件

这些传感器可以直接从 uAvionix 或 Sagetech 购买,也可以从以下经销商处购买:

1.2 连接到自动驾驶仪

ADSB 接收机应连接到自动驾驶仪的串行端口。接收器的安装应使天线呈垂直方向。

1.3 设置

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

接收器所连接的串口应配置成也与 ADSB 接收器的协议相匹配:

ADSB Protocol

ADSB_TYPE

SERIALx_PROTOCOL

SERIALx_BAUD

MAVLINK

1

MAVLink2 (2)

57600

Sagetech

2

ADSB (35)

UCP

3

115200

Sagetech MX

4

例如,如果你将 uAvionix Ping2020i 插入自动驾驶仪上指定为 SERIAL4UART,你会设置:

ADSB 接收机的规格可能只说明 MAVLink 为协议。在这种情况下,首先尝试 MAVLink2,如果不成功,就用 MAVLink 作为串口协议。

在做出这些改变后,你需要重新启动你的板子。

为了使 ADSB 数据流向 GCS,你要检查你的 StreamRate 参数。在某些情况下,它已经被设置好了,但最好还是检查一下。这些速率在每个遥测中都是可以调整的,比如在连接高带宽和低带宽的情况下。调整速率的参数将取决于你的 GCS 连接到哪一个。在大多数情况下,它是 telem1

一旦投入使用,大约 50 公里范围内的飞机应出现在地面站地图上。

为了测试系统,你可以与 flightradar24.com 上显示的航班进行比较。

1.4 ADSB输出配置

Warning

确保你有正确的权限,使用能够发射的 ADSB 硬件。你将会在空中交通管制员的机场雷达上显示出来!

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

  • ADSB_ICAO_IDICAO_ID 该飞机的唯一飞行器识别号码。这是一个限制在 24 位的整数。如果设置为 0,那么将随机生成一个。如果设置为 -1,则不发送静态信息,假设收发器是预编程的;
  • ADSB_EMIT_TYPEADSB 对发射转发器信号的飞行器类型的分类。默认值为 14UAV);
  • ADSB_LEN_WIDTH:飞机的长度和宽度尺寸选项,长度和宽度单位为米。在大多数情况下,使用 1 的值表示最小的尺寸;
  • ADSB_OFFSET_LATGPS 天线的横向偏移。这描述了飞机上 GPS 天线中心的物理位置偏移;
  • ADSB_OFFSET_LONGPS 天线的纵向偏移。这通常被设置为 1,由传感器应用;
  • ADSB_RF_SELECT:收发器射频选择 Rx 启用和/或 Tx 启用。这只影响可以 Tx 和/或 Rx 的设备。只有 Rx 的设备会覆盖这一点,使其总是只有 Rx
  • ADSB_SQUAWK:向 ATC 广播的 Squawk/Transponder(模式 3/A)代码,通常由你的 ATC 为某一特定航班分配。在美国/加拿大,默认的 Squawk 代码是针对 VFR 的,是 1200。欧洲和澳大利亚的大部分地区使用 7000。如果设置了一个无效的八进制数字,那么它将被重置为 1200
  • ADSB_OPTIONS:允许启用某些设备的特定功能,并允许在某些飞行器失控保护"鸣叫"紧急代码。

在许多情况下,默认值是可以的,除了 ADSB_RF_SELECT 需要打开发射机外,你不需要改变任何这些。ADSB_RF_SELECT 发射位在启动时被清空,以确保你只在有意启用时进行发射。

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

Note

Mission Planner 的转发器标签不会向 SagetechXP 系列转发器发送正确的信息。为了改变工作模式,可以使用 Sagetech 的工程 GUI 将转发器设置为 ALT 模式,以确保传输与飞行控制器的工作。

1.5 启用载人飞行器避障功能

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:垂直 3D 移动,5RTL6:悬停);
  • AVD_F_RCVRY:设置飞行器在清除了近失区后的行为方式(即 1 = 恢复以前的飞行模式)。

注意:有同等的"警告"参数(即 AVD_W_DIST_XY),可用于调整何时在地面站出现对飞行员的警告。

ArduPilot 固件 4.0 及以后的版本中,可以通过 RC 通道的开关来启用或禁用进入该模式,通过设置 RCx_OPTION = 38 (ADSB Avoidance En)。如果 RCPWM > 1800us,那么如果有威胁出现,就会启用进入该模式。

1.6 飞行器数据库

当启用时,ADS-B 库最多可以存储 50 个由 ADS-B 接收器探测到的飞行器信息,但可以通过 ADSB_LIST_MAX 参数进一步限制。由于其他功能的一些实验性工作,如 EKF2,可用的 RAM 可能会受到限制。值得注意的是,当 ADSB 被禁用时(ADSB_TYPE = 0),那么内存就会被释放,有效地释放出大约 1KBRAM。当启用时,检测到的飞行器列表每秒钟检查一次,以发现潜在的冲突。

1.7 开发者信息包括模拟

数据是通过 ADSB_VEHICLE 消息(ADSB_VEHICLE message)传输的。当 ArduPilot 收到时,它将使用 SRx_ADSB 值进行流式传输,其中x是遥测端口号,该值是每秒要流式传输多少飞行器。如果使用 telem1,流率参数将是 SR1_ADSB。列表将不会重复超过 1 秒的速度。这种灵活性对于节省数据链路的带宽很有用,但也允许高速链路的最大更新率,如机载配套计算机。

ArduPilotSITL 包括对支持 ADS-B 的飞机进行模拟。要启用这个功能,你必须有 pymavlink v1.1.70 或更高版本。如果你有一个旧版本,请使用:

sudo pip install --upgrade pymavlink MAVProxy

使用 SIM_ADSB_COUNT 参数设置要模拟的飞机数量。可以通过设置参数'SIM_ADSB_TX'来启用 Ping2020 模拟支持。ADS-B 的其他模拟选项也存在,都以 SIM_ADSB_ 开头。

使用 USB-Serial 转换器将硬件 ADS-B 接收器插入你的计算机,或使用 PingUSB,将允许你在模拟中叠加真实的 ADS-B 交通。你可以通过这种方式调用 SITL 来实现这种效果:

sim_vehicle.py -v ArduCopter -A "--uartC uart:$SERIAL_DEVICE:57600"

其中 SERIAL_DEVICE Linux 系统上可能是/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A4008ZND-if00-port0(用命令 ls /dev/serial/by-id/* 或 ls /dev/ttyS* 查找有效的串行设备列表,用于 CygwinCOM 端口)。一旦 SITL 启动,可能需要设置 SERIAL3_ 参数:

:ref:`SERIAL3_PROTOCOL<SERIAL3_PROTOCOL>` 1

:ref:`SERIAL3_BAUD<SERIAL3_BAUD>` 57600

猜你喜欢

转载自blog.csdn.net/qq_20016593/article/details/131390545