PSINS中19维组合导航模块sinsgps详解(时间同步部分)

时间同步部分

时间不同步误差原理

参见图7.3.2,在惯性/卫星组合导航系统中,组合导航计算机获得两类传感器导航信息的时刻©往往不是传感器实际信息的采集时刻(A和B),从传感器信息采集到组合导航计算之间存在一定的时间滞后﹐比如卫星接收机采集到无线电信号后﹐需要先进行一系列的解算,再经过通信端口发送给组合导航计算机。惯性和卫星两类传感器的时间滞后一般并不相同,两者之间的相对滞后记为时间不同步误差delta t。在组合导航信息比对时,必须对时间不同步误差进行估计或补偿。
在这里插入图片描述

在分析时间不同步误差时,假设惯导与卫导之间的杆臂误差已经得到校正。如图7.3.2所示,惯导速度和卫星速度之间的关系应为
在这里插入图片描述

时间不同步误差代码

function [kgps, dt] = imugpssyn(k0, k1, ForB)
% SIMU & GPS time synchronization. A schematic diagram for time  
% relationship between SIMU & GPS looks like
%                 k0               k1
%  imu_t:    -----|------*---|-----|--------
%                         <---dt--->     (Forward)
%                 <--dt-->               (Backward)
%  gps_t:    ------------|------------------
%                       kgps
%     where k0,k1 for SIMU data log index and kgps for GPS data log index.
% 
% Prototype: [kgps, dt] = imugpssyn(k0, k1, ForB)
% Usages:
%   For initialization:  imugpssyn(imut, gpst)
%       where imut is SIMU time array, gpst is GPS time array
%   For synchrony checking: [kgps, dt] = imugpssyn(k0, k1, ForB)
%       It checks if there is any GPS sample between SIMU time interval
%       imut(k0) and imut(k1), if exists, return the GPS index 'kgps'
%       and time gap 'dt'. 
%       ForB='F' for forward checking,
%       ForB='B' for backward checking, 
%       ForB='f' for re-setting from the first one,
%       ForB='b' for re-setting from the last one. 
%
% See also  insupdate, kfupdate, POSProcessing, combinedata, combinet, igsplot.

% Copyright(c) 2009-2014, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 03/02/2014
global igaln
    if nargin==2  % initialization: imugpsaln(imut, gpst)
        igaln.imut = k0; igaln.gpst = k1;
        igaln.glen = length(igaln.gpst);
        igaln.kgps = 1;
        return;
    end
    k0 = k0-1;
    if k0==0, k0 = 1; end
    t0 = igaln.imut(k0); t1 = igaln.imut(k1);
    kgps = 0; dt = 0;
    if ForB=='F'  % Forward search
        while igaln.gpst(igaln.kgps)<t0 
            igaln.kgps = igaln.kgps + 1;
            if igaln.kgps>igaln.glen
                igaln.kgps = igaln.glen;
                break;
            end
        end
        tg = igaln.gpst(igaln.kgps);
        if t0<tg && tg<=t1
            kgps = igaln.kgps; dt = t1 - tg;
        end
    elseif ForB=='B' % Backward search
        while igaln.gpst(igaln.kgps)>t1 
            igaln.kgps = igaln.kgps - 1;
            if igaln.kgps==0
                igaln.kgps = 1;
                break;
            end
        end
        tg = igaln.gpst(igaln.kgps);
        if t0<=tg && tg<t1
            kgps = igaln.kgps; dt = tg - t0;
        end
    elseif ForB=='f'  % Forward re-intialization, set to the first one
        igaln.kgps = 1;
    elseif ForB=='b'  % Backward re-intialization, set to the last one
        igaln.kgps = igaln.glen;
    end

时间不同步初始化

1.imugpssyn(imu(:,end), gps(:,end));为时间不同步的参数初始化模块,即将imu和gps的时间赋值给全局变量
2. [kgps, dt] = imugpssyn(k, k1, 'F');后续代码中的这个代码块,就是找gps的时间在imu的两个时刻中间的情况:
imu时间分别为t0,t1gps时间为tg;若t0<tg<t1,则dT=t1-tg

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
move_base是ROS用于导航的一个包,其包含了多个配置文件,下面我们来详细解释每个配置文件的作用。 1. costmap_common_params.yaml 该文件定义了全局和局部costmap的一些通用参数,包括地图分辨率、costmap分辨率、膨胀半径、障碍物图层名称、不可通行区域图层名称等。具体参数包括: - obstacle_range:表示障碍物图层障碍物的最小值,超过此值的障碍物将不会被考虑。 - raytrace_range:表示射线距离,用于检查是否能够到达某个点。 - robot_radius:表示机器人半径,用于计算膨胀半径。 - inflation_radius:表示膨胀半径,用于将障碍物膨胀成一个圆形区域。 - observation_sources:表示观测源,包括雷达、摄像头等。 - map_type:表示地图类型,包括静态地图、动态地图等。 2. global_costmap_params.yaml 该文件定义了全局costmap的参数,包括地图的尺寸、分辨率、更新频率、障碍物距离等。具体参数包括: - global_frame:表示全局坐标系的名称。 - robot_base_frame:表示机器人的底盘坐标系名称。 - update_frequency:表示更新频率。 - static_map:表示是否使用静态地图。 - rolling_window:表示是否使用滚动窗口。 - transform_tolerance:表示坐标变换的容差值。 - resolution:表示costmap的分辨率。 3. local_costmap_params.yaml 该文件定义了局部costmap的参数,包括地图的尺寸、分辨率、更新频率、障碍物距离等。具体参数包括: - global_frame:表示全局坐标系的名称。 - robot_base_frame:表示机器人的底盘坐标系名称。 - update_frequency:表示更新频率。 - static_map:表示是否使用静态地图。 - rolling_window:表示是否使用滚动窗口。 - transform_tolerance:表示坐标变换的容差值。 - resolution:表示costmap的分辨率。 4. base_local_planner_params.yaml 该文件定义了局部规划器的参数,包括控制频率、最大线速度、最大角速度等。具体参数包括: - controller_frequency:表示控制频率。 - max_vel_x:表示机器人最大线速度。 - min_vel_x:表示机器人最小线速度。 - max_vel_theta:表示机器人最大角速度。 - min_vel_theta:表示机器人最小角速度。 - acc_lim_x:表示机器人线加速度。 - acc_lim_theta:表示机器人角加速度。 以上是move_base包常用的配置文件,用户可以根据自己的需求修改这些参数,以满足不同的导航场景需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

十八与她

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

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

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

打赏作者

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

抵扣说明:

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

余额充值