SLAM学习之安装运行LeGO-LOAM

本文章记录了两种配置环境(笔记本电脑、板载计算单元)上是如何成功安装LeGO-LOAM。

1、小米笔记本(Intel i7)+Ubuntu 20.04+ROS Neotic

1.1、准备工作

A. 安装boost和cmake

sudo apt-get install libboost-all-dev
sudo apt-get install cmake

【注】确认Boost版本 >= 1.43,CMake版本 >= 3.0

B. 安装TBB库

sudo apt-get install libtbb-dev

C. 安装MKL

sudo apt-get install intel-mkl-full

【注】不建议指定intel-mkl某个确定版本(比如官网intel-mkl-2018.2-046),可能会出现“E: 无法定位软件包”的错误。

D. 安装gstam

GTSAM 是一个在机器人领域和计算机视觉领域用于平滑(smoothing)和建图(mapping)的C++库,采用因子图(factor graphs)和贝叶斯网络(Bayes networks)的方式最大化后验概率。

cd ~
git clone https://bitbucket.org/gtborg/gtsam.git
cd ~/gtsam
mkdir build
cd build
cmake ..
make check   #可选的,运行单元测试,实际可不执行这个命令
sudo make install

【注】编译过程中可能提示的错误如下:

Q1:cmake .. 编译中出现的错误:

CMake Error at wrap/CMakeLists.txt:29 (target_link_libraries):

  The "debug" argument must be followed by a library.

解决方法:找到gtsam/wrap/CMakeLists 文件 把以下内容注释或者删除(第8-11行):

debug

  ${Boost_FILESYSTEM_LIBRARY_DEBUG}

  ${Boost_SYSTEM_LIBRARY_DEBUG}

  ${Boost_THREAD_LIBRARY_DEBUG}

Q2:cmake .. 编译中出现的错误

CMake Error at gtsam/CMakeLists.txt:105 (target_link_libraries):

  The "debug" argument must be followed by a library.

解决方法:注释或删掉gtsam/CMakeLists文件中的2处代码(第174-180行、第192-194行)

  debug

    ${Boost_SERIALIZATION_LIBRARY_DEBUG}

    ${Boost_SYSTEM_LIBRARY_DEBUG}

    ${Boost_FILESYSTEM_LIBRARY_DEBUG}

    ${Boost_THREAD_LIBRARY_DEBUG}

    ${Boost_DATE_TIME_LIBRARY_DEBUG}

    ${Boost_REGEX_LIBRARY_DEBUG}

        debug

          ${Boost_TIMER_LIBRARY_DEBUG}

          ${Boost_CHRONO_LIBRARY_DEBUG}

1.2、安装&运行LeGO-LOAM

A. 下载源码

cd ~/catkin_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git

B. 修改配置

(1)OpenCV版本

由于ubuntu 20.04自带的是OpenCV4,所以要对LeGO-LOAM源码中的utility.h进行改动:将#include<opencv/cv.h>修改为#include <opencv2/imgproc.hpp>即可

(2)C++环境

主要是让LeGO-LOAM支持C++14,所以需要对LeGO-LOAM源码中CMakeList.txt进行改动:

将set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3")修改为set(CMAKE_CXX_FLAGS "-std=c++14")

(3)Rivz问题

类似于“Failed to transform from frame [/camera] to frame [map]”的报错问题,解决办法就是把代码中与rviz相关的所有frame_id的“/”去掉重新编译即可。以订阅的地图点云为例,其相关的Topic为/registered_cloud,所以在代码中找到/registered_cloud对应的发布者pubRegisteredCloud,将其对应的frame_id中的“/”去掉即可。

(4)其他问题

网上还给出了其他一些常见问题,但我编译时候并没出现,可以参考以下Blog:

Ubuntu20.04下的编译与运行LeGO-LOAM【问题解决】_学无止境的小龟的博客-CSDN博客

C. 编译

cd ~/catkin_ws
catkin_make -j1

【注】第一次编译代码时,需要在“catkin_make”后面加上“-j1”来生成一些消息类型,以后的编译可以不需要“-j1”。

D. 下载示例数据

示例数据下载链接如下:

https://github.com/RobustFieldAutonomyLab/jackal_dataset_20170608

E. 运行

打开一个终端运行LeGO-LOAM程序:

source devel/setup.bash
roslaunch lego_loam run.launch

【注】运行可能会有如下报错:

~/catkin_ws/devel/lib/lego_loam/mapOptmization: error while loading shared libraries: libmetis.so: cannot open shared object file: No such file or directory

原因是未安装 libmetis 库。通过安装libparmetis-dev修复它重新运行即可:

sudo apt-get install libparmetis-dev

打开另一个终端运行播放示例数据:

cd ~/data/lidar #示例数据所在文件夹
rosbag play xxx.bag --clock --topic /velodyne_points /imu/data

【注】虽然/imu/data 是可选的,但如果提供它可以大大提高估计精度。

2、NV Jetson Nano+Ubuntu 18.04+ROS Melodic

2.1、准备工作

A. 安装boost和cmake

同上

【注】确认Boost版本 >= 1.43,CMake版本 >= 2.6,Gcc版本 >= 4.7.3

B. 安装gstam

同上

【注】Jetson Nano上编译较慢,要耐心等待

2.2、下载并编译LeGO-LOAM

同上

【注】编译过程中可能提示的错误如下:

Q1:找不到opencv对应include目录:

CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113 (message):

  Project 'cv_bridge' specifies '/usr/include/opencv' as an include dir,

  which is not found.  It does neither exist as an absolute directory nor in

  '/opt/ros/melodic//usr/include/opencv'.  Check the issue tracker

  'https://github.com/ros-perception/vision_opencv/issues' and consider

  creating a ticket if the problem has not been reported yet.

Call Stack (most recent call first):

  /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)

  open_quadtree_mapping/CMakeLists.txt:24 (find_package)

解决方法:

这是由于ubuntu18.04上面安装的是opencv4,位置命名成了/usr/include/opencv4,所以需要进入以下文件中编辑,将所有的“inlude/opencv”修改成“inlude/opencv4”

sudo vim /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

另外,还需要对LeGO-LOAM源码中的utility.h进行改动:将#include<opencv/cv.h>修改为#include <opencv2/imgproc.hpp>即可

运行测试同上类似。

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值