(57)【特許請求の範囲】
【請求項１】
コンピュータが、先ず、人型リンク系の関節の目標関節加速度を、運動学的な拘束条件のみから計算し、
前記コンピュータが、次いで、前記計算した目標関節加速度から逆動力学計算に基づき、その目標関節加速度を発生するのに必要な外力を計算し、
前記コンピュータが、次いで、前記計算した外力の、接触力としての妥当性の判定により、前記目標関節加速度が実現可能か否かを判定し、
実現可能であると判定したときは、前記コンピュータが、前記目標関節加速度をそのまま関節加速度とし、
実現不可能であると判定したときは、前記コンピュータが、接触力として妥当な外力を、
(1) 前記外力としての鉛直方向の力が引っ張る方向であった場合には、鉛直方向の力をゼロとする。
(2) 前記外力による圧力中心点が接触領域の凸包の外にあった場合には、接触領域の凸包のうち、計算された圧力中心点に最も近い点を新しい圧力中心点とする。
(3) 前記外力による摩擦力が最大静止摩擦力を超えていた場合には、最大静止摩擦力を新しい摩擦力とする。
という方法で求め、その妥当な外力が作用するとする動力学を考慮した新たな拘束条件を追加して、前記目標関節加速度の計算および前記逆動力学計算に基づく実現可能性の判定を再度行うことにより、
力学的に実現可能な運動を自動的に生成することを特徴とする、人型リンク系の運動生成方法。
【請求項２】
リンクに働く力とそれによる加速度との関係を表す操作空間逆慣性行列を用いて定式化された動力学的な拘束条件と、運動学的な拘束条件とを連立させて解くことにより、人型リンク系の関節の、力学的に実現可能な運動を生成することを特徴とする、人型リンク系の運動生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、人間と類似の構造を持ったリンク系（人型リンク系）の力学的に実現可能な運動を生成する方法に関するものであり、本発明の方法は、ヒューマノイド用運動生成ソフトウェアや、ヒューマノイド用実時間制御装置や、コンピュータグラフィックス用動作生成ソフトウェアに用いることができる。
【０００２】
【従来の技術】
コンピュータグラフィックス（ＣＧ）中の人型モデルやヒューマノイド（人型ロボット）は、２足歩行というきわめて不安定な運動形態を持つため、床等の環境から受ける接触力とそれ自身の関節が発生するトルクとにより実現可能な運動には制限がある。従って、ヒューマノイドにおいては、あらかじめ力学的に実現可能な運動を生成しておくことができれば、実機での制御が容易になる。また、ＣＧアニメーションの分野においては、物理的に自然な運動を自動生成することで、手軽に自然なアニメーションを生成することができる。
【０００３】
例えば、ヒューマノイドの運動生成において、その運動が理想的なモデルに対して力学的に実現できることを保証することができれば、制御が容易になるのでメリットが大きい。しかし、多くのヒューマノイドは多数の関節を持つので、扱う変数が多くなり、操作が複雑になる、計算量が多いため実時間処理が難しいなどの課題がある。
【０００４】
従来技術としては、運動を関数で表し力学的に実現可能になるようにパラメータを調整する方法（Q. Huang, K. Kaneko, K. Yokoi, S. Kajita, and T. Kotoku: "Balance Control of a Biped Robot Combining Off-line Pattern with Real-time Modification"（オフラインで生成された運動パターンと実時間のパターン修正による２足歩行ロボットのバランス制御）, Proceedings of International Conference on Robotics and Automation, pp.3346-3352, 2000. および、K. Nishiwaki, T. Sugihara, S. Kagami, M. Inaba, and H. Inoue: "Online Mixture and Connection of Basic Motions for Humanoid Walking Control by Footprint Specification"（基本歩行パターンを混合することにより、指定された着地点を通り、かつ力学的に実現可能な歩行運動を実時間で生成する方法）, Proceedings of IEEE International Conference on Robitics and Automation, pp.4110-4115, 2001.参照）や、モーションキャプチャデータをもとに力学的に実現可能な運動を生成する方法（K. Yamane and Y. Nakamura: "Dynamics Filter -Concept and Implementation of On-Line Motion Generator for Human Figures" ( 運動方程式を満たす運動の中から、モーションキャプチャされた運動にできるだけ近い運動を実時間で選ぶことにより、力学的に実現可能な運動を生成する方法）, Proceedings of IEEE International Conference on Robotics and Automation, pp.688-695, 2000.および、A. DasGupta and Y. Nakamura: "Making Feasible Walking Motion of Humanoid Robots from Human Motion Captured Data"（モーションキャプチャされた歩行運動にフーリエ級数で表された修正項を加えることにより、力学的に実現可能な運動を生成する方法）, Proceedings of International Conference on Robotics and Automation, pp.1044-1049, 1999.参照）などが提案されている。
【０００５】
しかしながら、これらの方法には以下の問題点がある。
（１）特定の種類の運動しか生成できない。
（２）運動が人工的になる。
（３）計算時間が長い。
（４）パラメータ調整が難しい。
（５）参照運動データが必要。
（６）インタラクティブ性がない。
【０００６】
また、本願発明者が先に特願２００１−２４２４３５号にて出願した関連発明「木構造リンク系のポーズ及び動作を生成する方法」では、参照運動データなしに運動を生成できるが、この方法では力学を全く考慮していないため、物理的にありえない運動を生成する可能性がある。
【０００７】
それゆえ本発明は、直感的で簡単なインタフェースからの入力をもとに、多自由度の人型モデルやヒューマノイド等の人型リンク系が実現可能な運動をインタラクティブ（双方向的）に生成することを目的としており、具体的には、操作者により与えられる、
（Ａ）リンクの絶対位置を固定する。
（Ｂ）関節値が設定された可動域を逸脱しない。
（Ｃ）関節値が設定された目標関節値にできるだけ近づく。
などの運動学的拘束を満たして、人型リンク系の指定された１個または複数のリンクが何らかのインタフェースにより与えられた軌道上を動き、かつ人型リンク系が力学的に実現可能な全身運動を実時間で生成できる方法を提供することを目的としている。ここで、力学的に実現可能とは、その運動が関節の駆動力と床等の環境から受ける接触力とにより実行できることをいう。
【０００８】
【課題を解決するための手段およびその作用・効果】
上記目的を有利に達成する本発明の人型リンク系の運動生成方法は、請求項１記載のものでは、コンピュータが、先ず、人型リンク系の関節の目標関節加速度を、運動学的な拘束条件のみから計算し、前記コンピュータが、次いで、前記計算した目標関節加速度から逆動力学計算に基づき、その目標関節加速度を発生するのに必要な外力を計算し、前記コンピュータが、次いで、前記計算した外力の、接触力としての妥当性の判定により、前記目標関節加速度が実現可能か否かを判定し、実現可能であると判定したときは、前記コンピュータが、前記目標関節加速度をそのまま関節加速度とし、実現不可能であると判定したときは、前記コンピュータが、接触力として妥当な外力を、
(1) 前記外力としての鉛直方向の力が引っ張る方向であった場合には、鉛直方向の力をゼロとする。
(2) 前記外力による圧力中心点が接触領域の凸包の外にあった場合には、接触領域の凸包のうち、計算された圧力中心点に最も近い点を新しい圧力中心点とする。
(3) 前記外力による摩擦力が最大静止摩擦力を超えていた場合には、最大静止摩擦力を新しい摩擦力とする。
という方法で求め、その妥当な外力が作用するとする動力学を考慮した新たな拘束条件を追加して、前記目標関節加速度の計算および前記逆動力学計算に基づく実現可能性の判定を再度行うことにより、力学的に実現可能な運動を自動的に生成することを特徴としている。
【０００９】
また、請求項２記載のものでは、リンクに働く力とそれによる加速度との関係を表す操作空間逆慣性行列を用いて定式化された動力学的な拘束条件と、運動学的な拘束条件とを連立させて解くことにより、人型リンク系の関節の、力学的に実現可能な運動を生成することを特徴としている。
【００１０】
すなわち本発明は、運動学的な拘束条件と１個または複数個のリンクの軌道とを逐次入力すると、人間と類似の関節構成を持ったリンク系が実現可能な運動を実時間で出力する運動生成エンジンをもたらすものであり、本発明の方法を実行する運動生成エンジンを用いてヒューマノイドの運動生成システムを構築する場合の構成例を図１に示す。このシステムは、コンピュータで構成される上記運動生成エンジンの他、固定するリンク（環境に固定された物体をつかんでいるために動かせない等）、関節可動域および、関節目標値を設定するインタフェースを具え、ジョイスティック等により特定のリンクの軌道を指定することができる。それらの情報は運動生成エンジンに入力され、生成された運動がロボットに与えられる。一方、ロボットに付けられたセンサにより読み取られる現在の状態は、運動生成エンジンに返されて、次ステップの運動生成に利用される。
【００１１】
上記運動生成エンジンは、以下の２つのうちいずれかの方法を使い、外部から与えられた運動学的な拘束と、モデルの質量特性から与えられる動力学的な拘束とを同時に満たす運動を生成する。
（ａ）運動力学計算に基づく方法：一旦運動学的拘束により理想的な運動を計算し、それが力学的に実現可能であるかどうかを、逆動力学計算により得られる接触力によって判定する。実現不可能な場合は、実現可能になるように運動を修正する。
（ｂ）操作空間逆慣性行列による方法：リンク系中の任意のリンクに働く力とそれにより発生する加速度との関係を表す操作空間逆慣性行列により、リンク間に働く力の影響を含む拘束条件を導出し、それと運動学的な拘束条件とを同時に解いて運動を計算する。
【００１２】
かかる方法および運動生成システムによれば、前述した関連発明「木構造リンク系のポーズ及び動作を生成する方法」と同様、直感的に理解しやすい運動学的な拘束を与えるだけで、力学的に実現可能な運動を生成するので、単純なインタフェースでインタラクティブに人型リンク系の全身の運動を得ることができる。また、動力学計算を高速に行うアルゴリズムを使うので、実時間に近い速度で人型リンク系の動作を生成することができる。
【００１３】
【発明の実施の形態】
以下に、本発明の実施の形態を、図面に基づき詳細に説明する。先ず、本発明の人型リンク系の運動生成方法で使用するインタフェースの基礎となっている前述した関連発明「木構造リンク系のポーズ及び動作を生成する方法」の概要を示す。この方法では、図２に示すように、人型リンク系のいくつかのリンク（図ではリンクａ，ｂ，ｃ）を空間中に固定しながら、別のリンク（図ではリンクｄ）の軌道を指示すると、固定リンクの拘束を満たしながら指示された軌道上を動くような全身運動を生成する。リンクの位置だけでなく、関節可動域や関節目標値の拘束を与えることも可能である。しかし、この方法では運動学的な拘束条件しか考慮していないため、力学的に不自然な運動を生成してしまう場合がある。
【００１４】
本発明では、上記の関連発明で用いた運動学的な拘束に加えて、リンクの質量および慣性モーメント、関節トルク、接触力などを考慮した動力学的な拘束も同時に考慮することにより、力学的に実現可能な運動を生成する。動力学的な拘束条件を計算する方法としては次の２種煩がある。
〔Ａ〕逆動力学計算に基づく方法
〔Ｂ〕操作空間逆慣性行列による方法
以下に、それぞれの詳細を示す。
【００１５】
〔Ａ〕逆動力学計算に基づく方法
この方法では、時間のかかる順動力学計算を避け、比較的高速な逆動力学計算を行うことにより、高速な計算を実現する。手順は以下の通りである。
（ａ）運動学的な拘束条件を満たすために必要な目標関節加速度を計算する。すなわち、上記の関連発明の運動学的な拘束条件のみを考慮する方法と同様に、現在の状態と拘束条件との差から、拘束条件を満たすために各関節が発生すべき関節加速度を計算する。
（ｂ）逆動力学計算を行い、上記（ａ）で計算された目標関節速度を発生するのに必要な床等から受ける外力を計算する。すなわち、ニュートン・オイラー法などの逆動力学計算法を用いて、目標関節速度を発生するのに必要な外力を計算する。
【００１６】
（ｃ）上記（ｂ）で計算された外力が接触力として妥当かどうかを調べる。妥当性判定の基準となるのは以下の３つの点である。
(1) 鉛直方向の力が反発力になっているか。接触力は、リンクを床に引っ張る方向に働くことはできないからである。
(2) 圧力中心点が接触領域の凸包内か。図３に示すように、床に対する両足Ｆの足の裏の接触領域の凸包Ｒに圧力中心点Ｐが含まれている必要があるからである。
(3) 摩擦力が最大静止摩擦力以下か（滑っていないとき）。滑りがない状態を維持するためには、摩擦力が、垂直反力に静止摩擦係数を乗じて得られる最大静止摩擦力以下である必要があるからである。
（ｄ）上記（ｃ）で妥当と判定された場合は、目標関節加速度をそのまま関節加速度とする。
（ｅ）上記（ｃ）で妥当でないと判定された場合は、その外力に最も近くかつ妥当な外力を求め、外力がその修正された値になることを新たな拘束条件として追加して、上記手順（ａ）をもう一度行う。そして新しい拘束条件のもとで計算された目標関節加速度を関節加速度とする。
【００１７】
外力の修正は以下のようにして行う。
(1) 鉛直方向の力が引っ張る方向であった場合には、鉛直方向の力をゼロとする。
(2) 圧力中心点が接触領域の凸包の外にあった場合には、接触領域の凸包のうち、計算された圧力中心点に最も近い点を新しい圧力中心点とする。
(3) 摩擦力が最大静止摩擦力を超えていた場合には、最大静止摩擦力を新しい摩擦力とする。
【００１８】
また修正された外力を
【外１】
0003790816.tif 000002
とすると、関節加速度
【外２】
0003790816.tif 000003
が満たすべき拘束条件は次式のようになる。
【００１９】
【数１】
0003790816.tif 000004
【００２０】
ここで、上記Ｍb 、ｃb 、Ｊcbはそれぞれ、人型リンク系の慣性行列、速度・重力項、接触点の座標変換行列のうちロボットの腰関節に対応する成分を示し、Ｍb 、ｃb は、逆動力学計算を繰り返し行うことにより高速に計算することができる。
【００２１】
（ｆ）上記（ｄ）または（ｅ）で得られた関節加速度を積分して、関節角度および関節速度を得る。
【００２２】
〔Ｂ〕操作空間逆慣性行列による方法
この方法では、人型リンク系の注目するリンクに働く力とその運動の関係を表す操作空間逆慣性行列を利用する。この行列は、本願発明者が先に特願２００１−２２８８０４号にて出願した関連発明「リンク系動力学高速計算法」を用いることで高速に計算することができる。手順は以下の通りである。
（ａ）操作空間逆慣性行列を計算する。
操作空間逆慣性行列とは、図４に示す如き接触力とその結果として発生するリンク加速度との関係を表す行列である。
【００２３】
すなわち、位置が拘束されているリンクｉの操作空間逆慣性行列を
【外３】
0003790816.tif 000005
とすると、接触を考慮する前の加速度
【外４】
0003790816.tif 000006
と、接触を考慮した後の加速度
【外５】
0003790816.tif 000007
と、接触力ｆc との間には、以下の関係が成り立つ。
【００２４】
【数２】
0003790816.tif 000008
【００２５】
この行列は、上記の関連発明「リンク系動力学高速計算法」の方法を用いることで高速に計算することができる。
【００２６】
（ｂ）関節加進度と、接触を考慮しないときの拘束点の加速度との関係を表す行列を計算する。
上記（ａ）で用いる〔外４〕は関節の運動による慣性力で変化する。ここで用いる行列Φi は、これを〔外４〕と関節加速度〔外２〕との関係として以下のように表現する。
【００２７】
【数３】
0003790816.tif 000009
【００２８】
ここで、φi は関節加速度がゼロのときのリンクｉの加速度を表す。
【００２９】
（ｃ）接触点にバネとダンパがあるものとして床等からの接触力を計算する。
接触点ｍでのもぐりこみ深さがｄm 、その速度がｕm のとき、接触力ｆm は以下のように計算される。
【００３０】
【数４】
0003790816.tif 000010
【００３１】
ここで、ｋS 、ｋD はそれぞれバネ、ダンパの係数である。全ての接触点についてｆm の和をとると、全体の接触力ｆC が得られる。
【００３２】
（ｄ）上記（ａ）（ｂ）で計算された２つの行列および上記（ｃ）で計算された接触力を用いて、関節加速度と、軌道が与えられるリンクおよび絶対位置が拘束されているリンクの加速度との関係を表す式を導出する。
【００３３】
すなわち、（ａ）（ｂ）の式から〔外４〕を消去して整理すると、次式が得られる。
【００３４】
【数５】
0003790816.tif 000011
【００３５】
この式は、リンクの加速度〔外５〕と関節加速度〔外２〕との関係を与える。
【００３６】
位置が拘束されているリンクおよび軌道が与えられているリンクについては、それぞれのリンクを目標位置へ動かすための目標加速度
【外６】
0003790816.tif 000012
が計算されているので、〔外５〕を〔外６〕と置き換えた式が、動力学を考慮した拘束条件となる。
【００３７】
（ｅ）上記（ｄ）で計算された式および、目標関節値などその他の運動学的な拘束式を連立方程式として解き、関節加速度を得る。
【００３８】
関節可動域と目標関節値とについては、目標加速度が関節加速度の目標値
【外７】
0003790816.tif 000013
として与えられる。この条件と（ｄ）の拘束条件とを同時に解くことにより、動力学と運動学の両方の拘束条件を満たす関節加速度が得られる。
【００３９】
（ｆ）上記（ｅ）で得られた関節加速度を積分して、関節角度および関節速度を得る。
【図面の簡単な説明】
【図１】  本発明の人型リンク系の運動生成方法を実行する運動生成エンジンを用いてヒューマノイドの運動生成システムを構築する場合の構成例を示す説明図である。
【図２】  本発明の人型リンク系の運動生成方法で使用するインタフェースの基礎となっている関連発明「木構造リンク系のポーズ及び動作を生成する方法」の概要を示す説明図である。
【図３】  本発明の人型リンク系の運動生成方法において圧力中心点が接触領域の凸包内か否かを判断する方法を示す説明図である。
【図４】  本発明の人型リンク系の運動生成方法において操作空間逆慣性行列を計算する基礎となる接触力とリンク加速度とを示す説明図である。
【符号の説明】
ａ〜ｄ  リンク
Ｆ  足
Ｐ  圧力中心点
Ｒ  凸包
【図１】
0003790816.tif 000014
【図２】
0003790816.tif 000015
【図３】
0003790816.tif 000016
【図４】
0003790816.tif 000017