lego-loam学习笔记(一)

news2025/1/13 10:49:47

前言:

主要记录配置编译lego-loam源码时遇到的问题和解决的方法。

系统:ubuntu18.04

一、安装gtsam

因为系统是18.04所以不需要作很大的更改,按照官网的doc一步一步的来就行了。

根据官网:

GitHub - RobustFieldAutonomyLab/LeGO-LOAM: LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain

wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
 
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
 
cd ~/Downloads/gtsam-4.0.0-alpha2/
 
mkdir build && cd build
 
cmake ..
 
sudo make install

这个是官网给出的下载编译gtsam的命令,值的注意的是,这里下载编译的gtsam是4.0.0-alpha2版本,属于比较老的版本了。然后在cmake .. 这一步中,因为这个gtsam版本比较老,所以需要用到的Eigen库也比较老,如果之前电脑里面安装了Eigen会被这个版本的产生冲突,所以最好使用这个命令:

cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..

关闭SSE加速且使用系统自带的Eigen库。

参考文章:

Ubuntu 20.04 下编译 Lego Loam 踩过的一些坑

二、初次编译

按照官方的doc来,安装好了gtsam就可以直接编译运行lego-loam。

cd xx/LeGO_ws
 
mkdir src && cd src
 
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
 
cd ..
 
catkin_make -j1

这里使用catkin_make -j1是因为使用catkin_make,命令是调用当前计算机的所有核参与运算,lego-loam会用到一些自定义的消息头文件,如果使用多核,就会跳过生成这些头文件的过程。因此使用-j1来进行单核编译。

三、遇到的错误及解决方式

1.pcl版本指向的问题

第一次编译的时候,总会遇到这个错误:

 在网上找了一全后,没有发现类似的错误,只能去issue里面看也没有类似的,最后是在issue里面找到一个擦边的。判断应该是不同的pcl库的影响,最后解决了。具体步骤看之前写的这篇文章:

指定不同版本的pcl_hex_refugeeeee的博客-CSDN博客

解决后就成功编译了:

 2.运行报错[mapOptmization-7] process has died

 这个错误是因为没有把动态链接库的安装路径(例如 /usr/local/lib )放到变量 LD_LIBRARY_PATH 里。所以直接在roslaunch终端里面输入这个命令:

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

之后就成功运行了。

 参考文章:

运行lego_loam报错[mapOptmization-7] process has died [pid 11653, exit code 127, cmd /home/p/legoloam/dev_plejahhshsh的博客-CSDN博客_mapoptmization-7]

四、总结

编译运行lego-loam就遇到了上述的问题,这里记录一下。

之后对于lego-loam的学习主要在于它框架里面的地面分离与聚类部分的实现源码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178950.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DlhSoft Gantt Chart Light Library自定义的网格列

DlhSoft Gantt Chart Light Library自定义的网格列 Improved the loading of Microsoft Project XML files and the exporting of images from ScheduleChartDataGrid.Added new TotalResourceEffort and TotalResourceCompletedEffort properties to compute the real effort …

MySQL数据库数据动态监控(canal+Kafka)

参考资料: 参考文章https://gper.club/articles/7e7e7f7ff3g59gc6g6d canal官网 https://github.com/alibaba/canal

JavaWeb项目中添加live2d模型

前言:之前个人博客中配置的live2d模型的API失效了,所以重新折腾了一下,在自己服务器配置了 live2d 的 API,在此记录一下 JavaWeb项目中添加live2d模型 之前在个人博客中使用的 live2d 模型一直用的是网上一个大佬免费提供的 API …

Mybatis 的中高级特性使用

简介: MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成…

小学生编程一些log

家里孩子也逐渐开始学习编程了,这里是一些经验积累,log下,希望能节省一些大家的探索时间; 方块编程 开始起手是一些scratch类的编程,使用方块类的,网课就可以,我这里尝试的是核桃编程&#xff…

蓝桥杯2020省赛python

蓝桥杯2020省赛Python 第一题:门牌制作 用了一个时间复杂度是n的算法,反正是填空题也不会出现TLE的事,只要别太离谱就行了。 利用python 的count函数 res 0 for i in range(1,2021):i str(i)res i.count(2) print(res)答案是2 第二题&…

【目标检测论文解读复现NO.26】基于改进YOLOv5s网络的实时输液监测

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

115、【回溯算法】leetcode ——216.组合总和III:回溯法+剪枝优化(C++版本)

