(57)【特許請求の範囲】
【請求項１】
ワークピースの工作機械への取り付け（フィクスチャリング）方法を自動設計する自動フィクスチャリング設計システムであって、
３次元ＣＡＤで出力されるワークピースのデータにより、ワークピースを含む空間を複数のブロックに分割し、各ブロック毎にそのワークピース部分の形状の特徴を認識する手段と、
上記認識結果をもとに、フィクスチャリングに必要な箇所の候補ブロックを抽出し、各候補ブロックについて、フィクスチャリング位置としての適性度を、あらかじめ定めたルールによりポイントを計算することで割り当て、その結果によりフィクスチャリング位置に最適なブロックを選択し、フィクスチャリング方法を決定する手段と、
を有することを特徴とする自動フィクスチャリング設計システム。
【請求項２】
請求項１記載の自動フィクスチャリング設計システムにおいて、候補ブロックについてフィクスチャリング位置としての適性度を割り当てるために使用されるルール、ポイントを、利用者との対話により修正する手段を有することを特徴とする自動フィクスチャリング設計システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ワークピースを工業機械へ取り付ける（フィクスチャリング）作業の能率化、自動化を支援する自動フィクスチャリング設計システムに関する。
【０００２】
【従来の技術】
近年の生産加工技術においては、個々のユーザーのニーズに対応すべく、多品種少量生産に対応できるようなシステムが構築されつつある。さらに次世代の生産システムでは、加工、組立、検査などがすべて自動で行われ、その各モジュール間の分散協調制御により生産とリサイクルが行われることが予想される。しかし、ワークピースの工作機械への着脱作業、つまりワークの段取り作業の自動化が行われているケースは、小品種、大量生産のごく限られた場合であって、通常の多品種少量生産の場合には、熟練者の人手による作業に頼っているのが現状である。この熟練者の経験や勘をシステム化することは非常に困難であり、そのことが多種多様なワークピースの段取り作業の自動化を妨げている要因でもある。
【０００３】
【発明が解決しようとする課題】
そこで、本発明では、ワークピースの形状の特徴をそのＣＡＤデータから自動的に認識し、それをもとにワークピースの工作機械への取り付け（フィクスチャリング）方法を自動的に推論していくシステムを提供することを目的とする。
【０００４】
【課題を解決するための手段】
本発明の自動フィクスチャリング設計システムは、３次元ＣＡＤで出力されるワークピースのデータにより、ワークピースを含む空間を複数のブロックに分割し、各ブロック毎にそのワークピース部分の形状の特徴を認識する手段と、該認識結果をもとに、フィクスチャリングに必要な箇所の候補ブロックを抽出し、各候補ブロックについて、フィクスチャリング位置としての適性度を、あらかじめ定めたルールによりポイントを計算することで割り当て、その結果によりフィクスチャリング位置に最適なブロックを選択し、フィクスチャリング方法を決定する手段とを有することを基本構成とする。
【０００５】
さらに、本発明の自動フィクスチャリング設計システムは、候補ブロックについてフィクスチャリング位置としての適性度を割り当てるために使用されるルール、ポイントを、利用者との対話により修正する手段を備えることを特徴とする。
【０００６】
本発明では、３次元ＣＡＤデータからワークピースの形状を認識し、その認識結果をもとに所望のルールを満たすようなフィクスチャリング方法を自動的に推論する。さらに、利用者との対話により熟練者の意見を順次学習していき、あらゆるパターンのワークピースにも対応できるようにシステムを成長させる。
【０００７】
【発明の実施の形態】
以下、本発明の一実施例について図面により説明する。
【０００８】
最初、ワークピースのフィクスチャリングルールについて説明する。ワークピースのフィクスチャリングにはある一定のルールがある。その中には、ａ）参考書やハンドブックに明確に記述されているもの、ｂ）あまりにも常識的なことなので明確にルールとして認識されていないもの、ｃ）段取り熟練者が今までの経験を通して感覚として持っているもの（ヒューリスティックス）等がある。特にｃ）は無限に存在するワークピースの形状や加工のパターンに、順次対応して認識されていくものであるので、それらを一冊のルールブックとしてまとめることは、一般に不可能である。そこでフィクスチャリング方法を自動的に決定するシステムを構築するための第一歩として、熟練者へのアンケートを行った。アンケートは、ワークピースの着座面の様子や、側面の状況等を系統立てて想定した数十個のワークピース形状に対して、そのフィクスチャリング方法を記述してもらうという方法を取った。
【０００９】
このアンケートの結果と、上記のａ）ｂ）をもとにして得られたルールのいくつかを挙げると、以下の如くである。なお、図２及び図３は、そのいくつかを図示したもので、「×」が不適、「○」が適である。
【００１０】
ルール１：着力点を等分にするように、締め付け力を配分する（ワークピースをまんべんなく抑える）。（図２（ａ）参照）
ルール２：加工位置に近い部分は抑えない（加工誤差の減少と切り屑の流れを良くするため）。（図２（ｂ）参照）
ルール３：ワークの下まで突き抜ける加工を行う場合には、ワーク全体をジャッキで浮かす。
【００１１】
ルール４：クランプ位置が不安定な場合は、ジャッキを用いる。
【００１２】
ルール５：ワークの最上部を抑えるよりは、下の方でクランプできる位置を探す。（図２（ｃ）参照）
ルール６：加工の妨げになるような位置にフィクスチャ（取り付け具）がこないようにする。（図３（ａ）参照）
ルール７：締め付けの着力点は、着座面の上にあるようにする。（図３（ｂ）参照）
ルール８：側面で位置決めする場合は３箇所（以下でも以上でもない）で行う。（図３（ｃ）参照）
ルール９：ワークが安定するように抑える。至極当然のことだが非常に重要なルールである。
【００１３】
ルール１０：取り付け具及び工数の無駄をなくすために、最小限の取り付け具で抑える。
【００１４】
ルール１１：加工方向に拘束するようにフィクスチャリングする。
【００１５】
ルール１２：ワークのフィクスチャリングによる変形を最小限にする。
【００１６】
ルール１３：着座面の精度がでていないワークの場合には３点支持でフィクスチャリングする。
【００１７】
ルール１４：加工精度が欲しい部分を着座面、基準面とする。
【００１８】
ルール１５：切削抵抗によって、変形やずれが起こらない。
【００１９】
ルール１６：取り付け後、外部から位置決め部分を確認できる。
【００２０】
ルール１７：取り付け、取り外しの邪魔にならない。
【００２１】
ルール１８：同時に多面または多箇所の加工ができるようにする。
【００２２】
ルール１９：加工物を取り付けたままでも、測定が容易にできる。
【００２３】
ルール２０：締め付けによってワークの正しい位置が狂わないこと。
【００２４】
ルール２１：最も精度を必要とする部分を基準面とする。
【００２５】
これらのルールに従ってフィクスチャリングするという作業を、コンピュータによって自動的に行われるようなシステムを構築するためには、次に示すような手順を踏まなければならない。
【００２６】
（１）  ワークピークスの形状をそのＣＡＤデータから自動的に認識する。
【００２７】
（２）  その認識結果をもとに、上記のルールを満たすようなフィクスチャリング方法を推論する。
【００２８】
さらに、上記のように文章で明確に表すことができない熟練者の経験や勘を、システムに取り入れることは必要不可欠であるので、３番目として次に示すような手順が必要である。
【００２９】
（３）  熟練者の意見を順次学習していき、あらゆるパターンのワークピースにも対応できるようにシステムを成長させる。
【００３０】
図１に、本発明による自動フィクスチャリング設計システムの概略構成を示す。図において、１０がコンピュータによる本自動フィクスチャリング設計システムであり、ワーク形状認識部１１０、フィクスチャリング方法推論部１２０及び学習部１３０から構成される。２０はＳolidデータ型の３次元ＣＡＤ、３０はワークピースモデル、４０はＣＡＤから出力されるワークピースデータを示す。
【００３１】
ここで、ワークピースデータ４０は、例えばＩＧＥＳフォーマットで表わされるものである。ＩＧＥＳ（Ｉnitial Ｇraphics Ｅxchange Ｓpecification）とは、異なるＣＡＤ／ＣＡＭ間における製品定義データの伝達を標準化するために、１９８１年  ＡＮＳＩ Ｙ１４．２６Ｍ−製品定義データの伝達のための数値表現（Ｄigital Ｒepresentation for Ｃmmunication of Ｐroduct ＤefinitionＤata）の一部としてＡＮＳＩの規格となったものである（中塚久世，ＩＧＥＳ（−ＣＡＤ／ＣＡＭシステム間のデータ交換仕様）ＰＡＲＴ２ ＰＩＸＥＬ Ｎo.１１，１９８３，ｐｐ１３１−ｐｐ１４０）。そのデータ交換の単位は要素であり、点，線，面，円弧，スプラインなどの幾何要素，寸法，注記などの表記要素及び結合，フォント，マクロ，投影図などの構造要素を含んでいる。これらの要素は、現在のＣＡＤ／ＣＡＭにみられる要素のほとんどをサポートしている。
【００３２】
以下、ワーク形状認識部１１０、フィクスチャリング方法推論部１２０、学習部１３０の処理について詳述する。
【００３３】
〔ワーク形状認識部〕
ワーク形状認識部１１０は、Ｓolidデータ型の３次元ＣＡＤ２０より例えばＩＧＥＳフォーマットで出力されたワークピースのデータ４０（ワークピースを構成している面の数、面を構成している線分の数、線分の始点・終点の座標等）を取り入れ、そのワークのフィクスチャリングに関係がある部分の形状の特徴を認識する処理部である。そのアルゴリズムを図４乃至図６により以下に説明する。
【００３４】
まず、ワークピースを含む空間を、図４（ａ）のように小さな立方体のブロックに分ける。分割するブロック数はあらかじめ定めておく。図４（ａ）は１１×１１×１１の小立方体のブロックに分けた例である。ここで、同図（ｂ）に一部のブロックを分解して示したように、この小さなブロック一つ一つを見ていくと、そのブロックの中でワークピースが占める部分の形状のパターンは、いくつかに分類することができる。図５は、これを表にしたもので、縦が大分類、横が小分類であり、例えば縦が１０で横が１のパターンはナンバー１１と定義する。図４（ａ）のワークピースでは、例えば、ブロック（４，１０，１）は図５の表で示されるナンバー１１にあたり、ブロック（２，１０，０）はナンバー４５にあたる。なお、これは、あくまでもブロックの中でワークピースが占めるパターンを示すだけで、大きさや辺の長さの比等を無視するので、図６に一例を示すように、パターンが同じであれば、大きさが等が異なっても、その各ブロックは同一ナンバーと分類される。
【００３５】
このように、ワークピース各部分の形状を分類することにより、取り付け具によって抑える位置（クランプ位置）の候補や、ジャッキアップが必要な位置、さらにロケータピンによって位置決めが可能である位置を、それぞれのブロック単位で考えることによって容易に限定することができる。例えば、図５において、クランプ位置は、ナンバー１１が与えられたブロックの位置に限定でき、ジャッキアップすることができるのはナンバー１３が与えられたブロックの位置に限られる。また位置決めはナンバー１２，１４，１５，１６が与えられたブロックの位置でしか行うことができない。さらに４０番台のブロックは、その位置がワークピースの角の部分であるという情報を持つことになるので、先のルール１を適用するときに非常に便利である。このように、細かく分けた立方体のブロック一つ一つが、そのワークピースのどのような部分かという情報を持っているのである。また、より厳密にクランプ位置などを求めたい場合や、より複雑な形状を持つワークピースの場合には、分割するブロックを細かくすることによって対応することができる。
【００３６】
ワーク形状認識部１１０では、このようにして、ワークピースのＣＡＤデータにより、ワークピースを含む空間を多数の小さな立方体のブロックに分割し、図５に示すような表を参照して各ブロックにパターンナンバーを割り当て、該ブロック情報を次のフィクスチャリング方法推論部１２０に渡す。この情報の具体例を図７に示す。
【００３７】
〔フィクスチャリング方法推論部〕
フィクスチャリング方法推論部１２０では、ワーク形状認識部１１０でのワークピース各部分の形状認識結果にもとづいて、次のようにしてフィクスチャリング方法を推論する。以下では、まず、ロケート位置、ツーリングブロックの決定について説明し、その後、クランプ位置決定について説明する。
【００３８】
（１）  ロケート位置の決定
ロケートの方法としては、側面を基準面とする方法と、穴を基準とする方法があるが、本システムでは側面を基準面として設定する。側面でのロケートの方法には、３−２−１ロケーティングの原則という、最も少ない箇所で９つの自由度を拘束できる理想的な方法がある。ここでは着座面におけるロケートを、サポート、つまり締め付けに対する支持と見做して、ロケート位置としては、側面に２箇所と１箇所のロケートピンを設置する位置を求めることにする。
【００３９】
本システムでは、最初に基準面の設定を行うこととし、基準面を含んでいるブロック、つまり図５の表の７０番台のパターンナンバーに対して、どのブロックがロケート位置として適しているかを求める。図８を用いて、以下にロケート位置の決定手順を示す。
【００４０】
１）  図５の７０番台のパターンナンバーの中で、その面の両端に位置しているものを選び出す。図８（ａ）のＡ１，Ａ２，Ｂ１，Ｂ２がそれである。
２）  選択されたブロックでナンパーが同じものどうし、つまりＡ１とＡ２，Ｂ１とＢ２の距離を計算する。
３）  上記計算した距離が大きいものの組み合わせ（図８（ａ）ではＡ１，Ａ２）を２箇所のロケートに決定する。
４）  残りのＢ１とＢ２のうち、上記決定した位置からの距離が遠いもの（図８（ａ）ではＢ２）を１箇所のロケート位置として決定する。
【００４１】
以上の手順で、図８（ｂ）のような側面のロケート位置が決定される。また、着座面のサポートについては、着座面に加工箇所がある場合（貫通する穴を開けるような場合）に、ジャッキなどを用いて行なわれる。その場合は、後で述べる方法で決定されたクランプ位置の真下に設置すればよい。
【００４２】
（２）  ツーリングブロックの決定
図９（ａ）のように、着座面となる基準面がワークピースの最下部でないものには、ツーリングブロックを用いてフィクスチャリングしなければならない。ツーリングブロックの設置を自動的に行なうためには、次のことを決定する必要がある。
１）  ツーリングブロック設置の位置
２）  ツーリングブロックの種類
３）  ツーリングブロックの高さ（２に含まれる場合もある）。
【００４３】
まず、ツーリングブロックを設置する位置の決定方法を以下に説明する。ツーリングブロックは、図９のようなワークピースに対して、図１１の（ａ）に示したような方法で設置しなければならない。つまり、着座面となる基準面を、より大きい面積でサポートするように設置する必要がある。ここでは、あらかじめ着座面のパターンを決定し、そのパターンに従って設置する位置を決定する。
【００４４】
１）  図９の（ａ）のように着座面を含んでいるブロックの１つ下のブロックについて、その前後左右（ｘの＋，−方向，ｙの＋，−方向）すべてのブロックパターンを調べる。図９の（ａ）のブロックＡについては、ｙの＋方向にパターンナンバー０（空ブロック）以外のブロック（図９の（ａ）でＢのブロック）が発見される。
２）  図９の（ｂ）は着座面のパターンを表しており、網掛けのついている部分が障害物がある部分である。図９の（ｂ）より、図９の（ａ）のブロックＡについてはパターン２ということができる。
３）  上記１と２の作業を、着座面を含んでいるブロック（パターンナンバー７３）すべてについて行ない、それぞれのブロックの着座面パターンをカウントする。ただし、パターン０、及び図９の（ｂ）中のパターン以外のものはカウントしない。
４）  カウント数の一番多いものをその着座面のパターンとする。図９の（ａ）の例では、すヘてのブロック（７３）に関してパターン２であるので、この着座面はパターン２の着座面となる。
【００４５】
以上が着座面パターンの決定手順であるが、例えば図１０の（ａ）の場合には、ブロックＡはパターン１、Ｂはパターン４、Ｃはパターン０と、３つのパターンが混在している。そこで、上記手順（３）を実行すると、パターン０以外では、Ａと同じパターン１が最も多くなるので、この基準面に関しては、ハッチングしてある部分が、パターン１の着座面となる。また、図１０の（ｂ）の場合は、Ｄがパターン２、Ｅがパターン４となっているが、その数がほぼ等しいので、この基準面はパターン１０の着座面となる。
【００４６】
このように、着座面のパターンが決まれば、設置するツーリングブロックの中心の座標が決定する。例えば図１１に示すように、（ａ）の場合は、パターンが２なので着座面ブロックのｙ座標の最大値８から、ツーリングブロックの半分の長さ５を引いた座標が、ツーリングブロックの中心のｙ座標となり、着座面ブロックのｘ座標の最大値・最小値の中点がツーリングブロックの中心のＸ座標となる。つまり、図１１の（ａ）の（４，３，３）のブロックの位置を中心として、ツーリングブロックを設置すればよい。図１１の（ｂ)，(ｃ）の場合もそれぞれのパターンに従って、同図（ａ）と同様な方法をとることにより、ツーリングブロックの位置を決定することができる。
【００４７】
また、ツーリングブロックの種類については、着座面パターンが９または１０の場合に、図１１の（ｃ）のようなブロックが選択される。また、着座面まで貫通する穴開け加工を行なう場合に、カッターパスとなるブロックを避ける場合は、穴のあるツーリングブロックを使用する。さらに、ツーリングブロックの高さについては、着座面の高さ（ｚ座標）に応じて、数種類の高さのツーリングブロックを設置する。
【００４８】
（３）  クランプ位置決定
ワーク形状認識部１１０において、ワークピースのクランプ位置（フィクスチャリング）に必要な箇所の候補がブロック（ｘ，ｙ，ｚ）の形で抽出される。クランプ位置は、その候補ブロックの中からより最適な箇所を選択していくことになるが、ここでは、各ブロックにクランプ位置としての適性度を、ポイント（得点）を加算及び減算していくという手法で決定していき、その適性度をクランプ位置決定の根拠とする。
【００４９】
＜実施例１＞
以下に、実施例１の各候補ブロックに割り当てられるポイントと、参考となったルールを示す。
max ｐｃ：ワークピースの角のブロックに与えられるポイント。
ｐｃ  ：ワークピースの角から１ブロック離れるごとにmax ｐｃからｐｃだけ減点される。（ルール１）
max ｐｈ：ワークピースの最下部に与えられるポイント。
ｐｈ  ：ワークの最下部から１ブロック上がるごとにmax ｐｈからｐｈ減点される（ルール５）。
ｐｍ１  ：フライス加工されるブロックの隣のブロックはｐｍ１減点される（ルール２）。
ｐｍ２  ：フライス加工されるブロックの斜隣のブロックはｐｍ２減点される（ルール２）。
ｐ drill １：ドリル加工されるブロックの隣のブロックはｐ drill １減点される（ルール２）。
ｐ drill ２：ドリル加工されるブロックの斜隣のブロックはｐ drill ２減点される（ルール２）。
ｐｊ〜５ ：ジャッキアップが必要な位置の場合、そのジャッキアップ位置のパターンによって１〜５のｐｊが減点される（ルール４）。
ｐ dist ：既に決定しているクランプ位置からの距離の平均によって与えられるポイント（ルール１，ルール９）。
【００５０】
また、クランプ位置決定の判断基準となる定数を以下に示す。
min dist：許容される２つのクランプ位置間の距離（ルール１０）。
min ｐ  ：許容される最低限の得点（ルール１０）。
【００５１】
本実施例１のポイント（得点）と判断基準定数によってクランプ位置が決定されていく手順を、図１２を用いて具体的に説明する。図１２は、図４（ａ）のワークピースを上から見た図で、それが一辺１０ｍｍの立方体によって区切られている状態を示したものである。図１２中の番号２〜９は、以下の２〜９での処理に対応する。
【００５２】
１）  まず、取り付け具（締め板）により抑える位置（クランプ位置）として候補となりえるブロック（候補ブロック）を選択する。これは、図５の表のパターンナンバー１１でしかも上から見た場合、最もワークの外側の位置しているものであるので、図１２において、１〜２４の番号がついているブロックが候補ブロックとして選ばられる。なお、１番のブロックの「○」印は穴開け位置（ドリル加工）を示す。
【００５３】
２）  一つのワークピースをまんべんなく抑えることができるブロックにmax ＰＣを与える。これは、ワークピースの角の付近を抑えればよい（ルール１）ので、図１２の場合、ブロック１，９，１０，１１，１４，１５，１６，２４がｍax ｐｃを得る。これは角を表すパターンナンバー４０番台のブロックからどれだけ離れているかによって判断される。
次に、この角のブロックから１ブロック離れるごとにmax ｐｃからｐｃだけ減点されたポイントを、他のブロックに割り当てる。
【００５４】
３）  その部分を抑えるためにはジャッキアップが必要となるブロックに、それらのジャッキアップパターンによってポイントｐｊ〜ｓjを減点する。ジャッキアップが必要となるブロックは、候補となったブロックの各々の下方のブロックを調べていき、図５のパターンナンバー１以外のブロックが出てきたところで、そのｚ座標が０でない場合である。また、ジャッキアップパターンは、そのブロックの形状パターン（図５参照）によって決められる。図１３にジャッキアップの一例を示す。
【００５５】
４）  ドリル加工、フライス加工のブロックの隣、斜隣のブロックのポイントを減点する。図１２の例では、候補ブロック１番の所に穴開け加工をするので、この１番のブロックは候補ブロックから外れ、その隣の２番のブロックはポイントｐ drill １減点される。
【００５６】
５）  ワークピースの着座面からの高さに応じて、max ｐｈからｐｈ×高さを引いたポイントを割り当てる。
【００５７】
６）  ポイントが最高のブロックを１番目のクランプ位置とする。図１２の場合、以上の工程を終了すると、１６番のブロックが最も高いポイントを獲得する。そこで１番目のクランプ位置として、１６番のブロックが選択される。
【００５８】
７）  上記６で決定されたブロックからの距離によるポイントをｐ dist×距離としてそれぞれのブロックに割り当てそれと今までに獲得したポイントの合計が最も大きいブロックを２番目のクランプ位置とする。図１２の場合、９番のブロックが２番目のクランプ位置として選択される。
【００５９】
８）  さらに前回獲得した距離によるポイントを０に戻し、これまでに選択されたブロックからの距離によるポイントとして、ｐ dist×距離／２を残りのブロックに割り当て、ポイントの合計が最も大きいブロックを選択する。図１２の場合、これにより選択されるブロックは１０番である。
【００６０】
９）  上記８と同様の処理を繰り返す。これにより、図１２の場合、２４番のブロックが次に選択される。
【００６１】
１０）  このようにしてクランプ位置を選んでいき、各候補ブロックが持っているポイントがmin ｐより小さくなるか、または、残りのブロックの既クランプ位置からの距離が許容される２つのクランプ位置間の距離min distより小さくなったら、そこで終了とする。
【００６２】
なお、例えば図１２の場合、もし３番目に選ばれるクランプ位置を１０番のブロックでなく３番のブロックにしたい場合は、両者が獲得した合計ポイントが１０番より３番の方が大きくなるように、各ポイントを設定し直せばよい。逆にいうと、ポイント及び判断基準定数はいかなる形状のワークピースでも、的確なクランプ位置を見つけだすように決定し、調整していかなければならない。しかし、これらの定数を一意的に決定することは不可能であるので、本システムでは次の学習部１３０で調整する。
【００６３】
〈実施例２〉
以下に、実施例２のポイント（得点）の名称（正、負）、候補ブロックへの得点の与え方、参考となったルールを示す。得点には、正のものと負のものがあるが、正の得点は、それが与えられることによって、そのブロックがクランプ位置として選択されやすくなるものであり、負の得点はその逆の働きをするものである。
【００６４】
Ｐｃ（＜０）：ワークピースの角からＮブロック離れることに
0003745006.tif 000002
を与える。ワークピースの角付近を目安に抑えていく。
Ｐｃｅ（＜０）：抑える辺が短い場合にはＰｃではなく、Ｐｃｅを用い、辺の中央からＮブロック離れるごとに
Ｐｃｅ＊Ｎ
を与える。与えたい辺の長さが短い場合は、辺の中央付近を目安に抑える。
Ｐｈ（＜０）：基準面からｚ方向にＮブロック離れるごとに
Ｐｈ＊Ｎ
を与える。より基準面に近い高さで抑えるほうが安定性が良い。
Ｐｔｈ（＜０）：幅が薄い（幅がＮブロック分）部分には、
0003745006.tif 000003
が与えられる。薄い部分はクランプの締め付け力によって変形する恐れがある。
Ｐｒｏｗ２（＞０）：既に決定しているクランプと同じ方向の候補ブロックにはＰｒｏｗ２を与える。但し、既に２本のクランプが同じ方向に決定している方向には、Ｐｒｏｗ３（＜＜０）が与えられる。対称性が与えられる。対称性を考慮して抑える。
ＰｒｏｗＯｐ（＞０）：既に決定しているクランプと反対方向の候補ブロックに、ＰｒｏｗＯｐを与える。対称性を考慮する。
Ｐｂ（＞０）：着座面（基準面）の上に位置している候補ブロックにはＰｂが与えられる。基準面を尊重して抑える。
Ｐｈｏｌｅ（＜０）：穴の上に位置している候補ブロックにはＰｈｏｌｅを与える。穴の上は変形しやすいので抑えないようにする。
Ｐｄｉｆｆ（＜０）：クランプ上部に障害物があるような場合は、Ｐｄｉｆｆを与える。特に自動化した時にクランプを設置するのが困難である。
Ｐｄｉｓｔｎ（＞０）：ｎ本目のクランプを設置するとき、ｋ本目からの距離をｄｉｓｔ（ｋ）とすると、
【００６５】
【数１】
0003745006.tif 000004
【００６６】
が残りのすべての候補ブロックに与えられる。各々のクランプはできるだけ離して、万偏なくワークピースを抑える。
Ｐｏｖｍａ：加工ブロックの上部に位置している候補ブロックに与えられる。加工箇所の上部を抑えると、加工誤差をまねく。
【００６７】
本実施例２のポイント（得点）によって、クランプ位置が決定されていく手順を、ここでは図１４の例を用いて具体的に説明する。図１４中の番号２〜９は、以下の２〜９での処理に対応する。
【００６８】
１）  まず、締め板（クランプ）により抑える位置として候補となりえるブロック（候補ブロック）を選択する。これは、図５の表のパターンナンバー１１で、上方から見た時にワークピースの最も外側に位置しているもの、つまり、図１４において、番号１〜２６がついているブロックである。
【００６９】
２）  一つのワークピースを万偏なく抑えるためには、ワークピースの角付近を目安に抑えていけばよいと考えられる。そこで、ワークピースの角に最も近く位置しているブロック（例えば図１４のブロック１，２，１７，１８）からＮブロック離れたものに、得点Ｐｃ＊Ｎ（Ｐｃ＜０）を割り当てる。これにより、ワークピースの角に近づくほど得点が高くなり、クランプ位置として選ばれやすくなる。
【００７０】
３）  候補ブロックを各々の下方のブロックを調べていき、着座面（基準面）を含んでいるブロック（パターンナンバー７３）があれば、その候補ブロックは、着座面の上方に位置しているといえる。そのようなブロックに、着座面に関する得点Ｐｂ（＞０）を与える。
【００７１】
４）  候補ブロックのＺ座標と着座面のＺ座標の差がＮブロックのとき、その候補ブロックに得点Ｐｈ＊Ｎ（Ｐｈ＜０）を与える。
【００７２】
５）  この時点で、最も高い適性度（最高得点）を獲得してブロックを先ずクランプ位置と決定する。図１４では、以上の工程を終了すると、１７と１８番のブロックが最も高い適性度を獲得する。そこで、１番目のクランプ位置として、番号の若い１７番が選択される。
【００７３】
６）  次に、選択されたブロック（図１４ではブロック１７）と同じ方向にある各ブロックには得点Ｐｒｏｗ２を、対称な方向にある各ブロックには得点ＰｒｏｗＯｐをそれぞれ与える。
【００７４】
７）  選択されたブロック（図１４では、ブロック１７）からの距離による得点を、Ｐｄｉｓｔ１＊距離として、それぞれのブロックに割り当てる。そして、その得点と今までに獲得した得点の合計が最も大きいブロックを次のクランプ位置とする。図１４では、１８番が２番目のクランプ位置として選択される。
【００７５】
８）  上記（７）で獲得した距離による得点を０に戻し、これまでに選択されたブロックからの距離、図１４では１７番と１８番のブロックからの距離の合計と、Ｐｄｉｓｔ２との積をそれぞれの候補ブロックに割当てる。そして、得点が最も大きいブロックを次のクランプ位置とする。これにより、図１４では７番のブロックが選択される。
【００７６】
９）  同様の処理を繰り返して、図１４では、次に８番のブロックが選択される。
【００７７】
１０）このようにしてクランプ位置を決定してき、クランプナンバー１〜ｎで構成される多角形の面積Ｓ1-nと、１〜ｎ−１で構成される多角形の面積Ｓ1-n-1の比が
【００７８】
【数２】
0003745006.tif 000005
【００７９】
となったとき、クランプ数の合計はｎ−１本となり（ｎ本目のクランプは必要ないと見なされる）、クランプ位置決定のルーチンは終了する。
【００８０】
図１５に、以上の実施例２のクランプ位置決定手順の流れ図を示す。
以上のようにして、ローケトピンの位置、ツーリングブロックの種類と位置、クランプによる締め付け位置が決定され、与えられたワークピースに対して、大まかなフィクスチュアリング設計を自動的に行うことができる。
【００８１】
〔学習部〕
本システムは、ワーク形状認識部１１０で抽出した各候補ブロックに、フィクスチャリング方法推論部１２０にて適性度となる様々なポイント（得点）を与えることによって、クランプ位置が決定される。したがって、それらの得点の値が適切なものでないと、期待されるグランプ位置が選択されず、誤ったフィクスチャリングの方法を決定してしまう恐れがある。
【００８２】
ここで、図１６のようなワークピースを例にして、起こりうるエラーを考えてみることにする。図１６は、先の実施例２による処理例を示したもので、図１７の（ａ）に各ポイント（得点）の表、（ｂ）と（ｃ）に誤ったクランプ位置と正しいクランプ位置を示す。
【００８３】
図１６のワークピースでは、前記実施例２の処理において、（４）までの段階で１番のブロックが最高得点を持つことになるので、そこが１番目のクランプ位置として決定される。次に、２番目のクランプ位置としては、１９番と３２番目が考えられるので、それぞれの実際の合計得点を図１７（ａ）中の表を用いて計算してみると、（Ａ）を用いた場合は１９番のブロックが２１０点、３２番が２２３点となる。したがって、２番目のクランプ位置としては得点の高い３２番が決定されてしまう。熟練作業者に行ったアンケートによると、図１６のようなワークピースの場合は１，９，１８，１９番で抑えるのが良いとわかっているので、３２番が選択されたのは明かにシステムの誤りであるといえる。これは、ルールをもとに設定した各得点の値の配分が、適切でなかったために起こった誤りである。そこで、着座面の上を抑えるというルールを重視した、図１７（ａ）の（Ｂ）を用いて計算すると、１９番が２３０点、３２番が２２３点となり、得点の合計が逆転し、１９番が２番目のクランプ位置として決定されるようになる。また、距離に関する得点を軽くした、（Ｃ）を用いると、１９番が１２４点、３２番が１１９点となり、（Ｂ）を用いたときと同様に１９番が選択される。このように、各得点の値を熟練作業者に行なったアンケートに基づいて変えていくことにより、熟練者の経験による知識や勘（ピューリスティクス）に基づいたクランプ位置の決定が行なえるようになる。
【００８４】
以上のように、ポイント（得点）を適切な値に変えていくことが、結果的に熟練者の知識や勘をシステムに取り入れることになるので、その作業を学習と呼ぶことにする。しかしながら、図１６の例で示したワークピースのような学習を必要とするワークピースは数多くあり、そのすべてに対して熟練者の意向に従って適切な得点の配分を決定することは、手作業では絶対に不可能である。
【００８５】
学習部１３０は、このような熟練作業者のピューリスティクスをより具体的な形でシステムに採用していくものである。図１８に、学習部１３０の流れ図を示す。熟練作業者が見ていて、フィクスチャリング方法推論部１２０が回答したクランプの方法が適切でなかった場合、学習部１３０を動作せしめる。
１）  熟練作業者自身あるいは予めルール化されているアンケート結果に基づいて、訂正するクランプを選択する。
２）  選択したクランプ位置のデータをデータセットＷ（Ｗｒｏｎｇ）として、データベースに保存する。
３）  選択したクランプ位置以外の候補ブロックの中で、適性度日得点の合計）の最も高いものにクランプ位置を変更する。
４）  変更されたクランプ位置が適切かどうか判断する。
５）  適切でない場合、適切なクランプ位置が選択されるまで、（３）の処理を繰り返す。
６）  適切なクランプ位置が選択されたら、そのデータをデータセットＣ（ｃｏｒｒｅｃｔ）として、データベースに保持する。
７）（２）で保存されたＷのデータと、（６）で保存されたＣのデータをセットにして訂正データとする。
８）  学習エンジンを用いて、データベースに蓄積されているすべての訂正データを満足するような得点の値を求める。
９）  得点表（ポイント表）を最新のものに書き換える。
【００８６】
以下、訂正データとデータベースについて説明する。ここで、データセットＷまたはデータセットＣとは、それぞれの位置（ブロック）における以下の得点や数値のことである。
Ｐｃ，Ｐｈ等によって与えられた得点（ポイント）
得点の合計（適性度）
ワークピースの角からの距離
そのブロックの座標
既存クランプ位置の座標。
【００８７】
データベースには、これらの情報がそれぞれの位置（ブロック）ごとに保存される。図１９にその具体例を示す。
図１９（ａ）で、（１）の修正データは、図１６のワークピースの例において、図１７（ａ）の表（Ａ）を用いたとき、システムが選択した３２番のブロックから、１９番のブロックにクランプ位置を修正したときのものである。この訂正データを見ると、Ｗ（３２番）の方が合計で１３点高いので、この合計をＣ＞ＷにするためにＰｃ，Ｐｂ，Ｐｄｉｓｔのどれかの値を変えればよいということがわかる。そして、図１９（ｂ）の（１′）は（１）のデータをもとにＰｂの値を変更した、表（Ｂ）を用いて計算し直したものであり、得点の合計が逆転しているのがわかる。つまり、次回からは、図１９（ａ）のデータをもとに変更した表（Ｂ）の得点を用いれば、図１６のワークピースに関しては適切な回答を出すようになる。
【００８８】
次に、図１９（ｂ）の訂正データ（２）は、図２０のワークピースに対しては、図２１（ａ）の表（Ｂ）を用いたとき、システムが選択した３０番のブロックから、正しい位置である２４番のブロックに修正したときのものである。ここではＷ（３０番）の方が１９番高いので、Ｃ＞ＷにするためにはＰｔｈ，Ｐｈ，Ｐｄｉｓｔ，Ｐｃのどれかを変えれば良く、その中で（１′）のデータにあまり影響を与えないものの値を変えることが要求される。そこで、Ｐｔｈの値を変更した、図２１（ａ）の表（Ｄ）を用いると、図１９（ｃ）のように得点の合計が逆転し、図２０のワークピースでは、２番目のクランプ位置として２４番のブロックを選択するようになるのである（図２１の（ｂ）、（ｃ）参照）。そして、図２１（ａ）の表（Ｄ）への得点の変更は、（１′）の訂正データに対して影響をあたえていないので、図１６のワークピースに対しても、表（Ｄ）を用いることによって、適切なクランプ位置を求めることができる。
【００８９】
このように、データベースに学習用ワークピースの訂正データを順次蓄積することによって、それらのワークピースすべてにとって、適切なクランプ位置を決定できるような得点を設定していくことができる。
【００９０】
次に、図１８中の学習エンジンについて説明する。データベースに蓄積された訂正データが多くなってくると、先の表（Ａ）から表（Ｂ）さらに表（Ｄ）のように、各得点を変更していく作業を、入手による試行錯誤で行なうのが非常に困難になってくる。蓄積されたデータベースをもとに、各得点を適切な値に変更する作業を自動的に行なうのが、学習エンジンの役割である。ここでは、その方法を、図１９のデータベース（ｂ）を例として説明する。図２２に学習エンジンの流れ図を示す。
【００９１】
１）  修正データの修正因子を探す。ここで、修正因子とは、各得点（ポイント）によって与えられた値がＷとＣで異なるもののことをいう。従って、図１９のデータベース（ｂ）の（２）の場合は、Ｐｃ，Ｐｈ，Ｐｔｈ，Ｐｄｉｓｔが修正因子となる。
２）  修正因子となった得点に関して、それぞれ別々に微少量の変更を行なうことによって、対象とする修正データ以外の修正データに影響を与えないものを選択する。
３）  上記選択された得点を、対象とする修正データが改善される（Ｃ＞Ｗとなる）方向に変更していく。つまり、図１９の(ｂ)の場合は、Ｐｃが正の方向に、Ｐｈが負の方向に、Ｐｔｈが負の方向に、Ｐｄｉｓｔが負の方向に変更される。
４）  各得点を順次変更していった結果、すべての修正データに関して満足する得点が得られたとき、学習が成功したことになる。次回のクランプ位置決定には、その得点が使われる。
５）  学習が成功しなかった場合は、対象とする修正データ以外の修正データにおいて、対象とする修正データの修正因子と相反する因子があると考えられるので、その修正データの修正因子も同時に変更を行なう。
６）  上記（５）においても学習が成功しなかった場合には、設定した得点だけでは対応できない状況があることがわかる。そこで、構築してきたデータベースを参考にして、得点の種類を増やすなどの再検討を行なう。
【００９２】
学習エンジンは所謂ニューラルネットワークで構成することも可能である。図２３に、学習エンジンのニユーラルネットワークモデルの一例を示す。このニューラルネットワークモデルは、入力要素としてデータベースに蓄積されたルール、ウェイトとして先に挙げた各ポイント（ここでは、実施例１のケースを示す）、また出力層はクランプ位置の候補となったブロックが獲得したポイント（得点）の合計になっている。このニューラルネットワークでは教師信号を用いる必要はなく、出力がそのまま自己評価をして、その評価結果をウェイトにフィードバックし、ウェイト（ここでは各ポイント）を調整する。従って、すべてのルールにおいて最終評価（ｐａ＜ｐｂ）が満足されるようなウェイトを求めることは、各ウェイトがＱ個の値を取り得るとすると、９（結合ウェイト数）のＱ乗通りのすべての場合について、学習データの評価を行えば原理的に可能である。しかし、この方法は組み合せの数が爆発的に大きくなり、現実的な時間内には不可能である。そこで効率の良い学習方法として、現在までに考案されている様々なニューラルネットワーク手法を検討し、必要があれば改良して採用していく必要があろう。
【００９３】
以上、図１の自動フィクスチャリング設計システムの各部について説明した。以下に、本システムの実行結果（推論結果）の具体例を示す。
【００９４】
本システムは入力要素として、ワークピースのＣＡＤデータ（例えば、ＩＧＥＳフォーマット）、加工方法（穴開け加工、またはフライス加工、及びそれら複数の加工）、またそれらの加工位置がある。出力は、クランプ位置、ロケータピンの位置、ジャッキアップの位置が３次元座標で示され、さらにコンピュータ・グラフィックスによる表示、及びそのプリンタ出力が可能である。ここでは、学習機能を用いない場合の（学習未完成として）出力結果を示し、その検討を行う。
【００９５】
図２４は、（ａ）加工しない場合と、（ｂ）穴開け加工を入力した場合（ｃ）フライス加工と穴開け加工を入力した場合のシステムの出力結果である。（ｂ）を見ると、（ａ）においてクランプされている位置を穴開け加工をするので、その場所を避けてクランプされているのがわかる。さらに（ｃ）のように、複数の加工が必要な場合にも、その加工を妨げにならないように、クランプ位置が決定されている。
【００９６】
図２５は、ワークの隅を抑えることによって、まんべんなくクランプしている例である。
【００９７】
図２６は、ワークの着座面まで穴開け加工をする場合で、先に述べたルール３（ワークの下まで突き抜ける加工を行う場合は、ワーク全体をジャッキで浮かす）に従い、クランプ位置の下をジャッキで支持し、ワーク全体を着座面から浮かしているのがわかる。
【００９８】
図２７は、ワークの４隅に穴開け加工をする場合で、クランプは隅を抑えられなくても加工位置から離れたところでまんべんなく抑えるような結果が出てきる。
【００９９】
図２８は、着座面の上を優先的に抑えている例である。今後は、ルール１４に従って着座面の指定ができるようにすることが考えられる。
【０１００】
図２９は、余分なクランプ位置が設定された例で、min ｐやmin distの設定（実施例１のケース）に問題があると推測される。これは学習機構を用いることによって、改善することができる。
【０１０１】
図３０は、加工方向に拘束するようにフィクスチェリングができていない例である。これも学習機能を用いることによって改善される。
【０１０２】
図３１は、ジャッキアップを施こした例であるが、この場合には本システムが回答したようなジャッキアップが必要かどうかは疑問である。段取り熟練者との打ち合わせによりシステムを変更していく必要がある。
【０１０３】
図３２は、位置決めに失敗した例である。ロケートピンの位置は、測面を表すパターンナンバー１２，１４，１５，１６を検索することによって決められるが（図５参照）、図に示したワークでは厚さが十分に取られていないため、先に示したブロックが見つからずバグを生じたのである。
【０１０４】
【発明の効果】
本発明の自動フィクスチャリング設計システムによれば、多種多様なワークピースの工作機械への段取り・取り付け作業の能率化、自動化を支援することが可能になる。
【図面の簡単な説明】
【図１】本発明の自動フィクスチャリング設計システムの概略構成図である。
【図２】ワークピースのフィクスチャリングのルールの一例を示す図である。
【図３】同じくワークピースのフィクスチャリングのルールの一例を示す図である。
【図４】ワークピース空間を小立方体のブロックに分割する説明図である。
【図５】各小立方体のブロックのワークピース部分の形状を分類したテーブルである。
【図６】同一形状パターンに分類されるブロックの一例を示す図である。
【図７】分割した各ブロックのパターンナンバーの具体例である。
【図８】ロケート位置の決定を説明する図である。
【図９】ツーリングブロックを必要とするワークピースの一例である。
【図１０】基準面パターンの多様性を説明する図である。
【図１１】ツーリングブロックの設定例を示す図である。
【図１２】クランプ位置決定方法の実施例１を説明する図である。
【図１３】ジャッキアップパターンの一例を示す図である。
【図１４】クランプ位置決定方法の実施例２を説明する図である。
【図１５】クランプ位置決定方法の実施例２の流れ図である。
【図１６】学習プロセスを説明するためのワークピースの一例である。
【図１７】図１６の例のポイント表の遷移及び正誤クランプ位置を示す図である。
【図１８】学習部の全体的流れ図である。
【図１９】データベース内のデータセットの一例を示す図である。
【図２０】学習プロセスを説明するためのワークピースの他の例である。
【図２１】図２０の例のポイント表の遷移及び正誤クランプ位置を示す図である。
【図２２】学習エンジンの流れ図である。
【図２３】学習エンジンに用いるニューラルネットワークモデルの一例を示す図である。
【図２４】本自動フィクスチャリング設計システムによる実行結果を示す図である。
【図２５】同じく本システムによるシステム実行結果の一例を示す図である。
【図２６】同じく本システムによるシステム実行結果の一例を示す図である。
【図２７】同じく本システムによるシステム実行結果の一例を示す図である。
【図２８】同じく本システムによるシステム実行結果の一例を示す図である。
【図２９】同じく本システムによるシステム実行結果の一例を示す図である。
【図３０】同じく本システムによるシステム実行結果の一例を示す図である。
【図３１】同じく本システムによるシステム実行結果の一例を示す図である。
【図３２】同じく本システムによるシステム実行結果の一例を示す図である。
【符号の説明】
１０  自動フィクスチャリング設計システム
１１０  ワーク形状認識部
１２０  フィクスチャリング方法推論部
１３０  学習部
２０  ３次元ＣＡＤ
３０  ワークピースモデル
４０  ワークピースデータ
【図１】
0003745006.tif 000006
【図２】
0003745006.tif 000007
【図３】
0003745006.tif 000008
【図４】
0003745006.tif 000009
【図５】
0003745006.tif 000010
【図６】
0003745006.tif 000011
【図７】
0003745006.tif 000012
【図８】
0003745006.tif 000013
【図９】
0003745006.tif 000014
【図１０】
0003745006.tif 000015
【図１１】
0003745006.tif 000016
【図１２】
0003745006.tif 000017
【図１３】
0003745006.tif 000018
【図１４】
0003745006.tif 000019
【図１５】
0003745006.tif 000020
【図１６】
0003745006.tif 000021
【図１７】
0003745006.tif 000022
【図１８】
0003745006.tif 000023
【図１９】
0003745006.tif 000024
【図２０】
0003745006.tif 000025
【図２１】
0003745006.tif 000026
【図２２】
0003745006.tif 000027
【図２３】
0003745006.tif 000028
【図２４】
0003745006.tif 000029
【図２５】
0003745006.tif 000030
【図２６】
0003745006.tif 000031
【図２７】
0003745006.tif 000032
【図２８】
0003745006.tif 000033
【図２９】
0003745006.tif 000034
【図３０】
0003745006.tif 000035
【図３１】
0003745006.tif 000036
【図３２】
0003745006.tif 000037