在自己小车上部署LIO-SAM和LVI-SAM,简单记录一下经历,经历了十多天的终于将LIO-SAM和LVI-SAM两个算法的实测工作基本完成,期间遇到了一些问题,尤其是自己的设备上,遇到的运行问题网上也很少见,也很少有从算法的编译到实测部署全过程,因此自己的经历在此记录,也是帮助自己进行梳理,有不正确的地方还请大佬们批评指正,进行讨论交流!!

一、LIO-SAM与LVI-SAM论文与源码地址

LIO-SAM与LVI-SAM这里不做过多介绍,直接给出论文与源码地址!

LIO-SAM论文链接:LIhttps://github.com/TixiaoShan/LIO-SAM/blob/master/config/doc/paper.pdf

LIO-SAM源码链接:

LVI-SAM论文链接:https://arxiv.org/abs/2007.00258

LVI-SAM源码链接:https://github.com/TixiaoShan/LVI-SAM.git

二、环境配置

ubuntu18.04+ROS melodic+gtsam4.0.2+ceres1.14.0

1.虽然保姆级教程安装Ubuntu18.04安装就不做介绍了,哈哈哈!

2.ROS melodic可以使用鱼香ROS安装,轻松加愉快!我只能说非常的哇塞,分分钟完成,链接如下:

ros安装(一键最简安装,吹爆鱼香ROS,请叫我鱼吹)-CSDN博客

(ps:若要源码安装参考第一篇博客,但是坑较多,不建议使用)

3.gtsam4.0.2安装

地址:https://github.com/borglab/gtsam/archive/4.0.2.zip

mkdir ~/Downloads
//解压到该文件下,gtsam4.0.2文件
cd ~/Downloads/gtsam-4.0.2/
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j8

(ps:也可以直接克隆,但我一般就直接下载,,这一步基本上没有错误!)

4.ceres1.14.0安装

这个优化库在LVI-SAM中用到,如果只运行LIO-SAM可以不用安装。

sudo apt-get install -y libgoogle-glog-dev //安装依赖
sudo apt-get install -y libatlas-base-dev  //安装依赖
下载ceres1.14.0: https://github.com/ceres-solver/ceres-solver/archive/1.14.0.zip
解压到:Downloads
cd ~/Downloads/ceres-solver-1.14.0
mkdir ceres-bin && cd ceres-bin
cmake ..    //编译
sudo make install -j4  //安装

ps:安装完成后, /usr/local/include/ceres 下找到Ceres的头文件,并在 /usr/local/lib/ 下找到名为libceres.a的库文件,表示安装成功了!!接下来可以安装LIO-SAM和LVI-SAM了

三、运行LIO-SAM

1.创建好工作空间catkin_lio_ws,将lio-sam源码下载到catkin_lio_ws/src目录下编译

mkdir -p ~/catkin_lio_ws/src
cd ~/catkin_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
cd ..
catkin_make

2.数据集下载

https://drive.google.com/drive/folders/1gJHwfdHCRdjP7vuT556pv8atqrCJPbUq?usp=sharing

ps:需要梯子!

如果不使用数据集测试,也可使用上交殷杰的M2DGR数据集测试,只需要将LIO-SAM-master/config/params.yaml修改为该数据集中的话题、IMU参数、激光雷达与IMU的外参,M2DGR数据集官网已给出,地址为:GitHub - SJTU-ViSYS/M2DGR: M2DGR: a Multi-modal and Multi-scenario Dataset for Ground Robots

3.运行

source devel/setup.bash
roslaunch lio_sam run.launch

此处可能会报错

[lio_sam_imuPreintegration-2] process has died [pid 1671, exit code 127, cmd /home/shuai/subject/catkin_lio_ws/devel/lib/lio_sam/lio_sam_imuPreintegration __name:=lio_sam_imuPreintegration __log:=/home/shuai/.ros/log/635269ee-46bc-11ed-a61b-1c697af31044/lio_sam_imuPreintegration-2.log].
[lio_sam_mapOptmization-5] process has died [pid 1672, exit code 127, cmd /home/shuai/subject/catkin_lio_ws/devel/lib/lio_sam/lio_sam_mapOptmization __name:=lio_sam_mapOptmization __log:=/home/shuai/.ros/log/635269ee-46bc-11ed-a61b-1c697af31044/lio_sam_mapOptmization-5.log].

原因是因为没有找到安装的库文件,所以将 /usr/local/lib 目录中libmetis.so添加到/opt/ros/melodic/lib/。解决方法:

cd /usr/local/lib/
sudo cp libmetis.so /opt/ros/melodic/lib/        //将库文件复制到 ROS下的库文件中

在此执行:

source devel/setup.bash
roslaunch lio_sam run.launch

成功运行,画面如下:

 4.播放bag包。

rosbag play XXXXX.bag

PS:该数据bag包的话题一定与yaml文件中对应,不然运行失败!

我是运行的M2DGR数据集,效果如上图,感觉还不错!

四、运行LVI-SAM

mkdir -p ~/catkin_lvi_ws/src
cd ~/catkin_lvi_ws/src
git clone https://github.com/TixiaoShan/LVI-SAM.git
cd ..
catkin_make

数据集下载,同LIO-SAM

https://drive.google.com/drive/folders/1q2NZnsgNmezFemoxhHnrDnp1JV_bqrgV?usp=sharinghttps://drive.google.com/drive/folders/1q2NZnsgNmezFemoxhHnrDnp1JV_bqrgV?usp=sharing

