(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

相关推荐
LittroInno16 小时前
无人机侦察打击方案(3)
人工智能·无人机
lsjweiyi17 小时前
极简AI工具箱网站开源啦!
opencv·开源·微信支付·支付宝支付·百度ai·极简ai工具箱·ai图像处理
云卓SKYDROID17 小时前
无人机的激光雷达避障系统阐述!
科技·安全·无人机·云卓科技·激光雷达避障系统
开源社18 小时前
一场开源视角的AI会议即将在南京举办
人工智能·开源
FreeIPCC18 小时前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源
海害嗨18 小时前
阿里巴巴官方「SpringCloudAlibaba全彩学习手册」限时开源!
学习·开源
生命是有光的18 小时前
【开源风云】从若依系列脚手架汲取编程之道(八)
开源
HuggingFace20 小时前
Halo 正式开源: 使用可穿戴设备进行开源健康追踪
开源·健康追踪
时光追逐者1 天前
.NET 9 中 LINQ 新增功能实操
开发语言·开源·c#·.net·.netcore·linq·微软技术
檀越剑指大厂1 天前
Linux本地部署开源项目OpenHands基于AI的软件开发代理平台及公网访问
linux·人工智能·开源