Ubuntu20.04使用lidar_IMU_calib

浙大开源的lidar_IMU_calib提供了在无目标的情况下进行Lidar和IMU的标定。下面记录了我在使用过程中遇到的一些问题,希望对大家有所帮助,也希望大家支出错误。

源代码只支持了VLP-16, 实际使用过程中常常需要使用其他类型的雷达,需要对代码进行拓展,本文提供了百度网盘下载拓展后的代码(支持了RS_Helios5515)。

文章目录

  • Ubuntu20.04使用lidar_IMU_calib
    • 1.编译
    • 2.源码修改
    • 3.录制数据集
    • 4.标定
      • 运行有两种方法
    • 5.标定结果

1.编译

Github源码地址
编译步骤:

mkdir -p ~/catkin_li_calib/src
cd ~/catkin_li_calib/src
catkin_init_workspace####下载源码###########
git clone https://github.com/APRIL-ZJU/lidar_IMU_calib####下面是安装一些依赖############
####ndt_omp###
wstool init
wstool merge lidar_IMU_calib/depend_pack.rosinstall
wstool updatecd lidar_imu_calib
./build_submodules.shcd ../..
catkin_make
source ./devel/setup.bash
###

注意:ubuntu20.04一般是pcl1.10和c++ 14,如果编译不通过,在CMakeLists.txt中修改。

2.源码修改

源码只支持了VLP-16,要使用其他的雷达信号需要自己自己增加相关的代码。这里参考了@
kero-czh博主的思路,主要修改在*/include/utils/vlp_common.hdataset_reader.h文件,以及/src/ui/calib_helper.cpp*文件中的内容。修改主要内容是根据其他雷达的用户手册在源码中增加新的雷达模型。

修改后的完整项目我放在了百度网盘中,有需要请自行下载。

注意:由于ubuntu系统是20.04,在编译成功后运行代码会导致Pangolin链接到python3.7m.so.1.0。所以可以修改项目文件的CMakeLists.txt,将PANGOLIN_DIR的路径注释掉,然后在系统中重新安装Pangolin,重新编译即可。

find_package(Eigen3 REQUIRED)
# find_package(Boost REQUIRED COMPONENTS system filesystem thread date_time)
find_package(Boost REQUIRED)
# set(PANGOLIN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/build-pangolin")
find_package(Pangolin REQUIRED)

在运行时也有可能找不到Pangolin的相关Lib,这是需要把自己安装的Pangolin链接加入到环境变量中。首先知道自己安装的Pangolin的位置,一般安装在 /usr/local/lib 中,打开 .bashrc文件,添加:

export  LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

3.录制数据集

录制标定数据集时,尽量在室内平面较多的地方,也要注意不要在太过狭窄的小房间内。需要在录制时,固定lidar和imu,让雷达和imu在各个方向上旋转和移动充分。

4.标定

标定之前,需要在launch 文件中更改录制的bag包的地址,和持续时间,以及lidar的类型,话题名。
launch文件如下(标红的部分)

<?xml version="1.0"?>
<launch><arg name="topic_imu"           default="/imu/data" /><arg name="path_bag"            default="*****(path to your bag)" /><arg name="bag_start"           default="1" /><arg name="bag_durr"            default="**以秒为单位" /><arg name="scan4map"            default="15" /><arg name="lidar_model"         default="your lidar model" /><arg name="ndtResolution"       default="0.5" /> <!-- 0.5 for indoor case and 1.0 for outdoor case --><arg name="time_offset_padding" default="0.015" /><arg name="show_ui"    default="false" /><node pkg="li_calib" type="li_calib_gui" name="li_calib_gui" output="screen"><!-- <node pkg="li_calib" type="li_calib_gui" name="li_calib_gui" output="screen" clear_params="true" launch-prefix="gdb -ex run --args">--><param name="topic_imu"         type="string"   value="$(arg topic_imu)" /><param name="topic_lidar"       type="string"   value="your lidar topic" /><param name="LidarModel"        type="string"   value="$(arg lidar_model)" /><param name="path_bag"          type="string"   value="$(arg path_bag)" /><param name="bag_start"         type="double"   value="$(arg bag_start)" /><param name="bag_durr"          type="double"   value="$(arg bag_durr)" /> <!-- for data association --><param name="scan4map"          type="double"   value="$(arg scan4map)" /><param name="ndtResolution"     type="double"   value="$(arg ndtResolution)" /><param name="time_offset_padding"   type="double"   value="$(arg time_offset_padding)" /><param name="show_ui"               type="bool"     value="$(arg show_ui)" /></node></launch>

其中参数bag_durr可以使用下面的命令得到持续时间

rosbag info ***.bag

运行有两种方法

一种是按照源码的方法,运行calib.sh(这种方法还需要在callib.sh中修改相关的参数)

./src/lidar_IMU_calib/calib.sh

一种是直接运行launch文件

roslaunch li_calib licalib_gui.launch

运行可能出现的错误
1:提示报错,找不到libpython3.7m.so.1.0,没有这个文件
这个报错是由于系统中没有python3.7。这种情况不需要再安装python3.7,请转到本篇文章第二部分的源码修改中的部分,查看解决方案。

2.代码在优化时迭代卡在了0次,不往下运行。
在GitHub的issue55中找到解决方案:在 /thirdparty/Kontiki/kontiki/sensors.const_bias_imu.h 中找如下代码,并在代码中加入 return true