source devel/setup.bash
roslaunch lio_sam run.launch
rosbag play XXXXX.bag    //播放包

若有报错:

[mapOptmization-7] process has died [pid 14493, exit code 127, cmd
/home/zard/catkin_ws/devel/lib/lego_loam/mapOptmization __name:=mapOptmization __log:
=/home/zard/.ros/log/922c7a94-0354-11ed-951b-8d0be314719f/mapOptmization-7.log].

杀死了进程!

解决办法

通过安装libparmetis-dev修复它重新运行即可:

sudo apt-get install libparmetis-dev

以上两个算法跑通并不复杂,今天先写那么多,下次写硬件部署小车,激光雷达与IMU标定、相机与IMU标定、LIO-SAM和LVI-SAM实测 !

亲自部署LIO-SAM、LVI-SAM的全过程经历01——跑通相关推荐

  1. MPI部署踩坑实况!!!最终成功跑通梯形面积法!!!精准全流程命令+各步骤报错解决方案!!!

    MPI部署踩坑实况!!!最终成功跑通梯形面积法!!!精准全流程命令+各步骤报错解决方案!!! 写在前面,博主暂用Win10系统,本想远程连接控制个服务器走一下流程,经师兄推荐,使用WSL装了个Ubun ...

  2. Hexo博客部署到腾讯云服务器全过程(Nginx,证书,HTTPS),你要的这里都有

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  3. 使用 Jenkins 自动部署 java-web 应用到 Docker 容器(全过程)

    写在前面 首先我们在使用默认的 Jenkins 安装配置的时候,是缺少几个插件的,我们需要手动安装上去,插件名称如下(我安装 Jenkins 的时候默认把他汉化了): SSH server Publi ...

  4. sam+matlab,Sam版Matlab粒子群PSO工具已经更新

    显著亮点 这次最大的更新是支持除了bound上下边界约束之外的其它类型的线性和非线性约束条件.名字也从Another Particle Swarm Toolbox改为Constrained Parti ...

  5. 阿里P7亲自教你!我的头条面试经历分享,完整PDF

    前言 转眼间,2020 年已过去一大半了,2020 年很难,各企业裁员的消息蛮多的,降职,不发年终奖等等.2020 年确实是艰难的一年.然而生活总是要继续,时间不给你丧的机会!如果我们能坚持下来,不断 ...

  6. Ubuntu 14.04 跑通 lsd slam 全过程

    作为一个菜鸡的我,前前后后一个多星期,换了三个系统,总算是把它跑通了. 记录一下我踩的坑.让大家少走弯路. 写在前面的话:网上的都是骗人的,我几乎翻遍了网上的教程,每一个错误我都能背下来了,始终编译不 ...

  7. ssm项目直接加html文件,如何把ssm项目和vue项目部署在云服务器(上)

    如何把ssm项目和vue项目部署在云服务器(上) 如何把ssm项目和vue项目部署在云服务器(上) 一.引入 URL的概念理解 在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL( ...

  8. kurento和打洞的服务器的安装及部署

    kurento和打洞的服务器的安装及部署 文章目录 `kurento`和打洞的服务器的安装及部署 前言 使用docker安装kurento docker安装stun和turn服务器(打洞服务器) ku ...

  9. 618大促将至,用AI挖掘差评,零代码实现亿级评论观点情感分析

    马上就要到一年一度的618大促,我在添加购物车时,选择困难症又犯了. 如今的电商评论区,大量刷单行为淹没了重要的产品评价,有的被淹没在了追评区,有的甚至已经不分好评/中评/差评区了,而是"一 ...

最新文章

  1. 自己就是最好的投资标的
  2. Python 实现有道翻译命令行版
  3. C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid运算符
  4. 被丧心病狂的验证码虐过,来感受一下交互体验很好的十款吧
  5. java 怎么把list流化_Java 中的数据流和函数式编程
  6. 网络资产管理系统_固定资产管理系统的常用操作
  7. 科技前沿及论文写作相关视频
  8. 对大脑有益的16种食物_对大脑有益的食物有哪些?
  9. 安川e7变频器接线_台达变频器C2000系列在铝箔纸压花机上的应用
  10. Linux之虚拟机配置双网卡
  11. 转载:什么是良好的Verilog代码风格?(作者KellenWang)
  12. java 垃圾回收题目_我肝了万字的Java垃圾回收,看完你还敢说不会?
  13. Navicat安装与破解
  14. 因子主成分分析,因子载荷矩阵、因子解释度 因子得分-在基金净值和主要金融因子分析上的应用
  15. 天梵古法健康知识普及:手阳明大肠经
  16. python列表索引超出范围 等于啥_Python列表错误,列表索引超出范围
  17. Python | datetime与time模块
  18. linux脚本编程教程
  19. sql文字转换全拼_取汉字全拼的SQL函数
  20. 大话软件测试_读书笔记

热门文章

  1. 一些高中数学基础题(持续更新)
  2. 【STM32G431RBT6】蓝桥杯嵌入式 ADC采样DMA传输配置
  3. el-table怎么设置单个表格变颜色
  4. 微信小程序通过web-view网页授权获取用户公众号OpenID
  5. 多模态大模型时代下的文档图像智能分析与处理
  6. 【学习笔记1】C++除号“/”的使用
  7. ZZULI 1077: 空心菱形
  8. 88hash 饰品交易平台 立刻取回的csgo开箱网站
  9. 肝了两周,我做了一个面试刷题小程序
  10. 学计算机的网名,小学生可爱网名 好听的学生网名