在询问涉及COORDINATE_FRAME_CAMERA_DEPTH的帧时,应用程序崩溃

时间:2014-12-10 14:20:28

标签: google-project-tango

我正在使用JPointCloud示例应用程序,并对其进行一些修改:

在JPointCloud.java:SetUpExtrinsics()中,我添加了:

TangoPoseData depth2devicePose = new TangoPoseData();
framePair.baseFrame = TangoPoseData.COORDINATE_FRAME_DEVICE;
framePair.targetFrame = TangoPoseData.COORDINATE_FRAME_CAMERA_DEPTH;
try {
    depth2devicePose = mTango.getPoseAtTime(0.0, framePair);
} catch (TangoErrorException e) {
    Toast.makeText(getApplicationContext(), R.string.TangoError,
            Toast.LENGTH_SHORT).show();

应用程序在到达该行时崩溃:

depth2devicePose = mTango.getPoseAtTime(0.0, framePair);

我尝试使用其他框架组合,但每次包含COORDINATE_FRAME_CAMERA_DEPTH时,应用程序都会崩溃。

我忘了什么吗?也许要问深度相机的某种特殊许可?

1 个答案:

答案 0 :(得分:1)

它确实也在我身上崩溃了。

然而,根据Java pointcloud example code (extrinsic query part),查询DEPTH_CAMERA wrt(相对于)DEVICE转换的正确方法是使用'与IMU相反的设备'与'CAMAER wrt IMU'相乘,即:< / p>

deive_T_camera = inverse(imu_T_device)* imu_T_camera

另外,请注意彩色相机,深度相机和相机在硬件级别上是相同的相机,因此它们实际上共享相同的外在。

希望这有帮助。

编辑:崩溃实际上会抛出com.google.atap.tangoservice.TangoInvalidException。这可能只是API级别不支持的帧对,如前所述,在这种情况下,建议的方法是使用其他两个矩阵来组成所需的矩阵。