HTC Viveでトラッカーを超高精度トラッキング


はじめに

  • HTC viveを使って誤差数mm単位でトラッカーをトラッキングする手法を紹介します。
  • ロボットの位置推定など、実空間上の座標を扱う分野で活躍できると思います。

必要な機材

  • HTC VIVE Tracker (2.0) もしくは (3.0)
  • HTC Base Station (1.0) もしくは (2.0) を2つ
  • Windows PC 1台 (普通のノートPCでも動く)
  • 三脚(ベースステーションの設置用、最後に後述してます)

必要なソフト

  • SteamVR(Steamから検索してインストールする)
  • Python3が動く環境

手順

機材のセットアップ

  • ベースステーション2台を設置
  • SteamからSteamVRをインストール

SteamVRの設定を変更

  • 以下の設定ファイルを開く
C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\settings\default.vrsettings
  • requireHmd を false に、activateMultipleDriversをtrueにして保存する。

ドングルをPCに接続

  • トラッカーに同梱されていたUSBドングルをWindows PCに接続し、SteamVRを再起動する。

トラッカーの認識

  • トラッカーの電源を入れ、2つのベースステーションから見通しが良い位置に設置する。
  • 認識に成功するとSteamVRのアプリ内のトラッカーとベースステーションアイコンが青くなる。

triad_openvrのダウンロード

  • 作成者に感謝してgithubからtriad_openvrをダウンロードして解凍する。

実行してみる

  • ダウンロードしたフォルダ内のtracker_test.pyを実行してみる。
  • openvrが入っていない場合はエラーが出るのでインストールする。pip install openvr
  • 成功するとトラッカーの6自由度が表示される。
  • このコードをヒントにcsv等に書き込めるようにプログラムを書き換えることもできる。

補足

  • 座標の原点はどちらかのベースステーションとなる
  • サンプリングレートは最大250fps?要調査が必要
  • 測定範囲は7m×7mあたりが限界
  • 誤差はxとy軸で0.3cm程度、y軸で1cm程度
  • 最低1台のベースステーションから見えていれば6自由度が取得できる
  • 需要があれば書き足していきます

三脚について

広範囲で見通し内となるようにするため、ベースステーションは可能な限り高い位置から見下ろす形にすると良いらしい。そこで高い三脚が役に立つ。しかし、調べてみると分かるが2mを超えるような三脚は非常に高価である。安価かつ2mを超えるような三脚を調べ尽くした結果、このようなものを見つけた。最大231cmまで伸ばせられる上に、使い勝手が良かったのでオススメである。

参考にした記事・文献