雷达+ IMU标定 运行LIO-SAM ---(1)

Ubuntu:  20.04  noetic

雷达型号:VLP-16

IMU:N100

LIO-SAM

雷达驱动安装之前的博客写过: Ubuntu 20.04 调试VLP-16

一、安装IMU驱动

       此处的命令在我这是不符合 我的是 ::

vim /etc/modules 

打开文件之后,在最后一行加入 “ch343”文本,然后 ctrl+o 保存后,ctrl+x 退出即可。 

然后惯导接入Linux系统,出入命令查看端口:

ls -l /dev | grep ttyCH

买设备 厂家会给提供IMUROS_SDK::使用的是ROS1,需要   fdilink_ahrs_ROS1  这个文件  里面的 fdilink_ahrs  , 保存到 工作空间 imu_calib_ws/src  文件夹下

下面参考博客:

Ubuntu20.04编译并运行imu_utils,并且标定IMU_学无止境的小龟的博客-CSDN博客

SLAM硬件搭建(激光雷达+IMU+相机+移动底盘)_Cloudy_to_sunny的博客-CSDN博客_slam 硬件

1.  运行脚本确定串口

在编译之前需要运行一下脚本wheeltec_udev.sh这个脚本的作用是确定该IMU是通过哪一个串口进行连接的。

sudo ./wheeltec_udev.sh

出现问题:

修改:

打开脚本文件属性,勾选“允许作为程序执行文件” 

之后再次运行即可!!!

或者 直接查找对应的串口编号,运行下面的代码 查看外设情况

ll /dev/

刚开始根据上面博客的这种方法查找串口对我的设备来说不管用,所以后来增加了最开始那个驱动 来检查串口 ,就可以找到!!!!

2. 编译运行

返回到工作空间  imu_calib_ws 

cd ~/imu_calib_ws
catkin_make

 报错:

 解决: 安装串口依赖

sudo apt-get install ros-noetic-serial

再次  catkin_make 编译即可编译成功!!!!

3. 运行launch 文件 

 之后的过程参考:

Ubuntu20.04编译并运行imu_utils,并且标定IMU_学无止境的小龟的博客-CSDN博客

在运行launch文件之前, 先打开 launch 文件夹 下面的 ahrs_data.launch 文件修改串口号: 

<param name="port" value="/dev/你的串口号"/>

 我的是 <param name="port"  value="/dev/ttyCH343USB0"/>

source devel/setup.bash

roslaunch fdilink_ahrs ahrs_driver.launch 

 查看发布的话题:

 查看IMU数据

rostopic echo /imu

 Rviz 可视化展示

rosrun rviz rviz

ADD话题,增加imu信息;参照配置文件,修改坐标系换成gyro_link。rviz效果如下:

 保存数据

//             指定话题      将要录制的bag的文件名
rosbag record /imu -O imu.bag		// 让IMU静止不动两个小时,录制IMU的bag

大概录制两个小时左右..... 

终端显示如下:

 

二、利用 imu_utils 标定 imu

参考博客:

利用 imu_utils 标定 imu_er_dan_love的博客-CSDN博客_imu_utils标定

1. 安装 imu_utils

(1) 安装依赖项

sudo apt-get install libdw-dev

(2) ceres 已经安装(code_imu依赖ceres)

(3) 下载代码并编译 code_utils

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

报错:

解决: 

找到报错的文件 sumpixel_test.cpp 把 #include "backward.hpp" 改为 #include "code_utils/backward.hpp"。

 再次 catkin_make 编译成功!!!!

(4) 编译 imu_utils

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

2. 录制IMU数据

rosbag record -o ***

录制两个小时左右......

3. 编写 launch 文件

 在 imu_utils 下的 launch 文件夹中创建 imu_test.launch 。内容如下

<launch>
    <node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
    	<!--这里的value是你的imu的topic-->
        <param name="imu_topic" type="string" value= "/imu"/>
        <!--这里的value是你的imu名字自定义-->
        <param name="imu_name" type="string" value= "wheeltec"/>
        <!--存放数据的文件路径可以根据自己需要修改-->
        <param name="data_save_path" type="string" value= "$(find imu_utils)/data/fdilink/"/>
        <!--这里的value值是你录制的imu的数据包的时间长度,这个value值一定要小于你录制的imu数据包-->
        <param name="max_time_min" type="int" value= "120"/>
        <param name="max_cluster" type="int" value= "100"/>
    </node>
</launch>

4. 标定过程

  • 在标定文件根目录下,输入命令:
catkin_make
source devel/setup.bash
roslaunch imu_utils imu_test.launch
  •  然后,在  录制的 imu 数据包目录下,播放录制好的 imu  的  bag 包。
rosbag play -r 200 imu.bag   // 200 倍速播放rosbag

 

程序进入bag读取,并计算allan方。当bag包加速回放完毕后,执行launch的窗口仍然会显示wait for imu data.,等待一段时间计算,计算完毕后会显示计算结果。

标定过程图片如下:
陀螺仪:

加速度计:

  • 数据包播放结束之后,在    ~/imu_utils/data/fdilink/(这是我修改后的文件路径)这个文件夹下会出现一系列的参数文件,如下图所示:

  • 打开wheeltec_imu_param.yaml这个文件,会看到计算出来的噪声和随机游走的系数值,如下所示:

至此,IMU的内参标定和记录结束。

参考:

Ubuntu20.04编译并运行imu_utils,并且标定IMU_学无止境的小龟的博客-CSDN博客

使用 imu_utils 对 IMU 进行标定_贵在坚持,不忘初心的博客-CSDN博客_imu_utils

利用 imu_utils 标定 imu_er_dan_love的博客-CSDN博客_imu_utils标定

  • 0
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值