速腾Helios-16P使用Lego-loam实时构建点云地图(二)——Lego-loam的编译与运行
不兼容的问题,打开lego-loam的~/lego-loam_ws/src/LeGO-LOAM/LeGO-LOAM/src下的4个源码文件,搜索/camera_init,将所有/camera_init改成camera_init,也就是去掉斜杠,这样再回到工作空间重新编译lego-loam。3、速腾16线激光雷达RS-16 ----- 3D建图算法LeGO-LOAM的使用(Ubuntu18.04 +
目录
2.报错:‘Index’ is not a member of ‘Eigen’
运行环境:
Linux:Ubuntu20.04
ROS:noetic
Ceres Solver:1.13
OpenCV:4.6.0
Gtsam:4.0.0
Eigen:3.3.7
一、源码及数据集下载
源码链接:GitHub - RobustFieldAutonomyLab/LeGO-LOAM: LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable TerrainLeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain - GitHub - RobustFieldAutonomyLab/LeGO-LOAM: LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrainhttps://github.com/RobustFieldAutonomyLab/LeGO-LOAM数据集链接:https://drive.google.com/drive/folders/16p5UPUCZ1uK0U4XE-hJKjazTsRghEMJahttps://drive.google.com/drive/folders/16p5UPUCZ1uK0U4XE-hJKjazTsRghEMJa如果没有安装过gtsam,需要安装一下:
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.0-alpha2/
mkdir build && cd build
cmake ..
sudo make install
源码下载并编译:
mkdir -p lego-loam_ws/src
cd lego-loam_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make -j1
第一次编译需要在catkin_make后面加上-j1用来生成一些消息类型,以后编译可以不加。
二、编译问题
不出意外的话肯定是编译不通过的,遇到如下问题的概率较大:
1.C++14环境问题
这是由于pcl需要的C++版本不一致,打开~/lego-loam_ws/src/LeGO-LOAM/LeGO-LOAM/CMakeLists.txt文件,将c++11改为c++14:
2.报错:‘Index’ is not a member of ‘Eigen’
打开usr/include/pcl-1.10/pcl/filters/voxel_grid.h文件,在340行和669行for (Eigen::Index
ni = 0; ni < relative_coordinates.cols (); ni++)中的Eigen::Index改成int。
3.OpenCV版本
这是由于Ubuntu20.04自带的OpenCV版本为OpenCV4,当前OpenCV版本高于lego-loam需要的OpenCV版本,我们将~/lego-loam_ws/src/LeGO-LOAM/LeGO-LOAM/include/utility.h打开,把#include <opencv/cv.h>改成#include <opencv2/opencv.hpp>。
4./usr/bin/ld:找不到
在~/lego-loam_ws/src/LeGO-LOAM/LeGO-LOAM/CMakeLists.txt文件中加入:
find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)
再编译应该就没什么问题了。
三、运行lego-loam
cd ~/lego-loam_ws
source devel/setup.bash
roslaunch lego_loam run.launch
下载本文置顶数据集后(只需要下载一个包用来验证lego-loam是否可用),在数据集所在目录播放数据集( 为lego-loam播放bag包时,要在最后加上--clock)
rosbag play 数据集名称.bag --clock --topic /velodyne_points /imu/data
此时,不出意外的话应该放不出来点云图像或者只显示当前帧点云而不显示全局点云图像
1.终端显示:[mapOptmization-7] process has died
解决办法:
sudo apt-get update
sudo apt-get install libparmetis-dev
2.Map Cloud的状态提示:Failed to transform from frame [/camera_init] to frame [map]
解决办法:这可能是TF1和TF2
不兼容的问题,打开lego-loam的~/lego-loam_ws/src/LeGO-LOAM/LeGO-LOAM/src下的4个源码文件,搜索/camera_init,将所有/camera_init改成camera_init,也就是去掉斜杠,这样再回到工作空间重新编译lego-loam。
再运行应该就能看到建图效果了。
参考资料:
LeGO-LOAM:Ubuntu20.04下的编译与运行_lego loam ubuntu20_MIKingZCC的博客-CSDN博客LeGO-LOAM在Ubuntu20.04下的编译与运行一、源码及数据集下载二、安装gtsam三、建立ROS工作空间四、LeGO-LOAM的编译五、LeGO-LOAM的运行六、可能会遇到的问题1. OpenCV 版本问题2.pcl问题(1) C++14环境(2) 报错:‘Index’ is not a member of ‘Eigen’3. 运行报错3. rviz问题参考链接:Loam:Ubuntu20.04下的编译与运行.Floam:Ubuntu20.04下的编译与运行.一、源码及数据集下载源码https://blog.csdn.net/weixin_44156680/article/details/118070387
3、速腾16线激光雷达RS-16 ----- 3D建图算法LeGO-LOAM的使用(Ubuntu18.04 + ROS Melodic)_速腾16线 lego loam_杰尼君的博客-CSDN博客速腾16线激光雷达RS-16 ----- 3D建图算法LeGO-LOAM的使用(Ubuntu18.04 + ROS Melodic)https://blog.csdn.net/weixin_44444810/article/details/121659270?ops_request_misc=&request_id=&biz_id=102&utm_term=Lego_loam%E8%BF%90%E8%A1%8C%20rs-lidar&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-121659270.nonecase&spm=1018.2226.3001.4187
更多推荐
所有评论(0)