2D激光SLAM-雷达的特征点提取

2D激光SLAM-雷达的特征点提取
原文链接从零开始搭二维激光SLAM — 使用单线雷达实现LIO-SAM中的特征点提取已跑通原作者的例程如何使用自己的雷达实现特征点提取下载作者的代码https://gitee.com/zhankun3280/Creating-2D-laser-slam-from-scratch以某款sick 2D激光雷达为例然后注意需要修改的地方1、feature_detection.cc// 构造函数LaserScan::LaserScan():private_node_(~){// \033[1;32m\033[0m 终端显示成绿色ROS_INFO_STREAM(\033[1;32m---- Feature Extraction Started.\033[0m);// 将雷达的回调函数与订阅的topic进行绑定laser_scan_subscriber_node_handle_.subscribe(laser_scan,1,LaserScan::ScanCallback,this);// 将提取后的点发布到 feature_scan 这个topicfeature_scan_publisher_node_handle_.advertisesensor_msgs::LaserScan(feature_scan,1,this);// 将提取角点的阈值设置为1.0edge_threshold_1.0;}laser_scan改成自己的激光雷达发布的话题例如我的修改为scan2、CMakeLists.txt文件文件最后加上以下代码# 为指定的文件生成可执行文件 add_executable(${PROJECT_NAME}_feature_detection_node src/feature_detection.cc) # 为生成的可执行文件添加依赖 add_dependencies(${PROJECT_NAME}_feature_detection_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) # 为生成的可执行文件添加库的链接 target_link_libraries(${PROJECT_NAME}_feature_detection_node ${catkin_LIBRARIES})3、feature_detection.launch修改为如下launch !-- 启动激光雷达节点 -- include file$(find sick_scan)/launch/sick_lms_1xx.launch/ !-- 启动节点 -- node namelesson1_laser_scan_node pkglesson1 typelesson1_feature_detection_node outputscreen / !-- launch rviz -- node namerviz pkgrviz typerviz requiredfalse args-d $(find lesson1)/launch/feature.rviz / /launch4、修改完之后一定要catkin_make一下5、启动launch文件roslaunch lesson1 feature_detection.launch6、修改rviz界面的Fixed Frame为“laser”视情况而定如果像显示雷达原始数据记得话题切换为自己雷达的话题例如我的为/scan特征点提取画面如下所示