【MATLAB例程】【空地协同】UAV辅助的UGV协同定位,无人机辅助地面无人车定位,带滤波,附MATLAB代码下载链接

文章目录

程序介绍

程序为UAV 辅助 UGV 的二维协同定位仿真框架,用于验证在低精度GNSS条件下空地协同的定位效果,引入空中平台(UAV)测距测角信息,对地面移动载体(UGV)定位精度的提升效果。通过 UAV--UGV 的异构平台协同,利用空间几何优势弥补单一地面传感器观测能力不足的问题。

在仿真场景中,UAV 以固定高度进行圆周飞行,其轨迹和运动参数预先设定,用于持续对 UGV 提供距离与方位角观测。UGV 在地面进行连续运动,其真实轨迹由速度和随时间缓慢变化的航向角共同决定,以模拟实际行驶过程中存在的小幅转向行为。该设置保证了运动模型的连续性和一定非理想性,从而更贴近工程应用场景。

在滤波结构上,程序采用标准卡尔曼滤波框架进行信息融合。基于运动模型完成状态预测,按照"UAV 测量优先、GNSS 测量补充"的顺序进行两次观测更新

仿真过程记录了 UAV 轨迹、UGV 真实轨迹、滤波估计轨迹以及 GNSS 测量轨迹,并从空间轨迹、分轴位移和定位误差三个层面对结果进行可视化分析。通过对 EKF 融合结果与 GNSS 单独定位结果的误差统计对比,可以直观评估 UAV 辅助协同定位在平均误差、稳定性和极值误差方面的性能提升效果。

运行结果

轨迹图:

位移曲线:

位置误差曲线:

柱状图输出结果对比:

命令行输出结果对比:

MATLAB源代码

部分代码如下:

matlab 复制代码
%% UAV辅助的UGV协同定位仿真
% UAV通过测距测角辅助UGV进行精确定位
% 作者:matlabfilter(V同号,可接导航、定位相关的代码定制)
% 2026-01-07/Ver1

clear; close all; clc;
rng(0);

%% 仿真参数设置
dt = 0.1;              % 时间步长 (s)
T = 10;                % 总仿真时间 (s)
steps = T/dt;          % 仿真步数
% UAV参数
uav_altitude = 50;     % 飞行高度 (m)
uav_orbit_radius = 30; % 轨道半径 (m)
uav_angular_vel = 0.2; % 角速度 (rad/s)
uav_pos = [50; 50];    % 初始位置 [x; y] (m)
% UGV参数
ugv_real_pos = [20; 20];      % 真实初始位置 (m)
ugv_est_pos = [20.5; 20.5];   % 估计初始位置 (m)
ugv_velocity = 5;           % 速度 (m/s)
ugv_heading = pi/4;           % 航向角 (rad)
% 噪声参数
noise_process = 0.1;    % 过程噪声标准差
noise_measure_dist = 1; % 距离测量噪声标准差 (m)
noise_measure_ang = 0.1; % 角度测量噪声标准差 (rad)
noise_GNSS = 5;          % GNSS噪声标准差 (m)

完整代码下载链接:https://download.csdn.net/download/callmeup/92543195

如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者

相关推荐
Fairy要carry5 小时前
面试-GRPO强化学习
开发语言·人工智能
Liekkas Kono5 小时前
RapidOCR Python 贡献指南
开发语言·python·rapidocr
张张努力变强5 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
xyq20245 小时前
Matplotlib 绘图线
开发语言
m0_694845575 小时前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
春日见6 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
C++ 老炮儿的技术栈6 小时前
VS2015 + Qt 实现图形化Hello World(详细步骤)
c语言·开发语言·c++·windows·qt
派葛穆6 小时前
Python-批量安装依赖
开发语言·python
MSTcheng.6 小时前
【C++】C++11新特性(二)
java·开发语言·c++·c++11
晓13136 小时前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言