PSINS工具箱函数介绍——distance

在这里插入图片描述

关于工具箱

kfinit是kf的参数初始化函数,用于初始化滤波参数
本文所述的代码需要基于PSINS工具箱,工具箱的讲解:

使用方法

在PSINS工具箱里面的distance用于计算轨迹的路程。输入轨迹后,即可由这个函数迭代计算出来路程(也就是每个点之间的距离之和)。

例程实践

源代码

源代码如下:

function [dist, od] = distance(pos, timax)
    if nargin<2, timax=1; end
    if size(pos,2)>7, pos = pos(:,[7:9,end]); end
    if size(pos,2)==3, pos(:,4) = (1:size(pos,1))'; end
    tmin = diff(pos(1:2,end));
    myfigure;
    subplot(2,2,[2,4]), dxyz=pos2dxyz(pos); plot(dxyz(:,1), dxyz(:,2)); xygo('E / m', 'N / m');
    hold on, plot(0,0,'or');
    subplot(223), plot(dxyz(:,end), dxyz(:,3)); xygo('hgt');
    subplot(221);
    for k=1:fix(log2(length(pos)))
        [RMh, clRNh] = RMRN(pos);
        dpos = [zeros(1,3);diff(pos(:,1:3))];
        dxyz = [dpos(:,2).*clRNh, dpos(:,1).*RMh, dpos(:,3)];
        if k==1, od = [normv(dxyz),pos(:,end)]; end
        distk = cumsum(normv(dxyz));
        plot(pos(:,end), distk); hold on;
        dist(k,1) = distk(end);
        pos = pos(1:2:end,:);
        tmax = diff(pos(1:2,end));
        if tmax>timax, break; end
    end
    xygo('distance / m');
    title(sprintf('Distance max=%.3fm(%.3fs), min=%.3fm(%.3fs)',dist(1),tmin,dist(end),tmax));

运行代码,下面分析代码运行的结果:

运行结果

以工具箱的“test_SINS.m”这个函数下的轨迹为例,先运行这个test函数,再运行:

distance(trj.avp(:,7:10));

函数输入量trj.avp是轨迹的avp,共10列:

  • 第1~3列是角度
  • 第4~6列是速度
  • 第7~9列是位置
  • 第10列是时间戳
    所以trj.avp(:,7:10)是轨迹的三轴位置数据和时间戳数据。

运行函数后,得到的轨迹绘图和计算的路程值:
在这里插入图片描述
左上角的图是路程与时间的关系,表头显示的数字 7586 7586 7586即为路程。左下角是高度与时间的关系。
右边的图为二维轨迹图,与insplot相仿(参考链接:PSINS工具箱函数介绍——insplot

函数解析

函数输入为位置(纬度+精度+高度)和时间戳。输出为计算出的来的路程。
如果没有时间戳,函数内部会自动添加,默认时间间隔为1s

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB卡尔曼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值