我正在尝试将采样并存储在 XYZij 数据中的点云(根据文档,将数据存储在相机空间中)转换为世界坐标系,以便它们可以合并。我用于 Tango 监听器的帧对COORDINATE_FRAME_START_OF_SERVICE
作为基本帧和COORDINATE_FRAME_DEVICE
目标帧。
这是我实现转换的方式:
从as检索旋转四元数,从
TangoPoseData.getRotationAsFloats()
as检索q_r
点位置。XYZij
p
应用以下旋转,其中
q_mult
是计算两个四元数的 Hamilton 乘积的辅助方法(我已针对另一个数学库验证了此方法):p_transformed = q_mult(q_mult(q_r, p), q_r_conjugated);
将检索到的翻译添加
TangoPoseData.getTranslationAsFloats()
到p_transformed
。
但最终,点p_transformed
似乎总是以部分重叠的点云而不是对齐的合并点云而告终。
我在这里错过了什么吗?转换中是否存在概念错误?
提前致谢。