(57)【要約】【課題】ピック・アンド・プレースを精度よく行うことを可能とする。【解決手段】実施形態の把持計画決定プログラムは、コンピュータに、部品の３次元モデルおよび部品をロボットハンドでピック・アンド・プレースして組み付ける方向を示す製品情報をもとに、部品をロボットハンドで把持する把持面を抽出する処理を実行させる。また、把持計画決定プログラムは、コンピュータに、抽出された把持面において、ロボットハンドが接触する面積を所定値以上とする制約条件のもと、ロボットハンドが部品を把持した状態で部品を組み付け先の部品へ差し込むことを可能とする差し込む量をより多くするロボットハンドの把持位置を計算する処理を実行させる。また、把持計画決定プログラムは、コンピュータに、計算された把持位置に基づいて、部品をピック・アンド・プレースして組み付け先の部品へ組み付けるロボットハンドの把持計画を出力する処理を実行させる。【選択図】図２
2016093879.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
部品の３次元モデルおよび前記部品をロボットハンドでピック・アンド・プレースして組み付ける方向を示す製品情報をもとに、前記部品を前記ロボットハンドで把持する把持面を抽出し、
前記抽出された把持面において、前記ロボットハンドが接触する面積を所定値以上とする制約条件のもと、前記ロボットハンドが前記部品を把持した状態で当該部品を組み付け先の部品へ差し込むことを可能とする差し込む量をより多くする前記ロボットハンドの把持位置を計算し、
前記計算された把持位置に基づいて、前記部品をピック・アンド・プレースして前記組み付け先の部品へ組み付ける前記ロボットハンドの把持計画を出力する
処理を実行させることを特徴とする把持計画決定プログラム。
【請求項２】
前記抽出する処理は、前記部品の３次元モデルをもとに、当該部品の外周面の中から前記組み付ける方向に直交する法線を有する対となる２平面を抽出し、
前記計算する処理は、前記法線の方向から見た前記２平面の積集合面を前記把持面として、前記ロボットハンドの把持位置を計算する
請求項１に記載の把持計画決定プログラム。
【請求項３】
前記抽出する処理は、前記２平面の組み合わせを複数抽出し、
前記計算する処理は、前記２平面の組み合わせごとに前記ロボットハンドの把持位置を計算し、
前記出力する処理は、前記２平面の組み合わせの中で前記差し込む量をより多くする２平面の把持位置に基づいて、前記把持計画を出力する
請求項２に記載の把持計画決定プログラム。
【請求項４】
コンピュータに、
部品の３次元モデルおよび前記部品をロボットハンドでピック・アンド・プレースして組み付ける方向を示す製品情報をもとに、前記部品を前記ロボットハンドで把持する把持面を抽出し、
前記抽出された把持面において、前記ロボットハンドが前記部品を把持した状態で当該部品を組み付け先の部品へ差し込むことを可能とする差し込む量を所定値以上とする制約条件のもと、前記ロボットハンドが接触する面積をより大きくする前記ロボットハンドの把持位置を計算し、
前記計算された把持位置に基づいて、前記部品をピック・アンド・プレースして前記組み付け先の部品へ組み付ける前記ロボットハンドの把持計画を出力する
処理を実行させることを特徴とする把持計画決定プログラム。
【請求項５】
前記抽出する処理は、前記部品の３次元モデルをもとに、当該部品の外周面の中から前記組み付ける方向に直交する法線を有する対となる２平面を抽出し、
前記計算する処理は、前記法線方向から見た前記２平面の積集合面を前記把持面として、前記ロボットハンドの把持位置を計算する
請求項４に記載の把持計画決定プログラム。
【請求項６】
前記抽出する処理は、前記２平面の組み合わせを複数抽出し、
前記計算する処理は、前記２平面の組み合わせごとに前記ロボットハンドの把持位置を計算し、
前記出力する処理は、前記２平面の組み合わせの中で前記ロボットハンドが接触する面積をより大きくする２平面の把持位置に基づいて、前記把持計画を出力する
請求項５に記載の把持計画決定プログラム。
【請求項７】
コンピュータが、
部品の３次元モデルおよび前記部品をロボットハンドでピック・アンド・プレースして組み付ける方向を示す製品情報をもとに、前記部品を前記ロボットハンドで把持する把持面を抽出し、
前記抽出された把持面において、前記ロボットハンドが把持する把持面積を所定値以上とする制約条件のもと、前記ロボットハンドが前記部品を把持した状態で当該部品を組み付け先の部品へ差し込むことを可能とする差し込む量をより多くする前記ロボットハンドの把持位置を計算し、
前記計算された把持位置に基づいて、前記部品をピック・アンド・プレースして前記組み付け先の部品へ組み付ける前記ロボットハンドの把持計画を出力する
処理を実行することを特徴とする把持計画決定方法。
【請求項８】
コンピュータが、
部品の３次元モデルおよび前記部品をロボットハンドでピック・アンド・プレースして組み付ける方向を示す製品情報をもとに、前記部品を前記ロボットハンドで把持する把持面を抽出し、
前記抽出された把持面において、前記ロボットハンドが前記部品を把持した状態で当該部品を組み付け先の部品へ差し込むことを可能とする差し込む量を所定値以上とする制約条件のもと、前記ロボットハンドが把持する把持面積をより大きくする前記ロボットハンドの把持位置を計算し、
前記計算された把持位置に基づいて、前記部品をピック・アンド・プレースして前記組み付け先の部品へ組み付ける前記ロボットハンドの把持計画を出力する
処理を実行することを特徴とする把持計画決定方法。
【請求項９】
部品の３次元モデルおよび前記部品をロボットハンドでピック・アンド・プレースして組み付ける方向を示す製品情報をもとに、前記部品を前記ロボットハンドで把持する把持面を抽出する抽出部と、
前記抽出された把持面において、前記ロボットハンドが把持する把持面積を所定値以上とする制約条件のもと、前記ロボットハンドが前記部品を把持した状態で当該部品を組み付け先の部品へ差し込むことを可能とする差し込む量をより多くする前記ロボットハンドの把持位置を計算する計算部と、
前記計算された把持位置に基づいて、前記部品をピック・アンド・プレースして前記組み付け先の部品へ組み付ける前記ロボットハンドの把持計画を出力する出力部と
を有することを特徴とする設計支援装置。
【請求項１０】
部品の３次元モデルおよび前記部品をロボットハンドでピック・アンド・プレースして組み付ける方向を示す製品情報をもとに、前記部品を前記ロボットハンドで把持する把持面を抽出する抽出部と、
前記抽出された把持面において、前記ロボットハンドが前記部品を把持した状態で当該部品を組み付け先の部品へ差し込むことを可能とする差し込む量を所定値以上とする制約条件のもと、前記ロボットハンドが把持する把持面積をより大きくする前記ロボットハンドの把持位置を計算する計算部と、
前記計算された把持位置に基づいて、前記部品をピック・アンド・プレースして前記組み付け先の部品へ組み付ける前記ロボットハンドの把持計画を出力する出力部と
を有することを特徴とする設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、把持計画決定プログラム、把持計画決定方法および設計支援装置に関する。
【背景技術】
【０００２】
工場などの組立用ロボットの動作設計では、ＣＡＤ（Computer  Aided  Design）を用いて部品や組立用ロボットの３次元モデルで検証することで、部品を組み立てる際の組立用ロボットの一連の動作を設計している。
【０００３】
例えば、組立用ロボットの動作の一つに、所定位置にある部品（ワーク）をつまみ上げ、所定の挿入位置に差し込むというピック・アンド・プレースがある。図９は、ピック・アンド・プレースによる組付け工程を説明する説明図である。図９に示すように、ピック・アンド・プレースでは、先ず、組付用ロボットのロボットハンド２０１が部品２０２の上部をピック（把持）する。次いで、ロボットハンド２０１は、部品２０２の上部をピックした状態で移動し、部品２０２を組付先部品２０４に差し込む。差し込み量２０３は、部品２０２の上部をピックした状態で、組付先部品２０４へ差し込むことを可能とする部品２０２の量である。部品２０２を組付先部品２０４へ差し込んだ後、ロボットハンド２０１は、部品２０２を離し、部品２０２を上部から組付先部品２０４へ押し込む。この一連のピック・アンド・プレースにより、部品２０２は組付先部品２０４に組み付けられる。
【０００４】
ピック・アンド・プレースの動作設計では、ロボットハンド２０１、部品２０２および組付先部品２０４の形状と、その配置位置を示す３次元モデルをもとに、ロボットハンド２０１が部品２０２を把持して組付先部品２０４へ差し込み、組付先部品２０４へ押し込むまでのロボットハンド２０１の一連の位置を決める。次いで、逆キネマ（インバースキネマティクス）と呼ばれる手法を用いることで、一連の位置決めが行われたロボットハンド２０１の動作を実現するための、組付用ロボットの姿勢・動作を逆計算する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−３２８０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の動作設計では、差し込み量２０３が未考慮であることから、部品２０２の差し込みに失敗する可能性があり、ピック・アンド・プレースを精度よく行うことができないという問題がある。
【０００７】
図１０は、ピック・アンド・プレースによる差し込み失敗を説明する説明図である。図１０に示すように、例えば、差し込み量が少ない場合は、部品２０２を組付先部品２０４に差し込む際に干渉し、差し込みに失敗する場合がある。また、差し込み量を多くする場合は、ロボットハンド２０１により部品２０２を把持する面積が小さくなることから、ピック時の安定性を維持できず、部品２０２を落としてしまう場合がある。
【０００８】
１つの側面では、ピック・アンド・プレースを精度よく行うことを可能とする把持計画決定プログラム、把持計画決定方法および設計支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、把持計画決定プログラムは、コンピュータに、部品の３次元モデルおよび部品をロボットハンドでピック・アンド・プレースして組み付ける方向を示す製品情報をもとに、部品をロボットハンドで把持する把持面を抽出する処理を実行させる。また、把持計画決定プログラムは、コンピュータに、抽出された把持面において、ロボットハンドが接触する面積を所定値以上とする制約条件のもと、ロボットハンドが部品を把持した状態で部品を組み付け先の部品へ差し込むことを可能とする差し込む量をより多くするロボットハンドの把持位置を計算する処理を実行させる。また、把持計画決定プログラムは、コンピュータに、計算された把持位置に基づいて、部品をピック・アンド・プレースして組み付け先の部品へ組み付けるロボットハンドの把持計画を出力する処理を実行させる。
【発明の効果】
【００１０】
本発明の１実施態様によれば、ピック・アンド・プレースを精度よく行うことができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、組み立て計画の作成工程を説明する説明図である。
【図２】図２は、第１の実施形態にかかる設計支援装置の構成例を示すブロック図である。
【図３】図３は、平行面ペアの抽出を説明する説明図である。
【図４】図４は、ハンドモデルを説明する説明図である。
【図５】図５は、把持位置の計算を説明する説明図である。
【図６】図６は、第１の実施形態にかかる設計支援装置の動作例を示すフローチャートである。
【図７】図７は、第２の実施形態にかかる設計支援装置の動作例を示すフローチャートである。
【図８】図８は、把持計画決定プログラムを実行するコンピュータを示す図である。
【図９】図９は、ピック・アンド・プレースによる組付け工程を説明する説明図である。
【図１０】図１０は、ピック・アンド・プレースにおける差し込み失敗を説明する説明図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、実施形態にかかる把持計画決定プログラム、把持計画決定方法および設計支援装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する把持計画決定プログラム、把持計画決定方法および設計支援装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００１３】
図１は、組み立て計画の作成工程を説明する説明図である。図１に示すように、組立用ロボットによるピック・アンド・プレースを含めた各種動作によって部品を組み立てる組み立て計画は、Ｓ１〜Ｓ５の各工程を経て作成（設計）される。これらの各工程（Ｓ１〜Ｓ５）では、パーソナルコンピュータやワークステーションなどの情報処理装置（以下、設計支援装置とも呼ぶ）のＣＡＤを用いて組み立て計画の設計が行われる。
【００１４】
具体的には、先ず、組立ロボットにより組み合わせる各部品、各部品の組み合わせ位置・方向および組み合わせ後の製品の製品情報と、組立ロボットの仕様および各部品の配置など、組み立てを行う工場の設備や作業環境の情報についての情報入力を設計支援装置に行う（Ｓ１）。例えば、情報入力されるデータは、各部品、各部品を組み合わせた製品および組立ロボットについての形状と、その配置とを記述した３次元モデルのＣＡＤ情報などである。
【００１５】
次いで、ＣＡＤ情報を用いた設計支援装置における編集作業により、各部品を組み合わせて製品を組み立てる組立順序を作成する（Ｓ２）。具体的には、製品情報で示された各部品について、各部品を組み合わせて製品が作成される順序を、ＣＡＤの編集により作成する。
【００１６】
次いで、設計支援装置における編集作業等により、作成した組立順序で各部品を組立ロボットで組み合わせる作業工程と、各作業における組立ロボットの動作フローとを作成する（Ｓ３）。具体的には、組立順序の各工程において、各部品を製品情報に従った組み合わせ位置・方向で組み付ける作業を決める。そして、組立ロボットにおける既存動作をテンプレート化した動作フローの中から作業にあった動作フローを組立順に並べて作成する。この動作フローを組立順に並べた情報は、組立情報として製品情報ともに保存される。
【００１７】
例えば、組立順序の一工程において、ある部品を別の部品に組み付ける場合には、部品を把持し、製品情報に従った組み合わせ位置・方向で別の部品に差し込んで組み付けるピック・アンド・プレースの作業を行うものと決める。そして、複数の動作フローの中からピック・アンド・プレースをテンプレート化した動作フローを選び、この工程における動作フローとする。なお、組立順序の一工程における作業は、上述したピック・アンド・プレースの他、組み合わせた部品同士を接合するための溶接、組み合わせる面を上部に向けるための部品の移動などであってもよい。
【００１８】
次いで、設計支援装置は、各部品、各部品を組み合わせた製品および組立ロボットについての形状と、その配置とを記述した３次元モデルのＣＡＤ情報をもとに、生成された動作フローで動作する場合の組立ロボットにおけるロボットハンドのハンド位置・姿勢を計算する（Ｓ４）。例えば、ピック・アンド・プレースでは、ロボットハンドがある部品を把持して別の部品へ差し込み、差し込んだ部品を押し込むまでのロボットハンドの一連の位置・姿勢を計算する（詳細は後述する）。
【００１９】
次いで、設計支援装置は、Ｓ４で計算された一連のハンド位置・姿勢をもとに、逆キネマによりロボット姿勢・動作を計算する（Ｓ５）。このロボット姿勢・動作は、計算された一連のハンド位置・姿勢を実現するための、各関節の駆動やアームの伸縮などである。逆キネマでは、末端部分の動作（ハンド位置・姿勢）を先に決め、その末端部分の動作を実現するための親となる関節の角度、アームの長さを簡易的に逆計算する。これにより、組み立て工程における組立ロボットの動作が設計される。
【００２０】
（第１の実施形態）
図２は、第１の実施形態にかかる設計支援装置１の構成例を示すブロック図である。図２に示すように、設計支援装置１は、入力部１０、形状分析部１１、抽出部１２、計算部１３および出力部１４を有する。なお、以下では、前述したＳ１〜Ｓ３の工程を終えた後のピック・アンド・プレースの動作設計におけるハンド位置・姿勢を計算する構成を説明する。
【００２１】
入力部１０は、各部品、各部品を組み合わせた製品についての形状と、その配置とを記述した３次元モデルや各部品の組付け方向などの組立情報を含む製品情報Ｄ１と、組立ロボットのロボットハンドのハンドモデル（３次元モデル）を含むハンド情報Ｄ２の入力を受け付ける。この製品情報Ｄ１、ハンド情報Ｄ２は、前述したＳ１において入力された情報であり、ＨＤＤ（Hard  Disk  Drive）等の記憶装置に予め記憶されている。入力部１０は、この記憶装置より読み出された製品情報Ｄ１、ハンド情報Ｄ２の入力を受け付ける。
【００２２】
形状分析部１１は、入力された製品情報Ｄ１における部品の３次元モデルをもとに、部品の形状を分析する。具体的には、形状分析部１１は、製品情報Ｄ１における部品の３次元モデルから、ポリゴンセグメンテーション技術を利用して部品の外周における平面を抽出する。ポリゴンセグメンテーション技術は、３次元モデルから平面、円筒、球などの特長ある領域を抽出する公知の技術であり、部品を構成している外周面から所定の平面を抽出することができる。
【００２３】
抽出部１２は、製品情報Ｄ１に含まれる部品の組付け方向をもとに、ロボットハンドで把持する把持面を抽出する。具体的には、抽出部１２は、部品の外周における平面の中から、組付け方向に直交する法線を持つ、対（ペア）となる２平面（平行面ペア）を抽出する。形状分析部１１は、抽出された平行面ペアを、ピック・アンド・プレースにおいて、ロボットハンドが把持する把持面の候補とする。
【００２４】
図３は、平行面ペアの抽出を説明する説明図である。図３に示すように、形状分析部１１は、部品の３次元モデルＭ１をもとに、組み付け方向に直交する法線を有する面Ｐ１１、Ｐ１２の平行面ペアを抽出する。図３の例では、略直方体形状の両側面（Ｐ１１、Ｐ１２）が平行面ペアとして抽出され、把持面の候補とされる。なお、組み付け方向に直交する法線を有する平行面ペアが複数ある場合は、該当する複数の平行面ペアが把持面の候補とされる。
【００２５】
また、抽出部１２は、把持面の候補とした平行面ペアについて、組み付け方向に直交する法線から見た場合に重複する積集合面の面積を計算し、その面積が所定値以上となる平行面ペアを把持面とする。なお、平行面ペアの積集合面は、ＧＰＣ（General  Polygon  Clipper）ライブラリなどのポリゴングリップ技術を利用することで、計算できる。また、積集合面の面積は、三角形分割技術で積集合面を複数の三角形に分割し、各三角形の面積和を計算することで算出できる。このように、組み付け方向に直交する法線から見た積集合面の面積が所定値以上となる平行面ペアを把持面とすることで、ロボットハンドで把持される領域（面積）を十分に確保した把持面を候補とすることができる。
【００２６】
計算部１３は、抽出部１２により抽出された部品の把持面において、ロボットハンドが把持する把持位置を計算する。具体的には、計算部１３は、ロボットハンドのハンドモデルを含むハンド情報Ｄ２と、抽出部１２により抽出された部品の把持面とをもとに、所定の制約条件のもと、ロボットハンドが部品を把持した状態でその部品を組み付け先の部品へ差し込むことを可能とする差し込む量をより多くする（最大化する）最適化計算を行う。この制約条件は、ロボットハンドで部品を把持して移送する際の安定性を確保するため、ロボットハンドが部品の把持面において接触する面積を所定値以上とする条件などがある。
【００２７】
図４は、ハンドモデルＭ２を説明する説明図である。図４に示すように、ハンド情報Ｄ２のハンドモデルＭ２を参照することで、ロボットハンドの各部の位置を正確に算出できる。具体的には、ハンドモデルＭ２にはロボットハンドで部品を把持するためのハンド把持面Ｐ２０が設定されており、ハンドモデルＭ２に基づいて、部品を把持するハンド把持面Ｐ２０の位置を算出できる。
【００２８】
図５は、把持位置の計算を説明する説明図である。具体的には、図５は、部品の平行面ペアである面Ｐ１１、Ｐ１２の積集合面を組付け方向（ｙ方向の下向き）に直交する法線方向から見た図である。
【００２９】
Ｈ（ｘｈ，ｙｈ）はロボットハンドの把持面の位置（把持位置）である。Ｓ（ｘｈ，ｙｈ）は、積集合面においてロボットハンドのハンド把持面Ｐ２０が接触する面であり、その面積は把持位置Ｈ（ｘｈ，ｙｈ）に依存する。例えば、ｙ方向の下向きに把持位置を下げるほどＳの面積値は大きくなり、ロボットハンドで部品を把持した場合の安定性が増すこととなる。
【００３０】
また、部品の差し込み量は、ロボットハンドが部品を把持した状態で部品を組み付け先の部品へ差し込むことを可能とする部分であることから、組付け方向（ｙ方向下向き）における面Ｓの縁から面Ｐ１１、Ｐ１２の縁までの距離である。したがって、ｙ方向の下向きに把持位置を下げるほど差し込み量は小さくなり、ｙ方向の上向きに把持位置を上げるほど差し込み量は大きくなる。これら把持位置を求めるための面積や差し込み量は、ポリゴングリップ技術や三角形分割技術を用いて計算できる。
【００３１】
計算部１３は、ロボットハンドで部品を把持した場合の安定性を確保しつつ、差し込み量を最大化するための最適化計算を次の式（１）をもとに求める。
【００３２】
【数１】
2016093879.tif 000003
【００３３】
計算部１３は、式（１）に示すように、Ｓ（ｘｈ，ｙｈ）が把持安定性閾値ｔ０以上となる制約条件のもと、差し込み量ｇを最大化する把持位置Ｈ（ｘｈ，ｙｈ）を求める。この式（１）の最適化計算は、非線形計画法のアルゴリズムで解くことが可能である。
【００３４】
出力部１４は、計算部１３により計算された把持位置で部品を把持してピック・アンド・プレースするハンド位置・姿勢を出力する。設計支援装置１は、出力部１４より出力されるハンド位置・姿勢をもとに、ロボットハンドの動作計画を作成する。したがって、設計支援装置１は、ロボットハンドの把持位置について、部品を把持した場合の安定性を確保しつつ、部品の差し込み量を最大化していることから、ピック・アンド・プレース時の失敗を抑止し、ピック・アンド・プレースを精度よく行う動作計画を作成できる。
【００３５】
図６は、第１の実施形態にかかる設計支援装置１の動作例を示すフローチャートである。図６に示すように、処理が開始されると、入力部１０は、製品情報Ｄ１より部品の３次元モデルの入力を受け付ける（Ｓ１０）。次いで、形状分析部１１は、受け付けた３次元モデルをもとに、ポリゴンセグメンテーション技術を用いることで部品の平面抽出を行う（Ｓ１１）。
【００３６】
次いで、抽出部１２は、抽出された部品の平面の中から、組付け方向に直交する法線を持つ、平行面ペアを抽出する（Ｓ１２）。次いで、計算部１３は抽出された平行面ペアが一つ以上あるか否かを判定する（Ｓ１３）。平行面ペアが一つ以上ない場合（Ｓ１３：ＮＯ）、安定した把持を行うことができないことから、出力部１４は把持失敗としてエラー出力を行う（Ｓ１４）。
【００３７】
平行面ペアが一つ以上ある場合（Ｓ１３：ＹＥＳ）、計算部１３は、組付情報の入力を受け付け（Ｓ１５）、平行面ペアの中から処理対象の把持候補面を抽出する（Ｓ１６）。この把持候補面の抽出は、処理対象となったことのない平行面ペアから行われ、把持候補面として処理対象となった平行面ペアは除かれる。次いで、計算部１３は、処理対象の把持候補面が存在するか否かを判定する（Ｓ１７）。このＳ１７では、全ての平行面ペアについて処理対象とした場合には、把持候補面が存在しないものと判定（Ｓ１７：ＮＯ）される。
【００３８】
処理対象の把持候補面が存在する場合（Ｓ１７：ＹＥＳ）、計算部１３は、把持候補面の一つを選択し（Ｓ１８）、制約条件が記述された制約条件情報の入力を受け付ける（Ｓ１９）。この制約条件情報の入力は、メモリなどに予め記憶されているデータの読み取りであってもよいし、ユーザによるキー入力等であってもよい。
【００３９】
次いで、計算部１３は、入力された制約条件のもと、差し込み量を最大化する最適化計算を実施し、前述した把持位置を計算することで、ハンド位置・姿勢を計算する（Ｓ２０）。
【００４０】
次いで、計算部１３は、現在の処理までに得られた最大差し込み量（ｇＭＡＸ）と、今回のＳ２０の処理で計算した差し込み量（ｇＮＥＷ）とを比較する。現在の処理までに得られた最大差し込み量（ｇＭＡＸ）と、その差し込み量におけるハンド位置・姿勢とは、計算データＤ３としてＲＡＭ（Random  Access  Memory）などに記憶されている。計算部１３は、計算データＤ３を参照して得られたｇＭＡＸと、Ｓ２０の処理で得られたｇＮＥＷとを比較し、ｇＭＡＸ＜ｇＮＥＷであるか否かを判定する。そして、ｇＭＡＸ＜ｇＮＥＷである場合、計算部１３は、ｇＮＥＷを新たなｇＭＡＸとし、計算データＤ３におけるｇＭＡＸとハンド位置・姿勢とを更新し（Ｓ２１）、Ｓ１６へ処理を戻す。
【００４１】
設計支援装置１は、把持候補面について上述したＳ１７〜Ｓ２１の処理を繰り返すことで、差し込み量を最大とするハンド位置・姿勢を計算データＤ３として得ることができる。そして、全ての平行面ペアについて処理対象とし、把持候補面が存在しないものと判定された（Ｓ１７：ＮＯ）ところで、出力部１４は、計算データＤ３をもとに、ハンド位置・姿勢を出力する（Ｓ２２）。
【００４２】
以上のように、設計支援装置１は、部品の３次元モデルＭ１および部品をロボットハンドでピック・アンド・プレースして組み付ける方向を示す製品情報Ｄ１をもとに、部品をロボットハンドで把持する把持面を抽出する。また、設計支援装置１は、抽出された把持面において、ロボットハンドが接触する面積を所定値以上とする制約条件のもと、ロボットハンドが部品を把持した状態でその部品を組み付け先の部品へ差し込むことを可能とする差し込む量をより多くするロボットハンドの把持位置を計算する。また、設計支援装置１は、計算された把持位置に基づいて、部品をピック・アンド・プレースして組み付け先の部品へ組み付けるロボットハンドの動作（把持）計画を出力する。したがって、第１の実施形態では、設計支援装置１により出力された動作計画に従ってロボットハンドを動作させることで、部品の移送時における安定性を確保しつつ、差し込み時の安定性をより向上させ、ピック・アンド・プレースを精度よく行うことができる。
【００４３】
（第２の実施形態）
第２の実施形態では、部品の差し込み量を所定値以上とする制約条件のもと、ロボットハンドが接触する面積を最大化する最適化計算を行う構成を例示する。
【００４４】
具体的には、第２の実施形態において、計算部１３は、式（１）におけるｇとＳとを逆にし、ピック・アンド・プレースで部品を差し込んだ場合の安定性（所定の差し込み量）を確保しつつ、ロボットハンドで部品を把持する面積を最大化するための最適化計算を行う。
【００４５】
図７は、第２の実施形態にかかる設計支援装置１の動作例を示すフローチャートである。図７に示すように、差し込み量についての制約条件情報の入力を受け付けた後（Ｓ１９）、計算部１３は、差し込み量を所定値以上とする制約条件のもと、把持面積を最大化する把持位置の最適化計算を実施し、ハンド位置・姿勢を計算する（Ｓ２０ａ）。
【００４６】
次いで、計算部１３は、現在の処理までに得られた最大の把持面積（ｔＭＡＸ）と、今回のＳ２０ａの処理で計算した把持面積（ｔＮＥＷ）とを比較する。現在の処理までに得られた最大の把持面積（ｔＭＡＸ）と、その把持面積におけるハンド位置・姿勢とは、計算データＤ３としてＲＡＭなどに記憶されている。計算部１３は、計算データＤ３を参照して得られたｔＭＡＸと、Ｓ２０の処理で得られたｔＮＥＷとを比較し、ｔＭＡＸ＜ｔＮＥＷであるか否かを判定する。そして、ｔＭＡＸ＜ｔＮＥＷである場合、計算部１３は、ｔＮＥＷを新たなｔＭＡＸとし、計算データＤ３におけるｔＭＡＸとハンド位置・姿勢とを更新し（Ｓ２１ａ）、Ｓ１６へ処理を戻す。
【００４７】
設計支援装置１は、把持候補面について上述したＳ１７〜Ｓ２１ａの処理を繰り返すことで、把持面積を最大とするハンド位置・姿勢を計算データＤ３として得ることができる。そして、全ての平行面ペアについて処理対象とし、把持候補面が存在しないものと判定された（Ｓ１７：ＮＯ）ところで、出力部１４は、計算データＤ３をもとに、ハンド位置・姿勢を出力する（Ｓ２２）。
【００４８】
以上のように、第２の実施形態では、設計支援装置１は、抽出された把持面において、ロボットハンドが部品を把持した状態でその部品を組み付け先の部品へ差し込むことを可能とする差し込む量を所定値以上とする制約条件のもと、ロボットハンドが接触する面積をより多くするロボットハンドの把持位置を計算する。したがって、第２の実施形態では、設計支援装置１により出力された動作計画に従ってロボットハンドを動作させることで、差し込み時の失敗を抑止しつつ、部品の移送時における安定性をより向上させ、ピック・アンド・プレースを精度よく行うことができる。
【００４９】
また、この設計支援装置１は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した入力部１０、形状分析部１１、抽出部１２、計算部１３および出力部１４の各機能を搭載することによって実現することができる。
【００５０】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００５１】
また、製品情報Ｄ１およびハンド情報Ｄ２などのデータを設計支援装置１の外部装置よりネットワーク経由で取得するようにしてもよい。また、入力部１０、形状分析部１１、抽出部１２、計算部１３および出力部１４を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、設計支援装置１の機能を実現するようにしても良い。
【００５２】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図８を用いて、図２に示した設計支援装置１と同様の機能を有する把持計画決定プログラム１０４１を実行するコンピュータ１０００の一例を説明する。
【００５３】
図８は、把持計画決定プログラム１０４１を実行するコンピュータ１０００を示す図である。図８に示すように、コンピュータ１０００は、ＲＡＭ１０１０と、キャッシュ１０２０と、ＨＤＤ１０３０と、ＲＯＭ（Read  Only  Memory）１０４０と、ＣＰＵ（Central  Processing  Unit）１０５０、バス１０６０とを有する。ＲＡＭ１０１０、キャッシュ１０２０、ＨＤＤ１０３０、ＲＯＭ１０４０、ＣＰＵ１０５０は、バス１０６０によって接続されている。ＲＯＭ１０４０には、図２に示した設計支援装置１と同様の機能を発揮する把持計画決定プログラム１０４１が予め記憶されている。
【００５４】
そして、ＣＰＵ１０５０は、この把持計画決定プログラム１０４１を読み出して実行する。これにより、把持計画決定プログラム１０４１は、把持計画決定プロセス１０５１になる。なお、把持計画決定プロセス１０５１は、入力部１０、形状分析部１１、抽出部１２、計算部１３および出力部１４に対応する。また、ＨＤＤ１０３０には、製品情報Ｄ１およびハンド情報Ｄ２が格納される。
【００５５】
なお、把持計画決定プログラム１０４１については、必ずしもＲＯＭ１０４０に記憶させなくてもよい。例えば、コンピュータ１０００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に把持計画決定プログラム１０４１を記憶させてもよい。または、コンピュータ１０００の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」に把持計画決定プログラム１０４１を記憶させてもよい。または、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）などを介してコンピュータ１０００に接続される「他のコンピュータ（又はサーバ）」に把持計画決定プログラム１０４１を記憶させてもよい。そして、コンピュータ１０００は、上述したフレキシブルディスクなどから把持計画決定プログラム１０４１を読み出して実行するようにしてもよい。
【符号の説明】
【００５６】
１…設計支援装置
１０…入力部
１１…形状分析部
１２…抽出部
１３…計算部
１４…出力部
２０１…ロボットハンド
２０２…部品
２０３…差し込み量
２０４…組付先部品
１０００…コンピュータ
１０１０…ＲＡＭ
１０２０…キャッシュ
１０３０…ＨＤＤ
１０４０…ＲＯＭ
１０４１…把持計画決定プログラム
１０５０…ＣＰＵ
１０５１…把持計画決定プロセス
Ｄ１…製品情報
Ｄ２…ハンド情報
Ｐ１１、Ｐ１２…面
Ｐ２０…ハンド把持面
Ｍ１…３次元モデル
Ｍ２…ハンドモデル
【図１】
2016093879.tif 000004
【図２】
2016093879.tif 000005
【図３】
2016093879.tif 000006
【図４】
2016093879.tif 000007
【図５】
2016093879.tif 000008
【図６】
2016093879.tif 000009
【図７】
2016093879.tif 000010
【図８】
2016093879.tif 000011
【図９】
2016093879.tif 000012
【図１０】
2016093879.tif 000013