Oliver Shao
Oliver Shao
You can save data_base_ using "fwrite()" with iteration and index list, and save plane_cloud_vector_ using "pcl::io::savePCDFileBinary".
袁博您好,你们的工作很优秀, 特别在计算速度方面超越了其他方法不少. 我目前在做重定位的尝试, 发现了一些问题想与您探讨. 首先, 我采用两种方法来保存先验描述子地图, 一种是选取一段连续帧点云数据构建局部点云来提取特征. 另一种方式是读取全场景的点云大地图, 然后根据xy坐标分割成多个局部点云来提取特征. 前者在重定位的时候能够匹配得上, 但后者不行,想请教一下您觉得原因可能是什么呢? (是否与盲区有关, 采用的是livox雷达) 感谢大佬!
> 袁博您好,你们的工作很优秀, 特别在计算速度方面超越了其他方法不少. 我目前在做重定位的尝试, 发现了一些问题想与您探讨. 首先, 我采用两种方法来保存先验描述子地图, 一种是选取一段连续帧点云数据构建局部点云来提取特征. 另一种方式是读取全场景的点云大地图, 然后根据xy坐标分割成多个局部点云来提取特征. 前者在重定位的时候能够匹配得上, 但后者不行,想请教一下您觉得原因可能是什么呢? (是否与盲区有关, 采用的是livox雷达) 感谢大佬! 问题解决, 只取最新几帧构建的局部地图, 因为传感器与环境之间存在遮挡, 尚未对目标区域完成建图, 接着往前走接近目标区域时, 遮挡会逐渐减少, 目标区域的点云信息会增加. 因此在实时定位时, 选取机器人身后的点云, 与pcd生成的先验STD地图匹配时, 才能够匹配得上.
> @OliverShaoPT 您好,看起来我们似乎在做同样的任务,想请问您目前地点重识别的准确率高吗(建立先验数据库用一个路线,重识别用另一个不同时间的相似路线),因为我在测试时出现了重识别准确率不高的问题,想跟您深入交流下,感谢 使用累积一段时间的点云地图来做匹配, 最好用身后的点云, 建图比较完全, 盲区较小.
> > @OliverShaoPT 您好,看起来我们似乎在做同样的任务,想请问您目前地点重识别的准确率高吗(建立先验数据库用一个路线,重识别用另一个不同时间的相似路线),因为我在测试时出现了重识别准确率不高的问题,想跟您深入交流下,感谢 > > 我做了些实验: 首先播放完整的bag数据建了一张全局地图,把std_desc和提取的平面点云保存成离线数据库。 > > 1. 再次播放完整的bag数据,可以从离线的数据库中找到回环位置,从而实现重定位; > 2. 从bag数据某个中间位置开始播放建图,完全无法在离线数据库中找到回环位置,但可以找到在线的回环。原因应该如你之前所说,在线和离线地图两个坐标系不一致,角点一致性无法保证; > 3. 从bag数据中间位置播放建图,但和全局地图做了粗略地配准,voxel_size设置为2。目的在线、离线地图的坐标系不要相差太大,voxel格子大一些减小坐标系不一致的影响。但也没法在离线数据库中找到回环。 > > 看起来voxel划分的不同对算法的影响比较大,目前我想实现无需人工指定初值的全局重定位,但我看到的大多数lidar重定位算法都需要人工给定初始位姿,有啥推荐的方法吗 可以使用耗时较高的算法来做全局搜索, 如NDT. 初始化完成后再用STD来提升运行过程中的匹配速度.
> ``` > 感谢开源优秀的工作,我在尝试使用STD进行重定位时候,在室内效果不佳,我猜测是因为我的地图是只有关键帧了,关键帧相比较实时建图,没有非关键帧的信息,导致提取角点和平面点的效果不好吗,是这个原因吗 > ``` I am facing the same issue, even with same source data, the candidate_selector may failed if the submap size is different. If the prior...
> > ``` > > 感谢开源优秀的工作,我在尝试使用STD进行重定位时候,在室内效果不佳,我猜测是因为我的地图是只有关键帧了,关键帧相比较实时建图,没有非关键帧的信息,导致提取角点和平面点的效果不好吗,是这个原因吗 > > ``` > > I am facing the same issue, even with same source data, the candidate_selector may failed if the submap size...