• IMU标定


    简要:

            使用imu_tk以及imu_utils对imu标定。

    一、imu_tk标定

    1. 标定流程

            使用对应的ros_wrapper来加载数据。其数据运动过程参考对应git上的readme,

    Record a bag file with IMU topic (e.g. rosbag record -O imu /imu).

    Procedure:

    1. Left the IMU static for 50 seconds.
    2. Rotate the IMU and then lay it in a different attitude.
    3. Wait for at least 1 seconds.
    4. Have you rotated the IMU 36 ~ 50 times? If not, go back to step 2.
    5. Done.

    tips:变换imu姿态的过程中,最好将IMU固定到某个有重量物体上旋转静止,单纯用手旋转会有轻微的抖动,感觉不太好;其中第三条等待1s这个,不如多等一会,5s左右合适;频率不要太低,一开始10hz导致计算总是失败。

    从代码上看,系统首先计算整个bag数据的方差,然后利用这个方差(×N)来寻找静止时间段,最少寻找12(min_num_intervals_)个静止的时间段才会进行下一步计算。(剩余的代码没有看,因为我主要是这步错了,所以主要看得这一步。)

    对应会给出如下几个矩阵作为结果,最终的结果会打印在终端:

    加速度计

    Misalignment Matrix
              1  0.00931641   0.0365531
              0           1 -0.00443462
             -0           0           1
    Scale Matrix
    0.998645        0        0
           0 0.998098        0
           0        0 0.996958
    Bias Vector
     0.0519509
      0.132995
    -0.0129506

    Accelerometers calibration: inverse scale factors:
    1.00136
    1.00191
    1.00305
     

    角速度计

    Gyroscopes calibration: residual 0.00461895
    Misalignment Matrix
              1  0.00365644   0.0296156
    -0.00776619           1  0.00522669
     -0.0200886   0.0053562           1
    Scale Matrix
    0.999833        0        0
           0  1.01073        0
           0        0  1.00325
    Bias Vector
    -9.35939e-05
     4.13307e-05
     -0.00040904

    Gyroscopes calibration: inverse scale factors:
    1.00017
    0.989384
    0.996757
     

    会有一些图显示中间结果,没细看,感觉就是找的静止时间段

    结果使用主要就是参考这两个公式吧。

    加速度计:a^O = T^a K^a (a^S + b^a + v^a)

    角速度计:\omega^O = T^gK^g(\omega^S + b^g + v^g)

    其中,a^O为矫正后的输出,a^S为未矫正前的输入,v^a为白噪声。T^a为三轴不互相垂直带来的误差,对应上述结果中的Misalignment Matrix;K^a为scale的误差,对应上述结果中的Scale Matrix;b^a为bias,对应上述结果中的Bias Vector。角速度计公式与结果对应关系和加速度计是一样的。

    tips:估结果准确性的话,目前的想法是可以参考迭代结果的误差。

    2. 算法原理

            先参考这篇吧,回头有空重读论文再重写(估计难了~) 。论文在此。

    二、imu_utils标定

    1.标定流程

    标定流程比较简单,采集一个静置120分钟的imu数据,然后使用roslaunch imu_utils ***.launch进行标定。

    2. 算法原理

    (待写)

  • 相关阅读:
    Java计算机毕业设计体育城场地预定系统后台源码+系统+数据库+lw文档
    MySQL 索引、事务与存储引擎
    solidity 存储 /变量
    匿名访问查看服务器samba用户名实现smbclient -L
    C语言switch语句判断星期
    【图像分割】基于萤火虫算法实现图像聚类分割附matlab代码
    计算机毕业设计(附源码)python中小学在线作业管理小程序
    Linux高并发服务器开发—静态库和makefile
    项目3-食物图片分类
    二叉搜索树--新增节点-力扣 701 题
  • 原文地址:https://blog.csdn.net/u012177641/article/details/126268111