程序介绍
程序为UAV 辅助 UGV 的二维协同定位仿真框架,用于验证在低精度 GNSS 条件下,引入空中平台测距测角信息对地面移动载体定位精度的提升效果。
仿真场景:
UAV 以固定高度进行圆周飞行,其轨迹和运动参数预先设定,用于持续对 UGV 提供距离与方位角观测。UGV 在地面进行连续运动,其真实轨迹由速度和随时间缓慢变化的航向角共同决定,以模拟实际行驶过程中存在的小幅转向行为。该设置保证了运动模型的连续性和一定非理想性,从而更贴近工程应用场景。
在滤波结构上,程序采用标准卡尔曼滤波框架进行信息融合。首先基于运动模型完成状态预测,然后按照“UAV 测量优先、GNSS 测量补充”的顺序进行两次观测更新。该串行更新策略在保持算法结构简洁的同时,有效融合了高几何约束信息与低精度绝对定位信息,使估计结果在稳定性和精度之间取得平衡。
仿真过程中完整记录了 UAV 轨迹、UGV 真实轨迹、滤波估计轨迹以及 GNSS 测量轨迹,并从空间轨迹、分轴位移和定位误差三个层面对结果进行可视化分析。通过对 EKF 融合结果与 GNSS 单独定位结果的误差统计对比,可以直观评估 UAV 辅助协同定位在平均误差、稳定性和极值误差方面的性能提升效果。
运行结果
轨迹图:
位移曲线:
位置误差曲线:
柱状图输出结果对比:
命令行输出结果对比:
MATLAB源代码
部分代码如下:
%% UAV辅助的UGV协同定位仿真% UAV通过测距测角辅助UGV进行精确定位% 作者:matlabfilter(V同号,可接导航、定位相关的代码定制)% 2026-01-07/Ver1clear; 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://mall.bilibili.com/neul-next/detailuniversal/detail.html?page=detailuniversal_detail&itemsId=40254681&loadingShow=1&noTitleBar=1#noReffer=true&msource=merchant_share
如需帮助,或有导航、定位滤波相关的代码定制需求,可联系作者: