ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Azure Kinect DKの複数台外部同期(External Sync)の手順

Azure Kinect DKには複数台のシャッターを同期させるExternal Sync(外部同期)という機能があります。Azure Kinect DKのPVにも複数台をつなげる描写があるので、複数台を使った空間スキャンのシナリオが考慮されていることがわかります。

f:id:kaorun55:20190719232845p:plain

このエントリでは外部同期の手順について解説します。

ドキュメントはこちら

シリーズリンク

概要

外部同期は複数台のAzure Kinect DKをオーディオケーブルで接続し、Depthのシャッターを同時に切ることができます。これによって複数台のAzure Kinect DKで同一タイムスタンプのDepth、IRのデータが生成されるので、同じタイミングでの空間スキャンができます。また、タイムスタンプが同一なので、それぞれのデータをクラウドにアップして後処理するなどの利用が考えられます。

ポイントは下記になります

  • タイムスタンプが同期されるのはDepthとIRのみ、ColorとIMUは完全に同期しない。
  • 同期するAzure Kinect DKのファームウェアは同じバージョンを使用すること。
  • 同期はAzure Kinect DK同士で行っているので、同期する複数のAzure Kinect DKが1PCに接続されている必要はない(別々のPCでも同期する)。
  • 同期は10m以下の3.5mmのオーディオケーブル(モノラルでもステレオでもOK)を使用する。
    • ヘッドフォンのスプリッタでケーブルを分岐させてもOK。
    • Azure Kinect DKは1台のマスターと1台以上のスレーブから構成される。
    • スレーブは8台まで、マスターを含めて9台までは動作が確認されている。
    • Azure Kinect DKはスレーブから起動し、最後にマスターを起動する。
    • マスターのAzure Kinect DKはOutからスレーブのInに接続する。
      • マスターのInには接続しない。
      • 3台以上を同期する場合にはスレーブのOutから次のスレーブのInに接続。
      • または、マスターのOutを分岐してスレーブのInに接続する。

なお、オーディオケーブルを接続する場所は付属のドライバでネジを外し、ケースを外すと出てきます(めんどくさい)。

f:id:kaorun55:20190719234146p:plain

Azure Kinect Viewerを使用した外部同期の手順

Azure Kinect Viewerを使用しても外部同期を行うことができます。

デバイスを開き、ケーブルの状態を確認します。

  1. Inが接続されているAzure Kinect DKをSubに設定しStartします。Sub側のAzure Kinect DKはMasterがStartすると動作を開始します。
  2. Outが接続されているAzure Kinect DKはMasterに設定して最後にStartします。

Azure Kinect Viewerでの表示

  • マスター(Master)
    • f:id:kaorun55:20190719234327p:plain
  • スレーブ(Sub)
    • f:id:kaorun55:20190719234425p:plain

起動してしばらくするとDepthのタイムスタンプが同じ値になります。

f:id:kaorun55:20190719234540p:plain

3台以上の接続

4台までの接続は確認しています。

f:id:kaorun55:20190719234700p:plainf:id:kaorun55:20190719234715p:plain

スプリッタは2分岐でも5分岐でも動作しました。

f:id:kaorun55:20190719234738p:plain

使用したケーブルやスプリッタ

ケーブル(5m/10m)

サンワサプライ オーディオケーブル 5.0m ブラック KM-A2-50K2

サンワサプライ オーディオケーブル 5.0m ブラック KM-A2-50K2

分岐

まとめ

外部同期することでセンサーデータの同期の保証や後処理が可能になります。

ケーブルの取り回しが大変ですが、複数台のAzure Kinect DKを使う場合には導入を検討してみてください。