无人机Remote ID Beacon 帧字段详解

 80 00 00 00 FF FF FF FF FF FF 60 60 1F B0 13 D0 60 60 1F B0 13 D0 00 00 10 4F F1 1A 00 00 00 00 A0 00 20 04 00 18 52 49 44 2D 31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41 DD 53 FA 0B BC 0D B0 F1 19 03 01 12 31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41 00 00 00 11 16 B5 00 00 AA 10 8D 12 5E 64 77 3D 3E 08 35 08 D0 07 4B 04 DB 01 0A 00 41 09 98 0F 8D 12 A5 64 77 3D 01 00 00 00 00 00 00 01 1A 08 0F 45 BF 0C 00 00 78 56 AD 

以上为抓取无人机Remote ID的原始16进制数据(部分位置数据修改)

802.11 Beacon 帧 + OpenDroneID 协议完整解析(151 字节,0-150 索引)

1. 帧类型与整体结构

十六进制数据为802.11 管理帧(Beacon 帧),承载 OpenDroneID 协议数据(“Remote ID”,协议标准名称为 OpenDroneID)。帧结构符合 IEEE 802.11-2020 规范,通过供应商特定信息元素(VSIE,类型 0xDD) 嵌入无人机标识、位置、操作者信息,总长度 151 字节(0-150 索引),无数据缺失。

2. 帧头部解析(0-35 字节,共 36 字节)

偏移(字节)长度(字节)字段十六进制值说明
0-12帧控制字段80 00管理帧(类型 = 0),子类型 = Beacon 帧(0x8000),无加密、无分片,符合信标帧标准。
2-32持续时间00 00标准填充值,用于避免帧冲突,无特殊业务含义。
4-96目的地址FF FF FF FF FF FF广播地址,Beacon 帧需向所有设备发送,确保周边接收端能捕获。
10-156源地址60 60 1F B0 13 D0发送设备 MAC 地址(推测为无人机的无线模块 MAC,或其关联 AP 的 MAC)。
16-216BSSID60 60 1F B0 13 D0基本服务集标识,与源地址相同→基础设施模式(Beacon 帧由 AP 发送,BSSID=AP MAC,源地址 = AP MAC,非自组织模式)。
22-232序列控制00 00帧序列号(0)+ 分片号(0),为初始帧,无分片。
24-318时间戳10 4F F1 1A 00 00 00 00设备内部计时戳(单位:微秒),用于同步接收端时钟,无 UTC 映射意义。
32-332信标间隔A0 00小端序转换为0x00A0=160,单位为 “1024 微秒”,计算为160×1024=163840微秒=0.16384秒)。
34-352能力信息20 04二进制00100000 00000100→支持 ESS(基础设施网络)、支持隐私保护(WEP 加密),无其他扩展能力。

3. 信息元素(IE)解析(36-146 字节,共 111 字节)

帧头部后为 IE 字段,包含 SSID 和 OpenDroneID 核心数据,IE 结构遵循 “类型(1 字节)+ 长度(1 字节)+ 数据(长度值字节) ” 规范。

3.1 SSID 信息元素(36-61 字节,共 26 字节)

偏移(字节)长度(字节)字段十六进制值说明
361IE 类型00标准 IE 类型,标识后续为 SSID 字段。
371IE 长度18十六进制0x18=24字节,对应 SSID 数据长度(与后续 38-61 字节共 24 字节匹配)。
38-6124SSID52 49 44 2D 31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41ASCII 转换为RID-1581F5YHX239H002450A,为无人机的 “远程标识关联 ID”,非直接序列号(序列号在 Basic ID 消息中)。

3.2 OpenDroneID 供应商特定 IE(62-146 字节,共 85 字节)

偏移(字节)长度(字节)字段十六进制值说明
621IE 类型DD供应商特定 IE(VSIE),标识后续为厂商自定义数据。
631IE 长度53十六进制0x53=83字节,对应后续数据长度(64-146 字节共 83 字节,62+1+83=146,范围正确)。
64-663OUIFA 0B BC供应商标识(ASD-STAN,无人机行业标准组织)
671App Code0DOpenDroneID 应用代码(0x0D)

4. OpenDroneID 消息解析(68-146 字节,共 79 字节)

64-67 字节为 “OUI(3)+App Code(1)” 共 4 字节,68 字节开始为 OpenDroneID 消息包,总长度146-68+1=79字节(与 IE 长度 83-4=79 匹配)。

4.1 消息包头部(68-71 字节,共 4 字节)

偏移(字节)长度(字节)字段十六进制值说明
681消息计数器B0递增计数器(0xB0=176),用于接收端去重或排序,无其他业务含义。
691消息类型 + 协议版本F1高 4 位0xF=15Message Pack(消息包,含多个子消息);低 4 位0x1F3411-20 (1.1)(协议版本)。
701子消息大小19十六进制0x19=25字节,单个子消息固定长度(符合 OpenDroneID 标准,所有子消息均为 25 字节)。
711子消息数量03共 3 个子消息(类型 0、1、4),无类型 2/3(可选消息,非强制发送)。

