lego_loam安装测试记录

lego_loam的github连接https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
报错参考连接https://blog.csdn.net/weixin_44156680/article/details/118070387

一.编译报错问题

1.1问题1

在这里插入图片描述

  • 解决办法,安装缺少的pcl_ros
sudo apt-get install ros-noetic-pcl-ros

1.2问题2

在这里插入图片描述

  • 解决办法,修改程序代码
    找到utility.h中的:#include<opencv/cv.h>,
    修改为#include <opencv2/imgproc.hpp>

1.3问题三,C++版本问题

在这里插入图片描述

  • 解决办法,按照图片所示的路径,找到该行代码,将11改成14.
    在这里插入图片描述

1.4 问题四,

在这里插入图片描述
解决办法,在cmakelisit.txt中加入该行代码

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)

1.5 问题五,

显示为定义PCL中的函数。undefined reference to `pcl::PCLBasepcl::PointXYZI::setInputCloud(boost::shared_ptr<pcl::PointCloudpcl::PointXYZI const> const&)’

在这里插入图片描述

  • 解决办法

查看mapOptmization.cpp的原代码,发现爱并没有使用pcl点云库,没有包含任何和pcl有关的头文件,应该为该猜测该可能是自定义的消息。先编译cloud_msgs功能包,成功解决该问题。编译指令如下:将官网提供的catkin_make -j1 换成下面的指令

catkin_make --only-pkg-with-deps cloud_msgs
catkin_make
  • 经过测试上述方法不行,经过不断尝试,可采用如下方法解决该问题,注释下图所示的代码

出现该问题的原因:应该在安装A_LOAM时编码安装的pcl1.12版本的pcl和ros自己安装的pcl1.10有冲突,导致和pcl有关的环境变量以及路径出问题。

在这里插入图片描述
ros自己安装的pcl库路径

/usr/include/pcl-1.10

源码安装的pcl路径

/usr/local/include/pcl-1.12

1.6 问题六,运行出错

在这里插入图片描述

  • 解决办法,在~/.bashrc文件中加入如下代码
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

二.编译成功后运行问题

  1. 问题1,报错如下代码,同样的问题还有"/camera_init"
    Invalid argument “/camera” passed to canTransform argument source_frame in tf2 frame_ids cannot star
  • 解决办法
    把源码(src下的四个文件和run.launch。主要是这个五个文件,好像src中有一个文件不需要修改)中的“/camera“和"/camera_init",全部改为“camera“和"camera_init"。

三.修改lego_loam的代码,使适配MulRan数据

参考连接https://blog.csdn.net/weixin_53141548/article/details/120796664

修改utility.h中的源码,修改如下:

3.1修改一

根据自己的雷达数据选择相应的代码,我使用的雷达是ouster 64线程雷达。因此注释原来代码中的vlp 16线。换为ouster 64线程。

  • 选择对应的雷达配置代码:注释下面的代码,图中为完成注释后的代码
    在这里插入图片描述
    放开下列代码,图中为取消注释的图片
    在这里插入图片描述

3.2修改二

  • 将160代码注释,修改为161行代码。
    在这里插入图片描述

  • 将168行的uint16_t改为uint8_t
    在这里插入图片描述

3.3修改三

将63行代码改为false
在这里插入图片描述

4 使用mulran数据运行lego_loam

mulran数据和lego_loam各一个工作空间,因此需要运行两个程序。mulran数据工作空间为mulran_to_ros_ws
,注意该功能包已经编译成功,可以运行;如何下载和编译该功能包,请参考博客。

4.1播放数据

#在该工作空间下
source ./devel/setup.bash
roslaunch file_player file_player.launch

然后会跳出一个可视化界面,如下图所示。加载load存放mulran数据的文件夹,然后点play。

4.2 运行lego_loam

source ./devel/setup.bash
roslaunch lego_loam run.launch

4.3 运行自己的数据

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值