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;
    }
  • 相关阅读:
    Android-TabLayout设置内容宽度以及下划线宽度
    RecyclerView 上拉加载下拉刷新
    Android自定义View实现仿QQ实现运动步数效果
    Android开发中常见的内存泄露案例以及解决方法总结
    Android封装TitleBar基本适用所有常规开发
    Activity设置背景透明之开发坑
    Android表情开发
    订制EditText光标
    Android:java.lang.OutOfMemoryError:GC overhead limit exceeded
    Android之自定义View学习(一)
  • 原文地址:https://www.cnblogs.com/y-z-h/p/13904221.html
Copyright © 2011-2022 走看看