人の動きから学ぶ

人のモーションキャプチャを使ってRSO Poseを学習させ、一つずつ姿勢を予測して動きを生成しています。歩行、走行、方向転換を基礎として、コントローラーがシミュレーション上のキャラクターを動かします。要求する方向や速度が変わると、生成される動きも変わります。

モーションキャプチャは、時間とともに身体がどう変化するかを記録します。歩行の記録には、一歩ごとのタイミングや、脚と上半身の連動が含まれます。方向転換は、向きを変えながら移動を続ける複数の瞬間にわたって進みます。こうした時系列の動きが、モデルの学習例になります。

コントローラーの学習

公開されたDeepPhaseアーキテクチャを基盤にしています。人の動きから独自の位相表現とモーションコントローラーを学習させ、リアルタイムのシミュレーションで使えるよう調整しました。

位相表現は、身体各部の動きのリズムにあるパターンを表します。動作がどこまで進んでいるかをコントローラーに伝えます。次の姿勢は、向かう先だけでなく、現在の位置に至るまでの動きにも左右されるため、この情報が重要になります。

コントローラーは直前までの動きに、要求された方向と速度を合わせて、その先を予測します。記録された動作の系列は、この関係を学ぶための例になります。対話的に操作しながら動かすことで、自分が生成した姿勢を次の予測の履歴として使うときに、どう振る舞うかを調べられます。

連続した動きを生成する

予測した姿勢は、次のステップの入力の一部になります。キャラクターは方向操作に応じながら、モデルが出力し続ける姿勢の系列を通じて動きます。走行中に方向を変え、身体全体で方向転換がどう進むかを確かめられます。

予測を繰り返すことは、テストの重要な部分です。一つの姿勢がもっともらしくても、振る舞いのごく一部しかわかりません。連続した動きに一貫性があるか、通常の速度で動作のつながりがどう見えるか、操作の変化にどう応じるかも調べます。

歩行と走行は、そのための基礎になります。歩みが繰り返されるため、複数の周期にわたってタイミングや足の接地を確認できます。方向転換では、すでに進行している動きを続けながら進路を変えるという、別の課題が加わります。

地面との接触

生成した動きは、シミュレーション内の世界にも合う必要があります。モデルの姿勢に接地の調整と制御の改良を組み合わせ、足の置き方や動作のつながりを検討しています。これらの処理が、アニメーションをシーンになじませます。

結果は、操作可能なリアルタイムのシミュレーションでテストします。学習による姿勢の系列と、地面に合わせるための調整は、別の役割を持ちます。この区別を明確にしておくと、足が滑ったり動作のつながりが不自然になったりしたとき、システムのどの部分を改善すべきかがわかりやすくなります。

より自然なロボットの動きへ

ロボットの動きを読み取りやすく、予測しやすいものにしたいと考えています。見慣れたタイミングや連動は、近づいてくる身体の動きを理解したり、まもなく向きを変えると気づいたりする助けになるかもしれません。人がその動きにどう反応するかの調査も含め、今後取り組みたい方向です。

ゲーム、デジタルアバター、アニメーションツールも、考えられる用途です。現在のコントローラーはシミュレーションで動いています。実機のロボットには、バランスや接触に関する追加の要件に加え、個々のハードウェアの制御が必要です。それぞれについて開発と評価を行う必要があります。

RSO Poseについて

アーカイブ記事。日付は本文で扱う時期を示しています。

DeepPhase: Periodic Autoencoders for Learning Motion Phase Manifolds