# DroneCAN

DroneCAN (打开新窗口) 是一种开放式软件通信协议,用于飞行控制器和其他 CAN 载具上的设备可以相互通信。

警告

  • DroneCAN 默认未启用,使用它的特定传感器和功能也未启用。有关设置信息,请参阅 PX4 配置.
  • PX4 需要 SD 卡来实现动态节点分配和固件更新。飞行中不使用 SD 卡。

备注

DroneCAN 以前称为 UAVCAN v0(或简称 UAVCAN)。该名称于 2022 年更改。

# DroneCAN 的优势

通过 DroneCAN 连接外围设备有很多好处:

  • 已支持许多不同的传感器和执行器。
  • CAN 是专为在相对较远距离上提供稳健可靠的连接而设计的。它可以在大型载具上安全使用电子稳定性控制系统(ESC),并实现通信冗余。
  • 总线是双向的,可以进行健康监测、诊断和转速遥测。
  • 由于可以使用单一总线连接所有电调和其他 DroneCAN 外围设备,因此布线更加简单。
  • 通过手动旋转每个电机来配置电调编号,因此设置更为简单。
  • 它允许用户通过 PX4 集中配置和更新所有 CAN 连接设备的固件。

# 支持的硬件

支持符合 DroneCAN/UAVCAN v0 标准的大多数常见外设类型(传感器、电调和伺服器)。

支持的硬件包括(这并不是一份详尽的清单):

# 硬件设置

DroneCAN 通过 CAN 网络运行。DroneCAN 硬件应按照以下说明进行连接 CAN > 接线.

# 节点 ID 分配

每个 DroneCAN 设备都必须配置一个 节点 id 这在载具上是独一无二的。

大多数设备支持 动态节点分配(DNA)该功能允许 PX4 在系统启动时自动配置每个检测到的外围设备的节点 ID。有关设备是否支持 DNA 以及如何启用 DNA 的详细信息,请查阅制造商文档。如果节点 ID 设置为 0,许多设备会自动切换到 DNA。 UAVCAN_ENABLE 参数为 1(设置为 2 或 3)。

有些设备不支持 DNA。此外,在某些关键任务场景中,您可能更愿意事先手动配置节点 ID,而不是依赖动态分配服务器。如果您想完全禁用 DNA,请设置 UAVCAN_ENABLE1 并手动将每个节点 ID 设置为唯一值。如果 DNA 仍在运行,且某些设备需要手动配置,则应为这些设备设置一个大于 DroneCAN 设备总数的值,以避免冲突。

备注

PX4 节点 ID 可以使用 UAVCAN_NODE_ID 参数。该参数默认设置为 1。

警告

在撰写本文时,PX4 不在 CAN2 端口上运行节点分配服务器。这意味着,如果您的设备是 只是 连接到 CAN2(而不是冗余连接到 CAN1 和 CAN2)时,需要手动配置其节点 ID。

# PX4 配置

通过以下方式在 PX4 上配置 DroneCAN 设置特定的 PX4 参数 在 QGroundControl 中。您需要启用 DroneCAN 本身以及您使用的任何功能的订阅和出版物。

备注

在某些情况下,您可能还需要在所连接的 CAN 设备上配置参数(这些参数也可以是 使用 QGC 设置).

# 启用 DroneCAN

要启用 PX4 DroneCAN 驱动程序,请设置 UAVCAN_ENABLE 参数:

  • 0:禁用 DroneCAN 驱动程序
  • 1:传感器已启用 DroneCAN 驱动程序、 DNA 服务器
  • 2:传感器已启用 DroneCAN 驱动程序,DNA 服务器已启用
  • 3:传感器和电调已启用 DroneCAN 驱动程序,DNA 服务器已启用

23 如果支持 DNA,建议使用

# DroneCan 订阅及出版物

PX4 不会发布或订阅下列 DroneCAN 信息 也许 默认情况下不需要,以免造成 CAN 总线垃圾邮件。相反,您必须通过设置相关的 UAVCAN 参数.

例如,要使用已连接的 DroneCAN 智能电池,您可以启用 UAVCAN_SUB_BAT 参数,使 PX4 订阅接收 电池信息 (打开新窗口) DroneCAN 信息。如果使用的外围设备需要知道 PX4 是否已上膛,则需要设置 UAVCAN_PUB_ARM 参数,以便 PX4 开始发布 上膛状态 (打开新窗口) 留言

参数名称的前缀是 UAVCAN_SUB_UAVCAN_PUB_ 来表示是否启用 PX4 订阅或发布。名称的其余部分表示正在设置的特定信息/功能。

连接到 PX4 的 DroneCAN 外围设备还可以 通过 QGC 使用参数配置.按照惯例,以 CANNODE_ 有前置含义,可在参数参考中记录。 CANNODE_ 前的参数 CANNODE_PUB_CANNODE_SUB_ 使外设能够发布或订阅相关的 DroneCAN 消息。这些功能允许将 DroneCAN 外围设备配置为只订阅和发布它们实际需要的信息(与 PX4 使用相应的 UAVCAN_PUB_/UAVCAN_SUB_ 参数)。请注意,外设可能不会使用 CANNODE_ 参数,在这种情况下,无论是否需要,它都必须发布/订阅特定信息。

