首页 > 系统相关 >【SLAM】Ubuntu20.04下运行LeGO-LOAM(图文结合,保姆级教程)

【SLAM】Ubuntu20.04下运行LeGO-LOAM(图文结合,保姆级教程)

时间:2024-12-23 17:56:12浏览次数:6  
标签:Ubuntu20.04 lego LOAM LeGO 编译 loam gtsam

在Ubuntu 20.04上安装和运行LeGO-LOAM确实是一个充满挑战的过程,期间可能会遇到不少问题。在这里记录并分享我的经验,希望能为有需要安装和编译该算法的朋友们提供一个全面的参考指南。

本文在上一篇博客的基础上安装,确保已安装相关的依赖。相关依赖可参考笔者的上一篇博客:

【SLAM】Ubuntu20.04 Noetic下用Kitti数据集运行A-LOAM(保姆级教程,小白也能看懂并复现)


目录

一、安装gtsam

1.1卸载其他版本的gtsam(之前如果没有安装过gtsam,可以跳过此步)

1.2gtsam安装

二、下载并编译LeGO-LOAM源码

2.1下载源码

2.2修改源码

2.3编译

2.4编译问题解决

三、准备数据集

四、运行


一、安装gtsam

1.1卸载其他版本的gtsam(之前如果没有安装过gtsam,可以跳过此步)

如果之前已安装过 gtsam,建议先将其卸载干净。这样做可以避免版本冲突,防止在后续的编译过程中遇到潜在问题。具体步骤如下:

1.打开“其他位置/计算机/usr/local/lib”,在该目录下搜索框中输入gtsam,将这些文件全部删除,高版本的gtsam还需要删除libmetis-gtsam.so文件。

2.打开“其他位置/计算机/opt/ros/noetic/lib”,删除libmetis.so文件,高版本的gtsam若有libmetis-gtsam.so文件,同样需要删除。

1.2gtsam安装

特别说明:若已安装Anaconda,强烈建议删除之后再进行以下安装(笔者之前就是因为这个原因出现编译错误)。如下所示:

 将Anaconda删除后成功编译。

这里选择安装gtsam-4.0.0-alpha2版本(以便后续需要安装LIO-SAM算法):

在终端输入以下命令进行下载:

wget https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip

下载完成后将文件解压提取到任意目录(如主目录下),在gtsam-4.0.0-alpha2目录下打开终端,依次输入:

mkdir build && cd build

cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..

sudo make install -j12

(-j12 --- 同时使用12个线程进行编译,加快编译速度,但要根据自己电脑的CPU核心数量进行调整)

至此,gtsam4.0.0-alpha2已安装完成!

二、下载并编译LeGO-LOAM源码

2.1下载源码

创建一个名为 lego_loam 的ROS工作空间,并下载LeGO-LOAM源代码。以下是创建工作空间和下载源代码的步骤:

1.在主目录下打开终端,使用 mkdir 指令创建工作空间文件夹(一定要有src文件夹):

mkdir -p ~/lego_loam/src

2.切换到工作空间目录:

cd ~/lego_loam/src

3.克隆LeGO-LOAM源代码到src文件夹:

git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git

2.2修改源码

1.打开./lego_loam/src/LeGO-LOAM/LeGO-LOAM/include/utility.h,将#include <opencv/cv.h>改为:

#include<opencv2/imgproc.hpp>

2.打开./lego_loam/src/LeGO-LOAM/LeGO-LOAM/CMakeLists.txt,将c++11改为c++14,如下图所示:

2.3编译

在~lego_loam文件夹(工作空间)下打开终端:

catkin_make

2.4编译问题解决

在上一步编译中经常会出一些报错(下面是一些可能出现的报错及解决方法):

1.“Index”问题

/usr/include/pcl-1.10/pcl/filters/voxel_grid.h:340:21: error: ‘Index’ is not a member of ‘Eigen’ 340 | for (Eigen::Index ni = 0; ni < relative_coordinates.cols (); ni++)

解决方法:

在指定目录下,“其他位置/计算机/usr/include/pcl-1.10/pcl/filters”,修改voxel_grid.h文件:

打开终端(ctrl+alt+t),输入:

cd /usr/include/pcl-1.10/pcl/filters

sudo gedit voxel_grid.h

把340和669行的:

for (Eigen::Index ni = 0; ni < relative_coordinates.cols (); ni++)

改为:

for (int ni = 0; ni < relative_coordinates.cols (); ni++)

如图:

参考 Ubuntu20.04安装LeGO-LOAM和LIO-SAM

修改后保存。

2.找不到-lBoost::

解决方法:

打开./lego_loam/src/LeGO-LOAM/LeGO-LOAM/CMakeLists.txt,添加依赖项,即添加下列代码:

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)
find_package(Boost REQUIRED COMPONENTS system filesystem date_time)

再次在~lego_loam文件夹(工作空间)下打开终端:

catkin_make

编译成功!

三、准备数据集

笔者已准备好.bag文件

链接: https://pan.baidu.com/s/1QfSrI4JqPwdENZCqCp9Gsg?pwd=6789 
提取码: 6789

四、运行

1.初始化(在工作空间文件夹下如:lego_loam)

source devel/setup.bash

2.运行LeGO-LOAM

roslaunch lego_loam run.launch

注:每次运行之前都需要先初始化,source devel/setup.bash,若想直接运行可以把自己的lego_loam/devel/setup.bash文件的绝对路径添加到.bashrc文件中。如:

echo "source /home/lc/slam/lego_loam/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

