LPMS-IG1 IMU内参标定

LPMS-IG1 IMU内参标定流程

1、IMU驱动安装

参考IMU官网驱动安装流程,链接:https://www.alubi.cn/support/download 下载openzen中的rosdrive,根据readme文件安装,要求g++ version 7.0和cmake version 3.10
首先建立一个工作空间openzen_ws/src

mkdir -p openzen_ws/src

进入工作空间,通过git获取安装包

cd openzen/src
git clone --recurse-submodules https://bitbucket.org/lpresearch/openzenros.git

在工作空间下编译

cd ..
catkin_make

IMU通过USB 和电脑连接,给串口权限

sudo chmod 777 /dev/ttyUSB0

在新的命令行窗口运行roscore后,在工作空间下运行驱动

source devel/setup.bash
rosrun openzen_sensor openzen_sensor_node

发布的话题节点为/imu_data,通过以下命令查看话题消息

rostopic echo /imu_data

2、标定软件安装

安装相应依赖:

sudo apt-get install libdw-dev

IMU标定工具参考港科大,包括code_utils和imu_utils两部分
由于imu_utils依赖code_utils,所以不要同时把imu_utils和code_utils一起放到src下进行编译
code_utils链接:https://github.com/gaowenliang/code_utils
imu_utils链接:https://github.com/gaowenliang/imu_utils
code_utils依赖于ceres库,先安装ceres库

2.1 ceres库安装

安装依赖项:

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

其中最后一个libcxsparse依赖包对应版本如下:

Ubuntu16.04----libcxsparse3.1.4
Ubuntu18.04----libcxsparse3
Ubuntu20.04----libcxsparse3
Ubuntu22.04----libcxsparse3

然后更新

sudo apt-get update

下载ceres,https://github.com/ceres-solver/ceres-solver,在Tags下找到1.14.0的压缩包进行下载(tar.gz和zip都可以)
解压,并cd到ceres目录下

mkdir build
cd build
cmake ..
make
sudo make install

安装完成后,ceres头文件目录为/usr/local/include/ceres、库文件为/usr/local/lib/libceres.a

2.2 编译code_utils

建立工作空间LPMS-IG1_ws

mkdir -p LPMS-IG1_ws/src

将code_utils包放入工作空间src目录下,在code_utils下面找到sumpixel_test.cpp,修改#include "backward.hpp"为 #include “code_utils/backward.hpp”,编译code_utils

cd LPMS-IG1_ws
catkin_make

如果opencv版本为3.x,则编译无误
若opencv版本为4.x ,会报错:

error: 'CV_LOAD_IMAGE_UNCHANGED' was not declared in this scope
error: 'CV_MINMAX' was not declared in this scope

由于opencv4.x以上版本的API名字改了,修改对应文件中(code_utils/src/mat_io_test.cpp和code_utils/src/sumpixel_test.cpp)的名字即可:

CV_LOAD_IMAGE_UNCHANGED 改为 cv::IMREAD_UNCHANGED
CV_LOAD_IMAGE_GRAYSCALE  改为 cv::IMREAD_GRAYSCALE
CV_MINMAX  改为  NORM_MINMAX

重新编译即可。
备注:查看opencv版本

python3
import cv2
cv2.__version__

2.3 编译imu_utils

将imu_utils放入工作空间src目录下,编译imu_utils

catkin_make

标定软件安装完成。

3、录包

将IMU连接到电脑上,给串口权限,运行IMU驱动
让IMU静止不动两个小时,录制IMU的bag

rosbag record -o imu.bag /imu_data

4、标定

4.1 修改launch文件中话题名称

修改LPMS-IG1_ws/src/imu_utils/launch/文件夹下的A3.launch文件中的话题名为所录制的话题、标定数据保存地址和标定时间(通常为120分钟)
在这里插入图片描述

4.2 运行标定工具

cd LPMS-IG1_ws
source devel/setup.bash
roslaunch imu_utils A3.launch

4.3 倍速回放bag包

rosbag play -r 200 imu.bag

在标定工具命令行中,结果显示如下:
在这里插入图片描述

即标定成功
如果bag包回放完毕后,终端显示 wait for imu data. 有可能是bag包录制时间小于4.1设置的标定时间,修改标定时间即可

5、标定结果

标定后参数的数据文件如下
在这里插入图片描述
白噪声和偏置可以打开.yaml文件查看
在这里插入图片描述
最后根据scripts文件下的m文件,修改路径后画出Allan方差图
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值