(57)【要約】【課題】部品の分解又は組立の可否を判定する際の処理を軽減する。【解決手段】変曲点算出部２０は、三次元ＣＡＤデータから、アセンブリＡと対象部品Ｋの変曲点の座標データを抽出する。また、方向算出部２２は、アセンブリＡと対象部品Ｋの変曲点の位置関係に基づいてアセンブリＡと対象部品Ｋとが干渉しない対象部品Ｋの分解可能方向と移動量とを算出する。また、処理・判定部２４は、分解可能方向と移動量を算出できた場合に、対象部品Ｋを分解可能方向に算出した移動量だけ移動し、算出できなかった場合に、まだ移動させていない分解可能方向が存在する直近の位置に戻す。そして、処理・判定部２４は、新たな位置において対象部品ＫがアセンブリＡの外部に存在すれば、アセンブリＡから対象部品Ｋを分解可能（又は組立可能）と判断する。【選択図】図１３
2020101965.tif 000002
【特許請求の範囲】
【請求項１】
第１部品と前記第１部品内の第１位置に存在する第２部品それぞれのデータから、前記第１部品の外形上の特徴点の座標データと、前記第２部品の外形上の特徴点の座標データと、を算出する算出部と、
前記第１部品の前記特徴点と前記第２部品の前記特徴点の位置関係に基づいて前記第１部品と前記第２部品とが干渉しない前記第２部品の分解可能方向と移動距離とを特定する特定部と、
前記特定部が前記第２部品の分解可能方向と移動距離を特定できた場合に、前記第１位置を基準として特定した前記分解可能方向に前記移動距離だけ離れた位置を新たな第１位置とし、前記特定部が前記第２部品の分解可能方向と移動距離を特定できなかった場合に、直前の第１位置を新たな第１位置とする処理部と、
前記新たな第１位置において前記第２部品が前記第１部品の外部に存在するときに、前記第１部品から前記第２部品を分解可能又は前記第１部品に前記第２部品を組み付け可能と判定する判定部と、
を備える情報処理装置。
【請求項２】
前記判定部が分解可能又は組み付け可能と判定した場合の前記第１位置の遷移履歴に基づいて、前記第２部品の分解経路又は組み付け経路を決定する決定部を更に備える請求項１に記載の情報処理装置。
【請求項３】
前記外形上の特徴点は、頂点を含む、ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記特定部は、前記第１部品の前記特徴点と前記第２部品の前記特徴点の組のうち、所定方向に関する距離が最も短い組を特定し、前記第２部品を特定した前記組の距離だけ前記所定方向に移動したときに、前記第１部品と前記第２部品とが干渉しなければ、前記所定方向を前記分解可能方向と特定し、前記組の距離を前記移動距離として特定する、ことを特徴とする請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
第１部品と前記第１部品内の第１位置に存在する第２部品それぞれのデータから、前記第１部品の外形上の特徴点の座標データと、前記第２部品の外形上の特徴点の座標データと、を算出し、
前記第１部品の前記特徴点と前記第２部品の前記特徴点の位置関係に基づいて前記第１部品と前記第２部品とが干渉しない前記第２部品の分解可能方向と移動距離とを特定し、
前記特定する処理で前記第２部品の分解可能方向と移動距離を特定できた場合に、前記第１位置を基準として特定した前記分解可能方向に前記移動距離だけ離れた位置を新たな第１位置とし、前記特定する処理で前記第２部品の分解可能方向と移動距離を特定できなかった場合に、直前の第１位置を新たな第１位置とし、
前記新たな第１位置において前記第２部品が前記第１部品の外部に存在するときに、前記第１部品から前記第２部品を分解可能又は前記第１部品に前記第２部品を組み付け可能と判定する、
処理をコンピュータに実行させるための判定プログラム。
【請求項６】
第１部品と前記第１部品内の第１位置に存在する第２部品それぞれのデータから、前記第１部品の外形上の特徴点の座標データと、前記第２部品の外形上の特徴点の座標データと、を算出し、
前記第１部品の前記特徴点と前記第２部品の前記特徴点の位置関係に基づいて前記第１部品と前記第２部品とが干渉しない前記第２部品の分解可能方向と移動距離とを特定し、
前記特定する処理で前記第２部品の分解可能方向と移動距離を特定できた場合に、前記第１位置を基準として特定した前記分解可能方向に前記移動距離だけ離れた位置を新たな第１位置とし、前記特定する処理で前記第２部品の分解可能方向と移動距離を特定できなかった場合に、直前の第１位置を新たな第１位置とし、
前記新たな第１位置において前記第２部品が前記第１部品の外部に存在するときに、前記第１部品から前記第２部品を分解可能又は前記第１部品に前記第２部品を組み付け可能と判定する、
処理をコンピュータが実行することを特徴とする判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、判定プログラム及び判定方法に関する。
【背景技術】
【０００２】
近年、三次元ＣＡＤシステムを使用して製品設計を行なうことが多くなってきている。設計対象の製品が部品点数の多い複雑な製品の場合、製品を組み立てるための組立操作も複雑となるため、熟練者であっても設計段階で部品同士が干渉して組み立て不可になるのを見落としてしまう事態が生じるおそれがある。
【０００３】
これに対し、実際に試作を行うことなく、設計した製品が実際に組立可能、分解可能であるか否かをシミュレートするシステムが知られている（例えば非特許文献１、２等参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Geometric reasoning about mechanical assembly，Randall H.Wilson Jean-ClaudeLatombe，Stanford University， Artifical Inteligence 71(2), Dec 1994
【非特許文献２】An Efficient System For Geometric Assembly Sequence Generation And Evaluation, Bruce Romney, Stanford University， Proc.1995 ASME． Intl Computers in Engineering  Conf．， pp.699-712
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の組立、分解の可否をシミュレートするシステムでは、経路探索を行う際の処理量が膨大であり、処理に長時間を要していた。
【０００６】
１つの側面では、本発明は、部品の分解又は組立の可否を判定する際の処理を軽減することが可能な情報処理装置、判定プログラム及び判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、情報処理装置は、第１部品と前記第１部品内の第１位置に存在する第２部品それぞれのデータから、前記第１部品の外形上の特徴点の座標データと、前記第２部品の外形上の特徴点の座標データと、を算出する算出部と、前記第１部品の前記特徴点と前記第２部品の前記特徴点の位置関係に基づいて前記第１部品と前記第２部品とが干渉しない前記第２部品の分解可能方向と移動距離とを特定する特定部と、前記特定部が前記第２部品の分解可能方向と移動距離を特定できた場合に、前記第１位置を基準として特定した前記分解可能方向に前記移動距離だけ離れた位置を新たな第１位置とし、前記特定部が前記第２部品の分解可能方向と移動距離を特定できなかった場合に、直前の第１位置を新たな第１位置とする処理部と、前記新たな第１位置において前記第２部品が前記第１部品の外部に存在するときに、前記第１部品から前記第２部品を分解可能又は前記第１部品に前記第２部品を組み付け可能と判定する判定部と、を備えている。
【発明の効果】
【０００８】
部品の分解又は組立の可否を判定する際の処理を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る情報処理装置のハードウェア構成を示す図である。
【図２】情報処理装置の機能ブロック図である。
【図３】図３（ａ）、図３（ｂ）は、変曲点について説明するための図である。
【図４】情報処理装置の処理を示すフローチャートである。
【図５】図４のステップＳ１２の処理を示すフローチャートである。
【図６】対象部品とアセンブリとの関係を模式的に示す図である。
【図７】図７（ａ）は、対象部品の各変曲点の座標値を示す図であり、図７（ｂ）は、アセンブリの各変曲点の座標値を示す図である。
【図８】図８（ａ）は、図５のステップＳ５４の処理を説明するための図（その１）であり、図８（ｂ）は、図５のステップＳ５８の処理を説明するための図（その１）である。
【図９】図９（ａ）〜図９（ｄ）は、図５のステップＳ６２において、対象部品とアセンブリが干渉しないと判定される場合を説明するための図である。
【図１０】図１０（ａ）〜図１０（ｃ）は、分解可否テーブルを示す図（その１）である。
【図１１】図１１（ａ）は、図５のステップＳ５４の処理を説明するための図（その２）であり、図１１（ｂ）は、図５のステップＳ５８の処理を説明するための図（その２）である。
【図１２】図１２（ａ）〜図１２（ｅ）は、図５のステップＳ６２において、対象部品とアセンブリが干渉すると判定される場合を説明するための図である。
【図１３】図１３（ａ）〜図１３（ｄ）は、図４のステップＳ１６における対象部品の移動について説明するための図（その１）である。
【図１４】図１４（ａ）、図１４（ｂ）は、分解可否テーブルを示す図（その２）である。
【図１５】図１５（ａ）、図１５（ｂ）は、分解可能方向がなくなった場合の処理を説明するための図である。
【図１６】図１６（ａ）、図１６（ｂ）は、図４のステップＳ１６における対象部品の移動について説明するための図（その２）である。
【図１７】分解経路を示す図である。
【発明を実施するための形態】
【００１０】
以下、情報処理装置の一実施形態について、図１〜図１７に基づいて詳細に説明する。本実施形態の情報処理装置１０は、ある部品（対象部品と呼ぶ）が別の部品（アセンブリと呼ぶ）に組み込まれている場合に、三次元ＣＡＤデータに基づいて、対象部品をアセンブリから分解可能か否かを判定する装置である。また、情報処理装置１０は、分解可能と判定された場合に、分解経路及び分解経路を逆に辿った組立経路を決定する装置である。なお、本実施形態では、アセンブリが第１部品であり、対象部品が第１部品内に位置する第２部品であるといえる。
【００１１】
図１には、本実施形態の情報処理装置１０のハードウェア構成が示されている。図１に示すように、情報処理装置１０は、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、ネットワークインタフェース９７、表示部９３、入力部９５及び可搬型記憶媒体用ドライブ９９等を備えている。表示部９３は液晶ディスプレイ等を含み、入力部９５は、キーボード、マウス、タッチパネル等を含む。これら情報処理装置１０の構成各部は、バス９８に接続されている。情報処理装置１０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（判定プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（判定プログラムを含む）をＣＰＵ９０が実行することにより、図２に示す各部の機能が実現されている。なお、図２の各部の機能は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の集積回路により実現されてもよい。
【００１２】
図２には、情報処理装置１０の機能ブロック図が示されている。図２に示すように、情報処理装置１０では、ＣＰＵ９０がプログラムを実行することにより、算出部としての変曲点算出部２０、特定部としての方向算出部２２、処理部及び判定部としての処理・判定部２４、決定部としての経路決定部２６、として機能する。なお、図２には、ＨＤＤ９６等に格納されている分解可否テーブル３０、及び経路テーブル３２についても図示されている。
【００１３】
変曲点算出部２０は、三次元ＣＡＤデータから、対象部品とアセンブリのデータを取得し、各部品の特徴点として変曲点の座標を算出する。ここで、変曲点は、図３（ａ）、図３（ｂ）において白丸（〇）で示すような、各部品の複数辺が接した点（頂点）や、図３（ｂ）において黒丸（●）で示すような、曲面における頂点に相当する点（例えば接線の傾きが所定以上変化する点）などを含む。なお、変曲点の定義は、管理者等が設定することができるものとする。変曲点算出部２０は、算出した変曲点の座標データを、方向算出部２２に受け渡す。
【００１４】
方向算出部２２は、変曲点算出部２０から受け渡された変曲点の座標データに基づいて、対象部品を確実に移動できる方向（分解可能方向）と分解可能方向に確実に移動できる距離（移動量）とを算出する。方向算出部２２は、算出結果を、分解可否テーブル３０に格納する。分解可否テーブル３０の詳細については後述する。
【００１５】
処理・判定部２４は、分解可否テーブル３０を参照して、対象部品をアセンブリの内部において移動する処理を実行する。また、処理・判定部２４は、新たな位置に対象部品を移動させたときに対象部品がアセンブリの外部に出ていなければ、対象部品が新たな位置に存在する状態で、変曲点算出部２０及び方向算出部２２に処理を実行させる。そして、処理・判定部２４は、対象部品がアセンブリの外部に出た段階で、対象部品をアセンブリから分解可能（すなわち、アセンブリに対して対象部品を組立可能）と判定する。
【００１６】
経路決定部２６は、処理・判定部２４が対象部品を分解可能と判定した場合に、処理・判定部２４による対象部品の移動履歴（対象部品の位置の遷移履歴）を参照して、分解経路を決定する。なお、分解経路を逆に辿った場合、組立経路になるため、経路決定部２６は、組立経路を決定しているともいえる。経路決定部２６は、決定した分解経路を経路テーブル３２に格納する。
【００１７】
（情報処理装置１０の処理について）
次に、情報処理装置１０の処理について、図４、図５のフローチャートに沿って、その他図面を適宜参照しつつ詳細に説明する。
【００１８】
図４の処理では、まず、ステップＳ１０において、変曲点算出部２０が、対象部品とアセンブリの三次元ＣＡＤデータを取得する。本実施形態では、一例として、図６に模式的に示すように、対象部品ＫがアセンブリＡの内部（第１位置）に組み込まれているものとする。したがって、変曲点算出部２０は、対象部品ＫとアセンブリＡの三次元ＣＡＤデータを取得する。なお、図６においては、図示の便宜上、アセンブリＡの紙面手前側及び奥側が開放されているようにも見えるが、実際には、アセンブリＡの紙面手前側及び奥側は閉塞しているものとする。したがって、対象部品ＫはアセンブリＡの開口部４０からのみ取り出すことができるようになっている。
【００１９】
次いでステップＳ１２では、変曲点算出部２０及び方向算出部２２が、分解可能方向算出処理のサブルーチンを実行する。このステップＳ１２の処理は、対象部品Ｋを確実に移動できる方向（分解可能方向）と対象部品Ｋを分解可能方向に確実に移動できる距離（移動量）を算出する処理である。具体的には、図５のフローチャートに沿った処理が実行される。
【００２０】
図５の処理では、まずステップＳ５０において、変曲点算出部２０が、対象部品ＫとアセンブリＡの変曲点の座標を抽出する。ここでは、一例として、図６に示すように、対象部品Ｋの変曲点の座標として、符号ａ〜ｆで示す点の座標が抽出され、アセンブリＡの変曲点の座標として、符号１〜１２で示す点の座標が抽出されたものとする。図７（ａ）には、対象部品Ｋの各変曲点の座標値が示され、図７（ｂ）には、アセンブリＡの各変曲点の座標値が示されている。なお、実際には、紙面奥側に位置する変曲点の座標も抽出されるが、説明及び図示の便宜上、図６、図７（ａ）、図７（ｂ）ではその記載を省略している。
【００２１】
図５に戻り、次のステップＳ５２では、方向算出部２２が、対象部品の分解可否判定方向を１つ取得する。本実施形態において、分解可否判定方向は、例えば、＋Ｘ方向、−Ｘ方向、＋Ｙ方向、−Ｙ方向、＋Ｚ方向、−Ｚ方向の６方向であるものとする。ここでは、一例として、方向算出部２２が＋Ｘ方向を取得したものとする。
【００２２】
次いで、ステップＳ５４では、方向算出部２２が、取得した分解可否判定方向に対して、対象部品Ｋの各変曲点とアセンブリＡの各変曲点との距離を算出する。例えば、図８（ａ）において、対象部品Ｋの変曲点ａに着目した場合、変曲点ａの−Ｘ側に位置するアセンブリＡの変曲点３、４、７、８（二点鎖線で囲む変曲点）を除外して、変曲点ａとアセンブリＡの変曲点とのＸ軸方向に関する距離を算出する。具体的には、図８（ａ）に示す、変曲点ａと変曲点５、６との距離Ｌ１、変曲点ａと変曲点１１、１２との距離Ｌ２、変曲点ａと変曲点９、１０との距離Ｌ３、変曲点ａと変曲点１、２との距離Ｌ４が算出される。また、方向算出部２２は、対象部品Ｋの変曲点ｂ〜ｆに順次着目し、同様の処理を実行する。
【００２３】
次いで、ステップＳ５６では、方向算出部２２が、算出結果から、距離が最小の変曲点の組を選択する。ここでは、一例として変曲点ａ（又はｂ）と変曲点５（又は６）の組（図８（ａ）における距離Ｌ１の組）が選択されたものとする。
【００２４】
次いで、ステップＳ５８では、方向算出部２２が、分解可否判定方向に対して、選択した変曲点の組の座標が一致するように、対象部品Ｋを移動する。この場合、方向算出部２２は、図８（ｂ）に示すように、対象部品Ｋを＋Ｘ方向に距離Ｌ１だけ移動する。
【００２５】
次いで、ステップＳ６０では、方向算出部２２が、対象部品ＫとアセンブリＡとの干渉有無を判定する。この干渉有無の判定において、方向算出部２２は、分解可否判定方向に対して垂直な断面（図８（ｂ）のＤ−Ｄ線断面）を撮影した画像を用いることとする。この場合、方向算出部２２は、対象部品ＫがアセンブリＡに組み付けられた状態の画像（図９（ａ））を取得し、取得した画像のうち、対象部品Ｋを白色、それ以外を黒色に二値化した画像を生成する（図９（ｂ））。また、方向算出部２２は、対象部品Ｋのみの画像（図９（ｃ）のように図９（ａ）からアセンブリＡを除外した画像）を取得し、取得した画像のうち、対象部品Ｋを白色、それ以外を黒色に二値化した画像を生成する（図９（ｄ））。そして、方向算出部２２は、生成した図９（ｂ）、図９（ｄ）に示す２つの画像を比較して、同一の画像であれば、対象部品ＫとアセンブリＡとが干渉していないと判断する。一方、方向算出部２２は、生成した２つの画像が異なる場合には、対象部品ＫとアセンブリＡとが干渉していると判断する（この点については後述する）。
【００２６】
次いで、ステップＳ６２では、方向算出部２２が、干渉するか否かを判断する。このステップＳ６２の判断が否定された場合（干渉しない場合）には、ステップＳ６６に移行し、方向算出部２２は、分解可否テーブル３０において、分解可否判定方向に対し、「分解可」であることと、移動量を記録する。ここで、分解可否テーブル３０は、図１０（ａ）に示すようなデータ構造を有する。「状態Ｎｏ．」の欄には、対象部品ＫとアセンブリＡの位置関係の識別番号が格納される。本実施形態では、図６の位置関係であるときの「状態Ｎｏ．」を「１」としている。また、分解可否テーブル３０には、各方向に対して、「分解可否」、「移動量（ｍｍ）」、「移動済」を記録できるようになっている。「分解可否」の欄には、ステップＳ６２の判断が否定された場合に「〇」、肯定された場合に「×」が格納される。「移動量（ｍｍ）」の欄には、「分解可否」が〇の場合に、ステップＳ５４で算出された距離が格納される。「移動済」の欄には、後述するステップＳ１６（図４）で移動を行った場合に「〇」が格納される。なお、「分解可否」の欄に「〇」が格納された方向を「分解可能方向」と呼ぶものとする。
【００２７】
なお、ステップＳ６２の判断が肯定された場合には、ステップＳ６４に移行し、方向算出部２２は、分解可否判定方向に対して、分解不可であることを記録する。この場合、方向算出部２２は、「分解可否」の欄に「×」を記録し、「移動量（ｍｍ）」、「移動済」の欄には何も記録しない。
【００２８】
上記のようにしてステップＳ６４又はステップＳ６６の処理が行われた後は、ステップＳ６８に移行し、方向算出部２２が、対象部品Ｋを元の位置に戻す。
【００２９】
次いで、ステップＳ７０では、方向算出部２２が、全ての分解可否判定方向を判定したか否かを判断する。ここでは、まだ＋Ｘ方向しか判定していないため、ステップＳ７０の判断は否定され、方向算出部２２は、ステップＳ７２に移行する。
【００３０】
ステップＳ７２に移行すると、方向算出部２２は、判定していない分解可否判定方向を１つ取得する。例えば、方向算出部２２は、＋Ｚ方向を取得したものとする。その後は、方向算出部２２は、ステップＳ５４に戻る。
【００３１】
ステップＳ５４に戻ると、方向算出部２２は、上述した＋Ｘ方向の場合と同様にして、＋Ｚ方向に関する処理を実行する。この場合、方向算出部２２は、図１１（ａ）に示すように、対象部品Ｋの変曲点ａに着目すると、変曲点ａの−Ｚ側に位置するアセンブリＡの変曲点（二点鎖線で囲む変曲点）を除外し、変曲点ａとアセンブリＡの変曲点とのＺ軸方向の距離を算出する。具体的には、方向算出部２２は、図１１（ａ）に示す、変曲点ａと変曲点１０、１１との距離Ｌ５、変曲点ａと変曲点１、１２との距離Ｌ６、変曲点ａと変曲点６、７との距離Ｌ７、変曲点ａと変曲点４、５との距離Ｌ８を算出する。また、方向算出部２２は、対象部品Ｋの変曲点ｂ〜ｆに順次着目し、同様の処理を実行する（Ｓ５４）。そして、方向算出部２２は、距離が最小の変曲点の組を選択する（Ｓ５６）。ここでは、一例として変曲点ａ（又はｆ）と変曲点１０（又は１１）の組（図１１における距離Ｌ５の組）が選択されたものとする。その後は、方向算出部２２は、対象部品Ｋを図１１（ｂ）に示すように、＋Ｚ方向に距離Ｌ５だけ移動し（Ｓ５８）、干渉有無を判定する（Ｓ６０）。この場合、方向算出部２２は、分解可否判定方向に対して垂直な断面（図１１（ｂ）のＥ−Ｅ線断面）を撮影した画像を用いる。なお、この場合にも、図９（ａ）〜図９（ｄ）の場合と同様、干渉がないと判定される。この場合、ステップＳ６２の判断は否定されるため、方向算出部２２は、図１０（ｂ）に示すように分解可否テーブル３０を更新する（Ｓ６６）とともに、対象部品Ｋを元の位置に戻す（Ｓ６８）。そして、ステップＳ７０の判断が否定されると、方向算出部２２は、ステップＳ７２において、判定していない分解可否判定方向を１つ取得する。
【００３２】
以下同様に、方向算出部２２は、残りの方向について、上記処理を行い、ステップＳ７０の判断が肯定された段階（分解可否テーブル３０に図１１（ｃ）のような情報が記録された段階）で、図５の全処理を終了し、図４のステップＳ１４に移行する。
【００３３】
なお、ステップＳ６０の処理において対象部品ＫとアセンブリＡとが干渉する場合とは、例えば、図６の状態で、分解可否判定方向として−Ｘ方向が取得された場合である。この場合、距離が最小の変曲点の組として、変曲点ｃ（又はｄ）と変曲点３（又は４）の組が選択されたとすると、方向算出部２２は、ステップＳ５８において、図１２（ａ）に示すように対象部品Ｋを移動する。この場合、方向算出部２２は、ステップＳ６０において干渉有無を判定する際に、分解可否判定方向に対して垂直な断面（図１２（ａ）のＦ−Ｆ線断面）を撮影した画像を用いる。なお、図１２（ａ）においては、対象部品Ｋの変曲点ｃ、ｄが存在する面と、アセンブリＡの変曲点３、４が存在する面とが一致しているが、このように面が一致している場合には、対象部品Ｋは画像に写らないものとする。この場合、方向算出部２２は、Ｆ−Ｆ断面の画像（図１２（ｂ））を取得し、取得した画像のうち、対象部品Ｋを白色、それ以外を黒色に二値化した画像を生成する（図１２（ｃ））。また、方向算出部２２は、対象部品ＫのみのＦ−Ｆ断面の画像（図１２（ｄ）のように図１２（ｂ）からアセンブリＡを除外した画像）を取得し、取得した画像のうち、対象部品Ｋを白色、それ以外を黒色に二値化した画像を生成する（図１２（ｅ））。そして、方向算出部２２は、生成した図１２（ｃ）、図１２（ｅ）に示す２つの画像を比較する。この場合、図１２（ｃ）、図１２（ｅ）の画像は同一の画像でないため、方向算出部２２は、対象部品ＫとアセンブリＡとが干渉していると判断する。
【００３４】
図４に戻り、ステップＳ１４に移行すると、処理・判定部２４は、分解可能方向があるか否かを判断する。図１０（ｃ）の場合、分解可能方向がある（＋Ｘ方向、＋Ｙ方向、＋Ｚ方向、−Ｙ方向）ため、ステップＳ１４の判断は肯定されて、ステップＳ１６に移行する。
【００３５】
ステップＳ１６に移行すると、処理・判定部２４は、分解可否テーブル３０から、分解可能方向と移動量を取得して、対象部品Ｋを移動する。ここでは、一例として、処理・判定部２４が、分解可能方向及び移動量として、＋Ｘ方向及び３０ｍｍを取得したものとする。この場合、処理・判定部２４は、対象部品Ｋを、取得した分解可能方向（＋Ｘ方向）に、取得した移動量（３０ｍｍ）だけ移動する。これにより、図１３（ａ）の状態から図１３（ｂ）の状態となる。なお、この移動の際に、処理・判定部２４は、分解可否テーブル３０（図１０（ｃ））の「状態Ｎｏ．」＝１の「方向」＝＋Ｘの「移動済」の欄を「〇」に更新する。
【００３６】
なお、本実施形態においては、説明及び図示の煩雑化を避けるため、分解可能方向に＋Ｙ方向と−Ｙ方向が含まれる場合であっても、処理・判定部２４は、これらの方向を取得しないものとする。すなわち、本実施形態では、＋Ｙ方向と−Ｙ方向を分解可能方向から除外するものとする。
【００３７】
次いで、ステップＳ３０では、処理・判定部２４は、対象部品ＫがアセンブリＡの外形の領域外まで移動したか否かを判断する。すなわち、処理・判定部２４は、対象部品Ｋ全体が、図１３（ｂ）の破線枠（バウンディングボックス）外に出たか否かを判断する。ここでの判断が否定された場合には、ステップＳ１０に戻る。
【００３８】
ステップＳ１０に戻ると、変曲点算出部２０は、移動後の対象部品ＫとアセンブリＡのデータを取得する。次いで、ステップＳ１２では、再度、図５の処理が実行される。この場合、図１３（ｂ）の状態を「状態Ｎｏ．」＝２として、図５の処理を実行することで、分解可否テーブル３０は、図１４（ａ）に示すように更新される。なお、「状態Ｎｏ．」＝２以降においては、移動元に戻る方向の「分解可否」の欄（図１４（ａ）の「状態Ｎｏ．」＝２であれば、−Ｘ方向の「分解可否」の欄）は、無条件で「×」となるものとする。
【００３９】
そして、ステップＳ１４に移行すると、処理・判定部２４は、分解可能方向があるか否かを判断する。図１４（ａ）の場合、分解可能方向がある（＋Ｘ、＋Ｙ、＋Ｚ、−Ｙ方向）ため、ステップＳ１４の判断は肯定されて、ステップＳ１６に移行する。
【００４０】
ステップＳ１６に移行すると、処理・判定部２４は、分解可能方向と移動量を取得して、対象部品を移動する。ここでは、一例として、処理・判定部２４が、分解可能方向及び移動量として、＋Ｘ方向及び１５ｍｍを取得したものとする。この場合、処理・判定部２４は、対象部品Ｋを、取得した分解可能方向（＋Ｘ方向）に、取得した移動量（１５ｍｍ）だけ移動する。これにより、図１３（ｂ）の状態から図１３（ｃ）の状態となる。なお、処理・判定部２４は、移動後において、分解可否テーブル３０（図１４（ａ））の「状態Ｎｏ．」＝２の「方向」＝＋Ｘに対応する「移動済」の欄に「〇」を記録する。
【００４１】
次いで、ステップＳ３０では、処理・判定部２４は、対象部品ＫがアセンブリＡの外形の領域外まで移動したか否かを判断する。ここでの判断が否定された場合には、処理・判定部２４は、ステップＳ１０に戻る。
【００４２】
ステップＳ１０に戻ると、変曲点算出部２０は、移動後の対象部品ＫとアセンブリＡのデータを取得する。そして、ステップＳ１２では、再度、図５の処理が実行される。この場合、図１３（ｂ）の状態を「状態Ｎｏ．」＝３として、図５の処理を実行することで、分解可否テーブル３０は、図１４（ｂ）に示すように更新される。
【００４３】
その後、ステップＳ１４に移行すると、処理・判定部２４は、分解可能方向があるか否かを判断する。図１４（ｂ）の場合、分解可能方向がある（＋Ｘ、＋Ｙ、＋Ｚ、−Ｙ方向）ため、ステップＳ１４の判断は肯定されて、ステップＳ１６に移行する。
【００４４】
ステップＳ１６に移行すると、処理・判定部２４は、分解可能方向と移動量を取得して、対象部品を移動する。ここでは、一例として、処理・判定部２４が、分解可能方向及び移動量として、＋Ｘ方向及び２０ｍｍを取得したものとする。この場合、処理・判定部２４は、対象部品Ｋを、取得した分解可能方向（＋Ｘ方向）に、取得した移動量（２０ｍｍ）だけ移動する。これにより、図１３（ｃ）の状態から図１３（ｄ）の状態となる。なお、処理・判定部２４は、移動後に、分解可否テーブル３０（図１４（ｂ））の「状態Ｎｏ．」＝３の「方向」＝＋Ｘに対応する「移動済」の欄に「〇」を記録する。
【００４５】
次いで、ステップＳ３０では、処理・判定部２４は、対象部品ＫがアセンブリＡの外形の領域外まで移動したか否かを判断する。ここでの判断が否定された場合には、ステップＳ１０に戻る。
【００４６】
その後、同様の処理を繰り返し、対象部品Ｋが図１５（ａ）に示す位置まで到達したとする。そして、図１５（ａ）の位置で分解可能方向を算出したところ（Ｓ１２）、分解可能方向が無かったとする。この場合、ステップＳ１４の判断は否定され、処理・判定部２４は、ステップＳ１８に移行する。
【００４７】
ステップＳ１８に移行すると、処理・判定部２４は、分解可否テーブル３０を参照して、まだ対象部品Ｋを移動させていない分解可能方向が存在する直近の位置を探索する。すなわち、分解可否テーブル３０において、「分解可否」の欄に〇が入力されているにも関わらず、「移動済」の欄に〇が入力されていないものがある直近の位置（状態Ｎｏ．）を探索する。図１５（ａ）の例では、図１５（ｂ）に示す位置において、未だ＋Ｚ方向に移動していないことが探索されたものとする。
【００４８】
次いで、ステップＳ２０では、処理・判定部２４が、発見できたか否かを判断する。このステップＳ２０の判断が否定された場合、すなわち、発見できなかった場合には、処理・判定部２４は、ステップＳ３６において、対象部品ＫはアセンブリＡから分解不可と判断し、図４の全処理を終了する。一方、図１５（ｂ）のように、発見できた場合には、処理・判定部２４は、ステップＳ２２に移行する。
【００４９】
ステップＳ２２に移行すると、処理・判定部２４は、発見した位置まで対象部品Ｋを戻す。すなわち、処理・判定部２４は、対象部品Ｋを図１５（ａ）の位置から図１５（ｂ）の位置まで戻す。
【００５０】
次いで、ステップＳ２４では、処理・判定部２４が、まだ移動させていない分解可能方向と移動量を取得して、対象部品Ｋを移動する。この場合、処理・判定部２４は、例えば、分解可能方向として＋Ｚ方向、移動量として１０ｍｍを取得し、図１６（ａ）に示すように対象部品Ｋを移動したとする。その後は、ステップＳ３０に移行し、処理・判定部２４は、対象部品ＫがアセンブリＡの外形の領域外まで移動したか否かを判断する。このステップＳ３０の判断が否定されると、処理・判定部２４は、ステップＳ１０に戻る。
【００５１】
以降は、上記と同様の処理が繰り返され、対象部品Ｋを＋Ｚ方向に順次移動させた結果、図１６（ｂ）に示すように対象部品ＫがアセンブリＡの外形の領域外に出た段階で、ステップＳ３０の判断が肯定されることになる。
【００５２】
ステップＳ３０の判断が肯定され、ステップＳ３２に移行すると、処理・判定部２４は、対象部品Ｋは分解可能であると判断する。処理・判定部２４の判断結果は経路決定部２６に受け渡される。なお、処理・判定部２４が対象部品ＫをアセンブリＡから分解できると判断することは、対象部品ＫをアセンブリＡに組み付けできる（組立可能）と判断しているとも言える。
【００５３】
そして、次のステップＳ３４では、経路決定部２６が、分解経路を記録する。この場合、経路決定部２６は、対象部品Ｋの移動履歴から冗長な移動経路（重複部分や交差が生じた部分）を除外したものを分解経路として経路テーブル３２に記録する。本実施形態では、図１７において太線矢印で示すような分解経路が経路テーブル３２に記録されることになる。なお、分解経路は、逆に辿れば組立経路となるため、経路テーブル３２には、組立経路が記録されたともいえる。
【００５４】
ステップＳ３４の処理が行われた後は、図４の全処理を終了する。
【００５５】
以上、詳細に説明したように、本実施形態によると、変曲点算出部２０は、アセンブリＡとアセンブリＡ内に存在する対象部品Ｋそれぞれの三次元ＣＡＤデータから、アセンブリＡと対象部品Ｋの変曲点の座標データを抽出する（Ｓ５０）。また、方向算出部２２は、アセンブリＡと対象部品Ｋの変曲点の位置関係に基づいてアセンブリＡと対象部品Ｋとが干渉しない対象部品Ｋの分解可能方向と移動量とを算出する（Ｓ５２〜Ｓ７２）。そして、処理・判定部２４は、方向算出部２２が対象部品Ｋの分解可能方向と移動量を算出できた場合（Ｓ１４：肯定）に、対象部品Ｋを算出した分解可能方向に算出した移動量だけ移動する（Ｓ１６）。また、処理・判定部２４は、分解可能方向と移動量を算出できなかった場合（Ｓ１４：否定）に、まだ移動させていない分解可能方向が存在する直近の位置に対象部品Ｋを戻す（Ｓ２２）。そして、処理・判定部２４は、新たな位置において対象部品ＫがアセンブリＡの外部に存在すれば（Ｓ３０：肯定）、アセンブリＡから対象部品Ｋを分解可能（又は組立可能）と判断する（Ｓ３２）。このように、本実施形態では、アセンブリＡと対象部品Ｋの変曲点の位置関係から算出した分解可能方向と移動量に基づいて対象部品Ｋを移動して、対象部品Ｋの分解可否（又は組立可否）を判断する。したがって、対象部品Ｋをわずかに移動させて干渉チェックを行い、干渉が無ければ再度対象部品Ｋをわずかに移動させ…という処理を繰り返すような場合と比べて、処理量を低減することができる。また、処理に要する時間を短縮することができる。
【００５６】
また、本実施形態では、経路決定部２６は、分解可能（又は組立可能）と判定した場合に、対象部品Ｋの移動履歴（対象部品Ｋの位置の遷移履歴）に基づいて、対象部品Ｋの分解経路（又は組立経路）を決定する。これにより、分解経路又は組立経路の決定に要する処理量を低減し、処理時間を短縮することができる。
【００５７】
また、本実施形態では、方向算出部２２は、アセンブリＡの変曲点と対象部品Ｋの変曲点の組のうち、分解可否判定方向に関する距離が最小の組を選択する（Ｓ５６）。そして、方向算出部２２は、対象部品Ｋを分解可否判定方向に選択した組の距離だけ移動したときに、アセンブリＡと対象部品Ｋとが干渉しなければ（Ｓ６２：否定）、分解可否判定方向を分解可能方向とし、組の距離を移動量とする（Ｓ６６）。これにより、本実施形態では、分解可能方向と移動量を適切に決定することができる。
【００５８】
なお、上記実施形態では、対象部品ＫとアセンブリＡの干渉有無を判定する際に、図９（ａ）〜図９（ｄ）や図１２（ｂ）〜図１２（ｅ）に示すような画像を用いる場合について説明したが、これに限られるものではない。干渉有無の判定には、種々の方法を用いることができる。例えば、特開平７−１３４７３５号公報、特開平８−７７２１０号公報、特開平９−２７０４６号公報等に記載の方法により、干渉有無の判定を行うこととしてもよい。
【００５９】
なお、上記実施形態では、図５の処理において、全ての分解可能方向を特定する場合について説明したが、これに限られるものではない。すなわち、図５の処理においては、分解可能方向を１方向のみ特定してもよい。この場合、図１５（ａ）に示すように分解可能方向が１つも特定できなくなったときには、図１５（ｂ）に示すように直近の位置に戻り、その位置において未特定の別の分解可能方向を新たに特定すればよい。
【００６０】
なお、上記実施形態では、ステップＳ５２で取得する分解可否判定方向が±Ｘ方向、±Ｙ方向、±Ｚ方向の６方向のいずれかである場合について説明したが、これに限られるものではない。分解可否判定方向として取得可能な方向は、６方向よりも少なくてもよいし、６方向よりも多くてもよい。
【００６１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記憶媒体（ただし、搬送波は除く）に記録しておくことができる。
【００６２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記憶媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６３】
プログラムを実行するコンピュータは、例えば、可搬型記憶媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記憶媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００６４】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００６５】
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
（付記１）  第１部品と前記第１部品内の第１位置に存在する第２部品それぞれのデータから、前記第１部品の外形上の特徴点の座標データと、前記第２部品の外形上の特徴点の座標データと、を算出する算出部と、
前記第１部品の前記特徴点と前記第２部品の前記特徴点の位置関係に基づいて前記第１部品と前記第２部品とが干渉しない前記第２部品の分解可能方向と移動距離とを特定する特定部と、
前記特定部が前記第２部品の分解可能方向と移動距離を特定できた場合に、前記第１位置を基準として特定した前記分解可能方向に前記移動距離だけ離れた位置を新たな第１位置とし、前記特定部が前記第２部品の分解可能方向と移動距離を特定できなかった場合に、直前の第１位置を新たな第１位置とする処理部と、
前記新たな第１位置において前記第２部品が前記第１部品の外部に存在するときに、前記第１部品から前記第２部品を分解可能又は前記第１部品に前記第２部品を組み付け可能と判定する判定部と、
を備える情報処理装置。
（付記２）  前記判定部が分解可能又は組み付け可能と判定した場合の前記第１位置の遷移履歴に基づいて、前記第２部品の分解経路又は組み付け経路を決定する決定部を更に備える付記１に記載の情報処理装置。
（付記３）  前記外形上の特徴点は、頂点を含む、ことを特徴とする付記１又は２に記載の情報処理装置。
（付記４）  前記特定部は、前記第１部品の前記特徴点と前記第２部品の前記特徴点の組のうち、所定方向に関する距離が最も短い組を特定し、前記第２部品を特定した前記組の距離だけ前記所定方向に移動したときに、前記第１部品と前記第２部品とが干渉しなければ、前記所定方向を前記分解可能方向と特定し、前記組の距離を前記移動距離として特定する、ことを特徴とする付記１〜３のいずれかに記載の情報処理装置。
（付記５）  第１部品と前記第１部品内の第１位置に存在する第２部品それぞれのデータから、前記第１部品の外形上の特徴点の座標データと、前記第２部品の外形上の特徴点の座標データと、を算出し、
前記第１部品の前記特徴点と前記第２部品の前記特徴点の位置関係に基づいて前記第１部品と前記第２部品とが干渉しない前記第２部品の分解可能方向と移動距離とを特定し、
前記特定する処理で前記第２部品の分解可能方向と移動距離を特定できた場合に、前記第１位置を基準として特定した前記分解可能方向に前記移動距離だけ離れた位置を新たな第１位置とし、前記特定する処理で前記第２部品の分解可能方向と移動距離を特定できなかった場合に、直前の第１位置を新たな第１位置とし、
前記新たな第１位置において前記第２部品が前記第１部品の外部に存在するときに、前記第１部品から前記第２部品を分解可能又は前記第１部品に前記第２部品を組み付け可能と判定する、
処理をコンピュータに実行させるための判定プログラム。
（付記６）  前記判定する処理において分解可能又は組み付け可能と判定した場合の前記第１位置の遷移履歴に基づいて、前記第２部品の分解経路又は組み付け経路を決定する、処理を前記コンピュータに更に実行させることを特徴とする付記５に記載の判定プログラム。
（付記７）  前記外形上の特徴点は、頂点を含む、ことを特徴とする付記５又は６に記載の判定プログラム。
（付記８）  前記特定する処理において、前記第１部品の前記特徴点と前記第２部品の前記特徴点の組のうち、所定方向に関する距離が最も短い組を特定し、前記第２部品を特定した前記組の距離だけ前記所定方向に移動したときに、前記第１部品と前記第２部品とが干渉しなければ、前記所定方向を前記分解可能方向と特定し、前記組の距離を前記移動距離として特定する、ことを特徴とする付記５〜７のいずれかに記載の判定プログラム。
（付記９）  第１部品と前記第１部品内の第１位置に存在する第２部品それぞれのデータから、前記第１部品の外形上の特徴点の座標データと、前記第２部品の外形上の特徴点の座標データと、を算出し、
前記第１部品の前記特徴点と前記第２部品の前記特徴点の位置関係に基づいて前記第１部品と前記第２部品とが干渉しない前記第２部品の分解可能方向と移動距離とを特定し、
前記特定する処理で前記第２部品の分解可能方向と移動距離を特定できた場合に、前記第１位置を基準として特定した前記分解可能方向に前記移動距離だけ離れた位置を新たな第１位置とし、前記特定する処理で前記第２部品の分解可能方向と移動距離を特定できなかった場合に、直前の第１位置を新たな第１位置とし、
前記新たな第１位置において前記第２部品が前記第１部品の外部に存在するときに、前記第１部品から前記第２部品を分解可能又は前記第１部品に前記第２部品を組み付け可能と判定する、
処理をコンピュータが実行することを特徴とする判定方法。
【符号の説明】
【００６６】
１０  情報処理装置
２０  変曲点算出部（算出部）
２２  方向算出部（特定部）
２４  処理・判定部（処理部、判定部）
２６  経路決定部（決定部）
Ａ  アセンブリ（第１部品）
Ｋ  対象部品（第２部品）
【図１】
2020101965.tif 000003
【図２】
2020101965.tif 000004
【図３】
2020101965.tif 000005
【図４】
2020101965.tif 000006
【図５】
2020101965.tif 000007
【図６】
2020101965.tif 000008
【図７】
2020101965.tif 000009
【図８】
2020101965.tif 000010
【図９】
2020101965.tif 000011
【図１０】
2020101965.tif 000012
【図１１】
2020101965.tif 000013
【図１２】
2020101965.tif 000014
【図１３】
2020101965.tif 000015
【図１４】
2020101965.tif 000016
【図１５】
2020101965.tif 000017
【図１６】
2020101965.tif 000018
【図１７】
2020101965.tif 000019