gpt4 book ai didi

android - 探戈项目 : Converting between coordinate systems and merging point clouds

转载 作者:搜寻专家 更新时间:2023-11-01 07:54:57 26 4
gpt4 key购买 nike

我正在尝试将采样和存储在 XYZij 数据中的点云(根据 document ,将数据存储在相机空间中)转换为世界坐标系,以便它们可以合并。我用于 Tango 监听器的帧对将 COORDINATE_FRAME_START_OF_SERVICE 作为基础帧,将 COORDINATE_FRAME_DEVICE 作为目标帧。

这是我实现转换的方式:

  1. TangoPoseData.getRotationAsFloats() 中获取旋转四元数作为 q_r,从 XYZij 中获取点位置作为 p.

  2. 应用以下旋转,其中 q_mult 是计算两个四元数的 Hamilton 乘积的辅助方法(我已经针对另一个数学库验证了此方法):

    p_transformed = q_mult(q_mult(q_r, p), q_r_conjugated);

  3. 将从 TangoPoseData.getTranslationAsFloats() 检索到的翻译添加到 p_transformed

但最终,p_transformed 处的点似乎总是以部分重叠的点云杂乱无章结束,而不是对齐、合并的点云。

我在这里遗漏了什么吗?转换中是否存在概念错误?

提前致谢。

最佳答案

Ken 和 Vincenzo,感谢您的回复。

在单独使用姿势数据将单个点云转换为世界坐标后,我通过使用 CloudCompare 对单个点云执行 ICP 注册以某种方式获得了更好的结果。以下是大约 30 次电脑 table 扫描的示例结果。远端的点仍然有点偏离,但通过仔细调整参数,这可能会得到改善。 CloudCompare 的命令行界面也使其适用于批处理。

除了需要更正不可避免的集成错误外,我之前犯的一个错误是错误地使用了相机空间框架(设备上的相机),描述为here in the documentation , 与 OpenGL 相机框架相同,与描述的设备框架相同 here .但他们不是。

此外,缓慢移动相机以获得两个相邻帧之间的更多重叠也有助于配准。良好的场景可见光设置很重要,因为除了运动传感器外,Tango 还依靠背面的鱼眼相机进行运动跟踪。

希望这些技巧也适用于除我以外的更多一般情况。

enter image description here

关于android - 探戈项目 : Converting between coordinate systems and merging point clouds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29266284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com