Ubuntu20.04下的编译与运行LeGO-LOAM【问题解决】


一、OpenCV 版本问题

由于20.04自带的是OpenCV4,所以要对LeGO-LOAM代码做一点改动:
找到utility.h中的:#include<opencv/cv.h>,修改为#include <opencv2/imgproc.hpp>。即可成功编译。

二、pcl问题

1. C++14环境

主要是让LeGO-LOAM支持C++14,所以只需要修改下载下来的源码中CMakeList.txt:
修改如下:

set(CMAKE_CXX_FLAGS "-std=c++14")

2. 报错:‘Index’ is not a member of ‘Eigen’

错误如下(示例):

/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++)

该问题,可以参考 Build error on ubuntu 20.04. #215 ,即:将voxel_grid.h中报错的Eigen::Index x修改成int。

三、/usr/bin/ld问题

错误如下(示例):

/usr/bin/ld: 找不到 -lBoost::serialization
/usr/bin/ld: 找不到 -lBoost::thread
/usr/bin/ld: 找不到 -lBoost::timer
/usr/bin/ld: 找不到 -lBoost::chrono

在CMakeLists中加入:

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)

四、运行报错

错误如下(实例):

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

该问题,可以参考 roslaunch error #160 ,原因是未安装 libmetis 库。通过安装libparmetis-dev修复它重新运行即可:

sudo apt-get install libparmetis-dev

五、rviz问题

查看出问题的话题名,将代码中与之对应的/camera_init改成camera_init即可。
例如:以订阅的轨迹为例,其相关的Topic为/key_pose_origin,所以在代码中找到/key_pose_origin对应的发布者pubKeyPoses,将其对应的frame_id中的 / 去掉即可。
在这里插入图片描述
对应代码在mapOptmization.cpp中:
未修改:
在这里插入图片描述修改后:
在这里插入图片描述【注】:对应rviz显示大圈圈的问题,只要将每种点云的style修改成Flat Squares即可。

  • 17
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: 要在Ubuntu 20.04上安装lego-loam,您可以按照以下步骤进行操作: 1. 首先,您需要安装ROS(机器人操作系统)。您可以按照ROS官方网站上的指南进行安装。 2. 接下来,您需要下载lego-loam的源代码。您可以在GitHub上找到lego-loam的源代码。 3. 将lego-loam源代码放在ROS工作空间的src目录下。 4. 打开终端并进入ROS工作空间。 5. 运行catkin_make命令来编译lego-loam。 6. 运行source命令来激活ROS环境。 7. 运行roslaunch命令来启动lego-loam。 以上就是在Ubuntu 20.04上安装lego-loam的步骤。希望对您有所帮助。 ### 回答2: Lego-LOAM是一种激光SLAM算法,因其较高的定位精度和较快的运算速度而受到研究人员和爱好者的喜爱。在使用Lego-LOAM前,需要先在计算机上安装ROS(机器人操作系统)。 安装ROS 在安装Lego-LOAM前,需要先在Ubuntu20.04上安装ROS。 1. 新建ROS工作空间 在终端中输入以下命令: ``` $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/ $ catkin_make ``` 2. 下载ROS 在终端中输入以下命令: ``` $ sudo apt-get update $ sudo apt-get install ros-foxy-desktop-full ``` 3. 配置ROS环境变量 在终端中输入以下命令: ``` $ echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc $ source ~/.bashrc ``` 安装Lego-LOAM 1. 下载Lego-LOAM源码 将Lego-LOAM的源码下载到ROS工作空间(~/catkin_ws/src)中: ``` $ cd ~/catkin_ws/src $ git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git ``` 2. 编译源码 在终端中输入以下命令: ``` $ cd ~/catkin_ws $ catkin_make -j1 ``` 3. 运行Lego-LOAM 在新的终端中输入以下命令: ``` $ cd ~/catkin_ws $ source ./devel/setup.bash $ roslaunch lego_loam run.launch ``` 现在,Lego-LOAM就已经成功安装和运行了。在运行过程中,你可以通过rviz(ROS可视化工具)来查看激光点云数据和轨迹。 ### 回答3: 在安装Ubuntu20.04系统之后,您可以使用以下步骤来安装LEGO-LOAM,这是一个自动驾驶的三维点云建图以及定位的算法包。 第一步:安装依赖库 要安装Legoloam,需要安装以下依赖库: sudo apt-get install ros-<distro>-pcl-ros ros-<distro>-velodyne ros-<distro>-grid-map ros-<distro>-grid-map-ros libyaml-cpp-dev libopencv-dev libeigen3-dev libboost-all-dev libsuitesparse-dev libpcl-dev 请将“<distro>”替换为ROS版本,例如: 在ROS Melodic下使用命令sudo apt-get install ros-melodic-pcl-ros, 在ROS Kinetic下使用sudo apt-get install ros-kinetic-pcl-ros, 第二步:克隆lego-loam的代码 使用以下命令来下载Lego-loam的源代码: cd ~/catkin_ws/src git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git 第三步:编译和安装代码 使用以下命令来编译代码: cd ~/catkin_ws/ catkin_make -j1 请注意,使用-j1可以确保编译成功。 最后,使用以下命令可以将其添加到您的环境变量: echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 现在,您已经成功安装并编译Lego-loam,可以使用roslaunch命令运行LEGO-LOAM节点: roslaunch lego_loam run.launch 总之,在您安装Lego-loam之前,强烈建议您拥有ROS相关知识和ROS系统的基本理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值