首页/新闻资讯/正文详情

无人机已经拿到UWB坐标,为什么还不能直接自主飞行?

发布时间:2026/9/24 17:30:47 来源:云帆数科 栏目:资讯中心
无人机已经拿到UWB坐标,为什么还不能直接自主飞行?
无人机已经拿到UWB坐标为什么还不能直接自主飞行有客户问了一个很具体的问题他想用无人机跟随一辆遥控车UWB模块已经装好了标签装在地面车上基站装在无人机上坐标数据和距离数据都已经读到了。他问接下来还要买什么特别提到了飞控。这个问题背后的核心其实是UWB输出了坐标和距离为什么不能直接驱动无人机自主飞行下面把从UWB坐标到无人机自主飞行之间缺的每一个环节拆开说清楚。01UWB输出的是什么先看UWB模块实际输出的数据长什么样。LinkTrack标签在DR_MODE0模式下通过NLink协议输出NODE_FRAME2帧。这个帧包含的内容有系统时间戳1926842 ms、位置精度因子eop0.06 m、0.09 m、2.55 m、三轴坐标pos2.782 m、-0.033 m、1 m、三轴速度vel-0.0006 m/s、0.0026 m/s、0 m/s。这些数据通过串口输出主控收到后按协议逐字节解码拿到浮点数值。这个帧是UWB系统能输出的最完整的地面定位信息了。但飞控不认这些。02第一道坎协议不通——飞控不认识NLink这是最直接的问题。几乎所有主流飞控PX4、ArduPilot、大疆SDK等都只认两种标准输入协议NMEA-0183传统GPS/北斗使用的文本协议输出$GPGGA、$GPRMC等标准语句MAVLink无人机生态使用最广泛的通信协议PX4和ArduPilot的原生协议UWB标签输出的NLink协议飞控不认。飞控收到一帧二进制数据会按照NMEA或MAVLink的格式去解析结果全是乱码。这时候飞控的判断是GPS信号无效——不是它不工作是它读不懂。解决办法有两个第一个办法是真的把它伪装成GPS。LinkTrack标签支持NMEA-0183输出协议输出GGA、GSA、RMC三种数据帧。GGA输出UTC时间、经纬度、定位质量指示符、有效卫星数这里对应UWB的基站数量、HDOP对应UWB的eop.xy、海拔高度对应UWB的pos.z。RMC输出地面速率和航向。这就相当于UWB在模拟一个GPS接收机飞控看到NMEA协议的数据流会以为接到了一个GPS模块。但这里有一个关键问题输出的经纬度不是真实的经纬度。标签的经纬度是基于从基站坐标系到WGS84坐标系的转换算出来的真正的做法是在基站安装时把A0A3连线朝向正东然后人工测量A0基站的真实经纬度在飞控里用代码对标签输出的伪经纬度加上偏差校正。第二个办法是绕开飞控的原生定位接口自己接管。在主控里比如STM32或者树莓派读取UWB的NLink协议数据自己写位置估计算法和控制逻辑然后通过MAVLink协议把期望航向和速度告诉飞控。飞控只负责底层的姿态稳定和电机控制不负责导航。这是行业里做跟随、巡检等定制化无人机应用的常见方式也是AutoRobo A地面车那套逻辑的空中版本——主控做决策执行器做动作。03第二道坎坐标系不对——UWB和飞控说的是两套坐标飞控使用的是NED坐标系北-东-地坐标系而UWB使用的是基站坐标系——以A0为原点、A0到A3连线为x轴正方向、x轴逆时针90度为y轴正方向、z轴垂直向上。如果基站安装时A0A3连线没有对准地理正东UWB的x轴方向就与飞控的北向不一致飞控收到的位置会完全对不上。无人机收到向右飞的指令实际却在往前飞。LinkTrack手册里关于NMEA输出的说明中明确表示用户需要测量出基站坐标系与WGS84坐标系的夹角在飞控中对伪GPS输出的经纬度做投影转换或者在安装基站时让A0到A3的连线朝向地理正东方向来对齐坐标系。此外A0基站默认的经纬度无法通过配置软件修改需要在飞控程序中对输出的经纬度加上偏差校正才能得到真实的经纬度。04第三道坎数据链不完整——UWB没有告诉飞控我要去哪即使协议通了、坐标系对上了还有一个最根本的问题UWB输出的是我现在在哪里而不是我接下来要去哪里。无人机自主飞行需要至少三样东西当前位置由UWB定位提供目标位置用户指定比如飞到坐标1052处或者跟随标签保持3米距离路径规划和控制算法怎么从当前位置到达目标位置UWB只解决了第一条。第二条 and 第三条需要用户或者主控来提供。以AutoRobo A的跟随逻辑为例它是这样解决的AOA Anchor输出Tag相对于Anchor的角度和距离主控把角度作为被控量、0度作为期望值当角度不为0时说明方向偏了通过PID算法控制转向直到角度归零。距离则采用区间控制——大于设定区间就前进、小于就后退。这个逻辑的核心在于主控明确知道期望状态是什么——角度0度、距离区间内。如果换成无人机跟随遥控车同样需要先定义好目标状态是保持在遥控车正上方、正后方3米还是以固定高度跟随05第四道坎基站和标签谁装在哪对于无人机跟随遥控车的场景有两种安装方案方案一基站装在无人机上标签装在遥控车上。Follow-Me用户手册里对无人机的安装建议是如果标签的工作空间高度低于载体比如无人机建议把Anchor安装在无人机机身下方。这意味着Anchor在无人机上朝下安装Tag在遥控车上。无人机上的Anchor通过测距测向输出遥控车上Tag相对于无人机的距离和方位角AOA模式。主控根据这个方位角来实时调整无人机的飞行方向保持朝向遥控车。方案二UWB定位网络部署在场地中无人机和遥控车上各装一个标签。在厂房内预先部署多个基站至少4个无人机上的标签和遥控车上的标签各自输出自身在基站坐标系下的坐标。主控拿到两个坐标后计算差值得出遥控车相对于无人机的位置向量然后控制无人机飞向那个位置。方案一适合室外无遮挡的跟随场景设备少、部署简单、不需要布设基站。方案二适合室内或需要高精度位置数据的场景需要预先部署基站但能提供绝对坐标。06第五道坎飞控还需要哪些数据UWB能提供位置 and 速度数据但飞控还需要其他传感器数据才能稳定飞行。标准无人机在GPS模式下飞行时飞控同时使用GPS、IMU加速度计/陀螺仪、磁力计、气压计的数据做融合姿态估计。如果完全用UWB替代GPS需要注意UWB的刷新率最高200Hz远高于普通GPS5-20Hz这对飞控来说是好事但UWB的定位精度受环境遮挡影响如果无人机在空中被设备或建筑遮挡了基站信号UWB的坐标就会跳变或失效部分飞控固件有需要不少于一定数量卫星才能解锁的逻辑使用伪GPS时需要修改源码绕过卫星数检测UWB标签本身也会振动尤其是无人机上的标签但LinkTrack手册明确说明振动对测距和定位没有影响LinkTrack手册中的QA部分还提到标签、基站、控制台等模块的刷新频率、波特率和协议参数可以各自独立设置。比如T0可以设50HzT1可以设10HzA0可以设1Hz。这意味着无人机上的标签和遥控车上的标签可以用不同的刷新率——无人机标签用高频输出自己的位置用于控制遥控车标签用低频省电。07总结从UWB坐标到自主飞行还差几步UWB输出坐标和距离↓[Step 1]协议转换NLink → NMEA-0183伪GPS或 MAVLink↓[Step 2]坐标系对齐基站坐标系 → NED 或 WGS84↓[Step 3]目标定义告诉飞控要去哪里不只是现在在哪↓[Step 4]控制策略位置 PID / 角度 PID / 跟随逻辑↓[Step 5]飞控融合UWB IMU 磁力计 气压计↓无人机自主飞行回到开头那个客户的问题UWB坐标已经拿到了为什么还不能直接飞因为UWB只解决了我在哪这一个问题完整的自主飞行还需要把UWB数据翻译成飞控认识的语言、对齐坐标系、定义飞行目标、写控制逻辑、做多传感器融合。标签无人机跟随 / UWB定位 / 飞控集成 / 协议转换 / 坐标系对齐 / 伪GPS / 自主导航参考资料[1] Nooploop, LinkTrack User Manual V2.3, 2023.[2] Nooploop, LinkTrack Datasheet V2.3, 2023.[3] Nooploop, Follow-Me User Manual V1.0, 2026.[4] Nooploop, LinkTrack AOA User Manual V1.1, 2024.[5] Nooploop, AutoRobo A User Manual V1.0, 2020.[6] PX4 Autopilot User Guide, GPS/RTK GPS, PX4 Development Team, 2024.[7] ArduPilot, Plane GPS Configuration, ArduPilot Dev Team, 2024.本文部分图片来源于网络版权归原作者所有如有疑问请联系删除。

