(57)【特許請求の範囲】
【請求項１】
作業空間内に配置されたワークを加工するのに使用されるロボットに対して教示されるロボットプログラムを作成するロボットプログラミング装置であって、
前記作業空間を３次元で表現した仮想空間を作成する仮想空間作成部と、
前記仮想空間内に配置されるワークのモデルに対し、撮像デバイスによって撮像されるべき対象部位を指定する対象部位指定部と、
前記仮想空間内において、前記撮像デバイスによって前記対象部位を撮像する際における前記撮像デバイスの少なくとも１つの位置を決定する位置決定部と、
前記位置決定部によって決定される前記撮像デバイスの前記少なくとも１つの位置を記憶する位置記憶部と、
前記位置記憶部によって記憶される前記撮像デバイスの前記少なくとも１つの位置に従って、前記撮像デバイスによって前記対象部位を撮像するように前記ロボットに教示される撮像プログラムを作成する撮像プログラム作成部と、を備えており、
さらに、
前記撮像デバイスが前記位置決定部によって決定される任意の１つの位置に配置されるときに、前記対象部位の全体を撮像可能であるか否かを判定する判定部を備えており、
前記位置決定部は、前記判定部によって前記対象部位の全体を撮像可能でないと判定された場合に、前記任意の１つの位置とは異なる前記撮像デバイスの追加の位置を決定するように構成されるとともに、前記撮像デバイスの複数の位置を決定する際に、互いに隣接する各々の前記位置における前記撮像デバイスの視野の範囲が所定の範囲にわたって重なり合うように、前記撮像デバイスの前記複数の位置を決定するように構成されており、
さらに、
前記撮像プログラムを前記仮想空間内においてシミュレーションすることによって得られる前記対象部位の位置において前記ワークの加工が実行されるように加工プログラムを作成する加工プログラム作成部を備える、ロボットプログラミング装置。
【請求項２】
前記位置決定部は、前記撮像デバイスが前記対象部位に対して所定の位置関係を有するような、前記撮像デバイスの前記少なくとも１つの位置を決定するように構成される、請求項１に記載のロボットプログラミング装置。
【請求項３】
前記位置決定部は、前記撮像デバイスの視野の範囲を指定する視野指定部を備えており、
前記位置決定部は、前記撮像デバイスと前記対象部位との間の前記所定の位置関係、及び前記視野の範囲に基づいて、前記対象部位を全体的に撮像可能であるような、前記撮像デバイスの前記少なくとも１つの位置を決定するように構成される、請求項２に記載のロボットプログラミング装置。
【請求項４】
前記撮像デバイスと前記対象部位との間の前記所定の位置関係は、前記撮像デバイスと前記対象部位との間の距離によって指定される、請求項２又は３に記載のロボットプログラミング装置。
【請求項５】
前記撮像デバイスと前記対象部位との間の距離は、前記対象部位を含むワークの表面に対して垂直な方向に沿った距離である、請求項４に記載のロボットプログラミング装置。
【請求項６】
前記対象部位が前記ワークの表面上の点、線又は面である、請求項１から５のいずれか１項に記載のロボットプログラミング装置。
【請求項７】
前記撮像プログラムは、前記撮像デバイス及び前記ワークのうちの少なくともいずれか一方の位置及び姿勢を制御するロボットに対する教示内容を含む、請求項１から６のいずれか１項に記載のロボットプログラミング装置。
【請求項８】
前記撮像プログラムは、所定の位置に固定された前記ワークに対して、前記位置決定部によって決定される所定の位置関係を有するように固定された前記撮像デバイスに対し、前記ワークの前記対象部位を撮像するよう教示する教示内容を含む、請求項１から６のいずれか１項に記載のロボットプログラミング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークを加工するのに使用されるロボットに対して教示されるロボットプログラムを作成するロボットプログラミング装置に関する。
【背景技術】
【０００２】
ワークを加工するのに使用されるロボットシステムにおいて、ワークの加工部位を撮像する撮像デバイスを備えた構成が公知である。ワークの形状には個体ごとに誤差があるので、撮像デバイスを用いて加工部位を撮像し、得られた画像を処理して、加工プログラムが補正される。特許文献１〜５には、対象物を検出するために視覚センサの位置及び姿勢を決定する種々の技術が開示されている。
【０００３】
特許文献１には、溶接対象部の位置を検出できるように視覚センサの姿勢を制御する姿勢制御方法が開示されている。この技術によれば、ツールが移動しても、検出対象が視覚センサの視野の中心に常に配置されるように視覚センサの姿勢がサンプリング周期毎に制御される。
【０００４】
特許文献２には、マニピュレータの手先に取付けられた視覚センサを検出対象物まで誘導する誘導方法が開示されている。この技術によれば、対象物の概略位置と、予め定められる誘導位置と対象物との間の距離と、に基づいて誘導位置が決定される。
【０００５】
特許文献３には、特許文献２に開示される技術において、視覚センサの誘導位置の周囲に位置する障害物を回避するために、指定されるオフセットに従って視覚センサの誘導位置を補正することが開示されている。
【０００６】
特許文献４には、視覚センサを用いてワークの基準点を撮像する計測プログラムを自動的に作成するように構成されたオフラインプログラミング装置が開示されている。
【０００７】
特許文献５には、所定の目標地点まで移動するように構成された移動ロボットにおいて、現在の位置を推定する目的で周囲の目標物を撮像するように構成された撮像装置の撮像方向を決定する撮像方向決定プログラムが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平６−３２８３８５号公報
【特許文献２】特開２００２−０８６３７６号公報
【特許文献３】特開２００３−１９１１９４号公報
【特許文献４】特開２００７−１６０４８６号公報
【特許文献５】特開２００９−３０３０１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来技術においては、撮像されるべき対象部位を撮像するのに使用される撮像デバイスの位置を決定する必要がある。しかしながら、そのような撮像デバイスの位置を決定するのには通常多大な時間及び労力を要し、作業効率が低下する要因になっていた。そこで、対象部位を撮像デバイスで撮像する際の撮像デバイスの位置を短時間で効率的に決定することが望まれている。
【課題を解決するための手段】
【００１０】
本願に係る１番目の態様によれば、作業空間内に配置されたワークを加工するのに使用されるロボットに対して教示されるロボットプログラムを作成するロボットプログラミング装置であって、前記作業空間を３次元で表現した仮想空間を作成する仮想空間作成部と、前記仮想空間内に配置されるワークのモデルに対し、撮像デバイスによって撮像されるべき対象部位を指定する対象部位指定部と、前記仮想空間内において、前記撮像デバイスによって前記対象部位を撮像する際における前記撮像デバイスの少なくとも１つの位置を決定する位置決定部と、前記位置決定部によって決定される前記撮像デバイスの前記少なくとも１つの位置を記憶する位置記憶部と、前記位置記憶部によって記憶される前記撮像デバイスの前記少なくとも１つの位置に従って、前記撮像デバイスによって前記対象部位を撮像するように前記ロボットに教示される撮像プログラムを作成する撮像プログラム作成部と、を備えており、さらに、前記撮像デバイスが前記位置決定部によって決定される任意の１つの位置に配置されるときに、前記対象部位の全体を撮像可能であるか否かを判定する判定部を備えており、前記位置決定部は、前記判定部によって前記対象部位の全体を撮像可能でないと判定された場合に、前記任意の１つの位置とは異なる前記撮像デバイスの追加の位置を決定するように構成されるとともに、前記撮像デバイスの複数の位置を決定する際に、互いに隣接する各々の前記位置における前記撮像デバイスの視野の範囲が所定の範囲にわたって重なり合うように、前記撮像デバイスの前記複数の位置を決定するように構成されており、さらに、前記撮像プログラムを前記仮想空間内においてシミュレーションすることによって得られる前記対象部位の位置において前記ワークの加工が実行されるように加工プログラムを作成する加工プログラム作成部を備える、ロボットプログラミング装置が提供される。
本願に係る２番目の態様によれば、１番目の態様に係るロボットプログラミング装置において、前記位置決定部は、前記撮像デバイスが前記対象部位に対して所定の位置関係を有するような、前記撮像デバイスの前記少なくとも１つの位置を決定するように構成される。
本願に係る３番目の態様によれば、２番目の態様に係るロボットプログラミング装置において、前記位置決定部は、前記撮像デバイスの視野の範囲を指定する視野指定部を備えており、前記位置決定部は、前記撮像デバイスと前記対象部位との間の前記所定の位置関係、及び前記視野の範囲に基づいて、前記対象部位を全体的に撮像可能であるような、前記撮像デバイスの前記少なくとも１つの位置を決定するように構成される。
本願に係る４番目の態様によれば、２番目又は３番目の態様に係るロボットプログラミング装置において、前記撮像デバイスと前記対象部位との間の前記所定の位置関係は、前記撮像デバイスと前記対象部位との間の距離によって指定される。
本願に係る５番目の態様によれば、４番目の態様に係るロボットプログラミング装置において、前記撮像デバイスと前記対象部位との間の距離は、前記対象部位を含むワークの表面に対して垂直な方向に沿った距離である。
本願に係る６番目の態様によれば、１番目から５番目のいずれかの態様に係るロボットプログラミング装置において、前記対象部位が前記ワークの表面上の点、線又は面である。
本願に係る７番目の態様によれば、１番目から６番目のいずれかの態様に係るロボットプログラミング装置において、前記撮像プログラムは、前記撮像デバイス及び前記ワークのうちの少なくともいずれか一方の位置及び姿勢を制御するロボットに対する教示内容を含む。
本願に係る８番目の態様によれば、１番目から６番目のいずれかの態様に係るロボットプログラミング装置において、前記撮像プログラムは、所定の位置に固定された前記ワークに対して、前記位置決定部によって決定される所定の位置関係を有するように固定された前記撮像デバイスに対し、前記ワークの前記対象部位を撮像するよう教示する教示内容を含む。
【発明の効果】
【００１１】
上記構成を備えたロボットプログラミング装置によれば、対象部位を撮像する際の撮像デバイスの位置が仮想空間内で決定され、その内容に従って撮像プログラムが作成される。ロボットは、教示される撮像プログラムに従って撮像工程を実行する。したがって、操作者は、撮像工程時の撮像デバイスの位置を容易に決定でき、撮像工程を効率的に実行できるようになる。
【図面の簡単な説明】
【００１２】
【図１】作業空間内に配置されたロボット、ワーク、及びロボットに取付けられた撮像デバイスを示す概略図である。
【図２】本発明の一実施形態に係るロボットプログラミング装置の機能ブロック図である。
【図３】仮想空間内に配置されたロボット、撮像デバイス、及びワークの表示例を示す図である。
【図４Ａ】ワークの対象部位の例を示す斜視図である。
【図４Ｂ】ワークの対象部位の例を示す斜視図である。
【図４Ｃ】ワークの対象部位の例を示す斜視図である。
【図５】撮像デバイスの視野を示す概念図である。
【図６Ａ】撮像デバイスの視野領域と対象部位との間の位置関係の例を示す図である。
【図６Ｂ】撮像デバイスの視野領域と対象部位との間の位置関係の例を示す図である。
【図７Ａ】撮像デバイスの視野領域と対象部位との間の位置関係の例を示す図である。
【図７Ｂ】撮像デバイスの視野領域と対象部位との間の位置関係の例を示す図である。
【図８Ａ】複数の位置に配置された撮像デバイスの視野領域が重なる重畳領域分を示す図である。
【図８Ｂ】複数の位置に配置された撮像デバイスの視野領域が重なる重畳領域分を示す図である。
【図９Ａ】重畳条件に従って複数の撮像デバイスの位置を決定する決定方法を説明する図である。
【図９Ｂ】重畳条件に従って複数の撮像デバイスの位置を決定する決定方法を説明する図である。
【図１０】本発明の一実施形態に係るロボットプログラミング装置において実行される処理の流れを示すフローチャートである。
【図１１】作業空間内に配置されたロボット、撮像デバイス及びワークを示す概略図である。
【図１２】作業空間内に配置されたロボット、撮像デバイス及びワークを示す概略図である。
【図１３】作業空間内に配置されたロボット、撮像デバイス及びワークを示す概略図である。
【図１４】作業空間内に配置されたロボット、撮像デバイス及びワークを示す概略図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施形態を説明する。図示される実施形態の構成要素は、本発明の理解を助けるために縮尺が適宜変更されている。
【００１４】
図１は、作業空間内に配置されたロボット１００、ワーク６０、及びロボット１００に取付けられた撮像デバイス５０を示す概略図である。ロボット１００は、アーム１０２の先端の手首１０６に取付けられた加工具１０４を備えている。ロボット１００は、制御装置１１０から教示される制御プログラムに従って動作し、位置及び姿勢を適宜変更できるように形成されている。制御装置１１０は、キーボード、マウスなどの入力手段並びに種々のデータ及びプログラムを記憶する記憶部を備えている。また、制御装置１１０は、ＬＣＤなどの表示部を備えていてもよい。
【００１５】
手首１０６の近傍には、撮像デバイス５０が固定されている。撮像デバイス５０は、例えばＣＣＤなどの撮像素子を有する視覚センサである。撮像デバイス５０は、ロボット１００が動作するのに連動して、その位置及び姿勢が変化するようになっている。
【００１６】
ワーク６０は、ロボット１００の近傍に配置される作業台などの治具７０に固定されている。ワーク６０は、例えば表面を切削して形成される概ね板状の部材である。図示されたワーク６０は、治具７０に固定される下方部６０ａと、治具７０に対する接触面とは反対側に突出する上方部６０ｂと、を有している。ワーク６０は、例えばバリ取り加工を実行するために、ロボット１００の手首１０６に取付けられた加工具１０４の可動範囲内に設置される。
【００１７】
撮像デバイス５０は、例えば加工具１０４によって加工されるべきワーク６０の加工箇所を撮像するために使用される。或いは、撮像デバイス５０は、ワーク６０に形成された穴の位置を正確に検出する目的で使用されてもよい。
【００１８】
本実施形態によれば、ロボット１００が撮像プログラムに従って制御され、撮像デバイス５０が、撮像されるべきワーク６０の対象部位に対して所定の位置に位置決めされる。撮像プログラムは、ロボットプログラミング装置１０によって作成される。ロボットプログラミング装置１０は、ロボット制御装置１１０に内蔵されていてもよいし、或いはロボット制御装置１１０とは別個に設けられてもよい。
【００１９】
図２は、本実施形態に係るロボットプログラミング装置１０の機能ブロック図である。図示されるように、ロボットプログラミング装置１０は、仮想空間作成部１２と、対象部位指定部１４と、視野指定部１６と、判定部１８と、位置決定部２０と、位置記憶部２２と、撮像プログラム作成部２４と、加工プログラム作成部２６と、を備えている。
【００２０】
仮想空間作成部１２は、例えば図１に示されるような作業空間を３次元で表現した仮想空間を作成する機能を有する。仮想空間作成部１２は、予め定められた３次元形状モデルに従って、ロボットモデル（以下、単に「ロボット」と称する。）１００、加工具モデル（以下、単に「加工具」と称する。）１０４、撮像デバイスモデル「以下、単に「撮像デバイス」と称する。）５０、ワークモデル（以下、単に「ワーク」と称する。）６０をそれぞれ仮想空間内に配置できるように構成される。仮想空間作成部１２によって作成される仮想空間及び仮想空間内に配置される各々の要素のモデルは、図示されないＬＣＤなどの表示部に表示される。
【００２１】
図３は、仮想空間内に配置されたロボット１００、撮像デバイス５０、ワーク６０を表示した表示例を示している。撮像工程における撮像デバイス５０の、ワーク６０に対する位置を決定する目的のみを考慮すれば、ロボット１００及び加工具１０４の表示を省略してもよい。また、ワーク６０以外の要素については、３次元の形状モデルの代わりに、簡略化されたモデルが使用されてもよい。例えば、撮像デバイス５０を仮想空間内で表す場合、撮像デバイス５０の位置及び視線方向が視覚的に認識可能であれば、他の任意の簡易モデルを使用してもよい。
【００２２】
対象部位指定部１４は、仮想空間内に配置されるワーク６０（図３参照）に対し、撮像デバイス５０によって撮像されるべき対象部位Ｘを指定する機能を有する。対象部位Ｘは、例えばワーク６０の表面上の点、線又は面である。操作者は、例えば表示部に表示された仮想空間を確認しながら任意の入力手段を用いて対象部位Ｘを指定できる。
【００２３】
図４Ａ〜図４Ｃは、ワーク６０の対象部位Ｘの例を示す斜視図である。図４Ａは、ワーク６０の上方部６０ｂの稜線に沿って定められる対象部位Ｘ１を太線で示している。対象部位Ｘ１は、隣接する始点Ｙ１及び終点Ｙ２を含んでいて概ね閉じた形状を有している。図４Ｂは、ワーク６０の上方部６０ｂの１つの角部に定められる対象部位Ｘ２を黒丸で示している。図４Ｃは、ワーク６０の上方部６０ｂの上面に定められる対象部位Ｘ３を示しており、対象部位にはハッチングが施されている。図４Ｃの例では、ワーク６０の上面全体が対象部位Ｘとして指定されているものの、対象部位Ｘは、上面の一部の範囲にわたって指定されてもよい。
【００２４】
視野指定部１６は、撮像デバイス５０の視野領域ＶＡを指定する機能を有する。図５は、撮像デバイス５０の視野Ｖを示す概念図である。図５に示されるように、視野Ｖは、例えば撮像デバイス５０の視線ＶＯを中心軸線とする四角錐の形状モデルとして仮想空間内に定義される。四角錐の代わりに、円錐又は円柱の形状モデルが使用されてもよい。視野領域ＶＡは、例えば視野Ｖの高さＨだけ撮像デバイス５０から離間していて視線ＶＯに対して垂直に延在する平面上の視野Ｖの範囲を表す。視野領域ＶＡの寸法は、例えば第１の辺Ｓ１の寸法及び第１の辺Ｓ１に対して垂直な方向に延在する第２の辺Ｓ２の寸法を指定することによって決定される。或いは、撮像デバイス５０の焦点距離、撮像される画像のサイズ（ピクセル数）、視野の高さＨなどの情報を入力し、それら情報から視野領域ＶＡの寸法を算出してもよい。
【００２５】
位置決定部２０は、仮想空間内において、撮像デバイス５０によってワーク６０の対象部位Ｘを撮像する際における撮像デバイス５０の位置を決定する機能を有する。例えば対象部位Ｘとして連続した線が指定される場合（図４Ａ参照）、撮像デバイス５０の視野領域ＶＡが、ワーク６０の上方部６０ｂの上面と同一平面上にあり、かつ視野領域ＶＡの中心が対象部位Ｘの始点（図４Ａの符号「Ｙ１」）に一致するように、撮像デバイス５０の位置が決定される。具体的には、位置決定部２０は、ワーク６０の形状情報から対象部位Ｘを含むワーク６０の表面に対する法線方向を取得し、対象部位Ｘの始点からこの法線方向に視野の高さＨだけ離間した位置を撮像デバイスの位置として決定する。
【００２６】
また、対象部位Ｘが点である場合（図４Ｂ参照）、例えば視野領域ＶＡの中心が対象部位Ｘに一致するように撮像デバイス５０の位置が決定される。対象部位Ｘが面である場合（図４Ｃ参照）、例えば視野領域ＶＡの中心が対象部位Ｘの中心に一致するように撮像デバイス５０の位置が決定される。このように、位置決定部２０は、対象部位Ｘと撮像デバイス５０との間の距離を指定することによって、対象部位Ｘに対する撮像デバイス５０の位置を決定できるように構成される。
【００２７】
判定部１８は、視野指定部１６によって指定される視野領域ＶＡと、位置決定部２０によって決定される撮像デバイス５０の位置と、に基づいて、撮像デバイス５０が対象部位Ｘの全体を撮像可能であるか否かを判定する機能を有する。このとき、例えばワーク６０の対象部位が線又は面である場合、対象部位は複数の点の集合に変換され、判定部１８は、対象部位Ｘに対応する各々の点が視野領域ＶＡの範囲内に含まれるか否かによって、上記判定処理を実行する。
【００２８】
図６Ａ及び図６Ｂは、撮像デバイス５０の視野領域ＶＡと対象部位Ｘとの間の位置関係の例を示す図である。図６Ａ及び図６Ｂは、図４Ａに示されるようなワーク６０の稜線が対象部位Ｘとして指定される場合を示している。撮像デバイス５０は、撮像デバイス５０の視野領域ＶＡの中心が対象部位の始点Ｙ１に一致するように、かつ撮像デバイス５０が始点Ｙ１からワーク６０の表面に対する法線方向に視野Ｖの高さＨだけ離間した位置に配置される。
【００２９】
図６Ｂから分かるように、太線で表される矩形の四辺である対象部位Ｘは、その全体が視野領域ＶＡの範囲内に含まれる。すなわち、判定部１８は、この位置に配置された撮像デバイス５０によって対象部位Ｘの全体を撮像できると判定する。したがって、この場合、位置決定部２０による撮像デバイス５０の位置を決定する工程が完了し、そのときの撮像デバイス５０の位置を位置記憶部２２に出力する。
【００３０】
図７Ａ及び図７Ｂは、撮像デバイス５０の視野領域ＶＡと対象部位Ｘとの間の位置関係を示す図である。この場合、図７Ｂに示されるように、対象部位Ｘの一部しか視野領域ＶＡの範囲内に含まれていない。したがって、判定部１８は、撮像デバイス５０によって対象部位Ｘの全体を撮像できないと判定する。この場合、位置決定部２０は、撮像デバイス５０の追加の位置を決定する。すなわち、撮像工程において、撮像デバイス５０は、複数の異なる位置から対象部位Ｘを撮像することになる。
【００３１】
対象部位Ｘを撮像するための撮像デバイス５０の追加の位置は、位置決定部２０によって、例えば視野領域ＶＡが重なる重畳領域Ｚの大きさに従って順次決定される。図８Ａ及び図８Ｂは、複数の位置に配置された撮像デバイス５０の視野領域ＶＡの重畳領域Ｚを示す図である。図８Ａ及び図８Ｂには、第１の視野Ｖ１を有する第１の位置に配置された撮像デバイス５０１と、第２の視野Ｖ２を有する第２の位置に配置された撮像デバイス５０２とが、それぞれ示されている。そして、第１の視野Ｖ１の視野領域ＶＡ１と、第２の視野Ｖ２の視野領域ＶＡ２とが重なり合う重畳領域Ｚが示されている。
【００３２】
重畳領域Ｚは、例えば第１の方向の寸法Ｚ１及び第１の方向に対して垂直な第２の方向の寸法Ｚ２の少なくともいずれか一方が所定の閾値未満になるように設定される。或いは、重畳領域Ｚの面積が所定の閾値未満になるように設定されてもよい。すなわち、位置決定部２０は、重畳領域Ｚの寸法Ｚ１，Ｚ２又は面積を閾値と比較しながら、所定の重畳条件を満足するような撮像デバイス５０の追加の位置を順次決定する。
【００３３】
図９Ａ及び図９Ｂは、重畳条件に従って複数の撮像デバイス５０の位置を決定する決定方法を説明する図である。図９Ａには、第１の位置に配置される撮像デバイス５０の視野領域ＶＡ１と、第２の位置に配置される撮像デバイス５０の視野領域ＶＡ２と、がそれぞれ破線で表されている。また、それら視野領域ＶＡ１，ＶＡ２が重なり合う重畳領域Ｚにはハッチングが施されている。
【００３４】
第１の視野領域ＶＡ１の中心ＶＣ１は、対象部位Ｘの始点（図４Ａの符号「Ｙ１」）に一致している。また、第２の視野領域ＶＡ２の中心ＶＣ２は、対象部位Ｘの線上に位置している。したがって、位置決定部２０は、撮像デバイス５０が、第１の視野領域ＶＡ１を有する位置から第２の視野領域ＶＡ２を有する位置まで、視野領域の中心が対象部位Ｘの線上に位置する状態を維持しながら移動すると仮定して、重畳領域Ｚの寸法又は面積を計算する。そのようにして、例えば重畳領域Ｚの寸法Ｚ２が所定の閾値よりも小さくなる位置、すなわち視野領域ＶＡ２に対応する位置が計算される。
【００３５】
図９Ｂには、第２の位置に配置される撮像デバイス５０の視野領域ＶＡ２と、第３の位置に配置される撮像デバイス５０の視野領域ＶＡ３と、がそれぞれ破線で示されている。視野領域ＶＡ３の中心ＶＣ３は、対象部位Ｘの線上に位置している。位置決定部２０は、視野領域の中心が対象部位Ｘの線に沿うように撮像デバイス５０が移動すると仮定して、重畳領域Ｚの寸法又は面積を計算する。そして、例えば重畳領域Ｚの寸法Ｚ１が所定の閾値よりも小さくなる位置である視野領域ＶＡ３が計算される。
【００３６】
位置決定部２０は、図９Ａ及び図９Ｂを参照して説明した位置決定工程を繰り返し、対象部位Ｘの全体が撮像されるような撮像デバイス５０の複数の位置を決定する。そして、各々の撮像デバイス５０の位置は、位置決定部２０から位置記憶部２２に出力され、格納される。
【００３７】
撮像プログラム作成部２４は、位置記憶部２２に記憶される撮像デバイス５０の位置情報に従って、ロボット１００に教示される撮像プログラムを作成する機能を有する。すなわち、撮像プログラムには、対象部位Ｘを撮像可能な位置まで撮像デバイス５０を位置決めするとともに、対象部位Ｘの撮像を実行する教示内容が含まれる。
【００３８】
加工プログラム作成部２６は、ワーク６０を加工する加工プログラムを作成する機能を有する。加工プログラム作成部２６は、撮像プログラムを仮想空間内においてシミュレーションした結果として得られる対象部位Ｘの位置に基づいて、対象部位Ｘを加工する加工プログラムを作成する。或いは、加工プログラム作成部２６は、撮像プログラムを実際の作業空間内において実行し、その結果として得られる対象部位Ｘの画像を処理して、加工プログラムを作成する。加工プログラムには、対象部位Ｘに対応する位置に加工具１０４を位置決めするとともに、加工を実行する内容が含まれる。
【００３９】
図１０は、本発明の一実施形態に係るロボットプログラミング装置１０において実行される処理の流れを示すフローチャートである。なお、説明の便宜上、各々の工程を順番に説明するものの、工程の順番を限定する意図ではないことを当業者は理解するであろう。また、幾つかの工程を同時に並行して実行してもよいことを当業者は理解するであろう。
【００４０】
先ず、ステップＳ１において、仮想空間作成部１２が仮想空間を作成する。また、その仮想空間内に、ワーク６０の３次元形状モデルを少なくとも含む、各々の要素のモデルが仮想空間内に配置される（図３参照）。
【００４１】
ステップＳ２では、対象部位指定部１４が、仮想空間内のワーク６０のモデルに対して、撮像デバイス５０により撮像されるべき対象部位Ｘを指定する。このとき、対象部位Ｘは、例えばワーク６０に対して定義されるワーク座標系において指定される。そして、ステップＳ３において、ワーク座標系と基準座標系との間の位置関係と、ワーク座標系における対象部位Ｘの位置と、に基づいて基準座標系における対象部位Ｘの位置が算出される。
【００４２】
さらに、ステップＳ４において、視野指定部１６が、撮像デバイス５０の視野領域ＶＡを指定する。ステップＳ５では、撮像デバイス５０と対象部位Ｘとの間の位置関係が指定される。ステップＳ４及びステップＳ５で指定される情報は、例えば操作者によって入力され、位置決定部２０で実行される計算に使用される。代替的な実施形態においては、視野領域ＶＡ、及び撮像デバイス５０と対象部位Ｘとの間の位置関係は、撮像デバイス５０固有の情報、例えば焦点距離、撮像される画像のサイズ、及び視野の高さなどの情報に基づいて自動的に算出されてもよい。
【００４３】
次いで、ステップＳ６において、位置決定部２０が、ステップＳ３で算出された対象部位Ｘの位置と、ステップＳ４で指定された視野領域ＶＡと、ステップＳ５で指定された撮像デバイス５０と対象部位Ｘとの間の位置関係と、に基づいて、対象部位Ｘを撮像するための撮像デバイス５０の位置を決定する。
【００４４】
続いてステップＳ７において、判定部１８が、ステップＳ６で決定された位置に配置された撮像デバイス５０によって対象部位Ｘの全体を撮像可能であるか否かが判定される。
【００４５】
ステップＳ７において対象部位Ｘの全体を撮像可能ではないと判定された場合、ステップＳ８に進み、位置決定部２０が、次に撮像工程を実行すべき撮像デバイス５０の位置を決定する。ステップＳ８において決定される追加の撮像デバイス５０の位置は、例えば、前述したように、直前の位置における撮像デバイス５０の視野領域ＶＡに対して所定の重畳条件を満足する位置である。ステップＳ７及びそれに続くステップＳ８は、ステップＳ７において対象部位Ｘの全体を撮像可能であると判定されるまで繰返される。
【００４６】
他方、ステップＳ７において対象部位Ｘの全体を撮像可能であると判定された場合、ステップＳ９に進む。ステップＳ９では、位置記憶部２２が、ステップＳ６、及び該当する場合はステップＳ８において決定された撮像デバイス５０の位置を記憶する。
【００４７】
次いで、ステップＳ１０において、撮像プログラム作成部２４が、ステップＳ９で記憶された撮像デバイス５０の位置に基づいて、ロボット１００に対する撮像プログラムを作成する。作成された撮像プログラムは、ロボット１００を制御する制御装置１１０（図１）に送られる。例えば、図１に示されるように、撮像デバイス５０がロボット１００の手首１０６の近傍に固定される場合、ロボット１００が撮像デバイス５０を撮像プログラムによって教示される位置に位置決めする。
【００４８】
図１１〜図１４は、別の構成例における作業空間に配置されたロボット１００、撮像デバイス５０及びワーク６０を示す概略図である。図１１に示される構成例によれば、撮像デバイス５０が治具７２に固定されるとともに、ワーク６０が治具７４を介してロボット１００の手首１０６に固定される。この場合、ロボット１００は、撮像プログラムによって教示される位置にワーク６０を位置決めし、それにより、撮像デバイス５０によって対象部位Ｘを撮像可能になるようなワーク６０と撮像デバイス５０との間の位置関係が実現される。
【００４９】
図１２に示される構成例によれば、撮像デバイス５０がロボット１００の手首１０６に固定されるとともに、ワーク６０が治具７４を介して可動装置７６に固定される。可動装置７６は、例えば１つ又は２つ以上の電気モータによって駆動されるボールねじなどの可動機構部を備えたロボット以外の任意の可動手段である。可動装置７６は、ワーク６０の位置及び姿勢の少なくともいずれか一方を変更できるようになっている。或いは、図示されないものの、ワーク６０がロボット１００の手首１０６に固定されるともに、撮像デバイス５０がそのような可動要素に固定されてもよい。いずれの場合も、ロボット１００が撮像プログラムの教示内容に従って制御され、撮像デバイス５０がワーク６０の対象部位Ｘを撮像できるようなワーク６０と撮像デバイスとの間の位置関係を実現する。
【００５０】
図１３に示される構成例によれば、撮像デバイス５０及びワーク６０が互いに別個のロボット１００の手首１０６にそれぞれ固定されている。この場合も他の例と同様に、それらロボット１００の少なくともいずれか一方が撮像プログラムの教示内容に従って制御され、撮像デバイス５０がワーク６０の対象部位Ｘを撮像できるようなワーク６０と撮像デバイス５０との間の位置関係を実現する。
【００５１】
図１４に示される構成例によれば、撮像デバイス５０が治具７２に固定されるとともに、ワーク６０が治具７０に固定されている。この場合、位置決定部２０によって決定される撮像デバイス５０の撮像時の位置から、撮像デバイス５０とワーク６０との間の位置関係を求め、それに従って、撮像デバイス５０を固定する治具７２の位置及び姿勢のいずれか一方が調整される。そして、撮像プログラムに従って、撮像デバイス５０が起動され、ワーク６０の対象部位Ｘが撮像される。
【００５２】
以上、本発明の種々の実施形態及び変形例を説明したが、他の実施形態及び変形例によっても本発明の意図される作用効果を奏することができることは当業者に自明である。特に、本発明の範囲を逸脱することなく前述した実施形態及び変形例の構成要素を削除ないし置換することが可能であるし、公知の手段をさらに付加することが可能である。また、本明細書において明示的又は暗示的に開示される複数の実施形態の特徴を任意に組合せることによっても本発明を実施できることは当業者に自明である。
【符号の説明】
【００５３】
１０    ロボットプログラミング装置
１２    仮想空間作成部
１４    対象部位指定部
１６    視野指定部
１８    判定部
２０    位置決定部
２２    位置記憶部
２４    撮像プログラム作成部
２６    加工プログラム作成部
５０    撮像デバイス
６０    ワーク
７０    治具
７２    治具
７４    治具
７６    可動装置
１００    ロボット
１０２    アーム
１０４    加工具
１０６    手首
１１０    制御装置
Ｖ    視野
ＶＡ    視野領域
Ｘ    対象部位
Ｘ１    対象部位
Ｘ２    対象部位
Ｘ３    対象部位
【図１】
0005850958.tif 000002
【図２】
0005850958.tif 000003
【図３】
0005850958.tif 000004
【図４Ａ】
0005850958.tif 000005
【図４Ｂ】
0005850958.tif 000006
【図４Ｃ】
0005850958.tif 000007
【図５】
0005850958.tif 000008
【図６Ａ】
0005850958.tif 000009
【図６Ｂ】
0005850958.tif 000010
【図７Ａ】
0005850958.tif 000011
【図７Ｂ】
0005850958.tif 000012
【図８Ａ】
0005850958.tif 000013
【図８Ｂ】
0005850958.tif 000014
【図９Ａ】
0005850958.tif 000015
【図９Ｂ】
0005850958.tif 000016
【図１０】
0005850958.tif 000017
【図１１】
0005850958.tif 000018
【図１２】
0005850958.tif 000019
【図１３】
0005850958.tif 000020
【図１４】
0005850958.tif 000021