跑slam需要标定imu,在这里简要记录imu_utils操作流程,不做原理解析
实验环境:ubuntu16.04+ROS_kinetic+robosense16线+xsense_mti_g700
1、安装依赖
sudo apt-get install libdw-dev
2、全局安装ceres库(官方详细链接)
# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse and CXSparse (optional)
sudo apt-get install libsuitesparse-dev
使用git clone https://ceres-solver.googlesource.com/ceres-solver克隆的ceres最新版本与eigen3不匹配需要在上面官网链接的version history下找到ceres1.14.0版本下载并解压到home下
解压后的ceres1.14.0文件夹单击右键新开终端执行编译安装
mkdir build
cd build
cmake ..
make
sudo make install
3、下载code_utils https://github.com/gaowenliang/code_utils
(imu_utils 依赖 code_utils所以先把code_utils放在工作空间的src下面编译然后再将imu_utils放到src下编译)新建工作空间将下载的code_utils解压放在src下,在imu_utils/src/code_utils/下打开sumpixel_test.cpp文件修改#include "backward.hpp"为 #include “code_utils/backward.hpp
//新建工作空间
mkdir imu_utils/src
//将code_utils放进src下并修改头文件后编译
cd ..
catkin_make
4、下载imu_utils https://github.com/gaowenliang/imu_utils
code_utils编译成功后把imu_utils放到工作空间的src下面,进行编译
catkin_make
5、录制imu数据包(全程保持imu静止不动,imu上电运行十分钟后开始录制,录制两个小时)
//运行launch启动imu
//新建文件夹testbag用来放imu数据包,有就跳过
//右键testbag新开终端
rosbag record -O imu.bag /imu/data
//两小时后ctrl+c结束录制,bag自动保存在打开终端的文件夹testbag里
6、标定imu(标定过程imu不要运行)
在 imu_utils/src/imu_utils/launch/下找到xsense.launch,修改imu话题名和time,两小时就设为120
启动launch
//在imu_utils工作空间下
source devel/setup.bash
roslaunch imu_utils xsense.launch
播放imu包
//在放imu包的文件夹下右键新开终端,以两百倍速播放imu包
rosbag play -r200 imu.bag
播包结束时才会显示标定完成,标定结果在data文件夹下会生成一堆文件我们需要的是第一个标定结束,标定结果存在imu_utils/src/imu_utils/data/下xsense_imu_param.yaml