(57)【要約】【課題】ロボットの座標系とセンサの座標系との間の高精度のキャリブレーションを自動的に実行できるロボット装置を提供する。【解決手段】ロボット１と、動作制御部２１と、ロボット１の制御対象部位の位置に関する値を検出するセンサ３と、ロボット１を低速動作させたときのセンサの検出値を用いて制御対象部位の低速時位置情報を取得する低速時位置情報取得部２４と、低速時位置情報と指令位置とを用いてセンサ３とロボット１間のキャリブレーションを実行するキャリブレーション部２３と、動作プログラムに従ってロボット１を動作させたときのセンサの検出値と、低速時位置情報又は指令位置と、キャリブレーションによって得られた較正データとを用いて、動作プログラムに記述された動作と制御対象部位の実動作との偏差を低減する補正量を学習する学習制御部２２と、を具備するロボット装置１である。【選択図】図３
2020078859.tif 000002
【特許請求の範囲】
【請求項１】
ロボットと、
前記ロボットの動作を制御する動作制御部と、
前記ロボットの制御対象部位の位置に関する値を検出するセンサと、
前記動作制御部が動作プログラムに記述された動作を前記動作プログラムで指定された速度よりも低い速度で前記ロボットに実行させたときの、前記制御対象部位の位置に関する前記センサの検出値を用いて、前記制御対象部位の低速時位置情報を取得する低速時位置情報取得部と、
前記低速時位置情報と前記動作プログラムによる指令位置とを用いて前記センサと前記ロボットとの間のキャリブレーションを実行するキャリブレーション部と、
前記動作制御部が前記動作プログラムに従って前記ロボットを動作させたときの前記センサの検出値と、前記低速時位置情報又は前記指令位置と、前記キャリブレーションによって得られた較正データとを用いて、前記動作プログラムに記述された動作と前記制御対象部位の実動作との偏差を低減するための補正量を学習する学習制御部と、
を具備するロボット装置。
【請求項２】
前記キャリブレーションによって得られる前記較正データは、前記センサの座標系を前記ロボットの座標系に変換するためのデータを含む、請求項１に記載のロボット装置。
【請求項３】
前記センサは前記実動作の軌跡を撮影するカメラを有する、請求項１又は２に記載のロボット装置。
【請求項４】
前記センサは前記ロボットの手首部に取り付けられ該手首部の位置を表す値を検出する、請求項１又は２に記載のロボット装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レーザ加工その他の各種加工を行うために用いられるロボット装置に関する。
【背景技術】
【０００２】
レーザ加工その他の各種加工を行う加工システムにおいてロボットの軌跡精度は重要である。しかし、減速器やロボットアームの剛性不足、バックラッシ、摩擦等の精度悪化要因によってロボットの先端位置が目標位置からずれたり振動したりすることで加工品質が悪化する場合がある。このような問題の対処法として、ロボットの先端にセンサを取り付け、ロボット動作中の位置偏差や振動をセンサによって計測し、学習制御を繰り返し実行することで位置偏差や振動を低減する方法が提案されている（例えば、特許文献１及び特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１６７８１７号公報
【特許文献２】特開２０１２−２４０１４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のようにセンサを用いてロボットの先端位置の動作軌跡を測定して学習制御を行う場合、加工システムのユーザはロボットの座標系とセンサの座標系との間のキャリブレーションを行う必要がある。一般に、キャリブレーションには手間がかかり、またキャリブレーションの精度が悪いと学習制御による軌跡精度の改善効果が薄くなる。ロボットの座標系とセンサの座標系との間の高精度のキャリブレーションを自動的に実行できるロボット装置が望まれている。
【課題を解決するための手段】
【０００５】
本開示の一態様は、ロボットと、前記ロボットの動作を制御する動作制御部と、前記ロボットの制御対象部位の位置に関する値を検出するセンサと、前記動作制御部が動作プログラムに記述された動作を前記動作プログラムで指定された速度よりも低い速度で前記ロボットに実行させたときの、前記制御対象部位の位置に関する前記センサの検出値を用いて、前記制御対象部位の低速時位置情報を取得する低速時位置情報取得部と、前記低速時位置情報と前記動作プログラムによる指令位置とを用いて前記センサと前記ロボットとの間のキャリブレーションを実行するキャリブレーション部と、前記動作制御部が前記動作プログラムに従って前記ロボットを動作させたときの前記センサの検出値と、前記低速時位置情報又は前記指令位置と、前記キャリブレーションによって得られた較正データとを用いて、前記動作プログラムに記述された動作と前記制御対象部位の実動作との偏差を低減するための補正量を学習する学習制御部と、を具備するロボット装置である。
【発明の効果】
【０００６】
上記構成によれば、カメラ座標系とワールド座標系との間の高精度のキャリブレーションを自動的に実行することができる。また、高精度のキャリブレーションがなされたカメラの画像を用いて取得した位置偏差により、正確な学習制御を実行することができる。
【０００７】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るロボット装置の全体構成を表す図である。
【図２】ロボットの構成を表す図である。
【図３】ロボット制御装置の機能ブロック図である。
【図４】キャリブレーション及び学習制御を表すフローチャートである。
【図５】加工箇所の撮影画像の一例を表す図である。
【図６】図５の画像から得られたエッジデータを表す図である。
【図７】指令軌跡が円形の場合のキャリブレーショ処理の例を表すフローチャートである。
【図８】キャリブレーション後の動作軌跡と指令軌跡とが一致する状態を表す図である。
【図９】指令軌跡が四角形の場合のキャリブレーショ処理の例を表すフローチャートである。
【図１０】低速動作時の動作軌跡と高速動作時の動作軌跡とを示す図である。
【図１１】低速動作時の動作軌跡と高速動作時の動作軌跡との間の各角度における誤差をプロットしたグラフである。
【図１２】図１１のグラフにおける角度の定義を説明するための図である。
【発明を実施するための形態】
【０００９】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【００１０】
図１は、一実施形態に係るロボット装置１０の全体構成を表す図である。図１に示すように、ロボット装置１０は、ロボット１と、ロボット１の動作を制御するロボット制御装置２と、ロボット１の設置面に対して固定されたカメラ３とを備える。ロボット１のアーム先端部には、加工ツール５が取り付けられている。ロボット装置１０は、レーザ加工（溶接、切断等）、ウォータージェットによる切断加工等の様々な加工に用いることができる。加工ツール５は、例えば、ワークＷにレーザ光を照射してレーザ加工を行うためのツールである。
【００１１】
ロボット制御装置２は、ＣＰＵ、ＲＯＭ、ＲＡＭ、記憶装置等を有する一般的なコンピュータとしての構成を有していても良い。ロボット制御装置２は、ロボット制御装置２内に予めロードされている動作プログラムにしたがってロボット１の動作を制御する。ロボット１は、例えば、図２に示すように第１関節部７１〜第６関節部７６を有する垂直多関節ロボットである。なお、本実施形態に係るロボット１の構成はこのような例に限られない。ロボット１の位置を規定する座標系としてワールド座標系９１が、ロボット１の基部を原点として設定されている。
【００１２】
本実施形態に係るロボット装置１０は、ロボット１の動作中の位置（制御対象部位の位置）をセンサによって計測することでロボット１の動作軌跡の目標位置からの位置偏差を求め、この位置偏差を低減するための学習制御を実行するように構成されている。ここで、ロボットの制御対象部位は、例えば、ロボットのＴＣＰ（ツール・センター・ポイント）である。この構成により、ロボット装置１０は、減速機やロボットアームの剛性不足、バックラッシ、摩擦等の精度悪化要因によってロボットの先端位置が目標位置（指令位置）からずれたり振動したりして加工品質に影響が出ることを防ぐことができる。ロボット１の動作中の位置を計測するセンサとしては、加速度センサ、力センサ、ビジョンセンサ、レーザトラッカ等の様々なセンサを用いることができるが、本実施形態では、ビジョンセンサとしてのカメラ３によりロボット１の動作軌跡を撮影して取得する構成としている。
【００１３】
このようにセンサを用いて位置偏差を測定し学習制御を行う場合、ロボット１の座標系とセンサの座標系との間でキャリブレーションを行う必要がある。以下で説明するように、ロボット装置１０は、ワールド座標系９１とカメラ３の座標系（以下、カメラ座標系とも記載する）との間のキャリブレーションを自動的に実行する。
【００１４】
図３は、ロボット制御装置２の機能ブロック図を示している。図２に示す各機能ブロックは、専用のハードウェアとして実現されても良いし、ロボット制御装置２のＣＰＵがソフトウェアを実行しハードウェアと協働することで実現されるものであっても良い。ロボット制御装置２において、動作制御部２１は、動作プログラム２５に従ってロボット１の動作（位置及び姿勢）を制御する。より詳細には、動作制御部２１は、動作プログラム２５に従ってロボット１の各関節の駆動軸の位置・速度等を制御する。学習制御部２２は、動作プログラム２５に基づくロボット１の指令位置と、カメラ３で撮像したロボット１の動作軌跡とを比較することで、指令位置に対する実際のロボット１の動作軌跡の位置偏差を求め、この位置偏差を低減させる補正量を学習制御により求める。低速時位置情報取得部２４は、動作制御部２１が動作プログラム２５に記述された動作を動作プログラム２５で指定された速度よりも低い速度でロボットに実行させたときの、ロボット１の位置に関するセンサの検出値（本実施形態において、カメラ３で撮像した画像）を用いて、ロボット１の低速時位置情報（本実施形態において、ロボット１の動作軌跡）を取得する。キャリブレーション部２３は、ワールド座標系９１とカメラ座標系との間のキャリブレーションを実行する。
【００１５】
図４は、学習制御により位置偏差を低減させる処理を表すフローチャートである。図４の処理は、ロボット制御装置２による制御の下で実行される。はじめに、ロボット制御装置２は、ロボット１に低速で目標動作を実行させる（ステップＳ１）。ここで、低速動作とは、動作プログラムで指定された動作速度よりも低速であり、ロボット１への振動等の精度悪化要因による影響が無視できる程度に低くなる速度である。低速動作時の速度は、動作プログラムで指定された速度よりも十分に低い速度（例えば、１／１０の速度）に設定しても良い。ロボット制御装置２は、ロボット１が低速動作で加工したワークＷ上の動作軌跡をカメラ３によって撮像し加工部分の点列データを取得する（ステップＳ２）。このようにロボット１を低速動作させることで、動作プログラム２５に記述された指令軌跡に対して誤差の無い（誤差が極小の）動作軌跡を得ることができる。なお、ステップＳ１−Ｓ２の処理は、低速時位置情報取得部２４の制御の下で実行される。
【００１６】
次に、ステップＳ３で、上記低速動作時における指令値データとカメラ３で取得した上記点列データを用いて、ロボット１の座標系（ワールド座標系９１）とカメラ３の座標系（カメラ座標系）との間のキャリブレーションを実行する。キャリブレーションは、キャリブレーション部２３の制御の下で実行される。動作プログラムに記述された指令が直径１５０ｍｍの円のレーザ加工を行う指令であるものと想定して、以下、キャリブレーション処理の例を説明する。ステップ１において直径１５０ｍｍの円をレーザ加工する指令を低速動作により実行した後、ステップＳ２においてカメラ３でワークＷを撮像した画像が図５に示すようなものであったとする。図５の画像において白抜きで示された部分がレーザ加工された部分（以下、加工部分１０１と記載する）である。カメラ３の設置誤差等を要因としてカメラ３から写した加工部分１０１の画像は円形にはならない場合がある。
【００１７】
キャリブレーション処理を実行するために、まず、図５の撮影画像からエッジ部分を抽出する。エッジデータの抽出までを低速時位置情報取得部２４によって実行しても良い。エッジ部分の抽出結果として、図６に示すようなエッジデータ（点列データ）１０２が得られたものとする。なお、図６において、縦軸、横軸はそれぞれ水平方向の画素位置、垂直方向の画素位置を表している。図６のエッジデータ１０２と、低速動作時の指令軌跡との間の関係を求めることでカメラ３のキャリブレーションを行う。図７に指令軌跡が円形である場合のキャリブレーション処理の一例を示す。まず、エッジデータ１０２の幾何学的中心と、指令軌跡による円の中心とを一致させることで重心合わせ行う（ステップＳ１０１）。次に、エッジデータ１０２に対して水平方向、垂直方向について別々の拡大率を適用してエッジデータ１０２と指令軌跡による円とを一致させる（ステップＳ１０２）。重心合わせのためにエッジデータ１０２をシフトした際のシフト量、及びエッジデータ１０２と指令軌跡による円とを一致させるための水平方向及び垂直方向の拡大率が、キャリブレーションデータ（すなわち、カメラ座標系をワールド座標系に変換するための較正データ）を構成する。
【００１８】
以上のように得られたキャリブレーションデータを用いて低速動作時の動作軌跡であるエッジデータ１０２をロボット１の座標系に変換したものが図８に示した動作軌跡１０２Aである。図８に示すように、キャリブレーション後の動作軌跡１０２Ａはロボット１の指令軌跡１０３に一致している。
【００１９】
図７は指令軌跡が円形の場合のキャリブレーショ処理の例であるが、ここで図９に指令軌跡が四角形の場合のキャリブレーション処理の例を示す。この場合、はじめに、ロボット１を低速動作させて加工後の動作軌跡を撮像して得られたエッジデータと、指令軌跡の四角形の重心合わせを行う（ステップＳ２０１）。次に、エッジデータを回転させて（ステップＳ２０２）、それぞれの四角形の対応の各辺を平行化する（ステップＳ２０３）。次に、エッジデータの縦横比を調整してエッジデータの四角形と指令軌跡の四角形とを一致させる（ステップＳ２０４）。以上の処理により得られた、重心合わせのためのシフト量、回転量、縦横比の調整量が、キャリブレーションデータを構成する。なお、指令軌跡が他の形状である場合にも、図７や図９に示した処理と同様の処理によりキャリブレーションデータを取得することができる。
【００２０】
以上のキャリブレーション処理によりカメラ３に対する高精度のキャリブレーションを自動的に実行することができる。
【００２１】
図４の説明に戻り、次に、ループ処理Ｌ１により学習を繰り返す学習制御が実行される。学習制御は、学習制御部２２の制御の下で実行される。学習制御が開始されると、動作プログラムに指定された動作速度（以下、高速動作とも記載する）で加工を実行する（ステップＳ４）。この場合、前回の学習制御用内部処理（ステップＳ６）により補正量が算出されている場合には、動作プログラムによる動作指令に補正量を適用して補正を行った上で加工を実行する。次に、加工後の軌跡をカメラ３で撮像して加工部分のエッジデータ（点列データ）を得る（ステップＳ５）。
【００２２】
次に、ステップＳ５で得られた高速動作時の動作軌跡を基に位置偏差を低減する補正量を求める学習制御を実行する（ステップＳ６）。実際の動作軌跡と目標軌跡との間の位置偏差を低減するための補正量を求める学習制御の手法としては当分野で知られた各種手法を用いることができる。ここでは、以下のように補正量を求める処理を行う。位置偏差を求める際の基準となる目標軌跡としては、低速動作時の動作軌跡或いはロボット１に対する指令軌跡を用いることができるが、以下では、低速動作時の動作軌跡を用いる場合を例にとり説明する。
【００２３】
図１０に、カメラ３で撮像して得られた低速動作時の動作軌跡１０２と高速動作時の動作軌跡１１１とを示す。なお、図１０において縦軸、横軸はそれぞれ垂直方向の画素位置、水平方向の画素位置を表している。低速動作時の動作軌跡１０２及び高速動作時の動作軌跡１１１をそれぞれキャリブレーションデータを用いてキャリブレーションした上で、動作軌跡１０２に対する動作軌跡１１１の各角度における誤差をプロットしたのが図１１である。ここで、図１１における横軸の角度は、図１２のように動作軌跡１０２の幾何学中心Ｐから縦軸に平行に下方に伸びる直線を基準として、中心Ｐ周りに図中半時計回りに回転する方向を正とする角度θとして定義しても良い。
【００２４】
学習制御による補正量の算出では、図１１に示した誤差を打ち消すような補正量を求めて学習制御部２２内のメモリに記憶する。この補正量を用いて、次の加工動作（ステップＳ４）における指令位置を補正する。このような学習を、所定回数（図４ではＮ回）繰り返し実行することで位置偏差を低減する。このような学習制御は、位置偏差がゼロ又は無視可能なレベルに収束するまで繰り返し実行しても良い。以上により、図４の処理は終了する。
【００２５】
以上の処理により、キャリブレーションがなされたカメラ５の出力（撮影画像）を用いて位置偏差を取得して正確な学習制御を実行することができる。特に、上記処理によれば、キャリブレーション処理を、低速動作時における指令値データとカメラ３で取得した点列データを用いて自動的に実行している。したがって、ユーザの作業ミスや経験不足によるキャリブレーションの精度不良の懸念が払拭され、安定した学習制御性能を得ることができる。
【００２６】
すなわち、本実施形態によれば、カメラ座標系とワールド座標系との間の高精度のキャリブレーションを自動的に実行することができる。また、高精度のキャリブレーションがなされたカメラの画像を用いて取得した位置偏差により、正確な学習制御を実行することができる。
【００２７】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の各実施形態に変更及び種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【００２８】
上述の実施形態は、ビジョンセンサとしてのカメラ３により加工箇所を計測してロボットの動作軌跡を取得する構成としているが、ロボットの動作軌跡を取得するための計測箇所はロボット１上の部位としても良い。例えば、ロボット１のアーム先端部を計測箇所としても良い。また、ロボットの動作軌跡を取得するためのセンサとして加速度センサ、力センサ、レーザトラッカを用いる場合に、これらのセンサをロボットのアーム先端部に取り付ける構成とすることもできる。例えば、加速度センサをロボット１のアーム先端に取り付けることで、ロボット１の動作中におけるアーム先端部の動作軌跡を取得することができる。一例として、図２には、アーム先端部（手首部）にセンサ８１を取り付けた状態を示している。この場合、センサ８１の座標系としてアーム先端部に固定された座標系９３が設定される。
【００２９】
ロボット１のアーム先端部と加工ツールとの間に力センサを取り付け、加工ツール５の動作に伴う負荷を力センサで検出する構成としても良い。この場合、力センサとして３軸の力センサを用い、ロボット１の動作時のＸＹＺの３成分の力を検出する。運動方程式Ｆ＝ｍａと、力センサの先に取り付けた加工ツールの質量ｍとから、検出された力を加工ツールの加速度に変換する。次に、変換された加速度と、ロボットの指令位置を２回微分することにより得られる加速度とから、ロボットの座標系とセンサの座標系との間の関係を表すデータを得ることができ、このデータにより力センサのキャリブレーションを行うことができる。
【００３０】
また、本開示の課題を解決するために、以下のような各種の態様とその効果を提供することができる。なお、以下の態様の説明文における括弧内の番号は本開示の図面の参照符号に対応する。
【００３１】
本開示の第一態様は、ロボット（１）と、前記ロボット（１）の動作を制御する動作制御部（２１）と、前記ロボット（１）の制御対象部位の位置に関する値を検出するセンサ（３）と、前記動作制御部（２１）が動作プログラムに記述された動作を前記動作プログラムで指定された速度よりも低い速度で前記ロボット（１）に実行させたときの、前記制御対象部位の位置に関する前記センサの検出値を用いて、前記制御対象部位の低速時位置情報を取得する低速時位置情報取得部（２４）と、前記低速時位置情報と前記動作プログラムによる指令位置とを用いて前記センサ（３）と前記ロボット（１）との間のキャリブレーションを実行するキャリブレーション部（２３）と、前記動作制御部（２１）が前記動作プログラムに従って前記ロボット（１）を動作させたときの前記センサの検出値と、前記低速時位置情報又は前記指令位置と、前記キャリブレーションによって得られた較正データとを用いて、前記動作プログラムに記述された動作と前記制御対象部位の実動作との偏差を低減するための補正量を学習する学習制御部（２２）と、を具備するロボット装置（１０）である。
【００３２】
上記第一態様によれば、カメラ座標系とワールド座標系との間の高精度のキャリブレーションを自動的に実行することができる。また、高精度のキャリブレーションがなされたカメラの画像を用いて取得した位置偏差により、正確な学習制御を実行することができる。
【００３３】
また、本開示の第二態様は上記第一態様のロボット装置（１０）であって、前記キャリブレーションによって得られる前記較正データは、前記センサの座標系を前記ロボットの座標系に変換するためのデータを含む。
【００３４】
また、本開示の第三態様は上記第一態様又は第二態様のロボット装置（１０）であって、前記センサは前記実動作の軌跡を撮影するカメラ（３）を有する。
【００３５】
また、本開示の第四態様は上記第一態様又は第二態様のロボット装置（１０）であって、前記センサは前記ロボットの手首部に取り付けられ該手首部の位置を表す値を検出する。
【符号の説明】
【００３６】
１    ロボット
２    ロボット制御装置
３    カメラ
５    加工ツール
１０    ロボット装置
２１    動作制御部
２２    学習制御部
２３    キャリブレーション部
２４    低速時位置情報取得部
２５    動作プログラム
【図１】
2020078859.tif 000003
【図２】
2020078859.tif 000004
【図３】
2020078859.tif 000005
【図４】
2020078859.tif 000006
【図５】
2020078859.tif 000007
【図６】
2020078859.tif 000008
【図７】
2020078859.tif 000009
【図８】
2020078859.tif 000010
【図９】
2020078859.tif 000011
【図１０】
2020078859.tif 000012
【図１１】
2020078859.tif 000013
【図１２】
2020078859.tif 000014