4.2 子消息 1:Basic ID 消息(72-96 字节,类型 0,共 25 字节)

偏移(字节)长度(字节)字段十六进制值说明
721消息类型 + 协议版本01高 4 位0x0=0Basic ID(基本标识消息);低 4 位0x1F3411-20 (1.1)
731ID 类型 + 无人机类型12高 4 位0x1Serial Number (ANSI/CTA-2063-A)(序列号类型);低 4 位0x2Helicopter (or Multirotor)(多旋翼)。
74-9320无人机序列号31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41ASCII 转换为1581F5YHX239H002450A,与 SSID 前缀一致,为无人机唯一序列号。
94-963保留字段00 00 00协议预留,无数据,填充 0。

4.3 子消息 2:Location/Vector 消息(97-121 字节,类型 1,共 25 字节)

偏移(字节)长度(字节)字段十六进制值说明
971消息类型 + 协议版本11高 4 位0x1=1Location/Vector(位置消息);低 4 位0x1F3411-20 (1.1)
981状态 + 标志16高 4 位0x1On Ground(地面状态,未起飞);低 4 位0x6(二进制0110)→bit2=1:高度类型AGL(离地高度);bit1=1:东西方向West(西向);bit0=0:速度乘数0.25
991方向B5原始值0xB5=181°,结合西向标志→181+180=361°361°=Unknown
1001水平速度00原始值0× 乘数0.25=0 m/s(地面静止)。
1011垂直速度00原始值0×0.5 m/s(协议单位)=0 m/s(无升降)。
102-1054无人机纬度AA 10 8D 12小端序重组为12 8D 10 AA0x128D10AA=311230730,协议单位1e-7 °311230730÷1e7=31.123073°(北纬)。
106-1094无人机经度5E 64 77 3D小端序重组为3D 77 64 5E0x3D77645E=10312346541031234654÷1e7=103.1234654°(东经)。
110-1112气压高度3E 08小端序重组为08 3E0x083E=2110,协议公式(值×0.5)-10002110×0.5-1000=55米
112-1132大地高度35 08小端序重组为08 350x0835=21012101×0.5-1000=50.5米
114-1152AGL 高度D0 07小端序重组为07 D00x07D0=20002000×0.5-1000=0米(地面状态)。
1161精度组合4B高 4 位0x4vertAccuracies[4]=<10 m(垂直精度);低 4 位0xBhorizAccuracies[11]=<3 m(水平精度)。
1171气压 / 速度精度04高 4 位0x0vertAccuracies[0]>=150 m(气压高度精度);低 4 位0x4speedAccuracies[4]=<0.3 m/s(速度精度)。
118-1192小时内时间戳DB 01小端序重组为01 DB0x01DB=475,协议单位0.1秒475×0.1=47.5秒
1201时间戳精度0A低 4 位0xA0xA×0.1=1.0秒(时间戳精度);高 4 位保留(0x0)。
1211保留字段00协议预留。

4.4 子消息 3:System 消息(122-146 字节,类型 4,共 25 字节)

偏移(字节)长度(字节)字段十六进制值说明
1221消息类型 + 协议版本41高 4 位0x4=4System(系统消息);低 4 位0x1F3411-20 (1.1)
1231系统标志09二进制00001001→高 4 位0x0(系统状态:正常运行);低 4 位0x9(保留,非原 “系统状态 + 保留”,协议无低 4 位定义)。
124-1274操作者纬度98 0F 8D 12小端序重组为12 8D 0F 980x128D0F98=311234456311234456÷1e7=31.1234456°(北纬)。
128-1314操作者经度A5 64 77 3D小端序重组为3D 77 64 A50x3D7764A5=10312347251031234725÷1e7=103.1234725°(东经)。
1321操作者高度类型01OperatorLocTypes[1]=Dynamic(动态位置,非原 “大地水准面”)。
133-1342操作者高度00 00小端序0x0000=0,协议单位0.5米0×0.5=0米(相对大地水准面)。
135-1384系统时间戳00 01 1A 08小端序重组为08 1A 01 000x081A0100=135921920。OpenDroneID 协议系统时间戳 epoch 为2019-01-01 00:00:00(Unix 时间戳 1546272000),计算为1546272000+135921920=1,682,193,920
1391无人机分类0F此处为分类字段,非类型字段。
140-1456保留字段45 0F 8D 12 A5 64协议预留,含厂商自定义数据(如硬件版本)。
1461保留字段45协议预留,填充 0x45,非原 “校验位”(校验位在帧尾部 FCS 中)。

5. 帧尾部:填充位与 FCS(147-150 字节,共 4 字节)

此部分为 802.11 帧强制字段:

