lego_loam安装测试记录

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

一.编译报错问题

1.1问题1

lego_loam安装测试记录_第1张图片

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

1.2问题2

lego_loam安装测试记录_第2张图片

  • 解决办法,修改程序代码
    找到utility.h中的:#include
    修改为#include

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

lego_loam安装测试记录_第3张图片

  • 解决办法,按照图片所示的路径,找到该行代码,将11改成14.
    lego_loam安装测试记录_第4张图片

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 const&)’

lego_loam安装测试记录_第5张图片

  • 解决办法

查看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有关的环境变量以及路径出问题。

lego_loam安装测试记录_第6张图片
ros自己安装的pcl库路径

/usr/include/pcl-1.10

源码安装的pcl路径

/usr/local/include/pcl-1.12

1.6 问题六,运行出错

lego_loam安装测试记录_第7张图片

  • 解决办法,在~/.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"。

三.使用MulRan数据测试

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

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

3.1修改一

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

  • 选择对应的雷达配置代码:注释下面的代码,图中为完成注释后的代码
    lego_loam安装测试记录_第8张图片
    放开下列代码,图中为取消注释的图片
    lego_loam安装测试记录_第9张图片

3.2修改二

  • 将160代码注释,修改为161行代码。
    lego_loam安装测试记录_第10张图片

  • 将168行的uint16_t改为uint8_t
    lego_loam安装测试记录_第11张图片

3.3修改三

将63行代码改为false
lego_loam安装测试记录_第12张图片

你可能感兴趣的:(笔记,开发语言)