对Livox_avia内置IMU-BMI088进行内参标定

该文详细描述了在Ubuntu20.04操作系统和ROSNoetic环境下,利用imu_utils工具包对Livox_avia激光雷达内置的BMI088IMU进行标定的过程。首先,介绍了环境配置,包括IMU启动和标定工具的安装。接着,讲述了如何采集标定数据,通过roslaunch和rosbag记录IMU数据。最后,详述了使用imu_utils进行内参标定的步骤,包括编写launch文件和播放数据包以完成标定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次标定基于ubuntu20.04,ros版本为noetic,标定工具为imu_utils。

一、环境配置

环境配置包括IMU的启动环境以及标定工具包的工作环境。

  1. IMU启动环境。该IMU是激光雷达Livox_avia内置,型号为BMI088,启动环境与激光雷达一同配置的,启动时与激光雷达一同启动,打开rviz,点击add添加IMU话题信息就能够看到一个晃动的箭头,表明IMU在运转。Livox_avia启动环境配置见官网教程:livox驱动安装及启动教程

  1. 标定工具包下载安装。

先安装依赖项


sudo apt-get install libdw-dev

以及ceres,安装过程见官网教程:ceres安装,建议下载这个:

安装工具包,先下载安装code_utils:

找个位置先建一个工作文件夹,比如命名为imu_calib,


cd ~/imu_calib/src
git clone https://github.com/gaowenliang/code_utils
cd imu_calib
catkin_make

不出意外会报错,找到第一个报错的地方,看看哪里报错,大部分是因为版本更新而导致的问题,如果有提示怎么纠正的就按照提示来,没提示的就把错误复制到网上搜一下,由于当时没把错误截图,可以参考该回答利用 imu_utils 标定 imu_imu_utils标定_匍匐的狗仔的博客-CSDN博客,下面安装 imu_utils报错也是一样


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

二、标定数据采集

  1. 启动IMU,根据自己设备而定。livox_avia自带imu启动和雷达启动是一样的。

启动ros,新开终端,输入:


source devel/setup.bash
roslaunch livox_ros_driver livox_lidar_rviz.launch
  1. 看到rviz打开,激光雷达扫描在运行,说明成功启动,点击add,添加imu信息后会出现箭头:

如果没有则需要自行配置imu话题信息,查看自己运行的imu话题信息方式如下:


rostopic list
  1. 录制数据包,这里注意不要照抄,imu_calib_data文件夹需要自己创建,包的名字也要自己设置,后面的话题根据自己imu话题修改,录制两个小时,ctrl+c结束:


rosbag record -o imu_calib_data/imu_data.bag your_imu_topic
  1. 检查播放录制的包


rosbag play -r 100 imu_calib_data/imu_data.bag

三、利用imu_utils标定内参

1.编写launch文件,在 imu_utils 下的 launch 文件夹中创建 imu_test.launch,其实复制一个launch改个名字,把里面需要填的数据填一下即可,不用自己动手一个个输入:


<launch>
    <node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
        <param name="imu_topic" type="string" value= "/mobile_base/sensors/imu_data"/>//这里的value是你的imu的topic
        <param name="imu_name" type="string" value= "wheeltec"/>//这里的value是你的imu名字自定义
        <param name="data_save_path" type="string" value= "$(find imu_utils)/"/>//数据保存的包的地址
        <param name="max_time_min" type="int" value= "120"/>//这里的value值是你录制的imu的数据包的时间长度,这个value值一定要小于你录制的imu数据包
        <param name="max_cluster" type="int" value= "100"/>
    </node>
</launch>

2.运行 imu_test.launch 文件


cd ~/imu_utils_ws
source devel/setup.sh
roslaunch imu_utils imu_test.launch

3.播放录制的包


rosbag play -r 100 imu_calib_data/imu_data.bag

现在程序开始标定了,结束后到保存的位置,找到相对应自己imu名字的yaml文件,标定数据在里面,如下:

总结:

由于当时标定忘记截图,所以有些地方只有文字说明,主要是为了加强自己记忆,当作笔记方便日后继续操作,如果能帮助到你那就更好了!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓沅best

点个赞也是鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值