bool LockGyroscopeBias(bool lock) {gyro_bias_locked_ = lock;//加入return true;}bool AccelerometerBiasIsLocked() const {return acc_bias_locked_;}bool LockAccelerometerBias(bool lock) {acc_bias_locked_ = lock;//加入return true;}

5.标定结果

P_LinI 为Lidar在IMU坐标系下的平移,euler_LtoI:为Lidar到IMU的欧拉角

ubuntu20.04使用浙大开源包lidar_IMU_calib相关推荐

  1. 即插即用——移动硬盘安装Ubuntu20.04

    即插即用--移动硬盘安装Ubuntu20.04 缘起 很多开源的与深度学习相关的代码其模型训练都是在服务器上完成的,当尝试在windows下去运行别人的代码时,总会出现一些意想不到且难以解决的问题,索 ...

  2. 乌班图服务器系统网卡驱动,开源之系统:Ubuntu20.04电脑安装无线网卡驱动并解决包依赖关系...

    依然是关于Ubuntu20.04新版本新电脑的安装使用,大致问题和情况,在之前的文章说过,本文做一个简单的梳理总结.既然是组装的新机器,之前从没装过其他任何操作系统,当然也没有网卡驱动之类的.在这种情 ...

  3. MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04)

    MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04) 一.安装依赖包 sudo apt install mesa-common-dev freeglut3-dev co ...

  4. WiFi6开发进阶-最新最低成本搭建WiFi6无线抓包环境(AX200+Ubuntu20.04+wireshark)

    开篇-最新最低成本搭建WiFi6无线抓包环境 WiFi6开发进阶 WiFi6开发进阶 开篇-最新最低成本搭建WiFi6无线抓包环境 前言 一.硬件配置 1.一张intel AX200 WiFi6无线网 ...

  5. Ubuntu20.04 通过deb包方式安装微信

    写在前面 写文时间:2022.12.03 周六 自己的系统是Ubuntu20.04.5,安装的是 weixin_2.1.1_amd64.deb. 安装微信 从优麒麟官网下载微信deb安装包. 下载完成 ...

  6. ubuntu20.04安装微信和QQ,腾讯会议,以及一些其他实用软件

    由于电脑性能不行,所以有windows 转为ubunut20.04,这样电脑流畅多了.美化了下它的UI,美化的差不多了,之后,就差安装微信和qq了,微信对于我来说是必要的,qq有时候也需要使用,所以索 ...

  7. ubuntu20.04使用USB转串口进行串口调试

    1.测试环境 Virtual Box 中虚拟的Ubuntu20.04. PL2303芯片USB转串口线 串口调试工具: CuteCom  /  BaoYuanSerial 2.将USB串口映射到Ubu ...

  8. Ubuntu系统安装、配置与美化(Ubuntu20.04)

    阅读指南 目的 本文的写作目的在于帮助完全零基础的小白不理解原理而可以无脑安装Linux系统,同时也是为自己进行的一个整理,相较于网上大多数的教程,本教程将一些内容进行了整合与整理,加之本人在安装Ub ...

  9. conda安装与使用--ubuntu20.04

    不同的Python项目可能依赖不同版本的包,如项目1依赖numpy 1.20,项目2依赖numpy 1.23.如果想在系统中同时运行项目1和项目2,环境的配置是个问题.conda可以针对项目1和项目2 ...

最新文章

  1. 【Mybatis】 mapper 继承
  2. IOS-状态栏的简单操作
  3. Confluence 6 在 Apache 或者系统级别阻止垃圾
  4. 多线程中 start()和run()方法的区别
  5. 洛谷——P1478 陶陶摘苹果(升级版)
  6. Java Web整合开发(13) -- XML
  7. 【learning】中国剩余定理
  8. Echart极坐标间隔显示-单类目轴
  9. 【网络是怎样连接的】—— TCP/IP 传输数据
  10. A题 血管机器人的订购与生物学习#2022年五一数学建模
  11. 配合蓝牙打印的encoding-indexes.js文件内容:
  12. 高通9008工具 qpst 安装时报错 qpst server returned unexpected error attempting 解决办法
  13. 反思: Google 为何把 SurfaceView 设计的这么难用?
  14. 解决file_get_contents乱码
  15. 【实战总结】根据地图经纬度及范围查询坐标点信息
  16. 这个时代“寒门再难出贵子” (转帖)
  17. 赛事解读|中国工程机器人大赛暨国际公开赛——飞思实验室空中机器人项目-仿真与自主任务赛项
  18. JavaScript 数组array 插入[ push() ] 与 删除[ splice() ]
  19. Python学习周报
  20. 知识付费小程序源码可开激励广告流量主+虚拟资源变现+附带视频教程

热门文章

  1. 电子身份证在微信哪里?微信电子身份证的查看方式有2种,仅需3步
  2. pythonocr训练模型_cnocr: cnocr是用来做中文OCR的Python 3包。cnocr自带了训练好的识别模型,安装后即可直接使用...
  3. CSS 系列七 高级技巧篇 精灵图 、字体图标 、CSS三角 、 图片和文字对齐以及bug 、溢出文字省略号 、CSS 初始化 、 常见的布局技巧
  4. 去应聘担心自己实力不够???看这里!
  5. MySQL insert or update sql
  6. 对计算机知识的兴趣,大学新生计算机学习基础与兴趣的调查分析
  7. EDIUS中该如何保存默认特效
  8. Tool-360关闭健康助手,关闭360的弹窗(自动倒计时出现锁屏页面)
  9. 【工程源码】【Modelsim常见问题】Analysis and Synthesis should be completed
  10. 深度强化学习DRL训练指南和现存问题(D3QN(Dueling Double DQN))