2

这是我的设置: Kinect 安装在执行器上以进行水平移动。这是我在做什么的简短演示。http://www.youtube.com/watch?v=X1aSMvDQhDM

这是我的场景:

在此处输入图像描述

请参考上图。假设Actuator中心'M'与Kinect光轴中心'C'的距离为'dx'(毫米),则从Kinect得到的深度信息'D'(毫米)是相对的到光轴。由于我现在在 Kinect 的中心上安装了一个执行器,因此物体和 Kinect 之间的实际深度是“Z”。

X 是光轴与物体之间的距离,以像素为单位。Theta2 是光轴和物体之间的角度。'dy' 可以忽略。

这是我的问题。 要获得 Z,我可以简单地使用图 2 中的距离方程。但是我不知道 X 的真实世界值(以 mm 为单位)。如果我有物体和光轴“theta2”之间的角度,我可以使用 Dsin(theta2) 来获得以 mm 为单位的 X。然而 theta2 也是未知的。因为如果 X(以 mm 为单位)已知,我可以得到 theta2,如果 theta2 已知,我可以得到 X。那么我应该如何获得以 mm 为单位的 X 值或光轴与对象 P 之间的角度?

这是我尝试过的:因为我知道 Kinect 的最大视野是 57 度,而 Kinect 的最大水平分辨率是 640 像素,我可以说 kinect 的 1 度覆盖 11.228 (640/57) 像素。但是,通过实验我发现这会导致至少 2 度的误差。我怀疑这是由于 Kinect 上的镜头失真造成的。但我不知道如何补偿/标准化它。

非常感谢任何想法/帮助。

4

0 回答 0