相关推荐

grep 随笔记
grep 随笔记

grep -r 默认不跟随符号链接(要用 -R) -I 跳过二进制 ,file 看文件类型,ls -al 看软连接指向grep -n -E · 2026/9/24 17:30:41

在Python编程体系中,`from`是最核心的保留关键字之一,主要承担三大核心功能:模块精准导入、生成器委托执行、异常链式追踪
在Python编程体系中,`from`是最核心的保留关键字之一,主要承担三大核心功能:模块精准导入、生成器委托执行、异常链式追踪

在Python编程体系中,from是最核心的保留关键字之一,主要承担三大核心功能:模块精准导入、生成器委托执行、异常链式追踪,其中模块导入是最基础且高频的使用场景。 作为模块导入的核心语法,from...import...的设计初衷是… · 2026/9/24 17:30:41

WSL解决USB 串口连接问题与linux串口权限问题
WSL解决USB 串口连接问题与linux串口权限问题

WSL 2 运行在独立的轻量级虚拟机内,默认无法直接访问 Windows 宿主机的物理 COM 串口。解决该问题的标准方案是使用微软推荐的 usbipd-win 工具,通过 USB/IP 协议将 Windows 的物理 USB 串口穿透挂载到 WSL 2 中。 你的系统内核为 6.6.114.1-1&#xff0… · 2026/9/24 17:30:41

