朝花夕拾
0. 什么是 Remote ID ?
1. 一些概念
-
符合美国航空管理局FAA规定的一些 Remote ID 设备有哪些?
https://uasdoc.faa.gov/listDocs -
欧美的Remote ID规范
美国:先制定了ASTM F3411-22a规范; 后来为了满足NoA的要求又制定了F3586规范。
欧洲:ASD-STAN prEN 4709-002 规范。 -
符合中国的Remote ID的规范呢?
民用微轻小型无人驾驶航空器运行识别最低性能要求(试行).pdf
民用无人驾驶航空器系统安全要求.pdf
可知中国制定的Remote ID规范参考了美国和欧洲制定的规范。 -
中国的监管平台
国家无人驾驶航空器一体化综合监管服务平台 -
ardupilot生态中可用的 Remote ID 设备有哪些?
- 开源方案:OpenDroneID。
- 闭源设备(方案),具备独立供电独立获取GPS信息,通过mavlink与autopilot连接,如:
Aerobits idME+
AEROENTRY remote id (Japan)
BlueMark DroneBeacon with Battery
BlueMark DroneBeacon External Power
BlueMark DroneBeacon FPV
Braveridge remote id (Japan)
Dronetag BS
EAMS Robotics remote id (Japan)
TEAD remote id (Japan)
Dronetag Mini
Dronetag Beacon
-
OpenDroneID开源方案兼容哪些型号的硬件设备?
- BlueMark DroneBeacon MAVLink Family(EU, US)
- Cube ID
- Cube ID_CAN
- Dronetag DRI
- Holybro Remote ID Module
- Wurzbach Electronics
- mRo RemoteID
- ESP32开发板(推荐使用)
2. OpenDroneID
- OpenDroneID是实现 Remote ID的开源方案。
- 4.2 +版本的ardupilot兼容OpenDroneID功能,连接方式:DroneCAN 或 mavlink(串口)。
- 要适配OpenDroneID功能,ardupilot需自定义编译固件,设定一些相关的参数:
https://ardupilot.org/dev/docs/opendroneid.html#opendroneid - ardupilot团队用
ESP32
开发了一套可以实现OpenDroneID
功能的开源固件名叫ArduRemoteID
3. ArduRemoteID
- ArduRemoteID 源码、文档:https://github.com/ArduPilot/ArduRemoteID
- 如何编译适配OpenDroneID功能的ardupilot固件?如何下载ArduRemoteID固件到ESP32? 如何连接?如何测试??
https://ardupilot.org/dev/docs/opendroneid.html#opendroneid
需要特别注意的是,在编译具有RemoteID功能的固件时,需要锁定一些参数的值如GPS、AHRS 等。 - 一篇很好的文档:简述了如何在ardupilot中使用OpenDroneID、ArduRemoteID,包括固件编译、参数配置、使用说明:ArduPilot presentation on its OpenDroneID implementation
- 测试软件
接收wifi、蓝牙数据并解析
安卓:OpenDroneID OSM 、 DroneScanner
其他:https://github.com/opendroneid/opendroneid-core-c#receiver-examples
4. opendroneid-core-c 库
ArduRemoteID能实现OpenDroneID主要是因为使用了这个开源库opendroneid-core-c。
该存储库提供了一个C代码函数库,用于编码和解码(打包/拆包)Open Drone ID消息,其格式在ASTM F3411 Remote ID和ASD-STAN prEN 4709-002 Direct Remote ID规范中定义。请参阅下面的规范部分中的更多详细信息。
opendroneid-core-c代码适用于通过蓝牙或Wi-Fi广播远程ID信息的实现。
MAVLink 和 DroneCAN 都发布了与RemoteID相关的消息集(message set),请参阅他们各自的文档。
如MAVLink OpenDroneID messages:
- RemoteID接收器
安卓、ios、windows、linux
https://github.com/opendroneid/opendroneid-core-c?tab=readme-ov-file#receiver-examples - RemoteID发射器
如使用ESP32
https://github.com/opendroneid/opendroneid-core-c?tab=readme-ov-file#transmitter-examples - opendroneid-core-c 如何编译?如何使用?
- The ESP32 transmitter has an unexplained problem with the Wi-Fi Beacon signals.???
https://github.com/opendroneid/opendroneid-core-c?tab=readme-ov-file#contribution-suggestions
安卓app接受不到通过Wi-Fi发射的RemoteID数据祯?(beacon祯)????????????? - 与RemoteID相关规范、标准
参考1:opendroneid-core-c
参考2:What are ASTM and ASD-STAN Remote ID standards?- UA serial number 格式规范:https://shop.cta.tech/products/small-unmanned-aerial-systems-serial-numbers
- 美国:ASTM F3411-22a;F3586;
- 欧洲 :ASD-STAN prEN 4709-002;
- 日本:与美国同;
- remote ID protocol version
略…
5. OpenDroneID 原理
飞控会通过串口向 transmitter 模块发送 MAVLink OpenDroneID messages ,或通过can口向 transmitter 模块发送 DroneCAN messages,messages 主要有以下几种类型:
- Basicld
- SelflD
- OperatorlD
- System
- Location
- Authentication
- Message Pack
transmitter模块向飞控只发送一种类型的 messages:
- ArmStatus:取值arming ok/not-ok
飞控中,DroneCAN messages 的内容是复制于 MAVLink OpenDroneID messages. 因此想要修改发送的内容,要先从MAVLink OpenDroneID messages消息改起,然后再改opendroneid-core-c中的相关代码,再根据需要改DroneCAN messages。
MAVLink OpenDroneID messages的内容格式定义遵循以下规范、标准:
- ASTM F3411 Specification for Remote ID and Tracking
- ASD-STAN prEN 4709-002 Direct Remote Identification
OpenDroneID所有类型的报文格式请参考:
【1】民用微轻小型无人驾驶航空器运行识别最低性能要求(试行).pdf
【2】 ASTM F3411-22a.
【3】ASD-STAN prEN 4709-002.
【5】What are ASTM and ASD-STAN Remote ID standards?
【4】查看源码 opendroneid-core-c
如 Basicld 报文:
6. ArduRemoteID 调试和开发
ArduRemoteID 兼容的硬件平台
- the ESP32-S3 dev board
- the ESP32-C3 dev board
- a Bluemark DB110 (legacy)
- a Bluemark DB200
- a Bluemark DB201
- a Bluemark DB2