以下各节将详细介绍用于启用特定功能的 PX4 和 DroneCAN 外围设备参数。

# 传感器

您可以启用的 DroneCAN 传感器参数/订阅包括(PX4 v1.14):

# 全球定位系统

PX4 DroneCAN 参数:

GPS CANNODE 参数 (使用 QGC 设置):

  • 设置 CANNODE_TERM1 为 CAN 总线上的最后一个节点。

其他 PX4 参数:

  • 如果 GPS 的位置不在载具重心处,您可以使用以下方法计算偏移量 EKF2_GPS_POS_X, EKF2_GPS_POS_YEKF2_GPS_POS_Z.
  • 如果 GPS 模块提供偏航信息,则可以通过设置 GPS 偏航融合的第 3 位来启用 GPS 偏航融合。 EKF2_GPS_CTRL 为 true。

# RTK GPS

设置与 全球定位系统 以上。此外,您可能还需要设置以下参数,具体取决于您的 RTK 设置是UGV无人车和固定基站,还是UGV无人车和移动基站,或者两者兼而有之。

# UGV无人车和固定基座

漫游车的位置是通过 RTK 基础模块发送的 RTCM 信息确定的(基础模块连接到 QGC,QGC 通过 MAVLink 将 RTCM 信息发送到 PX4)。

PX4 DroneCAN 参数:

UGV无人车模块参数(也包括 使用 QGC 设置):

备注

您可以使用 UAVCAN_PUB_MBD子插管也发布 RTCM 信息(这些信息较新)。使用 RTCMStream (打开新窗口) 消息意味着您可以同时实施移动基地(见下文)。

# UGV无人车和移动基地

正如 使用双 u-blox F9P 的 RTK GPS 定位系统 载具可以有两个 RTK 模块,以便通过 GPS 计算偏航。在这种设置中,载具有一个 移动基地 RTK GPS 和一个 UGV无人车 RTK GPS。

这些参数可以是 在移动基地和漫游车 RTK CAN 节点上设置分别为

对于 PX4,您还需要设置 GPS_YAW_OFFSET 来指示移动基地和漫游车的相对位置:0 表示漫游车位于移动基地前方,90 表示漫游车位于移动基地右侧,180 表示漫游车位于移动基地后方,270 表示漫游车位于移动基地左侧。

# 气压计

PX4 DroneCAN 参数:

# 指南针

PX4 DroneCAN 参数:

# 距离传感器/测距仪

PX4 DroneCAN 参数:

其他 PX4 参数:

  • 如果测距仪的位置不在载具重心处,您可以使用以下方法计算偏移量 EKF2_RNG_POS_X, EKF2_RNG_POS_YEKF2_RNG_POS_Z.
  • 其他 EKF2_RNG_* 在这种情况下,这些参数应记录在特定测距仪中。

# 光学流量传感器

PX4 DroneCAN 参数:

其他 PX4 参数:

光学流量传感器需要测距仪数据。不过,测距仪不一定属于同一模块,如果不属于同一模块,也可以不通过 DroneCAN 连接。如果测距仪是通过 DroneCAN 连接的(无论是内置的还是单独的),您还需要按照以下步骤启用它。 测距仪部分 (上图)。

# 上膛外围设备

PX4 DroneCAN 参数:

# 电调和舵机

DroneCAN 电子调速器和伺服器 要求 电机顺序和伺服输出 进行配置。

# QGC CANNODE 参数配置

QGroundControl 可以检查和修改连接到飞行控制器的 CAN 设备的参数,前提是这些设备在 QGC 启动前已连接到飞行控制器。

CAN 节点在 载具设置 > 参数 名为 第 X 部分其中 X 是节点 ID。例如,下面的截图显示了节点 ID 为 125 的 CAN GPS 的参数(在"...... "之后)。 标准, 系统开发人员 参数分组)。

显示所选 DroneCAN 节点的 QGC 参数

# 设备特定设置

大多数 DroneCAN 节点无需进一步设置,除非在设备特定文档中有特别说明。

# 固件更新

PX4 可通过 DroneCAN 升级设备固件。要升级设备,只需将固件二进制文件复制到飞行控制器 SD 卡的根目录中,然后重新启动即可。

启动后,飞行控制器会自动将固件传输到设备上并进行升级。如果升级成功,固件二进制文件将从根目录中删除,同时会出现一个名为 XX.bin/ufw SD 卡的目录。

# 故障排除

Q:我的 DroneCAN 设备无法工作。

A:检查 UAVCAN_ENABLE 参数设置正确。要查看 PX4 在 CAN 总线上检测到的设备/节点列表,请打开 NSH(即进入 QGroundControl MAVLink 控制台)并键入 飞行任务状态.


Q:DNA 服务器没有提供节点 ID。

A:PX4 需要 SD 卡才能执行动态节点分配。请确保已插入(可用的)SD 卡并重新启动。


Q:上膛时电机不转。

A:确保 UAVCAN_ENABLE 设置为 3 以启用 DroneCAN ESC 输出。


Q:在加大油门之前,电机不会旋转。

A:使用 执行器测试 以确认电机输出已设置为正确的最小值。