其他分享
首页 > 其他分享> > 学习笔记:使用pointcloud_to_laserscan和hector slam过程中遇到的问题

学习笔记:使用pointcloud_to_laserscan和hector slam过程中遇到的问题

作者:互联网

前一段进行了激光雷达的三维建图,主要两步先是从三维点云转换为二维点云,然后利用二维点云进行建图。
第一次根据大佬的教程(见下面链接)全部走了一遍 还挺顺利,基本没遇到什么问题直接就能够建图,当时对办公室进行了一个简单的手持雷达建图,同时也对整个建图过程录了全部数据,后面庆幸自己当时录了数据。
链接: link.
链接: link.
后续中间有段时间转做聚类了,然后顺带也将激光雷达安装在了车上,可是在装在车上后重新做实际建图时遇到了各种各样的问题。

  1. pointcloud_to_laserscan使用过程中问题
    在进行三维转二维的时候,发现rviz中没有报错,但是感觉好像没有转换的样子,很莫名其妙,包括重新做了一遍整个程序还是一样的问题,最后才发现是它是转换了,但是只转换了很小的一块,下图白色那一个圆圈位置。
    在这里插入图片描述后来半吊子查看代码感觉可能是因为最开始办公室环境比较小,后续在外界环境比较广阔,点云数量多,单线程处理不过来的原因,需要把launch文件中的最后进行更改为多线程
concurrency_level: 2

修改完后就能正常进行三维转二维了。(此处无图)

  1. hector_slam使用期间遇到的问题
    在进行建图过程中,发现rviz中无法坐标显示,Global Status 显示Fixed Frame [map] does not exit,如下图所示。
    在这里插入图片描述后续通过回放之前自己录的数据包和后续的状态中的rqt_tf_tree进行比对,发现后续的状态少了右边这一部分
    在这里插入图片描述于是在hector_slam的launch文件中增加了scanmatcher的广播。
<node pkg="tf" type="static_transform_publisher" name="map_scanmatcher_broadcaster" args="0.0 0.0 0.0 0 0 0.0 /map /scanmatcher_frame 10"/>

增加广播后rviz的Global Status 不再报错,但是仍旧没有地图,在终端报了“lookupTransform base_link to /rslidar timed out. Cloud not transform laser scan into base_frame”的问题
在这里插入图片描述需要在launch文件中增加base_link to laser的坐标转换

<node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" args="0.0 0.0 0.0 0.0 0.0 0.0 base_link rslidar 100"/>

加入后即可正常转换并建图

在这里插入图片描述
写在最后:
虽然经过一番瞎操作能够实现,但是对于同一个程序没有动过最开始可以建图,过了一段就不能建图了这点还是没搞明白。
感觉有可能是因为中间我尝试过amcl定位导致坐标系被混淆了?
需要探索的路还很长啊

标签:转换,后续,二维,laserscan,hector,建图,slam,link,点云
来源: https://blog.csdn.net/m0_53567875/article/details/120561270