我遵循了以下教程:
http://pointclouds.org/documentation/tutorials/correspondence_grouping.php
为了估计场景中物体的姿势。我已经成功地使该教程适用于样本点云以及我自己的点云(在调整了一些参数之后)。
撰写本教程的人说:
识别方法返回Eigen :: Matrix4f的向量,表示在场景中找到的每个模型实例的变换(旋转+平移)(通过绝对方向获得)
我得到了这个转换矩阵,但是我不明白这些值是指什么。
例如,同一教程页面具有以下输出:
| 0.969 -0.120 0.217 | R = | 0.117 0.993 0.026 | | -0.218 -0.000 0.976 | t = < -0.159, 0.212, -0.042 >
虽然我知道这些值代表场景中找到的每个模型的旋转和平移-这些值用作参考点是什么,以及如何使用它们?
例如,如果我想在标识的模型上放置另一个模型,是否可以使用这些值来定位标识的模型?或者,如果我有一个想要与模型进行交互的机器人,那么机器人可以使用这些值来推断对象在场景中的位置吗?
对应分组方法需要两个参数-场景和模型。我目前的假设是算法说“我在场景中找到了这个模型,现在我需要对模型进行什么变换才能使其与场景对齐?”。由于模型是从场景中提取的,因此算法在场景中找到模型后,即可确定需要应用哪种变换。但是由于该模型是直接从场景中提取的,因此几乎不需要进行任何变换。
谁能对这些价值观提供一些见识?
答案 0 :(得分:0)
好的,我相信我已经验证了我的理论。我拍摄了第二张场景的图像,其中模型向左移动了约1米。我提取了该模型,并将其用作对应分组的输入。平移矩阵使对象在X轴上的平移比原始对象大得多。这向我确认,正在打印的转换矩阵是从提供的对象到场景中识别的对象实例的转换。