1.搭建文件目錄和clone代碼
mkdir -p A-LOAM/src
cd A-LOAM/src
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM
cd ..
2.修改代碼文件
? ? ? ? 2.1 由于PCL版本1.10,將CMakeLists.txt中的C++標準改為14:
set(CMAKE_CXX_FLAGS "-std=c++14")
2.2?將四個.cpp文件中的/camera_init修改為camera_init,/camera改成camera,/map改成map
2.3 將scanRegistration.cpp中的 #include <opencv/cv.h> 修改為#include <opencv2/imgproc.hpp>
2.4 修改kittiHelper.cpp中 CV_LOAD_IMAGE_GRAYSCALE為 cv::IMREAD_GRAYSCALE
2.5 如果編譯遇到大量未找到Eigen相關錯誤,將四個.cpp文件中的#include <eigen3/Eigen/Dense>修改為#include <Eigen/Dense>
2.6?編譯時會報錯“ceres::LocalParameterization”不存在,是因為ceres版本太高了
找到報錯的cpp文件替換以下內容:
ceres::LocalParameterization *q_parameterization = new ceres::EigenQuaternionParameterization();
替換為
ceres::Manifold *q_parameterization = new ceres::EigenQuaternionManifold();
?3 在工作空間編譯運行
catkin_make
4. 刷新環境變量和運行launch文件
source ./devel/setup.bash
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
5.再打開一個終端記錄地圖
rosbag record -o bag_out /laser_cloud_map
6.下載數據集和運行數據集
數據集下載鏈接
在數據集目錄下打開終端運行
rosbag play <your bag name>.bag
7.效果圖
8.將記錄的包轉換為pcd并且查看
跑完之后ctrl+c關閉記錄地圖的終端會生成一個bag文件,將其轉化為pcd格式
rosrun pcl_ros bag_to_pcd xxxx.bag /laser_cloud_map pcd
在生成的文件夾pcd目錄下,使用pcl_viewer工具打開點云查看
pcl_viewer XXXX.pcd
效果圖: