(57)【要約】【課題】自重により撓むワークに対して作業装置を用いて作業を行う場合において、ワークに対する作業装置の位置又は向きを正確に調整することが可能なロボットシステムを提供する。【解決手段】計測制御部は、理想的な形状のワークに基づいて作成された計測用教示データを用いて、作業場に置かれた作業対象のワークの表面に沿って距離センサを移動させることで、作業対象のワークの複数の基準点での距離センサの検出結果を取得する。算出部は、基準点での距離センサの検出結果に基づいて、作業対象のワークの基準点及び当該基準点以外の点での撓みに起因する形状誤差を算出する。補正部は、算出部が算出した形状誤差に基づいて、作業用教示データを補正して作業用補正教示データを算出する。作業制御部は、作業用補正教示データを用いて、作業対象のワークの表面に沿って作業装置を移動させることで、作業対象のワークに対して作業を行う。【選択図】図８
2020044619.tif 000002
【特許請求の範囲】
【請求項１】
作業場に置かれることで撓みが生じる作業対象のワークに対して作業を行うロボットシステムにおいて、
前記作業対象のワークまでの距離を計測する距離センサ及び前記作業対象のワークに対して作業を行う作業装置を取付可能であるロボットと、
理想的な形状のワークに基づいて作成されており前記作業場に置かれた前記作業対象のワークに対して前記距離センサを移動させるための計測用教示データと、前記理想的な形状のワークに基づいて作成されており前記作業対象のワークに対して前記作業装置を移動させるための作業用教示データと、前記作業場に置かれた前記作業対象のワークの形状に基づいて作業を行うために前記作業用教示データを補正した作業用補正教示データと、を記憶する記憶部と、
前記計測用教示データを用いて、前記距離センサを取り付けた前記ロボットを動作させて、前記作業場に置かれた前記作業対象のワークの表面を計測することで、前記作業対象のワークの複数の基準点での前記距離センサの検出結果を取得する計測制御部と、
前記基準点での前記距離センサの検出結果に基づいて、前記作業場に置かれた前記作業対象のワークの前記基準点及び当該基準点以外の点での撓みに起因する形状誤差、又は、前記作業場に置かれた前記作業対象のワークの形状を算出する算出部と、
前記算出部が算出した前記形状誤差又は前記作業対象のワークの形状に基づいて、前記作業用教示データを補正して前記作業用補正教示データを算出する補正部と、
前記作業用補正教示データを用いて、前記作業装置を取り付けた前記ロボットを動作させて、前記作業場に置かれた前記作業対象のワークの表面に沿って前記作業装置を移動させることで、前記作業対象のワークに対して作業を行う作業制御部と、
を備えることを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、
前記補正部は、前記算出部が算出した前記形状誤差又は前記作業対象のワークの形状に基づいて、前記作業用教示データの作成の基になった前記理想的な形状のワークの表面に対して、前記作業場に置かれた前記作業対象のワークの表面がなす角度の誤差を補正した前記作業用補正教示データを算出することを特徴とするロボットシステム。
【請求項３】
請求項２に記載のロボットシステムであって、
前記算出部が算出する前記形状誤差には、前記作業用教示データの作成の基になった前記理想的な形状のワークの表面に対して、前記作業場に置かれた前記作業対象のワークの表面がなす角度である角度誤差が含まれており、
前記算出部は、前記基準点を水平面に投影するとともに、前記距離センサが前記基準点で計測した値を高さ方向とした座標空間において、前記基準点同士を接続する直線の傾きに基づいて、前記角度誤差を算出することを特徴とするロボットシステム。
【請求項４】
請求項２に記載のロボットシステムであって、
前記算出部は、前記基準点での前記距離センサの検出結果と、前記作業用教示データの作成の基になった前記理想的な形状のワークの形状と、に基づいて、前記作業場に置かれた前記作業対象のワークの形状を示す形状関数を算出することを特徴とするロボットシステム。
【請求項５】
請求項４に記載のロボットシステムであって、
前記算出部が算出する前記形状関数が円の方程式であることを特徴とするロボットシステム。
【請求項６】
請求項１から５までの何れか一項に記載のロボットシステムであって、
前記補正部は、前記算出部が算出した前記形状誤差又は前記作業対象のワークの形状に基づいて、前記作業用教示データの作成の基になった前記理想的な形状のワークの表面に対して、前記作業場に置かれた前記作業対象のワークの表面が離間している距離を補正した前記作業用補正教示データを算出することを特徴とするロボットシステム。
【請求項７】
請求項６に記載のロボットシステムであって、
前記算出部が算出する前記形状誤差には、前記作業用教示データの作成の基になった前記理想的な形状のワークの表面に対して、前記作業場に置かれた前記作業対象のワークの表面が離間している距離である距離誤差が含まれており、
前記算出部は、前記基準点での前記距離誤差、及び、当該基準点との距離に基づいて、前記基準点以外の座標での前記距離誤差を算出することを特徴とするロボットシステム。
【請求項８】
請求項１から７までの何れか一項に記載のロボットシステムであって、
前記計測用教示データ及び前記作業用教示データの少なくとも一方には、前記作業用教示データの作成の基になった前記理想的な形状のワークの形状に沿うように設定された複数の教示点が含まれており、
複数の前記教示点のうち、前記ロボットを実際に動作させた場合に前記教示点よりも前記作業対象のワークに近い側を通る当該教示点を特定教示点とし、
前記特定教示点から前記作業対象のワークまでの距離は、前記特定教示点以外の前記教示点から前記作業対象のワークまでの距離よりも、長いことを特徴とするロボットシステム。
【請求項９】
作業場に置かれることで撓みが生じる作業対象のワークに対して作業を行うロボットであって、前記作業対象のワークまでの距離を計測する距離センサ及び前記作業対象のワークに対して作業を行う作業装置を取付可能であるロボットを制御するロボット制御方法において、
前記ロボットは、理想的な形状のワークに基づいて作成されており前記作業場に置かれた前記作業対象のワークに対して前記距離センサを移動させるための計測用教示データと、前記理想的な形状のワークに基づいて作成されており前記作業対象のワークに対して前記作業装置を移動させるための作業用教示データと、前記作業場に置かれた前記作業対象のワークの形状に基づいて作業を行うために前記作業用教示データを補正した作業用補正教示データと、に基づいて動作可能であり、
前記計測用教示データを用いて、前記距離センサを取り付けた前記ロボットを動作させて、前記作業場に置かれた前記作業対象のワークの表面を計測することで、前記作業対象のワークの複数の基準点での前記距離センサの検出結果を取得する事前計測工程と、
前記基準点での前記距離センサの検出結果に基づいて、前記作業場に置かれた前記作業対象のワークの前記基準点及び当該基準点以外の点での撓みに起因する形状誤差、又は、前記作業場に置かれた前記作業対象のワークの形状を算出する算出工程と、
前記算出工程で算出した前記形状誤差又は前記作業対象のワークの形状に基づいて、前記作業用教示データを補正して前記作業用補正教示データを算出する補正工程と、
前記作業用補正教示データを用いて、前記作業装置を取り付けた前記ロボットを動作させて、前記作業場に置かれた前記作業対象のワークの表面に沿って前記作業装置を移動させることで、前記作業対象のワークに対して作業を行う作業工程と、
を含むことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主として、ロボットに取り付けた作業装置によりワークに対して作業を行うロボットシステムに関する。
【背景技術】
【０００２】
特許文献１には、ロボットに光学式距離センサを取り付けて、ロボットを動かすことで、ワークの寸法を検査する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１−１７４９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
検査装置を用いてワークを検査する場合、ワークに対する検査装置の位置又は向きについて所定の条件が要求される場合がある。この条件を満たさないとワークを正確に検査することができない可能性がある。しかし、ワークを作業場に置いた場合、ワークが自重により撓むという事情もあるため、ワークに対する検査装置の位置及び向きを正確に調整することは困難である。なお、ワークに対して検査装置以外の作業装置を用いて作業を行う場合でも、同じ課題が存在する。
【０００５】
本発明は以上の事情に鑑みてされたものであり、その主要な目的は、自重により撓むワークに対して作業装置を用いて作業を行う場合において、ワークに対する作業装置の位置又は向きを正確に調整することが可能なロボットシステムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【０００７】
本発明の第１の観点によれば、以下の構成のロボットシステムが提供される。即ち、このロボットシステムは、作業場に置かれることで撓みが生じる作業対象のワークに対して作業を行う。このロボットシステムは、ロボットと、記憶部と、計測制御部と、算出部と、補正部と、作業制御部と、を備える。前記ロボットは、前記作業対象のワークまでの距離を計測する距離センサ及び前記作業対象のワークに対して作業を行う作業装置を取付可能である。前記記憶部は、理想的な形状のワークに基づいて作成されており前記作業場に置かれた前記作業対象のワークに対して前記距離センサを移動させるための計測用教示データと、前記理想的な形状のワークに基づいて作成されており前記作業対象のワークに対して前記作業装置を移動させるための作業用教示データと、前記作業場に置かれた前記作業対象のワークの形状に基づいて作業を行うために前記作業用教示データを補正した作業用補正教示データと、を記憶する。前記計測制御部は、前記計測用教示データを用いて、前記距離センサを取り付けた前記ロボットを動作させて、前記作業場に置かれた前記作業対象のワークの表面を計測することで、前記作業対象のワークの複数の基準点での前記距離センサの検出結果を取得する。前記算出部は、前記基準点での前記距離センサの検出結果に基づいて、前記作業場に置かれた前記作業対象のワークの前記基準点及び当該基準点以外の点での撓みに起因する形状誤差、又は、前記作業場に置かれた前記作業対象のワークの形状を算出する。前記補正部は、前記算出部が算出した前記形状誤差又は前記作業対象のワークの形状に基づいて、前記作業用教示データを補正して前記作業用補正教示データを算出する。前記作業制御部は、前記作業用補正教示データを用いて、前記作業装置を取り付けた前記ロボットを動作させて、前記作業場に置かれた前記作業対象のワークの表面に沿って前記作業装置を移動させることで、前記作業対象のワークに対して作業を行う。
【０００８】
本発明の第２の観点によれば、以下のロボット制御方法が提供される。即ち、このロボット制御方法では、作業場に置かれることで撓みが生じる作業対象のワークに対して作業を行うロボットであって、前記作業対象のワークまでの距離を計測する距離センサ及び前記作業対象のワークに対して作業を行う作業装置を取付可能であるロボットを制御する。前記ロボットは、理想的な形状のワークに基づいて作成されており前記作業場に置かれた前記作業対象のワークに対して前記距離センサを移動させるための計測用教示データと、前記理想的な形状のワークに基づいて作成されており前記作業対象のワークに対して前記作業装置を移動させるための作業用教示データと、前記作業場に置かれた前記作業対象のワークの形状に基づいて作業を行うために前記作業用教示データを補正した作業用補正教示データと、に基づいて動作可能である。このロボット制御方法は、事前計測工程と、算出工程と、補正工程と、作業工程と、を含む。前記事前計測工程では、前記計測用教示データを用いて、前記距離センサを取り付けた前記ロボットを動作させて、前記作業場に置かれた前記作業対象のワークの表面を計測することで、前記作業対象のワークの複数の基準点での前記距離センサの検出結果を取得する。前記算出工程では、前記基準点での前記距離センサの検出結果に基づいて、前記作業場に置かれた前記作業対象のワークの前記基準点及び当該基準点以外の点での撓みに起因する形状誤差、又は、前記作業場に置かれた前記作業対象のワークの形状を算出する。前記補正工程では、前記算出工程で算出した前記形状誤差又は前記作業対象のワークの形状に基づいて、前記作業用教示データを補正して前記作業用補正教示データを算出する。前記作業工程では、前記作業用補正教示データを用いて、前記作業装置を取り付けた前記ロボットを動作させて、前記作業場に置かれた前記作業対象のワークの表面に沿って前記作業装置を移動させることで、前記作業対象のワークに対して作業を行う。
【０００９】
これにより、作業対象のワークの撓みに起因して作業場に置かれた作業対象のワークの形状が変化している場合であっても、作業対象のワークの形状の変化に基づいて教示データを補正するため、作業対象のワークに対する作業装置の位置又は向きが、事前に教示した通りの位置関係に調整された状態で作業を行うことができる。従って、作業装置を用いて作業を適切に行うことができる。
【発明の効果】
【００１０】
本発明によれば、自重により撓む作業対象のワークに対して作業装置を用いて作業を行う場合において、作業対象のワークに対する作業装置の位置又は向きを正確に調整することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るロボットシステムの構成を示すブロック図。
【図２】ロボット及び作業対象のワークの斜視図。
【図３】理想的な形状のワークと、作業場に配置された撓みが生じた作業対象のワークと、を示す概略図。
【図４】作業装置を用いて適切に作業を行うために要求される許容距離及び許容角度を示す図。
【図５】制御部が行う制御を示すフローチャート。
【図６】ロボット及び作業対象のワークの形状と座標軸の向きを示す正面図。
【図７】ロボット及び作業対象のワークの形状と座標軸の向きを示す平面図。
【図８】距離センサを用いて作業対象のワークの外周を計測して得られる距離誤差を示す図。
【図９】距離センサを用いて作業対象のワークの所定範囲の面のみを計測して得られる距離誤差を示す図。
【図１０】ロボットが教示点から外れた位置を通る場合の補正方法を示す図。
【図１１】作業対象のワークの形状を示す関数の算出方法を説明する図。
【発明を実施するための形態】
【００１２】
次に、図面を参照して本発明の実施形態を説明する。初めに、図１及び図２を参照して本実施形態のロボットシステム１について説明する。図１は、ロボットシステム１の構成を示すブロック図である。図２は、ロボット１０及び作業対象のワーク１００の斜視図である。
【００１３】
ロボットシステム１は、ロボット１０と、制御部３０と、を備える。オペレータは制御部３０又は別の装置を用いて、ロボット１０の教示データを作成する。制御部３０は、この教示データに基づいてロボット１０を制御する。これにより、作業対象のワーク１００の表面に沿ってロボット１０を移動させることができる。
【００１４】
ロボット１０が行う作業は、作業対象のワーク１００の形状に応じた動作を行うことである。この作業としては、例えば作業対象のワーク１００の検査（作業対象のワーク１００の表面欠陥を調べる検査、又は、作業対象のワーク１００の厚みを調べる検査等）、塗装、及び洗浄等がある。
【００１５】
ロボット１０は、作業時において撓みが生じる作業対象のワーク１００に対して作業を行う。従って、作業対象のワーク１００は、例えば撓みが生じ易い形状（湾曲又は屈曲した面が含まれる板状、３軸の立体座標系で表面形状を表したときに３軸全ての値が変化する部分を有する形状等）である。また、作業対象のワーク１００の材料は、例えばヤング率等の弾性率が小さい（即ち剛性が低い）性質を有している。作業対象のワーク１００の材料は例えばガラスである。
【００１６】
また、ロボット１０は、様々なガラス板に対して作業を行うことが可能である。例えば、ロボット１０は、自動車等の乗物用の窓ガラス（例えば、湾曲した面が含まれるフロントガラス）、及び、曲面形状の有機ＥＬパネルや液晶パネルに用いられるガラス等に対して作業を行うことが可能である。
【００１７】
ロボット１０は、支持台１１と、多関節アーム１２と、装着部１３と、を備える。支持台１１は施設内の所定の位置に固定してもよいし、直動装置の可動側に設置してもよい。多関節アーム１２は、複数の関節を有しており、各関節にはアクチュエータが備えられている。これらのアクチュエータが制御部３０により制御されることで、多関節アーム１２の姿勢（位置）及び速度が調整される。装着部１３は、多関節アーム１２の先端に取り付けられている。装着部１３には、作業対象のワーク１００の形状の計測を行う距離センサ２１、又は、作業対象のワーク１００に対して作業を行う作業装置２２が取り付けられる。
【００１８】
距離センサ２１は、レーザセンサ等であり、距離センサ２１から作業対象のワーク１００の表面までの距離を検出できる。作業装置２２は、ロボット１０が行う作業に応じた装置が選択される。ロボット１０が作業対象のワーク１００の表面欠陥を調べる検査を行う場合、作業装置２２はＣＣＤカメラ等の撮像装置である。また、ロボット１０が作業対象のワーク１００の厚みを調べる検査を行う場合、作業装置２２はレーザセンサ等の厚み検出センサである。また、ロボット１０が作業対象のワーク１００に対して塗装を行う場合、作業装置２２は塗料の噴射装置である。
【００１９】
制御部３０は、公知のコンピュータにより構成されており、演算装置（ＣＰＵ等）と記憶装置（ＲＯＭ、ＲＡＭ、ＨＤＤ等）を備えている。また、この記憶装置には、各種のプログラムが記憶されている。演算装置がこのプログラムをＲＡＭ等に読み出して実行することで制御部３０はロボット１０に関する様々な制御を行う。これにより、制御部３０を計測制御部３１、算出部３２、補正部３３、及び作業制御部３４として機能させることができる（詳細な機能は後述）。また、制御部３０は、上述した教示データ等を記憶する記憶部３５を備える。
【００２０】
また、制御部３０は、１つのハードウェアで構成されていてもよいし、離れた位置に配置された複数のハードウェアで構成されていてもよい。例えば、制御部３０は、ロボット１０の教示データを作成するアプリケーションがインストールされたハードウェア（コンピュータ）と、教示データに基づいてロボット１０を動作させるハードウェア（ロボット制御装置）と、から構成されていてもよい。また、例えば記憶部３５は、計測制御部３１〜作業制御部３４とは異なる位置に配置される記憶装置であってもよい。
【００２１】
また、作業対象のワーク１００は、作業場４０に配置されている。作業場４０には、図２に示すように、作業台４１と、位置決め具４２と、が設けられている。位置決め具４２は、作業台４１上に複数配置されている。位置決め具４２は、作業対象のワーク１００の位置決めを行う位置決めピンを含んでいる。作業対象のワーク１００が複数の位置決めピンに内接するように配置されることで、作業対象のワーク１００が位置決めされる。なお、作業対象のワーク１００の位置決めを厳密に行わず、ロボット１０に取り付けたセンサを用いて、作業対象のワーク１００の位置を特定してもよい。
【００２２】
次に、作業対象のワーク１００に生じる撓みの影響について図３及び図４を参照して説明する。図３は、理想的な形状のワーク２００と、作業場４０に配置された撓みが生じた作業対象のワーク１００と、を示す概略図である。図４は、作業装置２２を用いて適切に作業を行うために要求される許容距離及び許容角度を示す図である。理想的な形状のワーク２００は、ワークの３次元モデル（３次元データ）であってもよいし、実物のワークであってもよい。本実施形態では、ワークの３次元モデルを理想的な形状のワーク２００とする。
【００２３】
ロボット１０の教示は、ロボット１０に行わせる動作の順序に応じて空間上の点（座標）を教示点として設定することで行われる。また、教示点には、空間上の位置だけでなく向き（Ｘ軸回りの回転角、Ｙ軸回りの回転角）についても設定が必要となる。
【００２４】
ここで、本実施形態の制御部３０は、ロボット１０を実際に動かすことなく、コンピュータ上で構築される仮想空間においてロボット１０、周辺装置、及び理想的な形状のワーク２００を配置して教示を行う。これにより、ロボット１０を実際に動かす必要がないため、教示に掛かる手間及び時間を低減できる。なお、制御部３０は、３次元モデルを使用することなくロボット１０の教示を行うこともできる。また、ロボット１０に教示を行うことで作成したデータであって、ロボット１０を制御するために用いられるデータ（複数の教示点及びその通過順序等が記述されたデータ）を教示データと称する。
【００２５】
一般的には、仮想空間に配置される理想的な形状のワーク２００は、設計時等に作成した３次元のＣＡＤデータであるため、撓みが生じていない。しかし、実際の作業では作業対象のワーク１００の自重の影響により撓みが生じるため、図３に示すように、理想的な形状のワーク２００と、作業場４０の作業台４１に置かれた作業対象のワーク１００とで、形状が異なる。
【００２６】
また、作業装置２２には、作業対象のワーク１００に対する作業を適切に行うために必要な距離条件及び向き条件が定められている。距離条件とは、作業装置２２から作業対象のワーク１００までの距離に関する条件である。具体的には、図４に示すように、作業装置２２から作業対象のワーク１００までの距離をＤとして、距離に関する最適値をＡとして許容距離をαとしたときに、−α＜Ｄ−Ａ＜＋α等の条件を満たす必要がある。また、向き条件とは、作業対象のワーク１００に対する作業装置２２の角度に関する条件である。具体的には、図４に示すように、作業対象のワーク１００から引いた法線に対して作業装置２２がなす角をθとして、許容角度をβとしたときに、−β＜θ＜＋β等の条件を満たす必要がある。
【００２７】
ここで、理想的な形状のワーク２００に対して、上記の位置条件及び向き条件を満たすように教示データを作成した場合であっても、作業対象のワーク１００に撓みが生じることで作業対象のワーク１００の形状が変化するため、この位置条件又は向き条件を満たさなくなる可能性がある。
【００２８】
以上を考慮し、本実施形態では、距離センサ２１を用いて事前に作業対象のワーク１００の形状を計測し、撓み量に応じて教示データを補正した後に、作業対象のワーク１００に対して作業を行う。以下、本実施形態のロボット１０の教示方法について図５のフローチャートを参照して詳細に説明する。また、本制御では、図６及び図７に示すように、水平方向であって作業対象のワーク１００の短手方向に沿うようにＸ軸を設定し、水平方向であって作業対象のワーク１００の長手方向に沿うようにＹ軸を設定し、高さ方向に沿うようにＺ軸を設定する。
【００２９】
また、以下の説明では、ロボット１０に距離センサ２１を装着して事前計測を行うための教示データを計測用教示データと称する。計測用教示データと作業用教示データは、理想的な形状のワーク２００に基づいて作成されている。また、ロボット１０に作業装置２２を装着して作業を行うための補正前の教示データを作業用教示データと称する。なお、計測用教示データと作業用教示データは、ともに作業対象のワーク１００の表面に沿うように距離センサ２１又は作業装置２２を移動させる点で同じである。ただし、距離センサ２１と作業装置２２は、適切に計測又は作業を行うための上述の距離条件が異なるため、作業対象のワーク１００に対して離すべき長さが異なる。従って、計測用教示データと作業用教示データでは、作業対象のワーク１００に対する教示点の距離が異なる。なお、距離センサ２１及び作業装置２２の特性によっては、計測用教示データと作業用教示データとを共通にすることもできる。
【００３０】
初めに、オペレータは、ロボット１０に距離センサ２１を装着する。なお、距離センサ２１の装着作業は、ロボット１０が自ら行ってもよい。次に、制御部３０の計測制御部３１は、計測用教示データを用いてロボット１０を動作させることで、距離センサ２１を作業対象のワーク１００の表面に沿って移動させ、距離センサ２１で作業対象のワーク１００の複数の基準点を計測する（Ｓ１０１、事前計測工程）。
【００３１】
基準点は、予め設定された点であり、基準点での計測結果に基づいて、理想的な形状のワーク２００に対する作業対象のワーク１００の形状誤差を検出する。従って、図８に示すように、作業対象のワーク１００の外周部（外縁部）のみに作業を行う場合は、当該外周部の形状誤差のみが必要となるため、基準点を作業対象のワーク１００の外周部に設定する。一方、図９に示すように、作業対象のワーク１００の全体又は一部の面に作業を行う場合は、作業対象のワーク１００の外周部以外の内側領域に基準点を設定してもよい。なお、作業対象のワーク１００の全体又は一部の面に作業を行う場合であっても、後述のように外周部の基準点から内側領域の形状誤差を推測できるので、基準点を外周部のみに設定してもよい。また、基準点が多い方が誤差を正確に検出できるが、基準点の多さに応じて事前計測に掛かる時間が増大する。また、基準点の取り方は様々であるが、例えばＸ軸に平行に並べた基準点を設定したり、Ｙ軸に平行に並べた基準点を設定することが好ましい。
【００３２】
次に、制御部３０の算出部３２は、基準点及び基準点以外の点について形状誤差を算出する（Ｓ１０２、算出工程）。形状誤差とは、理想的な形状のワーク２００に対する作業対象のワーク１００の形状の差異であり、作業対象のワーク１００の撓みに起因して発生している。具体的には、形状誤差は、高さ方向の誤差（距離センサ２１の計測方向の誤差）である距離誤差と、理想的な形状のワーク２００の表面に対して作業対象のワーク１００の表面がなす角度である角度誤差と、を含む。以下、各誤差の算出方法について詳細に説明する。なお、ステップＳ１０２では、基準点以外の全ての点の形状誤差を算出する必要はなく、基準点以外の点のうち、作業用教示データの教示点が設定された点について形状誤差を算出すればよい。
【００３３】
初めに、基準点での距離誤差の算出方法について説明する。算出部３２は、計測用教示データの教示点の位置に基づいて、距離センサ２１から、理想的な形状のワーク２００の表面までの距離（データ上距離）を算出できる。従って、基準点におけるデータ上距離と、基準点において距離センサ２１が検出した実際の距離と、の差分が距離誤差に相当する。このようにして、算出部３２は、基準点での距離誤差を算出する。
【００３４】
次に、基準点以外の点での距離誤差の算出方法について説明する。基準点以外の点での距離誤差は、基準点の距離誤差及び当該基準点までの距離等に基づいて算出される。以下、図８を参照して説明する。図８は、「距離センサ及び作業装置の軌跡」と書かれた図に示すように、作業対象のワーク１００の外周部のみが距離センサ２１の計測対象であるとともに、作業装置２２の作業対象である。また、その下の３つのグラフは、基準点を水平面に投影するとともに、距離誤差の大きさをＺ軸の値として記載されている。図８の「８点  外周のみ」と書かれた２つのグラフに示すように、基準点Ｐ１と基準点Ｐ２の間の点Ｐの距離誤差は、基準点Ｐ１と基準点Ｐ２を接続する線分を点Ｐが内分するとみなした場合の内分比に基づいて算出される。具体的には、点Ｐがこの線分をＬｙ１：Ｌｙ２に内分する場合において、基準点Ｐ１での距離誤差をＺ１とし、基準点Ｐ２での距離誤差をＺ２としたときに、点Ｐでの距離誤差は、Ｚ１・Ｌｙ２／（Ｌｙ１＋Ｌｙ２）＋Ｚ２・Ｌｙ１／（Ｌｙ１＋Ｌｙ２）で算出される。このようにして基準点以外の点での距離誤差が算出される。
【００３５】
また、図９に示す例では、「作業装置の軌跡」と書かれた図に示すように、作業対象のワーク１００の外周部以外の内側領域も含めて、作業装置２２の作業対象である。この場合、距離センサ２１を用いた事前計測は、作業対象のワーク１００の外周部のみに対して行われるか、作業対象のワーク１００の外周部に加えて内側領域に対して行われる。また、その下の４つのグラフは、図８と同様に、基準点を水平面に投影するとともに、距離誤差の大きさをＺ軸の値として記載されている。図９で示す例では、作業対象のワーク１００の内側領域も作業対象であるため、内側領域上の点についても、距離誤差が算出される。内側領域上の点での距離誤差については、この点を取り囲む基準点の距離誤差を用いて算出される。具体的には、図９の「１０点」と書かれた２つのグラフに示す点Ｐでの距離誤差は、この点Ｐを取り囲む、基準点Ｐ１、基準点Ｐ２、基準点Ｐ３、及び基準点Ｐ４を点Ｐが内分するとみなした場合の内分比に基づいて算出される。
【００３６】
次に、角度誤差の算出方法について説明する。仮に、作業対象のワーク１００が理想的な形状のワーク２００に完全に一致している場合、図８に示すグラフのＺ軸の値は何れも０である。この場合、角度誤差も当然全て０となる。また、仮に、作業対象のワーク１００の全ての領域について距離誤差が一定値である場合も、角度誤差は当然全て０となる。つまり、角度誤差は、距離誤差の大きさではなく、距離誤差の差分に起因して発生する。例えば、図８の「８点  外周のみ」と書かれた２つのグラフでは、基準点Ｐ１と基準点Ｐ２とで距離誤差の値が異なる。基準点Ｐ１の距離誤差と基準点Ｐ２の距離誤差の差分をＬｚとし、基準点Ｐ１と基準点Ｐ２の水平面での距離（Ｙ軸に沿う距離）をＬｙ１＋Ｌｙ２とした場合、基準点Ｐ１と基準点Ｐ２を結ぶ線分は、Ｌｚ／（Ｌｙ１＋Ｌｙ２）の傾きを有する。この傾きは、理想的な形状のワーク２００に対して、作業対象のワーク１００がどの程度傾斜しているかを示す値であるため、この傾きが角度誤差に相当する。従って、基準点Ｐ１と基準点Ｐ２の間の点での角度誤差は、上記の傾きである。なお、基準点は傾きが異なる２つの線分の交点であるため、基準点での傾きが特定できないが、例えば、基準点に接続される２つの線分の傾きの平均等を基準点での傾きとすればよい。
【００３７】
また、作業対象のワーク１００の内側領域上の点での傾きについても、同様の方法で求められる。また、この場合、例えば図９の「１０点」と書かれた２つのグラフにおいて、基準点Ｐ１と基準点Ｐ３を接続した線分１の傾きと、基準点Ｐ２と基準点Ｐ４を接続した線分２の傾きと、点Ｐが線分１と線分２に対してどの程度近いかを示す比率（Ｌｘ１とＬｘ２の比率、即ち内分比）と、に基づいて、Ｘ軸回りの角度誤差が検出される。同様に、図９のグラフにおいて、基準点Ｐ１と基準点Ｐ２を接続した線分３の傾きと、基準点Ｐ３と基準点Ｐ４を接続した線分４の傾きと、点Ｐが線分３と線分４に対してどの程度近いかを示す比率（Ｌｙ１とＬｙ２の比率、即ち内分比）と、に基づいて、Ｙ軸回りの角度誤差が検出される。
【００３８】
以上のようにして、算出部３２は、基準点及び基準点以外の点（詳細には、作業用教示データの教示点が設定された点）について、形状誤差（距離誤差及び角度誤差）を算出する。なお、これらの形状誤差は記憶部３５に記憶される。また、基準点よりも外側の位置の点について形状誤差を算出する場合は、この点を内分点ではなく外分点とみなして計算することで、形状誤差の値を算出できる。
【００３９】
次に、制御部３０の補正部３３は、形状誤差に基づいて作業用教示データを補正して、作業用補正教示データを作成する（Ｓ１０３、補正工程）。補正部３３は、作業対象のワーク１００の距離誤差に基づいて、当該距離誤差の影響を打ち消す方向に教示点を移動させる。例えば、理想的な形状のワーク２００に対して作業対象のワーク１００が５ｍｍ下方に位置している場合、補正部３３は、教示点を５ｍｍ下方に変更する。また、補正部３３は、作業対象のワーク１００の角度誤差に基づいて、当該角度誤差の影響を打ち消す向きに教示点が示す方向を回転させる。例えば、理想的な形状のワーク２００の表面に対して作業対象のワーク１００の表面がＸ軸回りに３°誤差を有する場合、補正部３３は、この教示点が示す角度をＸ軸回りに３°回転させる。距離誤差又は角度誤差に基づいて作業用教示データを補正する際には、距離誤差又は角度誤差が示す値に、所定の調整量を加えた値で補正を行ってもよい。以上のようにして算出した作業用補正教示データは、記憶部３５に記憶される。
【００４０】
以上のステップＳ１０１からＳ１０３が事前処理である。次のステップＳ１０４は、ロボット１０による作業対象のワーク１００への作業を行う段階である。従って、ロボット１０には、距離センサ２１に代えて作業装置２２が装着される。なお、この交換作業はオペレータが行ってもよいし、ロボット１０が自ら行ってもよい。また、本実施形態では、同じ形状の作業対象のワーク１００に対して、同じ作業を連続して行う構成である。個々の作業対象のワーク１００の撓みは殆ど同じであると考えられるので、１つ目の作業対象のワーク１００に対して事前処理を行って作業用補正教示データを作成した後は、同じ作業用補正教示データを用いて、２つ目以降の作業対象のワーク１００に対して作業が行われる。
【００４１】
ロボット１０に装着する装置を作業装置２２に交換した後において、制御部３０の作業制御部３４は、作業用補正教示データを用いてロボット１０を動作させることで、ロボット１０に装着された作業装置２２を作業対象のワーク１００の表面に沿って移動させ、作業装置２２を用いて作業対象のワーク１００に対する作業を実行する（Ｓ１０４、作業工程）。作業用補正教示データは、作業対象のワーク１００の自重による撓みの影響を考慮して補正されているため、作業装置２２の位置条件及び向き条件を満たした状態で作業を行うことができる。
【００４２】
その後、作業対象のワーク１００又は作業内容が変更された場合は再び事前処理を行う必要がある。従って、制御部３０は、作業対象のワーク１００又は作業内容が変更されたと判断した場合は（Ｓ１０５）、再びステップＳ１０１からＳ１０３の処理を行って、新たな作業用補正教示データを作成する。
【００４３】
次に、図１０を参照して、別の観点での教示点の補正について説明する。図１０は、ロボット１０が教示点から外れた位置を通る場合の補正方法を示す図である。なお、以下で説明する処理は必須ではなく、省略することもできる。
【００４４】
ロボット１０は、作業装置２２が作業用教示データの教示点を通るように制御部３０によって制御されているが、移動方向が急激に変化する教示点（例えば、図１０に示す軌跡補正前教示点２）については、作業装置２２が当該教示点よりも内側を通過することがある。本実施形態では、このような教示点を特定教示点と称する。言い換えれば、特定教示点を通過する理論上の軌跡と、実際の軌跡と、の間には差異が生じることがある。
【００４５】
この場合、軌跡補正前教示点２（特定教示点）が適切な位置に設定されていた場合であっても、作業装置２２の実際の軌跡が、ロボット１０が適切に作業を行うための軌跡から外れてしまう。その結果、作業装置２２から作業対象のワーク１００までの距離が短くなるため、作業を適切に行うことができない可能性がある。そのため、本実施形態では、以下の軌跡補正を行う。
【００４６】
軌跡補正とは、図１０に示すように、作業装置２２が通過すべき軌跡補正前教示点２（特定教示点）よりも外側に軌跡補正後教示点２ｘを設定することで、作業装置２２の実際の軌跡と、ロボット１０が適切に作業を行うための軌跡と、を近づける処理である。これにより、作業装置２２が教示点よりも内側を通過する状況においても、作業装置２２から作業対象のワーク１００までの距離を最適値に近づけることができる。この軌跡補正は、作業用教示データに限られず、計測用教示データに対しても行うことができる。
【００４７】
なお、一般的に、各教示点から作業対象のワーク１００までの距離は一定であるため、特定教示点から作業対象のワーク１００までの距離は、他の教示点から作業対象のワーク１００までの距離と比較して長くなる。また、理論上の軌跡と実際の軌跡の差異の大きさは、ロボット１０の速度、及び、該当する教示点での移動方向の変化の急峻さ等にも依存するため、それらを考慮して設定することが好ましい。
【００４８】
次に、上記実施形態の変形例を説明する。図１１は、作業対象のワーク１００の形状を示す関数の算出方法を説明する図である。
【００４９】
上記実施形態では、算出部３２は、基準点の計測結果に基づいて、理想的な形状のワーク２００の形状に対する作業対象のワーク１００の形状の誤差である形状誤差を算出する。これに代えて、本変形例の算出部３２は、基準点の計測結果に基づいて、作業対象のワーク１００の形状（表面の形状）を示す形状関数を算出する。この作業対象のワーク１００の形状を示す形状関数と、理想的な形状のワーク２００の形状と、に基づいて、任意の点での角度誤差を算出できるので、上記実施形態と同様に、作業用教示データを補正して作業用補正教示データを算出できる。以下、形状関数の算出方法について説明する。
【００５０】
図１１には、理想的な形状のワーク２００の形状、作業対象のワーク１００の形状、教示データが示す経路がそれぞれ示されている。本変形例では、理想的な形状のワーク２００の形状を円弧Ｏ1と近似するとともに、作業対象のワーク１００の形状を円弧Ｏ2と近似する。
【００５１】
算出部３２は、理想的な形状のワーク２００の任意の３点Ａ1，Ｂ1，Ｃ1を選択する。次に、算出部３２は、Ａ1を通り、円弧Ｏ1に接する接線ｎ1を算出する。次に、算出部３２は、Ａ1を通り、接線ｎ1に垂直な直線ｍ1を算出する。算出部３２は、他の２点Ｂ1，Ｃ1についても同様の処理を行い、接線ｎ2,ｎ3及び直線ｍ2,ｍ3を算出する。また、直線ｍ1,ｍ2,ｍ3と円弧Ｏ2との交点をそれぞれＡ2，Ｂ2，Ｃ2とする。そして、直線ｍ1,ｍ2,ｍ3と計測用教示データが示す経路との交点をそれぞれＡ0，Ｂ0，Ｃ0とする。ここで、Ａ0Ａ2間の距離は、距離センサ２１を用いて求めることができる。同様に、Ｂ0Ｂ2間の距離及びＣ0Ｃ2間の距離についても求めることができる。この計測によって得られる関係式と、３点Ａ2，Ｂ2，Ｃ2が円弧Ｏ2を通ることと、に基づいて、円弧Ｏ2を示す関数（形状関数）を算出することができる。
【００５２】
以上に説明したように、本実施形態のロボットシステム１は、制御部３０が上記のロボット制御方法によってロボット１０を制御することで、作業場４０に置かれることで撓みが生じる作業対象のワーク１００に対して作業を行う。このロボットシステム１は、ロボット１０と、記憶部３５と、計測制御部３１と、算出部３２と、補正部３３と、作業制御部３４と、を備える。ロボット１０は、作業対象のワーク１００までの距離を計測する距離センサ２１及び作業対象のワーク１００に対して作業を行う作業装置２２を取付可能である。記憶部３５は、理想的な形状のワーク２００に基づいて作成されており作業場４０に置かれた作業対象のワーク１００に対して距離センサ２１を移動させるための計測用教示データと、理想的な形状のワーク２００に基づいて作成されており作業場４０に置かれた作業対象のワーク１００に対して作業装置２２を移動させるための作業用教示データと、作業場４０に置かれた作業対象のワーク１００の形状に基づいて作業を行うために作業用教示データを補正した作業用補正教示データと、を記憶する。計測制御部３１は、計測用教示データを用いて、距離センサ２１を取り付けたロボット１０を動作させて、作業場４０に置かれた作業対象のワーク１００の表面に沿って距離センサ２１を移動させることで、作業対象のワーク１００の複数の基準点での距離センサ２１の検出結果を取得する（事前計測工程）。算出部３２は、基準点での距離センサ２１の検出結果に基づいて、作業場４０に置かれた作業対象のワーク１００の基準点及び当該基準点以外の点での撓みに起因する形状誤差、又は、作業場４０に置かれた作業対象のワーク１００の形状を算出する（算出工程）。補正部３３は、算出部３２が算出した形状誤差又は作業対象のワーク１００の形状に基づいて、作業用教示データを補正して作業用補正教示データを算出する（補正工程）。作業制御部３４は、作業用補正教示データを用いて、作業装置２２を取り付けたロボット１０を動作させて、作業場４０に置かれた作業対象のワーク１００の表面に沿って作業装置２２を移動させることで、作業対象のワーク１００に対して作業を行う（作業工程）。
【００５３】
これにより、作業対象のワーク１００の撓みに起因して作業場に置かれた作業対象のワーク１００の形状が変化している場合であっても、作業対象のワーク１００の形状の変化に基づいて教示データを補正するため、作業対象のワーク１００に対する作業装置２２の位置又は向きが、事前に教示した通りの位置関係に調整された状態で作業を行うことができる。従って、作業装置２２を用いて作業を適切に行うことができる。
【００５４】
また、本実施形態のロボットシステム１において、補正部３３は、算出部３２が算出した形状誤差又は作業対象のワーク１００の形状に基づいて、作業用教示データの作成の基になった理想的な形状のワーク２００の表面に対して、作業場４０に置かれた作業対象のワーク１００の表面がなす角度の誤差を補正した作業用補正教示データを算出する。
【００５５】
これにより、作業対象のワーク１００に対する作業装置２２の向きが重要となる場合であっても、作業を適切に行うことができる。
【００５６】
また、本実施形態のロボットシステム１において、算出部３２が算出する形状誤差には、作業用教示データの作成の基になった理想的な形状のワーク２００の表面に対して、作業場４０に置かれた作業対象のワーク１００の表面がなす角度である角度誤差が含まれている。算出部３２は、基準点を水平面に投影するとともに、距離センサ２１が基準点で計測した値を高さ方向とした座標空間において、基準点同士を接続する直線の傾きに基づいて、角度誤差を算出する。
【００５７】
これにより、簡単な処理で、基準点以外の様々な位置での角度誤差を算出できる。
【００５８】
また、本実施形態のロボットシステム１において、算出部３２は、基準点での距離センサ２１の検出結果と、作業用教示データの作成の基になった理想的な形状のワーク２００の形状と、に基づいて、作業場４０に置かれた作業対象のワーク１００の形状を示す形状関数を算出する。
【００５９】
これにより、基準点以外の位置での角度誤差をより正確に検出できる。
【００６０】
また、本実施形態のロボットシステム１において、算出部３２が算出する形状関数が円の方程式である。
【００６１】
これにより、作業対象のワーク１００の表面の少なくとも一部が円弧に近似できる場合は、比較的簡単な処理で、基準点以外の位置での角度誤差をより正確に検出できる。
【００６２】
また、本実施形態のロボットシステム１において、補正部３３は、算出部３２が算出した形状誤差又は作業対象のワーク１００の形状に基づいて、作業用教示データの作成の基になった理想的な形状のワーク２００の表面に対して、作業場４０に置かれた作業対象のワーク１００の表面が離間している距離を補正した作業用補正教示データを算出する。
【００６３】
これにより、作業対象のワーク１００に対する作業装置２２の距離が重要となる場合であっても、作業を適切に行うことができる。
【００６４】
また、本実施形態のロボットシステム１において、算出部３２が算出する形状誤差には、作業用教示データの作成の基になった理想的な形状のワーク２００の表面に対して、作業場４０に置かれた作業対象のワーク１００の表面が離間している距離である距離誤差が含まれている。算出部３２は、基準点での距離誤差、及び、当該基準点との距離に基づいて、基準点以外の座標での距離誤差を算出する。
【００６５】
これにより、簡単な処理で、基準点以外の様々な位置での距離誤差を算出できる。
【００６６】
また、本実施形態のロボットシステム１において、計測用教示データ及び作業用教示データの少なくとも一方には、理想的な形状のワーク２００に沿うように設定された複数の教示点が含まれている。複数の教示点のうち、ロボット１０を実際に動作させた場合に教示点よりも作業対象のワーク１００に近い側を通る当該教示点を特定教示点とする。特定教示点から作業対象のワーク１００までの距離は、特定教示点以外の教示点から作業対象のワーク１００までの距離よりも、長い。
【００６７】
これにより、作業対象のワーク１００により一層的確に沿うように距離センサ２１を移動させることができる。
【００６８】
以上に本発明の好適な実施の形態及び変形例を説明したが、上記の構成は例えば以下のように変更することができる。
【００６９】
上記実施形態では、距離センサ２１と作業装置２２は異なる装置であるが、１つの装置が距離センサ２１と作業装置２２の両方の機能を有する構成であってもよい。この場合、ステップＳ１０３とステップＳ１０４の間で、装置の交換が不要となる。
【００７０】
上記実施形態では、作業対象のワーク１００及び作業内容が同じである場合は、２つ目以降の作業対象のワーク１００に対しては、１つ目の作業対象のワーク１００で算出した作業用補正教示データを用いる。これに代えて、例えば高い精度が要求される作業を行う場合については、２つ目以降の作業対象のワーク１００に対しても事前処理を毎回行って作業用補正教示データを算出してもよい。
【００７１】
上記変形例では、作業対象のワーク１００の形状を円弧（円の方程式）に近似したが、楕円弧又は多項式等の他の関数に近似してもよい。この場合、近似する関数に応じた点数の計測が必要となる。
【００７２】
上記変形例では、形状関数を用いて角度誤差を算出することを示したが、この形状関数と理想的な形状のワーク２００の形状とに基づいて距離誤差を算出することもできる。
【００７３】
ロボットシステム１は、複数のロボット１０を備えていてもよい。この場合、１つのロボット１０を用いて事前計測工程を行い、その結果を他のロボット１０に適用して作業工程を行うこともできる。
【符号の説明】
【００７４】
１  ロボットシステム
１０  ロボット
２１  距離センサ
２２  作業装置
３０  制御部
３１  計測制御部
３２  算出部
３３  補正部
３４  作業制御部
３５  記憶部
１００  作業対象のワーク
２００  理想的な形状のワーク
【図１】
2020044619.tif 000003
【図２】
2020044619.tif 000004
【図３】
2020044619.tif 000005
【図４】
2020044619.tif 000006
【図５】
2020044619.tif 000007
【図６】
2020044619.tif 000008
【図７】
2020044619.tif 000009
【図８】
2020044619.tif 000010
【図９】
2020044619.tif 000011
【図１０】
2020044619.tif 000012
【図１１】
2020044619.tif 000013