一、论文和代码
paper:Scan Context: Egocentric Spatial Descriptor for Place Recognition Within 3D Point Cloud Map
论文解读链接:17、论文解读:Scan Context: Egocentric Spatial Descriptor for Place Recognition within 3D Point Cloud Map
code:SC-LEGO-LOAM-CODE
二、预备工作:
依赖:
1、ROS, PCL, and GTSAM(和LEGO-LOAM一样)
2、C++14,但是C++11也行
三、局部修改:
要使用自己的数据集。这里要保证数据集和拷贝的工程中话题名一致,不然无法正常通信,需要进行以下修改,将/os1_points改为了自己的雷达数据话题/velodyne_points,/imu/data话题名字一样,所以不用改。
雷达线束不同使用参数也不一样,作者都有写好,可以注释掉作者的,换成自己的雷达线束的代码。
改动地址: [ 你的工作区间 ] /src/SC-LeGO-LOAM/SC-LeGO-LOAM/LeGO-LOAM/include/utility.h
四、编译运行:
创建一个工作空间(略)
然后:
cd ~/catkin_ws/src
git clone https://github.com/irapkaist/SC-LeGO-LOAM.git
cd ..
catkin_make
source devel/setup.bash
roslaunch lego_loam run.launch
//依据自己的包名和话题名做修改
//rosbag play *.bag --clock --topic /激光话题名 /imu话题名
rosbag play 11-12-boliu2.bag --clock --topic /velodyne_points /imu/data
五、结果:
参考:https://github.com/irapkaist/SC-LeGO-LOAM