(57)【特許請求の範囲】
【請求項１】
ロボット、ワーク及び視覚センサの３次元モデルをそれぞれ仮想ロボット、仮想ワーク及び仮想視覚センサとして画面上に表示し、ロボットがワークに対して加工を行うための加工用プログラムを作成する加工用ロボットプログラム作成装置において、
画面上で前記仮想ワークの３次元モデルに対して加工線を指定する加工線指定手段と、
前記仮想ワーク及び実在のワークの各部位を、それぞれ前記仮想視覚センサ及び実在の視覚センサで検出するための画像検出モデルを生成するために、前記加工線を複数の部分に分割する加工線分割手段と、
前記仮想視覚センサを仮想カメラとして前記仮想ワークの３次元モデルを撮像して得られるグラフィック画像において、前記加工線分割手段により分割された加工線の各部分を各々が含む複数の検出範囲を求める検出範囲決定手段と、
前記加工線分割手段により分割された加工線の各部分を加工するための教示点を生成する教示点生成手段と、
前記検出範囲決定手段により求めた前記グラフィック画像の各検出範囲に対応する前記仮想ワーク及び実在のワークの各部位を、それぞれ前記仮想視覚センサ及び実在の視覚センサで検出するための画像検出モデルを、前記グラフィック画像において該検出範囲毎に生成する画像検出モデル生成手段と、
前記仮想視覚センサにて前記仮想ワークを撮像したグラフィック画像を取り込み、前記画像検出モデルに対応した仮想ワーク部位の位置及び姿勢を検出し、かつ実在の視覚センサにて加工予定の実在のワークを実際に撮像した画像を取り込み、前記画像検出モデルに対応した実在のワーク部位の位置及び姿勢を検出する検出手段と、
前記画像検出モデル毎に、該画像検出モデルに対応した仮想ワーク部位の検出された位置及び姿勢と、該画像検出モデルに対応した実在のワーク部位の実際に検出された位置及び姿勢との間の変化量を計算する変化量計算手段と、
前記画像検出モデル毎に、該画像検出モデルに対応する検出範囲に含まれる教示点の位置及び姿勢を前記変化量により補正する補正手段と、
を備えたことを特徴とする、加工用ロボットプログラム作成装置。
【請求項２】
実在の視覚センサをロボットに装着して用いる場合に、前記視覚センサが加工予定の実在のワークを撮像可能な位置にロボットを移動するため、撮像対象である前記ワークの３次元モデルを仮想ワークとして指定し、前記仮想視覚センサが前記仮想ワークの３次元モデルの加工面に対し平行となる位置及び姿勢に仮想ロボットを移動し、前記仮想視覚センサで前記仮想ワークの３次元モデルの中心を撮像する位置及び姿勢を、前記仮想視覚センサの３次元モデルと前記仮想ワークの３次元モデルとの相対位置関係に基づいて計算し、前記仮想視覚センサが前記仮想ワークの３次元モデル全体を撮像するための教示点を生成して、撮像手段移動用ロボットプログラムを生成する手段をさらに備えた、請求項１に記載の加工用ロボットプログラム作成装置。
【請求項３】
ワークの基準面からの該ワークの加工面の高さを前記視覚センサにより検出し、該検出結果に基づいて加工用ロボットプログラムの教示点の位置、及び該教示点でのロボットのツールの姿勢を自動修正する手段をさらに備えた、請求項１又は２に記載の加工用ロボットプログラム作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを用いてバリ取り等の加工を行うための加工用ロボットプログラムの作成装置に関する。
【背景技術】
【０００２】
従来、視覚センサを有するロボットシステムでワークの位置姿勢を検出して加工を行う場合、ワークの形状の特徴的な箇所を視覚センサで撮像し、基準となるワーク画像との間の位置の変化量を計算して、加工用プログラムの各教示点を補正することによりワークの配置誤差を吸収する加工が行なわれていた。
【０００３】
またロボットに視覚センサを装着してワークの撮像を行う場合、撮像位置にロボットを移動させるプログラムを作成するために、視覚センサがワークを撮像できる位置姿勢をジョグ操作等により微調整しながら行う技術もある。さらに、ワーク加工面の基準面に対する高さを視覚センサで検出せず、ロボットのツールの位置姿勢を修正せずにワークに対して加工を行うという方法もある。
【０００４】
またバリ取りをロボットで行う技術に関しても、種々の提案がなされている。例えば特許文献１には、ワークの理想形状等の設計情報を活用して、バリの発生するワークの領域のみを視覚認識できるバリ取り方法及び装置が開示されている。また特許文献２には、作業の簡素化・オフライン化を図るべく、ＣＡＤシステム等で作成した自由曲線部分を有する図面情報をもとにロボットの経路を生成する技術が開示されている。さらに特許文献３には、複雑な形状の稜線をもった多種類のワークを対象として、バリ取り／磨き作業のための経路教示データを生成する技術が開示されている。
【０００５】
【特許文献１】特開平５−３１６５９号公報
【特許文献２】特開平５−１６５５０９号公報
【特許文献３】特開平５−２３３０４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の技術では、視覚センサでワークの位置及び姿勢を検出し、ワークの配置誤差を考慮して加工を行うことは可能であるが、ワーク自体の製作誤差すなわち形状誤差まで考慮して加工を行うことはできず、故にロボットのツールが実際のワーク形状に沿うように正確に加工を行う事ができなかった。
【０００７】
またロボットに視覚センサを装着してワークの撮像を行う場合、撮像位置を決定するためにロボットの位置及び姿勢を微調整しながら教示を行う必要があり、非常に工数がかかる。
【０００８】
さらに、ロボットのツールの位置及び姿勢を修正せずに加工を行う場合は、ツールとワークが干渉して加工できない場合がある。
【０００９】
そこで本発明は、視覚センサを有するロボットシステムについて、ワークの形状誤差を吸収できるとともに、教示作業に要する工数の大幅な削減に寄与する加工用ロボットプログラム作成装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、請求項１に記載の発明は、ロボット、ワーク及び視覚センサの３次元モデルをそれぞれ仮想ロボット、仮想ワーク及び仮想視覚センサとして画面上に表示し、ロボットがワークに対して加工を行うための加工用プログラムを作成する加工用ロボットプログラム作成装置において、画面上で前記仮想ワークの３次元モデルに対して加工線を指定する加工線指定手段と、前記仮想ワーク及び実在のワークの各部位を、それぞれ前記仮想視覚センサ及び実在の視覚センサで検出するための画像検出モデルを生成するために、前記加工線を複数の部分に分割する加工線分割手段と、前記仮想視覚センサを仮想カメラとして前記仮想ワークの３次元モデルを撮像して得られるグラフィック画像において、前記加工線分割手段により分割された加工線の各部分を各々が含む複数の検出範囲を求める検出範囲決定手段と、前記加工線分割手段により分割された加工線の各部分を加工するための教示点を生成する教示点生成手段と、前記検出範囲決定手段により求めた前記グラフィック画像の各検出範囲に対応する前記仮想ワーク及び実在のワークの各部位を、それぞれ前記仮想視覚センサ及び実在の視覚センサで検出するための画像検出モデルを、前記グラフィック画像において該検出範囲毎に生成する画像検出モデル生成手段と、前記仮想視覚センサにて前記仮想ワークを撮像したグラフィック画像を取り込み、前記画像検出モデルに対応した仮想ワーク部位の位置及び姿勢を検出し、かつ実在の視覚センサにて加工予定の実在のワークを実際に撮像した画像を取り込み、前記画像検出モデルに対応した実在のワーク部位の位置及び姿勢を検出する検出手段と、前記画像検出モデル毎に、該画像検出モデルに対応した仮想ワーク部位の検出された位置及び姿勢と、該画像検出モデルに対応した実在のワーク部位の実際に検出された位置及び姿勢との間の変化量を計算する変化量計算手段と、前記画像検出モデル毎に、該画像検出モデルに対応する検出範囲に含まれる教示点の位置及び姿勢を前記変化量により補正する補正手段と、を備えたことを特徴とする、加工用ロボットプログラム作成装置を提供する。
【００１１】
請求項２に記載の発明は、請求項１に記載の加工用ロボットプログラム作成装置において、実在の視覚センサをロボットに装着して用いる場合に、前記視覚センサが加工予定の実在のワークを撮像可能な位置にロボットを移動するため、撮像対象である前記ワークの３次元モデルを仮想ワークとして指定し、前記仮想視覚センサが前記仮想ワークの３次元モデルの加工面に対し平行となる位置及び姿勢に仮想ロボットを移動し、前記仮想視覚センサで前記仮想ワークの３次元モデルの中心を撮像する位置及び姿勢を、前記仮想視覚センサの３次元モデルと前記仮想ワークの３次元モデルとの相対位置関係に基づいて計算し、前記仮想視覚センサが前記仮想ワークの３次元モデル全体を撮像するための教示点を生成して、撮像手段移動用ロボットプログラムを生成する手段をさらに備えた、加工用ロボットプログラム作成装置を提供する。
【００１２】
請求項３に記載の発明は、請求項１又は２に記載の加工用ロボットプログラム作成装置において、ワークの基準面からの該ワークの加工面の高さを前記視覚センサにより検出し、該検出結果に基づいて加工用ロボットプログラムの教示点の位置、及び該教示点でのロボットのツールの姿勢を自動修正する手段をさらに備えた、加工用ロボットプログラム作成装置を提供する。
【発明の効果】
【００１３】
本発明に係る加工用ロボットプログラム作成装置によれば、仮想カメラにより得られたワークの画像検出モデルと実際に視覚センサで得られた加工対象であるワークの画像とを比較して位置及び姿勢の変化量を求め、さらにその変化量に基づいて教示点を補正するので、実際のワークの形状誤差を吸収し、ワーク形状に沿った加工を可能とする加工用プログラムを作成することができる。
【００１４】
視覚センサをロボットに装着して用いる場合について、ロボットに装着された視覚センサがワークを撮像するための教示点を生成することにより、教示作業に要する工数を大幅に削減することが可能となる。
【００１５】
ワークの加工面の基準面からの高さを視覚センサにより検出し、検出結果に基づいて教示点の位置及び姿勢を自動修正することにより、ロボットのツールとワークが干渉することを回避して加工を行うことが可能となる。
【発明を実施するための最良の形態】
【００１６】
本発明に係る加工用ロボットプログラム作成装置は、具体的には図１に略示するようなパーソナルコンピュータ（以降、ＰＣと略称）１０である。ＰＣ１０は、その表示画面１２上に略示したロボット１４、ロボット１４に取り付けられて加工を行うためのツール１６、加工対象であるワーク１８、ワークを載置する架台又はジグ２０、及びワーク１８をＰＣ上で撮像する仮想カメラを有する視覚センサ２２の３次元モデルを表示することができる。またＰＣ１０は、仮想カメラ２２で撮像したワーク１８の３次元モデルのグラフィック画像（図示例ではワーク１８を上からみた画像）２４も画面１２上に表示することができる。なお図示例でのワーク１８は、他の種類のワークと区別するための特徴形状として２つの孔２６を有し、さらに実際にツール１６でバリ取り等の加工を行う際の加工部位（加工線）２８を有するものとする。
【００１７】
次に、図２のフローチャートを参照しつつ、ＰＣ１０が行う処理の流れを説明する。先ずステップＳ１において、図１に示したようにロボット１４等の３次元モデルを画面上に配置し、レイアウトを作成する。次にステップＳ２において、ワーク１８に対し実際にツール１６で加工する際のワーク上の加工線２８を指定する。
【００１８】
次のステップＳ３では、図３に示すように、加工線２８をその形状に基づいていくつかの部分に分割する。具体的には、加工線２８を角部分、直線部分及び曲線部分等の単純形状の要素に分割する。図３の例では、加工線２８は４つの直線部分２８ａと、４つの丸みを有する角部分２８ｂとに分割されている。
【００１９】
次のステップＳ４では、上記のレイアウトにおいて、仮想カメラ２２からみたときのワーク１８のグラフィック画像を画面上に表示する。次に、ステップＳ３で分割された加工線の各部分を含むように、仮想カメラ２２からみたグラフィック画像に対して検出範囲を決定する（ステップＳ５）。ここで、後の処理において分割された部分毎に加工線内に含まれる教示点を補正する関係上、検出範囲は各部分と１対１に対応することが望ましい。
【００２０】
次のステップＳ６では、ステップＳ５で得られた検出範囲を実際にカメラ等の視覚センサで検出するために、図４に示すように、仮想カメラ２２からみたワーク１８のグラフィック画像２４に対して、各検出範囲を含む画像検出モデルを順次生成する。画像検出モデルは、図４において二重枠で示すように、ワーク１８の特徴形状２６を検出するためのモデル３０と、各検出範囲を検出するためのモデル３２ａ〜３２ｈとから構成される。
【００２１】
次のステップＳ７では、実際にロボットがワークに対して加工を行うためのプログラムを作成するために、例えば図５に示すように、ワーク１８の加工線２８の各部分をそれぞれ加工するための教示点のデータを含む加工用プログラムを生成する。図５の例では、直線部分２８ａ及び角部分２８ｂにそれぞれ１つ及び３つの教示点が設定され、各教示点の位置及び各教示点位置での加工速度等を指定する命令文を含む加工用プログラムが生成される。なお教示点は、各部分の形状に応じて自動的に設定されるようにしてもよいし、オペレータがマウスクリック等の操作で適宜入力指定するようにしてもよい。
【００２２】
次のステップＳ８では、図６に示すように、仮想カメラ２２に対応するカメラ等の視覚センサ２２′を用いて、加工対象であるワーク１８′をステップＳ１で作成したレイアウトと同様の位置関係で実際に撮像し、ステップＳ６で生成された検出モデルに対応した各部位の位置及び姿勢を検出するための検出用プログラムを作成する。またこの検出用プログラムを呼び出す命令を、上述の加工用プログラムに挿入する。また図６は、視覚センサにより得られる画像及び検出用プログラム（ここでは仮にプログラム名「ＶＩＳＩＯＮ」とする）を加工用プログラムに挿入した例を示す。
【００２３】
次のステップＳ９では、視覚センサで実際に撮像し撮り込んだワークの画像と、画像検出モデルとの間の各部位における位置及び姿勢の変化量を計算して取得する命令を作成し、加工用プログラムに追加する。変化量を計算し取得する方法としては、ワークの各部位の位置及び姿勢を検出する検出用プログラム内で位置及び姿勢の変化量を補正データとして命令により取得する方法と、図７に示す各部位の位置及び姿勢を計算する位置姿勢計算用プログラム（ここでは仮にプログラム名「ＣＡＬＣ」とする）を生成し、このプログラムを呼び出す命令を加工用プログラムに挿入する方法とがある。図７の例では、画像検出モデル３２ｈにおいて、視覚センサ２２′で撮像した実際のワーク１８′のグラフィック画像２４′に含まれる加工線２８′が、仮想カメラにより得られた加工線２８と位置又は姿勢が異なっていたものとする。このような場合に、上述の計算用プログラム「ＣＡＬＣ」において、検出モデル３２ｈ内の各教示点又は加工線上のいくつかの所定点についてグラフィック画像２４と２４′との差すなわち変化量を計算する。
【００２４】
最後のステップＳ１０では、ステップＳ９で求めた変化量に基づいて、角部分又は直線部分等の各部分を加工するための教示点を補正する補正命令を加工用プログラムに追加する。これにより、各部分におけるワークに対するツールの実際の軌跡が補正される。
【００２５】
本発明によれば、仮想カメラで撮像したワークの３次元モデルの画像検出モデルと、実際にカメラで撮像した加工対象であるワークの画像とを比較して位置及び姿勢の変化量を求め、さらにその変化量に基づいて教示点を補正するので、ワークが実際には形状誤差を含む場合であっても、その形状誤差を吸収して所望の加工線に正確に沿った加工を行うことができ、加工精度を大幅に高めることが可能となる。
【００２６】
上述の実施形態では、加工を行うロボットとワークを撮像する視覚センサとは別個に配置されるが、図８に示す好適な変形例のように、ワーク１８を加工するロボット１２にカメラ２２等の撮像手段を取り付けてカメラの位置調整を行うこともできる。この場合、本発明に係る加工用ロボットプログラム作成装置は、ロボットを用いた撮像手段移動用プログラムをさらに作成することができる。以下、その処理について図９のフローチャートを参照しつつ説明する。
【００２７】
先ずステップＳ２１において、撮像対称であるワークの３次元モデルをＰＣ１０上で指定する。この指定方法としては、例えばＰＣ１０の画面１２に表示されたいくつかのワークのうち対象となるワークをマウス操作でクリックする方法がある。
【００２８】
次にステップＳ２２において、図１０に示すように、指定したワーク１８の３次元モデルに対し、ロボット１４のハンド先端に取り付けられた視覚センサの仮想カメラ２２がワーク１８の略真上に位置し、かつカメラの姿勢がワーク１８の加工面３４と平行になるようにロボット１４を移動させる。ここでカメラ２２が上述のような位置及び姿勢をとるためのキャリブレーションは、ワーク加工面３４と平行であるＸＹ平面を有するユーザ座標系３６（図１０ではＸ、Ｚ軸のみ概略図示）を基準として行うことが好ましい。
【００２９】
次に、仮想カメラ２２からみたワーク１８の３次元モデルのグラフィック画像をＰＣ１０の画面１２に表示し（ステップＳ２３）、ワーク加工面３４が画像の中心に位置するように仮想カメラ２２の水平位置を調整する（ステップＳ２４）。具体的には、図１１に示すように、ワーク加工面３４の中心座標（例えば重心）と仮想カメラ２２の画像中心（例えばレンズ中心）とのずれｄを計算し、加工面３４の中心が仮想カメラ２２からみたワーク１８の３次元モデルのグラフィック画像において中心に位置するように、ロボットの位置及び姿勢を調整する。
【００３０】
次のステップＳ２５では、図１２に示すように、ロボット１２を操作して仮想カメラ２２の高さを予め設定した値ｈに調整する。ワーク加工面３４から仮想カメラ２２までの高さｈは、仮想カメラ２２によりワーク１８全体を撮像できるように設定されるが、ユーザ又はオペレータが設定してもよいし、経験や計算から定めてもよい。
【００３１】
仮想カメラ２２によりワーク１８全体を撮像できるロボット１４の位置及び姿勢が決定したら、ロボット１４をその決定した位置及び姿勢に移動させる撮像手段移動用プログラムを作成する（ステップＳ２６）。さらに、決定した位置及び姿勢において教示点を生成する。
【００３２】
最後に、撮像対象のワークを実際にカメラ等の視覚センサで撮像して検出するための命令又はプログラムを作成し、上述の撮像手段移動用プログラムに挿入する（ステップＳ２７）。
【００３３】
なお加工対象であるワークやツールの形状によっては、各教示点におけるツールの位置及び姿勢を修正しなければならない場合がある。例えば、ワーク１８が図１３に示すような段差を有する場合、ツール１６を上段の加工面３４に当接させて加工しようとすると、ツール１６の姿勢によってはツールが下段の基準面３８に干渉する虞がある。このような場合、ツール１６の姿勢を変更しなければならない。そこで以下に、教示点でのツールの位置及び姿勢を修正する手段について、図１４のフローチャートを参照しつつ説明する。
【００３４】
先ずステップＳ３１において、上述のステップＳ２と同様にワーク１８の加工線２８を指定し、加工線２８上の教示点のデータを含む加工用プログラムを生成する。教示点は例えば、図５に示したものと同様に、角部分及び直線部分にはそれぞれ３つ及び１つ設定され、各教示点の位置及び各教示点位置での加工速度等を指定する命令文を含む加工用プログラムが生成される。
【００３５】
次のステップＳ３２では、仮想カメラ２２からみたときのワーク１８の３次元モデルのグラフィック画像をＰＣ１０の画面１２上に表示する。なお仮想カメラ及びワークの配置は、図１に示したものと同様でよい。
【００３６】
次のステップＳ３３では、仮想カメラ２２からみたワーク１８の３次元モデルのグラフィック画像２４に対して、ワークの基準面及び加工面を含む画像検出モデルを生成する。具体的には、画像検出モデルは、図１５に二重枠で示すように、ワーク１８のグラフィック画像２４の特徴部分２６を検出するためのモデル４０と、ワークの加工面３４を検出するためのモデル４２と、ワークの基準面３８を検出するためのモデル４４とから構成される。また基準面３８に対する加工面３４の高さは、ワークの３次元モデルから取得することができる。
【００３７】
次のステップＳ３４では、図１６に示すように、加工予定のワーク１８′を実際にカメラ等の視覚センサ２２′で撮像し、取り込んだ画像２４′からステップＳ３３で得られた画像検出モデルに対応する基準面及び加工面を検出するための命令又はプログラムを作成し、加工用プログラムに追加する。
【００３８】
次のステップＳ３５では、加工予定のワークの基準面及び加工面の高さを計算する命令又はプログラムを作成する。具体的には、視覚センサ２２′を用いて実際に取り込まれたワークの画像（図１６）と仮想カメラによる撮像によって得られた画像検出モデル（図１５）との間で、ワークの基準面及び加工面それぞれについてサイズの差すなわち変化量を求め、サイズを高さに換算する。
【００３９】
最後にステップＳ３６において、計算結果に基づいて加工用プログラムの教示点の修正を行う。詳細には、図１７（ａ）に示すように、先ず計算された加工面の高さから、ツール１６がワーク１８の加工面３４に当接するように加工用プログラムの各教示点の高さ位置を修正する。さらに、計算されたワーク基準面３８の高さからツール先端点１６ａとワーク基準面３８との間のクリアランスを計算する。ここでクリアランスが十分でない場合すなわち所定の閾値以下である場合（図１７（ａ）の実線のような場合）は、実際の加工中にツールが基準面に干渉する虞があることから、図１７（ｂ）に示すように、各教示点におけるツール１６の姿勢を修正して（ステップＳ３７）、ツールとワーク基準面との間に所定の閾値以上のクリアランスが得られるようにする。
【００４０】
なお図２、図９及び図１４のフローチャートに示した処理は、それぞれ単独で行ってもよいし、適宜組み合わせて行ってもよいことは当業者に容易に理解されよう。
【図面の簡単な説明】
【００４１】
【図１】本発明に係るロボットプラグラム作成装置の一実施形態を示す概略図である。
【図２】図１のプログラム作成装置の一処理の流れを示すフローチャートである。
【図３】ワークの加工線を複数の部分に分割した例を示す図である。
【図４】ワークの画像検出モデルを説明する図である。
【図５】ワークの教示点のデータを含む加工用プログラムの例を示す図である。
【図６】検出モデルに対応したワークの各部位を視覚センサにより実際に検出する例、及びそのための検出用プログラムの例を示す図である。
【図７】視覚センサで実際に撮像したワークの画像と検出モデルとの変化量を求める計算用プログラムの例を示す図である。
【図８】図１に類似する図であって、ツールをロボットに取り付けた例を示す図である。
【図９】視覚センサの高さ調整を行う処理の一例を示すフローチャートである。
【図１０】視覚センサをワークの略真上に移動させた例を示す図である。
【図１１】視覚センサの水平位置を調整する例を示す図である。
【図１２】視覚センサの位置及び姿勢を調整する例を示す図である。
【図１３】ツールがワークの基準面に干渉している状態を示す図である。
【図１４】教示点でのツールの位置及び姿勢を修正する処理の一例を示すフローチャートである。
【図１５】ワークの画像検出モデルを示す図である。
【図１６】ワークを視覚センサにより実際に検出する例を示す図である。
【図１７】（ａ）ツールの高さ調整を行う例を示す図であり、（ｂ）ツールの姿勢調整を行う例を示す図である。
【符号の説明】
【００４２】
１０    ＰＣ
１２    表示画面
１４    ロボット
１６    ツール
１８    ワーク
２０    架台
２２    視覚センサ
２４    グラフィック画像
２８    加工線
３０、３２ａ〜３２ｈ、４０、４２、４４    画像検出モデル
３４    加工面
３８    基準面
【図１】
0004347386.tif 000002
【図２】
0004347386.tif 000003
【図３】
0004347386.tif 000004
【図４】
0004347386.tif 000005
【図５】
0004347386.tif 000006
【図６】
0004347386.tif 000007
【図７】
0004347386.tif 000008
【図８】
0004347386.tif 000009
【図９】
0004347386.tif 000010
【図１０】
0004347386.tif 000011
【図１１】
0004347386.tif 000012
【図１２】
0004347386.tif 000013
【図１３】
0004347386.tif 000014
【図１４】
0004347386.tif 000015
【図１５】
0004347386.tif 000016
【図１６】
0004347386.tif 000017
【図１７】
0004347386.tif 000018