ubuntu安装imu_utils,并进行IMU(惯性测量单元)内参标定

在安装imu_utils之前需要先安装ceres和eigen库、code_utils。

1、安装ceres

(1)、下载ceres源码,不建议下载最新版本,本文下载1.14.0(点击右侧的Releases查看历史版本)

https://github.com/ceres-solver/ceres-solver

 

(2)、解压压缩包,在终端进入该目录,然后新建build文件夹,并进入build中

tar -zxvf ceres-solver-1.14.0.tar.gz 
cd ceres-solver-1.14.0/
mkdir build
cd build/

(3)、安装ceres依赖

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

(4)、编译安装

cmake ..
make
sudo make install

2、安装eigen

本文安装eigen3.3.7

(1)、下载链接:
https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz

(2)、解压压缩包,在终端进入该目录,然后新建build文件夹,并进入build中

sudo tar -xzvf eigen-3.3.7.tar.gz
cd eigen-3.3.7
mkdir build
cd build

 (3)、编译安装

cmake ..
make
sudo make install

 (4)、移动头文件

sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 

3、安装code_utils

(1)、安装依赖项

sudo apt-get install libdw-dev

 (2)、进行到你的ros工作空间的src目录下

不知道如何创建ros工作空间也可以参考我的博客:
ubuntu下如何创建ros工作空间、创建ros功能包、创建ros节点_ubuntu创建工作空间_╰︶ ̄ 莫等闲۩۩۩的博客-CSDN博客https://blog.csdn.net/qq_49959714/article/details/127028396

cd ~/catkin_ws/src

(3)、将代码克隆到工作空间的src目录下

git clone https://github.com/gaowenliang/code_utils.git

(4)、返回到工作空间目录下,并执行编译 

cd ..
catkin_make

此时可能会遇到一些问题:

问题1:找不到backward.hpp

解决方法: 把src/code_utils/include/backward.hpp文件复制到src/code_utils/src中

问题2: 没有opencv2/core.hpp那个文件或目录

解决办法:

打开报错文件,将#include <opencv2/core.hpp>修改为#include <opencv2/core/core.hpp>

4、安装imu_utils

cd ~/catkin_ws/src
git clone https://github.com/gaowenliang/imu_utils.git
cd ..
catkin_make 

此时可能会遇到一些问题:

 解决办法:

第一个错误是没有包含这个数据结构的头文件,打开该文件添加即可:

#include <fstream>
第二个是两个不同的数据类型进行了比较,改成相同就可以了:

for (unsigned int index = 0; index < gyro_ts_x.size( ); ++index )
重新编译:

catkin_make

 5、IMU内参标定

(1)、驱动imu_utils

cd ~/catkin_ws
source devel/setup.bash
roslaunch imu_utils xsens.launch

(2)、播放imu数据(要注意查看自己的imu数据的话题与launch文件中的是否一致,不一致需要修改launch文件) 

rosbag play imu.bag

 此处可能会一直出现wait for imu data

 

 这时需要修改xsens_driver.launch文件中的max_time_min的值,这个值改为小于自己的bag持续时间。

如果还是出现wait for imu data,等待数据播放完毕应该就可以出现imu内参数据了

 

imu标定内参参数将保存在imu_utils/data目录下的xsens_imu_param.yaml文件中

猜你喜欢

转载自blog.csdn.net/qq_49959714/article/details/129211822
IMU