モーションキャプチャを用いた二足ロボットの歩行制御
2009SE069 今村智貴
指導教員：大石泰章

1

ンデータ取得の際, 死角が発生する. これを避けるためにはじめに現在の二足ロボットの歩行は膝を曲げておこなう必要があるため, 常に膝に力が加わり, 余計なエネルギーを必要とするとともに関節のサーボモータに余計な負荷がかかる [1]. 本研究では二足ロボットをより効率よく歩行させるため, 実際の人間の歩行モーションを利用することを考える. 具体的にはモーションキャプチャを用いて, 人間の歩行モーションを取得し, そのデータから脚の関節の角度の変化の時系列を求め, これを順次各関節に相当するサーボモータに入力し, 二足ロボットを歩行させる. これにより人間と同じような効率的で安定した歩行の実現を目指す.

2

制御対象
二足ロボットはヴイストン社の「Robovie-X」を使用する. 図 1 はこの二足ロボットの概観である [2].

次の方法で撮影をおこなう. まず直立静止状態の被験者から 5〜6m ほど離した位置に, 被験者と向かい合わせになるようにモーションキャプチャを配置する. そして, 被験者はモーションキャプチャが設置してある方向へと歩いていく様子をそのモーションキャプチャを用いて撮影する.
これにより死角を作ることなく撮影できる. トラッキングボールを図 2 のように被験者の左右の肩, 手, 腰, 脚付け根,膝, 足首, 足先につける. モーションキャプチャは人間が歩行する際のトラッキングボールの座標を観測する.

4

モーションデータの編集

V120/Trio で 取 得 し た モ ー シ ョ ン デ ー タ を csv 形 式(Excel の形式) で入手できるが同じトラッキングボールのデータが常に同じ列に格納されるとは限らない. そのため取得した x 座標を用いて並べ替えることで左右を, y 座
標を用いてどの部位のトラッキングボールであるかを判別して, 同じトラッキングボールのデータが同じ列に入るようにデータを並べかえをおこなう.

またトラッキング

ボールが消失, または増加している場合がある. 前者の場
合は前後の値から消失したトラッキングボールを特定し,平均の値を入力する。後者の場合は前後の値から余分な点を特定し, 消去する.

5

図 1 Robovie-X
また使用するモーションキャプチャは OptiTrack 社のV120:Trio である [3]. このモーションキャプチャは複数のトラッキングボールの x, y, z 座標を時系列として得ることが可能である. トラッキングボールとは, 被写体となる動体の計測したい各ポイントにつけるマーカーである. この角度の計算

Robovie-X の入力は各サーボモータの回転角である. 本章では前章で得られた各関節の座標を用いて Robovie-Xに入力する膝の角度の変化を計算する.

モーションキャプチャを用いて各関節の座標の変化を観測する.

3

モーションの取得
y

トラッキングボール

・
撮影方向

進行方向

・・ ・・・・・・・ ・・z

モーションキャプチャ

図 3 角度
図 2 モーションの取得

V120/Trio は一方向から撮影をおこなうためにモーショ

図 3 は脚の図であり, R1 は右肩, R2 は右手, R3 は右腰,R4 は右脚付け根, R5 は右膝, R6 は右足首,R7 は右足先 L1

は左肩, L2 は左手, L3 は左腰, L4 は左脚付け根, L5 は左膝, L6 は左足首, L7 は左足先を表す. 以上の点にトラッキングボールを装着し, それぞれの x, y, z 座標の時間変化を取得する. 次に各関節について直立状態を基準としたときの角度を右肩を θ1 , 右腰を θ2 , 右膝を θ3 , 右足首を θ4 , 左肩を θ5 , 左腰を θ6 , 左膝を θ7 , 左足首を θ8 とする. 各関節の x, y, z 座標を図のように書く. 例えば, 右膝の角度 θ3は右脚付け根の座標 (x4 y4 z4 ), 右膝の座標 (x5 y5 z5 ), 右足首の座標 (x6 y6 z6 ), 次のように計算できる.

−→
a = (x4 y4 z4 )T − (x5 y5 z5 )T−→b = (x6 y6 z6 )T − (x5 y5 z5 )T→−→−a・ bθ3 = π − →→−−
∥ a ∥・∥ b ∥→−→−→→
ただし ∥−a ∥, ∥ b ∥ は −a , b のノルムである
他の関節の角度も同様にして計算できる.

図 5 Go Simulation 上で作成した Robovie-Xて作成した. 全身の角度を時系列ごとに入力していくことで動作させる. シミュレーションの結果は足が歩行するのと同様の動きをすることを確認した. しかし, 地面に立たせたときに歩行するかを確かめるシミュレーションではほとんど前に進まず, バランスも悪かった。

実験機による実験8

シミュレーションで使用した角度の時系列を用いて実験をおこなう.

シミュレーションと同様, 足の動きは歩行する場合と同様の動きをすることを確認した。しかし, 地面に立たせておこなった場合はシミュレーションと同じく,転倒こそしないものの前には進まなかった.
右脚が支持脚の場合左脚が支持脚の場合

図 4 重心の変化考察

9

歩行の様子を観察すると, 脚がほとんど上がっておらず,地面を擦っていることがわかった. このため地面との間にまた上記の脚の 6 個の角度だけでは脚を上げた際に重心の余計な摩擦が生じてしまい, 前に進まず, その場を回るよ位置が変化しないため転倒してしまう. そのため腰の座標うな動作になってしまったと考える. 遊脚 (重心がかかっの時系列から重心の変化を求める. 直立状態から変化したてない方の脚) が地面を擦らないで前に踏み出せるように右腰の角度を θ9 , 左腰の角度を θ10 とする. R3 と L3 を用すべきであると考える.

いて, 重心の変化を求める.

6

角度の編集

10終わりに人間の歩行をそのままロボットにおこなわせるためには5 章で取得した角度データは 0.01s ごとにサンプルされモーションをトレースするだけでなく, 本体の構造やマイているので, このままではサーボモータに入力すると余計コンのプログラムなど他にも手を加えないといけない部分な負荷をかけてしまう. また取得した角度データは直立状が多く存在していることを学んだ.

態が 0°になるはずのものであるが , 実際には偏差が生じ参考文献ている. 以上のことから次の方法を用いて角度データを編集する [4].

1. 直立状態が 0°になるように角度データを補正する .
2. 取得したデータを間引いて, 0.2s ごとのデータになるようにする.

7

シミュレーション
シミュレーションは TECHNO ROAD 社が販売しているソフトウェア Go Simulation!を使用する. このソフト
ウェアは三次元物理演算を用いた歩行シミュレーションなどが可能である. また図 5 の 3D データは Autodesk 社が販売している 3D CAD である Autodesk inventer を用い[1] 大須賀公一:二足歩行ロボットの力学と制御-より本質的な歩行とは?-, 応用数理 13, 一般社団法人日本応用数理学会, (2013)[2] ヴイストン株式会社
http://www.vstone.co.jp/[3] OptiTrack 社
http://www.mocap.jp/optitrack/index.html[4] 福岡佑太：モーションキャプチャシステムを用いたロボットのモーショントレース制御技術の提案, 高知工科大学電子・光システム工学科卒業研究, (2010)