我正在尝试使用以下方法对齐 2 组点云迭代最近点(ICP) 算法集成在点云库(PCL)。我收到错误报告,指出找不到足够的对应点。我已经放宽了参数的条件:setEuclideanFitnessEpsilon(-1.797e+5)、setMaximumIterations(40) 和 setRANSACIterations(2000),但仍然遇到同样的问题..(我还没有找到关于这些条件值应该使用哪个或如何使用的太多信息为了正确对齐,所以any help在这方面也将非常感激)
我怀疑这个问题与我的云中有许多 NULL 数据点有关,我已将其标记为 NULL (0) 值。使用 PCL 时这样做正确吗? PCL有NULL标准值吗?我显然不希望算法在尝试对齐数据集时考虑那些 NULL 点。
感谢您的帮助
如果使用PCL,无效数据的默认值不是NULL,而是NaN。因此,如果您想将一个点标记为无效,您应该首先包含<limits>
文件,然后将位置设置为“std::numeric_limits::quiet_NaN()”。通常是这样完成的
const float bad_point = std::numeric_limits<float>::quiet_NaN();
if( is_invalid_point )
p.x = p.y = p.z = bad_point;
但无论如何,配置 ICP 可能会很痛苦。您可能需要根据您的数据进行更多参数调整。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)