基于ubuntu20.04
开始可以先去github上下载loam源码,其中README中有详细的教程
也可以通过下面git下载源码(README中介绍)
首先创建工作文件夹
然后下载源码
生成配置文件build和devel
配置环境变量
$ cd ~/catkin_ws/src/
$ git clone https://github.com/laboshinl/loam_velodyne.git
$ cd ~/catkin_ws
$ catkin_make -DCMAKE_BUILD_TYPE=Release
$ source ~/catkin_ws/devel/setup.bash
然后在终端启动运行
roslaunch loam_velodyne loam_velodyne.launch
打开另一个终端,运行自己的数据包
rosbag play 自己的路径/自己的数据集.bag
播放时遇到报错;
[multiScanRegistration-2] process has died [pid 8382, exit code -11, cmd /home/lmt/loam_ws/devel/lib/loam_velodyne/multiScanRegistration /multi_scan_points:=/velodyne_points __name:=multiScanRegistration __log:=/home/lmt/.ros/log/d9401fc2-77a2-11e8-a910-902b3433bbc4/multiScanRegistration-2.log].
log file: /home/lmt/.ros/log/d9401fc2-77a2-11e8-a910-902b3433bbc4/multiScanRegistration-2*.log
解决方法
找到src/loam_velodyne路径下的CMakeLists.txt文件,注释掉35行代码
然后回到目录loam_ws下打开终端重新catkin_make一下即可
或者在vscode里ctrl+shift+b重新编译一下代码。
再次执行打开终端,启动运行算法,打开数据集
遇到报错
[ERROR] [1648604067.016753480]: Error transforming odometry 'Odometry' from frame '/camera_init' to frame 'camera'
[ WARN] [1648604069.243295324]: TF_REPEATED_DATA ignoring data with redundant timestamp for frame camera at time 1623588212.751261 according to authority unknown_publisher
将LaserMapping.cpp文件下的第47行代码和50行代码的camera_init名字改为camera
//47行
_odomAftMapped.header.frame_id = "camera";
//50行
_aftMappedTrans.frame_id_ = "camera";
改完之后结果如下跑通数据