本文介绍了Tango项目:之间转换坐标系和合并的点云的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我想转换采样,并存储在XYZij数据点云(其中,根据的文档时,在相机空间用于存储数据)转换为世界坐标系统,使它们可以被合并。我使用的探戈侦听器的框架对具有 COORDINATE_FRAME_START_OF_SERVICE 为基本框架和 COORDINATE_FRAME_DEVICE 作为目标框架。I am trying to convert point clouds sampled and stored in XYZij data (which, according to the document, stores data in camera space) into a world coordinate system so that they can be merged. The frame pair I use for the Tango listener has COORDINATE_FRAME_START_OF_SERVICE as the base frame and COORDINATE_FRAME_DEVICE as the target frame.这是我实现转换的方式:This is the way I implement the transformation: 从 TangoPoseData.getRotationAsFloats旋转四元数()为 q_r ,并从点位置 XYZij 为 P 。应用以下轮换,其中 q_mult 是一个辅助方法计算两个四元汉密尔顿产品(我已经验证了这种方法对另一数学库):Apply the following rotation, where q_mult is a helper method computing the Hamilton product of two quaternions (I have verified this method against another math library): p_transformed = q_mult(q_mult(q_r,P),q_r_conjugated);添加翻译从 TangoPoseData.getTranslationAsFloats()检索到 p_transformed 。但最终,指着 p_transformed 似乎总是结束在部分重叠点云,而不是一致,合并后的点云的混乱。But eventually, points at p_transformed always seem to end up in clutter of partly overlapped point clouds instead of an aligned, merged point cloud.我缺少什么吗?是否有转型的概念错了吗?Am I missing anything here? Is there a conceptual mistake in the transformation?在此先感谢。推荐答案肯和放大器;文森佐,感谢您的答复。Ken & Vincenzo, thanks for the reply.我莫名其妙地通过利用CloudCompare个别点云ICP备案它们转化为世界仅使用姿势数据坐标后得到更好的效果。下面是从样品的结果〜一电脑桌30扫描。点上那头仍然有点过,但精心调校参数,这可能会得到改善。此外CloudCompare的命令行界面使得它适合于批量处理。I somehow get better results by performing ICP registration using CloudCompare on individual point clouds after they are transformed into world coordinates using pose data alone. Below is a sample result from ~30 scans of a computer desk. Points on the farther end are still a bit off, but with carefully tuned parameters this might be improved. Also CloudCompare's command line interface makes it suitable for batch processing.除了要修正,需要不可避免积分误差,有错误,我先前取得被错误采取其被描述的在这里的文档,是一样的OpenGL的相机架,因为描述的是相同的设备框架此处。但事实并非如此。Besides the inevitable integration error that needs to be corrected, a mistake I made earlier was wrongly taking the camera space frame (the camera on the device), which is described here in the documentation, to be the same as the OpenGL camera frame, which is the same as the device frame as described here. But they are not.另外,移动相机慢慢得到两个相邻的帧之间更多的重叠也帮助登记和场景的一个很好的可见的照明设备是非常重要的,因为除了运动传感器,探戈也依赖于鱼眼相机背部的运动跟踪。Also, moving the camera slowly to get more overlap between two adjacent frames also helps registration. And a good visible lighting setup of the scene is important, since besides the motion sensors, Tango also relies on the fish eye camera on its back for motion tracking.希望的技巧也适用于比我的其他更一般的情况。Hope the tips also work for more general cases other than mine. 这篇关于Tango项目:之间转换坐标系和合并的点云的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-29 22:01