zoukankan      html  css  js  c++  java
  • ignav中紧组合对INS初始化

    具体代码:在源文件ins-init-rt.cc中的insinirtobs函数中(line:148)
    对INS初始化,主要是给出载体相对于导航坐标系的初始位置、初始速度和初始姿态信息,
    求初始姿态最及求出载体坐标系相对导航坐标系的欧拉角即可
    此程序中
    认为pitch和roll这两个角都为0,用载体在导航坐标系下的速度矢量求yaw

    1.求出合格的RTK定位结果,然后用结果求速度矢量(此时的速度矢量是在e-frame)

    先把RTK计算出的结果存在sols里面;
    for (i=0;i<MAXSOL-1;i++) sols[i]=sols[i+1]; sols[i]=rtk.sol;
    储存满后,检查储存的结果是否符合标准
    for (i=0;i<MAXSOL;i++) {
    if (sols[i].stat>popt.insopt.iisu||sols[i].stat==SOLQ_NONE) {
    trace(2,"check solution status fail ");
    return 0;
    }
    }
    popt.insopt.iisu”是配置文件中设定的,作者设置的是2,固定解和浮点解符合标准,自己可以根据自己数据质量具体设置;
    ins-iisu           =2          # initial ins state use rtk options (SOLQ_???)#define SOLQ_NONE    0                  /* solution status: no solution */
    #define SOLQ_FIX 1 /* solution status: fix */
    #define SOLQ_FLOAT 2 /* solution status: float */
    #define SOLQ_SBAS 3 /* solution status: SBAS */
    #define SOLQ_DGPS 4 /* solution status: DGPS/DGNSS */
    #define SOLQ_SINGLE 5 /* solution status: single */
    #define SOLQ_PPP 6 /* solution status: PPP */
    #define SOLQ_DR 7 /* solution status: dead reconing */
    #define SOLQ_DOP 8 /* solution status: doppler measurement aid */
    #define SOLQ_INHERIT 9 /* solution status: ambiguity inherit fix status */
    如果数据都是固定解,再检查它们的时间间隔有没有超限;

    for (i=0;i<MAXSOL-1;i++) {
    if (timediff(sols[i+1].time,sols[i].time)>MAXDIFF) {
    return 0;
    }
    }

    2.根据位置(GNSS求出的载体位置)求出Cne(n-frame-->e-frame的方向余弦阵) ,把速度矢量转到n-frame
    然后yaw = arctan(Ve/Vn)/*Ve:东向速度,Vn:北向速度*/

    认为roll、pitch为零,即可求出Cnb(n-frame-->b-frame的方向余弦阵)




  • 相关阅读:
    定理,定律,公理
    逻辑的体系:论据-》论证-〉论点
    深度解读:数学的本质与宇宙万物的关联--数学的本质是一门语言
    第一性原理的钥匙—逻辑奇点
    系统论的两个方向:系统分析与系统构建
    系统
    科学思考
    系统思考-使用系统论构建系统
    系统论是大尺度的还原论的时空思考-系统论是宏观上的还原论
    思考的几种形式
  • 原文地址:https://www.cnblogs.com/y-z-h/p/13832493.html
Copyright © 2011-2022 走看看