(1)ADS-B接收机

文章目录

前言

[1.1 所需硬件](#1.1 所需硬件)

[1.2 连接到自动驾驶仪](#1.2 连接到自动驾驶仪)

[1.3 设置](#1.3 设置)

[1.4 ADSB输出配置](#1.4 ADSB输出配置)

[1.5 启用载人飞行器避障功能](#1.5 启用载人飞行器避障功能)

[1.6 飞行器数据库](#1.6 飞行器数据库)

[1.7 开发者信息包括模拟](#1.7 开发者信息包括模拟)


前言

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


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

Warning

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

1.1 所需硬件

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

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) | 57600 |
| UCP | 3 | ADSB (35) | 115200 |
| Sagetech MX | 4 | ADSB (35) | 115200 |

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

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

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

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

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

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

1.4 ADSB输出配置

Warning

确保你有正确的权限,使用能够发射的 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 启用。这只影响可以 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 的转发器标签不会向 Sagetech 的 XP 系列转发器发送正确的信息。为了改变工作模式,可以使用 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 移动,5:RTL 或 6:悬停);
  • AVD_F_RCVRY:设置飞行器在清除了近失区后的行为方式(即 1 = 恢复以前的飞行模式)。

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

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

1.6 飞行器数据库

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

1.7 开发者信息包括模拟

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

ArduPilot 的 SITL 包括对支持 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* 查找有效的串行设备列表,用于 Cygwin 的 COM 端口)。一旦 SITL 启动,可能需要设置 SERIAL3_ 参数:

:ref:`SERIAL3_PROTOCOL<SERIAL3_PROTOCOL>` 1

:ref:`SERIAL3_BAUD<SERIAL3_BAUD>` 57600

相关推荐
FIT2CLOUD飞致云3 小时前
测试管理新增视图与高级搜索功能,测试计划支持一键生成缺陷详情,MeterSphere开源持续测试工具v3.3版本发布
开源·接口测试·metersphere·团队协作·持续测试·测试管理
ROS机器人学习与交流3 小时前
ROS无人机机械爪使用
无人机
创小董3 小时前
UOM无人机空域快速申请技术详解
无人机
创小董4 小时前
无人机+无人车+机器狗+无人船:大规模组网系统技术详解
无人机
杨荧5 小时前
【JAVA开源】基于Vue和SpringBoot的旅游管理系统
java·vue.js·spring boot·spring cloud·开源·旅游
云卓科技15 小时前
无人机之数据提取篇
科技·安全·机器人·无人机·制造
杨荧19 小时前
【JAVA开源】基于Vue和SpringBoot的水果购物网站
java·开发语言·vue.js·spring boot·spring cloud·开源
x-cmd1 天前
[241005] 14 款最佳免费开源图像处理库 | PostgreSQL 17 正式发布
数据库·图像处理·sql·安全·postgresql·开源·json
customer081 天前
【开源免费】基于SpringBoot+Vue.JS洗衣店订单管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
杨荧1 天前
【JAVA开源】基于Vue和SpringBoot的周边产品销售网站
java·开发语言·vue.js·spring boot·spring cloud·开源