亲自部署LIO-SAM、LVI-SAM的全过程经历01——跑通
在自己小车上部署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——跑通相关推荐
- MPI部署踩坑实况!!!最终成功跑通梯形面积法!!!精准全流程命令+各步骤报错解决方案!!!
MPI部署踩坑实况!!!最终成功跑通梯形面积法!!!精准全流程命令+各步骤报错解决方案!!! 写在前面,博主暂用Win10系统,本想远程连接控制个服务器走一下流程,经师兄推荐,使用WSL装了个Ubun ...
- Hexo博客部署到腾讯云服务器全过程(Nginx,证书,HTTPS),你要的这里都有
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 使用 Jenkins 自动部署 java-web 应用到 Docker 容器(全过程)
写在前面 首先我们在使用默认的 Jenkins 安装配置的时候,是缺少几个插件的,我们需要手动安装上去,插件名称如下(我安装 Jenkins 的时候默认把他汉化了): SSH server Publi ...
- sam+matlab,Sam版Matlab粒子群PSO工具已经更新
显著亮点 这次最大的更新是支持除了bound上下边界约束之外的其它类型的线性和非线性约束条件.名字也从Another Particle Swarm Toolbox改为Constrained Parti ...
- 阿里P7亲自教你!我的头条面试经历分享,完整PDF
前言 转眼间,2020 年已过去一大半了,2020 年很难,各企业裁员的消息蛮多的,降职,不发年终奖等等.2020 年确实是艰难的一年.然而生活总是要继续,时间不给你丧的机会!如果我们能坚持下来,不断 ...
- Ubuntu 14.04 跑通 lsd slam 全过程
作为一个菜鸡的我,前前后后一个多星期,换了三个系统,总算是把它跑通了. 记录一下我踩的坑.让大家少走弯路. 写在前面的话:网上的都是骗人的,我几乎翻遍了网上的教程,每一个错误我都能背下来了,始终编译不 ...
- ssm项目直接加html文件,如何把ssm项目和vue项目部署在云服务器(上)
如何把ssm项目和vue项目部署在云服务器(上) 如何把ssm项目和vue项目部署在云服务器(上) 一.引入 URL的概念理解 在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL( ...
- kurento和打洞的服务器的安装及部署
kurento和打洞的服务器的安装及部署 文章目录 `kurento`和打洞的服务器的安装及部署 前言 使用docker安装kurento docker安装stun和turn服务器(打洞服务器) ku ...
- 618大促将至,用AI挖掘差评,零代码实现亿级评论观点情感分析
马上就要到一年一度的618大促,我在添加购物车时,选择困难症又犯了. 如今的电商评论区,大量刷单行为淹没了重要的产品评价,有的被淹没在了追评区,有的甚至已经不分好评/中评/差评区了,而是"一 ...
最新文章
- 自己就是最好的投资标的
- Python 实现有道翻译命令行版
- C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid运算符
- 被丧心病狂的验证码虐过,来感受一下交互体验很好的十款吧
- java 怎么把list流化_Java 中的数据流和函数式编程
- 网络资产管理系统_固定资产管理系统的常用操作
- 科技前沿及论文写作相关视频
- 对大脑有益的16种食物_对大脑有益的食物有哪些?
- 安川e7变频器接线_台达变频器C2000系列在铝箔纸压花机上的应用
- Linux之虚拟机配置双网卡
- 转载:什么是良好的Verilog代码风格?(作者KellenWang)
- java 垃圾回收题目_我肝了万字的Java垃圾回收,看完你还敢说不会?
- Navicat安装与破解
- 因子主成分分析,因子载荷矩阵、因子解释度 因子得分-在基金净值和主要金融因子分析上的应用
- 天梵古法健康知识普及:手阳明大肠经
- python列表索引超出范围 等于啥_Python列表错误,列表索引超出范围
- Python | datetime与time模块
- linux脚本编程教程
- sql文字转换全拼_取汉字全拼的SQL函数
- 大话软件测试_读书笔记