(57)【特許請求の範囲】
【請求項１】
模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納するモデルデータメモリと、
前記物体について模擬させるべき動作を規定する動作命令に従って前記モデルデータを逐次更新し、前記物体の運動を模擬させる動作命令指示部と、
前記動作命令指示部がモデルデータを更新するたびに、互いの距離が一定値以下となる物体のモデルを検索し、検索結果として得られたモデルを、作用するものと作用されるものとの主従関係を設定すべきモデルであると判定して、それらのモデルデータを抽出するモデル抽出部と、
前記モデル抽出部が抽出したモデルデータに対応する物体のモデル間の関係に基づいて各モデルの主及び従を設定する主従関係設定部と、
前記主従関係設定部が主従関係を設定した各モデルのモデルデータ及びこれらモデルについて前記動作命令指示部により設定された動作命令に基づいて、前記各モデルの主従関係に従った追従動作を模擬する追従動作処理部と
を備えた運動連鎖模擬システム。
【請求項２】
モデルデータメモリは、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納すると共に、前記物体の機能及びその性能を特定する仕様データを格納し、
モデル抽出部は、互いの距離が一定値以下にあり、前記仕様データに基づいて関連する属性を有すると判断された物体のモデルを、主従関係を設定すべきモデルであると判定して、これらのモデルデータを抽出することを特徴とする請求項１記載の運動連鎖模擬システム。
【請求項３】
モデルデータメモリは、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納すると共に、前記物体の機能及びその性能を特定するデータであって、動作命令指示部からの動作命令に付随した命令によって機能及び性能の有効又は無効が設定される仕様データを格納し、
モデル抽出部は、互いの距離が一定値以下にあり、前記動作命令指示部からの付随命令によって有効に設定された仕様データに基づいて関連する動作属性を有すると判断された物体のモデルを、主従関係を設定すべきモデルであると判定して、これらのモデルデータを抽出することを特徴とする請求項１記載の運動連鎖模擬システム。
【請求項４】
モデルデータメモリは、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納すると共に、前記物体の機能及びその性能に基づいて当該物体のモデルが他の物体のモデルを従属させる力の強さを指定する特性データを格納し、
主従関係設定部は、モデル抽出部によって抽出されたモデルデータに対応する物体のモデル間の関係として前記特性データに基づいて各モデルの主及び従を設定することを特徴とする請求項１記載の運動連鎖模擬システム。
【請求項５】
モデルデータメモリは、特性データとして模擬対象の物体のモデルが他の物体のモデルを従属させる優先順位を数値で表現したプライオリティを格納し、
主従関係設定部は、モデル抽出部によって抽出されたモデルデータに対応する物体のモデル間の関係として前記プライオリティに基づいて各モデルの主及び従を設定することを特徴とする請求項４記載の運動連鎖模擬システム。
【請求項６】
主従関係設定部は、モデル抽出部によって追従動作処理部が追従動作を模擬している物体のモデルについて主従関係を設定すべきモデルが検索されると、それらのプライオリティに基づいて、前記追従動作が模擬されている前記モデルとの主従関係における主及び従の設定を変更することを特徴とする請求項５記載の運動連鎖模擬システム。
【請求項７】
プライオリティの大小関係を規定する規則が予め設定されており、
主従関係設定部は、追従動作処理部によって追従動作が模擬されている物体のモデルについて主従関係を設定すべきモデルが検索された場合、前記規則に基づいて前記各モデルのプライオリティを変更してその主従関係における主及び従を設定することを特徴とする請求項５又は請求項６記載の運動連鎖模擬システム。
【請求項８】
プライオリティの大小関係を規定する異なる複数の規則を格納する規則データメモリと、
前記規則データメモリに格納される複数の規則のうち、物体の運動の模擬状態に応じて主従関係設定部に設定すべき規則を選択する規則選択部とを備え、
前記主従関係設定部は、前記規則選択部によって前記物体の運動の模擬状態に応じて選択された規則に基づいてプライオリティを変更することを特徴とする請求項５又は請求項６記載の運動連鎖模擬システム。
【請求項９】
追従動作処理部は、主従関係が設定された物体のモデルをその主従関係で結ばれるグループにまとめて追従動作を模擬することを特徴とする請求項１記載の運動連鎖模擬システム。
【請求項１０】
追従動作処理部は、主側のモデルの配置位置を所定時間間隔毎に監視し、前記主側のモデルから見た従側のモデルの相対的配置位置が、主従関係が設定された時点の初期配置位置と等しくなるように前記従側のモデルの配置位置を移動させることにより追従動作を模擬することを特徴とする請求項１記載の運動連鎖模擬システム。
【請求項１１】
追従動作処理部は、主側のモデルについての動作命令に対し、前記主側のモデルを動作させず、前記動作命令にて規定される前記主側のモデルの動作分だけ従側のモデルを動作させることを特徴とする請求項１０記載の運動連鎖模擬システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は計算機上で物体をモデル化して物体の動作をシミュレートする際に、モデルに関して互いに作用するものと作用されるものの主従関係を設定し、その主従関係に従って運動するモデルの運動連鎖を模擬する運動連鎖模擬システムに関するものである。
【０００２】
【従来の技術】
一般に物体の動作をシミュレーションする際には、物体に対応したモデルを設け、このモデルについてシステムが必要とする各データを作成し、それらを１つのデータ型としてパッケージして用いる。１つの物体のモデルを作成して単体で動作させる場合には、そのモデルに対して幾何学的な軌跡を与えたり、そのモデルの従う物理的環境を与えることによりシミュレーションを実現している。
【０００３】
また、いくつかのモデルをあるモデルに追従させて協調動作させる方法には２通りの方法があり、１つは複数のモデルの動作をそれぞれ個別に指定して同じ軌跡を与え、あたかもモデル間に拘束関係が存在してあるモデルに他のモデルが拘束されて動作しているように見せかける方法である。
【０００４】
２つめの方法は、追従させようとするモデル（主）と追従するモデル（従）をユーザーが指定して、さらにどのモデルが主でどのモデルが従かを指定し、それらのモデル間に拘束関係をつけて追従動作させるようにシミュレーション・プログラムを作成する方法である。
【０００５】
【発明が解決しようとする課題】
従来の運動連鎖模擬システムは以上のように構成されているので、追従動作させる方法の上記のうち１つめの方法を用いた場合、シミュレーション・システムがモデル間の拘束関係の管理を行わないため、ユーザー自身が自分で追従動作の軌跡等を逐一指定してプログラミングする必要があり、また、現実世界で物体間に拘束がある場合の動作をシミュレートするような状況を直感的に構築することができないという課題があった。
【０００６】
また、追従動作させる方法の上記のうち２つめの方法を用いた場合、例えば１個のワークを複数のロボットが持った場合等の結果を指定するために、拘束関係のシミュレートの毎に拘束関係の設定や変更の指定をしなければならず、拘束が起こるタイミングを考える必要がある。現実世界で人間がある物体に作用する場合、拘束関係や主従関係等を考えなくても、自分自身が物体に行う操作のみに注目していればよいが、シミュレーション・システムにおいてはモデル間の拘束関係や主従関係等が逐一要求され、現実世界での人間と物体間のような直感的操作が不可能となるため、シミュレーション・システムを迅速に構築することができないという課題があった。
【０００７】
また、ユーザーが逐一シミュレーション・プログラムを作成した場合、シミュレーション・プログラムによっては、実際には物を持って移動する等の機構を持たないモデルに他のモデルが追従してしまったり、モデル間の距離が十分近接していないのに、瞬間的に追従するモデルが追従されるモデルの位置まで移動して追従してしまったり、ロボットのハンドと離れた状態にあるワークがハンドの動作に追従してしまったりするなどのミスが生じ易く、修正するにはモデル間の拘束を解除して、自然な動作を行わせるために、新たにモデル間で拘束が起こるタイミング，軌跡等を設定し直す必要があり、修正に非常に手間がかかるなどの課題があった。
【０００８】
この発明は上記のような課題を解決するためになされたもので、ユーザーが追従動作の軌跡等を逐一指定してプログラミングしたり、拘束関係や主従関係等の設定や変更の指定を行う必要をなくし、拘束関係や主従関係等に多くの注意を払うことなくモデル間の動作のみに注意を注いだ直感的な操作を可能として、シミュレーション環境を作成するのに要する時間を短縮し、人的ミスを削減することが可能な運動連鎖模擬システムを得ることを目的とする。
【０００９】
また、この発明は、様々な状況下において複数のモデル間で主従関係が変化する複雑な動作を伴ったシミュレーションを、現実世界での物体間の関係に近い状態で行うことができる運動連鎖模擬システムを得ることを目的とする。
【００１０】
【課題を解決するための手段】
請求項１記載の発明に係る運動連鎖模擬システムは、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納するモデルデータメモリと、前記物体について模擬させるべき動作を規定する動作命令に従って前記モデルデータを逐次更新し、前記物体の運動を模擬させる動作命令指示部と、前記動作命令指示部がモデルデータを更新するたびに、互いの距離が一定値以下となる物体のモデルを検索し、検索結果として得られたモデルを、作用するものと作用されるものとの主従関係を設定すべきモデルであると判定して、それらのモデルデータを抽出するモデル抽出部と、前記モデル抽出部が抽出したモデルデータに対応する物体のモデル間の関係に基づいて各モデルの主及び従を設定する主従関係設定部と、前記主従関係設定部が主従関係を設定した各モデルのモデルデータ及びこれらモデルについて前記動作命令指示部により設定された動作命令に基づいて、前記各モデルの主従関係に従った追従動作を模擬する追従動作処理部とを備えたものである。
【００１１】
請求項２記載の発明に係る運動連鎖模擬システムは、モデルデータメモリが、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納すると共に、前記物体の機能及びその性能を特定する仕様データを格納し、モデル抽出部は、互いの距離が一定値以下にあり、前記仕様データに基づいて関連する属性を有すると判断された物体のモデルを、主従関係を設定すべきモデルであると判定して、これらのモデルデータを抽出するようにしたものである。
【００１２】
請求項３記載の発明に係る運動連鎖模擬システムは、モデルデータメモリが、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納すると共に、前記物体の機能及びその性能を特定するデータであって、動作命令指示部からの動作命令に付随した命令によって機能及び性能の有効又は無効が設定される仕様データを格納し、モデル抽出部は、互いの距離が一定値以下にあり、前記動作命令指示部からの付随命令によって有効に設定された仕様データに基づいて関連する動作属性を有すると判断された物体のモデルを、主従関係を設定すべきモデルであると判定して、それらのモデルデータを抽出するようにしたものである。
【００１３】
請求項４記載の発明に係る運動連鎖模擬システムは、モデルデータメモリが、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納すると共に、前記物体の機能及びその性能に基づいて当該物体のモデルが他の物体のモデルを従属させる力の強さを指定する特性データを格納し、主従関係設定部は、モデル抽出部によって抽出されたモデルデータに対応する物体のモデル間の関係として前記特性データに基づいて各モデルの主及び従を設定するようにしたものである。
【００１４】
請求項５記載の発明に係る運動連鎖模擬システムは、モデルデータメモリが、特性データとして模擬対象の物体のモデルが他の物体のモデルを従属させる優先順位を数値で表現したプライオリティを格納し、主従関係設定部は、モデル抽出部によって抽出されたモデルデータに対応する物体のモデル間の関係としてプライオリティに基づいて各モデルの主及び従を設定するようにしたものである。
【００１５】
請求項６記載の発明に係る運動連鎖模擬システムは、主従関係設定部が、モデル抽出部によって追従動作処理部が追従動作を模擬している物体のモデルについて主従関係を設定すべきモデルが検索されると、それらのプライオリティに基づいて、前記追従動作が模擬されている前記モデルとの主従関係における主及び従の設定を変更するようにしたものである。
【００１６】
請求項７記載の発明に係る運動連鎖模擬システムは、プライオリティの大小関係を規定する規則が予め設定されており、主従関係設定部が、追従動作処理部によって追従動作が模擬されている物体のモデルについて主従関係を設定すべきモデルが検索された場合、前記規則に基づいて前記各モデルのプライオリティを変更してその主従関係における主及び従を設定するようにしたものである。
【００１７】
請求項８記載の発明に係る運動連鎖模擬システムは、プライオリティの大小関係を規定する異なる複数の規則を格納する規則データメモリと、前記規則データメモリに格納される複数の規則のうち、物体の運動の模擬状態に応じて主従関係設定部に設定すべき規則を選択する規則選択部とを備え、前記主従関係設定部は、前記規則選択部によって前記物体の運動の模擬状態に応じて選択された規則に基づいてプライオリティを変更するようにしたものである。
【００１８】
請求項９記載の発明に係る運動連鎖模擬システムは、追従動作処理部が、主従関係が設定された物体のモデルをその主従関係で結ばれるグループにまとめて追従動作を模擬するようにしたものである。
【００１９】
請求項１０記載の発明に係る運動連鎖模擬システムは、追従動作処理部が、主側のモデルの配置位置を所定時間間隔毎に監視し、前記主側のモデルから見た従側のモデルの相対的配置位置が、主従関係が設定された時点の初期配置位置と等しくなるように前記従側のモデルの配置位置を移動させることにより追従動作を模擬するようにしたものである。
【００２０】
請求項１１記載の発明に係る運動連鎖模擬システムは、追従動作処理部が、主側のモデルについての動作命令に対し、前記主側のモデルを動作させず、前記動作命令にて規定される前記主側のモデルの動作分だけ従側のモデルを動作させるものである。
【００２４】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１による運動連鎖模擬システムの基本構成を示すブロック図であり、図において、１はロボット，ワーク，コンベア，人間等の物体に対応した各モデルの、形状，動作の特徴，位置，向き等に関するデータが格納されるモデルデータメモリであり、このモデルデータメモリ１上のモデルデータが逐次更新されることにより、各モデルが移動等の動作を行うシミュレーションが行われる。２はモデルに対する動作命令をだす動作命令指示部であり、モデルに対する動作命令は、プログラムに従って出される場合や、動作命令指示部が備えたキーボード等のユーザーインターフェース用の入力手段における入力に従って出される場合等がある。動作命令が出されると、これに従って各モデルに対応したモデルデータが更新される。３は動作命令指示部２から動作命令が出される毎に主従関係を設定すべきモデルがないかを調べて主従関係を設定すべきモデルを抽出するモデル抽出部、４はモデル抽出部３で抽出された主従関係を設定すべきモデルに対し、モデル間の関係から主従関係を自動設定する主従関係設定部、５は動作命令およびモデルの主従関係に従ってモデル間に追従動作を行わせる追従動作処理部であり、この実施の形態１においてはモデルの動作やモデル間の追従動作に必要なモデルデータの更新をこの追従動作処理部５が行っている。
【００２５】
なお、前記のモデルデータメモリ１はＲＡＭ等のメモリおよび長期記憶用のハードディスク，光ディスク等の記憶媒体により構成されており、動作命令指示部２，モデル抽出部３，主従関係設定部４，および追従動作処理部５は、計算機内のＣＰＵ，メモリ等により実現されている。また、必要に応じてシミュレーションの経過や結果を出力するディスプレーモニター，プリンター等の出力手段やキーボード等の入力手段が適宜設けられている。以上の基本構成は以下の各実施の形態においても同様とする。
【００２６】
次に動作について説明する。
図２はこの発明の実施の形態１による運動連鎖模擬システムの基本動作を示すフローチャートである。まずステップＳＴ１において、動作命令指示部２がモデルに対して動作命令を発行し、動作命令指示部２から動作命令が発行される毎に、モデル抽出部３は、主従関係を設定すべきモデルがないかを調べて主従関係を設定すべきモデルがあれば抽出し、主従関係設定部４に抽出結果を渡す（ステップＳＴ２）。
【００２７】
次に、主従関係設定部４が、抽出されたモデル間の関係を検査し、モデル間に主従関係を自動設定する（ステップＳＴ３）。この場合の関係とは、モデル間がロボット、ワーク等の内のどの組合せであるかとか、モデルの持つ機能や性能同士の関係などを指す。
【００２８】
そして、追従動作処理部５がモデル間に主従関係に従った追従動作を行わせる。追従動作処理部５が追従動作を行わせる方法としては、主従関係の主に設定されたモデルの動作命令指示部２の動作命令による動作位置を追従動作処理部５が例えば０．１秒毎等の所定間隔毎に監視し、この主に設定されたモデルの動作分だけ追従動作処理部５が従に設定されたモデルを動作させる方法や、主に設定されたモデルと従に設定されたモデルとを１個の物であるように同一グループとして扱うことにより両者を一体に動作させる方法等を用いる。
【００２９】
以上のように、この実施の形態１によれば、シミュレーションを行っているモデルの中から主従関係を設定すべきモデルを自動的に抽出し、抽出されたモデル間のどちらのモデルを主および従にするかをモデル間の関係を基にして自動的に設定し、主従関係の設定されたモデルを主従関係に従って動作させることができるため、人手により逐一各モデルに対して主従関係の設定をプログラミングする必要なく主従関係に従って運動するモデルの運動連鎖を模擬することが可能となり、物体の追従動作を表現するシミュレーション・システムを迅速に構築することができる。
【００３０】
実施の形態２．
図３はこの発明の実施の形態２による運動連鎖模擬システムのモデル抽出部３の動作を説明する概念図である。図において、Ｍはモデル空間、Ａ，Ｂ，Ｃ，Ｄ，およびＥはモデル空間Ｍ内に存在する各モデルである。モデル抽出部３は、モデルＡと主従関係を築くべきモデル空間Ｍ内のモデルを抽出するものとする。
【００３１】
次に動作について説明する。
モデル空間Ｍ内に存在するモデルＡは、動作命令指示部２から受ける動作命令に従って動作する。一方モデル抽出部３は、モデルＡと同一モデル空間Ｍ内に存在する他のモデル、例えば図３中のモデルＢ，モデルＣ，モデルＤ，およびモデルＥとの関係を検査してモデルＡ自身と主従関係を設定すべきモデルがあればそれを抽出する。
【００３２】
上記における関係とは、例えばモデル間の距離が一定距離以下であるとか、各モデルの材質が所定の条件を満たしているなどの種々の関係をいい、モデル抽出部３による関係の検査は、現在の各モデルの状態を示すモデルデータを基に行われる。
【００３３】
モデルＡと主従関係を設定すべきモデルがモデル抽出部３により抽出されるとモデル抽出部３は抽出結果を主従関係設定部４に渡し、以下、主従関係設定部４により該当モデル間に主従関係が設定され、追従動作処理部５により追従動作が実行される。
【００３４】
以上のように、この実施の形態２によれば、モデル抽出部３がモデル間の関係を基に主従関係を設定すべきモデルを自動で抽出するため、主従関係を設定すべきモデルを人手により設定する場合に起こるモデル指定の誤り等を減少させることができ、シミュレーション環境を計算機上に構築する際のミスを減らして、的確な動作のシミュレーションを行うことができる。
【００３５】
なお、上記においてモデル抽出部３は、モデルＡと他のモデルとの関係を検査してモデルＡと主従関係を設定すべきモデルの抽出を行ったが、モデルＡ，Ｂ，Ｃ，Ｄ，ＥのうちのＡの他のモデルまたはいくつかのモデルに注目し、それらと他のモデルとの関係を検査して、主従関係を設定されるべきモデルの抽出を行うようにしてもよい。
【００３６】
実施の形態３．
図４はこの発明の実施の形態３による運動連鎖模擬システムのモデル抽出部３の動作を説明する概念図である。実施の形態３におけるモデル抽出部３は、モデル空間Ｍ内におけるモデル間の距離を基に主従関係を設定するモデルを抽出するものであり、その一例として、モデル間の接触を抽出の条件とした例を示す。
【００３７】
次に動作について説明する。
図４においては、モデルＡとモデルＢとが接触しており、モデルＣは他と接触していない。この状況において、モデル抽出部３は接触しているモデルＡとモデルＢとの間に主従関係を設定すべきものとしてこの２つのモデルを抽出する。
【００３８】
図５はこの実施の形態３におけるモデルの接触状態を利用して主従関係を設定するモデルを抽出する具体的方法を示すフローチャートであり、図６は、この抽出方法の説明図である。まず、ステップＳＴ１１において、図６（１）に示すように、ロボットＡの末端に設けられたハンド等のエンド・エフェクタに設置されたロボットＡ固有の座標系を原点として、あらかじめ設定した範囲でロボットＡのエンド・エフェクタを内包する概略モデルＡｓが構築され、同様にワークＢ，Ｃに設置されたワークＢ，Ｃ固有の座標系を原点としてあらかじめ設定した範囲でワークＢ，Ｃを内包する概略モデルＢｓ，Ｃｓが構築され、各概略モデルの形状データがモデルデータメモリ１内にモデルデータとして格納される。
【００３９】
モデル抽出部３は、ＡｓとＢｓ，Ｃｓが接触するまではＡｓとＢｓ，Ｃｓの形状で接触を監視し（ステップＳＴ１２）、ＡｓとＢｓが接触したら図６（２）のようにロボットＡとワークＢの詳細な形状の接触を監視する（ステップＳＴ１４）。監視を続けてロボットＡとワークＢが接触したらロボットＡとワークＢを主従関係を設定すべきモデルとして抽出して主従関係設定部４に渡す（ステップＳＴ１６）。
【００４０】
以上のように、この実施の形態３によれば、モデルの接触状態を利用して主従関係が設定されるため、主従関係が設定されるのが妥当なモデル同士に主従関係が設定されて追従動作が実行されることとなり、より現実的なシミュレーションを行うことが可能となる。また、接触状態の監視に概略モデルを用いているため、概略モデルが接触するまでの間の接触判定に要する計算を高速に行って監視処理の負担を軽減することができる。
【００４１】
実施の形態４．
図７はこの発明の実施の形態４による運動連鎖模擬システムのモデル抽出部３の動作を説明する概念図である。実施の形態４におけるモデル抽出部３は、モデル空間Ｍ内におけるモデルの接触状態と、各モデルの持つ機能，性能等を示す仕様を表現する仕様データとに基づいて、主従関係を設定すべきモデルを抽出する。
【００４２】
次に動作について説明する。
図７においては幾何的接触状態を、モデルＡを内包するように作成した点線で表現された概略モデルにモデルＡとは別のモデルＢが干渉したときとする。モデル抽出部３は、図７に示すように、幾何的接触状態をチェックするとともに、接触した各々のモデルの持つ機能，性能等を示した仕様データを対照・比較し、この結果を考慮して主従関係を設定すべきモデルを抽出する。
【００４３】
以上のように、この実施の形態４によれば、モデル抽出部３が、接触状態の判定に加え、モデルの持つ機能，性能を簡単に示した仕様データに基づく判定を用いてモデルを抽出するようにしたため、機能や性能等の仕様により結果の異なる物理現象を模擬することができ、より現実世界での物体間の関係に近いシミュレーションを行うことができる。
【００４４】
実施の形態５．
図８はこの発明の実施の形態５による運動連鎖模擬システムのモデル抽出部３のモデル抽出方法の説明図である。この実施の形態５は、前記実施の形態４に示した、モデルの接触状態と各モデルの仕様を用いて主従関係を設定するモデルを抽出する方法の一例を示したものであり、各モデルの仕様を表現する仕様データとして、オン／オフ切り替え可能な動作属性を仕様データとして用いる。なお、この動作属性のオン／オフの切り替えは、動作命令指示部２においてプログラムや入力手段における入力等に従ってモデルに対して発行される動作命令に付随した命令により行われる。
【００４５】
次に動作について説明する。
ロボットＡのエンド・エフェクタに設置されたロボットＡ固有の座標系を原点として、あらかじめ設定した範囲が概略モデルＡｓとして構築され、同様にワークＢ，Ｃに設置されたワークＢ，Ｃ固有の座標系を原点としてあらかじめ設定した範囲が概略モデルＢｓ，Ｃｓとして構築される。ここで各々のモデル、ロボットＡ，ワークＢ，ワークＣは各々、モデル内部にいくつかの仕様データを有している。
【００４６】
いくつかの仕様データのうち、ある仕様データとしてロボットＡは「掴む」という属性を有しておりこの属性が有効であり、ワークＢはある仕様データとして「拘束可能」という属性を有しておりこの属性が有効である場合を想定する。
【００４７】
モデル抽出部３は、ＡｓとＢｓ，Ｃｓ間が接触するまではＡｓとＢｓ，Ｃｓの形状で接触を監視し、ＡｓとＢｓが接触したらロボットＡとワークＢの詳細な形状の接触を監視する。監視を続けてロボットＡとワークＢが接触し、さらに口ボットＡとワークＢの仕様データのうち前記の「掴む」と「拘束可能」の各属性が有効であれば、モデル抽出部３はロボットＡとワークＢを主従関係を設定すべきモデルとして抽出する。また、ロボットＡの「掴む」という属性またはワークＢの「拘束可能」という属性が有効にされていない場合は、モデル抽出部３はロボットＡに幾何的に接触したワークＢとの間に主従関係を設定するべきでないと判断し、ロボットＡとワークＢは抽出されない。図９は以上の動作を示すフローチャートである。
【００４８】
次に、上記方法を用いてロボットＡとワークＢに主従関係がすでに設定されている場合に主従関係を解除する例を説明する。図１０に示すように、ロボットＡの仕様データのうち「掴む」という属性を無効にし、「放す」という属性を有効にすることにより、モデル抽出部３はロボットＡとワークＢの主従関係を解除する。なお、上記の「掴む」という属性と「放す」という属性は、個別の仕様データであるが、例えば「掴む」という属性がオン状態の時に「放す」という属性がオン状態にされると、自動的に「掴む」という属性がオフ状態にされるように、同時にオン状態またはオフ状態にならないような相互関係に設定されるものである。
【００４９】
以上のように、この実施の形態５によれば、モデル抽出部３が行う主従関係を設定するモデルの抽出の判定を、所定の仕様データの動作属性のオン／オフを基に行うようにしたので、所定の仕様データの動作属性のオン／オフの設定および切り替えにより、モデルが主従関係を構築可能かどうかの設定および切り替えを状況に応じて動的に行って、現実世界での物体間の関係に近い動的なシミュレーションを行うことができる。
【００５０】
実施の形態６．
前記実施の形態５においては、ワークＢが仕様データとして「拘束可能」という属性を有している場合を示したが、例えばワークＢに仕様データとして「拘束状態」という属性を持たせて、主従関係の従側に設定されて主側のモデルに拘束されている状態において仕様データとしての「拘束状態」という属性をオン状態にするようにしてもよい。
【００５１】
この実施の形態６によれば、ワークＢの「拘束状態」という属性がオン状態の時に例えば他のロボットＤと接触状態になっても、ワークＢは既に主従関係の従側に設定されているためにロボットＤに従属しないようにすることができ、ワークＢが２個以上の主に対して従属することがないようにすることができる。
【００５２】
実施の形態７．
図１１はこの発明の実施の形態７による運動連鎖模擬システムのモデル抽出部３のモデル抽出方法の説明図である。この実施の形態７は、前記実施の形態４に示した、モデルの接触状態と各モデルの仕様を用いて主従関係を設定するモデルを抽出する方法の他の一例を示したものである。
【００５３】
図１１においては、電磁石Ａと、磁性体によるワークＢとが、主従関係を構築するモデルとして抽出される。現実世界において電磁石と磁性体が接触状態に入るタイミングは必ずしも幾何的な接触時に起こるとは限らず、磁気力によって磁性体が電磁石に引き寄せられる場合があるが、この実施の形態７はこのような場合を想定して主従関係を設定すべきモデルの抽出を行うものである。
【００５４】
次に動作について説明する。
電磁石Ａのエンド・エフェクタに設置されたＡ固有の座標系を原点として、あらかじめ設定した範囲が概略モデルＡｓとして構築され、同様にワークＢに設置されたワークＢ固有の座標系を原点としてあらかじめ設定した範囲が概略モデルＢｓとして構築される。
【００５５】
ここで各々のモデル、電磁石Ａ，磁性体のワークＢは各々、そのモデル内部にいくつかの仕様データを有している。いくつかの仕様データのうち、ある仕様データとして電磁石Ａが「電流ＯＮ」および「把持力」という仕様データを有しており、ワークＢはある仕様データとして「重量」という属性を有している。なお、電磁石Ａの「電流ＯＮ」という仕様データは前記実施の形態５において示したオン／オフ切り替え可能な動作属性である。
【００５６】
図１１（１）に示すように、モデル抽出部３は電磁石ＡとワークＢの概略モデルであるＡｓとＢｓが接触するまではＡｓとＢｓの接触を監視する。その後図１１（２）に示すようにＡｓとＢｓが接触すると、モデル抽出部３はさらに電磁石Ａの仕様データのうち前記の「電流ＯＮ」属性が有効であり、ワークＢの仕様データのうち前記の「重量」が電磁石Ａの「把持力」以下であるかを検査し、各仕様データがこの条件を満たしている場合に、電磁石ＡとワークＢを主従関係を設定すべきモデルとして抽出する。
【００５７】
また、電磁石Ａの「電流ＯＮ」という属性が有効にされていない場合や、ワークＢの「重量」が電磁石Ａの「把持力」を超えている場合には、モデル抽出部３は電磁石ＡとワークＢとの間に主従関係を設定するべきでないと判断し、電磁石ＡとワークＢは抽出されない。
【００５８】
以上のように、この実施の形態７によれば、電磁石ＡおよびワークＢより大きな外形の概略モデルであるＡｓとＢｓとの接触時に、電磁石Ａの「電流ＯＮ」，「把持力」およびワークＢの「重量」の各仕様データを用いて、モデル抽出部３が主従関係設定の判断を行うようにしたため、電磁石ＡとワークＢとが実際に接触する以前に働く遠隔的相互作用を表現したシミュレーションを行うことができる。
【００５９】
実施の形態８．
図１２はこの発明の実施の形態８による運動連鎖模擬システムの主従関係設定部４の主従関係設定方法の説明図である。この実施の形態８における主従関係設定部４は、モデルが他のモデルを従属させる力の強さを示す特性を表現する特性データを用いて、モデル抽出部３により抽出されたモデル間に主従関係を設定する。
【００６０】
次に動作について説明する。
図１２において、モデルＡとモデルＢは互いに主従関係を設定されるモデルとしてモデル抽出部３により抽出されたものであるとする。このとき、どちらが作用する主であって、どちらが作用される従になるかを決定する手段として、主従関係設定部４は各々のモデルの特性データを参照することにより、モデルＡを主とし、モデルＢを従と設定している。ここで、特性データとは、運搬能力，把持能力等の有無，程度等を示したデータであり、各モデルのモデルデータに含まれるものである。
【００６１】
ここでは、各モデルの特性を表現する特性データの使用の一例として、他のモデルを従属させる力の強さの優先順位を数量的に表現したプライオリティを各モデルに対して設定し、主従関係設定部４がこのプライオリティにより主従関係を自動設定する例を説明する。なお以下において、プライオリティの比較に符号および記号を用いる事にする。例えば、モデルＡのプライオリティをＡ０  、モデルＢのプライオリティをＢ０  とすると、モデルＡの方がモデルＢよりも他のモデルを支配する力が強いとき、モデルＡの方がモデルＢよりもプライオリティが高く、この関係をＡ０  ＞Ｂ０  と表現することとする。
【００６２】
このように主従関係を設定するモデルとして抽出されたモデルＡ，Ｂ間で、主従関係設定部４はプライオリティＡ０  ，Ｂ０  の比較を行い、相対的にプライオリティの高い方を主、低い方を従として自動設定する。図１２において、Ａ０  ＞Ｂ０  であるため、モデルＡが主，モデルＢが従に設定される。
【００６３】
以上のように、この実施の形態８によれば、主従関係設定部４において、モデルが他のモデルを従属させる力の強さを示す特性を基にモデル間に主従関係を設定するため、従来のシミュレーション・システムにおいて追従動作を行わせるために必要であったモデル間の主従関係や拘束関係のプログラミングを逐一必要とせず、他のモデルを従属させる力の強さを基に適切な主従関係を設定して追従動作を行わせることができる。
【００６４】
また、主従関係や拘束関係のプログラミングが逐一必要なくなるため、現実世界における物体の動きと同様にモデル間の動作のみに注意を注いだ直感的な操作が可能となり、この直感的な操作によりシミュレーション環境の作成に要する時間を短縮し、人的ミスを削減することができる。
【００６５】
さらに、各モデルの特性を表現する手段としてプライオリティを用いているため、追従動作させる際にどちらが他のモデルを従えるモデルで、どちらが従うモデルなのかを逐一設定する必要がなくなり、シミュレーション環境の作成に要する時間を短縮し、人的ミスを削減することができる。
【００６６】
実施の形態９．
図１３はこの発明の実施の形態９による運動連鎖模擬システムの主従関係設定部４の主従関係設定方法の説明図である。この実施の形態９における主従関係設定部４は、プライオリティを用いてモデル間の主従関係の変更を自動的に行う。
【００６７】
次に動作について説明する。
図１３（１）に示すようにモデル空間内でコンベアＡがワークＢを乗せている状態を初期状態とする。この状態ではコンベアＡのプライオリティＡ０  がワークＢのプライオリティＢ０  よりも高く（Ａ０  ＞Ｂ０  ）、コンベアＡが主、ワークＢが従に設定されている。図１３（２）に示すように、このモデル空間にコンベアＡのプライオリティＡ０  より高いプライオリティＣ０  を持つロボットＣが存在し、ロボットＣの「掴む」属性が有効になっており、ロボットＣとワークＢが接触状態に入ると、モデル抽出部３はロボットＣとワークＢを主従関係を設定すべきモデルとして抽出し、この抽出結果を主従関係設定部４に渡す。主従関係設定部４は、ワークＢがコンベアＡに従属しているため、現在ワークＢの主であるコンベアＡとこれからワークＢと主従関係を設定されるべきモデルとして抽出されたロボットＣのプライオリティを比較する。比較の結果がＣ０  ＞Ａ０  であるため、主従関係設定部４によりワークＢの主がロボットＡに変更される。この結果、図１３（３）に示すように以降ワークＢはコンベアＡの動作には従わず、ロボットＡの動作に従う。
【００６８】
図１４はこの発明の運動連鎖模擬システムを操作するユーザーをモデル空間内で最も高いプライオリティを持つモデルとして存在させることにより、モデル空間の操作、モデルの操作等を行う方法を説明する説明図である。図１４（１）はロボットＡが主，ワークＢが従となり主従関係を築いており、ロボットＡのプライオリティをＡ０  ，ワークＢのプライオリティをＢ０  ，Ａ０  ＞Ｂ０  とする初期状態を示している。なお、矢印で示したユーザーＵのプライオリティをＵ０  とする。ユーザーＵのプライオリティＵ０  は、どのようなモデルがユーザーＵの存在するモデル空間中にあろうとも自動的にそのモデル空間内の最も高いプライオリティを持つモデルのプライオリティより高く設定される。この例の場合はＡ０  ＞Ｂ０  であるため、Ｕ０  ＞Ａ０  ＞Ｂ０  のように設定される。
【００６９】
次に動作について説明する。
主従関係設定部４は、プライオリティの最も高いユーザーＵを開始点として幾何的なつながりがなくなるロボットＡまで順に、主−従，主−従となるように主従関係を設定する。この際には各モデルのプライオリティ比較による主従関係の設定は行われない。これにより、ユーザーＵにワークＢが従属し、ワークＢにロボットＡが従属することとなり、図１４（２）に示すようにユーザーの意図したとおりにワークＢを把持したロボットＡを動作させることができる。
【００７０】
以上のように、この実施の形態９によれば、主従関係設定部４においてプライオリティを基にモデル間の主従関係の変更を自動的に行うようにしたため、拘束関係や主従関係の変更に関するプログラムや、主従関係を変更するモデルを逐一選択する必要がなくなり、シミュレーション環境を作成するのに要する時間を短縮し、人的ミスを削減することができる。
【００７１】
実施の形態１０．
図１５はこの発明の実施の形態１０による運動連鎖模擬システムの主従関係設定部４の主従関係設定方法の説明図である。この実施の形態１０における主従関係設定部４は、モデルの動作中に、モデルのプライオリティを所定の規則に従って変更し、モデル間の主従関係を自動的に調整する。
【００７２】
次に動作について説明する。
図１５（１）に示すように初期状態においてモデルＡ，Ｂ間に主従関係が設定されており、モデルＡ，Ｂの存在するモデル空間内に別のモデルＣが存在している。ここで、モデルＡのプライオリティをＡ０  ，モデルＢのプライオリティをＢ０  ，モデルＣのプライオリティをＣ０  とし、Ａ０  ＝Ｃ０  ＞Ｂ０  とする。
【００７３】
この状況において、次に図１５（２）に示すように、既にモデルＡとの主従関係が構築されているモデルＢに対して新たにモデルＣが接触状態に入り、モデル抽出部３がモデルＢとモデルＣを主従関係を設定すべきモデルとして抽出する。次に、主従関係設定部は、抽出されたモデルＢが既に主従関係を構築しているモデルＡを抽出し、モデルＡのプライオリティＡ０  とこれからモデルＢが主従関係を構築しうるモデルＣのプライオリティＣ０  とを比較する。比較の結果、Ａ０  ＝Ｃ０  であるため、モデルＢはモデルＡ，モデルＣのどちらにも従属しうる。
【００７４】
この時、主従関係設定部４は、所定の規則に従ってプライオリティを自動変更して、主従関係を一意に決定する。例えば、図１５のような状況において、モデルＢとの主従関係を設定すべきモデルとして後で抽出されたモデルＣのプライオリティをＢ０  よりも下げるという規則を用いれば、Ａ０  ＞Ｂ０  ＞Ｃ０  として、先にモデルＢと主従関係を築いていたモデルＡを優先し、モデルＣをモデルＢに従属させることができる。３つのモデル全体としては、モデルＡにモデルＢが従属し、モデルＡに従属するモデルＢにモデルＣが従属する結果となる。
【００７５】
図１６は所定の規則に従ってプライオリティを自動変更することにより、主従関係を設定する処理の一例を示すフローチャートである。ステップＳＴ２１からステップＳＴ２３において、主従関係が構築されているモデル群Ｍ中で最高のプライオリティを持つモデルＳのプライオリティをＳ０  ，新たに主従関係に追加されるモデルＮのプライオリティをＮ０  ，モデルＮと主従関係となりうるモデル群Ｍ中のモデルＯのプライオリティをＯ０  とし、ステップＳＴ２４においてＮ０  とＯ０  を比較し、Ｎ０  ＜Ｏ０  であればプライオリティを変更せずにそのままＮがＯに従属するように主従関係を設定する（ステップＳＴ２５）。Ｎ０  ＜Ｏ０  でなければステップＳＴ２６においてＮ０  とＳ０  を比較し、Ｎ０  ＜Ｓ０  であればＮ０  をＯ０  より小さくしてこの場合もＮがＯに従属するように主従関係を設定する（ステップＳＴ２７）。
【００７６】
ステップＳＴ２６の比較においてＮ０  ＜Ｓ０  でない場合、ステップＳＴ２８においてＮ０  ＝Ｓ０  であるかを判定し、Ｎ０  ＝Ｓ０  であればステップＳＴ２９において所定の規則によりＮ０  をＳ０  より大きくまたは小さく変更し、ステップＳＴ２６からの処理を行う。ステップＳＴ２８においてＮ０  ＝Ｓ０  でない場合、つまりＮ０  ＞Ｓ０  である場合は、一番高いプライオリティを持つＮから幾何的につながるモデルに対して順に主−従，主−従となるように主従関係を設定する。
【００７７】
以上に一例として示した規則によるプライオリティの変更によれば、主従関係が構築されているモデル群Ｍ中で最高のプライオリティＳ０  を持つモデルＳより高いプライオリティを持つモデルがモデル群Ｍ中のモデルＯを介して新しく主従関係に追加される場合には、この追加されるモデルを最高の主として幾何的につながるモデルが順に従属するように設定し、最高のプライオリティＳ０  を持つモデルＳより低いプライオリティを持つモデルが追加される場合には、このモデルがモデルＯに従属するように設定し、また、最高のプライオリティＳ０  を持つモデルＳと等しいプライオリティを持つモデルが追加される場合には、所定の規則により前記どちらかの設定を行うようにすることができる。
【００７８】
以上のように、この実施の形態１０によれば、主従関係設定部４が、モデルの動作中に、モデルのプライオリティを所定の規則に従って変更し、モデル間の主従関係を自動的に調整するようにしたため、複数のモデル間，様々な状況下においてモデル間の主従関係を柔軟に変更することを可能として、固定したプライオリティでは実現不可能な複雑な動作を行うシミュレーション環境を適切に構築することができる効果がある。
【００７９】
実施の形態１１．
図１７はこの発明の実施の形態１１による運動連鎖模擬システムの主従関係設定部４の主従関係設定方法の説明図である。この実施の形態１１においては、時間的条件を用いたプライオリティ変更のための規則の他の一例を説明する。
【００８０】
図１７（１）に示すように、あるモデル空間内でロボットＡがワークＢを把持している状態を初期状態とする。ここで、ロボットＡとワークＢには主従関係が設定され、ワークＢはロボットＡに従属しており、ロボットＡのプライオリティをＡ０  ，ワークＢのプライオリティをＢ０  ，Ａ０  ＞Ｂ０  とする。さらに図１７（２）に示すように同モデル空間内にロボットＡとは別のロボットＣが存在しており、図１７（３）に示すようにロボットＣがワークＢと接触状態に入るとモデル抽出部３がワークＢとロボットＣを主従関係を設定すべきモデルとして抽出する。
【００８１】
次に主従関係設定部４は、抽出されたワークＢが既に主従関係を構築しているロボットＡを抽出し、ロボットＡのＡ０  とこれからワークＢが主従関係を構築しうるロボットＣのＣ０  とを比較する。この例においては比較の結果がＡ０  ＝Ｃ０  であるとする。
【００８２】
ここで、主従関係を一意に決定するために、「主従関係が構築されているモデル群Ｍ中のモデルＯと新たにあるモデルＮが接触状態に入ったとき、モデルＮのプライオリティＮ０  がモデル群Ｍ中のモデルのうち最もプライオリティの高いモデルＳのプライオリティＳ０  と同じである場合は、Ｎ０  をそのＳ０  よりも高く設定する。」というプライオリティ変更のための規則を採用すると、図１７の場合Ｃ０  ＞Ａ０  となるように自動設定することができる。
【００８３】
主従関係設定部４は、さらにこの後、例えば、モデルＮを検索開始点として、幾何的なつながりがなくなるモデルＰまで各モデルの接触相手データの検索によりモデルの幾何的なつながりを追跡し、図１８に示すようにモデルＮからモデルＰまで順に、主−従，主−従となるように主従関係を設定する。この際には各モデルのプライオリティ比較による主従関係の設定は行われない。
【００８４】
図１７の場合には、図１７（４）に示すように、ロボットＣ（主）→ワークＢ（従）の主従関係、ワークＢ（主）→ロボットＡ（従）の主従関係となり、後でワークＢと主従関係を築いたロボットＣを優先し、ワークＢをロボットＣに従属させることができる。３つのモデル全体としては、ロボットＣにワークＢが従属し、ロボットＣに従属するワークＢにロボットＡが従属する結果となる。
【００８５】
実施の形態１２．
図１９はこの発明の実施の形態１２による運動連鎖模擬システムの主従関係設定部４の主従関係設定方法の説明図である。この実施の形態１２においては、時間的条件を用いたプライオリティ変更のための規則の他の一例を説明する。
【００８６】
図１９（１）に示すように、あるモデル空間内でロボットＡがワークＢを把持している状態を初期状態とする。ここで、ロボットＡとワークＢには主従関係が設定され、ワークＢはロボットＡに従属しており、ロボットＡのプライオリティをＡ０  ，ワークＢのプライオリティをＢ０  ，Ａ０  ＞Ｂ０  とする。同モデル空間内にはワークＢとは別のワークＣが存在しており、図１９（２）に示すようにワークＣがワークＢと接触状態に入るとモデル抽出部３がワークＢとワークＣを主従関係を設定すべきモデルとして抽出する。
【００８７】
次に主従関係設定部は、抽出されたワークＢのＢ０  とこれからワークＢが主従関係を構築しうるワークＣのＣ０  とを比較する。この例においては比較の結果がＢ０  ＝Ｃ０  であるとする。
【００８８】
ここで、主従関係を一意に決定するために、「主従関係が構築されているモデル群Ｍ中のモデルＯと新たにあるモデルＮが接触状態に入ったとき、モデルＮのプライオリティＮ０  が、モデル群Ｍ中の最高のプライオリティを持つモデルより高くない場合、モデルＮのプライオリティＮ０  をモデル群Ｍ中の最低のプライオリティを持つモデルより低く設定する。」というプライオリティ変更のための規則を採用すると、図１９の場合Ｂ０  ＞Ｃ０  となるように自動設定することができる。主従関係設定部４はさらにこの後、モデルＮを検索開始点として、幾何的なつながりがなくなるモデルＰまで各モデルの接触相手データを検索する事によりモデルの幾何的なつながりを追跡し、モデルＰまでに存在する２つずつのモデル間で主−従または従−主のどちらか一方のみとなるように主従関係を設定していく。この際には各モデルのプライオリティ比較による主従関係の設定は行われない。
【００８９】
図１９の場合には、ワークＣ（従）→ワークＢ（主）の主従関係，ワークＢ（従）→ロボットＡ（主）の主従関係の順序で主従関係の設定が行われ、３つのモデル全体としては、ロボットＡにワークＢが従属し、ロボットＡに従属するワークＢにワークＣが従属する結果となる。
【００９０】
実施の形態１３．
実施の形態１３においては、プライオリティを変更する規則の別の例として力学的条件を採用する例を説明する。ここでいう力学的条件とは、例えば出力機構を持つ物体のモデルなら仕様書にある最大出力等の大小比較等を指している。前記の図１７のようなモデル間の状況を例に、力学的条件を採用したプライオリティの変更を説明する。
【００９１】
図１７（１）に示すように、あるモデル空間内でロボットＡがワークＢを把持している状態を初期状態とする。ここで、ロボットＡとワークＢには主従関係が設定され、ワークＢはロボットＡに従属し、ロボットＡのプライオリティをＡ０  ，ワークＢのプライオリティをＢ０  ，Ａ０  ＞Ｂ０  ，ロボットＡの出力値をＡＦ  とする。同モデル空間内にロボットＡとは別のロボットＣが存在しており、図１７（２）の様にＡＦ  よりも大きい出力値ＣＦ  を持つロボットＣがワークＢと接触状態に入るとモデル抽出部３がワークＢとロボットＣを主従関係を設定すべきモデルとして抽出する。
【００９２】
次に、主従関係設定部４は、抽出されたワークＢが既に主従関係を構築しているロボットＡを抽出し、ロボットＡのＡ０  とこれからワークＢが主従関係を構築しうるロボットＣのＣ０  とを比較する。比較の結果Ａ０  ＝Ｃ０  となるので、主従関係を一意に決定するために、「主従関係が構築されているモデル群Ｍ中のモデルＯと新たにある出力機構を持つモデルＮが接触状態に入ったとき、モデルＮのプライオリティＮ０  がモデル群Ｍ中の最もプライオリティの高いモデルＳのプライオリティＳ０  と同じである場合は、モデルＮの出力値ＮＦ  とモデルＳの出力値ＳＦ  とを比較して、モデルＮの出力値ＮＦ  の方が大きければ、モデルＮのプライオリティＮ０  をＳ０  より高く設定する。」というプライオリティ変更のための規則を採用すると、図１７の場合には、ＣＦ  ＞ＡＦ  であるためＣ０  ＞Ａ０  となるように自動的に変更することができる。さらにこの後、モデルＮを検索開始点として、幾何的なつながりがなくなるモデルＰまで各モデルの接触相手データを検索する事によりモデルの幾何的なつながりを追跡して主従関係を設定する。この際には各モデルのプライオリティ比較による主従関係の設定は行われない。以上により、出力値がロボットＡより大きなロボットＣを優先し、ワークＢをロボットＣに従属させることができる。３つのモデル全体としては、ロボットＣにワークＢが従属し、ロボットＣに従属するワークＢにロボットＡが従属する結果となる。
【００９３】
プライオリティを設定する場合、例えば、コンベアにはプライオリティ２，ロボットにはプライオリティ４，クレーンにはプライオリティ６というように、同一装置のモデルに対して同一のプライオリティを設定するケースが多い。この場合上記のような規則を採用することにより、主従関係が構築されているモデル群Ｍ中で最高のプライオリティを持つものが例えばロボットであり、新たにクレーンが接触状態に入った場合にはこのクレーンを主に設定し、新たにコンベアが接触状態に入った場合には、前記ロボットを主に設定し、新たにロボットが接触状態に入った場合には、モデル群Ｍ中で最高のプライオリティを持つロボットと新たに接触状態に入ったロボットとの内で出力値の大きなロボットの方を主に設定することができ、例えば同一装置のためプライオリティが同じで主の決定ができない場合でも、出力値の比較によりプライオリティを自動的に変更して主の決定を行うことができる。
【００９４】
実施の形態１４．
図２０はこの発明の実施の形態１４による運動連鎖模擬システム構成を示すブロック図であり、図において、１１は規則データメモリ、１２は規則選択部、１３は入力部である。なお、図１に示した部分と同一または相当の部分については同一符号を付して重複説明を省略する。この実施の形態１４は主従関係設定部がモデルのプライオリティを変更する際に利用する規則を、シミュレーションの状態に応じて変更可能としたものである。
【００９５】
次に動作について説明する。
プライオリティを変更するいくつかの規則が規則データメモリ１１に格納されており、どの規則を利用するかが規則選択部１２に設定されており、通常は、主従関係設定部４がその設定されている規則を利用してプライオリティを変更して主従関係を設定する。
【００９６】
現在利用している規則がユーザーの意図に沿わない場合等に、どの規則を利用するかの設定を変更するために、ユーザーは入力部１３より変更を指示し、規則選択部１２において異なる規則が選択される。
【００９７】
以上のように、この実施の形態１４によれば、主従関係設定部４がモデルのプライオリティを変更する際に利用する規則を、シミュレーションの状態に応じて変更可能に構成したので、現実世界における様々な作業ルールに対応したシミュレーションを行うことができる。
【００９８】
実施の形態１５．
図２１はこの発明の実施の形態１５による運動連鎖模擬システムの追従動作処理部５の追従動作処理方法の説明図である。この実施の形態１５における追従動作処理部５は、主従関係が設定されたモデルをその主従関係で結ばれるグループに自動的にまとめることにより追従動作を行わせる。
【００９９】
次に動作について説明する。
図２２は、この実施の形態１５における追従動作処理部５がモデルをグループ化する方法の一例を示す説明図である。２次元のワールド座標系ΣＷ中に３つの座標系Σ０，Σ１，Σ２があり、それぞれの座標系には図２２（１）に示すような親子関係があるとする。つまり、座標系ΣＷの中に座標系Σ０があり、座標系Σ０の中に座標系Σ１があり、座標系Σ１の中に座標系Σ２がある。そのため、図２１（１）から図２１（２）に示すように座標系ΣＷの中で座標系Σ０を移動すると座標系Σ１と座標系Σ２も移動し、図２１（２）から図２１（３）に示すように座標系Σ０の中で座標系Σ１を移動すると座標系Σ２も移動し、図２１（３）から図２１（４）に示すように座標系Σ１の中で座標系Σ２を移動すると座標系Σ２のみが移動する。なお、座標系に親子関係をつけることは、座標系間の座標変換マトリクスを求め、この座標変換マトリクスを以降常時使用することに対応する。
【０１００】
例えば図２２（２）に示すように２つのモデルＡ，Ｂをワールド座標系ΣＷの中で互いに独立の座標系Σｍ，Σｎにおいて作成しており、座標系ΣｎのモデルＡに座標系ΣｍのモデルＢを従属させようとする場合には、座標系の親子関係を図２２（３）に示すようにすることにより、座標系Σｎを移動すると座標系Σｍが移動し、モデルＡを移動するとモデルＢがモデルＡに追従して移動するようにすることができる。
【０１０１】
以上のように、この実施の形態１５によれば、主側のモデルに対して動作命令を出すのみにより従側のモデルを自動的に追従動作させることができ、必要なモデルデータを持つモデルがあれば、特別に追従動作を指示するプログラムを作成することなく追従動作を実行することができる。
【０１０２】
実施の形態１６．
図２３はこの発明の実施の形態１６による運動連鎖模擬システムの追従動作処理部５の追従動作処理方法の説明図である。この実施の形態１６における追従動作処理部５は、主従関係が設定された主側のモデルの配置位置を所定時間間隔毎に監視し、主側のモデルから見た従側のモデルの相対的配置位置が、主従関係が設定された時点の初期配置位置と等しくなるように従側のモデルの配置位置を移動させることにより追従動作を行わせる。
【０１０３】
次に動作について説明する。
この実施の形態１６における追従動作処理部５の追従動作処理方法は、一例として以下のようにして実行することができる。まず、主従関係が設定された時点で、図２３（１）に示すように主側のモデルの座標系Σｎのワールド座標系ΣＷ中の配置位置から従側のモデルの座標系Σｍのワールド座標系ΣＷ中の配置位置を求める座標変換マトリクスを求める。
【０１０４】
そして、主側のモデルの座標系Σｎの配置位置を所定時間間隔毎に監視し、前記座標変換マトリクスを用いて従側のモデルの座標系Σｍの配置位置を前記所定時間間隔毎に求める。これにより、図２３（２）に示すように主側のモデルの座標系Σｎが移動した場合、図２３（３）に示すように従側のモデルも一定間隔で追従するようにすることができる。
【０１０５】
この実施の形態１６によれば、特別に追従動作を指示するプログラムを作成することなく追従動作を実行することができるとともに、主側のモデルの配置位置を監視する時間間隔を適宜長くすることにより処理負荷を軽減したり、主側のモデルと従側のモデルを動作させるプログラムを分散化することにより処理負荷を分散化したりすることができる。
【０１０６】
実施の形態１７．
図２４はこの発明の実施の形態１７による運動連鎖模擬システムの追従動作処理部５の追従動作処理方法の説明図である。この実施の形態１７における追従動作処理部５は、主側のモデルへの動作命令に対し、主側のモデルを動作させず、動作命令における主側のモデルの動作分だけ従側のモデルを動作させることができるものである。
【０１０７】
次に動作について説明する。
各々のモデルの仕様データの中に、動作タイプを示す仕様データを予め入力しておき、追従動作処理部５にこの動作タイプを参照してモデルの追従動作を行わせるようにすることができる。この動作タイプとはモデルの動きを表現したものであり、例えば、ロボットが移動する動作を「移動する」，ハンドで掴む動作を「掴む」，放す動作を「放す」，コンベアが物を載せて運ぶ動作を「運ぶ」等で表現したものである。
【０１０８】
図２４に示したようにワークＢがコンベアＡに運ばれていく追従動作を行わせるような場合において、コンベアＡの動作タイプとしての「運ぶ」に対応する追従動作処理部５の追従動作処理は、通常「コンベアＡの荷台をｙ軸方向に動かし、コンベアＡに従属するワークＢがあればワークＢを追従動作させる」ようなものであり、図２４（２）に示すようにコンベアＡの荷台がｙ軸方向に動くとともに前記実施の形態１５，１６と同様に座標変換マトリクスを用いた処理によりワークＢが追従動作するが、「運ぶ」に対応する追従動作処理部５の追従動作処理を、「コンベアＡの荷台自身は動かさず、コンベアＡに従属するワークＢがあればワークＢのみをｙ軸方向に動かす」ように設定することもでき、この場合には、シミュレーションプログラムのプログラミングの際にコンベアＡの荷台を動作させるような複雑な動作のプログラミングを行うことを必要とせずに、コンベアＡとワークＢの追従動作を実行することができ、シミュレーション環境を作成するのに要する時間を短縮し、人的ミスを削減することができるとともに、ＣＰＵ等の処理負荷を低減することができる。
【０１０９】
【発明の効果】
以上のように、請求項１記載の発明によれば、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納するモデルデータメモリと、前記物体について模擬させるべき動作を規定する動作命令に従って前記モデルデータを逐次更新し、前記物体の運動を模擬させる動作命令指示部と、前記動作命令指示部がモデルデータを更新するたびに、互いの距離が一定値以下となる物体のモデルを検索し、検索結果として得られたモデルを、作用するものと作用されるものとの主従関係を設定すべきモデルであると判定して、それらのモデルデータを抽出するモデル抽出部と、前記モデル抽出部が抽出したモデルデータに対応する物体のモデル間の関係に基づいて各モデルの主及び従を設定する主従関係設定部と、前記主従関係設定部が主従関係を設定した各モデルのモデルデータ及びこれらモデルについて前記動作命令指示部により設定された動作命令に基づいて、前記各モデルの主従関係に従った追従動作を模擬する追従動作処理部とを備えるように構成したので、シミュレーションを行っているモデルの中から主従関係を設定すべきモデルを自動的に抽出し、抽出されたモデル間のどちらのモデルを主および従にするかをモデル間の関係を基にして自動的に設定し、主従関係の設定されたモデルを主従関係に従って動作させることができるため、人手により逐一各モデルに対して主従関係の設定をプログラミングする必要なく主従関係に従って運動するモデルの運動連鎖を模擬することが可能となり、物体の追従動作を表現するシミュレーション・システムを迅速に構築することができる効果がある。
【０１１２】
請求項２記載の発明によれば、モデルデータメモリが、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納すると共に、前記物体の機能及びその性能を特定する仕様データを格納し、モデル抽出部は、互いの距離が一定値以下にあり、前記仕様データに基づいて関連する属性を有すると判断された物体のモデルを、主従関係を設定すべきモデルであると判定して、これらのモデルデータを抽出するように構成したので、機能や性能等の仕様により結果の異なる物理現象を模擬することができ、より現実世界での物体間の関係に近いシミュレーションを行うことができる効果がある。
【０１１３】
請求項３記載の発明によれば、モデルデータメモリが、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納すると共に、前記物体の機能及びその性能を特定するデータであって、動作命令指示部からの動作命令に付随した命令によって機能及び性能の有効又は無効が設定される仕様データを格納し、モデル抽出部は、互いの距離が一定値以下にあり、前記動作命令指示部からの付随命令によって有効に設定された仕様データに基づいて関連する動作属性を有すると判断された物体のモデルを、主従関係を設定すべきモデルであると判定して、それらのモデルデータを抽出するように構成したので、所定の仕様データの動作属性のオン／オフの設定および切り替えにより、モデルが主従関係を構築可能かどうかの設定および切り替えを状況に応じて動的に行って、現実世界での物体間の関係に近い動的なシミュレーションを行うことができる効果がある。
【０１１４】
請求項４記載の発明によれば、モデルデータメモリが、模擬対象の物体の形状及び位置、向きに関するデータを、当該物体をモデル化するモデルデータとして格納すると共に、前記物体の機能及びその性能に基づいて当該物体のモデルが他の物体のモデルを従属させる力の強さを指定する特性データを格納し、主従関係設定部は、モデル抽出部によって抽出されたモデルデータに対応する物体のモデル間の関係として前記特性データに基づいて各モデルの主及び従を設定するように構成したので、従来のシミュレーション・システムにおいて追従動作を行わせるために必要であったモデル間の主従関係や拘束関係のプログラミングを逐一必要とせず、他のモデルを従属させる力の強さを基に適切な主従関係を設定して追従動作を行わせることができる効果がある。また、主従関係や拘束関係のプログラミングが逐一必要なくなるため、現実世界における物体の動きと同様にモデル間の動作のみに注意を注いだ直感的な操作が可能となり、この直感的な操作によりシミュレーション環境を作成するのに要する時間を短縮し、人的ミスを削減することができる効果がある。
【０１１５】
請求項５記載の発明によれば、モデルデータメモリが、特性データとして模擬対象の物体のモデルが他の物体のモデルを従属させる優先順位を数値で表現したプライオリティを格納し、主従関係設定部は、モデル抽出部によって抽出されたモデルデータに対応する物体のモデル間の関係としてプライオリティに基づいて各モデルの主及び従を設定するように構成したので、追従動作させる際にどちらが他のモデルを従えるモデルで、どちらが従うモデルなのかを逐一設定する必要がなくなり、シミュレーション環境の作成に要する時間を短縮し、人的ミスを削減することができる効果がある。
【０１１６】
請求項６記載の発明によれば、主従関係設定部が、モデル抽出部によって追従動作処理部が追従動作を模擬している物体のモデルについて主従関係を設定すべきモデルが検索されると、それらのプライオリティに基づいて、前記追従動作が模擬されている前記モデルとの主従関係における主及び従の設定を変更するように構成したので、拘束関係や主従関係の変更に関するプログラムや、逐次変化する複数のモデル間の主従関係の変更を逐一指示する必要がなくなり、シミュレーション環境の作成に要する時間を短縮し、人的ミスを削減することができる効果がある。
【０１１７】
請求項７記載の発明によれば、プライオリティの大小関係を規定する規則が予め設定されており、主従関係設定部が、追従動作処理部によって追従動作が模擬されている物体のモデルについて主従関係を設定すべきモデルが検索された場合、前記規則に基づいて前記各モデルのプライオリティを変更してその主従関係における主及び従を設定するように構成したので、モデル間の主従関係を柔軟に変更することを可能とし、固定したプライオリティでは実現不可能な複雑な動作を行うシミュレーション環境を構築することができる効果がある。
【０１１９】
請求項８記載の発明によれば、プライオリティの大小関係を規定する異なる複数の規則を格納する規則データメモリと、前記規則データメモリに格納される複数の規則のうち、物体の運動の模擬状態に応じて主従関係設定部に設定すべき規則を選択する規則選択部とを備え、前記主従関係設定部は、前記規則選択部によって前記物体の運動の模擬状態に応じて選択された規則に基づいてプライオリティを変更するように構成したので、現実世界における様々な作業ルールに対応したシミュレーションを行うことができる効果がある。
【０１２０】
請求項９記載の発明によれば、追従動作処理部が、主従関係が設定された物体のモデルをその主従関係で結ばれるグループにまとめて追従動作を模擬するように構成したので、主側のモデルに対して動作命令を出すのみにより従側のモデルを自動的に追従動作させることができ、必要なモデルデータを持つモデルがあれば、特別に追従動作を指示するプログラムを作成することなく追従動作を実行することができる効果がある。
【０１２１】
請求項１０記載の発明によれば、追従動作処理部が、主側のモデルの配置位置を所定時間間隔毎に監視し、前記主側のモデルから見た従側のモデルの相対的配置位置が、主従関係が設定された時点の初期配置位置と等しくなるように前記従側のモデルの配置位置を移動させることにより追従動作を模擬するように構成したので、特別に追従動作を指示するプログラムを作成することなく追従動作を実行することができる効果があるとともに、主側のモデルの配置位置を監視する時間間隔を適宜長くすることによる処理負荷の軽減や、主側のモデルと従側のモデルを動作させるプログラムの分散化による処理負荷の分散化を行うことができる効果がある。
【０１２２】
請求項１１記載の発明によれば、追従動作処理部が、主側のモデルについての動作命令に対し、前記主側のモデルを動作させず、前記動作命令にて規定される前記主側のモデルの動作分だけ従側のモデルを動作させるように構成したので、シミュレーションプログラムのプログラミングの際に例えばコンベアの荷台を動作させるような複雑な動作のプログラミングを行うことを必要とせずに、コンベアとワーク間の追従動作等の追従動作を実行することができ、シミュレーション環境を作成するのに要する時間を短縮し、人的ミスを削減することができるとともに、ＣＰＵ等の処理負荷を低減することができる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１による運動連鎖模擬システムの基本構成を示すブロック図である。
【図２】この発明の実施の形態１による運動連鎖模擬システムの基本動作を示すフローチャートである。
【図３】この発明の実施の形態２による運動連鎖模擬システムのモデル抽出部の動作を説明する概念図である。
【図４】図４はこの発明の実施の形態３による運動連鎖模擬システムのモデル抽出部の動作を説明する概念図である。
【図５】実施の形態３におけるモデルの接触状態を利用して主従関係を設定するモデルを抽出する具体的方法を示すフローチャートである。
【図６】図５の抽出方法の説明図である。
【図７】この発明の実施の形態４による運動連鎖模擬システムのモデル抽出部の動作を説明する概念図である。
【図８】この発明の実施の形態５による運動連鎖模擬システムのモデル抽出部のモデル抽出方法の説明図である。
【図９】実施の形態５のモデル抽出部のモデル抽出動作を示すフローチャートである。
【図１０】動作属性のオン／オフによるロボットとワークの主従関係の解除を示す図である。
【図１１】この発明の実施の形態７による運動連鎖模擬システムのモデル抽出部のモデル抽出方法の説明図である。
【図１２】この発明の実施の形態８による運動連鎖模擬システムの主従関係設定部の主従関係設定方法の説明図である。
【図１３】この発明の実施の形態９による運動連鎖模擬システムの主従関係設定部の主従関係設定方法の説明図である。
【図１４】ユーザーをモデル空間内で最も高いプライオリティを持つモデルとして存在させることにより、モデル空間の操作、モデルの操作等を行う方法を説明する説明図である。
【図１５】この発明の実施の形態１０による運動連鎖模擬システムの主従関係設定部の主従関係設定方法の説明図である。
【図１６】所定の規則に従ってプライオリティを自動変更することにより、主従関係を設定する処理の一例を示すフローチャートである。
【図１７】この発明の実施の形態１１による運動連鎖模擬システムの主従関係設定部の主従関係設定方法の説明図である。
【図１８】実施の形態１１の主従関係設定部のモデルの幾何的つながりを検索して主従関係を設定する方法の説明図である。
【図１９】この発明の実施の形態１２による運動連鎖模擬システムの主従関係設定部の主従関係設定方法の説明図である。
【図２０】この発明の実施の形態１４による運動連鎖模擬システムの基本構成を示すブロック図である。
【図２１】この発明の実施の形態１５による運動連鎖模擬システムの追従動作処理部の追従動作処理方法の説明図である。
【図２２】実施の形態１５における追従動作処理部５がモデルをグループ化する方法の一例を示す説明図である。
【図２３】この発明の実施の形態１６による運動連鎖模擬システムの追従動作処理部の追従動作処理方法の説明図である。
【図２４】この発明の実施の形態１７による運動連鎖模擬システムの追従動作処理部の追従動作処理方法の説明図である。
【符号の説明】
Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｎ，Ｏ，Ｐ  モデル、３  モデル抽出部、４  主従関係設定部、５  追従動作処理部。
【図１】
0003568678.tif 000002
【図２】
0003568678.tif 000003
【図３】
0003568678.tif 000004
【図４】
0003568678.tif 000005
【図５】
0003568678.tif 000006
【図６】
0003568678.tif 000007
【図７】
0003568678.tif 000008
【図８】
0003568678.tif 000009
【図９】
0003568678.tif 000010
【図１０】
0003568678.tif 000011
【図１１】
0003568678.tif 000012
【図１２】
0003568678.tif 000013
【図１３】
0003568678.tif 000014
【図１４】
0003568678.tif 000015
【図１５】
0003568678.tif 000016
【図１６】
0003568678.tif 000017
【図１７】
0003568678.tif 000018
【図１８】
0003568678.tif 000019
【図１９】
0003568678.tif 000020
【図２０】
0003568678.tif 000021
【図２１】
0003568678.tif 000022
【図２２】
0003568678.tif 000023
【図２３】
0003568678.tif 000024
【図２４】
0003568678.tif 000025