跳至内容

ADS-B/FLARM/UTM 接收机:空中交通规避

PX4 支持在以下情况下进行简单的空中交通规避 任务 使用 ADS-B, FLARMUTM 使用标准 MAVLink 接口的转发器。

如果检测到潜在碰撞,PX4 可以 警示立即 土地返回 (取决于 避免导航).

支持的硬件

PX4 交通规避功能可与使用 MAVLink 提供应答机数据的 ADS-B 或 FLARM 产品配合使用 ADSB_VEHICLE 信息,以及使用 MAVLink 提供应答器数据的 UTM 产品。 全球位置 留言

它已通过以下设备的测试:

硬件设置

任何设备都可以连接到飞行控制器上任何空闲/未使用的串行端口。最常见的连接方式是 TELEM2 (如果不是用于其他目的)。

PingRX

PingRX MAVLink 端口使用 JST ZHR-4 配接连接器,引脚分配如下所示。

针脚信号伏特
1 (红色)RX (IN)+5V 容差
2(黑色)TX (OUT)
3(黑色)电源+4 至 6V
4(黑色)接地接地

PingRX 随附的连接器电缆可直接连接到远程医疗设备上的 TELEM2 端口 (DF13-6P)。 mRo Pixhawk.对于其他端口或电路板,您需要自行购买电缆。

FLARM

FLARM 有一个板载 DF-13 6 针连接器,其引脚布局与 DF-13 6 针连接器相同。 mRo Pixhawk.

针脚信号伏特
1 (红色)VCC+4V 至 +36V
2(黑色)TX (OUT)+3.3V
3(黑色)RX (IN)+3.3V
4(黑色)-+3.3V
5(黑色)-+3.3V
6(黑色)接地接地

信息

飞行控制器上的 TX 和 RX 必须分别与 FLARM 上的 RX 和 TX 相连。

软件配置

端口配置

接收器的配置方式与其他接收器相同。 MAVLink 外围设备.唯一的 特定 设置是端口波特率必须设置为 57600,低带宽配置文件 (MAV_X_MODE).

假设您已将设备连接到 TELEM2 端口、 设置参数 如图所示:

然后重新启动载具。

现在,您会发现一个名为 SER_TEL2_BAUD必须设置为 57600。

配置流量规避

使用下面的参数配置可能发生碰撞时的操作:

参数说明
避免导航启用交通规避模式,指定规避响应。0:禁用,1:仅警告,2:返回模式,3:降落模式。
导航飞行器周围圆柱体的水平半径,它定义了飞行器的空域(即地平面内的空域)。
导航圆柱体载具上下的垂直高度,该高度定义了圆柱体的空域(另见 导航).
nav_traff_coll_t碰撞时间阈值。如果预计碰撞时间低于该值(预计时间基于交通流和无人机的相对速度),则会触发避让。

实施情况

ADSB/FLARM

PX4 在执行任务时会监听有效的应答器报告。

如果收到有效的转发器报告,PX4 会首先使用交通转发器信息来估计交通航向和高度是否表明将与无人机空域相交。无人机空域包括一个由半径 导航 和高度 导航以无人机为中心。然后,交通探测器会检查与无人机空域相交前的时间是否低于 nav_traff_coll_t 阈值。如果这两项检查都为真,则 交通规避故障安全系统 行动开始后,载具会发出警告、着陆或返回。

代码见 Navigator::check_traffic (/src/modules/navigator/navigator_main.cpp).

如果已为 MAVLink 实例配置,PX4 还会将应答器数据转发至 GCS(推荐使用)。GUID 的最后 10 位数字显示为无人机标识。

UTM

PX4 监听 全球位置 在执行任务过程中,MAVLink 会发送信息。当接收到有效信息时,其有效标志、位置和航向会被映射到相同的信息中。 应答器报告 UORB 主题用于 ADS-B 交通规避.

否则 正是 如上一节所述。

信息

全球位置 包含 ADSB 应答器不提供的附加字段(见 ADSB_VEHICLE).目前的实现方式只是简单地放弃了附加字段(包括有关载具计划下一个航点的信息)。

测试/模拟 ADSB 流量

您可以模拟 ADS-B 流量进行测试。请注意,这需要您 建造 PX4.

信息

模拟的 ADS-B 流量可触发真实的故障安全操作。在实际飞行中请谨慎使用!

要启用此功能:

  1. 取消在 AdsbConflict::run_fake_traffic()(AdsbConflict.cpp).
  2. 重建并运行 PX4。
  3. 执行 导航仪假交通 指挥部QGroundControl MAVLink 外壳 (或其他 PX4 控制台或 MAVLink 外壳如 PX4 模拟终端)。

中的代码 run_fake_traffic() 然后执行。您应该会在控制台/MAVLink 外壳中看到 ADS-B 警告,QGC 也会弹出 ADS-B 流量。

默认情况下 run_fake_traffic() 发布一些流量信息(它调用 AdsbConflict::fake_traffic() 以发出每份报告)。这些模拟 ADS-B 流量可能会发生冲突,也可能不会发生冲突,还可能会在流量缓冲区内发送垃圾邮件。

有关测试方法的信息

相关方法在 AdsbConflict.cpp.

run_fake_traffic() 方法

run_fake_traffic() 方法运行时 导航仪假交通 命令被调用。

该方法调用 fake_traffic() 方法生成当前载具位置周围的模拟应答器信息。它传入当前载具位置和模拟交通信息,如呼号、距离、方向、高度差、速度和发射器类型。

中的代码(已注释 run_fake_traffic() 模拟了多种不同的情况,包括冲突和非冲突,以及在流量缓冲区内发送垃圾邮件。

fake_traffic() 方法

AdsbConflict::fake_traffic()run_fake_traffic() 以创建单独的 ADS-B 应答机报告。

这需要几个参数,用于指定伪造流量的特征:

  • 呼号:伪造转发器的呼号。
  • 距离:从当前载具到假冒载具的水平距离。
  • 方向:从这辆车到假货的方向(弧度)。
  • 流量标题:以弧度为单位的 NED 行驶方向。
  • 高度差:假航班的高度差。正向为向上。
  • 角速度:假车流的水平速度(米/秒)。
  • 速度:假车流的垂直速度,单位 m/s。
  • 发射器类型:假冒载具类型,枚举值。
  • icao_address:国际民航组织地址。
  • lat_uav:该载具的纬度(用于定位载具周围的假交通流量)
  • on_uav:该载具的 Lon(用于定位载具周围的假交通流量)
  • UAV:载具的高度(作为参考--用于定位载具周围的假车流)

该方法通过以下步骤在载具附近创建一个模拟应答器信息:

  • 根据无人机的位置、距离和方向计算交通的经纬度。
  • 将高度差与无人飞行器的高度相加,计算出新的高度。
  • 填充一个 应答器报告 与模拟交通数据一起使用。
  • 如果电路板支持通用唯一标识符 (UUID),该方法会使用 board_get_px4_guid 并将其复制到 uas_id 字段。否则,它会生成一个模拟 GUID。
  • 使用 出版.

更多信息