当前位置: 首页 > 网络应用技术

激光大满贯系统快速壤土(LIDAR EDOMETIRE和映射)源代码分析

时间:2023-03-07 21:46:27 网络应用技术

  GitHub地址:快速壤土(LiDAR ODMOTIRE和映射)

  快速壤土提供了两个节点的映射和本地化节点。目前,仅使用其定位部分,并且将Velodyne用作分析源代码的示例。

  只是跑步和两个节点!

  从点云处理开始,看看订阅并发布

  它订阅了发送的点云数据并将其保存到处理中。在从其所有帧中提取符号和边缘功能后,将其发送出去,并使用相同的过程处理时间戳记。

  该节点中的主要函数是从每个框架中取出一个帧,即提取其表面特征和边缘特征。

  此功能将在稍后引入。然后发布了计算标志和边缘功能。

  参考博客:http://xchu.net/2020/08/17/49floam/主要在此文件中具有函数和函数

  (1)功能淘汰首先计算云接线光束并分类

  接下来计算每个点的曲率

  将点云均匀分为6个子图,以确保可以在各个方向上提取特征

  (2)LaserProcessingClass按照曲率对点云进行排序,当特征提取,穿越点云并判断它是基于曲率的平面还是边缘点。以最大的曲率为基础,以最大的曲率为基础,这被认为是最大的曲率成为边缘点,其他是平面点。

  点云处理后,将功能和边缘功能数据发送到节点。

  第一个是时间戳记的时间戳,删除比旧时间戳更古老的点云,然后是初始化的过程。该功能将在后面提及:

  初始化完成后,将两个特性引入该函数,并求解解决方案并求解位置。

  这是我修改的参数。为了解决过多的云,解决方案位置的效率太低,导致延迟的高问题,这将在功能中详细解释。

  最终广播,也就是说

  里程在这里发布,时间是当前的时间。如果要解决两个主机时间的问题,则可以修改点云数据的时间。但是,需要测试影响。

  初始化的过程是将第一帧直接添加到地图中。毕竟,第一帧没有参考。在初始化完成后,设置了一些优化的成本和参数。初始化完成后,将其设置为12,然后将迭代次数连续减少到2,也就是说,只有两次。

  假设当前帧具有与上一个帧相同的练习,然后开始优化:

  其中,两个特征点云的要点添加到平面和边缘的残差项中,即和谐。此外,当使用此里程时正时,高级别的信息不准确。我不知道这是环境问题还是参数问题。因此,它需要解决。因此,它仅使用其2D信息添加以下修改:

  (1)addgeCostFactor && addsurfcostfactorkd树参考博客:https://blog.csdn.net/weixin_38275649/arttails/80972554

  将所有边缘点!以此为中心,以计算邻居的索引值和邻居的中心距离,找到五个最相邻点!

  (2)AddPointStomap此功能是将点云添加到地图,过滤器和样品中。首先是连续添加获得的边缘特征和面部特征。尽管我们尚未使用其MAP功能,但是在优化解决方案时,我们需要将地图中的点云用作参考。

  为了防止场景太大,优化计算位置太时了 - 耗尽,有必要删除添加到地图中的点云

  也就是说,范围是要过滤当前位置附近当前位置以外的点。然后将细菌过滤器使用到点云,最后将其添加到地图中!