Motion Capture System - HondaLab/Robot-Intelligence GitHub Wiki

V棟1階のVRシアター内にある,モーションキャプチャーシステムの使い方を,ここに まとめる. あくまでも,簡易的なもので,すべての機能を網羅するものではない. このチュートリアルを読んで分かることは,システムを起動し,専用のマーカーを付した物体の 位置データを取得する方法である.

210428motor補正

大まかな作業の流れとしては,

  • 機器接続後にアプリ起動と 作業フォルダ作成(指定)
  • キャリブレーション(カメラ位置変更ない場合,省略可)
  • マーカーセット作成(指定)
  • 位置データ観測

なかでも,マーカーセットの作成が多少煩雑(バグも潜んでいる可能性大)である. ただし,マーカーセットの作成(指定)が正常に行われていないと,位置データの観測 記録ができないので,正確なMotion Captureのためには必須である.

1. 準備と起動

カメラ・ハブ・PCの接続

カメラとPCはLANを通じて接続される. カメラは8台あるので,ハブとカメラの電源システムのスイッチを入れる(電源コンセントを 挿す) ハブとPCをLANケーブルでつなぐ.

アプリケーション起動

PCのUSBポートににマスタードングルを挿し,Cortex3.0を起動する. カメラからデータを取得するためには,マスタードングルを挿してある必要がある. 取得されたデータを,あとから編集すること(Postprocess)は,Postprocess用のドングル を挿すことで可能となる.

作業フォルダ

マーカセットや取得位置のデータが保存されるフォルダを指定する. 複数の作業データが混在すると,混乱を招くので, 作業ごとに新しいフォルダを作って,それらを保存することが推奨される. 以下が手順概要.

  • Quick File
  • New Folder
  • Set as Working Folder

Live modeとPostprocess

Cortexでの作業は,Live modeとPostprocessの2種類に大別される. Live modeでは,実際にマーカの位置をパネル(画面)にリアルタイム表示など が可能である. Postprocessでは,マーカセットの登録や,記録されたデータの編集などが可能である.

表示空間の移動

拡大,縮小は表示パネルで,マウスのスクロールボタンを使っておこなう. Altキーを押しながら,マウスボタンのドラッグをすると,表示空間を移動できる.

2. キャリブレーション

マーカ位置を測定するまえに,キャリブレーションを行うことが推奨されている. カメラの位置が固定されており,前回の作業時とまったくずれていなければ,キャリブレーション は省略できるが,カメラは微妙にずれるようで,データの分散が大きくなってくると, 固定されたカメラシステムでも,再びキャリブレーションを行う必要がある.

手順

  * Connect To
  * play ボタン押す
  * L字フレーム以外のマーカーが入らないようにする.
  * Caribrate
  * Initial Calibration
  * Next
  * Wand: すべてのカメラ読み込み領域が緑色になるまで,Wandを振り回す.
  * Finish

マスクを作って床などからの反射をふせぐ

マーカー以外の物体から赤外線が感知されるとマーカーと誤認識されてカメラ位置が異常認識される。 当然キャリブレーションも出来ない。 異常なカメラを選択してマスクを作る。 2D表示でマウスを右クリックするとAuto mask などが表示されるので適当なものを選択する。 マスクを作成する際にはマーカーが観測範囲内に入っていてはならない。

過去のキャリブレーションをロードする

上記手順を行っても,どうしてもカメラ位置の認識が失敗するなどして,キャリブレーションが実行できない場合がある. その場合,過去のキャリブレーションに成功したときのcapファイルをロードして測定開始することもできる.

ただし,座標系やカメラ位置などとして過去のものを用いるので,その時と変化していないことが条件である.

マーカセットの作成と利用

MCシステムは,各マーカーの位置を読み取ることができるので,マーカー1個だけでもその 位置を記録することができます. しかし,複数の物体の位置を測定したい場合,どのデータがどの物体に対応するのか混同する場合が生じます. また,床などマーカー以外の位置をマーカーと誤認識した場合,どのデータが物体(マーカー)の位置か分からなく なってしまいます.

マーカーセットを作成し,それを物体の位置としデータ取得すれば,それらの心配はなくなります. また,セットとして位置測定されるので,誤認識や途切れもなくります. 位置観測を確実に行うためには,マーカセットを作成し,その位置を記録します.

マーカの記録: Live モードで数秒間データを記録

  • File Name 入力
  • Return
  • 赤丸ボタン押す
  • もう一度赤丸ボタンで記録終了

New marker set : ここが,鬼門です.

下記 A)-H)の8つの手順を順番に行う.

A) Load Last ボタン

記録したデータがPostprocessに読み込まれる.

B) Maker sets 横の New

左上の方にあるMerker Setsの右側にNewボタンがあるので、クリックする。

C) Name 入力

D) Maker set Type は,Prop あるいは Template.

マーカー間隔が伸び縮みする可能性がある場合や,Linkを自由に作りたい場合Templateを選択. いっぽう,マーカー間隔が一定で,ひとかたまりとして認識したい場合はPropを選択. 右側の枠の中に MerkerSet Propertisがせっていできる。間隔が狭いマーカーセットを作る場合には、PropのExtra Strechの値を小さくする。 この値が大きすぎると、マーカーの位置が多少ずれても許容される。 結果的にマーカー配置の似たマーカーセットが混同される可能性が高くなる。

マーカーの間隔を数センチで固定したマーカーセットを複数作る場合、Extra Strechの値を1%と最小値で試してみると良い。

Create ボタンを押しても入力窓は閉じないので,×ボタンで閉じる.

E) Capture: を選び直す.

これを行わないと,Maker の名前入力ボックスが現れない場合がある.原因は謎.

F) 右側のパネル内でマーカーの個数だけ名前を付ける

G) Quick ID

Quick ID をクリックすると,自動的に順番にマーカーをアイデンティファイできる.

H) Save capture

File メニューから Save captureを選択して保存. (この保存は必要ないかもしれない)

Linkの作成

Marker set type がProp. の場合は,自動的にマーカー間にリンクが生成するので, この手順は必要ない. Maker set type がMarsの場合,任意のマーカー間にリンクを作成できる.

  • 右側の枠内で,Linksタグを選ぶ.
  • Create Links for Templateをクリック
  • 色を選択
  • マーカー間をドラッグしてlinkでつなぐ

Create Template

Create Template ボタンをクリックしてから,再度Save captureする. ここまでやってはじめて,marker setが prop あるいは marsファイルに保存されて, データ取得時に認識される.

データの取得

  • Live モード
  • Maker setのAdd/Removeタブ
  • 使うマーカーセットをチェック
  • Connect To
  • Play ボタン
  • Name 入力
  • レコード(赤丸ボタン)
  • File $\rightarrow$ Save Capture
  • Work Folder 内に保存されてtrcファイルにascii形式の3Dデータが保存される.