(57)【要約】      （修正有）【課題】物体とその環境との間の衝突を回避し、かつ計算時間を制限しながら、多関節物体の変位または操作をシミュレートすることを可能にする方法とシステムを提供する。【解決手段】仮想多関節物体１０を仮想環境で個別の動きの連続により動かす方法であって、多関節物体とその環境との間の相互作用距離を計算する工程と、上記相互作用距離から、多関節物体１０の要素の一つに属する第一点（Ｐ１）、および環境に属する第二点（Ｐ２）を抽出する工程と、上記第一および第二点から単一の抽出ベクトルを定義する工程と、多関節物体と環境との間の衝突を回避するように、単一抽出ベクトルに応じて定義され、大域的位置、および／または大域的向き、および／または多関節物体の自由度に作用する動きにより、多関節物体をその環境から遠ざける工程と、を含む方法。【選択図】図８
2005182759.tif 000002
【特許請求の範囲】
【請求項１】
多関節物体（１０）が大域的位置、大域的向き、および複数の自由度を持つ前記多関節物体を構成する一組の連接要素（１１）の位置を定義する複数の関節角度によって仮想環境（１３）で特定され、仮想多関節物体（１０）を前記仮想環境（１３）で単位動きの連続により動かす方法であって、
多関節物体（１０）とその環境（１３）との間の相互作用距離を計算する工程と、
前記相互作用距離から、多関節物体（１０）の要素（１１）の一つに属する第一点（Ｐ１）、および環境（１３）に属する第二点（Ｐ２）を抽出する工程と、
前記第一および第二点（Ｐ１、Ｐ２）から単一の抽出ベクトル
【数１】
2005182759.tif 000058
を定義する工程と、
単一抽出ベクトル
【数２】
2005182759.tif 000059
に応じて定義される動きによって、多関節物体（１０）をその環境（１３）から遠ざけ、分離動作が、多関節物体の大域的位置に作用する並進動作、および／または多関節物体の大域的向きに作用する回転動作、および／または第一点が属する多関節物体の要素に先行する一連の関節に属する関節の各々に作用する関節屈曲動作によって実現される工程と、
を備える、方法。
【請求項２】
前記単位動きの連続における各単位動きの後で、多関節物体（１０）とその環境（１３）との間に衝突が発生したかどうかを決定する工程をさらに備えることを特徴とする、請求項１に記載の方法。
【請求項３】
相互作用距離が侵入深さに対応し、抽出ベクトル
【数３】
2005182759.tif 000060
が第二点（Ｐ２）の座標から第一点（Ｐ１）の座標を引いたものに等しく、侵入深さは多関節物体（１０）がその環境（１３）との限定され制御された量の衝突を伴って動くことを可能にすることを特徴とする、請求項１または２に記載の方法。
【請求項４】
相互作用距離が最小距離に対応し、抽出ベクトル
【数４】
2005182759.tif 000061
は第一点（Ｐ１）の座標から第二点（Ｐ２）の座標を引いたものに等しく、最小距離は多関節物体（１０）がその環境（１３）との衝突なく動くことを可能にすることを特徴とする、請求項１または２に記載の方法。
【請求項５】
多関節物体（１０）とその環境（１３）との間に衝突が発生した場合、前記単位動きの連続における一番最近の単位動きを取り消す工程をさらに備えることを特徴とする、請求項１から４のいずれか一項に記載の方法。
【請求項６】
多関節物体（１０）とその環境（１３）との間に衝突が起きない限り、第一および第二点（Ｐ１、Ｐ２）を抽出し、抽出ベクトル
【数５】
2005182759.tif 000062
を定義し、多関節物体（１０）を遠ざける前記工程が実行されないことを特徴とする、請求項１から４のいずれか一項に記載の方法。
【請求項７】
併進動作が、多関節物体（１０）の大域的位置に作用する抽出ベクトル
【数６】
2005182759.tif 000063
の成分に比例することを特徴とする、請求項１から５のいずれか一項に記載の方法。
【請求項８】
多関節物体（１０）の大域的向きに作用する回転動作が、
多関節物体（１０）の重心（Ｇ）と抽出ベクトル
【数７】
2005182759.tif 000064
の原点との間に第一大域的ベクトル
【数８】
2005182759.tif 000065
を定義する工程と、
多関節物体（１０）の重心（Ｇ）と抽出ベクトル
【数９】
2005182759.tif 000066
の端点との間に第二大域的ベクトル
【数１０】
2005182759.tif 000067
を定義する工程と、
第一大域的ベクトルを第二大域的ベクトルと一致させる大域的回転角
【数１１】
2005182759.tif 000068
を計算する工程と、
多関節物体（１０）の大域的向きを定義する単数または複数の軸を中心として前記大域的回転角を分解することによって、一つ以上の個別大域的回転角を計算する工程と、
前記個別大域的回転角に比例する一つ以上の角度にわたって多関節物体（１０）を回転させる工程と、
を備えることを特徴とする、請求項１から５のいずれか一項に記載の方法。
【請求項９】
前記第一点が属する多関節物体の要素に先行する一連の関節に属する関節の各所定の関節（１２ａ）に作用する関節屈曲動作が、
所定の関節（１２ａ）の連接中心と抽出ベクトル
【数１２】
2005182759.tif 000069
の原点との間に第一局所的ベクトル
【数１３】
2005182759.tif 000070
を定義する工程と、
所定の関節の連接中心と抽出ベクトル
【数１４】
2005182759.tif 000071
の端点との間に第二局所的ベクトル
【数１５】
2005182759.tif 000072
を定義する工程と、
第一局所的ベクトルを第二局所的ベクトルと一致させるための局所的回転角
【数１６】
2005182759.tif 000073
を計算する工程と、
前記所定の関節に対応する自由度を定義する単数または複数の軸上に前記局所的回転角を分解することによって、一つ以上の個別関節回転角を計算する工程と、
前記個別関節角度に比例する角度にわたって前記所定の関節で連接要素（１１）を回転する工程と、
を備えることを特徴とする、請求項１から５のいずれか一項に記載の方法。
【請求項１０】
大域的回転角
【数１７】
2005182759.tif 000074
が、第一および第二大域的ベクトル間の大域的ベクトル積によって計算され、局所的回転角
【数１８】
2005182759.tif 000075
が、第一および第二局所的ベクトル間の局所的ベクトル積によって計算されることを特徴とする、請求項８または９に記載の方法。
【請求項１１】
個別大域的回転角が大域的ベクトル積と大域的向きの軸との間の一つ以上のスカラ積によって計算され、個別関節角度が局所的ベクトル積と所定の関節の自由度の単数または複数の軸との間の一つ以上のスカラ積によって計算されることを特徴とする、請求項８から１０のいずれか一項に記載の方法。
【請求項１２】
多関節物体（１０）が、大域的位置および／または大域的向きおよび／または多関節物体の複数の自由度に作用するアトラクタエージェント（２２、３２）によって動かされることを特徴とする、請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
多関節物体が、大域的位置および／または大域的向きおよび／または多関節物体の複数の自由度に作用するアボイダエージェント（２１、３１）によって、その環境から遠ざけられることを特徴とする、請求項１から１２のいずれか一項に記載の方法。
【請求項１４】
位置および／または向きおよび／または多関節物体の複数の自由度に作用するオペレータエージェント（２３、３３）によって、オペレータが多関節物体（１０）を実時間で動かす工程をさらに備えることを特徴とする、請求項１から１３のいずれか一項に記載の方法。
【請求項１５】
多関節物体が仮想環境の床上を移動する仮想ダミー（１０ａ）であり、ダミーが仮想床上の位置、前記床に垂直でありダミーの重心を通る鉛直軸を中心とする向き、および連接要素の組を定義する複数の関節角度によって定義されることを特徴とする、請求項１から１４のいずれか一項に記載の方法。
【請求項１６】
コンピュータ（１）によって実行されたときに、請求項１から１５のいずれか一項に記載の方法を実現するように設計されることを特徴とする、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想環境における仮想多関節物体（ｖｉｒｔｕａｌ  ａｒｔｉｃｕｌａｔｅｄ  ｏｂｊｅｃｔ）の移動をシミュレートする分野に関する。本発明は、より詳細には多関節物体とその環境との間の衝突を回避することに関する。
【背景技術】
【０００２】
航空機または宇宙産業など、多くの産業では、仮想現実でモデルを使用することが一般的な慣行である。例えば、デジタルモックアップは様々な部品間の干渉を評価するためにしばしば使用される。
【０００３】
同様に、モデリングは、技術者またはロボットが例えばこれらの動作をするために行なう必要のある動きを可視化するために、定義された環境で人間またはロボットの動作をシミュレートするのに使用することができる。これは、定期点検および保守を必要とする、航空機エンジンの部品のような機械の特定の部品へのアクセス性を検証し、最適化するのに有用である。
【０００４】
従って、装置の様々な要素へのアクセスの容易さは、要素がモデル化されるとすぐに、仮想多関節物体を使用して、シミュレーションによって仮想的に検査することができる。
【０００５】
仮想多関節物体は、複数の自由度で連接された複数の要素を特徴とする動的システムを定義するデジタルデータセットである。
【０００６】
従って、所定の段階で、仮想多関節物体は、三次元空間におけるその位置および向きによって、およびその関節の自由度の値によって、定義することができる。仮想多関節物体の環境を定義するデータおよびパラメータは、デジタルデータ媒体に格納することができる。
【０００７】
この型の用途のための仮想多関節物体の使用はすでに存在する。
【０００８】
一例は、「仮想現実、製品のデジタルモックアップ、設計を分散しかつ共有するためのツール（Ｒｅａｌｉｔｅ  ｖｉｒｔｕｅｌｌｅ，  ｍａｑｕｅｔｔｅ  ｎｕｍｅｒｉｑｕｅ  ｄｕ  ｐｒｏｄｕｉｔ，  ｏｕｔｉｌｓ  ｄｅ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｅｔ  ｐａｒｔａｇｅ  ｄｅ  ｌａ  ｃｏｎｃｅｐｔｉｏｎ）」（Ｊｏｕｒｎｅｅｓ  Ｐｒｉｍｅｃａ，  Ｌａ  Ｐｌａｇｎｅ，  Ａｐｒｉｌ  ７−９，  １９９９）と称するＣｈｅｄｍａｉｌ、ＤａｍａｙおよびＬｅ  Ｒｏｙによる論文に掲げられている。
【０００９】
この論文は、仮想環境における二つの仮想多関節アームの動きのモデルを使用して、障害のある環境で物体を組み立てたり分解するためのアクセス性を検証する方法を提案している。
【００１０】
多関節物体と環境との間の衝突を回避するために、Ｃｈｅｄｍａｉｌらによる論文に提示された方法は、多関節アームの自由度に対する衝突線勾配を計算することを利用する。
【００１１】
有限差分による勾配の計算は、各多関節アーム関節の多数の動きが行われる必要があり、各動きに対し、衝突線の長さを計算する必要がある。この方法は計算時間を非常に浪費するために、とても遅い。
【非特許文献１】「Ｒｅａｌｉｔｅ  ｖｉｒｔｕｅｌｌｅ，  ｍａｑｕｅｔｔｅ  ｎｕｍｅｒｉｑｕｅ  ｄｕ  ｐｒｏｄｕｉｔ，  ｏｕｔｉｌｓ  ｄｅ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｅｔ  ｐａｒｔａｇｅ  ｄｅ  ｌａ  ｃｏｎｃｅｐｔｉｏｎ」（Ｃｈｅｄｍａｉｌ，Ｄａｍａｙ  ａｎｄ  Ｌｅ  Ｒｏｙ，Ｊｏｕｒｎｅｅｓ  Ｐｒｉｍｅｃａ，  Ｌａ  Ｐｌａｇｎｅ，  Ａｐｒｉｌ  ７−９，  １９９９）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、物体とその環境との間の衝突を回避し、かつ計算時間を制限しながら、多関節物体の変位または操作をシミュレートすることを可能にする方法とシステムを提供することによって、上述した欠点を是正しようと努めるものである。
【課題を解決するための手段】
【００１３】
これらの目的は、多関節物体が大域的位置、大域的向き、および複数の自由度を持つ上記多関節物体を構成する一組の連接要素（ａｒｔｉｃｕｌａｔｅｄ  ｅｌｅｍｅｎｔ）の位置を定義する複数の関節角度（ｊｏｉｎｔ  ａｎｇｌｅ）によって上記環境で特定される場合に、仮想多関節物体を仮想環境で単位動きの連続により動かす方法であって、
多関節物体とその環境との間の相互作用距離を計算する工程と、
上記相互作用距離から、多関節物体の要素の一つに属する第一点、および環境に属する第二点を抽出する工程と、
上記第一および第二点から単一の抽出ベクトルを定義する工程と、
多関節物体と環境との間の衝突を回避するように、単一抽出ベクトルに応じて定義され、多関節物体の大域的位置、および／または多関節物体の大域的向き、および／または多関節物体の自由度に作用する動きにより、多関節物体をその環境から遠ざける工程と、
を含む方法によって達成される。
【００１４】
従って、本発明の方法は、相互作用距離の単一の計算を使用して、多関節物体をその環境から遠ざける。これは卓越した平易さおよび時間の著しい節約を導く。
【００１５】
本発明の方法は、単位動きの上記連続における各単位動きの後で、多関節物体とその環境との間で衝突が発生したかどうかを決定する工程をさらに含む。
【００１６】
本発明の第一の実施では、相互作用距離は侵入深さに相当するので、抽出ベクトルは第二点の座標から第一点の座標を引いたものに等しく、侵入深さは多関節物体がその環境との限定され制御された量の衝突を伴って動くことを可能にする。
【００１７】
本発明の第二の実施では、相互作用距離は最小距離に対応するので、抽出ベクトルは第一点の座標から第二点の座標を引いたものに等しく、最小距離は多関節物体がその環境と衝突することなく動くことを可能にする。
【００１８】
この方法は、多関節物体とその環境との間に衝突が発生した場合、上記単位動きの連続における一番最近の単位動きを取り消す工程をさらに含む。
【００１９】
多関節物体と環境との間に衝突が起きない限り、第一および第二点を抽出し、抽出ベクトルを定義し、多関節物体を遠ざける上記工程は実行されないことが好都合である。
【００２０】
本発明の第一の特徴によると、多関節物体は、多関節物体の大域的位置に作用する抽出ベクトルの成分に比例する並進動作によって、その環境から遠ざかることができる。
【００２１】
本発明の第二の特徴によると、多関節物体は、多関節物体の大域的向きに作用する回転動作によってその環境から遠ざけられ、回転動作は、
多関節物体の重心と抽出ベクトルの原点との間に第一大域的ベクトルを定義する工程と、
多関節物体の重心と抽出ベクトルの端点との間に第二大域的ベクトルを定義する工程と、
第一大域的ベクトルを第二大域的ベクトルと一致させる大域的回転角を計算する工程と、
多関節物体の大域的向きを定義する単数または複数の軸を中心として上記大域的回転角を分解することによって、一つ以上の個別大域的回転角を計算する工程と、
上記個別大域的回転角に比例する一つ以上の角度にわたって多関節物体を回転させる工程と、
を含む。
【００２２】
本発明の第三の特徴によると、多関節物体は、上記第一点が属する多関節物体の要素に先行する一連の関節に属する関節の各々に作用する関節屈曲動作によって、その環境から遠ざけられ、上記一連の関節における関節の各々に作用する関節屈曲動作は、
上記所定の関節の連接中心と抽出ベクトルの原点との間に第一局所的ベクトルを定義する工程と、
上記所定の関節の連接中心と抽出ベクトルの端点との間に第二局所的ベクトルを定義する工程と、
第一局所的ベクトルを第二局所的ベクトルと一致させるための局所的回転角を計算する工程と、
上記所定の関節に対応する自由度を定義する単数または複数の軸上で上記局所的回転角を分解することによって、一つ以上の個別関節回転角を計算する工程と、
上記個別関節角度に比例する角度にわたって上記所定の関節で連接要素を回転させる工程と、
を含む。
【００２３】
大域的回転角は第一および第二大域的ベクトル間の大域的ベクトル積によって計算することができ、局所的回転角は第一および第二局所的ベクトル間の局所的ベクトル積によって計算される。
【００２４】
個別大域的回転角は大域的ベクトル積と大域的向きの軸との間の一つ以上のスカラ積によって計算することができ、個別関節角度は、局所的ベクトル積と所定の関節の自由度の単数または複数の軸との間の一つ以上のスカラ積によって計算される。
【００２５】
本発明の特定の実施では、多関節物体は、大域的位置、および／または大域的向き、および／または多関節物体の複数の自由度に作用するアトラクタエージェント（ａｔｔｒａｃｔｅｒ  ａｇｅｎｔ）によって動かすことができる。
【００２６】
この方法は、位置および／または向きおよび／または多関節物体の複数の自由度に作用するオペレータエージェント（ｏｐｅｒａｔｏｒ  ａｇｅｎｔ）によって、オペレータが多関節物体を実時間で動かす工程をさらに含むことが好都合である。
【００２７】
本発明の特徴によると、多関節物体は仮想環境の床上を移動する仮想ダミーであり、ダミーは仮想床上の位置、上記床に垂直（ｐｅｒｐｅｎｄｉｃｕｌａｒ）でありダミーの重心を通る鉛直（ｖｅｒｔｉｃａｌ）軸を中心とする向き、および連接要素の組を定義する複数の関節角度によって定義される。
【００２８】
本発明はまた、コンピュータによって実行されたときに、上述した方法を実現するように設計されたコンピュータプログラムをも提供する。
【００２９】
本発明の方法およびシステムの他の特徴および利点は、非限定的な例示として添付の図面を参照して掲げる以下の説明を読むことにより、いっそう明らかになるであろう。
【発明を実施するための最良の形態】
【００３０】
図１は、多関節物体の動きをモデル化するのに使用することができるシステムを示す。システムは、発明の方法を実現するように設計されたコンピュータプログラムを実行するために使用される、適正なグラフィックス能力を有するワークステーションまたはコンピュータ１を含む。
【００３１】
コンピュータ１は、この型の装置に通常見受けられるハードウェア手段を含む。さらに詳しくは、コンピュータは、本発明の方法を実現するためのプログラムの命令のシーケンスを実行する中央装置２と、データおよび実行されるプログラムを格納する中央メモリ３と、データおよび使用するプログラムの長期格納用のデジタルデータ記憶媒体（ハードディスク、ＣＤ４、フロッピー（登録商標）ディスク等）と、入力周辺装置（キーボード５、２Ｄまたは３Ｄマウス６、ジョイスティック等）と、多関節物体の動きを観察することを可能にするための出力周辺装置（スクリーン７、立体ヘッドセットまたは眼鏡等）とを含む。
【００３２】
当然ながら、計算能力を高めるために、本発明のモデリングは並列に動作する複数のワークステーションで実現することができる。
【００３３】
図２Ａは非常に簡単な略図であり、関節の木構造を特徴とする仮想多関節物体１０を示す。従って多関節物体１０は、一組の「受動的物体」、すなわち従来の方法で複数の一連の関節に分類することができる、関節１２によって相互接続された要素１１と定義される。
【００３４】
多関節物体１０の重心Ｇにその原点を有する局所的基準系を、それに関連付けることができる。
【００３５】
特に、局所的基準系は多関節物体１０の重心Ｇを通る単一の軸
【数１９】
2005182759.tif 000003
を有することができる。
【００３６】
多関節物体１０は、多関節物体１０が移動しながら回避しなければならない特定数の物体または障害物１３ａ、１３ｂ、１３ｃ、および１３ｄによって妨害される仮想環境１３において移動する。多関節物体１０およびその環境は三次元空間（Ｏ；ｘ，ｙ，ｚ）で定義される。
【００３７】
この三次元空間を使用して、その環境１３における多関節物体１０ならびに様々な物体１３ａ、１３ｂ、１３ｃ、および１３ｄの位置および向きを簡単に特定することができる。
【００３８】
従って、多関節物体１０はいつでも、大域的位置、大域的向き、および複数の自由度に対する連接要素１１の組の位置を定義する複数の関節角度によって、環境１３内で特定することができる。
【００３９】
多関節物体１０の大域的位置は、その重心Ｇについて軸ｘ、ｙ、およびｚに沿ってデカルト座標によって定義することができる。
【００４０】
その大域的向きは、軸ｘ、ｙ、およびｚに対して相対的に多関節物体に関連付けられる軸
【数２０】
2005182759.tif 000004
の向きを定義する三つの角によって、公知の方法で特定することができる。
【００４１】
当然のことながら、関節の限界によって、かつ多関節物体１０の様々な部材または要素１１間の物理的接続によって課せられるパラメータまたは制約を考慮に入れることも必要である。
【００４２】
多関節物体１０を定義するこれらのデータおよび変数、ならびにその環境１３を定義するパラメータは、コンピュータシステム１のデジタルデータ媒体３に格納される。
【００４３】
図２Ｂは、多関節物体が特に、仮想環境１３の床上を動く仮想ダミー１０ａによって構成することができることを示す。
【００４４】
そのような状況で、ダミー１０ａは仮想グラウンドにおける位置、上記グラウンドに垂直でありダミー１０ａの重心Ｇを通る鉛直軸
【数２１】
2005182759.tif 000005
を中心とする向き、および連接要素の組を定義する複数の関節角度によって定義することができる。
【００４５】
従来の方法で、ダミー１０ａのような多関節物体１０は、例えば目標１３ｃに到達するために、単位動きの連続により、仮想環境１３で動くことができる。
【００４６】
従って、多関節物体１０がその目標１３ｃに到達することを可能にする軌道を生成するために、その位置を移動するための予め定められたステップサイズを使用して多関節物体１０の大域的位置に作用し、および／または向きを変えるための予め定められたステップサイズを使用して多関節物体の大域的向きに作用し、および／または関節の動きΔａのための予め定められたステップサイズを使用して多関節物体の複数の自由度に作用することが可能である。
【００４７】
これは、目標１０ｃの寸法または環境における他の物体１３ａ、１３ｂのいずれの寸法も考慮することなく、多関節物体１０がその目標１３ｃに向かって引き付けられることにつながる。
【００４８】
多関節物体１０がその環境１３との衝突を回避することを可能にするために、衝突判定基準を定義する必要がある。そのような判定基準は、多関節物体１０とその環境１３との間の相互作用距離を計算することによって、当業者に公知の方法で定義することができ、この計算は、上記相互作用距離を具体化する点をも提供する。
【００４９】
相互作用距離は、多関節物体１０とその環境との間の最小距離または侵入深さに対応することができることに注意しなければならない。
【００５０】
図３Ａおよび３Ｂは、多関節物体１０の要素と環境に属する物体１３ｄとの間の相互作用距離の認識を示す。
【００５１】
図３Ａの例は、さらに詳しくは、多関節物体１０とその環境との間の最小距離判定基準を示し、さらにこの最小距離を具体化する点Ｐ１およびＰ２をも示す。
【００５２】
加えて、図３Ｂの例は、さらに詳しくは、多関節物体１０とその環境との間の侵入深さ判定基準を示し、かつそれはこの侵入深さを定義する点Ｐ１およびＰ２を定義する。
【００５３】
従って、相互作用距離の計算により、以下の説明で「第一点」と呼ばれ、多関節物体１０の要素１１の一つに属する点Ｐ１、および以下の説明で「第二点」と呼ばれ、環境１３に属する別の点Ｐ２を抽出することが可能になる。
【００５４】
次いで、これらの第一および第二点Ｐ１およびＰ２から、単一の抽出ベクトル
【数２２】
2005182759.tif 000006
を定義することができる。
【００５５】
最小距離の計算に基づくモードでは（図３Ａ）、抽出ベクトル
【数２３】
2005182759.tif 000007
は第一点Ｐ１の座標から第二点Ｐ２の座標を引いたものに等しい。すなわち、第二点Ｐ２は抽出ベクトル
【数２４】
2005182759.tif 000008
の原点であり、第一点Ｐ１は抽出ベクトル
【数２５】
2005182759.tif 000009
の端点である。
【００５６】
対照的に、侵入深さの計算に基づくモードでは（図３Ｂ）、抽出ベクトル
【数２６】
2005182759.tif 000010
は第二点Ｐ２の座標から第一点Ｐ１の座標を引いたものに等しい。すなわち、第一点Ｐ１は抽出ベクトル
【数２７】
2005182759.tif 000011
の原点であり、第二点Ｐ２は抽出ベクトル
【数２８】
2005182759.tif 000012
の端点である。
【００５７】
最終的に、多関節物体１０と環境１３との間の衝突を回避するために、上記多関節物体１０は、大域的位置、および／または大域的向き、および／または多関節物体１０の自由度に作用することにより単一の抽出ベクトル
【数２９】
2005182759.tif 000013
の関数として定義される動きによって、その環境から遠ざけることができる。
【００５８】
図４から６は、最小距離モードを使用して実現される多関節物体の分離動作を示すが、当然のことながら、浸透深さモードを使用する場合も原理は同じである。
【００５９】
図４は、多関節物体の大域的位置に作用する分離動作を示す。
【００６０】
従って、多関節物体１０は、多関節物体の大域的位置に作用する抽出ベクトル
【数３０】
2005182759.tif 000014
の成分に比例する並進動作
【数３１】
2005182759.tif 000015
によりその環境１３から遠ざかる。すなわち
【数３２】
2005182759.tif 000016
であり、ここでλは正の係数である。
【００６１】
特に、大域的位置が平面（ｘ，ｙ）内で定義されるダミー１０ａの例では、考慮されるのは抽出ベクトル
【数３３】
2005182759.tif 000017
の上記平面への射影だけである。
【００６２】
従って並進動作は、多関節物体１０に大域的移動を実行させることによって、衝突を回避することに貢献する。
【００６３】
最小距離または侵入深さから計算される単一の抽出ベクトル
【数３４】
2005182759.tif 000018
は、位置移動における単位ステップサイズΔｐの値によって正規化することができる。すなわち、並進動作
【数３５】
2005182759.tif 000019
は次式によって与えられる。
【００６４】
【数３６】
2005182759.tif 000020
図５は、多関節物体の大域的向きに作用する分離動作を示す。
【００６５】
多関節物体１０は、一点、例えば重心Ｇを中心に実行される回転を決定し、多関節物体１０に多関節物体１０上の抽出ベクトル
【数３７】
2005182759.tif 000021
の作用点を上記ベクトル
【数３８】
2005182759.tif 000022
に沿って移動させることにより、その環境１３から遠ざけられる。この回転は、向きの移動のステップサイズΔｏによって正規化される。
【００６６】
多関節物体１０の大域的向きに作用するこの回転動作は、次の工程によって決定することができる。
【００６７】
以下の説明で「第一大域的ベクトル」と呼ばれる第一ベクトル
【数３９】
2005182759.tif 000023
が、多関節物体１０の重心Ｇと抽出ベクトル
【数４０】
2005182759.tif 000024
の原点との間に定義される。この例では、抽出ベクトル
【数４１】
2005182759.tif 000025
の原点は第二点Ｐ２であるが、侵入深さモードを使用する場合にはそれは第一点Ｐ１になる。
【００６８】
同様に、第二大域的ベクトル
【数４２】
2005182759.tif 000026
が、多関節物体１０の重心Ｇと抽出ベクトル
【数４３】
2005182759.tif 000027
の端点Ｐ１との間に定義される。
【００６９】
その後、第一大域的ベクトル
【数４４】
2005182759.tif 000028
を第二大域的ベクトル
【数４５】
2005182759.tif 000029
と一致させるために、以下の説明で「大域的回転角」と呼ばれる回転角
【数４６】
2005182759.tif 000030
が計算される。大域的回転角
【数４７】
2005182759.tif 000031
は、以下で「大域的ベクトル積」と呼ばれる、第一および第二大域的ベクトル
【数４８】
2005182759.tif 000032
および
【数４９】
2005182759.tif 000033
間のベクトル積によって計算することができる。従って、大域的回転角
【数５０】
2005182759.tif 000034
は次式によって与えられる。
【００７０】
【数５１】
2005182759.tif 000035
この大域的回転角
【数５２】
2005182759.tif 000036
は、多関節物体の大域的向きを定義する単数または複数の軸を中心とする一つ以上の個別大域的回転角θｇｉに分解（ｒｅｓｏｌｖｅ）される。個別大域的回転角θｇｉは、大域的ベクトル積と単数または複数の大域的向きの軸との間のスカラ積によって計算することができる。
【００７１】
最終的に、多関節物体１０は、上記の個別大域的回転角θｇｉに比例する一つ以上の角度αにわたって回転される。個別大域的回転角θｇｉは、向きの移動のステップサイズΔｏに対応する値によって正規化される。すなわちα＝θｇｉ／Δｏとなる。
【００７２】
特に、多関節物体の大域的向きが図２の例のように単一の軸
【数５３】
2005182759.tif 000037
によって定義される場合、次式：
【数５４】
2005182759.tif 000038
によって与えられ、上記軸
【数５５】
2005182759.tif 000039
を中心とする多関節物体の回転動作を定義する、単一の正規化された個別大域的回転角αが結果的に得られる。
【００７３】
図６は、多関節物体の自由度に作用する関節屈曲動作を示す。
【００７４】
多関節物体１０は、上に定義した第一点Ｐ１が属する多関節物体の要素１１に先行する一連の関節に属する関節１２の各々に作用する関節屈曲動作によって、その環境１３から遠ざけられることに注意すべきである（図２Ａおよび２Ｂ参照）。
【００７５】
例として、多関節物体が仮想ダミー１０ａである場合、そしてダミー１０ａと環境１３との間の相互作用距離が前腕の第一点Ｐ１によって具体化される場合には、一連の関節は肘、肩、および鎖骨に対応する。すなわち、関節屈曲動作は、前腕に先行する腕の関節１２の全てに作用するように計算される。そうではなく、第一点Ｐ１が上腕に属する場合には、一連の関節は肩および鎖骨の関節のみを含む。第一点Ｐ１が手に属する場合には、腕の関節１２の全てを考慮に入れなければならない。すなわち、一連の関節は手首、肘、肩、および鎖骨を含む。
【００７６】
従って、所定の多関節物体１０の場合の一連の関節は、多関節物体１０のどの連接要素１１が第一点Ｐ１を有するかに依存する。
【００７７】
特に、図６の例では、一連の関節１２ａ、１２ｂ、および１２ｃの一部を形成する所定の関節１２ａに作用する関節の回転動作を見ることができる。
【００７８】
所定の関節１２ａに作用する関節回転動作は、以下の工程によって決定することができる。
【００７９】
以下の説明で「第一局所的ベクトル」と呼ばれる第一ベクトル
【数５６】
2005182759.tif 000040
が、上記所定の関節１２ａの連接中心と抽出ベクトル
【数５７】
2005182759.tif 000041
の原点Ｐ２との間に定義される。
【００８０】
同様に、第二局所的ベクトル
【数５８】
2005182759.tif 000042
が、上記所定の関節１２ａの連接中心と抽出ベクトル
【数５９】
2005182759.tif 000043
の端点Ｐ１との間に定義される。
【００８１】
その後、第一ベクトル
【数６０】
2005182759.tif 000044
を第二局所的ベクトル
【数６１】
2005182759.tif 000045
と一致させるように、以下の説明で「局所的回転角」と呼ばれる回転角
【数６２】
2005182759.tif 000046
が計算される。局所的回転角
【数６３】
2005182759.tif 000047
は、次式：
【数６４】
2005182759.tif 000048
を使用して、以下で「局所的ベクトル積」と呼ばれる、第一および第二局所的ベクトル
【数６５】
2005182759.tif 000049
および
【数６６】
2005182759.tif 000050
間のベクトル積によって計算することができる。
【００８２】
この局所的回転角
【数６７】
2005182759.tif 000051
は、多関節物体１０の上記所定の関節１２ａに対応する自由度を定義する単数または複数の軸
【数６８】
2005182759.tif 000052
を中心とする一つ以上の個別関節回転角θｌｉに分解される。この例では、所定の関節１２ａは二つの軸
【数６９】
2005182759.tif 000053
および
【数７０】
2005182759.tif 000054
を有する。個別関節回転角θｌｉは、局所的ベクトル積と所定の関節１２ａの自由度の単数または複数の軸
【数７１】
2005182759.tif 000055
との間の一つ以上のスカラ積によって計算することができる。
【００８３】
最終的に、上記所定の関節の連接要素が、関節の上記個別角度θｌｉに比例する一つ以上の角度αｉにわたって回転される。
【００８４】
個別関節回転角θｌｉは、関節の動きのステップサイズΔｏに対応する値によって正規化される。
【００８５】
上記所定の関節の連接要素は、次式：
【数７２】
2005182759.tif 000056
によって与えられる一つ以上の角度αｉにわたって回転される。
【００８６】
当然ながら、上記の同じ工程は、考慮している一連の関節を形成する関節１２ａ、１２ｂ、および１２ｃの全てに対して実行しなければならない。
【００８７】
従って、最小距離または侵入深さから計算された単一の抽出ベクトル
【数７３】
2005182759.tif 000057
を使用することにより、多関節物体１０と環境１３との間の衝突回避手順を改善することが大いに可能になる。
【００８８】
本発明は、従来技術で要求される勾配計算の数に比較して大量の計算時間を必要とする、最小距離または侵入深さの計算の回数をかなり低減することを可能にし、多関節物体と環境との間の衝突が回避される精度に影響を及ぼすことなく、これを可能にする。
【００８９】
図７Ａは、物体とその環境の間の衝突を回避しながらの多関節物体の動きをモデル化する主要工程を示すフローチャートである。
【００９０】
ステップＳ０はフローチャートの初期化工程であり、そこで様々なパラメータが定義される。例えば、モデルのクロック計算パルス用または計算工程用のカウンタが初期化される。
【００９１】
同様に、位置動作Δｐ、向き動作Δｏ、および関節動作Δａの単位動きまたは工程も、ステップＳ０で定義することができる。例えば、関節１２の性質に応じて様々なステップサイズを使用することができる。また、全ての関節１２に対し、かつ多関節物体１０の軌道に沿った全てに対し、最適な一定のステップサイズを選択することも可能である。
【００９２】
ステップＳ１で、多関節物体１０の個別の動きが計算される。
【００９３】
ステップＳ２は、多関節物体１０と環境１３との間に衝突があるか否かを決定する試験である。衝突判定基準は相互作用距離の値に依存する。
【００９４】
すなわち、最小距離に基づくモードの場合、多関節物体１０がその環境１３と衝突することなく動くことを可能にするために、最小距離が、ゼロであってもよい最小しきい距離未満またはそれに等しければ、衝突が発生したとみなすことができる。
【００９５】
対照的に、侵入深さに基づくモードの場合、上記深さがしきい侵入深さより大きいか等しくなれば、衝突が発生したとみなすことができる。従って、上記しきい値に対し値がどのように選択されるかによって、第一に、多関節物体１０をその環境１３と衝突することなく動かすことを可能にし、あるいは第二に、多関節物体１０をその環境１３との限定されかつ制御された衝突量で動かすことを可能にすることができる。この状況は、多関節物体１０が環境１３の物体と接触するときに、可塑度をモデル化することを可能にする。
【００９６】
前ステップＳ２で使用した判定基準に従って衝突がない場合には、例えば次の単位動きを計算するために上記ステップＳ１に戻る前に、ステップＳ１で計算された多関節物体１０の変位が、ステップＳ３で、コンピュータ１のスクリーン７上に表示される。
【００９７】
従って、ステップＳ３では、第一および第二点を抽出し、抽出ベクトルを定義し、かつ多関節物体１０を環境１３から遠ざける工程が実行されない。
【００９８】
対照的に、衝突がある場合には、ステップＳ１で計算された単位変位は、ステップＳ４で取り消される。
【００９９】
その後、ステップＳ１にループバックする前に、ステップＳ５で、多関節物体１０をその環境１３から遠ざけるために、単一の抽出ベクトルに応じて定義され、かつ大域的位置、および／または大域的向き、および／または多関節物体の自由度に作用する動きが計算される。
【０１００】
図７Ｂは、侵入深さを使用する計算モードの場合にだけ有効な、図７Ａの変形を示す。
【０１０１】
この図のフローチャートは、ステップＳ４がもはや存在しないことを除いては、図７Ａのものと同じである。
【０１０２】
従って、ステップＳ２で衝突がある場合、この方法は、一番最近の単位動きを取り消すことなく、直ちに多関節物体１０をその環境１３から遠ざけるステップＳ５に進み、それにより多関節物体１０とその環境１３との間の少量の侵入が可能になる。
【０１０３】
仮想多関節物体１０は、「マルチエージェント」システムによって、またはいずれかの他の公知のシステムによって、仮想環境１３で動くことができる。
【０１０４】
図８は非常に簡単な略図であり、多関節物体１０の動きをモデル化するために使用できるマルチエージェントシステム５０のアーキテクチャを示す。このマルチエージェントシステム５０は一組の能動要素または「エージェント」２０、２１、２２、２３、３０、３１、３２、および３３から構成され、これらは多関節物体１０を形成する受動物体（要素１１および関節１２）にその環境の関数として作用する。
【０１０５】
多関節物体１０およびその環境を定義するデータまたは変数は共用データ１５を構成し、それにより様々なエージェントが相互作用する。
【０１０６】
マルチエージェントシステムのアーキテクチャは、基部のエージェントがより高いレベルにあるエージェントの作用に貢献するように、ピラミッド状の複数の段階またはレベルとして編成することができる。
【０１０７】
この例では、マルチエージェントシステム５０は、第一レベル５１および第二レベル５２を提示する。第一レベル５１は多関節物体１０に対する作用または大域的貢献を示し、共用データ１５によって多関節物体１０に作用する、第一大域的エージェント２０の貢献および第二大域的エージェント３０の貢献を含む。
【０１０８】
第一大域的エージェント２０は多関節物体１０の位置および向きに作用する一方、第二大域的エージェント３０は、多関節物体１０の関節１２の内部自由度に作用する。
【０１０９】
第二レベル５２は、共用データ１５を介して相互作用することによって、第一および第二大域的エージェント２０および３０の貢献を生成する様々な型のエージェントから生じる様々な貢献を示す。
【０１１０】
こうして、大域的位置、および／または大域的向き、および／または多関節物体の複数の自由度に作用するアトラクタエージェントによって、多関節物体１０の動きが実現される。
【０１１１】
さらに、多関節物体は、大域的位置、および／または大域的向き、および／または多関節物体の複数の自由度に作用するアボイダエージェント（ａｖｏｉｄｅｒ  ａｇｅｎｔ）によって、その環境から遠ざけることができる。
【０１１２】
従って、マルチエージェントシステム５０の第二レベル５２は、多関節物体１０の大域的位置および／または向きに作用する反発アボイダエージェント２１、多関節物体１０の大域的位置および／または向きに作用する大域的アトラクタエージェント２２、多関節物体１０の関節１２の内部自由度に作用する動的アボイダエージェント３１、および多関節物体１０の関節１２の内部自由度に作用する動的アトラクタエージェント３２を含むことができる。
【０１１３】
加えて、多関節物体１０は、多関節物体の位置および／または向きおよび／または複数の自由度に作用するオペレータエージェントによって、オペレータが実時間で動かすことができる。
【０１１４】
従って、マルチエージェントシステム５０の第二レベル５２は、多関節物体１０の大域的位置および／または向きに作用する大域的オペレータエージェント２３、および多関節物体１０の関節１２の内部自由度に作用する内部オペレータエージェント３３をも含むことができる。
【図面の簡単な説明】
【０１１５】
【図１】本発明のシステムまたは方法で実現されるハードウェア手段の斜視図である。
【図２Ａ】本発明に係る三次元空間における仮想多関節物体を示す非常に簡単な略図。
【図２Ｂ】本発明に係る三次元空間における仮想ダミーを示す非常に簡単な略図。
【図３Ａ】本発明の最小距離モードで定義される抽出ベクトルを示す、非常に簡単な略図である。
【図３Ｂ】本発明の浸透深さモードで定義される抽出ベクトルを示す、非常に簡単な略図である。
【図４】本発明に係る多関節物体の大域的位置に作用する分離動作を示す非常に簡単な略図。
【図５】本発明に係る多関節物体の大域的向きに作用する分離動作を示す非常に簡単な略図。
【図６】本発明に係る多関節物体の所定の関節に作用する分離動作を示す非常に簡単な略図。
【図７Ａ】本発明に係る多関節物体を動かすときの主要工程を示すフローチャート。
【図７Ｂ】図７Ａの変形を示す図である。
【図８】本発明に係る多関節物体を動かすのに使用されるマルチエージェントシステムのアーキテクチャを示す、非常に簡単な略図である。
【符号の説明】
【０１１６】
１  コンピュータ
２  中央装置
３  中央メモリ
１０  仮想多関節物体
１１  連接要素
１２  関節
１３  仮想環境
１５  共用データ
２０  第一大域的エージェント
２１  反発アボイダエージェント
２２  アトラクタエージェント
２３  大域的オペレータエージェント
３０  第二大域的エージェント
３１  動的アボイダエージェント
３２  動的アトラクタエージェント
３３  内部オペレータエージェント
５０  マルチエージェントシステム
５１  第一レベル
５２  第二レベル
【図１】
2005182759.tif 000076
【図２Ａ】
2005182759.tif 000077
【図２Ｂ】
2005182759.tif 000078
【図３Ａ】
2005182759.tif 000079
【図３Ｂ】
2005182759.tif 000080
【図４】
2005182759.tif 000081
【図５】
2005182759.tif 000082
【図６】
2005182759.tif 000083
【図７Ａ】
2005182759.tif 000084
【図７Ｂ】
2005182759.tif 000085
【図８】
2005182759.tif 000086
【外国語明細書】
2005182759.tif 000087
2005182759.tif 000088
2005182759.tif 000089
2005182759.tif 000090
2005182759.tif 000091
2005182759.tif 000092
2005182759.tif 000093
2005182759.tif 000094
2005182759.tif 000095
2005182759.tif 000096
2005182759.tif 000097
2005182759.tif 000098
2005182759.tif 000099
2005182759.tif 000100
2005182759.tif 000101
2005182759.tif 000102
2005182759.tif 000103
2005182759.tif 000104
2005182759.tif 000105
2005182759.tif 000106
2005182759.tif 000107
2005182759.tif 000108
2005182759.tif 000109
2005182759.tif 000110
2005182759.tif 000111
2005182759.tif 000112
2005182759.tif 000113
2005182759.tif 000114
2005182759.tif 000115
2005182759.tif 000116
2005182759.tif 000117
2005182759.tif 000118
2005182759.tif 000119
2005182759.tif 000120
2005182759.tif 000121
2005182759.tif 000122