题目描述 原题链接:216.组合总和III 解题思路 整体回溯法思路类似于 77. 组合(回溯法剪枝优化),与之不同的是,需要多一个相加和为n的判定条件,可以让每次传入数的时候进行n - i,直至找到n 0时…

CAPBase理论

一、CAP 理论CAP 理论指出对于一个分布式计算系统来说,不可能同时满足以下三点:一致性:在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性,等同于所有节点访问同一份最新的数据副本。在一致性的需求…

英飞凌TC3xx系列介绍01-GTM系统介绍

本文框架1. 本系列前言2. GTM模块系统介绍2.1 GTM模块常用缩略语3. 系列介绍规划1. 本系列前言 英飞凌TC3xx是英飞凌AURIX 2G系列单片机,该系列单片机是32位微控制器,具有多个TriCore CPU、程序及数据存储器、总线、中断系统、DMA及功能强大的外围设备。…

linux基本功系列之su命令

文章目录一. su命令介绍二. 语法格式及常用选项三. 参考案例3.1 切换到root用户3.2 切换到指定用户3.3 不切换成root,但执行root才能执行的命令总结前言🚀🚀🚀 想要学好Linux,命令是基本功,企业中常用的命令…

【MySQL】第十部分 常用的聚合函数

【MySQL】第十部分 常用的聚合函数 文章目录【MySQL】第十部分 常用的聚合函数10. 常用的聚合函数10.1 MIN和MAX函数10.2 COUNT函数10.3 AVG和SUM函数10.4 GROUP BY10.5 HAVING总结10. 常用的聚合函数 定义: 对一组数据进行汇总的函数,输入的是一组数据的集合&…

英语学习打卡day5

2023.1.25 1.aqua n.水;溶液;浅绿色 The construction of underground aqua storage tank 地下水储罐的建设 2.do sth for dear life 拼命做某事 If you do something for dear life, you do it with as much effort as possible, usually to avoid danger. 3. 4.swoop …

vue-grid-layout数据可视化图表面板优化过程所遇问题汇总

对于drag事件不熟悉的,请先阅读:《drag事件详解:html5鼠标拖动排序及resize实现方案分析及实践》之前老项目grafana面板,如下图所示(GEM添加图表是直接到图表编辑,编辑完成后自动插入到面板最后&#xff09…

Flume集群安装部署、Kafka集群安装部署以及Maxwell安装部署实战

1、Flume集群安装部署 1.1、安装地址 Flume官网地址:http://flume.apache.org/文档查看地址:http://flume.apache.org/FlumeUserGuide.html下载地址:http://archive.apache.org/dist/flume/ 1.2、安装部署 将apache-flume-1.9.0-bin.tar.…

Redis实现笔记点赞排行榜 | 黑马点评-达人探店

一、发布探店笔记 探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个 探店笔记表(主键、商户id、用户id、标题、文字、图片、探店文字描述、点赞数量、评论数量)评价表(笔记的评价)先上传图片请求一次保存…

【Java基础】--Java排序

【Java基础】--Java排序1、选择排序(Select Sort)2、冒泡排序(Bubble Sort)3、插入排序(Insert Sort)4、希尔排序(Shell Sort)5、归并排序(Merge Sort)6、快速排序(Quick Sort)7、堆排序(Heap Sort)小结待排序的元素需要实现 Java 的 Comparable 接口,该接口有 com…

Facebook SEO中参与度的重要性

参与度,也就是大家所说的浏览量,在 Facebook SEO中也叫做页面访问者参与度。一般来说, Facebook的用户在上面停留的时间越长代表着它在用户心目中的形象越好,这也是为什么 Facebook上的访客愿意打开自己的 Facebook页面让好友帮忙…

使用vite构建vue3项目详细介绍(ts+pinia+sass+vue-router+axios+element-plus)

使用vite构建vue3项目详细介绍(tspiniasassvue-routeraxioselement-plus) 1. 创建项目 npm init vitelatest 2. 配置 vite.config.ts path需要安装--npm install types/node --save-dev import vue from vitejs/plugin-vue; import { resolve } from path; import { defineC…

Jupyter的安装与默认目录的切换

下载与安装 清华大学开源软件镜像站 使用国内镜像下载更快,官网下载很慢 下载msi镜像文件,打开安装: 安装完成后得到4个文件 Reset Spyder...和Anaconda Powershell....都是相应的配置,其中后者是Jupyter和anaconda的dos命令窗口…