深入理解Git分支切换:原理、命令与避坑指南
深入理解Git分支切换:原理、命令与避坑指南

1. 切分支这么多年,你真的知道切的是什么吗git checkout dev或者git switch dev应该是大部分开发者每天敲得最多的命令之一。但说实话,很多人用了两三年 Git,对"切换分支"的理解还停留在"把当前代码变成另一个分支的样子"… · 2026/9/24 19:16:25

Java排序算法全解析:从面试八股到JDK源码与工程实践
Java排序算法全解析:从面试八股到JDK源码与工程实践

要说Java面试里最出戏的环节,排序算法绝对排得上号。我面过不少候选人,简历上写着"熟悉常用数据结构与算法",结果让手写个快排,三分钟憋出一个冒泡排序。反过来,也有人把快排背得滚瓜烂熟,但问他… · 2026/9/24 19:16:25

YOLOv8果蔬识别实战:从数据标注到模型训练完整指南
YOLOv8果蔬识别实战:从数据标注到模型训练完整指南

简介:一份面向计算机视觉大作业与毕业设计的YOLOv8果蔬识别系统完整项目包,适合具备一定深度学习基础、需要快速落地图像检测实战的学生。压缩包共120个文件,约27.18MB,涵盖Python源码、模型权重文件、YAML配置、JPG/PNG训练与验证… · 2026/9/24 19:16:25

d3dx9_43.dll缺失修复全攻略:原理、方法与避坑
d3dx9_43.dll缺失修复全攻略:原理、方法与避坑

最近游戏群里好几个朋友都在问同一个问题:打开老游戏时,系统直接弹窗提示“找不到d3dx9_43.dll文件”。对经常折腾电脑的人来说,这不算什么大事,但对普通用户来说,第一次遇到还挺慌的,生怕是电脑中了毒、硬… · 2026/9/24 19:16:24

外挂知识库问答系统实战:RAG检索增强生成从切片到API调用
外挂知识库问答系统实战:RAG检索增强生成从切片到API调用

简介:本资源是一套基于大语言模型API(支持本地部署或商用接口)的外挂知识库问答系统Python源码包,面向计算机、人工智能、通信工程等专业的在校学生、教师及企业开发者,可用于毕业设计、课程大作业、项目立项演示或技术… · 2026/9/24 19:16:24

办公Agent选型避坑指南:为什么本机离线能力比GitHub Stars更重要
办公Agent选型避坑指南:为什么本机离线能力比GitHub Stars更重要

1. 为什么“办公 Agent”不能只看 GitHub Stars?——从一场真实选型踩坑说起去年底,我接手一个内部效率工具重构项目:把散落在 Outlook、Excel、Teams 和本地文件夹里的周报生成、会议纪要整理、客户跟进提醒这三件事,用一个轻量级… · 2026/9/24 19:16:12

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码