- 博客(65)
- 资源 (7)
- 收藏
- 关注
原创 自抗扰ADRC控制算法简单介绍
摘要: 自抗扰控制(ADRC)通过实时估算并补偿系统总扰动,显著提升控制性能。与PID控制被动响应误差不同,ADRC包含三大核心模块:**跟踪微分器(TD)**平滑目标信号,**扩张状态观测器(ESO)**将内部参数变化、外部干扰等打包为“总扰动”实时观测,**非线性误差反馈(NLSEF)**结合扰动补偿生成控制量.
2026-07-01 16:53:23
194
原创 Kilometer-Scale 千米级低空地形匹配:ICRA 2026 无人机 GNSS 拒止长航导航系统解析
在电磁干扰、战场环境、城市峡谷等场景中,GNSS 信号极易失效,而传统视觉定位、视觉惯性里程计(VIO)存在长距离累计漂移问题,无法支撑数千米级低空无人机自主飞行。传统地形辅助导航(TRN)依赖绝对高程值匹配,易受气压计噪声、地面坡度、局部遮挡影响,且大多需要高密度三维地图,部署成本高、算力开销大。针对9km 超长航、25 米超低空、无 GNSS、无稠密离线地图的极限挑战,捷克理工大学 MRS 团队在 ICRA 2026 提出一套基于高程图梯度的地形匹配 + 聚类粒子滤波完整机载导航系统。
2026-06-15 22:13:59
390
原创 GeoFuse 深度解析:融合路网几何先验的全天候无人机视觉定位框架
2026 年 5 月发布的 GeoFuse 提出一套轻量化跨模态融合框架:将卫星视觉特征与 OS 路网几何特征深度结合,通过动态门控自适应调节双模态权重,搭配类别级对比学习,实现全天候、强鲁棒无人机跨视角地理定位。该方案无需额外采购高精度地理数据,复用全球免费路网资源,改造成本低、工程落地性极强。
2026-06-15 21:59:45
525
原创 GeoBridge 深度解析:语义锚定多视图基础模型,重塑无人机跨视角地理定位
GeoBridge:语义锚定的多视图基础模型,实现跨视角地理定位 吉林大学等团队提出的GeoBridge突破了传统卫星中心范式,以文本语义为桥梁,实现无人机、街景、卫星多视图的跨模态地理定位。该模型通过独立视觉编码器提取多源图像特征,并以共享文本编码器生成的语义特征为锚点,利用多任务对比损失对齐跨视图特征。GeoBridge支持双向图像匹配与文本-图像检索,在University-1652等基准上刷新SOTA(平均定位误差7.2m),配套开源的GeoLoc数据集(5.2万组三视图样本)填补了多视图地理数据空
2026-06-11 11:35:13
494
原创 GRiM-Net 深度解析 | 无人机 GNSS 拒止场景下两阶段跨视角视觉定位框架
摘要: 电子科技大学团队提出GRiM-Net,一种两阶段跨视角视觉定位框架,用于GNSS拒止环境下的无人机导航。该框架通过全局检索(快速筛选候选区域)和像素级精配准(双向关键点匹配+加权单应变换)实现高效高精度定位,并引入域自适应批量归一化缓解无人机航拍与卫星图像的视角差异。实验表明,GRiM-Net在嵌入式平台(Jetson Nano)上定位误差仅10.2米,优于传统算法,尤其适用于城镇巡检等场景。其轻量化设计和联合优化策略显著提升工程落地性,但依赖离线地图且对极端天气敏感。未来趋势倾向于多级流水线与多源
2026-06-11 11:06:39
407
原创 PiLoT:基于视觉无人机定位解决方案 项目代码解析
PiLoT是一个统一的神经像素到3D配准框架,用于无人机(UAV)自我定位和目标定位。功能描述自我定位 (Ego-localization)从无人机视频帧估计其6-DoF位姿(位置+姿态)目标定位 (Target-localization)将图像中的任意像素反投影到地理坐标 (经纬高)
2026-05-18 15:45:14
381
原创 PiLoT:神经像素到三维配准 —— 无人机自定位与目标地理定位论文精读
位姿与变换T % 6-DoF相机位姿 R|tR % 旋转矩阵 SO(3)t % 平移向量π(·) % 针孔投影函数π^{-1}(·) % 反投影函数I % 实时航拍帧M_3D % 地理参考3D地图F % 2D图像特征图X % 3D点云/地图点X_geo % 目标点的全局地理坐标u % 图像像素坐标 (u,v)
2026-05-18 15:31:23
560
原创 模型预测控制(MPC)-用ACADO解决无人机控制大姿态稳定问题
在四旋翼无人机控制领域,飞机大姿态稳定,例如抛飞功能是一个极具挑战性的场景——无人机从被抛出到稳定悬停的过程中,需要在极短时间内完成姿态恢复和高度控制。传统的PID控制难以应对这种强非线性、快时变的系统,而**非线性模型预测控制(NMPC)**提供了一个优雅的解决方案。本文将从实践角度介绍ACADO工具箱生成的NMPC控制器,并结合实际项目中的抛飞控制模块,分享开发经验。MPC是一种基于优化的先进控制策略,其核心思想:1. 使用系统的数学模型预测未来一段时间内的行为;
2026-05-18 15:00:23
625
原创 Bearing-UAV:纯视觉驱动的跨视角无人机导航系统-代码解析
Bearing-UAV是一种纯视觉无人机导航系统,通过跨视角定位技术实现精准导航。该系统核心创新在于联合预测无人机的位置坐标(x,y)和航向角,采用CSMG模块进行特征聚类和相似度计算,结合Non-Local注意力机制捕获长程依赖关系。项目包含Bearing-UAV-90K多城市数据集,支持端到端训练和测试,并提供Bearing-Naver导航框架实现路径规划。技术亮点包括跨视角特征融合、轻量化设计和多任务联合优化,在复杂城市场景中展现出鲁棒性能。开源代码和数据集已发布在GitHub仓库。
2026-05-07 18:06:11
435
原创 Beyond Matching to Tiles: Bridging Unaligned Aerial and Sat 论文总结
浙江大学最新开源研究Bearing-UAV提出纯视觉无人机定位新范式,突破传统切片匹配限制,直接通过单张无人机图和4张卫星图端到端回归绝对位置与航向角。该研究首创全局-局部统一特征提取器(GLUF)和相对坐标编码(RCE),采用交叉注意力机制解决跨视角不对齐问题,在特征稀疏环境下仍保持鲁棒性。模型仅66MB,单步推理133ms,定位误差8.61米,航向误差12.9度,性能超越现有SOTA方法。配套开源的Bearing-UAV90K数据集包含9万跨视角样本,覆盖4个城市场景,为相关研究提供重要基准。这项技术实
2026-05-07 17:44:20
430
原创 NaviLoc 算法核心公式与算法描述详细整理
为统一公式解读,先明确论文中核心符号的含义,未标注维度的均为标量 / 二维向量:表格符号含义维度 / 类型N无人机航拍查询帧数量正整数M卫星参考底图瓦片数量正整数第i帧查询图像的视觉描述子D×1向量所有查询帧的描述子集合N×D矩阵第j张卫星参考瓦片的视觉描述子D×1向量所有参考瓦片的描述子集合M×D矩阵VIO 输出的第i帧局部坐标系位置2×1向量VIO 局部轨迹N×2矩阵VIO 相邻帧的位移量(N−1)×2矩阵第j张卫星参考瓦片的地理坐标2×1向量。
2026-04-29 11:47:15
719
1
原创 NaviLoc - GNSS 拒止环境下无人机空对地卫星视觉定位算法 论文整理
论文总结:本文提出—— 一种无需训练、基于轨迹级优化的 GNSS 拒止环境下无人机空对地卫星视觉定位算法,该算法通过三阶段流程,融合视觉惯性里程计(VIO)相对运动先验与视觉位置识别(VPR)匹配信息,在 50–150m 低空农村无人机场景的实测中实现,较当前最优 VPR 方法 AnyLoc-VLAD 精度提升、较原始 VIO 漂移提升,且在树莓派 5 上实现端到端实时推理,仅依赖 CPU 即可嵌入式部署;
2026-04-29 10:35:05
749
原创 EGO-PLANNER轨迹优化整理
EGO-Planner是一种基于梯度优化的无人机局部路径规划算法,由浙江大学高飞团队提出。其核心特点是通过构建包含平滑性、避障安全性和动态可行性的目标函数,将路径规划转化为数学优化问题,避免了传统方法对环境距离场的依赖。算法采用五阶多项式生成初始轨迹,通过B样条拟合和L-BFGS优化器进行轨迹优化,实现实时避障和动态调整。文章还介绍了三种轨迹模式(巡航、定点、连续变速)的实现方法,包括轨迹生成、时间计算和约束处理等关键技术细节,展示了该算法在复杂环境中的高效性和灵活性。
2026-03-12 18:14:26
791
原创 Protobuf 调试踩坑记录
这是一次记录在使用protobuf中踩坑的记录,也对nanopb工具更熟悉了一些,做一次记录整理,也希望能给其他遇到坑的同学一些帮助
2023-08-04 15:18:21
1099
原创 nanomsg应用中的问题整理
整理最近调试nannomsg遇到很多坑,写个博客整理一下1.消息接收这里我在项目中遇到一个坑的地方:在一个Nanomsg类中实现消息接收,class Nanomsg{ bool Nanomsg_slave:: recv(uint8_t *data , int &len) { len = nn_recv(_sock, &data, NN_MSG, 0); print
2022-04-20 16:21:29
1390
原创 px4添加遥控器开关快捷校准磁罗盘
功能描述:仿照大疆飞机,遥控器开关快速拨动三次触发校准磁罗盘任务原理: 遥控器配置第六通道,在commander模块添加订阅遥控器通道值根据通道值变化判断进入磁罗盘校准的逻辑编程逻辑:修改commander文件,添加遥控器通道订阅,在主函数循环中定义计数位根据开关拨动计数,三秒内计数六次发送校准磁罗盘的指令在主程序的循环里添加以下代码//PX4_INFO("_rc_channels.channels[5]:%3.6f\r\n",(double)_rc_channels.channels
2021-07-26 14:34:26
1001
原创 ros添加配置文件yaml读取参数
在windos下做桌面应用开发,常用.ini文件在做ros开发中遇到了同样的问题,一些参数需要根据需求修改,但是修改频率又不是很高,这时候可以配置一个yaml文件读取参数首先需要在电脑上配置好yaml的库GitHub上下载yaml-cpp的源码https://github.com/jbeder/yaml-cppgit clone https://github.com/jbeder/yaml-cpp.git然后进入目录创建build文件编译安装mkdir buildcd buil
2021-07-20 14:53:13
9459
原创 px4室内飞行通过SLAM发送位置消息
先按照官方的教程设置好飞控参数http://docs.px4.io/master/zh/computer_vision/visual_inertial_odometry.html下载源码学习:https://github.com/Auterion/VIO主要逻辑就是机载电脑将视觉信息转换为飞机可接受的位置消息通过mavros发送给飞控,从而实现室内定点导航,路径规划等功能我们需要使用、mavros中的odomtry消息给飞控发送位置信息,在仿真调试时候使用rostopic发送消息,关
2021-06-25 15:03:47
965
原创 mavros操作飞机时方向位置改为机体坐标系下指令
前面试了很多,看官网里的说明用 /mavros/setpoint_raw/local"里的frame_id改为"base_link" 不行又直接发mavros_msgs/PositionTarget 修改里面的type_mask把忽略的都加上,但还是没用,飞机依然按照全局位置飞行最后搞了好几天,才弄懂,只需要一行代码就搞定了。节点声明ros::NodeHandle node;node.setParam("mav_frame", 8);//Frame_body_ned=8这个参数从很多消息
2021-05-17 17:06:54
1731
1
原创 px4任务模式执行流程
贴图,整个流程还是需要熟悉代码顺下来的,这是我初学px4时整理的,有点太细了,不过就这么顺一遍,就全清晰了,自己写航迹规划的模块时也有了参考
2021-04-07 10:45:14
977
3
原创 目标跟踪算法研究整理
最近项目有用到目标跟踪的算法,用的还是传统opencv,整理一下1.基础框架目标跟踪基础认识视频图像跟踪算法综述opencv实现目标跟踪的八种算法2.CSRT追踪器CSRT追踪器官方描述在具有通道和空间可靠性的判别相关滤波器(DCF-CSR)中,我们使用空间可靠性图将滤波器支持调整为从帧中选择区域的一部分以进行跟踪。 这确保了所选区域的放大和定位,并改善了对非矩形区域或对象的跟踪。 它仅使用2个标准功能(HoG和颜色名称)。 它还以相对较低的fps(25 fps)运行,但为对
2021-03-11 17:06:41
5401
原创 px4直升机混控逻辑整理
目录一、直升机混控矩阵的介绍:二、源代码解读一、直升机混控矩阵的介绍:直升机混控:直升机混控将三个控制输入(roll,pitch,thrust)组合为四个输出(斜盘伺服系统和主电机ESC设置)。直升机混控的第一个输出是主电机的油门设置。 随后的输出是斜盘伺服器。 可以通过添加简单的混合器来控制尾桨。推力控制输入既用于主电动机设置,也用于斜盘的总螺距。 它使用油门曲线和俯仰曲线,均由五个点组成。混合器定义以以下内容开头:H: <number of swash-.
2021-03-01 14:45:36
2479
原创 整理px4飞控校准机制和qgc校准机制
用qgc执行 px4飞控传感器校准时 的步骤确实很麻烦,磁罗盘需要转6个面,加速度计也需要6个面。大疆无人机的校准很简单,加速度计需要静置一会,磁罗盘校准也就转一个面就行了,就算学不来大疆,也适当在可行范围简化一下px4的校准步骤,抱着这个目的,整理一下px4和qgc的交互的校准机制。一、飞控解锁前的自检机制 这个也比较恶心,飞机用的过程中突然就解不了锁了,重新上下电又好了自检程序调用在commander模块,run函数里while循环的前面PreFlightCheck::pre...
2021-01-29 11:37:06
5124
3
原创 px4飞控和qgc通信机制整理
连接多架飞机时老是不反应,整理一下飞控和qgc的通信机制吧全部消息整理出来太庞大了,以心跳包做个示例,打字太累,直接贴图,qgc的后面再补上
2021-01-03 18:44:27
2836
3
原创 px4log日志文件名和qgc下载的日志文件名称的修改
在飞多架无人机的时候,会给飞机修改设备编号id,地面站默认的sys_id设置范围1~255在读取多个飞机的log日志时候,如果能够直接生成带着飞机编号的log文件是最好的,调研了一下,发现修改log的名称需要两个地方,一个是飞控端,生成的log存放在内存卡中。另一个是地面站QGC读取飞控的内存生成文件,这样是方便不用拆开机架方便读取。1.px4 log日志文件的名称修改生成log名称的代码路径//src/modules/logger/logger.cpp 1151行可以看到代码段..
2020-12-11 17:52:27
2463
原创 QGC程序框架简单解析
QGC地面站功能很强大,界面也做的很好看,不过代码量也是很庞大,二次开发难度挺大的,自己看了好几天还是一头雾水,晚上资料也大都不齐,最后还是买了阿木社区的课程参考一下,说实话,课程讲的真不咋地,虽然是个声音很好听的妹子在讲课不过也不是专业讲课的就有时很难懂有时很啰嗦,而且版本不一样很多文件对应不上,不过买课程就有文档资料,里面有了大致的框架介绍自己就能看懂代码了,做个整理分享一下自己的理解。同样的话,二次开发前提是有基础,懂c++语言,熟悉qt,以及px4飞控至少要了解一些飞控任务机制和mavlink协
2020-12-02 11:53:50
2919
3
原创 QGC编译报错error C2220: 警告被视为错误 最佳解决方法
前面搜了一下,试过各种方法依然报错,先整理别人的解决方法目录一、重新保存文件二,更改编码方式三、最终解决方案:修改配置文件一、重新保存文件注意这里的配置“Wx/WX-”二,更改编码方式这是编码问题,可通过换成GB2312来解决,如图:一定要选择,“按编码保存”,笔者选择“按编码重新载入”,还有会报错同样其他问题,也用相同的方法解决:三、最终解决方案:修改配置文件原理就是修改make的设置,如第一种方法说的那样,将警告视为错误的选项改为 “否”,这里.
2020-10-19 16:52:13
3879
3
原创 匿名飞控解析GPS协议
匿名飞控写了一部分的gps解析的代码,但在实际应用时候发现了问题,使用之前给pixhawk配的gps,debug中断调试发现也是收到数据了,但是消息数全是错的很杂乱,再去翻文档,发现匿名飞控支持的gps协议为u-blox的,再去网上搜u-blox协议,发现之前用的就是u-blox协议,然后顺便又发现了个软件u-center,是专门调试u-blox协议的导航模块,然后使用串口接上gps模块,发现了波特率的设置为9600,而且可以更改,u-center使用说明网上可以搜到再去看匿名飞控的波特率接收设置,
2020-08-31 19:21:47
3581
1
原创 匿名飞控修改pwm输出脉宽和频率
项目中要用到飞控板去控制一个单独的pwm电子开关,但是这个电子开关只有在输入特定脉冲频率和脉宽的作用下会执行开关作用。因为也是一直做上层算法,缺少底层开发经验,网上也没有现成的技术文档告诉我怎么改,只能硬着头皮查资料看代码,终于解决了问题,这里记录一下。匿名飞控的pwm输出配置文件在目录SRS/driver/Drv_pwm_out.c文件下这个函数PWM_Out_Init()//21分频到 84000000/21 = 4M 0.25us/*初始化高电平时间1000us(4000份)*/
2020-08-31 18:45:30
2330
原创 匿名飞控线程初始化和调度是怎么实现的
目录一、线程初始化先看下Scheduler_Setup()函数,二、任务调度器函数在文件Ano_Scheduler.c中,Scheduler_Setup()初始化后,在while循环中执行Scheduler_Run()一、线程初始化先看下Scheduler_Setup()函数,void Scheduler_Setup(void){ uint8_t index = 0; //初始化任务表 for(index=0;index < TASK_NUM;index++)
2020-06-04 10:23:45
849
原创 匿名飞控设备初始化All_Init()函数代码整理
初始化All_Init();函数在BSP_Init.c中看下源程序u8 All_Init(){ NVIC_PriorityGroupConfig(NVIC_GROUP); //中断优先级组别设置 SysTick_Configuration(); //滴答时钟 Delay_ms(100); .
2020-06-03 16:05:50
1332
原创 匿名飞控程序整理
主程序框图如下,接下来我会将各个模块全部单独整理出来,一是分享,也是给自己留个便于查阅主函数main.cint main(void){ flag.start_ok = All_Init(); //进行所有设备的初始化,并将初始化结果保存 Scheduler_Setup(); //调度器初始化,系统为裸奔,这里人工做了一个时分调度器 while(1)...
2020-06-03 14:16:51
2213
2
原创 基于opencv做图像处理的经验总结
其实很久之前就有做过图像处理的项目,是做关于无人机的目标跟踪的项目,不过那会也是刚接触图像处理,写起代码就是网上翻几篇目标识别的论文,照着别人网上发的论文给出的目标识别的步骤框架,去找opencv对应的封装好的函数,一般就这些步骤1.转灰度2.直方图均衡3.滤波4.特征提取(边缘检测,颜色检测就不转灰度了) 项目做下来代码倒是跑通了,但是遇到问题自己还是一头雾水的,直到后面静下心来找了图像处理的课程认真学习了一下,总算是茅塞顿开。做图像处理的时候其实也是逐帧的处理,而每一帧就...
2020-05-09 19:09:28
1215
转载 关于无人机四元数解算姿态角解析你知道吗?
原文链接http://www.elecfans.com/d/705815.html一、概述无人机求解姿态角有多种算法,但由于各种算法的自身限制及计算机计算速度的限制,所以我们需要选择一个较佳的求解算法,下面我们先来看看几种求解姿态角的算法:1.欧拉角法:欧拉角法(又称三参数法)是欧拉在1776 年提出来的,其原理是动坐标系相对参考坐标系之间的位置关系可以用一组欧拉角来描述。...
2020-04-23 10:07:22
6245
5
原创 匿名飞控混控器解读并修改机型配置十字型或其他机型配置
匿名飞控的代码还是很简洁的,捋完整个代码框架不难发现各个模块是非常清晰的,每个任务环交换的变量基本都是全局变量,拓展的话也是非常便捷,如果我们需要更改机型配置的话更改文件就可以了Ano_MotorCtrl.c来看一下原先X字形混控的配置模块 motor_step[m1] = mc.ct_val_thr -mc.ct_val_rol +mc.ct_val_pit ...
2020-04-21 10:32:06
1223
1
原创 正则表达式整理
推荐新手一定要阅读正则表达式必知必会这本书,一下午看完了这本书,终于是入了门,正则表达式强大便捷,做字符串处理一定要学习一下完全记住这么多元字符也不太可能,简单整理一下,便于以后查阅. 可以匹配除换行符以外任何单字符 \ 转义字符,如\. \\ [ ] 定义一个字符集合,字符集匹配结果是能够与该集合里任意一个成员相匹配的文本 - 连字符,例如a-z...
2020-03-09 17:07:59
193
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