3.运行数据集(在数据集所在的文件夹下重新打开一个终端)

rosbag play *.bag --clock --topic /velodyne_points /imu/data
//*用需要运行的数据集替换,如:
rosbag play 2017-06-08-15-49-45_0.bag --clock --topic /velodyne_points /imu/data

解决方法:把代码中(./slam/lego_loam/src/LeGO-LOAM/LeGO-LOAM/src)与rviz相关的Topic的反斜杠给去掉重新编译即可。

以Surface(yellow)为例,把代码(featureAssociation.cpp)中的/laser_cloud_flat改为laser_cloud_flat。(ctrl+f查找后替换)

运行结果:

【参考链接】

LeGO-LOAM:Ubuntu20.04下的编译与运行-CSDN博客

ubuntu20.04中实现lego-loam-CSDN博客

Ubuntu20.04安装LeGO-LOAM和LIO-SAM-CSDN博客

标签:Ubuntu20.04,lego,LOAM,LeGO,编译,loam,gtsam
From: https://blog.csdn.net/m0_69788330/article/details/144651159

相关文章

  • ubuntu20.04 RTKLIB QT版构建流程记录
    rtklib是GNSS领域有名的开源软件,在此记录成功构建QT版的步骤。0系统信息话不多说,首先上一张neofetch图展示系统信息。我的系统是Ubuntu20.04.6,其他系统版本暂未尝试。1打开qtcreator由于系统安装了多个qtcreator,从终端打开QtCreator4.11.0之所以强调Creator版本,是因......
  • (2024.12)记录——Ubuntu20.04安装opencv库
    参考博文:Ubuntu20.04OpenCV详细安装教程(附多版本切换共存教程)_ubuntu20.04安装opencv-CSDN博客Ubuntu20.04上搭建OpenCV4.5.0&C++环境从源码构建1---下载官网地址:Releases-OpenCV选择需要的版本,点击Sources下载zip源码压缩包,下载后解压。2---编译过程1>安装工......
  • Ubuntu20.04 下 PX4_v1.13.3 安装教程
    Ubuntu20.04下PX4_v1.13.3安装教程一、简介二、下载PX4源码三、结语一、简介PX4v1.13.3是v1.13系列较为稳定的版本,推荐使用该版本的原因包括:稳定性和可靠性:v1.13.3包含了之前版本的所有功能改进和错误修复。动态控制分配:v1.13引入了动态控制分配功能,简化了......
  • 单ubuntu22.04系统工作台降级版本重装ubuntu20.04(全网最详细-简单易懂)
        由于前段时间在配置开源框架时候,官方支持18.04或者20.04,但是本人ubuntu系统是22.04,故运行中问题层出,故想着重装一下系统,把版本降到常用的20.04(推荐),在网上找相关单ubuntu系统重装的内容的时候,发现类似的完整过程居然没有,大多数都是关于Windows双系统的安装,所以笔者决......
  • Cursor安装配置经验 (Win11, Ubuntu20.04)
    一.安装1.下载去官网https://www.cursor.com/,在win打开的直接出现的是Downloadforwindows,在linux打开的直接出现的是Downloadforlinux.总之,点击下载即可.2.安装win安装:右键管理员身份运行即可,选项都选默认的选项就Ok,然后就直接使用.linux安装:参考官方......
  • Ubuntu20.04 由源码编译安装opencv3.2 OpenCV
    Ubuntu20.04由源码编译安装opencv3.2.0获取opencv及opencv_contrib源代码创建目录以存放opencv及opencv_contrib源代码mkdir~/opencv3.2.0cd~/opencv3.2.0获取opencv源代码并切换到对应taggitclonehttps://github.com/opencv/opencv.gitcdopencvgitchecko......
  • 全网首发:香橙派5MAX安装ubuntu20.04(换了官方桌面)及ros,运行LIVOX-mid360混合固态激光雷
    简单介绍这块板子:我这款OrangePi 5 Max采用Rockchip RK3588 8核64位处理器,4个Cortex-A76(主频2.4GHz)、4个Cortex-A55(主频1.8GHz)及独立的NEON协处理器。配备16GB LPDDR5,集成ARM Mali-G610,内置3D GPU。这里在安装ubuntu20.04时,我没用香橙派官方桌面镜像安装的,而是在server......
  • 树莓派4b4g(已安装ubuntu20.04及ros1)+大疆混合固态激光雷达mid360(已在rviz中可显示数据
    首先安装FileZilla文件传输软件,获取树莓派ip后,可实现ubuntu与windows文件自由传递。推荐下面这篇安装使用方法。https://blog.csdn.net/SoloVersion/article/details/124579221目录1、配置大疆mid360并在rviz显示2、树莓派启动mid360,运行fast-lio1、配置大疆mid360并在rvi......
  • Ubuntu20.04换源换回默认源
     在Linux(以Ubuntu为例)下,换回默认软件源主要涉及恢复/etc/apt/sources.list文件中的内容。以下是具体步骤:1.备份当前的源文件在修改之前,建议先备份当前的sources.list文件:bash复制代码sudocp/etc/apt/sources.list/etc/apt/sources.list.backup2......
  • Ubuntu20.04换源
    参考链接:https://midoq.github.io/2022/05/30/Ubuntu20-04%E6%9B%B4%E6%8D%A2%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F%E6%BA%90/更换方法Ubuntu采用apt作为软件安装工具,其镜像源列表记录在/etc/apt/source.list文件中。首先将source.list复制为source.list.bak备份,然后将source.......