"コンピュータによって実行可能な、関節システムの制御方法であって、前記コンピュータは、前記関節システムの体部分の動作を指定するタスク記述子を受信し、前記関節システムの体部分の運動を推定し、前記体部分の推定された運動に基づいて重み付き行列を構築し、前記重み付き行列に基づいて前記体部分に結合する関節に対する関節コマンドを生成し、前記関節コマンドは前記体部分の加速度を制御して前記関節システムの1つ以上の運動学的制約を課し、前記関節コマンドを用いて、前記体部分に結合する前記関節を制御することを特徴とする関節システムの制御方法。前記重み付き行列は、複数の重み付き行列の重ね合わせとして作られた重み付き擬似逆行列から構成されており、前記複数の重み付き行列のうちの1つは、前記体部分の速度を制御するために作られていることを特徴とする請求項1に記載の関節システムの制御方法。前記複数の重み付き行列のうちの1つは、前記関節システムの体部分を運動学的制約に向かわせる動きによって、前記関節システムにおける関節に負荷を与えるように作られていることを特徴とする請求項2に記載の関節システムの制御方法。前記複数の重み付き行列のうちの1つは、前記関節システムの瞬間的な運動エネルギーを最小にするように作られていることを特徴とする請求項2に記載の関節システムの制御方法。前記複数の重み付き行列のうちの1つは、前記体部分に結合する関節の加速度を、当該加速度が前記運動学的制約に反するようになったときに、ゼロにセットすることを特徴とする請求項1に記載の関節システムの制御方法。前記関節システムは、足のある人型ロボットによって構成されており、前記コンピュータは、さらに、前記足のある人型ロボットの足のための足接触制約を課すためのより優先度の高いタスクを生成することを特徴とする請求項1に記載の関節システムの制御方法。前記コンピュータは、前記重み付き行列に基づいて前記体部分に結合する関節に対する関節コマンドを生成するとともに、前記関節システムで生じる動きに対する安定性を提供するように設計された関節速度フィードバック項を生成することを特徴とする請求項1に記載の関節システムの制御方法。前記コンピュータは、さらに、ソースシステムの動きを含むイメージストリームを受信し、前記イメージストリーム内の前記ソースシステムの体特徴を検知し、前記検知した体特徴に基づいて前記タスク記述子を生成することを特徴とする請求項1に記載の関節システムの制御方法。前記ソースシステムは、人を含んでおり、前記関節システムは、人型ロボットから構成され、前記関節コマンドは、前記人の動きをシミュレーションするように前記人型ロボットを制御することを特徴とする請求項8に記載の関節システムの制御方法。前記関節コマンドは、閉ループ逆運動CCLIKアルゴリズムを用いて生成されることを特徴とする請求項1に記載の関節システムの制御方法。関節システムの制御方法を実行するための実行可能なコンピュータプログラムコードを記憶する非一時的なコンピュータに読み取り可能な記憶媒体であって、前記コンピュータは、前記関節システムの体部分の動作を指定するタスク記述子を受信し、前記関節システムの体部分の運動を推定し、前記体部分の推定された運動に基づいて重み付き行列を構築し、前記重み付き行列に基づいて前記体部分に結合する関節に対する関節コマンドを生成し、前記関節コマンドは前記体部分の加速度を制御して前記関節システムの1つ以上の運動学的制約を課し、前記関節コマンドを用いて、前記体部分に結合する前記関節を制御することを特徴とする記憶媒体。前記重み付き行列は、複数の重み付き行列の重ね合わせとして作られた重み付き擬似逆行列から構成されており、前記複数の重み付き行列のうちの1つは、前記体部分の速度を制御するために作られていることを特徴とする請求項11に記載の記憶媒体。前記複数の重み付き行列のうちの1つは、前記関節システムの体部分を運動学的制約に向かわせる動きによって、前記関節システムにおける関節に負荷を与えるように作られていることを特徴とする請求項12に記載の記憶媒体。前記複数の重み付き行列のうちの1つは、前記関節システムの瞬間的な運動エネルギーを最小にするように作られていることを特徴とする請求項12に記載の記憶媒体。前記複数の重み付き行列のうちの1つは、前記体部分に結合する関節の加速度を、当該加速度が前記運動学的制約に反するようになったときに、ゼロにセットすることを特徴とする請求項11に記載の記憶媒体。関節システムの制御システムであって、前記制御システムは、実行可能なコンピュータプログラムコードを実行するコンピュータプロセッサと、前記実行可能なコンピュータプログラムコードを記憶するコンピュータに読み取り可能な記憶媒体と、を有しており、前記コンピュータプロセッサは、前記関節システムの体部分の動作を指定するタスク記述子を受信し、前記関節システムの体部分の運動を推定し、前記体部分の推定された運動に基づいて重み付き行列を構築し、前記重み付き行列に基づいて前記体部分に結合する関節に対する関節コマンドを生成し、前記関節コマンドは前記体部分の加速度を制御して前記関節システムの1つ以上の運動学的制約を課し、前記関節コマンドを用いて、前記体部分に結合する前記関節を制御することを特徴とする制御システム。前記重み付き行列は、複数の重み付き行列の重ね合わせとして作られた重み付き擬似逆行列から構成されており、前記複数の重み付き行列のうちの1つは、前記体部分の速度を制御するために作られていることを特徴とする請求項16に記載の制御システム。前記複数の重み付き行列のうちの1つは、前記関節システムの体部分を運動学的制約に向かわせる動きによって、前記関節システムにおける関節に負荷を与えるように作られていることを特徴とする請求項17に記載の制御システム。前記複数の重み付き行列のうちの1つは、前記関節システムの瞬間的な運動エネルギーを最小にするように作られていることを特徴とする請求項17に記載の制御システム。前記複数の重み付き行列のうちの1つは、前記体部分に結合する関節の加速度を、当該加速度が前記運動学的制約に反するようになったときに、ゼロにセットすることを特徴とする請求項16に記載の制御システム。両方の目的すなわち、操作タスクと第二のタスクを満たすために自由度が不充分であれば、第二のタスクとして制約を作成することは、制約が充分であることを保証できない。多くの場合、制約を満たすことは重要で、したがって操作タスクの実行を超えるプライオリティが必要となる。提案された解決では、最も高いプライオリティ操作として制約を作成し、操作タスクを制約ゼロ空間に映す。L.センティスとO.カティブの人間環境で動作する人型ロボットに対する全身制御フレームワークフロリダ州オーランドにおけるIEEE国際会議ロボティックスオートメーション2006を参照してください。しかし、この解決にはいくつかの欠点がある特に、タスクと制約空間が予めわかっていない場合。一例として、人間の実演者から人型ロボットまでのタスクレベル動作のリアルタイム移動のシナリオを考えてみよう。B.ダリウシュ、M.ジーンジャー、A.アランバッカム、Y.チュー、B.ジャン、K.フジムラおよびC.ゴーリックの人型ロボットへの人間の動作のオンライン移動人型ロボティックスの国際ジャーナル6:265-2892009を参照してください。このシナリオは、運動およびバランス制約の影響を受ける未計画タスク動作の実行を含む。移動される動作は、複数の部品ペアの間やあるいは複数の関節限界の違反の間で起こる同時自己衝突を引き起こす可能性がある。2つの問題は、そのような状況下で起こりえる。第1には、制約ゼロ空間が存在しないかもしれず、操作タスクの追跡を含む第二の目的の実行を実行不可能にする。第2には、自己衝突回避の場合、2つの衝突する体部分の間の最小限の距離に対応するデカルト位置は、通常、不連続である。そして、特別なケアを必要とする数的な不安定やアルゴリズム的な不安定性を生じる。このように、冗長性がなければ、単にゼロ空間予測に基づくだけのアプローチは、第二の目的を実行するには不充分である。本発明の実施形態は、関節システムを制御するため方法や対応するシステムやコンピュータプログラム製品を提供する。1つの特徴は、この方法は関節システムの複数の体部分の運動を推定して、推定された運動に基づいて力学的一貫性を実現するとともに、重み付けした擬似逆行列を構築して運動学的制約を課す。この方法は、重み付けした擬似逆行列を用いてタスク記述子を関節コマンドに変えて、速度レベルと加速度レベルの両方で関節システムを制御して、関節コマンドを用いて運動学的制約を課す。本明細書で記述された特徴や効果がすべてを含んでいるわけではない。特に、多くのさらなる特徴や効果は、図面、明細書および特許請求の範囲を考慮して当業者にとって明らかである。さらに、明細書中で使われている用語が主に読みやすさと教育目的のために選ばれていて、開示される主題を詳細に描写したり範囲限定したりするように選ばれていないかもしれない点に留意する必要がある。本発明は、動作制御システムや対応するシステムやコンピュータプログラム製品を、ロボットや他のロボットのような機構の制御に対して提供する。本システムは、加速度レベルでロボット機構の動きを制御して、ロボット機構の運動学的制約を課す。図面と以下の説明は、単に例示として本発明の実施形態に関連するに過ぎない。実施形態への言及が詳細になされ、それらの例は添付の図に示される。図面において類似あるいは同様の参照番号が使われていて、類似あるいは同様の機能を示していることがある点に、留意する必要がある。図面は、単に例示の目的で、開示されるシステムまたは方法の実施形態を表す。当業者は、以下の説明から、ここに例示される構造や方法のいずれかの実施形態がここに記述される原理を逸脱しない範囲内で実行されることができると、すぐに理解するであろう。動作リターゲティング環境図1は、本発明の1実施形態において、目標システム104例えばロボット/バイオロボットシステムが関節限界と衝突回避のような規制を実行している間に、リアルタイムでソースシステム102内で追跡される動作をシミュレーションするように制御するための動作リターゲティング環境100を例示しているブロック図である。動作リターゲティングシステム106は、ソースシステム102の深さイメージストリーム108を捕らえる。ソースシステム102は、どんな動作発生器例えば、人間または動物であってもよい。深さイメージストリーム108内で捕らえられるソースシステム102の動作に応じて、動作リターゲティングシステム106は、目標システム104の動作を制御するために、関節変数110以下関節コマンド110ともいう。を生成する。目標システム104は、例えば、一般的な関節システム例えばロボット、関節機構例えば、人型ロボット、アバター、または、人間あるいは動物によって装着される外骨格装置であってもよい。1実施形態において、動作リターゲティングシステム106は、ソースシステム102内で発生する動作を捕らえて、捕らえられた動作を目標システム104一般に動作リターゲティングと呼ばれるプロセスへ移す。ソースシステム102内の動作は、カメラによって深さイメージストリーム108に捕らえられ、トラッキング追跡され例えば、目印位置や特徴点を判定することで、動作リターゲティングシステム106によるデカルトまたはタスク空間内の一つ以上の動作原形を用いた動作記述子別名、動作軌跡、要望タスク記述子、タスク変数として表される。動作リターゲティングシステム106は、重み付けした擬似逆行列を使用して、速度レベルと加速度レベルの両方で、動作記述子を関節変数110別名、関節空間軌跡、関節動作、関節コマンド、関節動作記述子に変える。動作リターゲティングシステム106は、関節コマンド110を使い、ソースシステム102内の動作をシミュレーションする目標システム104を制御する。動作リターゲティングシステム106は、目標システム104内で動作に制約を課し、関節限界、筋肉のトルク限界、自己衝突、障害物などを避けることができる。説明のために、一般性を失わずに、ソースシステム102は人間のモデルを表し、ソース動作は、典型的に観察されるか、あるいは測定から推論される人間の動作原形を意味する。そして、目標システム104は、制御されて人間のモデルの動作を模倣する人型ロボットを表す。動作リターゲティングシステムの例の構造の概要図2は、1実施形態において、深さイメージストリーム108から関節コマンド110を生成する動作リターゲティングシステム106の構成を例示しているブロック図である。動作リターゲティングシステム106は、深さイメージストリーム108内で見つけられる複数の特徴から、人間の実演者の体姿勢を再構築する。これらの複数の特徴または特徴点、解剖学的特徴、キーポイントは、人体の上で目立つ解剖学的目印の3D位置と一致する。一般性を失わずに、動作リターゲティングシステム106は、図5に示すような体の14の特徴k=14をトラッキングする。図5に示す通り、これらの14の特徴は、頭頂、左肩、右肩、左肘、右肘、左手首、右手首、左尻、右尻、腰、左膝、右膝、左足首および右足首である。再構築されるまたは推定される人間の姿勢は、人間の実演者の姿勢を追跡する人間のモデル内で記述される。1実施形態において、人間のモデルは、人間の実演者の身体にとても似ている人間の解剖学的モデルである。図2に示すように、動作リターゲティングシステム106は、特徴検知モジュールキーポイント検知モジュールとも呼ばれる。202、補間モジュール204、未検知特徴付加モジュール206、姿勢再現/動作制御モジュール208、および、曖昧さ解消モジュール210を備えている。特徴検知モジュール202は、深さイメージストリーム108を受け取り、その深さイメージストリーム108内の特徴を検知して、その検知結果を出力する。検知結果内の閉塞、低信頼性観察または低信用のために、特定の画像フレームに対する実際の検知特徴の数mm=0...kと記述される。は、kより少ない場合がある。補間モジュール204は、特徴検知モジュール202から受け取った検知特徴をローパスフィルタ処理し、そして補間特徴を生成する。1実施形態において、動作リターゲティングシステム106に送られる深さイメージは、TOFタイムオブフライトカメラ例えば、スイスのレンジャーSR-30003DのTOFカメラを使って、毎秒およそ15コマで捕らえられる。次のモジュールである姿勢再現/動作制御モジュール208内で実行される数の統合における安定性のため、補間モジュール204は、より高レート例えば、100HZで検知特徴をリサンプリングする。未検知特徴付加モジュール206は、深さイメージストリーム108内で未検知の特徴の位置で補間特徴を付加して、要望されたまたは付加された特徴を生成する。上記したように、それぞれの画像フレームにおける検知特徴の数は、閉塞や低信頼性観察のために、14すなわちm<k=14より少ない場合がある。未検知特徴付加モジュール206は、姿勢再現/動作制御モジュール208からフィードバック経路240を経由して予測特徴を受け取って、その予測特徴を利用して未検知の特徴を付加する。付加された特徴は、姿勢再現/動作制御モジュール208へ入力されるように用いられるk=14の要望特徴を示す。姿勢再現/動作制御モジュール208は、要望特徴と、精密な人間のモデルとその制約に基づいて推定姿勢と予測特徴を生成し、目標システム104を制御するために再構築された体姿勢に基づいて関節コマンドを生成する。姿勢再現/動作制御モジュール208は、さらに、予測特徴を、断続的に未検知かあるいは閉塞された特徴を付加する未検知特徴付加モジュール206に送り、また、複数の特徴候補が見つけられる場合に備えて以降の曖昧さを解消する曖昧さ解消モジュール210に送る。推定されたまたは、再構築された、回復された姿勢は、人間のモデルにおけるすべてのn自由度の予測動作と姿勢を表現する。曖昧さ解消モジュール210は、特徴検知モジュール202が複数の考えられる特徴候補を見つけたとき、曖昧さを解消する。曖昧さ解消モジュール210は、姿勢再現/動作制御モジュール208からフィードバック経路250を経由して予測特徴を受け取って、予測特徴を利用して曖昧さを解消する。例えば、予測特徴は、特徴すなわち、特徴検知モジュール202から特徴の1つの候補の仮定された位置が非常にありそうもないことを、示すかもしれない。それにより、曖昧さ解消モジュール210は、検知特徴として特徴の他の候補を選ぶ。他の例として、曖昧さ解消モジュール210は、検知特徴である対応する予測特徴に最も近い特徴候補を選んでもよい。選択的に、または、付加的に、曖昧さ解消モジュール210は、検知特徴として予測特徴を使ってもよい。動作リターゲティングシステム106または上述のその構成要素のどれでもは、ソフトウェア例えば、プロセッサで実行可能な指示から成るモジュール、ハードウェア例えば、特定用途向け集積回路またはその組合せとして、構成することができる。ソフトウェアおよび/またはハードウェアは、プロセッサ、記憶部、非一時的なコンピュータで読取り可能な記憶媒体例えば、ハードディスク、ネットワークインターフェース、適用できるオペレーティングシステム、他の機能的なソフトウェア例えば、ネットワークドライバ、通信プロトコルを含んで構築されるコンピュータシステム内で動作できる。当業者は、図2に示されるモジュールと比べて異なるおよび/または付加的なモジュールを有しうると、認識できる。同様に、ここに記述されるのに比べて、すべての機能は異なる方法でモジュール間に分配されうる。さらに、機能のいくつかは、動作リターゲティングシステム106以外の実体によって提供されることができる。システム操作図3は、本発明の1実施形態において、動作リターゲティングシステム106が、見つかった動作記述子から関節コマンド110を生成するための処理を例示しているフローチャートである。動作リターゲティングシステム106または特徴検知モジュール202は、深さイメージストリーム108内で、人間の実演者の体特徴を見つける310。深さイメージストリーム内で体特徴を見つけることに関するさらなる情報は、2010年2月19日に出願された米国特許第12/709,221号。タイトルはBodyFeatureDetectionandHumanPoseEstimationUsingInnerDistanceShapeContextsに開示されている。その特許出願の内容は、参照されることによって完全に本明細書に取り入れられる。動作リターゲティングシステム106または補間モジュール204は、320で、検知された特徴を補間特徴として付加し、より高いレート例えば、100Hzでデータをリサンプリングする。1実施形態において、動作リターゲティングシステム106は、検知特徴に対して、局所キュービックスプライン補間ルーチンを用いて補間する320。補間が実行され、姿勢再現/動作制御モジュール208内で実行される数の統合の安定性が保証される。1実施形態において、動作リターゲティングシステム106は、フィルタ処理される特徴を補間する前に、検知特徴をローパスフィルタ処理する。動作リターゲティングシステム106または未検知特徴付加モジュール206は、未検知特徴の位置の付加特徴ベクトルを生成する330。上記したように、動作リターゲティングシステム106は、閉塞または低信頼性観察のために、各々のフレームで14未満の体特徴しか見つられないかもしれない。動作リターゲティングシステム106は、以前に生成した予測特徴を用いて、それらの未検知特徴を推定する。m<kであれば、検知特徴は、再構築された姿勢の以降の運動計算から得られるk-mの予測特徴pを用いて、付加される。動作リターゲティングシステム106または姿勢再現/動作制御モジュール208は、人間のモデル内で人間の実演者の観察体姿勢を再構築し、以降の特徴または特徴点位置を予測する340。動作リターゲティングシステム106は、人間のモデルの運動学的制約例えば関節限界と自己侵入回避を実行することによって、以降の特徴を予測する。動作リターゲティングシステム106または姿勢再現/動作制御モジュール208は、目標システム104の動きを制御するために、再構築された体姿勢に基づいて関節コマンド110を生成する350。再構築された体姿勢は、タスク空間内のタスク記述子の集合に対応している。動作リターゲティングシステム106は、重み付けした擬似逆行列を使用して、速度レベルと加速度レベルの両方で、タスク空間内のタスク記述子を、関節空間内の関節コマンドに変える。350の関節コマンド110を生成するプロセスは、以下で図4とともにさらに詳細に説明する。方法300の一つ以上の部分は、ハードウェアおよび/またはソフトウェア、または、それらの組合せの実施形態において実行されうる。例えば、方法300は、ここに記述される処理を実行するために指示を介して具体化される。そして、そのような指示は、非一時的なコンピュータで読取り可能な記憶媒体例えば、フラッシュメモリ、RAM、不揮発性磁気記憶装置の範囲内で保存され、コンピュータプロセッサで実行可能である。さらにまた、当業者は、他の実施形態が異なる命令で方法300のステップを実行することができると、認識する。さらに、別の実施形態は、ここに記載される実施形態に比べて、異なるおよび/または追加的なステップを含むことができる。動作リターゲティングシステム106は、方法300のステップの複数のインスタンスを並行して実行することができ、および/または、並行に複数のステップを実行することができる。ロボット機構の動作制御関節空間内の目標システム104ターゲットとも呼ばれる。のようなロボット機構の動作は、以下の式1を使用して記述することができる。q、q’q’は式1中のqの上に黒丸を付した記号の代用記号。以下、他の記号についても同様、q’’、τは、それぞれ、関節位置、速度、加速度、力の変数のn×1の一般化されたベクトルを表す。Hはn×nの関節空間慣性行列である。Cは、Cq’がコリオリ力と遠心力の項からなるn×1ベクトルであるようなn×nの行列である。τgは、重力条件のn×1ベクトルである。Jはヤコビ行列である。feは、ターゲットに作用する外部の空間力である。ターゲットに外部の力が作用していない場合、式1によって説明されるターゲットの制御は、以下の構造を用いて非線形のモデルベースの補正を使って取り扱われる。ベクトルαは、関節変数により求められた加速度を表す。表記^は、ターゲットの構成要素の推定を表す。式2のモデルパラメータが式1のそれらにマッチするならば、αは、次の式3内で提案されるような閉ループシステムを分離して線形化する基準関節加速度ベクトルq’’rとして設計されうる。付加的に安定化させる項を、必要に応じて式2中に加えてもよい。デカルト空間で指定されているタスク変数の集合の望ましい位置および/または望ましい方向の追跡を確実にするコンピューティングαの技術について、以下に記載する。タスク空間から関節空間への軌跡変換一般に、タスク変数は、最大限の6次元のタスク空間、つまり、位置のための3次元空間と方向のための3次元空間で、動くことができる。Nのタスク変数kによってインデックスを付けられる各々のタスク変数があると考えよう。K番目のタスク変数の空間速度ベクトルは、以下の式4によって与えられる。ωkとP’kは、それぞれ、タスクフレームの角速度とタスク位置の直線速度に対応するベクトルである。関節変数とタスク変数の間のマッピングは、以下の2つの式5、6に示すような2つの空間に関する差分運動を考慮することによって、得られる。a=v’である。また、vとJは、以下の2つの式7、8で定義されるように、個々のタスクの連続によって形成される、付加された空間速度ベクトルと付加されたタスクヤコビ行列に対応する。vd、adで示される、付加された望ましい空間速度と加速度ベクトルは、同じ方法で作られる。速度ベースの動作制御タスク変数からαを計算する1つのアプローチは、一次の軌跡変換によって、以下の式9、10で例示されるように数の微分でq’rを得ることである。Kは、ポジティブ定義ゲイン行列である。ベクトルeは、以下の式11で例示されるように、望ましいタスク記述子と計算されたタスク記述子の間の方針と位置の誤差を示す。Rd=[ndsdcd]とR=[nsc]は、それぞれ、タスクフレーム方向の、望ましい単位ベクトルトリプル表示と、計算された単位ベクトルトリプル表示となるものである。式9と式10は、式2で使われてもよい。以下の式12で例示されるように、関節速度フィードバック項を速度ベースの制御において加えると安定化することができる。Kq,vは、ポジティブ定義関節空間ゲイン行列である。式9における一次の運動変換は、運動学的制約を課す際に使われることができ詳細は後記、また、加速度レベルでの制限された動作制御においても使われることができる。加速度ベースの動作制御閉ループシステムを分離して線形化する1つのアプローチは、以下の関係式13を用いて、式3における求められた加速度制御入力αを作ることである。行列JはJの擬似逆行列を示す。arは以下の式14で定義される。KpとKvは、それぞれ、ポジティブ定義対角位置と、速度フィードバックゲイン行列である。式9と式13によってそれぞれ示される一次と二次の閉ループ逆運動手順は、タスク空間から関節空間までの軌跡変換を実行する効果的な方法である。一次の制約閉ループ逆運動CCLIK問題を解決して自己衝突回避のための効果的で安定した解決を提供することの1つのアプローチは、2008年10月24日に出願された米国の特許出願第12/258,184号。タイトルはRealTimeSelfCollisionAndObstacleAvoidanceUsingWeightingMatrixに詳述されている。その特許出願の内容は、参照されることによって完全に本明細書に取り入れられる。閉ループ逆運動閉ループ逆運動CLIKは、タスク空間から関節空間までの軌跡変換を実行する効果的方法である。制約された関節速度q’cを生み出す特異で丈夫なCLIK形式は、式15によって与えられる。式16とJは、以下の式17で例示されるようにポジティブ定義行列Wによって重み付けしたJの正しい擬似逆行列を表す。さらにまた、もし、Jが四角い非特異行列で、Wが単位行列であるならば、Jは標準的な行列の逆行列のJ-1と取り替えられることができる。重み付け行列Wは、関節の動作がその部分を制約の方向に向けている関節に負荷ペナルティを与えることによって、運動学的制約を課すようになっている。運動学的制約は、自己衝突または自己侵入のための制約と同様、関節限界制約を含む。重み付け行列は、さらに、運動エネルギーとトルクの最小化のような力学的一貫性を実現するように調整されてもよい。1実施形態において、運動と力学的一貫性を実現するために、Wは、以下の式18で示すように、重み付け行列の重ね合せとして作成される。WKは運動学的制約を課す重み付け行列である。WDは、力学的一貫性を実現する重み付け行列である。重み付け行列の設計は、以下に詳述する。1実施形態によれば、行列WKは、各要素が関節限界と衝突可能性関数の勾配を考慮することによって得られる対角行列として、作られる。行列WKは、n×nの関節限界重み付け行列WJLと、n×nの衝突回避重み付け行列WCOLによって影響される。経験的な結果に基づいて作られる行列WKの1つの複合例は、以下の式19で定められる。aは、関節限界重み付け行列と衝突重み付け行列の貢献を調整するのに用いられることができるスカラーインデックスである。行列WJLと行列WCOLは、候補の関節限界と衝突可能性関数に基づいて作られ、それぞれhq、fqと記される。関節限界制約関節限界回避は、対角行列WJLの適切な選択によって達成される。1実施形態において、行列WJLは候補の関節限界可能性関数hqに基づいて作られる。関節限界可能性関数hqは、関節がそれらの限界に近く、関節限界において無限に向かうとき、より高い値を持つ。hの勾配∇hは、関節限界勾配関数入力がhの付加の最も速いレートの方向に指すn×1のベクトルを、表す。i番目i=1...nの自由度に関する勾配は、∇hiと以下の式20の定義によって表される。qiは、i番目の自由度の一般化された座標を表す。qi,minとqi,maxは、それぞれ、関節限界の下限と上限を表す。勾配∇hiは、関節がその範囲の中央であればゼロであり、下限と上限のどちらでも無限に向かう。関節限界重み付け行列WJLは、対角線の要素wJLiを用いたn×n対角行列として作られる。スカラーwJLiは、以下の式21によって定義される:項|∇hi|は、関節限界勾配関数の大きさの変化を表す。正の値は、関節がその限界の方へ進んでいることを示す。一方、負の値は、関節がその限界から離れる方向に移動していることを示す。衝突制約2つの接続していない部分または関節を共有しない部分の間の衝突は、衝突重み付け行列WCOLの適切な選択によって達成されてもよい。dd0を、2つの部分ペアの間の最小限の距離に対応するものとする。fq、dが、d=0で最大値を持って、dが増えるにつれてゼロに向かって指数的に減少する候補衝突関数を表すようにする。1実施形態において、fの勾配∇fは、衝突勾配関数入力がfの付加の最も速いレートの方向内をに指すn×1ベクトルと定義される。衝突勾配関数は、以下の式22を使用して記述することができる。自己衝突が生じた場合、式22の第2項は、以下の式23の通りに計算される。paとpbは、2つの衝突点のベースを基準とした位置ベクトルを表す。JaとJbは、対応するヤコビ行列である。座標のpaとpbは、標準的な衝突検知ソフトウェアパッケージを使用して得ることができる。環境との衝突が生じた場合、環境衝突点に対応するヤコビ行列式は、ゼロである。関節限界重み付け関数と同様、WCOLは、以下の式24によって定義された対角要素WCOLiを用いたn×n対角行列によって作られる。∇fの要素は、各々の自由度が衝突までの距離に影響する程度を表す。dが大きいときに勾配がゼロであり、dがゼロに近づくと勾配が無限であるように関数fを選ぶのが適切である。1つのそのような候補の関数は、次の式25である。αとβは減衰のレートを制御するパラメータである。ρは振幅を制御する。dに関するfの偏導関数は、式26で表される。∇fは、式22、式23、式26から計算される。式24における項Δ|∇f|は、衝突勾配関数の大きさの変化を表す。正の値は、関節動作により衝突点が衝突の方へ移動することを示す。一方、負の値は、関節動作により衝突点が衝突から遠ざかる方向に移動することを示す。衝突点が衝突の方へ移動しているとき、対応する重み付け要因式24における最初の状態によって記述される。は非常に大きくなり、それによって、衝突点の動作に影響を及ぼしている関節は失速する。2つの部分が衝突しようとしているとき、重み付け要因は無限に近づき、実質的に衝突に関与している関節は止まる。もし、2つの部分が衝突から離れて移動しているならば、動作を制限したり負荷を与えたりする必要がない。このシナリオでは、式24の第2の状態は、関節を自由に動かすことができる。Nc部分ペアのすべての自己衝突についてチェックするとしよう。Jj=1...Ncを、j番目の衝突ペアのインデックスとする。そして、djを、2つの衝突している部分の間の最低限の距離とする。PajとPbjは、j番目の衝突ペアのために2つの衝突点ペアのベースを基準とした座標を表すものとする。それぞれの衝突ペアに関する候補の可能性関数は次の式27により与えられる。その勾配は、前記した通り、式28にしたがって計算される。したがって、各衝突ペアに関する衝突重み付け行列WCOLjは、これまで概説したように計算される。衝突重み付け行列は、式29で与えられるように、各々の衝突ペアの寄与から構成される。力学的一貫性重み付け行列Wは、付加的な達成ターゲットを認識するために作られている。式17の一般的な逆行列がコストq’Wqを最小にするので、関節速度の平方和が最小化されるまで、式15の解決はほぼ瞬間的な重み付け運動エネルギーを最適化する。運動エネルギーの最小化を達成するために、運動エネルギーUの以下の式30の定義を考慮する。瞬間的な運動エネルギーUは、式17においてW=Hとすることで、最小化される。慣性加重の擬似逆行列は、加速度レベルで冗長解決において使われるとき、力学的に一貫した一般的な逆行列と呼ばれている。運動一貫性運動学的制約を満たす運動条件と力学的一貫性運動エネルギーを最小にする力学的条件の両方を実現するために、これらの2つの条件は、式18の重み付け行列に組み込まれなければならない。効果的解決は、以下の式31の通りにWDを割り当てることである。ターゲットが運動学的制約から離れているまたは遠ざかるとき、対角行列WKが単位行列であるはずである。この場合、式31の表現は、瞬間的な運動エネルギーの最小化となる。ターゲットが運動学的制約に接近するとき、制約の方向内の動作に関与するWKの対角要素はますます大きくなり、また、対応する関節速度はゼロに近づく。この場合、WK内の非常に大きな要素の影響はWDの影響を弱め、また、運動学的制約を満たすためのより高いプライオリティ目標は実行される。擬似逆行列を計算するとき、行列Hが数値的に悪化し、不安定性を生じることがある。数的な問題を避けるために、調整項を式31に加えてもよい。また、ターゲットが冗長性を示さないとき、ターゲットが過度に制約されたときから、最適な逆行列解決の概念が存在しない。しかし、見つけられたキーポイントに部外物や過度のノイズがあるときに、力学的一貫性は、スムースな解決を生み出す点でまだ有益である。制約条件から求められた加速度αcを、制約条件から求められた加速度に対応しているベクトルとする。それは、式2の場合のように動作の力学的な式の中に折りこむことができる。制約条件から求められた加速度ベクトルαcは、以下の式33の通りに作ることができる。q’cは、式15の一次の制約運動変換から計算される。Gvは対角ポジティブ定義関節速度ゲイン行列である。冗長性を示すターゲットの場合に、次の式34のようにαを計算するとき、冗長性を利用して、ゼロ空間投射項を含むことは有利である。ζは任意のベクトルである。N=I-JJは、ζをJのゼロ空間内に投射する。式33によって与えられる制御法の閉ループタスク誤差運動項は、以下の式35によって示される。式35の左辺は、タスク誤差運動項を示す。式35の右辺は、制約誤差運動項すなわち、基準制約速度q’cの追跡における誤差を示す。式35は、q’c-q’がゼロでない限り、右辺の項がタスク空間追跡誤差運動項に影響を与えることを、表す。もし、タスクを実行し、制約を満たすために充分な数の自由度があるならば、ゲインGvは、調整され、タスク空間追跡誤差運動項を強制的にゼロにする。付加が大きいほど、収束はより速い。しかし、極端に大きなGvは、不安定性を招く。ベクトルζは、自己動作をさらに安定させるように抜け目なく設計されてもよい。ベクトルζの1つの構成例は、以下の式36で与えられる。GvNは、対角ポジティブ定義行列である。1実施形態において、Gvn=Gvである。ターゲットが制約から離れて制約近くの大きな値を持つとき、服従性と自己動作のダンピング特徴は、小さい値を持つように適応可能なGvを設計することによって、さらに改善される。1実施形態において、行列Jにおける特異性の発生を考慮して、擬似逆行列は、以下の式37を用いて入れ替えられる。Jは、ダンピング要素λによって規則正しくされるJの特異性が強く正しい擬似逆行列を表す。Wは、式19で与えられる制約重み付け行列を表す。式34における制約行列Wの使用は、加速度αを、運動学的制約のゼロまでの違反に関与させる。したがって、ロボット構成が制約多様性に接近するので、式34におけるWの使用は動作を効果的に弱め、さらなる安定と丈夫さをコントローラに提供する。上記の議論に基づいて、最初のタスクを実行するための果たす余分な自由度があるのか否かに応じて、加速度αは、以下の式38の通りに計算される。mは、主要な操作中のタスクの次元である。nは、利用できる自由度の総数である。式33と式38は、一般的な制約条件から求められた加速度ベクトルを構成する。制約と操作タスクの両方を実行するために不充分な自由度であるときでも、解は求まる。足制約足のある人型ロボットの全身動作制御のために、足接触制約も、課されなければならない。各々の足の位置は、タスク変数と扱い、2つのサブタスクを用いて優先度付きの冗長度依存性決定手法で制御することができる。優先度のより高いサブタスクは足接触制約を課す。一方、優先度がより低いサブタスクは主要なタスクのゼロ空間内で動いて、上体操作タスクの追跡を取り扱う。したがって、以下の式39で例示されるように、求められた加速ベクトルは、2つの優先度をつけられたサブタスクに分けられる。α1とα2は、それぞれ、第一優先度のサブタスクと、第二優先度のサブタスクの解である。ar,f式14参照を、以下の式41で定義されるように、足左右サブタスクの基準空間加速度であるとする。rfとlfは、それぞれ、右足と左足を表す。足が地上で固定されるとき、af,d=vf,d=0であることに、注意する。第1のサブタスクα1の解は、以下の式41式13参照の通りに計算される。式42は、両足のための付加されたヤコビ行列式である。一般化された逆行列Jfは、式18で定める運動と力学的一貫性を実現するために、重み付けされる。1実施形態において、ひざの関節限界によって、かろうじて特異姿勢を避けるように設計されている。この実施形態では、ロボットはほとんど直立状態を達成することができ、より自然でエネルギー効率のよい動作を生み出すことができる。ar,uを、頭、腕および胴を含んでいる上体サブタスクの基準空間加速度であるとする。第2の優先度のサブタスクの解上体自由度に対応は、第一のサブタスク解のゼロ空間上にある。式45は、上体と胴タスクのための付加されたヤコビ行列式である。パラメータNuは、上体タスクの数を表す。足接触制約をともなう全身制約決定加速度ベクトルは、式33から得られる。αは式39、式41および式43から決定される。そして、q’cの解は、2つのプライオリティサブタスク解における足制約を考慮しなければならない。基準空間速度ベクトルvr,fとvr,uが式16から決定される。前記した一般化された逆行列JfとJ^uは、Wによって重み付けされることで、運動学的制約を満たし、力学的一貫性を実現する。制約決定加速度制御プロセス図4に示すように、本発明の1実施形態において、姿勢再現/動作制御モジュール208のプロセス400を示すフローチャートは、目標システム104を制御する関節コマンド110を生成する。図4に示すように、姿勢再現/動作制御モジュール208は、410で、ソースシステム102例えば、未検知特徴付加モジュール206からの動きを記述しているタスク記述子を受けて、420で、目標システム104例えば、以前に発生した関節コマンドやセンサに基づくの体部分の運動を推定する。姿勢再現/動作制御モジュール208は、430で、推定された運動に基づいて力学的一貫性を実現するとともに運動学的制約を課す重み付けした擬似逆行列を構築し、440で、タスク記述子を、重み付けした擬似逆行列を用いて関節コマンドに変えることによって関節コマンドを生成する。姿勢再現/動作制御モジュール208は、450で、速度レベルと加速度レベルの両方で目標システム104における体部分を制御して、生成した関節コマンドを用いて運動学的制約を課す。プロセス400の1つ以上の部分は、ハードウェアやソフトウェアまたはそれらの組合せの実施形態において実行できる。本発明の実施形態は、加速度レベルで目標システムの動きを制御することによって、目標システムが運動学的制約に接近しているような動作を弱めることで効果的解決を提供し、それによってさらなる安定と丈夫さをコントローラに提供する。また、既存のアプローチと異なり、制約と操作タスクの両方を実行するために自由度が不充分なときでも、この解決は可能である。上記の説明のいくつかの部分は、アルゴリズムプロセスや実施例えば、図3および図4で記述されるプロセスや実施に関して、実施形態を説明している。本発明の1実施形態が、図面を参照して上記のように説明された。図面では、同様の参照番号は、同一または機能的に類似する要素を示す。また、図面では、各々の参照番号の一番左の数字は、その参照番号が最初に使われた図面の番号に対応している。明細書における1実施形態、実施形態という参照は、実施形態に関連して記述される特定の要点、構造または特徴が、本発明の少なくとも1実施形態に含まれることを意味する。明細書における様々な箇所の1実施形態においてや実施形態というフレーズの出現が、必ずしもすべて同じ実施形態に言及しているというわけではない。詳細な説明のいくつかの部分は、コンピュータメモリの内部のデータビット上でのアルゴリズムや象徴的な表現によって示される。これらのアルゴリズムの説明と表現は、データ処理技術の当業者が、他の当業者に最も効果的に彼らの仕事の要旨を伝えるのに用いられる手段である。ここで、アルゴリズムは、通常、望ましい結果へ導くステップ指示の首尾一貫したシーケンスであると考えられる。ステップは、それらの要求している物理的な量の物理的な操作である。通常必ずしもそうとは限らないが、これらの量は、保存され、移され、結合され、比較され、あるいは操作されることができる電気信号、磁気信号、または光学信号の形をとる。主に一般的な用法上の理由で、これらの信号を、ビット、値、要素、シンボル、文字、項、数などと称することは、都合がよい場合がある。さらにまた、一般性を失わずに、モジュールまたはコード装置として、物理的な量の物理的な操作を必要とするステップの特定の配置に言及することは、都合がよい場合がある。しかし、これらおよび類似した用語のすべては、適切な物理的な量と関係していて、単にこれらの量に適用される便利なラベルに過ぎない。特に以下の言及から明らかに別のものとして述べられない限り、処理する、演算する、計算する、決定する、表示するといった表現を用いた説明を通して、コンピュータシステム、あるいは、類似した電子コンピュータ装置コンピュータシステムメモリ、レジスタ、他のそのような情報記憶装置、伝達装置、または、表示装置の中で物理的電子的な量として表されるデータを操作したり変形させたりする装置の動作とプロセスに言及すると認められる。本発明の特定の局面は、アルゴリズムの形でここに記述されたプロセスステップと命令を含む。本発明のプロセスステップと命令がソフトウェア、ファームウェアまたはハードウェアで実現できる点に留意する必要がある。そして、ソフトウェアで実現されるとき、本発明のプロセスステップと命令は、ダウンロードされ、いろいろなオペレーティングシステムにより使用される異なるプラットホームで動作できる。本発明は、コンピュータシステム上で実行されることができるコンピュータプログラム製品であってもよい。本発明は、また、本明細書中にあるように動作を実行する装置に関する。この装置は、特にその目的のために作られてもよいし、あるいは、コンピュータに格納されるコンピュータプログラムによって選択的に作動するか変更される多目的コンピュータから構成されてもよい。そのようなコンピュータプログラムは、コンピュータで読取り可能な記憶媒体例えば、フロッピー登録商標ディスクを含む任意の種類のディスク、光ディスク、CD-ROM、磁気光ディスク、読出し専用メモリROM、ランダムアクセスメモリRAM、EPROM、EEPROM、磁気カード、光学カード、特定用途向け集積回路ASIC、または、電子命令を保存するのに適した任意のタイプの媒体、そして、それぞれコンピュータシステムバスに接続されている。に格納される。記憶装置は、情報/データ/プログラムを格納することができる上記のおよび/または他の装置のどれでも含むことができる。さらにまた、明細書に記載されたコンピュータは、シングルプロセッサを含んでもよいし、あるいは、増加したコンピューティング能力のためのマルチプロセッサ設計を使用している構造であってもよい。ここに示されたアルゴリズムや表示は、特定のコンピュータや他の装置に本質的に関連がない。いろいろな多目的システムは、また、本明細書の開示に従ったプログラムによって使われてもよいし、あるいは、その方法ステップを実行するためのより専門装置を作ることが便利であるとわかるかもしれない。いろいろなこれらのシステムのための構造は、下記の説明から明らかになる。そのうえ、本発明は、特定のプログラミング言語に関してまったく記述されていない。いろいろなプログラミング言語がここに記述されている本発明の開示を実行するのに用いられてもよいことは、言うまでもない。そして、特定の言語への下記の任意の参照は、本発明の使用可能性とベストモードの開示に対して用意されている。さらに、明細書で使われている言語は、主に読みやすさと教育目的のために選ばれていて、発明の主題を詳細に描写するか制限するために選ばれなかったかもしれない。したがって、本発明の開示は、特許請求の範囲において与えられる発明の範囲の例示であり、発明の範囲を制限するものではない。"