0

我正在使用 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 时,应用程序都会崩溃。

我是不是忘记了什么?也许要为深度相机请求某种特殊许可?

4

1 回答 1

1

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

但是,根据Java 点云示例代码(外部查询部分),查询 DEPTH_CAMERA wrt(相对于)DEVICE 转换的正确方法是使用“DEVICE wrt IMU 的逆”乘以“CAMAER wrt IMU”,即:

deive_T_camera = 逆(imu_T_device)* imu_T_camera

另外,请注意,彩色相机、深度相机和相机在硬件层面上是同一个相机,因此它们实际上共享相同的外部。

希望这可以帮助。

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

于 2015-01-05T19:32:58.473 回答