(57)【要約】【課題】モーションキャプチャのための、パラメトリックな動力学モデルを人間の行為者のサイズに自動的に適合させることのできる方法を提供する【解決手段】この方法は、行為者の身体部品に付けられたマーカの位置データを準備するステップと、行為者が動作を行なう間にキャプチャされたマーカの位置を表すモーションキャプチャデータを準備するステップと、位置データおよびモーションキャプチャデータを用いて、人間の行為者の身体部品の関節軸の位置を推定するステップ（１００）とを含む。推定するステップ（１００）は、マーカの位置データ、モーションキャプチャデータ、およびパラメトリックな動力学モデルの連鎖内において先行する関節軸の組の位置を用いて（１２４）、連鎖内の現在の関節軸の組の位置を計算するステップ（１２６）を含む。【選択図】        図７
2004163990.tif 000002
【特許請求の範囲】
【請求項１】
モーションキャプチャのためにパラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させるための、コンピュータで実現される方法であって、
人間の行為者の身体部品に付けられたマーカの、それぞれのローカル身体部品座標系における、コンピュータ読取可能な位置データの組と、グローバル身体座標系に対するローカル身体座標系の位置と向きとを準備するステップと、
人間の行為者の身体部品に付けられたマーカの位置を表す、コンピュータ読取可能なモーションキャプチャデータの第一の組を準備するステップとを含み、前記モーションキャプチャデータは人間の行為者がある一組の動きを行なう間にキャプチャされ、さらに
前記位置データと前記コンピュータ読取可能なモーションキャプチャデータの第一の組とを用いて、人間の行為者の身体部品の関節軸の位置をコンピュータに推定させるステップを含み、
前記コンピュータに推定させるステップは、
コンピュータ読取可能な前記マーカの位置データと、コンピュータ読取可能な前記モーションキャプチャデータの第一の組と、パラメトリックな動力学モデルの連鎖中で先行する関節軸の組の位置とを用いて、前記パラメトリックな動力学モデルの連鎖内での現在の関節軸の組の位置を計算するステップをコンピュータに自動的に行なわせるステップを含み、前記先行する関節軸の組は、前記先行する関節軸の組のまわりの動きが現在の関節軸の組の位置に影響を与えるような様態で動力学的な連鎖中に配置されている、方法。
【請求項２】
前記関節軸の現在の組の位置を計算するステップは
（ａ）モーションキャプチャデータの第一の組の全ての測定時間について、各測定時間での人間の行為者の身体の位置および向き、ならびにもしあれば、その時点での連鎖中で先行する軸の組の関節角度を、コンピュータ読取可能なマーカの位置データと、モーションキャプチャデータの第一の組と、もしあれば先行するステップで計算された先行する関節軸の組の位置とを用いて、推定するステップと、
（ｂ）コンピュータ読取可能なマーカの位置データと、モーションキャプチャデータの第一の組と、もしあれば先行するステップで計算された先行する関節軸の組の位置と、身体の位置および向きと、もしあれば、ステップ（ａ）で計算された先行する関節軸の組に関連する関節角度とを用いて、連鎖内の現在の関節軸の組の位置と、関連した関節軸の角度とを推定するステップとを含む、請求項１に記載の方法。
【請求項３】
前記ステップ（ａ）は、モーションキャプチャデータの第一の組と、位置データと、身体の位置および向きと、先行する関節軸の組の関節角度と、先行するステップで計算された先行する関節軸の組の位置とによって規定される好適な指標関数を最適化することによって、前記先行する関節軸の組の関節角度を推定するステップを含む、請求項２に記載の方法。
【請求項４】
前記ステップ（ｂ）は、モーションキャプチャデータの第一の組と、位置データと、身体の位置および向きと、先行する関節軸の組および現在の関節軸の組の関節角度と、先行するステップで計算された先行する関節軸の組の位置および現在の関節軸の組の位置とによって規定される好適な指標関数を最適化することによって、現在の関節軸の組の位置を推定するステップを含む、請求項２または請求項３に記載の方法。
【請求項５】
コンピュータ読取可能なマーカの位置データの組を準備する前記ステップは、人間の行為者が予め定められた基準姿勢にある間に、人間の行為者の身体部品に付けられたマーカの位置を表すコンピュータ読取可能なモーションキャプチャデータの第二の組を準備するステップを含む、請求項１から４のいずれかに記載の方法。
【請求項６】
前記予め定められた基準姿勢においては、人間の行為者は手足を伸ばした直立姿勢で立っている、請求項５に記載の方法。
【請求項７】
モーションキャプチャのために、パラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させるための、コンピュータで実行可能なプログラムであって、
人間の行為者の身体部品に付けられたマーカの、それぞれのローカル身体部品座標系における、コンピュータ読取可能な位置データの組と、グローバル身体座標系に対するローカル身体座標系の位置と向きとを準備するための第一のプログラム部分と、
人間の行為者の身体部品に付けられたマーカの位置を表すコンピュータ読取可能なモーションキャプチャデータの第一の組を準備するための第二のプログラム部分とを含み、前記モーションキャプチャデータは人間の行為者がある一組の動きを行なう間にキャプチャされ、さらに
位置データとコンピュータ読取可能なモーションキャプチャデータの第一の組とを用いて人間の行為者の身体部品の関節軸の位置を推定する第三のプログラム部分を含み、前記第三のプログラム部分は
コンピュータ読取可能なマーカの位置データと、コンピュータ読取可能なモーションキャプチャデータの第一の組と、パラメトリックな動力学モデルの連鎖において先行する関節軸の組の位置とを用いて、パラメトリックな動力学モデルの連鎖における関節軸の現在の組の位置を計算する第四のプログラム部分を含み、先行する関節軸の組は、先行する関節軸の組の周囲の動きが現在の関節軸の組の位置に影響を与えるような様態で動力学的な連鎖中に配置されている、コンピュータで実行可能なプログラム。
【請求項８】
前記第四のプログラム部分は
モーションキャプチャデータの第一の組の全ての測定時間について、各測定時間での人間の行為者の身体の位置および向き、ならびにもしあれば、その時点での連鎖中における先行する軸の組の関節角度を、コンピュータ読取可能なマーカの位置データと、モーションキャプチャデータの第一の組と、もしあれば先行するステップで計算された先行する関節軸の組の位置とを用いて、推定するプログラム部分（ａ）と、
コンピュータ読取可能なマーカの位置データと、モーションキャプチャデータの第一の組と、もしあれば先行するステップで計算された先行する関節軸の組の位置と、身体の位置および向きと、もしあれば、プログラム部分（ａ）で計算された先行する関節軸の組に関連する関節角度とを用いて、連鎖内における現在の関節軸の組の位置と、関連した関節角度とを推定するプログラム部分（ｂ）とを含む、請求項７に記載のコンピュータで実行可能なプログラム。
【請求項９】
前記プログラム部分（ａ）は、モーションキャプチャデータの第一の組と、位置データと、身体の位置および向きと、先行する関節軸の組の関節角度と、第四のプログラム部分で計算された先行する関節軸の組の位置とによって規定される好適な指標関数を最適化することによって、身体の位置および向きと、前記先行する関節軸の組の関節角度を推定するためのプログラム部分を含む、請求項８に記載のコンピュータで実行可能なプログラム。
【請求項１０】
前記プログラム部分（ｂ）は、モーションキャプチャデータの第一の組と、位置データと、身体の位置および向きと、先行する関節軸の組および現在の関節軸の組の関節角度と、第四のプログラム部分で計算された先行する関節軸の組の位置および現在の関節軸の組の位置とによって規定される好適な指標関数を最適化することによって、現在の関節軸の組の位置を推定するプログラム部分を含む、請求項８または９に記載のコンピュータで実行可能なプログラム。
【請求項１１】
前記第一のプログラム部分は、人間の行為者が予め定められた基準姿勢にある間に、人間の行為者の身体部品に付けられたマーカの位置を表すモーションキャプチャデータの第二の組を準備するプログラム部分を含む、請求項７から１０のいずれかに記載のコンピュータで実行可能なプログラム。
【請求項１２】
前記基準姿勢においては、人間の行為者は手足を伸ばした直立姿勢で立っている、請求項１１に記載のンピュータで実行可能なプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はモーションキャプチャのための、パラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させるための方法とプログラムとに関し、特にこの発明は、人間の行為者のキャプチャされた動きに基づき動きの生成に必要なパラメータを自動的に決定するための方法とプログラムとに関する。
【０００２】
【従来の技術】
ヒューマノイドロボットの製作について関心が高まっている。このようなロボットのための動きを生成することは、関節の数の多さ、関節間の関連性、冗長性、およびこのようなロボットと対話する人間がヒューマノイドロボットは人間のような動きをする筈であると考えること、などという理由から困難である。コンピュータグラフィックスでアニメーションのキャラクタの動きを生成する際にも、同じ問題に遭遇する。このようなヒューマノイドロボットまたはＣＧアニメーションキャラクタをここでは「エージェント」と呼ぶ。
【０００３】
出願人は図１に示すようなヒューマノイドロボットを開発した。図１から見られるように、名前の由来のとおり、ヒューマノイドロボットは人間のそれと同様の動力学的な構造を有しており、ヒューマノイドロボットと人間との類似性を活かして、類似の人間の軌跡に基づき適切なロボットの軌跡を生成することができる。さらに、通常はヒューマノイドロボットは人間のような動きで作業することが要求されるので、そのような作業の性質を利用することもできる。従って、娯楽産業およびコンピュータグラフィックス［１］から得られるモーションキャプチャ技術、ロボットの遠隔操作分野、直接に教えることまたは見せることによるロボットのプログラミング［２］および仮想現実の分野における技術を検討することは理にかなったことであろう。
【０００４】
モーションキャプチャはヒューマノイドエージェントの人間のような動きを生成するための最も重要な技術の一つである。これには、好適な測定装置を用いて人間の行為者の動きを測定することと、測定された動きをヒューマノイドエージェントの動きに変換することとが含まれる。
【０００５】
［参考文献］
［１］  Ｂ．ボーデンハイマー（Ｂ．  Ｂｏｄｅｎｈｅｉｍｅｒ）、Ｃ．ローズ（Ｃ．  Ｒｏｓｅ）著、「モーション・キャプチャのプロセス：データの取扱い（Ｔｈｅ  ｐｒｏｃｅｓｓ  ｏｆ  ｍｏｔｉｏｎ  ｃａｐｔｕｒｅ：  Ｄｅａｌｉｎｇ  ｗｉｔｈ  ｔｈｅ  ｄａｔａ）」、コンピュータ・アニメーションおよびシミュレーション（Ｃｏｍｐｕｔｅｒ  Ａｎｉｍａｔｉｏｎ  ａｎｄ  Ｓｉｍｕｌａｔｉｏｎ）’９７、ユーロ・グラフィックス・ワークショップ予稿集（Ｐｒｏｃ．  Ｅｕｒｏｇｒａｐｈｉｃｓ  Ｗｏｒｋｓｈｏｐ）．  ｐｐ．  ３−１８．  シュプリンガー・フェアラーク社刊、１９９７年
［２］  Ｔ．ロツァノ−ペレス（Ｔ．  Ｌｏｚａｎｏ−Ｐｅｒｅｚ）著、「ロボット・プログラミング（Ｒｏｂｏｔ  ｐｒｏｇｒａｍｍｉｎｇ）」、ＩＥＥＥ予稿集（Ｐｒｏｃ．  ＩＥＥＥ）  ｖｏｌ．  ７１，  ｎｏ．  ７，  ｐｐ．  ８２１−８４１、１９８３年７月
［３］  Ｂ．カラン（Ｂ  Ｋａｒａｎ）およびＭ．ヴコブラトヴィック（Ｍ．  Ｖｕｋｏｂｒａｔｏｖｉｃ）著、「マニピュレーション・ロボット・モデルのキャリブレーションおよび精度―概観（Ｃａｌｉｂｒａｔｉｏｎ  ａｎｄ  ａｃｃｕｒａｃｙ  ｏｆ  ｍａｎｉｐｕｌａｔｉｏｎ  ｒｏｂｏｔ  ｍｏｄｅｌｓ−ａｎ  ｏｖｅｒｖｉｅｗ）」、メカニズムおよびマシン理論（Ｍｅｃｈａｎｉｓｍ  ａｎｄ  ｍａｃｈｉｎｅＴｈｅｏｒｙ）、ｖｏｌ．  ２９，  ｎｏ．  ３，  ｐｐ．  ４７９−５００、１９９４年
［４］  Ｍ．Ａ．ラフォーチュン（Ｍ．Ａ．  Ｌａｆｏｒｔｕｎｅ）、Ｐ．Ｒ．キャバノウ（Ｐ．Ｒ．  Ｃａｖａｎａｕｇｈ）、Ｈ．Ｊ．ソマー（Ｈ．Ｊ．  Ｓｏｍｍｅｒ）およびＡ．カレンカ（Ａ．  Ｋａｌｅｎｋａ）著、「歩行中における人間の３次元的動力学（Ｔｈｒｅｅ−ｄｉｍｅｎｓｉｏｎａｌｋｉｎｅｍａｔｉｃｓ  ｏｆ  ｔｈｅ  ｈｕｍａｎ  ｋｎｅｅ  ｄｕｒｉｎｇ  ｗａｌｋｉｎｇ）」、ジャーナル・オブ・バイオメカニクス（Ｊ．  Ｂｉｏｍｅｃｈａｎｉｃｓ）、ｖｏｌ．  ２５，  ｎｏ．  ４，  ｐｐ．  ３４７−３５７、１９９２年４月
［５］  Ｊ．Ｆ．オブライエン（Ｊ．Ｆ．  Ｏ’Ｂｒｉｅｎ）、Ｒ．Ｅ．ボーデンハイマー（Ｒ．Ｅ．  Ｂｏｄｅｎｈｅｉｍｅｒ）、Ｇ．Ｊ．ブロストウ（Ｇ．Ｊ．  Ｂｒｏｓｔｏｗ）およびＪ．Ｋ．ホジンス（Ｊ．Ｋ．  Ｈｏｄｇｉｎｓ）著、「磁気的モーションキャプチャデータからの関節パラメータの自動推定（Ａｕｔｏｍａｔｉｃ  ｊｏｉｎｔ  ｐａｒａｍｅｔｅｒ  ｅｓｔｉｍａｔｉｏｎ  ｆｒｏｍｍａｇｎｅｔｉｃ  ｍｏｔｉｏｎ  ｃａｐｔｕｒｅ  ｄａｔａ）」、グラフィック・インターフェース２０００会議予稿集（Ｐｒｏｃ．  Ｇｒａｐｈｉｃｓ  Ｉｎｔｅｒｆａｃｅ  ２０００  Ｃｏｎｆｅｒｅｎｃｅ）、カナダ、モントリオール、２０００年５月
［６］  Ｍ．−Ｃ．シラギ（Ｍ．−Ｃ．  Ｓｉｌａｇｈｉ）、Ｒ．プレンカース（Ｒ．  Ｐｌａｅｎｋｅｒｓ）、Ｒ．ブーリック（Ｒ．  Ｂｏｕｌｉｃ）、Ｐｌ  フア（Ｐｌ  Ｆｕａ）およびＤ．ソールマン（Ｄ．  Ｔｈａｌｍａｎｎ）著、「光学的モーション・キャプチャのためのローカルおよびグローバル骨格フィッティング技術（Ｌｏｃａｌ  ａｎｄ  ｇｌｏｂａｌ  ｓｋｅｌｅｔｏｎ  ｆｉｔｔｉｎｇ  ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  ｏｐｔｉｃａｌ  ｍｏｔｉｏｎ  ｃａｐｔｕｒｅ）」、仮想環境のためのモデリングおよびモーション・キャプチャ技術（Ｍｏｄｅｌｉｎｇ  ａｎｄ  Ｍｏｔｉｏｎ  Ｃａｐｔｕｒｅ  Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｖｉｒｔｕａｌ  Ｅｎｖｉｒｏｎｍｅｎｔｓ）、Ｎ．マグネラート・ソールマン（Ｎ．  Ｍａｇｎｅｒａｔ  Ｔｈａｌｍａｎｎ）およびＤ．ソールマン（Ｄ．  Ｔｈａｌｍａｎｎ）編、ｐ．  ２６−４０、コンピュータ・サイエンスについての講義ノート  １５３７（ＬｅｃｔｕｒｅＮｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  １５３７）、シュプリンガー・フェアラーク社刊、ベルリン、ニュー・ヨーク、１９９８年
［７］  Ｒ．Ｍ．マレー（Ｒ．Ｍ．  Ｍｕｒｒａｙ）、Ｚ．リー（Ｚ．  Ｌｉ）およびＳ．Ｓ．サストリ（Ｓ．Ｓ．  Ｓａｓｔｒｙ）著、「ロボット・マニピュレーションへの数学的導入（Ａ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｒｏｂｏｔｉｃ  Ｍａｎｉｐｕｌａｔｉｏｎ）、シー・アール・シー・プレス社刊、ボカ・レイトン、ニュー・ヨーク、１９９４年
［８］  Ｔ．コールマン（Ｔ．  Ｃｏｌｅｍａｎ）、Ｍ．Ａ．ブランチ（Ｍ．Ａ．  Ｂｒａｎｃｈ）、およびＡ．グレース（Ａ．  Ｇｒａｃｅ）著、「最適化ツールボックス  ユーザーズ・ガイド（Ｏｐｔｉｍｉｚａｔｉｏｎ  Ｔｏｏｌｂｏｘ  Ｕｓｅｒ’ｓ  Ｇｕｉｄｅ）」、Ｔｈｅ  ＭａｔｈＷｏｒｋｓ社刊、ネイティック  ＭＡ．１９９９年
［９］  Ｋ．Ｓ．エイラン（Ｋ．Ｓ．  Ａｒｕｎ）、Ｔ．ｓ．フアンジ（Ｔ．Ｓ．  Ｈｕａｎｇｅ）およびＳ．Ｄ．ブロスタイン（Ｓ．Ｄ．  Ｂｌｏｓｔｅｉｎ）著、「二つの３Ｄ点集合の最小二乗フィッティング（Ｌｅａｓｔ−ｓｑｕａｒｅｄ  ｆｉｔｔｉｎｇ  ｏｆ  ｔｗｏ  ３−Ｄ  ｐｏｉｎｔ  ｓｅｔｓ）、ＩＥＥＥトランザクションズ・オブ・パターン・アナリシス・アンド・マシン・インテリジェンス（ＩＥＥＥ  Ｔｒａｎｓ．  Ｐａｔｔｅｒｎ  Ａｎａｌ．  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌ．）、Ｖｏｌ．  ９，  ｎｏ．  ５，  ｐｐ．  ６９８−７００、１９８７年９月
【発明が解決しようとする課題】
実際に物理的な装置を制御するための要件により、仮想現実および娯楽の応用からの技術には修正を要することがわかった。主な問題は、教示用データの処理が困難なことと、モーションキャプチャが煩雑な作業であることとである。
【０００６】
キャプチャされた動きに基づいてエージェントのための動きを生成するためには、好適な測定装置を用いて人間の行為者の全身の動きをキャプチャする必要があるだろう。このような装置の一つにゴニオメータ（ｇｏｎｉｏｍｅｔｅｒ）を使ったシステムがある。行為者がゴニオメータを装着すると、ゴニオメータは関節の位置とその向きとして、行為者の動きを直接に測定する。このゴニオメータを使ったシステムの主な欠点は、ゴニオメータが特定のロボット向けに設計された特定のサイズのものであるため、適正サイズの人しか装着できないということである。人間の行為者の背が低すぎたりすれば、ゴニオメータを使ったシステムを身に付けることはできない。このため、人間の動きを容易にキャプチャし、パラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させる方法およびプログラムが必要とされている。
【０００７】
ロボットマニピュレータのために動力学モデルを自動構築する技術はロボット工学分野では十分に確立されている。完全性、比率、および等価性等の基準に従って、最も好適な動力学的なパラメータシステムを特定する研究が数多くなされている［３］。未知の動力学パラメータは、ロボットハンド（対象物を操作するロボットの手の部分）の姿勢測定およびロボットの関節位置の読取から特定されることが最も一般的である。
【０００８】
残念ながら、人間の動力学モデルを構築する際には関節位置データが利用できない。加えて、ロボット工学で開発されてきた技術は多くの場合、ロボットが単一の関節についてのみ、他の自由度での動きなしに動くことを要求するが、人間がこのようにするのは困難である。最後に、人間の動きの動力学的パラメータを特定することとは別に、モデルを将来使用することを可能にするためには、動き推定プロセスにより身体のマーカの位置も決定しなければならない。
【０００９】
人間のための動力学モデルの特定はバイオメカニクスおよびコンピュータグラフィックの分野で研究されてきた。バイオメカニクスの世界では、人間の関節が理想的な回転関節ではなく、このため固定された回転中心を持たないことがよく知られている［４］。バイオメカニクスの研究者はしばしば、関節の位置を固定する代わりに、瞬間的な回転中心を推定する。
【００１０】
しかし、ヒューマノイドロボットの動きを生成することが目標であるならば、人間の動きをできる限り正確にモデリングする必要はない。もしヒューマノイドロボットの関節軸の位置が固定されているならば、人間の行為者の動力学モデルの回転軸もまた固定されているべきであり、これはある程度の正確さで真実といえる。
【００１１】
従って、この発明の目的はモーションキャプチャのための、パラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させることのできる方法およびプログラムを提供することである。
【００１２】
この発明の別の目的は、いかなる手動の測定もなしに、モーションキャプチャのための、パラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させることのできる方法およびプログラムを提供することである。
【００１３】
この発明のさらに別の目的は、一回の長い最適化問題においてすべての関節軸位置を推定する必要なしに、少ない計算量で、モーションキャプチャのための、パラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させることのできる方法およびプログラムを提供することである。
【００１４】
【課題を解決するための手段】
この発明のある局面によれば、モーションキャプチャのためのパラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させるためのコンピュータで実現される方法は、人間の行為者の身体部品に付けられたマーカの、それぞれのローカル身体部品座標系におけるコンピュータ読取可能な位置データの組と、グローバル身体座標系に対するローカル身体座標系の位置と向きとを準備するステップと、人間の行為者の身体部品に付けられたマーカの位置を表すコンピュータ読取可能なモーションキャプチャデータの第一の組を準備するステップとを含み、このモーションキャプチャデータは人間の行為者がある一組の動きを行なう間にキャプチャされ、さらに位置データとコンピュータ読取可能なモーションキャプチャデータの第一の組とを用いてコンピュータに人間の行為者の身体部品の関節軸の位置を推定させるステップを含む。
【００１５】
コンピュータに推定させるステップは、コンピュータ読取可能なマーカの位置データと、コンピュータ読取可能なモーションキャプチャデータの第一の組と、パラメトリックな動力学モデルの連鎖内において先行する関節軸の組の位置とを用いて、パラメトリックな動力学モデルの連鎖内における現在の関節軸の組の位置を計算するステップをコンピュータに自動的に行なわせるステップを含み、先行する関節軸の組は、先行する関節軸の組の周りの動きが現在の関節軸の組の位置に影響を与えるような様態で動力学的な連鎖中に配置されている。
【００１６】
コンピュータが先行する関節軸の組の位置と連鎖中の関節軸の第二の組の位置とを自動的に計算し、かくして連鎖中のすべての後続の関節軸が計算されるので、パラメトリックな動力学的モデルを人間の行為者のサイズに自動的に適応させることが可能となる。マーカの位置が計算に用いられるので、人間の行為者の関節軸の位置を手動で測定する必要はない。
【００１７】
関節軸の現在の組の位置を計算するステップは、好ましくは、（ａ）モーションキャプチャデータの第一の組の全ての測定時間について、各測定時間での人間の行為者の身体の位置および向き、ならびにもしあれば、その時点での連鎖における先行する軸の組の関節角度を、コンピュータ読取可能なマーカの位置データと、モーションキャプチャデータの第一の組と、もしあれば先行するステップで計算された先行する関節軸の組の位置とを用いて、推定するステップと、（ｂ）コンピュータ読取可能なマーカの位置データと、モーションキャプチャデータの第一の組と、もしあれば先行するステップで計算された先行する関節軸の組の位置と、身体の位置および向きと、もしあれば、ステップ（ａ）で計算された先行する関節軸の組に関連する関節角度とを用いて、連鎖内における現在の関節軸の組の位置と、関連した関節角度とを推定するステップとを含む。
【００１８】
計算が２ステップで行なわれ、第一のステップの結果が第二のステップで用いられるので、計算量が減じられる。
【００１９】
前記ステップ（ａ）は、モーションキャプチャデータの第一の組と、位置データと、身体の位置および向きと、先行する関節軸の組の関節角度と、先行するステップで計算された先行する関節軸の組の位置とによって規定される好適な指標関数を最適化することによって、先行する関節軸の組の関節角度を推定するステップを含んでもよい。
【００２０】
最適化されるべき変数が、関節角度と、身体の位置および向きとを含むのみなので、計算量が減じられ、短時間で結果を得ることができる。
【００２１】
ステップ（ｂ）は、モーションキャプチャデータの第一の組と、位置データと、身体の位置および向きと、先行する関節軸の組および現在の関節軸の組の関節角度と、先行するステップで計算された先行する関節軸の組の位置および現在の関節軸の組の位置とによって規定される好適な指標関数を最適化することによって、現在の関節軸の組の位置を推定するステップを含んでもよい。
【００２２】
最適化されるべき変数が、関節角度と、現在の関節軸の組の位置とを含むのみなので、計算量が減じられ、短時間で結果を得ることができる。
【００２３】
コンピュータ読取可能なマーカの位置データの組を準備するステップは、人間の行為者が予め定められた基準姿勢にある間に、人間の行為者の身体部品に付けられたマーカの位置を表すコンピュータ読取可能なモーションキャプチャデータの第二の組を準備するステップを含んでもよい。
【００２４】
人間の行為者は予め定められた基準姿勢で立つことを求められるので、位置データを準備するのが容易である。
【００２５】
予め定められた基準位置では、人間の行為者は手足を伸ばした直立姿勢で立っていてもよい。
【００２６】
この発明の別の局面によれば、モーションキャプチャのためのパラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させるためのコンピュータで実行可能なプログラムは、人間の行為者の身体部品に付けられたマーカの、それぞれのローカル身体部品座標系におけるコンピュータ読取可能な位置データの組と、グローバル身体座標系に対するローカル身体座標系の位置と向きとを準備するための第一のプログラム部分と、人間の行為者の身体部品に付けられたマーカの位置を表すコンピュータ読取可能なモーションキャプチャデータの第一の組を準備するための第二のプログラム部分とを含み、モーションキャプチャデータは人間の行為者がある組の動きを行なう間にキャプチャされ、さらに位置データとコンピュータ読取可能なモーションキャプチャデータの第一の組とを用いて人間の行為者の身体部品の関節軸の位置を推定する第三のプログラム部分を含み、この第三のプログラム部分は、コンピュータ読取可能なマーカの位置データと、コンピュータ読取可能なモーションキャプチャデータの第一の組と、パラメトリックな動力学モデルの連鎖内において先行する関節軸の組の位置とを用いて、動力学モデルの連鎖内における現在の関節軸の組の位置を計算する第四のプログラム部分を含み、先行する関節軸の組は、先行する関節軸の組の周りの動きが現在の関節軸の組の位置に影響を与えるような様態で動力学的連鎖中に配置されている。
【００２７】
先行する関節軸の組の位置と連鎖中の関節軸の第二の組の位置とをコンピュータが自動的に計算し、かくして連鎖中のすべての後続の関節軸が計算されるので、パラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させることが可能となる。マーカの位置が計算に用いられるので、人間の行為者の関節軸の位置を手動で測定する必要はない。
【００２８】
第四のプログラム部分は、モーションキャプチャデータの第一の組の全ての測定時間について、各測定時間での人間の行為者の身体の位置および向き、ならびにもしあれば、その時点での連鎖における先行する軸の組の関節角度を、コンピュータ読取可能なマーカの位置データと、モーションキャプチャデータの第一の組と、もしあれば先行するステップで計算された先行する関節軸の組の位置とを用いて、推定するプログラム部分（ａ）と、コンピュータ読取可能なマーカの位置データと、モーションキャプチャデータの第一の組と、もしあれば先行するステップで計算された先行する関節軸の組の位置と、身体の位置および向きと、もしあれば、プログラム部分（ａ）で計算された先行する関節軸の組に関連する関節角度とを用いて、連鎖内における現在の関節軸の組の位置と、関連した関節角度とを推定するプログラム部分（ｂ）とを含んでもよい。
【００２９】
計算が２つのプログラム部分で行なわれ、第一のプログラム部分の結果が第二のプログラム部分で用いられるので、計算量が減じられる。
【００３０】
プログラム部分（ａ）は、モーションキャプチャデータの第一の組と、位置データと、身体の位置および向きと、先行する関節軸の組の関節角度と、第四のプログラム部分で計算された先行する関節軸の組の位置とによって規定される好適な指標関数を最適化することによって、身体の位置および向きと、先行する関節軸の組の関節角度を推定するためのプログラム部分を含んでもよい。
【００３１】
最適化されるべき変数が、関節角度と、身体の位置および向きとを含むのみなので、計算量が減じられ、短時間で結果を得ることができる。
【００３２】
プログラム部分（ｂ）は、モーションキャプチャデータの第一の組と、位置データと、身体の位置および向きと、先行する関節軸の組および現在の関節軸の組の関節角度と、第四のプログラム部分で計算された先行する関節軸の組の位置および現在の関節軸の組の位置とによって規定される好適な指標関数を最適化することによって、現在の関節軸の組の位置を推定するプログラム部分を含んでもよい。
【００３３】
最適化されるべき変数が、関節角度と、現在の関節軸の組の位置とを含むのみなので、計算量が減じられ、短時間で結果を得ることができる。
【００３４】
第一のプログラム部分は、人間の行為者が予め定められた基準姿勢にある間に、人間の行為者の身体部品に付けられたマーカの位置を表すモーションキャプチャデータの第二の組を準備するプログラム部分を含んでもよい。
【００３５】
人間の行為者は予め定められた基準姿勢にあるので、位置データを準備するのが容易である。
【００３６】
予め定められた基準姿勢においては、人間の行為者は手足を伸ばした直立姿勢で立っていてもよい。
【００３７】
【発明の実施の形態】
［動力学的モデル］
人間の動きは、ある程度の正確さで剛体である身体部品の多関節の動きとしてモデル化することができる。従って、ヒューマノイドエージェントのデカルト空間内での位置は、通常は、身体部品の一つに固定して付けられたグローバル座標系の位置および向きと、身体の軸に対する関節角度の値とによって与えられる。このため、ヒューマノイドエージェントの身体の動きは、選択された身体の座標系に対する身体の関節軸の位置と向きを特定するパラメトリックな動力学モデルを用いて記述することができる。
【００３８】
ヒューマノイドエージェントの何らかの動きはこの場合、ある時間でのこの選択された身体座標系の位置および向きを特定する軌跡と、関節角度の軌跡とによって与えられる。この明細書では、身体の位置および向きをまとめて「身体の姿勢」と呼ぶ。ある程度の正確で、人間の動きは、このようにしてもモデル化することができる。この発明の実施例に従った方法は、人間の動きとヒューマノイドエージェントの動きとをともに記述できる、パラメトリックな動力学モデルの同期化のための自動技術を提供する。
【００３９】
このようなモデルにより、モーションキャプチャを用いて基となるパラメトリックモデルによって記述された関節空間内における人間の動きを測定することが可能になる。ヒューマノイドエージェントの動きも同じ動力学的空間内で起こるので、測定された関節角度の軌跡を直接利用してヒューマノイドエージェントの動きを駆動することができる。
【００４０】
この方法は、ヒューマノイドエージェントの全身の動き、またはこのような動きの部分空間を記述できるパラメトリックな動力学モデルを特定することから始まる。このモードで規定される空間における人間の行為者の動きを測定するため、モデルを規定するパラメータを人間の行為者の物理的サイズに拡大または縮小する必要がある。この方法では、人間の行為者がすべての関連の自由度を発揮するようなさまざまな動きを行なっている間に獲得された３Ｄ（三次元）のマーカ位置測定に基づき、動力学的モデルのパラメータを推定することができる。行為者の手足の長さを手作業で測定する必要はない。
【００４１】
図２は図１に示されたヒューマノイドロボットの動力学的構造を示し、ここで我々が目標とするのは、図２のようなヒューマノイドロボットの特定の動力学的構造によって、人間の動きをモデル化することである。図２に示されるように、この構造は関節４、６、８、１０および１２等の、ロボット２の右腕に位置づけられた多数の関節を含む。この構造はさらに、左腕、右足、左足、首および腰の関節を含む。
【００４２】
このようなパラメトリックモデルを、ひねり表現を用いて特定することは極めて自然である［７］。なぜなら、これによって、動力学的連鎖中で連続したローカルな座標フレーム間での変換を特定することに代えて、直接グローバルな身体座標系で作業することが可能になるからである。ここで、「動力学的連鎖」とは先行する関節の動きが後続の関節の位置に影響を与えるように動力学的構造内に配置された一連の関節を意味する。ひねり表現の唯一の欠点は、これが最小ではない（これは各変換ごとに４個ではなく６個のパラメータを必要とする）ことだが、後述するように、ひねりに基づく較正のための、一組の独立したパラメータを導くことができる。
【００４３】
ここで目標とするのは、人間の身体の関節軸の場所と方向を決定することである。ひねりはこれらのパラメータで定義される。ひねりによる関節軸のパラメータ化を用いることで、関節軸の位置の各々について２個の独立したパラメータが導き出される。回転関節に関して、ｎｉ を関節軸方向の単位ベクトルとし、ｑｉを軸上の任意の点とする。両者は基本構成、すなわちすべての関節角度が０に等しい状態でのグローバル身体座標系で与えられる。この場合、第ｉ番目の関節軸についてのひねりεｉは次の形をとる。
【００４４】
【数１】
2004163990.tif 000003
このような関節に対する、角度θｉの動きによって引き起こされる身体部品の反映は、以下のエクスポーネンシャルマップ［７］を用いて計算される。
【００４５】
【数２】
2004163990.tif 000004
ここでＲ（θｉ，  ｎｉ）は単位軸ｎｉの周りのθｉだけの回転を記述する直交行列である。
【００４６】
人間のモーションキャプチャデータからヒューマノイドロボットの動きを生成するために、人間の関節の動きを３−Ｄのマーカの動きと関連させる必要がある。マーカが付される剛体である身体部品のローカルな座標系におけるマーカの座標がｙｉで与えられるとすれば、身体構成（ｒ，  ｄ，  θｉ１…，  θｉｎ）でのその３−Ｄ位置は以下のように計算される。
【００４７】
【数３】
2004163990.tif 000005
ここでεｉ１…，εｉｎはマーカの動きｙｉを生じさせる動力学的連鎖を記述するひねりであり、Ｇｘはマーカが付されるローカル身体部品座標系の位置および向きを、基本構成でのグローバル身体座標系に対て関連付ける同次行列である。図１に示したヒューマノイドロボットの場合、ｘ＝上体、骨盤、頭、左上腕、左下腕、左手、右上腕、右下腕、右手、左上脚、左下脚、左足、右上脚、右下脚、右足）、ｒおよびｄは世界座標に対するグローバル身体座標系の回転ベクトルおよび位置によって表される向き、ｇ（ｒ，ｄ）はｒおよびｄに対応する同次行列である。なお、マーカの動きに影響を与えるひねりの組は、マーカが付される身体部品が何であるかによって変わる。
【００４８】
このような設定では、動力学的モデリングは関節軸の位置と、ローカル身体部品座標系の方向と位置とを特定することを含み、これらパラメータはすべて、身体が基本構成にある状態でのグローバル身体座標系で特定される。ローカル身体部品座標系とは別に、空間における身体の位置および向きを特定するグローバル身体座標系も固定する必要がある。
【００４９】
［自動モデル生成］
この実施例のアプローチの基本は、人間の身体の動力学とヒューマノイドロボットまたはＣＧキャラクタの動力学との間の関係を確立することである。これは人間の行為者の動力学を、ヒューマノイドエージェント用のモデル標準でありかつ人間の行為者の物理的サイズに拡大または縮小したものでモデル化することによって達成される。ヒューマノイドエージェントの動力学は人間の身体の動力学と類似するので、広範囲の人間の動きにこの方法で対処することができる。
【００５０】
この目的で、ヒューマノイドロボットの典型的な動力学的構造と人間の身体の動力学とを考察してみる。バイオメカニクスおよびコンピュータグラフィックスでは、首の関節、肩関節、股関節および踝の関節を通常は球面関節としてモデル化する。本件のヒューマノイドロボットではこれは当てはまらない。なぜなら、ヒューマノイドロボットのこれらの場所には、直交するが必ずしも交差しないいくつかの（典型的には３個の）連続した回転関節を有するためである。加えて、対応する関節軸の方向は基本構成においては、通常、身体の三つの主軸（上下、左右および前後）と一致する。被験者またはヒューマノイドエージェントが手足を伸ばして直立姿勢にあるとき身体は基本構成にあると考える。３個の連続した回転関節は球面関節と同様に任意の回転を生じさせることができ、これにより、二つの動力学的構造がある程度まで等価となる。従って、３自由度（ＤＯＦ）の球面関節を、身体の主軸に沿った方向を向いた軸を持つ連続した３個の回転関節によってモデル化することには意味がある。軸の順序と符号とは、考察されるヒューマノイドエージェントの関節軸の順序および方向と同じになるよう選択しなければならない。
【００５１】
どのような動力学的パラメータシステムを採用するかにかかわらず、パラメータ（関節角度）の実際の値はどのようなローカル座標系を選択するかに依存する。なぜなら、これらの値の間の変換を特定するのがこれらローカル座標系だからである。身体の姿勢がどのような場合でも、関節角度の値が、その姿勢に対応する姿勢をとっているヒューマノイドエージェントの関節角度の値と同じになるようローカル座標系を選択することが必須である。さもなければ測定された人間の関節角度をヒューマノイドエージェントの関節にマッピングすることはできない。従って、ここでは人間の行為者に対するグローバルおよびローカル身体部品座標系を、行為者が手足を伸ばして直立した姿勢にあるときそれらがすべて整列するような方向とした。この構成では、それらの軸は身体の主軸と平行になるように選択された。こうすれば、基本構成におけるグローバル座標系の関節軸方向は座標軸と一致する。
【００５２】
［座標系と身体上のマーカ位置の実際の決定］
マーカの動きを、観察対象の行為者の関節の動きと関連付けられるようにするには、ローカル身体部品座標系での身体のマーカ位置を知らなければならない。このデータは、行為者がその関節角度が既知である直立姿勢をとっている間にマーカの位置を測定することで得られる。この目的には基本構成が好適である。実験では、行為者にこのような姿勢をとってもらい、マーカを記録した。他のロボットでは異なる基本構成が必要となる場合もありうるだろう。各身体部品につき、そこに付されるマーカすべての重心にローカル座標系の原点がくるようにした。
【００５３】
身体の主軸の方向を決定するために、光学トラッキングシステムを較正してどこが上、下であるかがわかるようにした。従って、基本構成における身体軸の一つを（この実施例ではＺ軸）世界座標系のＺ軸と平行に設定することができる。左肩から右肩までの軸は、左肩および右肩の対向する位置に２個のマーカを付すことにより、またはデータから肩関節の場所を推定することにより、推定できる。これは［５］、［６］に記載の方法の一つを用いて行なうことができる。いずれの場合も二つの対向する位置間の線が第二の身体軸（このシステムではｙ軸）を規定する。測定および／またはマーカ設置の不正確さのため、導出された軸は正確には直交しない。このため、新たなＺ軸方向を再計算することにより、強制的にこれらを直交させるようにする。
【００５４】
【数４】
2004163990.tif 000006
ここでｙｌおよびｙｒはそれぞれ左肩および右肩に（または左肩関節および右肩関節の場所に）付された特別のマーカの座標である。この新たな方向はｙ軸と直交し、ｙに直交するすべての方向のうち元のｚ軸からもっとも偏位が少ないものである。最後に、ｙ軸およびｚ軸方向のベクトルのクロス乗積を用いて、ｚ軸方向が計算される。
【００５５】
グローバル身体座標系の原点は、二つの肩関節（または二つの特別に位置づけられた肩マーカ）を結ぶ線の中間にあると仮定される。これは上体に固定される。基本構成では、グローバル身体座標系とすべてのローカル身体部品座標系とが整列している。この仮定を用いて、グローバル身体座標系（式（３）のＧｘ）における基本構成での各身体部品の位置と向きを計算し、マーカの世界座標系をローカル座標系（式（３）の〜ｙｉおよびｙｉ）に変換することができる。
【００５６】
関節角度はゼロに等しいので式（３）を以下のように簡略化することができる。
【００５７】
【数５】
2004163990.tif 000007
グローバル座標系の位置は以下で与えられる。
【００５８】
【数６】
2004163990.tif 000008
一方、向きはその列に３個の座標軸を有する回転行列Ｒによって与えられる。
【００５９】
【数７】
2004163990.tif 000009
基本構成での各ローカル身体部品座標系の向きはグローバル身体座標系の向きと同じである。従って、相対的な向きは恒等行列で与えられる。相対的な位置はグローバル身体座標系の位置を減算することによって計算できる。従って、身体部品ｘについて、以下が成立する。
【００６０】
【数８】
2004163990.tif 000010
ここで、ｎｘは身体部品に付けられたマーカの数である。最後に、マーカｙｉのローカル座標が数式（５）の逆をとることにより得られる。
【００６１】
［関節位置の推定］
この時点で、依然として推定が必要なパラメータは関節軸の位置のみである。我々の目標は、身体上の関節軸の位置を、身体を中心とした座標系で推定することである。これらのパラメータを推定するために、被験者にある一組の動きをしてもらい、これをモーションキャプチャシステムで測定する。
【００６２】
我々は、一つの大きな最適化プロセスですべての関節場所を推定しようとするのではなく、推定を１０個のより小さい最適化問題に分割することとした。すなわち、首、腰、左右の肩＋肘、左右の手首、左右の臀部＋膝、および左右の踵である。
【００６３】
３−Ｄ空間における関節軸の位置の自由度は２つのみである、なぜなら、軸に沿った位置は任意だからである。基本構成におけるすべての関節軸の方向は、グローバル身体座標系の座標軸と平行であり、従ってすべてベクトル［１，０，０］Ｔ、［０，１，０］Ｔ、［０，０，１］Ｔ、［−１，０，０］Ｔ、［０，−１，０］Ｔ、および［０，０，−１］Ｔの中の一つにより与えられる。注意すべきことは、関節軸の順序を、検討中のヒューマノイドロボットのそれと同じに保つことである。関節軸方向のベクトルの非―ゼロ座標に対応する座標が数式（１）で与えられる結果として生じるひねりに影響を与えないことが容易に理解できる。たとえば、［ａ，ｂ，ｃ］Ｔにあり［０，１，０］Ｔと平行な関節軸について、対応するひねりは以下に等しい。
【００６４】
【数９】
2004163990.tif 000011
従ってこれは第二の座標、すなわちｂから独立している。このことから、各関節軸の場所を関節軸の方向ベクトルの非―ゼロ座標とは異なる二つの座標でパラメータ化することが可能である。
【００６５】
関節軸の場所について独立した座標を得たので、好適な最適化指標を最小にすることでこれらを推定することができる。関節軸の場所とは別に、モデルマーカが測定されたマーカの位置と一致するように、空間内での身体の位置と向きおよび関節角度も推定する必要がある。最適化のプロセスをより小さくするために、検討すべき関節に先立つすべての自由度を、別個の最適化プロセスで推定する。この場合最適化プロセスに含まれるのは推定する必要のある関節角度の位置と、対応する関節角度のみである。それでも、結果として非常に大きな最適化問題が残る。たとえば、首関節の場所を推定するためには、以下の最適化基準を最小化する必要がある。
【００６６】
【数１０】
2004163990.tif 000012
パラメータの数は測定時間の数とともに増加することに注意する必要がある。実験では、典型的には１０個の最適化問題の各々について３００回の測定を行なった。各関節軸の位置は２個のパラメータでパラメータ化できる。各関節軸について２個のパラメータがあり、従って３本の関節軸の場合には６個のパラメータ（首、腰、手および踵の場合）となり、４本の関節軸の場合には８個のパラメータ（肩＋肘、臀部＋膝の場合）となる。これらパラメータは基本構成で与えられ、変化しない。
【００６７】
さらに、測定されたマーカの位置とこれらのパラメータとを関連付けるために、これらの軸に対する関節角度を推定する必要がある。関節軸の位置と異なり、関節角度は測定の組ごとに変化する。従って、３００回の測定をする場合、最適化問題ごとに３×（３００＋２）＝９０６個のパラメータ、または４×（３００＋２）＝１２０８個のパラメータを推定する必要がある。
【００６８】
このような最適化問題を解くために、サブ空間信頼領域法（ｓｕｂｓｐａｃｅ  ｔｒｕｓｔ  ｒｅｇｉｏｎ  ａｐｐｒｏａｃｈ）および疎行列代数［８］を利用した。信頼領域法は指標関数ｈの第一導関数の計算を必要とする。これらの導関数の計算は関節角度θ１（ｔｋ）、θ２（ｔｋ）、θ３（ｔｋ）、ｋ＝１、…Ｎおよび関節位置パラメータａ、ｂ、ｃ、ｄ、ｅ、ｆに関するフォワード動力学関数（３）のヤコビアンの計算に基づいている。関節角度に関するヤコビアンの計算は周知の問題であり、これを［７］に記載の方法を用いて実現した。最適化基準（９）のヤコビアンは疎であり、計算時間を減じるためここでは最適化方法に疎行列代数を用いた。この実施例で用いた関数およびツールはＭＡＴＬＡＢ（ＴＭ）等の最適化ツールキットで利用可能である。
【００６９】
［好ましい実施例］
図３はこの実施例の全体図を示す。図３を参照して、システムは人間の行為者２のさまざまな身体部品に付されたマーカの３−Ｄ位置を測定するための光学トラッカ３０と、測定データの演算を行なってモーションキャプチャのためにパラメトリックな動力学モデルを人間の行為者のサイズに適応させるためにパラメータを最適化するコンピュータシステム２０とを含む。コンピュータシステム２０によってこうして計算された適応パラメータ８０を、光学トラッカ３０がキャプチャした同じ行為者２０の動きデータに基づきロボットを制御するためのデータを生成する動き生成システム８２で用いることができる。
【００７０】
図４はコンピュータシステム２０を示し、図５はシステム２０をブロック図で示す。図４を参照して、コンピュータシステム２０は、ＦＤ（フレキシブルディスク）ドライバ５２およびＣＤ−ＲＯＭ（コンパクトディスク読出専用メモリ）ドライブ５０を有するコンピュータ４０と、キーボード４６と、マウス４８と、モニタ４２とを含む。光学トラッカ３０はコンピュータ４０に接続される。
【００７１】
図４を参照して、コンピュータ２０は、ＦＤドライバ５２およびＣＤ−ＲＯＭドライブ５０に加えて、ＣＰＵ（中央処理装置）５６と、ＣＰＵ５６、ＦＤドライバ５２およびＣＤ−ＲＯＭドライブ５０に接続されたバス６６と、ブートアッププログラム等を記憶する読出専用メモリ（ＲＯＭ）５８と、ＣＰＵ５６に接続され、プログラム命令、システムプログラム、およびデータを記憶するランダムアクセスメモリ（ＲＡＭ）６０とを含む。
【００７２】
ここでは示さないが、コンピュータ４０はさらにローカルエリアネットワーク（ＬＡＮ）への接続を提供するネットワークアダプタボードを含んでもよい。ヒューマノイドロボットの場合、システムはさらに、カメラとロボットの種々の部品をコンピュータシステム２０の制御に従って動かすための多数のアクチュエータを含む。
【００７３】
コンピュータシステム２０にパラメトリックな動力学モデルを人間の行為者のサイズに自動的に適応させる方法を行なわせるプログラムは、ＣＤ−ＲＯＭドライブ５０またはＦＤドライブ５２に挿入されるＣＤ−ＲＯＭ６２またはＦＤ６４に記憶されさらにハードディスク５４に転送される。これに代えて、プログラムは図示しないネットワークを通じてコンピュータ４０に送信されハードディスク５４に記憶されてもよい。プログラムは実行の際にＲＡＭ６０にロードされる。プログラムはＣＤ−ＲＯＭ６２、ＦＤ６４、またはネットワークを介してＲＡＭ６０に直接ロードされてもよい。
【００７４】
以下に説明するプログラムは、コンピュータ４０にこの実施例の方法を行なわせるいくつかの命令を含む。この方法を行なわせるのに必要な基本的機能のいくつかはコンピュータ４０のオペレーティングシステム（ＯＳ）またはサードパーティのプログラム、もしくはコンピュータ４０にインストールされる最適化ツールボックス等のモジュールにより提供されるので、このプログラムはこの実施例の方法を実現するのに必要な機能全てを必ずしも含まなくてよい。プログラムが含む必要があるのは、命令のうち、所望の結果が得られるように制御された態様で適切な機能または「ツール」を呼出すことによって最適化プロセスを行なう部分のみである。コンピュータシステム２０の動作は周知であるので、ここでは繰り返さない。
【００７５】
図６はこの実施例の方法を実現するプログラムのための全体的な制御構造を示す。図６を参照して、人間の行為者（９０）の身体にマーカが付けられた後、プログラムが開始する。肩の離れた位置に２個のマーカが位置付けられるので、基本構成においてこれら２個のマーカを結ぶ線によってグローバル身体座標系の水平軸が規定できる。まず始めに、コンピュータ４０は行為者が基本構成の姿勢で立っている間にモーションキャプチャデータ９２からマーカの３−Ｄデータをキャプチャする（９４）。
【００７６】
その後、ローカル身体座標系におけるマーカの位置と、グローバルフレームに対するローカルフレームの位置とが計算される（９６）。なおこれに先立って、上述のとおりグローバル身体座標系が計算される。
【００７７】
次に、行為者は一組の動きをするよう求められ、これがモーショントラッカ３０によって測定されて、キャプチャされたデータ１１０がコンピュータシステムに送られる（９８）。この方法があいまいさのない回答を返す必要があるのであれば、行為者は適切な自由度全てについて動きを行なわなければならない。
【００７８】
ステップ１００で、コンピュータは、キャプチャされたデータ１１０とパラメトリックな動力学モデル１１２とに基づき大規模な最適化を用いて身体上の関節軸の位置を推定する。このステップの詳細は後に図７を参照して説明する。ステップ１００の出力は、モーションキャプチャのためにパラメトリックな動力学モデルを人間の行為者のサイズに適応させる一組のパラメータである（１０２）。このステップでは、上述のとおり、推定プロセスが１０個の別個のより小さい最適化問題に分割されている。
【００７９】
図７はステップ１００で行なわれるパラメトリックモデルを拡大または縮小するのに必要な最適化プロセスを示す。図７を参照して、モデル内のすべての動力学的連鎖について、以下のステップ１２２から１２６を繰り返す。なお、各鎖は、先行する関節複合体の動きが後続の関節複合体の位置に影響を及ぼすような形で動力学的構造内に連続して配置された一連の関節複合体を含んでいる。通常、動力学的連鎖は、上体、頭、左腕、右腕、左脚、右脚の自由度（ＤＯＦ）またはそのサブセットからなる。関節複合体は首のＤＯＦ、左右の肩＋肘のＤＯＦ、左右の手首のＤＯＦ、腰のＤＯＦ、左右の臀部＋膝のＤＯＦ、左右の踵のＤＯＦ、またはそれらのサブセットからなる。
【００８０】
ステップ１２２で、現在の連鎖内のすべての関節複合体がシーケンシャルな順序で分析され、各関節複合体についてステップ１２４および１２６が繰り返される。
【００８１】
ステップ１２４で、モーションキャプチャデータ１１０のすべての測定時について、身体の姿勢（位置および向き）と、現在の関節複合体に先行する自由度とが、非線形最適化を用いて推定される。身体の姿勢と現在の関節複合体に先行する自由度との推定のためのパラメータは各測定時に互いに独立して推定できるので、ここでの他の最適化プロセスは大規模なものではない。
【００８２】
式（１）から（３）で理解されるように、マーカの３−Ｄ位置は、現在の関節複合体に先行する関節複合体の関節角度、現在の関節複合体の関節角度、基本構成でのマーカの位置、および基本構成における現在と先行する関節軸のｑｉ（軸上のいずれかの点）の関数である。これらのうち、基本構成におけるマーカの位置は既知であり、先行する関節軸のｑｉも、また、先の繰返しにより既知である。これらのパラメータは一定であるとみなすことができる。各測定データはマーカの３−Ｄ位置を含み、その各々は従って、身体の姿勢および先行する関節軸の関節角度の関数となるはずである。各測定時で最適化することにより、その測定に関し先行する関節軸に対する身体の姿勢および関節感度がステップ１２４で決定できる。
【００８３】
次に、ステップ１２６で、身体上の現在の関節軸の位置と関連の角度との、大規模な非線形最適化を用いた推定が行なわれる。ここで、ステップ１２４と同様に、マーカの３−Ｄ位置は、身体の姿勢、現在の関節複合体に先行する関節複合体の関節角度、現在の関節複合体の関節角度、基本構成でのマーカの位置、および基本構成における現在と先行する関節軸のｑｉ（軸上の任意の点）の関数である。これらのうち、基本構成におけるマーカの位置は既知であり、先行する関節軸のｑｉも既知である。さらに、身体の姿勢および先行する関節軸に関する関節角度はステップ１２４で決定されている。これらのパラメータは一定であるとみなすことができる。そこで、すべてのモーションキャプチャデータ１１０に対し大規模な最適化が行なわれる。この最適化により、身体上の関節軸の位置と、現在の関節複合体についての関連する角度が推定される。この最適化は依然として大規模なものであるが、これは一時にすべての測定データについてなされる最適化に比べればはるかに小さく、必要とされる時間も短い。
【００８４】
上述のプロセスを、基本構成における右腕の連鎖を示す図８を参照してさらに説明する。２個の特別のマーカ１４２および１４４が、左右の肩の特定の場所にそれぞれ注意深く付けられる。始めに、光学トラッキングシステムを較正して、ｚ軸が上下方向にくるようにする。ｙ軸の方向１５０はマーカ１４２と１４４とを結ぶことで規定される。ｚ軸の方向は、ｚ軸が線１５０の中心で線１５０と交わり、かつ上下方向からの離間量が最小となるように再計算される。従って、グローバル身体座標系の原点は、ｙ軸とｚ軸との交点で規定される。ｘ軸方向はｙ軸およびｚ軸における単位ベクトルのクロス乗積によって計算される。
【００８５】
基本構成における関節軸の方向は、グローバル身体座標系の方向の一つと平行になるように選択される。
【００８６】
図８に示す関節４、６、８、１０および１２の位置は以下のように推定される。まず始めに、行為者は、関節４、６および８のすべてのＤＯＦを発揮するような一組の動きをするよう求められる。関節４、６および８の位置は、モーションキャプチャデータの最適化により、図７のステップ１２４および１２６のプロセスを行なうことで推定される。ここで関節角度も推定されるが、これらは破棄される。
【００８７】
次に、２度めの繰返しで、ステップ１２４において空間における身体の位置および向きと、関節４、６、８のＤＯＦの関節角度が、非線形の小規模最適化を用いて推定される。その後、ステップ１２６で、関節軸１０および１２の位置とその関連の角度が、大規模な非線形最適化を用いて推定される。
【００８８】
パラメトリック動力学的連鎖のすべての鎖について、同様のプロセスが行なわれる。
【００８９】
［技術的問題］
指標関数（９）では、複数自由度の関節では関節軸が互いに交差することは仮定していない。この最適化指標関数にそのような仮定を組入れることは容易である。この場合、式（９）の６個のパラメータはただ３個に減る。というのも、それらの各々が３個のひねりのパラメータ化において２度ずつ現れるからである。関節軸の場所のうちいくつかを、たとえば左右の肩の軸の場所を同時に推定して、最適化指標に対称性という制約を課してもよい。
【００９０】
モーションキャプチャのセッションの最終目的がコンピュータグラフィックのアニメーションを生成することであれば、このセクションで説明されるステップのいくつかは不要である。また、ヒューマノイドロボットの動力学に課されるいくつかの制約を緩和することもできる。たとえば、ロボットの関節軸が身体の主軸と平行であること、またはそれらが直交するということさえ、必要ではない。しかし、人間の動きをヒューマノイドロボットの動きにマッピングするためには、身体の主軸またはグローバル身体座標系として選択されたどのような他の座標系に対しても、これらの軸の向きを知ることは不可欠である。そうすれば、動力学的モデルをこれらの既知の関節軸方向を用いてパラメータ化することができる。
【００９１】
この方策で誤差の源となるのは、一つは、人間の行為者が正確に基本構成の姿勢に動けないことである。このため、人の動力学的パラメータをロボットの関節角度にマッピングする場合、そのマッピングが幾分不正確になる。しかし、関節角度が既知であるようなヒューマノイドロボットの姿勢に関連付けることができる少なくとも一つの身体の姿勢におけるマーカの位置を知ることなしには、人間の関節角度をヒューマノイドロボットの関節角度に関連付けることは不可能である。
【００９２】
２個の肩マーカを特別に配置することは、たとえばオブライエンら［５］またはシラギら［６］の方法を用いて左右の肩関節位置を推定することで避けられる。その後これらの関節位置を用いて、身体の第二の主軸方向を推定し、グローバル身体座標系の原点を決定することもできる。これらの方法はともに、関節の場所を、それによって結ばれる身体の二つの部分のローカル座標系を用いて推定している。この明細書に開示した方法と同様に、行為者は検討される関節のすべての自由度を発揮する一組の動きを行なうよう求められる。どちらのアプローチも、動きの間のすべての身体部品の位置および向きの推定に基づいている。これらの向きは、測定のたびごとに、身体部品のすべてについてそれに付された少なくとも３個のマーカが可視であれば（たとえばエイランら［９］の方法を用いて）、マーカデータから推定可能である。残念ながら、関節場所の推定はノイズの多いプロセスであり、推定は実際に行なわれた動きに依存して変化する。なぜなら、人間の関節は完璧な球状関節ではなく、動きの間固定されているわけではないからである。従って、このようにして生成されたモデルパラメータが、２個のマーカの特別な配置に基づくパラメータより正確であるという保証はない。加えて、多くの光学トラッキングシステムは疎なマーカデータを提供するのみであり（典型的には較正を行なう場合身体部品の各々につきわずか３個または４個のマーカがあるだけである）、このため、身体部品の位置および向きの推定がオクルージョンのため信頼性の低いものとなってしまう。これらの理由で、実現がより容易な、２個の肩マーカの特別な配置を利用する方が好ましい。
【００９３】
人間の行為者のモデルを、モーションキャプチャのセッションを開始するたびに一から推定する必要はない。次のモーションキャプチャセッションでは、基本構成でのマーカの位置を測定するだけでよい。「自動モデル生成」の項で説明したとおり、こうして新たなローカルマーカ位置およびローカル座標フレームの位置と向きとを、グローバル身体座標系で推定することができる。間接軸の位置は古い動力学的モデルと同じままであり、それらを新しく推定するために一連の動きを行なうことなく、これらを再び用いることができる。
【００９４】
［実験］
動力学的モデルの自動生成のためのこの方法を試験するため、複数の実験を行い、人間の行為者の全身運動を含むいくつかの動きの軌跡をキャプチャした。図９はデータ収集プロセスの例を示す。マーカベースの光学測定システム３０がこの目的で用いられた。光学測定システム３０は特定可能なアクティブマーカを用いる。全身運動の場合にはマーカのうちいくつかがオクルージョンをこうむることがしばしばあるので、アクティブマーカを用いると有利である。このような場合、パッシブなマーカを用いるシステムはよりマッチング誤差に弱い。
【００９５】
実験により、この発明のモデル構築システムがコンピュータアニメーションの生成にも、ヒューマノイドロボットの動きにも、十分正確であることが示された。図９に示すとおり、被験者１５０は、すべての自由度を用いようと、関節複合体の各々（首、左右の肩、肘、手首、腰、左右の臀部、膝、および踵）を動かした。回復された動力学的パラメータは驚くほど安定していた。自動的に回復された関節位置の方に、手動で測定したものより自信を持てるほどであった。なぜなら、多くの関節については、身体での関節の実際の位置を判断するのは困難だからである。上体の自由度を４回にわたって行使した被験者一名の実際の値を表ＩからＸＩに示す。
【００９６】
【表１】
2004163990.tif 000013
【００９７】
【表２】
2004163990.tif 000014
【００９８】
【表３】
2004163990.tif 000015
【００９９】
【表４】
2004163990.tif 000016
【０１００】
【表５】
2004163990.tif 000017
【０１０１】
【表６】
2004163990.tif 000018
動き１−４に対応するモデルが、マーカの配置の選択を同じにし、基本構成も同じにして、一回のデータ収集セッションで生成された。異なるのは動きだけである。これらの表内の動き５が同じ被験者について１ヶ月前におこなわれたデータ収集セッションに対応する。従って、マーカの配置と、とられた基本構成とが異なっている。予想されたとおり、同じセッションから得られたモデルパラメータの偏差に比べれば、この場合の偏差は幾分大きい。これは主に、採用された基本構成の差によるものと思われる。
【０１０２】
この発明の方法で得られたモデルは、データ収集プロセスの始めに被験者がとる基本構成と、２個の特別なマーカの配置とに依存する。明らかに、同じ被験者であっても、データ収集プロセスごとにデータがわずかに相違する。しかしながら、異なるセッションで得られたパラメータは同等であり、毎回すべての自由度を発現させる必要なしに、再びモデルを用いることができた。
【０１０３】
この発明を特定の実施例に則して説明したが、この発明はこれに限られるものではない。発明の範囲は請求項によってのみ制限される。
【図面の簡単な説明】
【図１】ヒューマノイドロボットの例を示す写真による図である。
【図２】パラメトリックな動力学モデルの概略図である。
【図３】この発明の一実施例を実現するシステムの概略図である。
【図４】この発明の実施例が実現されるコンピュータシステムの斜視図である。
【図５】図４に示すコンピュータシステムの構造図である。
【図６】この発明の一実施例に従ったシステムの動作の全体的制御を示すフローチャートである。
【図７】パラメトリックモデルの拡大または縮小に必要な最適化プロセスのフローチャートである。
【図８】この発明の実施例で用いられるパラメトリックな動力学モデルの関節連鎖の概略図である。
【図９】モーションキャプチャプロセスを示す写真による図である。
【符号の説明】
２  人間の行為者、４、６、８、１０、１２  関節、２０  コンピュータシステム、３０  光学トラッカ、４０  コンピュータ
【図１】
2004163990.tif 000019
【図２】
2004163990.tif 000020
【図３】
2004163990.tif 000021
【図４】
2004163990.tif 000022
【図５】
2004163990.tif 000023
【図６】
2004163990.tif 000024
【図７】
2004163990.tif 000025
【図８】
2004163990.tif 000026
【図９】
2004163990.tif 000027
【手続補正書】
【提出日】平成14年11月15日(2002.11.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
図４を参照して、コンピュータ４０は、ＦＤドライバ５２およびＣＤ−ＲＯＭドライブ５０に加えて、ＣＰＵ（中央処理装置）５６と、ＣＰＵ５６、ＦＤドライバ５２およびＣＤ−ＲＯＭドライブ５０に接続されたバス６６と、ブートアッププログラム等を記憶する読出専用メモリ（ＲＯＭ）５８と、ＣＰＵ５６に接続され、プログラム命令、システムプログラム、およびデータを記憶するランダムアクセスメモリ（ＲＡＭ）６０とを含む。


【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
実験により、この発明のモデル構築システムがコンピュータアニメーションの生成にも、ヒューマノイドロボットの動きにも、十分正確であることが示された。図９に示すとおり、被験者１５０は、すべての自由度を用いようと、関節複合体の各々（首、左右の肩、肘、手首、腰、左右の臀部、膝、および踵）を動かした。回復された動力学的パラメータは驚くほど安定していた。自動的に回復された関節位置の方に、手動で測定したものより自信を持てるほどであった。なぜなら、多くの関節については、身体での関節の実際の位置を判断するのは困難だからである。上体の自由度を４回にわたって行使した被験者一名の実際の値を表ＩからＶＩに示す。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１０１
【補正方法】変更
【補正の内容】
【０１０１】
【表１】
2004163990.tif 000028
【外国語明細書】
2004163990.tif 000029
2004163990.tif 000030
2004163990.tif 000031
2004163990.tif 000032
2004163990.tif 000033
2004163990.tif 000034
2004163990.tif 000035
2004163990.tif 000036
2004163990.tif 000037
2004163990.tif 000038
2004163990.tif 000039
2004163990.tif 000040
2004163990.tif 000041
2004163990.tif 000042
2004163990.tif 000043
2004163990.tif 000044
2004163990.tif 000045
2004163990.tif 000046
2004163990.tif 000047
2004163990.tif 000048
2004163990.tif 000049
2004163990.tif 000050
2004163990.tif 000051
2004163990.tif 000052
2004163990.tif 000053
2004163990.tif 000054
2004163990.tif 000055
2004163990.tif 000056
2004163990.tif 000057
2004163990.tif 000058
2004163990.tif 000059
2004163990.tif 000060
2004163990.tif 000061
2004163990.tif 000062
2004163990.tif 000063
2004163990.tif 000064
2004163990.tif 000065
2004163990.tif 000066
2004163990.tif 000067
2004163990.tif 000068
2004163990.tif 000069
2004163990.tif 000070
2004163990.tif 000071
2004163990.tif 000072
2004163990.tif 000073
2004163990.tif 000074
2004163990.tif 000075
2004163990.tif 000076