无人机罐设置

无人机罐设置

DroneCAN的创建是为了继续开发广泛使用的UAVCAN v0协议。该协议已被证明是强大且功能丰富的,并已广泛应用于商用无人机行业,并得到行业合作伙伴的广泛支持。拟议引入的 UAVCAN v1 协议涉及对 UAVCAN 的更改,这增加了复杂性,并且无法为现有部署提供平滑的迁移路径。经过UAVCAN联盟内部的长时间讨论,决定最好的解决方案是以DroneCAN的名义继续开发UAVCAN v0。

本文提供了在ArduPilot上设置DroneCAN协议的指导。

提示

应首先启用物理CAN端口及其选择为DroneCAN协议的驱动程序。请参考CAN总线设置

概述

DroneCAN是一种轻量级协议,专为可靠通信而设计 通过CAN总线在航空航天和机器人应用中。 DroneCAN网络是一个分散的对等网络,其中每个对等点 (node)有一个唯一的数字标识符 - 节点ID,只有一个 需要为基本设置设置参数。

协议的详细说明可以在 https://uavcan.org/

支持的无人机CAN外设类型

ArduPilot目前支持以下类型的DroneCAN外围设备:

DroneCAN设备类型由以下方式选择:

  • GPS,指南针,气压计,ADSB接收器,LED,蜂鸣器,安全开关/ LED和空速设备在DroneCAN协议中自动识别

  • 测距仪: = 24RNGFNDx_TYPE

  • 电源模块:BATT_MONITOR或 = 8BATTx_MONITOR

无人机CAN设置参数

显示第一个 DroneCAN 驱动程序,第二个驱动程序具有相同的参数

  • 如果为 DroneCAN(1) 设置CAN_D1_PROTOCOL则具有以下相关参数:

  • CAN_D1_UC_POOL:如果可能,将为此大小的驱动程序分配内存池。如果CAN流量较轻,则通常可以减小默认大小,从而节省RAM用于其他功能和特性,例如GPS或指南针,而不是ESC。

无人机CAN适配器节点

这些设备是具有I / O端口的通用DroneCAN节点,允许通过UART端口,I2C,SPI和/或GPIO将非DroneCAN ArduPilot外围设备连接到DroneCAN总线。请参阅 DroneCAN 适配器节点

无人机罐电调和伺服配置设置

有关DroneCAN电调的信息,请参阅DroneCAN电调

每个DroneCAN电调或伺服都将具有与自动驾驶仪的伺服/电机输出通道相对应的编程ID或通道地址。这些由电调上的开关或通过设置/配置程序设置,具体取决于电调。

有三个参数可以确定将哪些自动舵伺服/电机通道发送到CAN电调和/或舵机: 对于以下示例,显示了CAN驱动程序#1的值。

  • CAN_D1_UC_NODE - 这是将命令发送到ESC的自动驾驶仪的节点ID,以便可以区分CAN总线上的多个源

  • CAN_D1_UC_ESC_BM - 位掩码,用于确定将哪些自动驾驶仪伺服/电机输出信号发送到 DroneCAN 电调。

  • CAN_D1_UC_ESC_SRV - 位掩码,用于确定将哪些自动驾驶仪伺服/电机输出信号发送到DroneCAN舵机上的舵机

在位图掩码中,每个位位置表示一个 ESC 或伺服 ID 号 相应的自动驾驶仪伺服/电机通道命令将被定向到。例如,00001111(15 十进制)会将命令发送到 ESC 或 SERVO ID 0 到 3。

注意

使用 DroneCAN 电调/伺服时,您可以设置这些,但仍使用 SERVO_GPIO_MASK 参数在 GPIO 的自动驾驶仪上使用这些输出。自动驾驶仪输出将成为GPIOS,相应的输出将被发送到DroneCAN中。SERVOx_FUNCTIONSERVOx_FUNCTION

要减少带宽,应设置CAN_D1_UC_ESC_BMCAN_D1_UC_ESC_SRV_BM参数 仅启用需要发送CAN信号的电机和伺服通道。此外,CAN_D1_UC_ESC_OF参数允许您通过将 ESC 位置偏移到总线上的第一个时隙来进一步最大化带宽,从而消除空时隙。例如,如果电调位于输出 5 到 8 上,则偏移量 4 将在前 4 个时隙中传输它们,否则这些时隙将为空并消耗带宽。

  • 示例:对于通道 1、2、4 上的 CAN 伺服和通道 3 上的 ESC 电机的配置,请设置:

  • 示例:CAN_D1_UC_ESC_BM = 0x0B

  • 示例:CAN_D1_UC_ESC_SRV = 0x04

全球定位系统配置设置

如果有 DroneCAN GPS 设备,则必须在参数子组中启用它。 对于自动驾驶仪中相应的 GPS 接收器,该参数应设置为 9。GPSTYPE

无人机罐灯配置

通过在NTF_LED_TYPES位掩码中设置位 5 来启用 DroneCAN LED。CAN_D1_UC_NTF_RT设置通知消息在 DroneCAN 中传输的速率。

无人机测距仪配置

设置 = 24 以启用 DroneCAN 测距仪类型。通过 DroneCAN 接收的测距仪数据仅在收到的sensor_id与参数匹配时才使用。对于AP_Periph基于固件的适配器节点,此值为 0,因此必须设置为 0。其他无人机CAN测距仪可能有所不同。另请参阅 DroneCAN 适配器节点说明。RNGFNDx_TYPERNGFNDx_ADDRRNGFNDx_ADDR

无人机罐选项

每个 DroneCAN 驱动程序的多个选项可以通过CAN_D1_UC_OPTIONCAN_D2_UC_OPTION位掩码参数进行选择。未设置默认值:

无人机CAN节点ID冲突

当设备被连接和识别时,它的节点 ID 和硬件 ID 被输入到一个数据库中,该数据库在电源周期之间存储。如果使用具有相同节点 ID 和不同硬件 ID 的多个设备(例如,交换具有相同节点 ID 的智能电池),则数据库中将出现冲突。这将需要使用 CAN_D1_UC_OPTION 参数以允许在下次引导时重置数据库,或者忽略数据库中的冲突。

CAN FD(灵活数据速率)

如果 DroneCAN 端口连接到 CAN FD 外设,则CAN_D1_UC_OPTION位 2(+ 值 4)设置将启用此模式。

注意

CAN FD 需要比正常情况更大的内存池分配。默认值为 24KB,而不是正常的 12KB。

斯堪

注意

当武装以降低CPU负载时,通过COM端口的SLCAN访问被禁用。请通过MAVLink改用SLCAN。无论如何,这种方法通常是优选的。

ArduPilot和DroneCAN提供了一种直接与连接到自动驾驶仪的CAN总线上的DroneCAN设备通信的方法:SLCAN。启用SLCAN并与DroneCAN设备通信取决于自动驾驶仪的处理器。F7/H7 处理器使用一种方法,F4 使用另一种方法。

Last updated