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 = inverse(imu_T_device) * imu_T_camera

また、カラー カメラ、深度カメラ、およびカメラはハードウェア レベルでは同じカメラであるため、実際には同じ外部機能を共有していることに注意してください。

お役に立てれば。

編集: クラッシュは実際には com.google.atap.tangoservice.TangoInvalidException をスローします。これは、前述のように、API レベルからサポートされていないフレーム ペアである可能性があります。この場合、他の 2 つのマトリックスを使用して目的のマトリックスを構成することをお勧めします。

于 2015-01-05T19:32:58.473 に答える