ArduPilot RemoteID Transmitter:无人机远程识别的利器
ArduPilot RemoteID Transmitter:无人机远程识别的利器
项目介绍
ArduPilot RemoteID Transmitter 是一个基于 MAVLink 和 DroneCAN 协议的开源项目,旨在为无人机提供符合 FAA 标准和欧盟远程识别(RemoteID)法规的传输解决方案。该项目不仅满足了 ASTM F3586-22 合规性要求,还为无人机制造商和用户提供了一个灵活且强大的工具,以确保其产品在全球范围内的合法性和安全性。
项目技术分析
硬件支持
ArduPilot RemoteID Transmitter 目前支持 ESP32-S3 和 ESP32-C3 芯片,并兼容多种开发板和商业产品,如 Bluemark 的 DB110、DB200、DB201、DB202mav 和 DB210pro。此外,项目还计划支持来自 Wurzbach Electronics 的硬件。
对于 ESP32-S3 开发板,固件假设的引脚配置为:
- UART TX 引脚 18
- UART RX 引脚 17
- CAN TX 引脚 47
- CAN RX 引脚 38
对于 ESP32-C3 开发板:
- UART TX 引脚 3
- UART RX 引脚 2
- CAN TX 引脚 5
- CAN RX 引脚 4
CAN 需要连接合适的 1MBit bxCAN 收发器到 CAN TX/RX 引脚。
传输模式
该项目支持多种传输模式,包括 WiFi 广播、WiFi NAN(邻近感知网络)、蓝牙 4 传统广告和蓝牙 5 长距离 + 扩展广告。这些模式确保了无人机在不同环境下的可靠通信。
协议支持
ArduPilot RemoteID Transmitter 支持与 ArduPilot 飞行控制器通过 MAVLink 或 DroneCAN 进行通信。MAVLink 使用 OpenDroneID 服务,而 DroneCAN 则使用特定的远程 ID 消息,确保了双传输实现的简便性。
固件更新与安全
项目提供了预构建的固件版本,并支持通过 Espressif FlashTool 进行初始固件加载。此外,通过内置的 Web 服务器,用户可以方便地进行固件更新和参数配置。固件签名机制确保了更新的安全性,防止未经授权的固件加载。
固件刷写工具设置
使用FlashTool刷写固件
参数配置系统
固件提供了一套完整的参数系统,可通过 DroneCAN 或 MAVLink 访问。关键参数包括:
- LOCK_LEVEL:控制板的锁定级别。设置为非零值将阻止通过 DroneCAN 的所有参数更新
- UAS_TYPE、UAS_ID_TYPE 和 UAS_ID:重写 RemoteID BasicID 数据包中的 ID
- WEBSERVER_ENABLE:启用 WiFi 接入点和 Web 服务器
- PUBLIC_KEY1 到 PUBLIC_KEY5:用于验证固件更新和安全参数更新的公钥
DroneCAN参数界面
Web 服务器功能
固件内置 Web 服务器(当 WEBSERVER_ENABLE 参数启用时),WiFi 接入点使用来自 WIFI_SSID 和 WIFI_PASSWORD 的 SSID 和密码。默认 SSID 为 RID_xxxxxxxx(xxxxxxxx 为板的出厂 WiFi MAC 地址),默认密码为 ArduRemoteID。
Web 服务器提供安全的固件更新机制,只允许使用与参数中 5 个公钥之一对应的正确签名的固件。Web 服务器默认 URL 为 http://192.168.4.1。
安全特性
固件签名
要生成公钥/私钥对,请使用:
scripts/generate_keys.py 密钥与 ArduPilot 安全启动系统兼容。默认包含 3 个 ArduPilot 发布公钥。
签名 OTA 固件的命令示例:
scripts/sign_fw.py ArduRemoteID_ESP32S3_DEV_OTA.bin MyName_private_key.dat 1 锁定级别机制
LOCK_LEVEL 参数是供应商锁定 RemoteID 板以防止篡改的方法:
- LOCK_LEVEL=0:允许更改参数,只允许通过 Web 服务器升级已签名的固件
- LOCK_LEVEL=1:阻止通过 DroneCAN 或 MAVLink 界面的所有参数更改
- LOCK_LEVEL=2:设置 ESP32 eFuse 以防止通过 USB 端口进行固件更新
- LOCK_LEVEL=-1:跳过固件升级的所有检查
安全参数更新
一旦 LOCK_LEVEL 设置为 1 或 2,您需要使用 DroneCAN SecureCommand 接口或 MAVLink SECURE_COMMAND 接口来设置参数。
使用 DroneCAN GUI 工具进行安全参数更新:
RemoteID面板1
RemoteID面板2
GUI签名界面
项目应用场景
ArduPilot RemoteID Transmitter 适用于需要符合 FAA 和欧盟远程识别法规的无人机制造商和用户。无论是商业无人机操作还是个人娱乐飞行,该项目都能提供必要的合规性支持。此外,其灵活的参数配置和多种传输模式使其适用于各种复杂的飞行环境。
项目特点
- 合规性:符合 FAA 和欧盟的远程识别法规,确保无人机在全球范围内的合法飞行
- 多硬件支持:兼容多种开发板和商业产品,方便用户选择和集成
- 多传输模式:支持 WiFi 和蓝牙等多种传输模式,适应不同通信需求
- 双协议支持:同时支持 MAVLink 和 DroneCAN,提供灵活的通信选择
- 安全更新:内置 Web 服务器和固件签名机制,确保固件更新的安全性和可靠性
- 灵活配置:通过 DroneCAN 或 MAVLink 参数设置,用户可以灵活控制设备行为
ArduPilot RemoteID Transmitter 不仅是一个技术实现,更是一个推动无人机行业合规化发展的重要工具。无论您是无人机制造商还是个人用户,该项目都能为您提供强大的支持,确保您的飞行活动既安全又合法。