完整代码
在有工具箱的情况下,直接运行代码,即可
% 基于PSINS工具箱的三维轨迹生成、三维图像绘制与IMU数据生成
% date:2024-2-13
% Evand(evandworld@qq.com)
% Ver1
clear;clc;close all;
glvs
ts = 0.1; % sampling interval
avp0 = [[0;0;0]; [0;0;0]; glv.pos0]; % init avp
% trajectory segment setting
traj_ = [];
% seg = trjsegment(traj_, 'init', 0);
% seg = trjsegment(seg, 'uniform', 100);
% seg = trjsegment(seg, 'accelerate', 10, traj_, 1);
% seg = trjsegment(seg, 'uniform', 100);
% seg = trjsegment(seg, 'coturnleft', 45, 2, traj_, 4);
% seg = trjsegment(seg, 'uniform', 100);
% seg = trjsegment(seg, 'coturnright', 10*5, 9, traj_, 4);
% seg = trjsegment(seg, 'uniform', 100);
% seg = trjsegment(seg, 'climb', 10, 2, traj_, 50);
% seg = trjsegment(seg, 'uniform', 100);
% seg = trjsegment(seg, 'descent', 10, 2, traj_, 50);
% seg = trjsegment(seg, 'uniform', 100);
% seg = trjsegment(seg, 'deaccelerate', 5, traj_, 2); %2
% seg = trjsegment(seg, 'uniform', 100);
seg = trjsegment(traj_, 'init', 0);
seg = trjsegment(seg, 'uniform', 100);
seg = trjsegment(seg, 'accelerate', 10, traj_, 1);
seg = trjsegment(seg, 'uniform', 100);
seg = trjsegment(seg, 'coturnleft', 45, 2, traj_, 4);
seg = trjsegment(seg, 'climb', 10, 2, traj_, 50);
seg = trjsegment(seg, 'uniform', 100);
seg = trjsegment(seg, 'descent', 10, 2, traj_, 50);
seg = trjsegment(seg, 'uniform', 100);
seg = trjsegment(seg, 'coturnleft', 45, 2, traj_, 4);
seg = trjsegment(seg, 'uniform', 100);
seg = trjsegment(seg, 'deaccelerate', 5, traj_, 2); %2
seg = trjsegment(seg, 'uniform', 100);
% generate, save & plot
trj = trjsimu(avp0, seg.wat, ts, 1);
trjfile('trj10ms.mat', trj);
insplot(trj.avp);
imuplot(trj.imu);
figure;
plot3(trj.avp(:,7),trj.avp(:,8),trj.avp(:,9));
hold on
plot3(trj.avp(1,7),trj.avp(1,8),trj.avp(1,9),'*');
运行结果
姿态、速度、位置信息、二维轨迹
IMU信息:
三维轨迹(原创):