zoukankan      html  css  js  c++  java
  • ignav卡尔曼滤波中的待估计参数

    由下面代码可以看出ignav卡尔曼滤波中待估计的状态:[attitudevelocitypositionaccl bias、gyro bias、... ]T

    extern int xiA (const insopt_t *opt) {return 0;}    /* attitude states index */
    extern int xiV (const insopt_t *opt) {return 3;}    /* velocity states index */
    extern int xiP (const insopt_t *opt) {return 6;}    /* position states index */
    extern int xiBa(const insopt_t *opt) {return 9;}    /* accl bias state index */
    
    /* get index of gyro bias states---------------------------------------------*/
    extern int xiBg(const insopt_t *opt) {return xnA(opt)+xnV(opt)+xnP(opt)+xnBa(opt);}
    
    /* get index of time synchronization error for IMU and GNSS user equipment---*/
    extern int xiDt(const insopt_t *opt)
    {
        return xnA(opt)+xnV(opt)+xnP(opt)+xnBa(opt)+xnBg(opt);
    }
    /* get index of residual scale factors of gyroscopes-------------------------*/
    extern int xiSg(const insopt_t *opt)
    {
        return xnA(opt)+xnV(opt)+xnP(opt)+xnBa(opt)+xnBg(opt)+xnDt(opt);
    }
    /* get index of residual scale factors of accl state-------------------------*/
    extern int xiSa(const insopt_t *opt)
    {
        return xnA(opt)+xnV(opt)+xnP(opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt);
    }
    /* get index of non-orthogonal between sensor axes for gyro states-----------*/
    extern int xiRg(const insopt_t *opt)
    {
        return xnA (opt)+xnV(opt)+xnP(opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt);
    }
    /* get index of non-orthogonal between sensor axes for accl states-----------*/
    extern int xiRa(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP(opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt);
    }
    /* get index lever arm states------------------------------------------------*/
    extern int xiLa(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt);
    }
    /* get index of odometry scale factor states---------------------------------*/
    extern int xiOs(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt);
    }
    /* get index of odometry lever arm states------------------------------------*/
    extern int xiOl(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt);
    }
    /* get index of odometry misalignment of body frame and rear frame states----*/
    extern int xiOa(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt);
    }
    /* get index of misalignment of camera to imu body---------------------------*/
    extern int xiCm(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt)+xnOa(opt);
    }
    /* get index of misalignment of b-frame to v-frame---------------------------*/
    extern int xiVm(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt)+xnOa(opt)+
               xnCm(opt);
    }
    /* get index of receiver clock bias state------------------------------------*/
    extern int xiRc(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt)+xnOa(opt)+
               xnCm(opt)+xnVm(opt);
    }
    /* get index of receiver clock drift-----------------------------------------*/
    extern int xiRr(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt)+xnOa(opt)+
               xnCm(opt)+xnVm(opt)+xnRc(opt);
    }
    /* get index of ionos (s:satellite no)---------------------------------------*/
    extern int xiIo(const insopt_t *opt,int s)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt)+xnOa(opt)+
               xnCm(opt)+xnVm(opt)+xnRc(opt)+xnRr(opt)+(s-1);
    }
    /* get index of tropos (r:0=rov,1:ref)---------------------------------------*/
    extern int xiTr(const insopt_t *opt,int r)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt)+xnOa(opt)+
               xnCm(opt)+xnVm(opt)+xnRc(opt)+xnRr(opt)+xnI (opt)+xnT (opt)/2*r;
    }
    /* get index of receiver h/w bias--------------------------------------------*/
    extern int xiLl(const insopt_t *opt,int f)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt)+xnOa(opt)+
               xnCm(opt)+xnVm(opt)+xnRc(opt)+xnRr(opt)+xnI (opt)+xnT (opt)+f;
    }
    /* get index of L5-receiver-dcb ---------------------------------------------*/
    extern int xiDl(const insopt_t *opt)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt)+xnOa(opt)+
               xnCm(opt)+xnVm(opt)+xnRc(opt)+xnRr(opt)+xnI (opt)+xnT (opt)+xnL (opt);
    }
    /* get index of phase bias (s:satno,f:freq)----------------------------------*/
    extern int xiBs(const insopt_t *opt,int s,int f)
    {
        return xnA (opt)+xnV (opt)+xnP (opt)+xnBa(opt)+xnBg(opt)+xnDt(opt)+xnSg(opt)+
               xnSa(opt)+xnRg(opt)+xnRa(opt)+xnLa(opt)+xnOs(opt)+xnOl(opt)+xnOa(opt)+
               xnCm(opt)+xnVm(opt)+xnRc(opt)+xnRr(opt)+xnI (opt)+xnT (opt)+xnL (opt)+
               xnD(opt)+MAXSAT*f+s-1;
    }
  • 相关阅读:
    【LeetCode 41】缺失的第一个正数
    【LeetCode 38】报数
    Scrum立会报告+燃尽图 04
    Scrum立会报告+燃尽图 03
    Scrum立会报告+燃尽图 02
    20191017-2 alpha week 2/2 Scrum立会报告+燃尽图 01
    作业要求20191010-9 alpha week 1/2 Scrum立会报告+燃尽图 07
    20191010-8 alpha week 1/2 Scrum立会报告+燃尽图 06
    Alpha阶段贡献分配规则
    选题 Scrum立会报告+燃尽图 05
  • 原文地址:https://www.cnblogs.com/y-z-h/p/13904221.html
Copyright © 2011-2022 走看看