(57)【特許請求の範囲】
【請求項１】
コンピュータに接続された入力装置を介して入力された複数の部品の各々の部分形状と、これらの部分形状の間の拘束関係を前記コンピュータに接続された記憶装置に記憶するステップと、
前記記憶装置に記憶されている前記部分形状および前記拘束関係に基づいてアセンブリモデルとなる前記複数の部品の相対的位置関係を算出手段によって算出するステップと、
前記作成されたアセンブリモデルに自由度があるか否かを第１の判定手段によって判定するステップと、
前記第１の判定手段によって自由度があると判定された場合に、この自由度を減らすために前記部分形状の間に付加すべき拘束関係を第１の決定手段によって決定するステップと、
前記第１の決定手段によって決定された拘束関係を前記アセンブリモデルに付加し、自由度が減少したか否かを第２の判定手段によって判定するステップと、
前記第２の判定手段によって自由度が減少しないと判定された場合には、前記付加した拘束関係を削除手段によって削除した後、前記拘束関係を決定するステップに戻るステップと、
前記第２の判定手段によって自由度が減少したと判定された場合には前記付加した拘束関係に付随するパラメータを登録手段によって登録した後、前記自由度があるか否かを第３の判定手段によって判定するステップと、
を備えたことを特徴とするアセンブリモデル作成方法。
【請求項２】
前記登録されたパラメータはアセンブリモデルの部品の運動を規定するパラメータであることを特徴とする請求項１記載のアセンブリモデル作成方法。
【請求項３】
前記拘束関係を決定するステップは、前記アセンブリモデルの構成要素であるすべての部品についての部分形状を列挙するステップと、
前記部品間の部分形状と、部分形状間の拘束関係との組み合せを列挙するステップと、
前記列挙された組み合わせを順序付けるステップと、
前記順序付けられた順序に従って拘束関係を決定するステップと、
を備えたことを特徴とする請求項１または２記載のアセンブリモデル作成方法。
【請求項４】
前記部品間の部分形状と、この部分形状間の拘束関係との組みが複数組、前記コンピュータに接続された第２の記憶装置に記憶されており、
前記拘束関係を決定するステップは、前記第２の記憶装置に記憶されている複数組の中から１つの組を選択し、この選択された組の拘束関係を付加すべき拘束関係として決定することを特徴とする請求項１または２記載のアセンブリモデル作成方法。
【請求項５】
前記複数の組は順序付けられており、前記拘束関係を決定するステップは、順序付けられた順序に従って複数組の中から１つの組を順次選択することを特徴とする請求項４記載のアセンブリモデル作成方法。
【請求項６】
コンピュータに接続された記憶装置に記憶されている、複数の部品の各々の部分形状と、これらの部分形状間の拘束関係とに基づいて前記複数の部品の相対的位置関係を算出手段によって算出する手順と、
前記算出された相対的位置関係に基づいてアセンブリモデルを作成手段によって作成する手順と、
前記作成されたアセンブリモデルに自由度があるか否かを第１の判定手段によって判定する手順と、
自由度があると判定された場合に、この自由度を減らすために前記部分形状の間に付加すべき拘束関係を第１の決定手段によって決定する手順と、
前記第１の決定手段によって決定された拘束関係を前記アセンブリモデルに付加し、自由度が減少したか否かを第２の判定手段によって判定する手順と、
自由度が減少しないと判定された場合には、前記付加した拘束関係を削除手段によって削除した後、前記拘束関係を決定する手順に戻る手順と、
自由度が減少した場合には前記付加した拘束関係に付随するパラメータを登録手段によって登録した後、前記自由度があるか否かを第３の判定手段によって判定する手順と、
を、コンピュータに実行させるアセンブリモデル作成処理プログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はアセンブリモデル作成方法およびアセンブリモデル作成処理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ（以下、ＣＡＤと云う））システムを用いて、２次元形状または３次元形状の複数の部品のアセンブリモデルを作成する方法が知られている。この従来のアセンブリモデル作成方法は、複数の部品の形状データをＣＡＤシステムを用いて入力するとともに、形状特徴と呼ばれるこれら部品の部分形状の間に、平行、直角、一致、距離、角度、同心などの幾何学的な拘束関係を入力し、これらの形状データ（部分形状）および拘束関係に基づいて部品間の位置関係をコンピュータソフトウエアによって自動的に算出し、アセンブリのモデルを作成するものである。
【０００３】
一方、機構解析を行う目的で、自由度をもつ部分を例えば関節として入力し、機構パラメータ（例えば関節角）の変化や、上記関節に対する駆動力により、機構の運動などのシミュレーションを行うソフトウエアが知られている。
【０００４】
また、機構の持つ自由度と、機構の位置・姿勢を一意に決めるパラメータの組みを入力することにより、予め定義された周囲の障害物との干渉を回避して、与えられた初期位置から目標位置までの移動経路を自動的に算出する障害物回避動作計画が知られている。
【０００５】
従来のアセンブリモデル作成方法は、作成した機構が自由度を持っているかどうかをチェックする機能や、自由度を持つ部品をディスプレイ画面の上で指定し、移動方向を指定すると、拘束関係を満たしたまま指定された移動方向に最も近い動きをさせる機能を備えている。
【０００６】
しかし、これらの機能はアセンブリ中の部品を移動させた後に、部品の位置をずらして拘束を満たすようにすることによって実現される。
【０００７】
このため従来のアセンブリ作成方法は、どのようなパラメータを機構パラメータとして指定すれば、機構の運動を一意に記述できるかという情報、すなわち、機構解析や障害物回避動作計画に必要な情報を提供することができない。
【０００８】
したがって、機構解析や障害物回避動作計画を行う際には、従来のアセンブリモデル作成方法によって得られるアセンブリモデルのデータが存在する場合であっても、改めてどの部分を関節として入力するかを人手により検討し、関節として設定された数に過不足が無いかどうかを人手によりチェックし、これらの関節の機構パラメータの零点の位置指定を人手により行うなどの必要がある。このような作業は複雑な機構になればなるほど困難な作業となり、多くの場合、機構解析を実際に一度実行することによって関節の設定ミスを探すなどの手間が必要になる。
【０００９】
【発明が解決しようとする課題】
以上述べたように、従来のアセンブリモデル作成方法によって得られるアセンブリモデルのデータは直接に機構解析や障害物回避動作計画に利用することができず、機構解析や障害物回避動作計画に用いる際には非常に手間がかかるという問題があった。
【００１０】
本発明は上記事情を考慮してなされたものであって、機構解析や障害物回避動作計画に用いることが可能なアセンブリモデルを作成することのできるアセンブリモデル作成方法を得ることを目的とする。
【００１１】
【課題を解決するための手段】
上記の目的を達成するために本発明は、複数の部品の各々の部分形状と、これらの部分形状の間の拘束関係を入力し、記憶装置に記憶するステップと、前記記憶装置に記憶されている前記部分形状および前記拘束関係に基づいてアセンブリモデルとなる前記複数の部品の相対的位置関係を算出するステップと、前記作成されたアセンブリモデルに自由度があるか否かを判定するステップと、自由度があると判定された場合に、この自由度を減らすために前記部分形状の間に付加すべき拘束関係を決定するステップとを備えたアセンブリモデル作成方法とした。
【００１２】
ここで、前記決定された拘束関係を前記アセンブリモデルに付加し、自由度が減少したか否かを判定するステップと、自由度が減少しないと判定された場合には、前記付加した拘束関係を削除した後、前記拘束関係を決定するステップに戻るステップと、自由度が減少した場合には前記付加した拘束関係に付随するパラメータを登録した後、前記自由度があるか否かを判定するステップとを更に備えてもよい。
【００１３】
また、前記登録されたパラメータはアセンブリモデルの部品の運動を規定するパラメータとして利用されてもよい。
【００１４】
また、前記拘束関係を決定するステップは、前記アセンブリモデルの構成要素であるすべての部品についての部分形状を列挙するステップと、前記部品間の部分形状と、部分形状間の拘束関係との組み合せを列挙するステップと、前記列挙された組み合わせを順序付けるステップと、前記順序付けられた順序に従って拘束関係を決定するステップとを備えてもよい。
【００１５】
また、前記部品間の部分形状と、この部分形状間の拘束関係との組みが複数組第２の記憶装置に記憶されており、前記拘束関係を決定するステップは、前記第２の記憶装置に記憶されている複数組の中から１つの組を選択し、この選択された組の拘束関係を付加すべき拘束関係として決定するように構成してもよい。
【００１６】
また、前記複数の組は順序付けられており、前記拘束関係を決定するステップは、順序付けられた順序に従って複数組の中から１つの組を順次選択するように構成してもよい。
【００１７】
さらに本発明は、記憶装置に記憶されている、複数の部品の各々の部分形状と、これらの部分形状間の拘束関係とに基づいて前記複数の部品の相対的位置関係を算出する手順と、前記算出された相対的位置関係に基づいてアセンブリモデルを作成する手順と、前記作成されたアセンブリモデルに自由度があるか否かを判定する手順と、自由度があると判定された場合に、この自由度を減らすために前記部分形状の間に付加すべき拘束関係を決定する手順とを、コンピュータに実行させるアセンブリモデル作成処理プログラムを記録したコンピュータ読取り可能な記録媒体とした。
【００１８】
【発明の実施の形態】
本発明によるアセンブリモデル作成方法の第１の実施の形態を図１、図２、図３を参照して説明する。
【００１９】
この第１の実施の形態のアセンブリモデル作成方法の処理手順を図１に示し、この第１の実施の形態の処理手順を図２に示す部品２，４，６からなるアセンブリモデルを作成する場合を例にとって説明する。なお、図３は本発明に使用されるコンピュータシステムの一構成例を示すブロック図である。
【００２０】
まず図１のステップＦ１に示すように部品形状の入力を行う。例えば図２に示す部品２，４，６の各形状を例えば図３に示すコンピュータ８０の入力装置８１を用いて読込み、記憶装置８５に記憶する。このとき、読込まれた各部品は表示装置８３によって例えば図２に示すように表示される。
【００２１】
次に部品の部分形状間の関係について入力すべき関係がある場合には部分形状とその関係を、上記入力装置８１を用いて入力し、上記記憶装置８５に格納する。（図１のステップＦ２、Ｆ３参照）。例えば図２に示す部品２，４，６からアセンブリモデルを作成するために、部品２と部品４に関して部品２の部分形状である平面２ａと部品４の部分形状である平面４ａが一致し、かつ部品２の部分形状である円筒面２ｂと部品４の部分形状である円筒面４ｂが同軸であるという関係を入力する。同様に部品４と部品６に関しては、部品４の部分形状である平面４ｃと部品６の部分形状である平面６ａとが一致するという関係、および部品４の部分形状である平面４ａと部品６の部分形状である平面６ｂが一致するという関係を入力する。
【００２２】
このように入力された関係が上記記憶装置８５においてどのように記憶されるかを模式的に示した例を図４に示す。図４から分かるように記憶装置８５においては、部品２，４，６の情報および部分形状の情報の他に、平面同士の一致関係３ａ，５ａ，５ｂおよび同筒同士の同軸関係３ｂがデータとして存在している。
【００２３】
次に図１のステップＦ４に示すように、記憶装置８５に格納された情報に基づいて、部品２，４，６の相対的位置関係を算出する。この相対的位置関係を算出する機能は、一般にソフトウエアとして提供されており、例えば英国Ｄ・Ｃｕｂｅｄ社の３Ｄ−ＤＣＭ−Ｐ３  ｖｅｒ．１．８．０はそのようなソフトウエアの一例である。以下、このようなソフトウエアを幾何拘束処理ライブラリともいう。具体的には、各部品には、部品特有のローカル座標系が設定されており、このローカル座標系と、アセンブリモデルを作成すべき空間に固定されたワールド座標系との間の変換マトリクスという形で上記相対的位置関係が表現される。すなわち、図４に示されている部品間の関係３ａ，３ｂ，５ａ，５ｂから部品２と部品４および部品６の位置を表現する変換マトリクスが上記幾何拘束処理ライブラリによって自動的に計算される。
【００２４】
ここで、幾何拘束処理ライブラリの処理内容を２次元の簡単な例で詳しく説
明する。図１２に示すように、ワールド座標系１０１で示される空間に、部品
１０２と部品１０３が存在する。今、部品１０２の部分形状である直線１０４
と部品１０３の部分形状である直線１０５を一致させて、部品１０２と部品１
０３の位置を計算することを考える。まず直線１０４は部品１０２のローカル
座標系１０６ａにおいて
【数１】
0003643504.tif 000002
と表現されている。また直線１０５は部品１０３のローカル座標系１０６ｂに
おいて
【数２】
0003643504.tif 000003
という方程式で表現されている。
【００２５】
部品１０２の位置を示すワールド座標系１０１から部品１０２のローカル座標系１０６ａへの変換マトリックスは
【数３】
0003643504.tif 000004
であり、部品１０３のワールド座標系１０１から部品１０３のローカル座標系１０６ｂへの変換マトリックスは
【数４】
0003643504.tif 000005
であるとする。このとき、直線１０４のワールド座標系１０１における方程式を
【数５】
0003643504.tif 000006
とし、直線１０５のワールド座標系１０１における方程式を
【数６】
0003643504.tif 000007
とすると、これらの関係は以下のようなマトリクスで表される。
【００２６】
【数７】
0003643504.tif 000008
一方、２つの直線が一致する条件は、一方の直線上の一点が他の直線上にあ
ること、および、方向ベクトルが平行（外積が０）であること、の２つの幾何
学的条件と等価である。これをワールド座標系１０１において表現すると、
【数８】
0003643504.tif 000009
となる。
【００２７】
この条件を加えて方程式を解けば、直線１０４と直線１０５が一致する条件を満たす部品１０２および部品１０３の位置が算出できる。方程式を解く都合からsinθとcosθをそれぞれｓとｃとおくと、以下のような２次の連立方程式になる。
【００２８】
【数９】
0003643504.tif 000010
ここには、１２の独立な式があり、直線１０４と直線１０５のローカル座標系１０６ａ，１０６ｂにおける直線の方程式を表す８つの定数x1,y1,x2,y2,a1,b1,a2,b2が含まれる。変数は１６あり、このうち求めたいのは部品１０２と部品１０３の位置を示すパラメーターc1,s1,c2,s2,α1,β1,α2,β2である。これらの値を求めるには、上記２次連立方程式から８つの定数x1,y1,x2,y2,a1,b1,a2,b2と部品１０２と部品１０３の位置を示すパラメーターc1,s1,c2,s2,α1,β1,α2,β2以外の変数を消去し、c1,s1,c2,s2,α1,β1,α2,β2の値を求めれば良い。このように変数を消去する方法としては、多項式イデアル(polynomial ideal)のグレブナー基底(Groebner basis)を求めるブッフバーガーアルゴリズム(Buchberger algorithm)が知られているので、この方法を用いて不要な変数を消去してからc1,s1,c2,s2,α1,β1,α2,β2の値を求めてもよいし、上記２次連立方程式の定数を代入して直接解いてもよい。いずれにしても、式の数よりも変数の数が４多いことから、式として４自由度があることが分る。
【００２９】
この式はワールド座標系１０１において定義されており、今注目しているのが２つの部品の相対的位置関係であることに注意すれば、どちらか一方の部品の位置を固定しても構わないので、例えば部品１０２を固定するとして、c1,α1,β1を定数とすると、式の数よりも変数が１つ多いことになり、相対的な自由度は１あることが分る。部品１０３の位置を算出するには、c2,s2,α2,β2の値の内１つを定数として決めて（現在の値に固定して）、他の値を求めればよい。また一般に、もし拘束条件が実現できないような状況（例えば２つの直線が平行でかつ垂直である）で定義されていれば、連立方程式に解が存在しなくなるので、検知可能である。
【００３０】
このように、幾何拘束処理ライブラリは、与えられた拘束関係を代数的な式
として表現しなおして、処理を行なう。このため、自由度の検出や、拘束の整
合性のチェックなどが効率的に可能になるが、もとの形状にもどって、直線に
そった並進の自由度が２つの部品の間に存在することなどを発見することは極
めて困難である。
【００３１】
上述の各部品の部分形状の間で定義された一致関係、すなわち部分形状間の拘束関係をすべて満足するように、算出された部品間の相対的位置関係（アセンブリモデル）の一例を図５に示す。この図５に示す相対的位置関係は、自動的に計算された部品の変換マトリクスを、部品の形状データに作用させて得られた部品の位置を示している。この相対的位置関係は図３に示す表示装置８３を用いて表示される。
【００３２】
この図５からも分かるように、上述のようにして求められたアセンブリモデルは、部品間の相対的位置関係を完全に決定するだけの拘束関係を一般的に有しているとは限らない。例えば図５に示すように、部品２と部品４との間で相対的な回転１０を行っても、また、部品４と部品６の間で相対的に平行移動１２を行っても、依然として図４に示す関係はすべて保たれている。すなわち図５に示すアセンブリモデルは、回転自由度１０と、並進自由度１２とを有している。
【００３３】
そこで、再び図１に戻り、ステップＦ４で部品の相対的位置関係を算出した後は、ステップＦ２に戻り、部品の相対的位置関係を規定する拘束関係を入力するかどうかをチェックする。そして拘束関係の入力が無い場合には、ステップＦ５に進み、作成されたアセンブリモデルに自由度があるかどうかが判定される。この自由度があるかどうかを判定する機能は例えば上述の幾何拘束処理ライブラリに備えられている。
【００３４】
しかし、上記幾何拘束処理ライブラリは、自由度があるかどうかは判定するが、自由度があると判定した場合には、その自由度が回転自由度であるのか、または並進自由度であるのかは導出しない。更に、これらの２つの自由度は回転角や平行移動距離などのパラメータによって記述されるが、これらのパラメータの種類（例えば角度、距離等）と、これらのパラメータの基準（例えば、どの点とどの点の距離なのか、どちらの向きを＋にとるか等）に関する情報は上記幾何拘束処理ライブラリによっては与えられない。
【００３５】
また上記幾何拘束処理ライブラリは、図５において、部品６を斜め上方に移動させようとしたときには、与えられた拘束を満足させながら移動させる、すなわち水平方向に移動させる機能は備えている。しかし、この機能は、並進のパラメータを陽に用いていない。
【００３６】
一方機構解析、障害物回避動作計画などの分野においては機構の自由度を規定するパラメータにより運動を記述する。すなわち図５の例においては、回転自由度１０に対応する回転角と並進自由度１２に対応する平行移動距離の２つのパラメータがこれに対応する。
【００３７】
本発明は上述のパラメータを自動的に算出するように構成されている。これらのパラメータを規定する部分形状について図６参照して説明する。
【００３８】
図６は、これらのパラメータを規定するための部分形状の例を示している。符号８ａ，８ｂは円筒面の中心軸と直交する方向ベクトルを表す直線である。これら直線８ａ，８ｂは円筒面に剛体接続されていると考える。同筒同士が同軸という拘束関係があれば上記直線８ａ，８ｂ同士の角度を新たな拘束関係として付加することにより、この角度が回転自由度のパラメータとなる。従って、このような直線８ａ，８ｂは円筒の形状ないしは位置姿勢を表す要素であるので、本発明においては部分形状であると定義する。
【００３９】
また図６において符号９ａ，９ｂは、部品４，６上の頂点である。これらの頂点９ａ，９ｂは平面同士が一致するという拘束関係が既に定義されている平面の部分形状ではないが、平面上の幾何要素であり、幾何学的ないしは位相的に関係している。このため部品４の平面４ｃと部品６の平面６ｂが一致している拘束関係の下で、各々の平面上の同一直線上の頂点９ａ，９ｂ間の距離を新たな拘束関係として付加することにより、この距離が並進自由度のパラメータとなる。
【００４０】
再び図１に戻り、ステップＦ５において、自由度があると判定された場合には、自由度の個数を減らすために部品の部分形状間に付加すべき拘束関係の候補を決定する（図１のステップＦ６参照）。そしてこの決定された拘束関係を、アセンブリモデルに付加する（図１のステップＦ７参照）。例えば図５に示すアセンブリモデルに、図６に示す直線８ａ，８ｂのなす角度、頂点９ａ，９ｂ間の距離を新たな拘束関係１４，１６として付加したときに記憶装置に記憶されている様子を図７に示す。
【００４１】
次にステップＦ７で新たな拘束関係を付加した後、自由度が減少したかどうかを例えば前述の幾何拘束処理ライブラリを用いてチェックする（図１のステップＦ８参照）。自由度が減少しなかったり、過剰拘束になる場合には、上記新たに付加した拘束関係を削除し（図１のステップＦ９参照）、ステップＦ６に戻り、付加すべき拘束関係の候補を新たに決定し上述のことを繰り返す。
【００４２】
ステップＦ８において、自由度が減少した場合には、ステップＦ７で付加した拘束関係をパラメータとして登録する（図１のステップＦ１０参照）。その後ステップＦ５に戻り、自由度があるかどうかをチェックする。自由度が無い場合にアセンブリモデルの作成が終了する。なお上記登録したパラメータは機構解析や障害物回避動作計画に用いることができる。
【００４３】
なお、ステップＦ３で入力された拘束関係はアセンブリモデルを作成するための拘束関係であるのに対して、ステップＦ７で付加された拘束関係は自由度を減らすための拘束関係である。このため後者の拘束関係に属性を付加することにより前者の拘束関係と区別するようにしておく。
【００４４】
以下では、本発明の特徴であるステップＦ６の部分形状と関係の候補の決定の処理手順についてさらに細かく説明する。すなわち、図７における部分形状８ａ，８ｂとその拘束関係１４および頂点９ａ，９ｂとその拘束関係１６を、どのような手順で候補として選び出すかについて説明する。図８は最も単純な処理手順のフローを表している。
【００４５】
まず、ステップＦ２１で部分形状の組合わせが、既に列挙または順序付けされているか否かをチェックする。列挙または順序付けされている場合にはステップＦ２５に進む。列挙または順序付けされていない場合はそれぞれの部品について部分形状のあらゆる候補を列挙する（ステップＦ２２）。図４および図５の例では、部品２、部品４、部品６それぞれについて関係を少なくとも１種類は付けることのできる部分形状をすべて列挙する。列挙すべき部分形状としては、平面、球面、円筒面、直線、円弧、頂点などが典型的であり、この例においてはすべての形状要素が候補になる。自由曲面などをもつ形状の場合には、そのような面は候補から除外される場合が多い。候補として列挙すべきかどうかは、幾何拘束処理ライブラリが扱えるか否かで決まる。
【００４６】
次にステップＦ２３においては、部品間で、幾何拘束処理ライブラリの扱うことが可能なあらゆる部分形状の組とそれらの部分形状間の拘束関係との組合せを列挙する。ただし、ここで列挙する拘束関係は角度、距離などの位置を示すパラメータが付随するものに限られる。例えば、平面と平面の一致の関係を付加して、自由度を減少させることは可能であるが、このような関係は、ユーザーがアセンブリ作成の際に意図していない拘束を付加するものであり、本来可能な運動を不可能にしてしまうからである。
【００４７】
一方、距離や角度の拘束は、そのパラメータである距離の値や角度の値を特定の値の決定した場合には、それに対応する特定の機構の（すなわちアセンブリの）位置姿勢を表すが、パラメータの値を変化させることで、ユーザーの意図した運動を実現することが可能となる。すなわち、ステップＦ２３において列挙される関係は、平面と平面の距離、平面と頂点の距離、円筒と円筒の距離、頂点と頂点の距離、頂点と平面の距離、直線と直線の距離、平面と平面の角度、直線と直線の角度などが例として考えられる。ステップＦ２４ではこれらの関係について列挙された順番で順序付けし、ステップＦ２５では最初の候補を出力する。２回目以降の候補決定の際には、すなわち図１においてステップＦ７の実行の結果ステップＦ８，Ｆ９を介してステップＦ６に戻ってきた場合には、ステップＦ２１の判定処理を介してステップＦ２５に直接飛び、順次２番目以降の関係を候補として出力する。これらの関係の候補は図１のステップＦ７において試験的に付加され、自由度が減少すればその拘束関係に属性をつけて残すことにより機構パラメータとして採用される。
【００４８】
しかし、この方法ではチェックすべき拘束関係の候補の数が一般には膨大になり、効率が低い。このため予めリストアップされた候補を優先することが考えられる。この予めリストアップされた候補を優先する方法は、この問題を解決し、図１のステップＦ６を効率化することを可能にする。そのために、すでにアセンブリを定義するためにユーザーにより入力された関係（図４においては３ａ，３ｂ，５ａ，５ｂ）は、多くの場合機構の関節などに関連することに着目する。すなわち、このようにアセンブリモデル作成の際に入力された関係のタイプごとに、機構パラメータとなる可能性のある関係を表の形でデーターベース化しておき、図８においてすべての関係の組合わせを列挙する前に、これら表の形のデータベースに格納されている関係を優先的にステップＦ６、Ｆ７に適用する。以下の表はそのようなデータベースとなるテーブルの一例を示している。
【００４９】
【表１】
0003643504.tif 000011
例えば図４に示す関係５ａは平面４ｃと平面６ａの一致の関係であるので、上記表の１行目にあるようにこれら平面４ａと平面６ａの同一直線上の頂点の組みである、図６に示す頂点９ａと９ｂが膨大な組合わせをチェックすることなしに候補として選ばれる。実際の機構においては、回転関節や並進スライドジョイントなどは何らかの摺動部を持つことが多く、かつこのような摺動面はアセンブリ入力の際にユーザーにより入力されているため、現実の機構の摺動部に即した形で関係が付加され、機構パラメータが定義されるメリットもある。同様に図４に示す円筒２ｂと円筒４ｂの同軸関係３ｂは表の６行目に一致し、図７に示す関係１４が候補として選ばれる。このようなデータベースないしは表を参照する機能を加えた場合の処理手順は図９に示すフローのようになる。この図９に示すフローは図８に示すフローにステップＦ３１とＦ３２が付加された構成となる。
【００５０】
さらに、本発明により自動的に付加される拘束関係がユーザーからも直観的となるように処理手順を改善する方法を図１０および図１１を参照して説明する。図１０は、２つの三角柱６１，６２が平面と平面の一致の関係と軸穴対偶に相当する円筒と円筒の同軸関係とによりアセンブリモデルとして定義されたことを示す図である。図１０（ａ）はその斜視図であり図１０（ｂ）はその平面図である。
【００５１】
上記表のデータベースによれば、このアセンブリの機構パラメータとなる関係としては「平面と平面の一致」という関係から「頂点６４と頂点６５の距離」が候補として考えられる。また同様に「円筒と円筒が同軸」という関係から「直線６６と直線６７の角度」も候補として考えられる。機構パラメータとしては、どちらも自由度を正しく相殺し、距離や角度のパラメータによって機構の運動を制御できることから、正しい拘束であると言える。
【００５２】
しかし、「直線６６と直線６７の角度」については、実際の機構において軸６３にモータをつけるなどして角度のパラメータを実際に制御できるのに対して、「頂点６４と頂点６５の距離」は新たな伸縮機構を備えたリンクを加えるなどしないと機構の制御が難しい。このような理由から、回転の角度をパラメータとして選択する方が、より実際の人間の感覚に近いことが分かる。
【００５３】
これを実際の処理手順に反映させると、図１１に示すようになる。候補として選択された部分形状とその関係について、図１１のステップＦ４１において、そのようなパラメータ（すなわち並進あるいは回転）の自由があるかどうかをチェックするのである。図１０に示す例では、「頂点６４と頂点６５の距離」は距離の関係であり並進自由度に対応する。しかし、部品６１を固定してこの距離を増加する状況を考えると、６９に示されるような位置に部品６２が移動することになり、頂点６４と頂点６５を結ぶ直線６８上は移動しないことが分かる。一方、「直線６６と直線６７の角度」については、その値を増加させて位置６９まで部品６２を移動させても、回転中心は移動していないことが分かる。このような比較により、この機構においては、「直線６６と直線６７の角度」に対応する回転が本質的であり、「頂点６４と頂点６５の距離」はこの自由度を別の距離というパラメータにより制御することが可能であることを示しているに過ぎないことが分かる。このように、パラメータに対応する関係を比較し、より人間の直感に近いものを優先させれば、よりユーザーにとって使いやすいものになる。
【００５４】
以上では、機構パラメータとそれに対応する関係をどのように決定するかに重点をおいて説明してきた。機構解析や障害物回避動作計画などのアプリケーションにこのようなデータを送ることにより、アセンブリモデルのデータから直接機構解析や障害物回避動作計画などのアプリケーションを実行することが可能になる。また、関節パラメータの変化から機構の動きを求めるような簡単な機構解析は、以下のようにそのまま実行することも可能である。すなわち、以上のステップで決定された機構パラメータに対するある時刻における値が与えられると、図１のステップＦ４で実行するのと同様に幾何拘束処理ライブラリによって個々の部品の３次元ないしは２次元空間における位置・姿勢を決定し、これを時刻の刻み幅にあわせて順次変化させることで、機構としての動きをシミュレーションとして確認するなどの作業を行うことが可能になる。
【００５５】
また上記実施の形態においては、図１に示すステップＦ４からステップＦ１０までの処理手順は、プログラムとして記録媒体（例えば、ＣＤ−ＲＯＭ、光磁気ディスク、またはＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等の光ディスクや、フロッピーディスク、メモリカード等）に記録される。
【００５６】
したがって、図８に示すステップＦ２１〜Ｆ２５までの処理手順、図９に示すステップＦ２１〜Ｆ２５およびステップＦ３１、Ｆ３２の処理手順、または図１１に示すステップＦ２１〜Ｆ２５、ステップＦ３１、Ｆ３２、およびステップＦ４１の処理手順は各々図１のステップＦ６として記録媒体に記録されることになる。
【００５７】
この記録は次のようにして行われる。まず図３に示すようにコンピュータ８０を起動し、記録媒体を記憶装置（図３においてはＦＤドライブ８７またはＣＤ−ＲＯＭドライブ８９）にセットする。続いて入力手段（例えばキーボード）８１を用いて、例えば上記実施の形態の場合はステップＦ４からステップＦ１０までの処理手順をプログラムとして順次入力する。するとこの入力されたプログラムはコンピュータ８０のＣＰＵ（図示せず）によって、記録媒体に書込まれる。この書込む際には表示装置８６を利用すると便利である。
【００５８】
このような記録媒体に記録されたアセンブリモデル作成処理手順を実行する場合について説明する。まずアセンブリモデル処理手順をプログラムとして記録された記録媒体を、読取り装置（図３ではＦＤドライブ８７またはＣＤ−ＲＯＭドライブ８９）にセットする。続いて上記読取り装置に接続されたコンピュータ８０のＣＰＵによって上記記録媒体から上記プログラムが読出されて順次実行される。
【００５９】
【発明の効果】
以上説明したように本発明のアセンブリモデル作成方法によれば、形状特徴間の拘束関係を入力することにより作成されたアセンブリのモデルに、機構解析や障害物回避動作計画に利用するために必要となる付加的な幾何拘束関係とそれに付随する機構パラメータが自動的に設定され、そのまま、機構解析や障害物回避動作計画を実行することが可能になる。
【図面の簡単な説明】
【図１】本発明によるアセンブリモデル作成方法の一実施の形態の処理手順を示すフローチャート。
【図２】アセンブリモデルの構成部品を示す斜視図。
【図３】本発明によるアセンブリモデル作成方法が使用されるコンピュータシステムの一構成例を示すブロック図。
【図４】アセンブリモデルを作成する際に各部品の部分形状と、これらの部分形状の間に定義された拘束関係とが記憶装置に記録されたときの様子を示す模式図。
【図５】各部品の部分形状間に拘束関係が定義されたときに、どの自由度が残っているかを説明する斜視図。
【図６】自由度を相殺するために導入される部分形状の例を説明する各部品の斜視図。
【図７】各部品の部分形状と、これらの部分形状の間の拘束関係と、自由度を相殺するために導入された拘束関係とが記憶装置に記録されたときの様子を示す模式図。
【図８】部分形状と拘束関係の候補を決定する処理の第１の具体例を示すフローチャート。
【図９】部分形状と拘束関係の候補を決定する処理の第２の具体例を示すフローチャート。
【図１０】ユーザーにとって直感的な関係を優先する処理手順を説明する説明図。
【図１１】ユーザーにとって直感的な関係を優先する処理を考慮したときの部分形状と拘束関係の候補を決定する処理手順を示すフローチャート。
【図１２】幾何拘束処理ライブラリの処理内容を示す線図。
【符号の説明】
２  部品
２ａ  平面
２ｂ  円筒
３ａ  拘束関係
３ｂ  拘束関係
４  部品
４ａ  平面
４ｂ  円筒
４ｃ  平面
４ｄ  平面
５ａ  拘束関係
５ｂ  拘束関係
６  部品
６ａ  平面
６ｂ  平面
８ａ  部分形状（直線）
８ｂ  部分形状（直線）
９ａ  頂点
９ｂ  頂点
１０  回転自由度
１２  並進自由度
【図１】
0003643504.tif 000012
【図２】
0003643504.tif 000013
【図３】
0003643504.tif 000014
【図４】
0003643504.tif 000015
【図５】
0003643504.tif 000016
【図６】
0003643504.tif 000017
【図７】
0003643504.tif 000018
【図８】
0003643504.tif 000019
【図９】
0003643504.tif 000020
【図１０】
0003643504.tif 000021
【図１１】
0003643504.tif 000022
【図１２】
0003643504.tif 000023