偏移(字节)长度(字节)字段十六进制值说明
147-1482填充位00 00802.11 帧要求总长度≥2346 字节(无线传输最小帧长),此处为凑足长度的填充值,无业务含义。
149-1502FCS(帧校验序列)56 AD循环冗余校验(CRC-16),确保数据完整性(非原 “消息包校验位”)。

Read more

AI调参技巧:贝叶斯优化Optuna

AI调参技巧:贝叶斯优化Optuna

AI调参技巧:贝叶斯优化Optuna 📝 本章学习目标:本章聚焦性能优化,帮助读者提升模型效率。通过本章学习,你将全面掌握"AI调参技巧:贝叶斯优化Optuna"这一核心主题。 一、引言:为什么这个话题如此重要 在人工智能快速发展的今天,AI调参技巧:贝叶斯优化Optuna已经成为每个AI从业者必须掌握的核心技能。Python作为AI开发的主流语言,其丰富的生态系统和简洁的语法使其成为机器学习和深度学习的首选工具。 1.1 背景与意义 💡 核心认知:Python在AI领域的统治地位并非偶然。其简洁的语法、丰富的库生态、活跃的社区支持,使其成为AI开发的不二之选。掌握Python AI技术栈,是进入AI行业的必经之路。 从NumPy的高效数组运算,到TensorFlow和PyTorch的深度学习框架,Python已经构建了完整的AI开发生态。据统计,超过90%的AI项目使用Python作为主要开发语言,AI岗位的招聘要求中Python几乎是标配。 1.2 本章结构概览 为了帮助读者系统性地掌握本章内容,我将从以下几个维度展开: 📊 概念解析 → 原理推导 → 代

Flutter 组件 genkit 的适配 鸿蒙Harmony 实战 - 驾驭大模型开发套件、实现鸿蒙端 AI 智能流式响应与提示词工程自动化方案

Flutter 组件 genkit 的适配 鸿蒙Harmony 实战 - 驾驭大模型开发套件、实现鸿蒙端 AI 智能流式响应与提示词工程自动化方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 genkit 的适配 鸿蒙Harmony 实战 - 驾驭大模型开发套件、实现鸿蒙端 AI 智能流式响应与提示词工程自动化方案 前言 在鸿蒙(OpenHarmony)生态向智能化、全场景自动化的演进过程中,“生成式 AI(Generative AI)”不再仅仅是一个噱头,而是重塑应用交互逻辑的核心底座。面对日益复杂的 LLM(大语言模型)调用链路、层出不穷的提示词(Prompt)版本管理以及对实时流式响应(Streaming)的严苛要求。如果仅仅依靠原始的 HTTP POST 请求。那么不仅会导致开发效率极低。更难以应对 AI 业务中常见的“幻觉审计”与“多模型动态切换”等高阶挑战方案。 我们需要一种“开发者友好、

【AIGC】ChatGPT保护指令:高效提升GPTs提示词与知识库文件的安全性

【AIGC】ChatGPT保护指令:高效提升GPTs提示词与知识库文件的安全性

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏: AIGC |GPTs应用实例 文章目录 * 💯前言 * 💯新建未加保护指令的GPTs * 测试获取GPTs的提示词Prompt指令与知识库文件 * 💯给GPTs添加保护指令 * 方法一 * 方法二 * 方法三 * 方法四 * 💯增强GPTs安全性的其他建议 * 💯小结 * 关于GPTs指令如何在ChatGPT上使用,请看这篇文章: 【AIGC】如何在ChatGPT中制作个性化GPTs应用详解     https://blog.ZEEKLOG.net/2201_75539691?type=blog * 关于如何使用国内AI工具复现类似GPTs效果,请看这篇文章: 【AIGC】国内AI工具复现GPTs效果详解     https://blog.ZEEKLOG.net/2201_75539691?type=blog 💯前言 在 人工智能技术快速发展 的今天,ChatGPT 以其强大的对话能力和广泛的应用场景深受关注。然而,随着其功能的广泛使用,安全性问题也逐渐浮

别等这波 AI 算力浪潮过去才后悔:CANN 应该学什么?

别等这波 AI 算力浪潮过去才后悔:CANN 应该学什么?

别等这波 AI 算力浪潮过去才后悔:CANN 应该学什么? 昇腾 CANN 这几年是真在 “狂飙”,生态越做越大、功能越来越多、文档越写越厚…… 但问题也随之出现: CANN 支持 Python、C++、AscendCL、TBE、MindSpore、PyTorch Frontend、Kernel DSL……这么多"语言",到底学哪个?从哪入门? 别急,今天就给你一次性讲透,看完不再迷茫。 CANN 语言体系到底有多复杂? 整个 CANN 软件栈由多层 API 和 Kernel 构成,所以才会出现一堆「看似不同,实则分工明确」的语言接口 为了简化理解,我们可以把它粗暴分成三层: * 高层:框架调用