(57)【要約】【課題】複数種類のワークが供給される状況であっても、それぞれのワークの位置の誤差を精度良く補正可能なロボットシステムを提供する。【解決手段】ロボットシステムは、ロボットと、撮像装置と、記憶部と、撮像制御部と、画像処理部と、誤差算出部と、補正部と、作業制御部と、を備える。撮像装置は、ロボットに取り付けられ、撮像を行う。記憶部は、教示特徴点の位置をワーク毎にそれぞれ複数記憶している。撮像制御部は、教示特徴点が撮影できる位置にロボットを移動させて撮像を行う処理を教示特徴点毎に行う。画像処理部は、計測特徴点の位置を算出する。誤差算出部は、複数の特徴点について、作業対象のワークの位置の誤差を算出する。補正部は、ワークの位置の誤差に基づいてロボットの座標系を補正する。作業制御部は、補正部が補正した座標系を用いてロボットを制御して作業対象のワークに対して作業を行わせる。【選択図】図７
2019089172.tif 000002
【特許請求の範囲】
【請求項１】
ワークに対して当該ワークの形状に応じた作業を行うロボットと、
前記ロボットに取り付けられ、撮像を行う撮像装置と、
前記ワークの位置を特定するための特徴点であって、前記ロボットへの教示時に算出された点である教示特徴点の位置を前記ワーク毎にそれぞれ複数記憶している記憶部と、
作業対象の前記ワークに対して、前記教示特徴点が撮影できる位置に前記ロボットを移動させて前記撮像装置により撮像を行う処理を前記教示特徴点毎に行う撮像制御部と、
前記撮像装置が取得した画像を解析して求められた特徴点である計測特徴点の位置を算出する画像処理部と、
複数の特徴点について、前記教示特徴点と前記計測特徴点との位置を比較することで、作業対象の前記ワークの位置の誤差を算出する誤差算出部と、
前記誤差算出部が算出した前記ワークの位置の誤差に基づいて前記ロボットの教示点の座標値又は座標系を補正する補正部と、
前記補正部が補正した教示点又は座標系を用いて前記ロボットを制御して作業対象の前記ワークに対して作業を行わせる作業制御部と、
を備えることを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、
前記記憶部は、複数種類の前記ワークに応じて少なくとも２つの前記教示特徴点の位置を記憶しており、これらの２つの前記教示特徴点は、前記ワークの中央を挟んで対角に位置していることを特徴とするロボットシステム。
【請求項３】
請求項１又は２に記載のロボットシステムであって、
前記記憶部には、湾曲部を有する形状の前記ワークについて、当該湾曲部の形状に基づいて算出された前記教示特徴点の位置が記憶されており、
前記画像処理部は、前記撮像装置が取得した画像に含まれる前記ワークの湾曲部の形状に基づいて前記計測特徴点の位置を算出し、
前記教示特徴点の算出方法と、前記計測特徴点の算出方法と、では特徴点を算出するためのパラメータの少なくとも１つが同じであることを特徴とするロボットシステム。
【請求項４】
請求項１から３までの何れか一項に記載のロボットシステムであって、
前記教示特徴点と前記計測特徴点とを算出する際には、
湾曲部の中央よりも−側の輪郭上の起点から当該湾曲部の中央側に第１補助線を引き、
前記第１補助線と平行な線であって、当該第１補助線との距離が第１オフセット値又は第１オフセット範囲にある第２補助線を引き、
前記第２補助線と前記ワークの輪郭との交点である第１基準点から湾曲部の中央側に第１接線を引き、
前記第１接線と平行な線であって、当該第１接線との距離が第２オフセット値又は第２オフセット範囲にある第３補助線を引き、
前記第３補助線と前記ワークの輪郭との交点である第２基準点から湾曲部の中央側に第２接線を引き、
前記第１接線と前記第２接線の交点を基準点とすることを特徴とするロボットシステム。
【請求項５】
請求項４に記載のロボットシステムであって、
前記教示特徴点を算出するハードウェアと、前記計測特徴点を算出するハードウェアと、が異なることを特徴とするロボットシステム。
【請求項６】
請求項１から５までの何れか一項に記載のロボットシステムであって、
前記ワークがガラス板であることを特徴とするロボットシステム。
【請求項７】
ワークの形状に応じた作業を行うロボットを制御するロボット制御方法において、
前記ワークの位置を特定するための特徴点であって、前記ロボットへの教示時に算出された点である教示特徴点の位置を前記ワーク毎にそれぞれ複数記憶しており、
作業対象の前記ワークに対して、前記教示特徴点が撮影できる位置に前記ロボットを移動させて、当該ロボットに取り付けられた撮像装置により画像を取得する処理を前記教示特徴点毎に行う撮像工程と、
前記撮像工程で取得した画像を解析して求められた特徴点である計測特徴点の位置を算出する画像処理工程と、
複数の特徴点について、前記教示特徴点と前記計測特徴点との位置を比較することで、作業対象の前記ワークの位置の誤差を算出する誤差算出工程と、
前記誤差算出工程で算出した前記ワークの位置の誤差に基づいて前記ロボットの教示点の座標値又は座標系を補正する補正工程と、
前記補正工程で補正した教示点又は座標系を用いて前記ロボットを制御して作業対象の前記ワークに対して作業を行わせる作業制御工程と、
を含むことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主として、ワークに対する作業をロボットに行わせるロボットシステムに関する。
【背景技術】
【０００２】
特許文献１の背景技術の欄には、ロボットを用いて把持作業を行う場合において、ＣＣＤカメラを用いて二次元の濃淡画像を利用してパターンマッチングを行うことで、対象物を判別したり、ワーク（対象物）の位置及び姿勢を検出したりすることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００９／０２８４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、図２等に示すように、ロボットの把持装置と同程度である比較的小さいサイズのワークが想定されている。これに対し、大きいサイズのワークでは、ＣＣＤカメラで全体を撮像した場合、ワークの単位長さあたりの画素数が少なくなる（ｄｐｉが低下する）ため、パターンマッチングの精度が落ちる可能性がある。従って、要求される精度によっては、画像認識ではなくワークを所定位置に固定するための治具等が必要になる場合があり、コストが高くなる可能性がある。更に、複数種類のワークに対して作業を行う場合は、ワーク毎に治具を作成すると、多数の治具の作成が必要になるとともに、ワークに応じて治具を交換する作業が必要となるため、コストが非常に高くなり、更に治具の保管場所及び管理が必要である点で課題がある。
【０００５】
本発明は以上の事情に鑑みてされたものであり、その主要な目的は、複数種類のワークが供給される状況であっても、それぞれのワークの位置の誤差を精度良く補正可能なロボットシステムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【０００７】
本発明の第１の観点によれば、以下の構成のロボットシステムが提供される。即ち、このロボットシステムは、ロボットと、撮像装置と、記憶部と、撮像制御部と、画像処理部と、誤差算出部と、補正部と、作業制御部と、を備える。前記ロボットは、ワークに対して当該ワークの形状に応じた作業を行う。前記撮像装置は、前記ロボットに取り付けられ、撮像を行う。前記記憶部は、前記ワークの位置を特定するための特徴点であって、前記ロボットへの教示時に算出された点である教示特徴点の位置を前記ワーク毎にそれぞれ複数記憶している。前記撮像制御部は、作業対象の前記ワークに対して、前記教示特徴点が撮影できる位置に前記ロボットを移動させて前記撮像装置により撮像を行う処理を前記教示特徴点毎に行う。前記画像処理部は、前記撮像装置が取得した画像を解析して求められた特徴点である計測特徴点の位置を算出する。前記誤差算出部は、複数の特徴点について、前記教示特徴点と前記計測特徴点との位置を比較することで、作業対象の前記ワークの位置の誤差を算出する。前記補正部は、前記算出部が算出した前記ワークの位置の誤差に基づいて前記ロボットの教示点の座標値又は座標系を補正する。前記作業制御部は、前記補正部が補正した教示点又は座標系を用いて前記ロボットを制御して作業対象の前記ワークに対して作業を行わせる。
【０００８】
本発明の第２の観点によれば、以下のロボット制御方法が提供される。即ち、このロボット制御方法では、ワークの形状に応じた作業を行うロボットを制御する。また、このロボット制御方法では、前記ワークの位置を特定するための特徴点であって、前記ロボットへの教示時に算出された点である教示特徴点の位置を前記ワーク毎にそれぞれ複数記憶している。また、このロボット制御方法は、撮像工程と、画像処理工程と、誤差算出工程と、補正工程と、作業制御工程と、を含む。前記撮像工程では、作業対象の前記ワークに対して、前記教示特徴点が撮影できる位置に前記ロボットを移動させて、当該ロボットに取り付けられた撮像装置により画像を取得する処理を前記教示特徴点毎に行う。前記画像処理工程では、前記撮像工程で取得した画像を解析して求められた特徴点である計測特徴点の位置を算出する。前記誤差算出工程では、複数の特徴点について、前記教示特徴点と前記計測特徴点との位置を比較することで、作業対象の前記ワークの位置の誤差を算出する。前記補正工程では、前記誤差算出工程で算出した前記ワークの位置の誤差に基づいて前記ロボットの教示点の座標値又は座標系を補正する。前記作業制御工程では、前記補正工程で補正した教示点又は座標系を用いて前記ロボットを制御して作業対象の前記ワークに対して作業を行わせる。
【０００９】
このように、複数種類のワークについて特徴点が記憶されているため、例えば作業を行う対象のワークが頻繁に変更される場合であっても、治具を取り換える等の作業を行うことなく、作業を行うことができる。また、ロボットを動かして複数の特徴点をそれぞれ撮像することで、大型のワークに作業を行う場合であっても、特徴点の近傍の精細な画像を得ることができる。従って、ワークの位置の誤差を精度良く補正して作業を行うことができる。
【発明の効果】
【００１０】
本発明によれば、複数種類のワークが供給される状況であっても、それぞれのワークの位置の誤差を精度良く補正可能なロボットシステムが実現できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るロボットシステムの構成を示すブロック図。
【図２】搬送されたワークに検査を行うロボットの外観斜視図、及び、載置されたワークを把持して検査を行うロボットの外観斜視図。
【図３】検査処理の前に予め行う事前処理を示すフローチャート及びプログラムＴ１，Ｔ２の概要を説明する図。
【図４】事前処理及び検査処理で特徴点を算出する際に行う処理を示すフローチャート。
【図５】事前処理においてワークの図面データを用いて特徴点Ａ，Ｂを算出する処理を説明する図。
【図６】記憶部に記憶される特徴点Ａ，Ｂの位置及びこれらを算出するためのオフセット値を示す図。
【図７】ワークの位置の誤差を補正して検査処理を行うためのシーケンス図。
【図８】検査処理において撮像したワークの画像を用いて特徴点Ａ１，Ｂ１を算出する処理を説明する図。
【図９】特徴点Ａ，Ｂと特徴点Ａ１，Ｂ１に基づいてロボットの座標の変換を行う処理を説明する図。
【図１０】撮像装置と同軸で照明を行う構成を説明する模式図。
【図１１】オフセット値に代えてオフセット範囲が設定された場合の特徴点を算出する処理を説明する図。
【発明を実施するための形態】
【００１２】
次に、図面を参照して本発明の実施形態を説明する。初めに、図１を参照して本実施形態のロボットシステム１について説明する。図１は、本発明の一実施形態に係るロボットシステム１の構成を示すブロック図である。
【００１３】
ロボットシステム１は、ロボット１０と、制御装置２０と、教示装置３０と、画像処理部４０と、撮像装置５１と、を備えている。教示装置３０がロボット１０の教示データを作成し、この教示データを用いて制御装置２０がロボット１０を制御することで、作業対象物であるワーク１００に対してロボット１０が所定の作業を行う。
【００１４】
制御装置２０は、公知のコンピュータにより構成されており、演算装置（ＣＰＵ等）と教示データ記憶部２１（例えばＲＯＭ、ＲＡＭ、ＨＤＤ等）を備えている。教示データ記憶部２１には、ロボット１０を教示した通りに動作させるための教示データ等のプログラムが記憶されている。演算装置がこのプログラムをＲＡＭ等に読み出して実行することで制御装置２０はロボット１０を制御する。これにより、制御装置２０を動作制御部２２として機能させることができる。また、動作制御部２２は、撮像制御部２２ａ及び検査制御部（作業制御部）２２ｂを備える。
【００１５】
教示装置３０は、公知のコンピュータにロボット１０の教示を行うためのソフトウェアがインストールされた構成である。従って、教示装置３０も制御装置２０と同様に演算装置及び記憶部３１を備えている。教示装置３０は、制御装置２０と同様に制御装置により実現される、図面データ読込み部３２と、特徴点算出部３３と、教示データ作成部３４と、誤差算出部３５と、補正部３６と、を備える。なお、これらが行う処理については後述する。
【００１６】
画像処理部４０は、撮像装置５１に関する処理（例えば、撮像した画像に対する画像処理）等を行う。画像処理部４０は、制御装置２０等と同様に演算装置及び記憶装置を備えており、制御装置２０等とは別のハードウェアである。本実施形態では、撮像装置５１が撮像したワーク１００の画像に基づいて、ワーク１００の位置の誤差が補正される（詳細は後述）。
【００１７】
ここで、本実施形態のロボットシステム１では、制御装置２０と教示装置３０と画像処理部４０とが異なるハードウェアから構成されているが、本発明の機能が発揮できるのであれば、ハードウェアの構成は任意である。例えば、制御装置２０と教示装置３０と画像処理部４０との少なくとも２つが同じハードウェアであってもよいし、更に別のハードウェアを備える構成であってもよい。また、本実施形態の画像処理部４０が有する機能の少なくとも一部を制御装置２０又は教示装置３０に持たせてもよい（画像処理部４０以外についても同様）。
【００１８】
次に、図２について説明する。本発明においてロボット１０が行う作業は、ワーク１００の形状に応じてロボット１０を動作させる必要がある作業である。この作業としては、例えばワーク１００の検査（ワーク１００の表面欠陥を調べる検査、ワーク１００の厚みを調べる検査等）、塗装、及び洗浄等がある。以下では、一例として、ワーク１００を検査する作業について説明する。ガラス板の用途は特に限定されないが、例えば、自動車等の乗物用の窓ガラスや、有機ＥＬパネルや液晶パネルに用いられるガラス等にロボットシステム１を適用できる。
【００１９】
ロボット１０は、支持台１１と、多関節アーム１２と、エンドエフェクタ１３と、を備える。支持台１１は施設内の所定の位置に固定されている。多関節アーム１２は、複数の関節を有しており、各関節にはアクチュエータが備えられている。これらのアクチュエータが制御装置２０により制御されることで、多関節アーム１２の姿勢（位置）及び速度が調整される。エンドエフェクタ１３は、多関節アーム１２の先端に取り付けられている。エンドエフェクタ１３には、例えばワーク１００を把持するためのツールが取り付けられる。また、以下の説明では、多関節アーム１２のアクチュエータを制御してエンドエフェクタ１３の位置及び向きを変化させることを、単にロボット１０の位置及び向きを変化させる等と称することがある。
【００２０】
また、ロボット１０がワーク１００の検査を行う方法としては、主として以下の２種類がある。１つ目は、図２（ａ）に示すように、エンドエフェクタ１３にワーク１００の表面欠陥を検査するための検査装置５３が取り付けられており、ロボット１０を動作させてワーク１００に対して検査装置５３を動作させることで、ワーク１００の検査を行う構成である。ワーク１００の検査後、ベルトコンベア１３０等の搬送装置により、検査済みのワーク１００が次工程に搬送されるとともに、未検査のワーク１００がロボット１０の前まで搬送される。
【００２１】
２つ目は、図２（ｂ）に示すように、エンドエフェクタ１３に把持装置５２が取り付けられており、この把持装置５２により未検査ワーク載置部１１０からワーク１００を把持して、ワーク１００の縁部を検査するための図略の検査装置に対して移動させる構成である。また、ワーク１００の検査後、ロボット１０はワーク１００を検査済ワーク載置部１２０に載置する。なお、検査結果が所定の閾値以下である場合、不良品用の載置部にワーク１００を載置してもよい。
【００２２】
また、図２（ａ）及び図２（ｂ）の何れのロボット１０においても、エンドエフェクタ１３に撮像装置５１が取り付けられている。撮像装置５１は、制御装置２０等の制御により、ワーク１００の一部の画像（詳細には後述の特徴点の近傍の画像）を撮像する。
【００２３】
次に、図３、図４、及び図４を補足する図５について順に説明する。ロボットシステム１がワーク１００を検査する前に行う事前処理、及び、ロボットシステム１が実際にワーク１００を検査する検査処理について説明する。図３は、事前処理を示すフローチャート及びプログラムＴ１，Ｔ２の概要を説明する図である。図４は、事前処理及び検査処理で特徴点を算出する際に行う処理を示すフローチャートである。図３に示す事前処理は主として教示装置３０が行うが、上述したように少なくとも一部の処理を制御装置２０等が行う構成であってもよい。
【００２４】
初めに、教示装置３０（図面データ読込み部３２）は、ワーク１００の図面データを読み込む（Ｓ１０１）。ここで、教示装置３０が読み込む図面データは、設計時等に作成した３次元のＣＡＤデータである。これにより、コンピュータ上で構築される仮想空間上にワーク１００を表示することができる。本実施形態の教示装置３０は、ロボット１０を実際に動かすのではなく、この仮想空間においてロボット１０、周辺装置、及びワーク１００の３次元モデルを配置して特徴点の算出及び教示データの作成等を行う。
【００２５】
次に、教示装置３０（特徴点算出部３３）は、この仮想空間上で特徴点Ａ，Ｂを算出するための処理を行う（Ｓ１０２）。特徴点とは、画像を用いてワーク１００の位置を特定するための点である。一般的には、隅部が直角のワークであれば、この隅部を特徴点とするだけで、ワークの位置を正確に認識できる。また、隅部が湾曲状に面取りされている場合であっても、隅部に向かう２つの輪郭が直線であれば、当該２つの直線を延長した交点を特徴点とすることで、ワークの位置を正確に特定できる。
【００２６】
しかし、本実施形態のワーク１００のように、隅部が湾曲状（以下、湾曲部と称する）であり、かつ、湾曲部に向かう２つの輪郭も曲線である場合、ワーク１００の形状から特徴点を１つに特定することは困難である。そのため、本実施形態では、図４及び図５に示す方法で特徴点を算出する。また、事前処理で算出される特徴点（ロボットへの教示時に算出される特徴点）が教示特徴点に該当する。以下では、教示特徴点には符号Ａ，Ｂを付して説明する。なお、本実施形態では、ワーク１００毎に２点の特徴点を設定する構成であるが、３点以上の特徴点を設定してもよい。
【００２７】
教示装置３０は、２つの湾曲部について同様の処理を行って特徴点Ａ，Ｂを算出する。教示装置３０は、図６に示すように、算出した特徴点Ａ，Ｂの位置（具体的にはロボット１０を教示及び制御するためのロボット座標系における座標値）を記憶部３１に記憶する（Ｓ１０３）。また、教示装置３０は、特徴点Ａ，Ｂのそれぞれに対応する第１オフセット値及び第２オフセット値（詳細は後述）についても、記憶部３１に記憶する（Ｓ１０３）。なお、特徴点Ａ，Ｂ間の距離が長い方が、ワーク１００の位置を正確に特定するためには好ましい。従って、本実施形態では、特徴点Ａ，Ｂがワーク１００の中央を挟んで対角に位置するように特徴点Ａ，Ｂを定めている。
【００２８】
次に、教示装置３０（教示データ作成部３４）は、図３（ｂ）に示すように、原点、特徴点Ａ、特徴点Ｂの順にロボット１０（エンドエフェクタ１３）を移動させるプログラムＴ１を作成する（Ｓ１０４）。上記のように特徴点Ａ，Ｂの座標値は算出済みであるため、それに基づいてプログラムＴ１を容易に作成できる。
【００２９】
次に、教示装置３０（教示データ作成部３４）は、図３（ｃ）に示すように、検査内容に応じてロボット１０（エンドエフェクタ１３）を移動させるプログラムＴ２（教示データ）を作成する（Ｓ１０５）。図３（ｃ）に示す例では、検査装置５３をワーク１００の表面に沿って移動させることで、ワーク１００の表面欠陥を検査するためのプログラムＴ２（教示データ）が示されている。また、プログラムＴ１だけでなくプログラムＴ２においても、上述したロボット座標系における座標値を用いて教示点が記述されている。以上により、事前処理が完了する。
【００３０】
次に、図５を参照しながら図４について説明する。以下の処理は、上記の仮想空間上でワーク１００を上方から見たときの形状（ワーク１００を鉛直方向下側に投影した投影図）に対して行う。本実施形態では、２つの特徴点Ａ，Ｂを算出するため、それぞれについて、図４の処理を行う。初めに、教示装置３０は、湾曲部の中央よりも−側の輪郭上の起点Ｐ１から当該湾曲部の中央側に第１補助線Ｌ１を引く（Ｓ２０１）。
【００３１】
起点Ｐ１の特定方法は様々な方法があるが、ワーク１００の輪郭の湾曲が緩やかである部分（例えば曲率半径が閾値より大きい部分）が好ましい。次に、教示装置３０は、第１補助線Ｌ１と平行な線であって、第１補助線Ｌ１との距離が第１オフセット値ＬＹａ１にある第２補助線Ｌ２を引く（Ｓ２０２）。ここで、第１オフセット値は、ロボットシステム１の使用者等によって入力される値であるが、ワーク１００の大きさ又は形状等に基づいて教示装置３０が設定する構成であってもよい。第１オフセット値は、どのような値であっても良いが、図５の右上の図に示すように特徴点の位置に関係するため、湾曲部から大幅に離れていない位置であることが好ましい。
【００３２】
次に、教示装置３０は、第２補助線Ｌ２とワーク１００の輪郭との交点である第１基準点Ｐ２から湾曲部の中央側に第１接線Ｌ３を引く（Ｓ２０３）。次に、教示装置３０は、第１接線Ｌ３と平行な線であって、第１接線Ｌ３との距離が第２オフセット値ＬＸａ１にある第３補助線Ｌ４を引く（Ｓ２０４）。第２オフセット値については、第１オフセット値と同様である。次に、教示装置３０は、第３補助線Ｌ４とワーク１００の輪郭との交点である第２基準点Ｐ３から湾曲部の中央側に第２接線Ｌ５を引く（Ｓ２０５）。そして、教示装置３０は、第１接線Ｌ３と第２接線Ｌ５の交点を特徴点Ａとする（Ｓ２０６）。特徴点Ａ，Ｂの算出においてそれぞれ設定されるオフセット値は、本実施形態では異なる値であるが、同じ値であってもよい。
【００３３】
次に、図８及び図９を参照しながら図７の検査処理について説明する。図７は、検査処理のシーケンス図である。図７でロボット側と記載している箇所では、ロボット１０、制御装置２０、及び教示装置３０が行う処理が記載されている。また、撮像装置側と記載している箇所では、画像処理部４０及び撮像装置５１が行う処理が記載されている。
【００３４】
ここで、事前処理では仮想空間上（データ上）の処理であるため、ワーク１００の位置の誤差等は存在しないが、検査処理では実際に搬送又は載置されるワーク１００が対象であるため、ワーク１００の位置に誤差が含まれる（図８を参照）。そのため、ロボット１０が教示通りに検査を行った場合でも、実際のワーク１００の位置がズレているため、検査箇所が異なることにより想定通りの検査が行われないことがある。また、図２（ｂ）に示すようにワーク１００を把持する場合は、ロボット１０を動作させる際にワーク１００が周辺装置や検査装置に衝突する可能性もある。以上を考慮し、本実施形態では、ワーク１００の位置の誤差を補正しつつ、検査処理を行う。
【００３５】
初めに、制御装置２０（撮像制御部２２ａ）は、図７に示すように、プログラムＴ１を実行してロボット１０（エンドエフェクタ１３）を特徴点Ａまで移動する（シーケンス番号１）。次に、制御装置２０（撮像制御部２２ａ）は撮像装置５１へ撮像指示を送信する（シーケンス番号２）。
【００３６】
撮像装置５１は、制御装置２０からの指示を受けて、撮像を行う（シーケンス番号３、撮像工程）。また、撮像装置５１は、事前処理時のワーク１００と同じアングルとなるように（即ち、ワーク１００を鉛直方向上側から見たときの画像が取得されるように）向きが定められている。
【００３７】
ここで、本実施形態では、図８に示すように、撮像装置５１の撮像範囲は、ワーク１００と比較して大幅に小さい。そのため、上記のようにエンドエフェクタ１３とともに撮像装置５１を特徴点Ａまで移動させないと、特徴点Ａの近傍の画像を撮影することができない。その代わりに、特徴点Ａの近傍について、単位長さあたりの画素数が多い画像（ｄｐｉが高い画像）を取得することができる。
【００３８】
また、図８に示すように、事前処理時のワーク１００の輪郭形状（鎖線）と、検査処理時のワーク１００の輪郭形状（実線）と、の間には誤差があるため、特徴点の位置も異なる。画像処理部４０は、撮像装置５１が撮像した画像に基づいて、実際のワーク１００の特徴点の位置を算出する（シーケンス番号４、画像処理工程）。画像処理部４０は、例えば教示装置３０の起点Ｐ１の算出方法と同等の算出方法及びオフセット値により、事前処理時と同じく図４に示す処理を行うことで、特徴点を算出する。以下では、検査処理時のワーク１００の特徴点（撮像装置５１が取得した画像を解析して求められた特徴点）が計測特徴点に該当する。以下では、計測特徴点には符号Ａ１，Ｂ１を付して説明する。
【００３９】
事前処理時と検査処理時とで同等の方法かつ同じパラメータ（オフセット値）で特徴点を算出することで、ワーク１００との位置関係が同じとなる特徴点が算出できる。また、オフセット値は、画像解析を行って特徴点を算出する際の一般的なパラメータであるため、例えばカスタマイズ性が低い画像処理部４０及び撮像装置５１を用いる場合においても、適用可能である可能性が高い。画像処理部４０は、算出した特徴点Ａ１の位置を教示装置３０へ出力する（シーケンス番号５）。
【００４０】
次に、特徴点Ｂについても特徴点Ａと同じ処理が行われる。簡単に説明すると、制御装置２０は再びプログラムＴ１を実行してロボット１０を特徴点Ｂまで移動させ（シーケンス番号６）、撮像指示を送信する（シーケンス番号７）。次に、撮像装置５１は特徴点Ｂの近傍を撮像する（シーケンス番号８）。画像処理部４０は、この画像に基づいて特徴点Ｂ１の位置を算出し（シーケンス番号９、画像処理工程）、教示装置３０へ出力する（シーケンス番号１０）。
【００４１】
その後、制御装置２０はロボット１０をロボット座標系の原点まで移動させる（シーケンス番号１１）。次に、教示装置３０（誤差算出部３５）は、特徴点Ａ，Ｂと、特徴点Ａ１，Ｂ１と、の位置を比較することで、ワーク１００の位置の誤差を算出する（シーケンス番号１２、誤差算出工程）。なお、誤差算出工程を画像処理部４０が行って、算出した誤差を教示装置３０へ出力してもよい。本実施形態では２次元で処理を行っているため、２点が特定されることでワーク１００の位置及び向きを特定できる。そのため、鉛直方向を回転軸としてワーク１００を何度回転させ、ワーク１００を水平方向にどの程度移動させれば、事前処理時の位置に合うかを求めることができる。また、教示装置３０は、ワーク１００の回転角度（向き）の誤差と、ワーク１００の水平方向の移動量及び移動向きの誤差と、を記憶する。
【００４２】
次に、教示装置３０（補正部３６）は、上記の記憶した誤差に基づいて、ロボット座標系を補正する（シーケンス番号１３、補正工程）。具体的には、図９に示すように、上記の回転角度の誤差に相当する分だけロボット座標系を回転し、上記の水平方向の移動量及び移動向きの誤差に基づいて原点位置を変更する。これにより、事前処理で用いたロボット座標系における特徴点Ａの座標値と、補正後のロボット座標系における特徴点Ａ１の座標値と、が一致する（特徴点Ｂについても同様）。なお、ロボット座標系を補正する処理に代えて、プログラムＴ２における教示点の座標値を補正してもよい。
【００４３】
次に、検査制御部２２ｂは、補正したロボット座標系でロボット１０（エンドエフェクタ１３）を動作させて検査を行う（シーケンス番号１４、作業制御工程）。上記のロボット座標系の補正が行われることで、ワーク１００の位置に誤差がある場合であっても、その位置に合わせたロボット座標系で検査が行われる。従って、適切な位置を検査できるとともに、ワーク１００を把持する場合においてもワーク１００の衝突を防止できる。
【００４４】
その後、同じ種類のワーク１００に対して継続して検査を行う場合は、上記と同様に、シーケンス番号１から１４の処理を再び行う。なお、当然であるが、事前処理を再び行う必要はない。
【００４５】
また、教示装置３０は、複数種類のワーク１００について事前処理を行っており、図６に示すようにそれぞれのワーク１００毎に、特徴点の座標値及びオフセット値が記憶部３１に記憶されている。また、それぞれのワーク１００毎に、プログラムＴ１，Ｔ２が記憶されている。従って、例えばあるワーク１００について検査を行った後に、別の種類のワーク１００に対して検査を行う場合、その旨が入力されることで適用するプログラム及びオフセット値等を変更する。これにより、治具等を置き換える手間なしに、他の種類のワーク１００に対して検査を行うことができる。従って、例えば自動車の窓ガラス等のように、多数の種類の製品に対して検査を行う場合に特に有効に活用できる。
【００４６】
次に、図１０を参照して、ワーク１００の輪郭位置を明確に特定可能な構成について説明する。本実施形態のようにワーク１００がガラス板である場合、ガラス板は透明であるため、撮像装置５１が撮像したワーク１００の輪郭位置を明確に特定しにくい可能性がある。その場合、ワーク１００に照明光を照射することで、ワーク１００の輪郭位置を明確に特定できる。特に、図１０に示すように、同軸照明を行うことで、ワーク１００の輪郭位置をより明確に特定できる。
【００４７】
具体的には、撮像装置５１は撮像位置（ワーク１００）の鉛直方向上側に配置されている。そして、撮像装置５１とワーク１００との間に、ハーフミラー６２等のビームスプリッタが鉛直方向に対して傾斜するように配置されている。また、ハーフミラー６２の水平方向の何れかの方向には、照明装置６１が配置されている。ハーフミラー６２は、入射される光の一部を反射し、残りを透過させる性質を有している。そのため、照明装置６１が照射した照明光の一部はハーフミラー６２によって反射されて撮像位置へ向かう。そして、撮像位置から出た光（照明光の反射光）の一部は、ハーフミラー６２を透過して撮像装置５１で検出される。以上の構成により、撮像と照明を同軸で行うことができるので、ワーク１００の輪郭位置を明確に特定できる。
【００４８】
次に、図１１を参照して、オフセット値に代えてオフセット範囲を設定する例について説明する。本実施形態では、特徴点を算出する際に単一の値であるオフセット値を用いたが、図１１に示すように、所定の範囲を示すオフセット範囲を用いることもできる。図１１では、第１オフセット範囲として、２つの第２補助線Ｌ２で囲まれる範囲（ＬＹａ以上ＬＹａ＋α以下の範囲）が指定されている。同様に、第２オフセット範囲として、２つの第３補助線Ｌ４で囲まれる範囲（ＬＸａ以上ＬＸａ＋β以下の範囲）が指定されている。
【００４９】
オフセット範囲が設定されている場合、上記のステップＳ２０２において、第１補助線Ｌ１との距離が第１オフセット範囲にある何れかの値となるように第２補助線Ｌ２を引く。また、上記のステップＳ２０４において、第１接線Ｌ３との距離が第２オフセット範囲にある何れかの値となるように第３補助線Ｌ４を引く。
【００５０】
次に、高さ方向の位置についても補正する構成について説明する。この場合、事前処理時にワーク１００の図面データに基づいて、特徴点の近傍の高さを予め取得しておく。そして、エンドエフェクタ１３にレーザセンサ等の距離センサを配置して、画像の撮影時等にワーク１００までの距離を計測する。その後、高さの測定位置を特定するとともに、当該測定位置において、事前処理で取得した高さと、距離センサに基づいて得られた高さと、を比較することで、高さ方向の誤差を算出できるため、上記で説明したようにロボット座標系を補正することで、高さ方向の位置を補正できる。
【００５１】
以上に説明したように、本実施形態のロボット１０システムは、ロボット１０と、撮像装置５１と、記憶部３１と、撮像制御部２２ａと、画像処理部４０と、誤差算出部３５と、補正部３６と、検査制御部２２ｂと、を備える。ロボット１０は、ワーク１００に対して当該ワーク１００の形状に応じた作業を行う。撮像装置５１は、ロボット１０に取り付けられ、撮像を行う。記憶部３１は、ワーク１００の位置を特定するための特徴点であって、ロボット１０への教示時に算出された点である教示特徴点の位置をワーク１００毎にそれぞれ複数記憶している。撮像制御部２２ａは、作業対象のワーク１００に対して、教示特徴点が撮影できる位置にロボット１０（エンドエフェクタ１３）を移動させて撮像装置５１により撮像を行う処理を教示特徴点毎に行う（撮像工程）。画像処理部４０は、撮像装置５１が取得した画像を解析して求められた特徴点である計測特徴点の位置を算出する（画像処理工程）。誤差算出部３５は、複数の特徴点について、教示特徴点と計測特徴点との位置を比較することで、作業対象のワーク１００の位置の誤差を算出する（誤差算出工程）。補正部３６は、誤差算出部３５が算出したワーク１００の位置の誤差に基づいてロボット１０の教示点の座標値又は座標系を補正する（補正工程）。検査制御部２２ｂは、補正部３６が補正した教示点又は座標系を用いてロボット１０を制御して作業対象のワーク１００に対して作業を行わせる（作業制御工程）。また、上述のように、制御装置２０、教示装置３０、及び画像処理部４０によりロボット制御方法が行われる。
【００５２】
このように、複数種類のワーク１００について特徴点が記憶されているため、例えば作業を行う対象のワーク１００が頻繁に変更される場合であっても、治具を取り換える等の作業を行うことなく、作業を行うことができる。また、ロボット１０を動かして複数の特徴点をそれぞれ撮像することで、大型のワーク１００に作業を行う場合であっても、特徴点の近傍の精細な画像を得ることができる。従って、ワーク１００の位置の誤差を精度良く補正して作業を行うことができる。
【００５３】
また、本実施形態のロボットシステム１において、記憶部３１は、複数種類のワーク１００に応じて少なくとも２つの教示特徴点の位置を記憶しており、これらの２つの教示特徴点は、ワーク１００の中央を挟んで対角に位置している。
【００５４】
これにより、２つの特徴点間の距離が長くなるため、ワーク１００の位置の誤差をより的確に検出できる。
【００５５】
また、本実施形態のロボットシステム１において、記憶部３１には、湾曲部を有する形状のワーク１００について、当該湾曲部の形状に基づいて算出された教示特徴点の位置が記憶されている。画像処理部４０は、撮像装置５１が取得した画像に含まれるワーク１００の湾曲部の形状に基づいて計測特徴点の位置を算出する。教示特徴点の算出方法と、計測特徴点の算出方法と、では特徴点を算出するためのパラメータの少なくとも１つが同じである。
【００５６】
これにより、教示特徴点と計測特徴点とが同じ方法で算出されることで、どの位置から接線を引くかで特徴点が変わる湾曲した湾曲部を有するワーク１００においても、当該ワーク１００の位置を正確に把握することができる。従って、ワーク１００の位置の誤差を精度良く補正して作業を行うことができる。
【００５７】
また、本実施形態のロボットシステム１において、図５又は図８に示すように湾曲部の中央よりも−側（マイナス側：例えば図８のＸ軸、Ｙ軸の中心である０点寄りの方向）の輪郭上の起点Ｐ１から当該湾曲部の中央側に第１補助線Ｌ１を引く。第１補助線Ｌ１と平行な線であって、当該第１補助線Ｌ１との距離が第１オフセット値又は第１オフセット範囲にある第２補助線Ｌ２を引く。第２補助線Ｌ２とワーク１００の輪郭との交点である第１基準点Ｐ２から湾曲部の中央側に第１接線Ｌ３を引く。第１接線Ｌ３と平行な線であって、当該第１接線Ｌ３との距離が第２オフセット値又は第２オフセット範囲にある第３補助線を引く。第３補助線Ｌ４とワーク１００の輪郭との交点である第２基準点Ｐ３から湾曲部の中央側に第２接線Ｌ５を引く。第１接線Ｌ３と第２接線Ｌ５の交点を基準点とする。
【００５８】
これにより、起点Ｐ１及び２つのオフセット値（又はオフセット範囲）を定めることで、教示時と計測時において同じ位置の特徴点を算出することができる。
【００５９】
また、本実施形態のロボットシステム１において、教示特徴点を算出するハードウェアと、計測特徴点を算出するハードウェアと、が異なる。
【００６０】
これにより、異なるハードウェアでそれぞれ特徴点を算出する場合であっても、２つの所定値や所定範囲を定めるだけで、同様の方法で特徴点を算出できる。
【００６１】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【００６２】
上記のフローチャート及びシーケンス図は一例であり、処理の追加、削除、順序変更等が行うこともできる。また、２つ以上の処理が同時に行われる構成であってもよい。
【００６３】
上記実施形態では、教示装置３０はワーク１００の図面データを読み込む構成であるが、教示装置３０が実行するアプリケーション上でワーク１００の図面データが作成される構成であってもよい。
【００６４】
図４のフローチャート以外の方法でワーク１００の輪郭形状から特徴点を算出することもできる。また、ワーク１００に開口部及び取付孔等が存在する場合は、ワーク１００の外縁ではなくその内側の形状に基づいて特徴点を算出することもできる。
【符号の説明】
【００６５】
１  ロボットシステム
１０  ロボット
２０  制御装置
２１  教示データ記憶部
２２  動作制御部
２２ａ  撮像制御部
２２ｂ  検査制御部（作業制御部）
３０  教示装置
３１  記憶部
３２  図面データ読込み部
３３  特徴点算出部
３４  教示データ作成部
３５  誤差算出部
３６  補正部
４０  画像処理部
５１  撮像装置
Ａ，Ｂ  特徴点（教示特徴点）
Ａ１，Ｂ１  特徴点（計測特徴点）
【図１】
2019089172.tif 000003
【図２】
2019089172.tif 000004
【図３】
2019089172.tif 000005
【図４】
2019089172.tif 000006
【図５】
2019089172.tif 000007
【図６】
2019089172.tif 000008
【図７】
2019089172.tif 000009
【図８】
2019089172.tif 000010
【図９】
2019089172.tif 000011
【図１０】
2019089172.tif 000012
【図１１】
2019089172.tif 000013