1. 前言
通过《从零开始手写VIO》第二章的学习,我逐渐发现课程本身的内容并不是很难理解,老师讲的比较到位,但对我最大的困难在于环境配置。如果给我一个完整的实验环境让我修改代码、补全函数,那难度会骤降,把算法转化为实际的代码并不是一件很痛苦的事,至少能够定位那些地方可以修改,这样也好发问。然而,光是只会算法已经远远不能满足这门课的需求了,所谓的“从零开始”,就是连最基本的库、工具、依赖都得从无到有。正好借Allan方差实验,在此分享整个实验的流程以及遇到的麻烦。
2. 概述
关于具体的IMU和Allan方差理论在这里不做描述,主要讲述实验的流程。本次实验是运用Allan方差法标定IMU的随机误差,这里所用的IMU数据是贺博提供的模拟数据,IMU最关注的的两点是陀螺仪和加速度计。实际的IMU在采集数据过程中,会产生两种误差,一般分为确定性误差和随机误差。确定性误差主要包括偏置、尺度、因制造不精产生的坐标轴相互不垂直产生的误差等,随机误差主要包括高斯白噪声、偏置随机游走。那么,要研究的变量,就是陀螺仪和加速度计各自的高斯白噪声和随机游走。
3. 实验
(1)前置要求
ROS-kinetic:请按照官网的步骤执行,完成安装以及初始化catkin_ws工作空间的任务。配置完成后即可开启ROS。
roscore
ceres solver:关于Eigen和Sophus的安装,可参考之前的博客。
再进行Ceres的安装,需要cmake编译:
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.4 libg