(57)【要約】【課題】人型ロボットの動的安定化を図りつつ、被験者の自然な動作を反映した動作データを生成すること。【解決手段】動作データ生成システムは、被験者の動作から動作データを取得する動作データ取得手段と、取得された動作データに基づいて、逆運動学演算を行いロボットの各関節角度を算出し、算出した各関節角度に基づいて、ロボットのＺＭＰ軌道を算出する第１逆運動学演算手段と、算出されたＺＭＰ軌道に基づいて、ロボットの動作を安定化させるための目標ＺＭＰ軌道を算出する目標ＺＭＰ算出手段と、第１逆運動学演算手段により算出されたＺＭＰ軌道と、目標ＺＭＰ算出手段により算出された目標ＺＭＰ軌道と、に基づいて、目標重心軌道を算出する目標重心軌道算出手段と、算出された目標重心軌道に基づいて、逆運動学演算を行い、ロボットの各関節角度を算出する第２逆運動学演算手段と、を備えることを特徴とする動作データ生成システム。【選択図】図１
2012223864.tif 000002
【特許請求の範囲】
【請求項１】
被験者の動作に基づいてロボットの動作データを生成する動作データ生成システムであって、
被験者の動作から動作データを取得する動作データ取得手段と、
前記動作データ取得手段により取得された前記動作データに基づいて、前記ロボットにおける逆運動学演算を行い前記ロボットの各関節角度を算出し、該算出した各関節角度に基づいて、前記ロボットのＺＭＰ軌道を算出する第１逆運動学演算手段と、
前記第１逆運動学演算手段により算出された前記ＺＭＰ軌道に基づいて、前記ロボットの動作を安定化させるための目標ＺＭＰ軌道を算出する目標ＺＭＰ算出手段と、
前記第１逆運動学演算手段により算出された前記ＺＭＰ軌道と、前記目標ＺＭＰ算出手段により算出された目標ＺＭＰ軌道と、に基づいて、目標重心軌道を算出する目標重心軌道算出手段と、
前記目標重心軌道算出手段により算出された前記目標重心軌道に基づいて、前記ロボットにおける逆運動学演算を行い、前記ロボットの各関節角度を算出する第２逆運動学演算手段と、
を備えることを特徴とする動作データ生成システム。
【請求項２】
請求項１記載の動作データ生成システムであって、
前記第２逆運動学演算手段は、前記逆運動学演算において、前記第１逆運動学演算手段により算出された各関節角度列に対して、拘束条件を満たすための優先度を低く設定する、ことを特徴とする動作データ生成システム。
【請求項３】
請求項１又は２記載の動作データ生成システムであって、
前記第１逆運動学演算手段は、前記ロボットの全身における逆運動学演算を行い、安定化前の前記ロボットの重心軌道を算出し、
前記目標重心軌道算出手段は、前記目標ＺＭＰ算出手段により算出された目標ＺＭＰ軌道と、前記第１逆運動学演算手段により算出された前記重心軌道と、に基づいて、重心の目標角運動量軌道を算出し、
前記第２逆運動学演算手段は、前記目標重心軌道算出手段により算出された前記目標重心軌道と、前記目標角運動量軌道と、に基づいて、前記ロボットの全身における逆運動学演算を行い、前記ロボットの各関節角度を算出する、ことを特徴とする動作データ生成システム。
【請求項４】
請求項１又は２記載の動作データ生成システムであって、
前記第１逆運動学演算手段は、前記ロボットの全身における逆運動学演算を行い、安定化前の前記ロボットの重心の角運動量軌道を算出し、
前記目標重心軌道算出手段は、前記目標ＺＭＰ算出手段により算出された目標ＺＭＰ軌道と、前記第１逆運動学演算手段により算出された前記角運動量軌道と、に基づいて、目標重心軌道を算出し、
前記第２逆運動学演算手段は、前記目標重心軌道算出手段により算出された前記目標重心軌道に基づいて、前記ロボットの全身における逆運動学演算を行い、前記ロボットの各関節角度を算出する、ことを特徴とする動作データ生成システム。
【請求項５】
請求項１又は２記載の動作データ生成システムであって、
前記目標重心軌道算出手段は、前記目標ＺＭＰ算出手段により算出された目標ＺＭＰ軌道と、前記第１逆運動学演算手段により算出された前記重心軌道と、に基づいて、動的安定化後の前記ロボットの重心の角運動量軌道を算出し、該算出した動的安定化後のロボットの重心の角運動量軌道と、前記第１逆運動学演算手段により算出された動的安定化前のロボットの重心の角運動量軌道と、に基づいて、目標角運動量軌道を算出し、
前記第２逆運動学演算手段は、前記目標重心軌道算出手段により算出された前記目標重心軌道と、前記目標角運動量軌道と、に基づいて、前記ロボットの全身における逆運動学演算を行い、前記ロボットの各関節角度を算出する、ことを特徴とする動作データ生成システム。
【請求項６】
請求項５記載の動作データ生成システムであって、
前記目標重心軌道算出手段は、前記動的安定化後のロボットの重心の角運動量軌道に所定係数を乗算した結果と、前記動的安定化前のロボットの重心の角運動量軌道に（１−前記所定係数）を乗算した結果と、を加算して前記目標角運動量軌道を算出しており、
前記所定係数を調整することで、前記目標ＺＭＰ軌道に対する目標追従性を調整する、ことを特徴とする、動作データ生成システム。
【請求項７】
請求項１乃至６のうちいずれか１項記載の動作データ生成システムであって、
前記ロボットの各部位には、拘束条件を満たすための優先度が夫々設定されており、
前記第１及び第２逆運動学演算手段は、前記設定された優先度に基づいて、前記逆運動学演算を行う、ことを特徴とする動作データ生成システム。
【請求項８】
請求項１乃至７のうちいずれか１項記載の動作データ生成システムであって、
前記動作データ取得手段により取得された前記動作データに基づいて、前記ロボットの各リンクの長さと対応する被験者の部位の長さとの比を求め、前記各リンクの倍率を決定するスケーリング手段を更に備える、ことを特徴とする動作データ生成システム。
【請求項９】
請求項１乃至８のうちいずれか１項記載の動作データ生成システムであって、
前記動作データ取得手段により取得された前記動作データに基づいて、前記ロボットの足先の位置姿勢を補正する補正手段を更に備える、ことを特徴とする動作データ生成システム。
【請求項１０】
被験者の動作に基づいてロボットの動作データを生成する動作データ生成方法であって、
被験者の動作から動作データを取得するステップと、
前記取得された動作データに基づいて、前記ロボットにおける逆運動学演算を行い前記ロボットの各関節角度を算出し、該算出した各関節角度に基づいて、前記ロボットのＺＭＰ軌道を算出するステップと、
前記算出されたＺＭＰ軌道に基づいて、前記ロボットの動作を安定化させるための目標ＺＭＰ軌道を算出するステップと、
前記算出されたＺＭＰ軌道と、前記算出された目標ＺＭＰ軌道と、に基づいて、目標重心軌道を算出するステップと、
前記算出された目標重心軌道に基づいて、前記ロボットにおける逆運動学演算を行い、前記ロボットの各関節角度を算出するステップと、
を含む、ことを特徴とする動作データ生成方法。
【請求項１１】
被験者の動作に基づいてロボットの動作データを生成するプログラムであって、
被験者の動作から取得された動作データに基づいて、前記ロボットにおける逆運動学演算を行い前記ロボットの各関節角度を算出し、該算出した各関節角度に基づいて、前記ロボットのＺＭＰ軌道を算出する処理と、
前記算出されたＺＭＰ軌道に基づいて、前記ロボットの動作を安定化させるための目標ＺＭＰ軌道を算出する処理と、
前記算出されたＺＭＰ軌道と、前記算出された目標ＺＭＰ軌道と、に基づいて、目標重心軌道を算出する処理と、
前記算出された目標重心軌道に基づいて、前記ロボットにおける逆運動学演算を行い、前記ロボットの各関節角度を算出する処理と、
をコンピュータに実行させる、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションキャプチャ装置により取得された被験者の動作データに基づいて、ロボットの動作データを生成する動作データ生成システム、及び動作データ生成方法に関するものである。
【背景技術】
【０００２】
近年、人間の動作から取得した動作データを用いて人型ロボットを動作させるための動作データを作成する技術開発が行われている。例えば、モーションキャプチャ装置により取得された被験者の動作データから人型ロボットの動作データを生成する際に、関節の物理制限を考慮して、人型ロボットが動作可能な動作データを生成する動作データ生成システムが知られている（特許文献１参照）。
【０００３】
ここで、人間との共存を目的としたパートナーロボット若しくは案内ロボットなどのように、人近傍で動作することを目的とした人型ロボットに関して、人親和性の高い動作は人との共感を得易いだけでなく、情報伝達の観点からも重要となっている。また、人親和性の高い動作ができるだけでなく、歩行の動的安定性も人とロボットが安全に共存するために必須となっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−０３６７６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に示す動作データ生成システムにおいては、被験者の自然な動作を反映することを考慮して動作データを生成していないため、人型ロボットの動的安定化は図られているが、一方で不自然な動作データとなっている。
【０００６】
本発明は、このような問題点を解決するためになされたものであり、人型ロボットの動的安定化を図りつつ、被験者の自然な動作を反映した動作データを生成できる動作データ生成システム、及び動作データ生成方法を提供することを主たる目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するための本発明の一態様は、被験者の動作に基づいてロボットの動作データを生成する動作データ生成システムであって、被験者の動作から動作データを取得する動作データ取得手段と、前記動作データ取得手段により取得された前記動作データに基づいて、前記ロボットにおける逆運動学演算を行い前記ロボットの各関節角度を算出し、該算出した各関節角度に基づいて、前記ロボットのＺＭＰ軌道を算出する第１逆運動学演算手段と、前記第１逆運動学演算手段により算出された前記ＺＭＰ軌道に基づいて、前記ロボットの動作を安定化させるための目標ＺＭＰ軌道を算出する目標ＺＭＰ算出手段と、前記第１逆運動学演算手段により算出された前記ＺＭＰ軌道と、前記目標ＺＭＰ算出手段により算出された目標ＺＭＰ軌道と、に基づいて、目標重心軌道を算出する目標重心軌道算出手段と、前記目標重心軌道算出手段により算出された前記目標重心軌道に基づいて、前記ロボットにおける逆運動学演算を行い、前記ロボットの各関節角度を算出する第２逆運動学演算手段と、を備えることを特徴とする動作データ生成システムである。本態様によれば、人型ロボットの動的安定化を図りつつ、被験者の自然な動作を反映した動作データを生成できる。
【０００８】
この一態様において、前記第２逆運動学演算手段は、前記逆運動学演算において、前記第１逆運動学演算手段により算出された各関節角度列に対して、拘束条件を満たすための優先度を低く設定してもよい。これにより、動的安定化を図りつつ、動作データ取得手段により取得された動作データにより近い、自然な人型ロボットの動作データを算出することができる。
【０００９】
この一態様において、前記第１逆運動学演算手段は、前記ロボットの全身における逆運動学演算を行い、安定化前の前記ロボットの重心軌道を算出し、前記目標重心軌道算出手段は、前記目標ＺＭＰ算出手段により算出された目標ＺＭＰ軌道と、前記第１逆運動学演算手段により算出された前記重心軌道と、に基づいて、重心の目標角運動量軌道を算出し、前記第２逆運動学演算手段は、前記目標重心軌道算出手段により算出された前記目標重心軌道と、前記目標角運動量軌道と、に基づいて、前記ロボットの全身における逆運動学演算を行い、前記ロボットの各関節角度を算出してもよい。これにより、実際のＺＭＰ軌道と目標ＺＭＰ軌道との誤差をより低減でき、より動的安定で自然な動作に近い人型ロボットの動作データを生成できる。
【００１０】
この一態様において、前記第１逆運動学演算手段は、前記ロボットの全身における逆運動学演算を行い、安定化前の前記ロボットの重心の角運動量軌道を算出し、前記目標重心軌道算出手段は、前記目標ＺＭＰ算出手段により算出された目標ＺＭＰ軌道と、前記第１逆運動学演算手段により算出された前記角運動量軌道と、に基づいて、目標重心軌道を算出し、前記第２逆運動学演算手段は、前記目標重心軌道算出手段により算出された前記目標重心軌道に基づいて、前記ロボットの全身における逆運動学演算を行い、前記ロボットの各関節角度を算出してもよい。これにより、動的安定化前の重心の角運動量軌道の特徴を含む動作データを生成することができるため、より動的安定で自然な動作に近い人型ロボットの動作データを生成できる。
【００１１】
この一態様において、前記目標重心軌道算出手段は、前記目標ＺＭＰ算出手段により算出された目標ＺＭＰ軌道と、前記第１逆運動学演算手段により算出された前記重心軌道と、に基づいて、動的安定化後の前記ロボットの重心の角運動量軌道を算出し、該算出した動的安定化後のロボットの重心の角運動量軌道と、前記第１逆運動学演算手段により算出された動的安定化前のロボットの重心の角運動量軌道と、に基づいて、目標角運動量軌道を算出し、前記第２逆運動学演算手段は、前記目標重心軌道算出手段により算出された前記目標重心軌道と、前記目標角運動量軌道と、に基づいて、前記ロボットの全身における逆運動学演算を行い、前記ロボットの各関節角度を算出してもよい。これにより、動的安定化を図りつつ、より自然な姿勢の人型ロボットの動作データを生成することができる。
【００１２】
この一態様において、前記目標重心軌道算出手段は、前記動的安定化後のロボットの重心の角運動量軌道に所定係数を乗算した結果と、前記動的安定化前のロボットの重心の角運動量軌道に（１−前記所定係数）を乗算した結果と、を加算して前記目標角運動量軌道を算出しており、前記所定係数を調整することで、前記目標ＺＭＰ軌道に対する目標追従性を調整してもよい。
【００１３】
この一態様において、前記ロボットの各部位には、拘束条件を満たすための優先度が夫々設定されており、前記第１及び第２逆運動学演算手段は、前記設定された優先度に基づいて、前記逆運動学演算を行ってもよい。
【００１４】
この一態様において、前記動作データ取得手段により取得された前記動作データに基づいて、前記ロボットの各リンクの長さと対応する被験者の部位の長さとの比を求め、前記各リンクの倍率を決定するスケーリング手段を更に備えていてもよい。
この一態様において、前記動作データ取得手段により取得された前記動作データに基づいて、前記ロボットの足先の位置姿勢を補正する補正手段を更に備えていてもよい。
【００１５】
他方、上記目的を達成するための本発明の一態様は、被験者の動作に基づいてロボットの動作データを生成する動作データ生成方法であって、被験者の動作から動作データを取得するステップと、前記取得された動作データに基づいて、前記ロボットにおける逆運動学演算を行い前記ロボットの各関節角度を算出し、該算出した各関節角度に基づいて、前記ロボットのＺＭＰ軌道を算出するステップと、前記算出されたＺＭＰ軌道に基づいて、前記ロボットの動作を安定化させるための目標ＺＭＰ軌道を算出するステップと、前記算出されたＺＭＰ軌道と、前記算出された目標ＺＭＰ軌道と、に基づいて、目標重心軌道を算出するステップと、前記算出された目標重心軌道に基づいて、前記ロボットにおける逆運動学演算を行い、前記ロボットの各関節角度を算出するステップと、を含む、ことを特徴とする動作データ生成方法であってもよい。
【００１６】
また、上記目的を達成するための本発明の一態様は、被験者の動作に基づいてロボットの動作データを生成するプログラムであって、被験者の動作から取得された動作データに基づいて、前記ロボットにおける逆運動学演算を行い前記ロボットの各関節角度を算出し、該算出した各関節角度に基づいて、前記ロボットのＺＭＰ軌道を算出する処理と、前記算出されたＺＭＰ軌道に基づいて、前記ロボットの動作を安定化させるための目標ＺＭＰ軌道を算出する処理と、前記算出されたＺＭＰ軌道と、前記算出された目標ＺＭＰ軌道と、に基づいて、目標重心軌道を算出する処理と、前記算出された目標重心軌道に基づいて、前記ロボットにおける逆運動学演算を行い、前記ロボットの各関節角度を算出する処理と、をコンピュータに実行させる、ことを特徴とするプログラムであってもよい。
【発明の効果】
【００１７】
本発明によれば、人型ロボットの動的安定化を図りつつ、被験者の自然な動作を反映した動作データを生成できる動作データ生成システム、及び動作データ生成方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態１に係る動作データ生成システムの概略的なシステム構成を示すブロック図である。
【図２】本発明の実施の形態１に係る動作データ生成システムの演算装置の概略的なシステム構成を示すブロック図である。
【図３】（ａ）被験者に取付けられたマーカーの位置を示す図である。（ｂ）各マーカー位置を小型の人型ロボット用にリターゲッティング処理した状態を示す図である。（ｃ）各マーカー位置を足長の人型ロボット用にリターゲッティング処理した状態を示す図である。
【図４】（ａ）補正処理前の足先の状態を示す図である。（ｂ）補正処理後の足先の状態を示す図である。
【図５】従来の目標ＺＭＰ軌道の一例を示す図である。
【図６】従来の目標ＺＭＰ軌道の一例を示す図である。
【図７】（ａ）動的安定化前の不秩序なＺＭＰ軌道の一例を示す図である。（ｂ）動的安定化のための目標ＺＭＰ軌道の一例を示す図である。
【図８】（ａ）従来のＺＭＰ補償前の重心軌道の一例を示す図である。（ｂ）従来のＺＭＰ補償後の重心軌道の一例を示す図である。
【図９】（ａ）本発明の実施の形態１に係る動的安定化前の重心軌道の一例を示す図である。（ｂ）本発明の実施の形態１に係る動的安定化後の目標重心軌道の一例を示す図である。
【図１０】動的安定化前の動作データによるＺＭＰ軌道の一例を示す図である。
【図１１】優先度を設定した動作データによるＺＭＰ軌道の一例を示す図である。
【図１２】本発明の実施の形態１に係る動作データ生成システムによる動作データ生成方法のフローの一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
実施の形態１．
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の実施の形態１に係る動作データ生成システムの概略的なシステム構成を示すブロック図である。本実施の形態１に係る動作データ生成システム１０は、被験者の動作からその動作データを取得するモーションキャプチャ装置１と、モーションキャプチャ装置１により取得された動作データに基づいて、二足歩行ロボットなどの人型ロボット（ヒューマノイドロボット）の動作データを生成する演算装置２と、を備えている。動作データ生成システム１０は、被験者の動作により近い、自然な人型ロボットの動作データを生成することができる。
【００２０】
モーションキャプチャ装置１は、動作データ取得手段の一具体例であり、複数のマーカー１１と、各マーカー１１の位置を検出するトラッカー１２と、複数の足裏接触センサ１３と、トラッカー１２で検出された各マーカー１１の動作及び足裏接触センサ１３の出力信号（床反力情報など）を処理する処理部１４と、を有している。
【００２１】
各マーカー１１は、被験者の動作を測定（キャプチャ）する着目部位（例えば、肘、肩、腰、頭、足先、手先など）に、夫々取付けられる（図３（ａ））。トラッカー１２は、所定の周期で各マーカー１１の位置を検出し、トラッカー１２で検出された各マーカー１１の位置は処理部１４に入力される。このようにして、被験者の着目部位の動作データが取得される。処理部１４は、検出されたマーカー１１の位置データに対して所定処理を行い演算装置２に対して、その処理した動作データ（モーションキャプチャデータ）を出力する。
【００２２】
演算装置２は、モーションキャプチャ装置１により取得された被験者の動作データに基づいて、その被験者の動作により近い、自然な人型ロボットの動作データを生成する。図２は、本実施の形態１に係る動作データ生成システム１０の演算装置２の概略的なシステム構成を示すブロック図である。本実施の形態１に係る演算装置２は、スケーリング部２１と、データ補正部２２と、第１逆運動学演算部２３と、目標ＺＭＰ（Zero Moment Point）算出部２４と、目標重心軌道算出部２５と、第２逆運動学演算部２６と、を有している。
【００２３】
なお、演算装置２は、例えば、演算処理等と行うＣＰＵ（Central Processing Unit）２ａと、ＣＰＵ２ａによって実行される演算プログラム等が記憶されたＲＯＭ（Read Only Memory）２ｂと、処理データ等を一時的に記憶するＲＡＭ（Random Access Memory）２ｃと、を有するマイクロコンピュータを中心にして、ハードウェア構成されている。また、これらＣＰＵ２ａ、ＲＯＭ２ｂ、及びＲＡＭ２ｃは、データバス２ｄによって相互に接続されている。
【００２４】
スケーリング部２１は、スケーリング手段の一具体例であり、被験者の動作データを、実際に動作させる人型ロボットに適応させるために、モーションキャプチャ装置１からの動作データに対して、周知のリターゲッティング処理を行う。モーションキャプチャ装置１により取得された動作データは、被験者の各部位の長さに基づいた動作となっており、着目部位の情報（例えば、動作データとして利用したい手先や足先の位置姿勢や任意関節の角度など）を、その状態まま人型ロボットに適用することができない為に、このリターゲッティング処理を行う。
【００２５】
スケーリング部２１は、例えば、適用する人型ロボットの各リンク長と、被験者の対応する部位の長さと、の比から人型ロボットの各リンクの倍率を夫々決定して、リターゲッティング処理を行う。
【００２６】
例えば、図３（ａ）に示すように取付けられた各マーカー１１の位置（着目部位の位置）をリターゲッティング処理すると、小型の人型ロボットの場合は図３（ｂ）のようになり、足長の人型ロボットの場合は図３（ｃ）のようになる。
【００２７】
データ補正部２２は、補正手段の一具体例であり、スケーリング部２１によりリターゲッティング処理された動作データに対して、足先の接地状態などの補正処理を行う。
【００２８】
これは、モーションキャプチャ装置１により取得された動作データをスケーリングしただけでは、その動作計測時の精度によって、例えば、路面に接地しているはずの足先が平らに接地していない状態や、足先が地面にめり込んだ姿勢となっている状態が含まれることとなり（図４（ａ））、その状態まま、その動作データを人型ロボットに適用すると動作時に不安定な状態となる。そこで、データ補正部２２は、例えば、図４（ｂ）に示すように、足先が接地時には地面と平行でめり込みがないような軌道に足先の接触部位における位置姿勢の補正を、周知手法を用いて行う。
【００２９】
第１逆運動学演算部２３は、第１逆運動学演算手段の一具体例であり、モーションキャプチャ装置１により取得され、上記リターゲッティング処理及び補正処理された動作データに基づいて、人型ロボットの全身における逆運動学演算を行い人型ロボットの各関節角度列（各関節角度の時系列データ）を算出し、その算出した各関節角度列に基づいて、動的安定化前の人型ロボットのＺＭＰ軌道、重心軌道、重心の角運動量軌道などを算出する。
【００３０】
第１逆運動学演算部２３は、例えば、被験者の着目部位の位置姿勢（足先、手先、腰の位置姿勢、任意関節角度など）を満たすように、人型ロボットの全身における逆運動学演算を行い、各関節角度を算出する。
【００３１】
第１逆運動学演算部２３は、例えば、以下のように疑似逆行列を用いて逆運動学演算を行う。ここで、θを実際に算出する人型ロボットの各関節角度のベクトルとし、ｖを着目部位の位置姿勢とし、Ｊをヤコビ行列とすると、下記（１）式が得られる。
【数１】
2012223864.tif 000003
【００３２】
冗長自由度を有する人型ロボットの場合、ｖの次元はθよりも小さいため、θの微分値は無限個の解を有することとなる。θの微分値の二乗ノルムが最小となる解は、下記（２）式を用いて得ることができる。
【数２】
2012223864.tif 000004
【００３３】
また、Ｊの疑似逆行列をＪ＋とすると、下記（３）式を得ることができる。
Ｊ＋＝（ＪＴＪ）−１ＪＴ    （３）式
【００３４】
ここで、複数のタスクがある場合（優先度ｇ＞ｆとする）、下記式（４）が成立する。なお、本明細書において「タスク」とは、動作データを作成する際に制御したい対象を意味し、例えば、動作を制御する対象となっている人型ロボットの着目部位に設定されるものと、関節角度、関節角速度及び関節角加速度の制限条件を設定するものとがある。また、優先度が高くなるとそのタスクの拘束条件がより厳しくなる。さらに、タスクが増加しても同様に演算することができる。
【数３】
2012223864.tif 000005
【００３５】
また、第１逆運動学演算部２３は、例えば、凸２次計画法、線形計画法などの最適化問題の解法を用いて逆運動学演算を行ってもよい。第１逆運動学演算部２３は、上記周知の解法を用いて、設定した任意の着目部位の位置姿勢などの各種拘束条件を極力満たす最適な解（例えば、人型ロボットの各関節角度列）を算出できる。
【００３６】
さらに、第１逆運動学演算部２３は、上記演算において、例えば、各タスクに対して優先度を夫々設定し、優先度の高い着目部位に対する拘束条件は必ず満たしつつ、可能な限り優先度の低い着目部位に対する拘束条件も満たすように逆運動学演算を行ってもよい。一般的に、歩行ロボットの場合、足先の位置姿勢の優先度は高く設定され、手先など作業に関連しない着目部位の優先度は低く設定されている。
【００３７】
なお、上記疑似逆行列を用いた手法は、人型ロボットの自由度までしかタスクを設定できないが、上記最適化問題の手法は、人型ロボットの自由度を超えてもタスクを設定することができる。例えば、優先度の低い着目部位に複数のタスクを指定すれば、夫々がある程度満たされるレベルで解を得ることができる。また、上記説明した逆運動学演算の方法は一例であり、これに限らず、周知の演算方法を適用可能である。
【００３８】
第１逆運動学演算部２３は、上述の如く、逆運動学演算を行うことで、モーションキャプチャ装置１により取得された動作データに極力基づいた各関節角度列を算出することができる。
【００３９】
また、第１逆運動学演算部２３は、上述の如く算出した各関節角度列に基づいて、動的安定化前における人型ロボットのＺＭＰ軌道、重心軌道、及び重心の角運動量軌道を夫々算出する。さらに、第１逆運動学演算部２３は、上記軌道に加えて、後の動的安定化時に、自然な動作に近づけるために必要となる、各関節角度の軌道を算出する。
【００４０】
ここで、想定する実際の人型ロボットにおいて、各リンクｉの質点及び慣性テンソルＩｉを定義する。第１逆運動学演算部２３は、上記算出した関節角度列に基づいて、人型ロボットの重心軌道Ｍ、重心の角運動量軌道Ｌを、下記（５）式及び（６）式を用いて夫々算出する。さらに、第１逆運動学演算部２３は、上記算出した重心軌道Ｍ及び角運動量軌道Ｌに基づいて、下記（７）式（ＺＭＰ方程式）を用いて、ＺＭＰ軌道（ＺＭＰｘ、ＺＭＰｙ）を算出する。
【数４】
2012223864.tif 000006
【００４１】
目標ＺＭＰ算出部２４は、目標ＺＭＰ算出手段の一具体例であり、第１逆運動学演算部２３により算出されたＺＭＰ軌道に基づいて、人型ロボットの動作を安定化させるための目標ＺＭＰ軌道を算出する。
【００４２】
ここで、二足歩行ロボットの人型ロボットを動的安定に歩行させるためには、例えば、支持多角形の中にＺＭＰが収まるように、人型ロボットの動作を制御する必要がある。すなわち、ＺＭＰが立脚の範囲内にあるＺＭＰ安定規範となる必要がある。目標ＺＭＰ算出部２４は、ＺＭＰ安定規範に基づき歩行安定化を行うように、目標ＺＭＰ軌道を算出する。
【００４３】
従来技術においては、例えば、上記接地状態の補正処理を行った足先位置から支持多角形を求め、その支持多角形内にＺＭＰが収まるように、矩形的又は台形的など比較的簡易な形状を用いて動的安定化を行い、目標ＺＭＰ軌道を求めている（図５及び図６）。
【００４４】
一方、本実施の形態１に係る目標ＺＭＰ算出部２４は、例えば、動的安定化前の不秩序なＺＭＰ軌道（図７（ａ））も被験者からモーションキャプチャした歩行動作の特徴の１つと捉え、その動的安定化前のＺＭＰ軌道に基づいて、ＺＭＰ軌道を安定範囲（支持多角形）内に収まるように整形して、目標ＺＭＰ軌道を算出する（図７（ｂ））。これにより、動的安定化を図りつつ、より自然な動作データを生成できる。
【００４５】
目標重心軌道算出部２５は、目標重心軌道算出手段の一具体例であり、第１逆運動学演算部２３により算出されたＺＭＰ軌道と、目標ＺＭＰ算出部２４により算出された目標ＺＭＰ軌道と、に基づいて、目標重心軌道を算出する。
【００４６】
ここで、従来のＺＭＰを安定化させた重心軌道の算出方法においては、例えば、簡易な重心軌道を求め（図８（ａ））、三項方程式を用いてＺＭＰ補償計算を行い、重心軌道を求めている（図８（ｂ））。
【００４７】
一方、本実施の形態１に係る目標重心軌道算出部２５は、動的安定化前の重心軌道（図９（ａ））を仮の重心軌道として採用し、三項方程式を用いてＺＭＰ補償計算を行うことで、動的安定化を図りつつ、モーションキャプチャ装置１により取得された動作データの動作特徴を含む目標重心軌道を算出することができる（図９（ｂ））。
【００４８】
具体的には、まず、重心軌道ｐを下記（８）式のように離散化して考える。
【数５】
2012223864.tif 000007
【００４９】
上記（８）式を用いて、重心軌道ｐを下記（９）式のように表すことができる。ここで、下記（９）式において、Ｚｒｅｆは、上記算出した動的安定化後の目標ＺＭＰ軌道であり、Ｚｃａｌは、上記算出した動的安定化前のＺＭＰ軌道であり、ｇは重力加速度である。また、ｄｉは、動的安定化後の目標ＺＭＰ軌道と動的安定化前のＺＭＰ軌道との偏差軌道を表している。
【数６】
2012223864.tif 000008
【００５０】
目標重心軌道算出部２５は、上記（９）式（三項方程式）を用いて目標ＺＭＰ軌道を補償するための目標重心軌道ｐを算出する。なお、上記算出において重心の角運動量が考慮されていないため、算出された目標重心軌道に基づいて、後述の如く逆運動学演算を行うと、実際のＺＭＰ軌道と目標ＺＭＰ軌道との間に誤差（以下、ＺＭＰ誤差と称す）が生じる。
【００５１】
そこで、目標重心軌道算出部２５は、そのＺＭＰ誤差を補償する重心軌道をさらに上記（９）式を用いて算出し、前に算出した重心軌道に加算する。目標重心軌道算出部２５は、ＺＭＰ誤差が一定の範囲以内に収束するまでこの演算を繰返し（以下、誤差補償演算と称す）、最終的な目標重心軌道を算出する。これにより、上記ＺＭＰ誤差を減少させて目標重心軌道の精度を向上させることができる。なお、本算出方法は、例えば、特開２００９−６６６９７号公報に開示されており、これを援用することができる。
【００５２】
上述したように、本実施の形態１において、上記ｄｉの算出において、動的安定化前のＺＭＰ軌道に基づく重心軌道を用いるため、モーションキャプチャ装置１により取得された動作データの動作特徴を含む、動的安定な目標重心軌道を生成することができる。
【００５３】
ここで、上述の目標ＺＭＰ軌道を補償するための目標重心軌道の算出方法は一例であり、これに限らず、例えば、予見制御などを用いて目標重心軌道を算出してもよい。この場合でも、動的安定化前のＺＭＰ軌道を考慮して、元のモーションキャプチャ装置１により取得された動作データの特徴を反映した動作データを生成するこができる。
【００５４】
第２逆運動学演算部２６は、第２逆運動学演算手段の一具体例であり、目標重心軌道算出部２５により算出された目標重心軌道に基づいて、人型ロボットの全身における逆運動学演算を行い、人型ロボットの各関節角度列を算出する。
【００５５】
第２逆運動学演算部２６は、例えば、上記第１逆運動学演算部２３と同様に、疑似逆行列の手法に重心ヤコビアンを導入して、重心のタスクを考慮した逆運動学演算を行う、あるいは、最適化問題に重心のタスクを考慮した逆運動学演算を行う。これにより、動的安定な人型ロボットの各関節角度列（動作角度列）を算出することができる。なお、第１逆運動学演算部２３と第２逆運動学演算部２６とは、一体的に構成されていてもよい。
【００５６】
第２逆運動学演算部２６は、上述の如く、モーションキャプチャ装置１により取得された動作データに近い諸情報を用いて演算を行うことだけでも、モーションキャプチャ装置１の動作データの特徴をより反映した人型ロボットの動作データを算出できるが、さらに、上記第１逆運動学演算部２３により算出された各関節角度列の優先度を低く設定し、逆運動学演算を行うことで、動的安定化を図りつつ、モーションキャプチャ装置１の動作データにより近い、自然な人型ロボットの動作データを算出することができる。このとき、例えば、目標重心軌道を満たすこと、各足が路面に適切に着地していること、などが高い優先度のタスクとして設定されている。
【００５７】
例えば、上記優先度を設定することなく、第２逆運動学演算部２６により算出された動作データに基づいて動作させた人型ロボットは、動的安定化前の動作データに基づいて動作させた人型ロボットと比較して、上体姿勢がやや傾くこととなる。
一方、上記優先度を設定して、第２逆運動学演算部２６により算出された動作データに基づいて動作させた人型ロボットは、全体を通して、動的安定化前の人型ロボットと非常に近い自然な姿勢となっており、モーションキャプチャ装置１の動作データにより近い、人型ロボットの動作データを生成することが可能となる。
【００５８】
図１０は、動的安定化前の動作データにより動作させたときのＺＭＰ軌道の一例を示す図である。図１１は、上記優先度を設定して第２逆運動学演算部により算出された動作データにより動作させたときのＺＭＰ軌道の一例を示す図である。図１０では、目標ＺＭＰ軌道から実際のＺＭＰ軌道が大きく外れているのに対し、図１１では、目標ＺＭＰ軌道に実際のＺＭＰ軌道が追従できていることが分かる。
【００５９】
このように、上記第１逆運動学演算部２３により算出された各関節角度列の優先度を低く設定し、逆運動学演算を行うことで、動的安定で自然な動作に非常に近い各関節角度列を算出できる。そして、算出した各関節角度列に基づいて人型ロボットを動作させることにより、より自然な動作を人型ロボット上で再現することができる。
【００６０】
図１２は、本発明の実施の形態１に係る動作データ生成システムによる動作データ生成方法のフローの一例を示すフローチャートである。
モーションキャプチャ装置１は、被験者の着目部位の動作データを取得する（ステップＳ１０１）。
【００６１】
演算装置２のスケーリング部２１は、モーションキャプチャ装置１により取得された被験者の着目部位の動作データに基づいて、人型ロボットの各リンク長と、被験者の対応する部位の長さと、の比から人型ロボットの各リンクの倍率を夫々決定して、リターゲッティング処理を行う（ステップＳ１０２）。
【００６２】
データ補正部２２は、スケーリング部２１によりリターゲッティング処理された動作データに対して、足先の接地状態などの補正処理を行う（ステップＳ１０３）。
【００６３】
第１逆運動学演算部２３は、データ補正部２２により補正処理された動作データに基づいて、人型ロボットの全身における逆運動学演算を行い人型ロボットの各関節角度列を算出し、その算出した各関節角度列に基づいて、人型ロボットのＺＭＰ軌道を算出する（ステップＳ１０４）。
【００６４】
目標ＺＭＰ算出部２４は、第１逆運動学演算部２３により算出されたＺＭＰ軌道に基づいて、人型ロボットの動作を安定化させるための目標ＺＭＰ軌道を算出する（ステップＳ１０５）。
【００６５】
目標重心軌道算出部２５は、第１逆運動学演算部２３により算出されたＺＭＰ軌道と、目標ＺＭＰ算出部２４により算出された目標ＺＭＰ軌道と、に基づいて、目標重心軌道を算出する（ステップＳ１０６）。
【００６６】
第２逆運動学演算部２６は、目標重心軌道算出部２５により算出された目標重心軌道に基づいて、上記第１逆運動学演算部２３により算出された各関節角度列の優先度を低く設定し、人型ロボットの全身における逆運動学演算を行い、人型ロボットの各関節角度列を算出する（ステップＳ１０７）。
【００６７】
以上、本実施の形態１に係る動作データ生成システム１０によれば、人型ロボットの動的な安定化を図りつつ、被験者の自然な動作を反映した動作データを生成できる。
【００６８】
実施の形態２．
本発明の実施の形態２に係る動作データ生成システム１０において、目標重心軌道算出部２５は、上記誤差補償演算後に、目標重心軌道ｐを算出する際に生じる上記ＺＭＰ誤差をさらに除去する演算を行ってもよい。
【００６９】
まず、目標重心軌道算出部２５は、第１逆運動学演算部２３により算出された重心軌道と、目標ＺＭＰ算出部２４により算出された目標ＺＭＰ軌道と、を上記（７）式に代入して、重心の角運動量の微分値（トルク）（下記（１０）式）を算出する。次に、目標重心軌道算出部２５は、算出した重心の角運動量の微分値を積分して、重心の目標角運動量軌道を算出する。第２逆運動学演算部２６は、目標重心軌道算出部２５により算出された目標重心軌道及び重心の目標角運動量軌道に基づいて、人型ロボットの全身における逆運動学演算を行い、人型ロボットの各関節角度列を算出する。
【数７】
2012223864.tif 000009
【００７０】
これにより、上記ＺＭＰ誤差をより低減でき、より動的安定で自然な動作に非常に近い人型ロボットの動作データを生成できる。
【００７１】
実施の形態３．
本発明の実施の形態３に係る動作データ生成システム１０おいて、第２逆運動学演算部２６は、動的安定化前の重心の角運動量軌道を含む目標重心軌道に基づいて、人型ロボットの全身における逆運動学演算を行い、人型ロボットの各関節角度列を算出してもよい。
【００７２】
目標重心軌道算出部２５は、例えば、第１逆運動学演算部２３により算出された重心の角運動量軌道と、目標ＺＭＰ算出部２４により算出された目標ＺＭＰ軌道と、を上記（７）式に代入し、重心の差分方程式を算出し、上記三項方程式（（９）式）を用いて、重心の角運動量軌道を含む目標重心軌道を算出する。なお、上記演算において、上記（９）式のｄｉの代わりに下記（１１）式を用いる。
【数８】
2012223864.tif 000010
【００７３】
第２逆運動学演算部２６は、目標重心軌道算出部２５により算出された目標重心軌道に、重心の角運動量軌道のタスクに加えて、人型ロボットの全身における逆運動学演算を行い、人型ロボットの各関節角度列を算出する。
【００７４】
これにより、動的安定化前の重心の角運動量軌道の特徴を含む動作データを生成することができるため、より動的安定で自然な動作に非常に近い人型ロボットの動作データを生成できる。
【００７５】
実施の形態４．
上記実施の形態２及び３において、角運動量を用いて動的安定化を図った場合に、角運動量の微分値は重心周りのモーメントであることから、動的安定化を図る前の人型ロボットの姿勢自体に変更を加えてしまうこととなる。
【００７６】
そこで、本実施の形態４に係る動作データ生成システム１０は、動的安定化のために角運動量軌道を調整しつつ、一定の割合で動的安定化前の元の角運動量軌道に引き戻すような処理を行うことで、動的安定化を図りつつ、より自然な姿勢の人型ロボットの動作データを生成することができる。
【００７７】
具体的には、目標重心軌道算出部２５は、上記誤差補償演算後に、第１逆運動学演算部２３により上記（６）式を用いて算出された角運動量軌道Ｌ（ｎ）（動的安定化前の角運動量の時系列データ）と、上記（１０）式を用いて算出した動的安定化後の角運動量軌道（Ｌｎ（ｎ−１））＋ΔＬ）と、に基づいて、下記（１２）式を用いて、ＺＭＰ誤差を抑えるために修正を行った目標角運動量軌道Ｌｎを算出する。
Ｌｎ（ｎ）＝ｋ（Ｌｎ（ｎ−１））＋ΔＬ）＋（１−ｋ）Ｌ（ｎ）    （１２）式
【００７８】
なお、上記（１２）式において、ｋ（０≦ｋ≦１）は、例えば、ＺＭＰの目標追従性を向上させたい場合は大きく設定し、人型ロボットの自然な姿勢を重視する場合は小さく設定する。具体的には、人型ロボットの足裏が小さくＺＭＰの許容範囲が狭い場合には、ｋを大きく設定し、人型ロボットの動作の印象が重要な場合には、ｋを小さく設定するのが好ましい。
【００７９】
その後、第２逆運動学演算部２６は、上記実施の形態２と同様に、目標重心軌道算出部２５により算出された目標重心軌道及び目標角運動量軌道に基づいて、人型ロボットの全身における逆運動学演算を行い、人型ロボットの各関節角度列を算出する。
【００８０】
これにより、動的安定化を図りつつ、より自然な姿勢の人型ロボットの動作データを生成することができる。
【００８１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、例えば、図１５に示す処理を、ＣＰＵ２ａにコンピュータプログラムを実行させることにより実現することも可能である。
【００８２】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ）を含む。
【００８３】
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００８４】
１    モーションキャプチャ装置
２    演算装置
１０    動作データ生成システム
１１    マーカー
１２    トラッカー
１３    足裏接触センサ
１４    処理部
２１    スケーリング部
２２    データ補正部
２３    第１逆運動学演算部
２４    目標ＺＭＰ算出部
２５    目標重心軌道算出部
２６    第２逆運動学演算部
【図１】
2012223864.tif 000011
【図２】
2012223864.tif 000012
【図３】
2012223864.tif 000013
【図４】
2012223864.tif 000014
【図５】
2012223864.tif 000015
【図６】
2012223864.tif 000016
【図７】
2012223864.tif 000017
【図８】
2012223864.tif 000018
【図９】
2012223864.tif 000019
【図１０】
2012223864.tif 000020
【図１１】
2012223864.tif 000021
【図１２】
2012223864.tif 000022