一、kitti数据集准备
首先应该准备好 A-LOAM将要跑的数据集。
二、从github上克隆下来 A-LOAM代码
打开终端(Ctrl+Alt+T),在终端输入:
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
三、在catkin_make时可能遇到的错误
问题一:
at A-LOAM/CMakeLists.txt:24 (find_package): By not providing "FindCeres.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Ceres", but CMake did not find one.
解决:
git clone https://ceres-solver.googlesource.com/ceres-solver
问题二:
在catkin_make时可能会出现报错,可以改一下源码
解决:
//改A-LOAM下的CMakeLists.txt
c++11 改为 c++14
//改A-LOAM/src/kittiHelper.cpp
CV_LOAD_IMAGE_GRAYCALE 改为 cv::IMREAD_GRAYSCALE //91行和93行
//改A-LOAM/src/scanRegistration.cpp里的
#include <opencv/cv.h> 改为 #include <opencv2/imgproc.hpp>
//改A-LOAM/src/三个cpp文件laserMapping.cpp和scanRegistration.cpp和laserOdometry.cpp
//使用ctrl+h快捷键快速替换
/camera_init 改为 camera_init
修改完成后别忘记保存(ctrl+s)
然后重新编译
catkin_make -j8
source devel/setup.bash
四:编译运行
//运行A-LOAM
roslaunch aloam_velodyne aloam_velodyne_HDL_64.launch
//运行kitti数据集(在数据集所在的文件夹下重新打开一个终端)
rosbag play kitti_2011_09_30_drive_0027_synced_SELF.bag
运行后发现没有任何显示,可以重新打开一个终端查看节点情况:
//查看节点运行指令
rqt_graph
发现数据集的节点没有接入到A-LOAM中(原因可能是数据集的topic和aloam的不对应)
查看数据集的topic
//在数据集所在的文件夹下输入
rosbag info kitti_2011_09_30_drive_0027_synced_SELF.bag
//将scanRegistration.cpp中的sub接口改一下
ros::Subscriber subLaserCloud = nh.subscribe<sensor_msgs::PointCloud2>("/velodyne_points", 100, laserCloudHandler);
//改为
ros::Subscriber subLaserCloud = nh.subscribe<sensor_msgs::PointCloud2>("/points_raw", 100, laserCloudHandler);
//改完后保存
然后重新编译运行。
五:运行结果显示