ubuntu 20.04 运行和编译LOAM_Velodyne
摘要:创建工作空间-->src下克隆代码(https://github.com/laboshinl/loam_velodyne)-->修改四处代码(找到src/loam_velodyne路径下的CMakeLists.txt文件,注释掉35行代码和将/LOAM/src/loam_velodyne/src/lib文件夹下的LaserMapping.cpp,LaserOdometry.cpp,TransformMaintenance.cpp文件中的 /camera_init 修改为camera_init ),防止报错-->刷新环境变量(source ./devel/setup.bash)和运行launch(roslaunch loam_velodyne loam_velodyne.launch)-->运行数据集(rosbag play your-bag-name.bag)-->查看运行效果
1.创建工作空间和clone代码
mkdir -p LOAM/src
cd LOAM/src
git clone https://github.com/laboshinl/loam_velodyne
2.报错和修改代码
报错1:
[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
解决方法1:
找到src/loam_velodyne路径下的CMakeLists.txt文件,注释掉35行代码
报错2 :
[ERROR] [1648604067.016753480]: Error transforming odometry 'Odometry' from frame '/camera_init' to frame 'camera_init'
解决方法2:
将/LOAM/src/loam_velodyne/src/lib文件夹下的LaserMapping.cpp,LaserOdometry.cpp,TransformMaintenance.cpp文件中的 /camera_init 修改为camera_init
3.编译
在LOAM工作空间下编译
catkin_make -j4
4.刷新环境变量和运行launch
source ./devel/setup.bash
roslaunch loam_velodyne loam_velodyne.launch
5.运行数据集和保存为pcd文件
数据集链接
先运行:
rosbag record -o out /laser_cloud_surround
转换成包文件 2025-05-19.bag
再运行上面链接的包
rosbag play your-bag-name.bag
最后在新建终端输入:
rosrun pcl_ros bag_to_pcd 2025-05-19.bag /laser_cloud_surround pcd
pcd文件会在pcd文件夹下(如果没有pcd文件夹,会帮你新建)
查看pcd
pcl_viewer xxxxxx.pcd #xxxxx.pcd为文件名
6.运行效果和pcd