研究テーマ‎ > ‎

パーティクルフィルタを用いた人姿勢の模倣のための人型ロボットの関節角度推定

|概要
Microsoft Kinectのスケルトントラッキング機能や、一般的なモーションキャプチャーを用いると、人の膝や肘といった関節の3次元空間上の位置を取得することが可能です。
しかし、ロボットにポージングをさせるような場合、肘関節が何度・膝関節が何度…という各関節の角度を求めなければなりません。




人体の関節位置の集合から、各関節の角度を求める手法は複数提案されていますが、インタラクティブ・ロボティクス研究室では「パーティクルフィルタ」という手法を使用しています。

応用された研究は、本サイト内の模倣学習にあります。


|原理
パーティクルフィルタの基本原理についてはここでは省略します。

今回パーティクルフィルタで推定する内部状態は、各関節の角度になります。




肩のヨー角:10度
肩のピッチ角:20度
上腕のひねり:0度
肘の角度:40度
……







のような関節角度の集合を1つの粒子とし、毎回500個の粒子を散布しながら推定を行います。

初期状態は全関節角度を一様分布とし、関節角度の時間ステップによる変化も一様乱数として粒子を更新します。
類似度には、各関節位置間(肩位置-肘位置など)のベクトルの内積の二乗誤差を用いています。


上半身について、関節角度を推定している仮定を記録した動画です。
赤い点がKinectによって計測された両腕の肩・肘・手首の関節座標を表示しています。
白い点および線は、現在散布されているパーティクルを表示しており、色が濃いほど類似度が高い粒子であることを示しています。



初期化の工程ではランダムに粒子を生成するため、様々な関節角度(=ポーズ)が生成されます。
その後、粒子の更新、類似度計算、リサンプリング、状態推定…と、パーティクルフィルタの処理を繰り返していきます。
終盤のループでは各処理を内部で行い、推定の結果の姿勢が白い線になります。
赤い点で示された計測されたポーズに近い姿勢を実現する関節角度が推定できていることが分かります。

実際の研究では下半身の関節角度を粒子の内部状態に加え、全身の関節角度を推定しています。


Comments