当前位置:   article > 正文

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

livox avia

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

一、环境配置

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

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

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

先安装依赖项


<code class="language-plaintext hljs">sudo apt-get install libdw-dev</code>

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

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

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


<code class="language-plaintext hljs">cd ~/imu_calib/src
git clone https://github.com/gaowenliang/code_utils
cd imu_calib
catkin_make</code>

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


<code class="language-plaintext hljs">cd ~/imu_calib/src
git clone https://github.com/gaowenliang/imu_utils
cd imu_calib
catkin_make</code>

二、标定数据采集

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

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


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

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


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


<code class="language-plaintext hljs">rosbag record -o imu_calib_data/imu_data.bag your_imu_topic</code>
  1. 检查播放录制的包


<code class="language-plaintext hljs">rosbag play -r 100 imu_calib_data/imu_data.bag</code>

三、利用imu_utils标定内参

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


<code class="language-plaintext hljs"><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></code>

2.运行 imu_test.launch 文件


<code class="language-plaintext hljs">cd ~/imu_utils_ws
source devel/setup.sh
roslaunch imu_utils imu_test.launch</code>

3.播放录制的包


<code class="language-plaintext hljs">rosbag play -r 100 imu_calib_data/imu_data.bag</code>

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

总结:

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/597643
推荐阅读
相关标签
  

闽ICP备14008679号