(57)【特許請求の範囲】
【請求項１】
ロボットの動作軌跡を決める複数の教示点からなる教示データにより実機ロボットを動作させる段階と、
前記動作における実機ロボットの動作軌跡を計測する段階と、
前記ロボットの軸のうち指定した軸のトルクを前記教示点ごとに求め、求めた軸ごとのトルクが同じトルク範囲に入っている教示点同士をグループ化する段階と、
前記グループの中の教示点を前記計測された動作軌跡上の対応する点へ移動させる移動量を算出して、該移動量を前記グループ内における全教示点の補正量として前記教示データを補正する段階と、
を有することを特徴とするロボット教示データの補正方法。
【請求項２】
前記トルク範囲は、
前記実機ロボットのたわみ量に対するトルクの特性から、トルクを複数の範囲に分割したものであることを特徴とする請求項１記載のロボット教示データの補正方法。
【請求項３】
前記指定した軸は、前記ロボットが６軸ロボットの場合に、第２軸、第３軸、および第５軸であることを特徴とする請求項１または２記載のロボット教示データの補正方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボット教示データの補正方法に関し、詳しくはシミュレーションによって作成されたロボット教示データの補正方法に関する。
【０００２】
【従来の技術】
近年、ロボットを動作させるため教示データの作成にシミュレーション装置が使用されている。たとえば、シミュレーション装置上でロボットモデルを動かして、周辺設備との干渉がなく一連の動作が終了するように、教示位置の設定、修正、変更を行い、教示データを作成する。
【０００３】
このような教示データを作成する際のシミュレーションは、周辺設備、ワーク、ロボットの設置位置、ロボットのエンドエフェクタに取り付けられているツール形状、ロボットモデル（機構モデル、制御モデル）はすべて設計値を用いてシミュレーションする。
【０００４】
しかし、実際の生産設備においては、設計値どおりの位置へロボットを設置することができなかったり、ツールの取り付けが困難であったり、またエンコーダゼロ点のずれやアームのたわみなどによりシミュレーションで作成された教示データを再生すると教示位置に誤差が生じて、ロボットと周辺設備やワークが干渉したりしてしまうことがある。
【０００５】
このような問題を回避するために、シミュレーションによって作成された教示データの補正が行われる。
【０００６】
この教示データの補正は、設置位置については、実際のロボット、すなわち、教示データを作成する対象の実機を用いて、３点タッチアップ動作を行って、その際の教示データをシミュレーション装置内に取り込んでロボットモデルの位置を補正している。
【０００７】
また、ロボットモデル自体の動作を補正する補正方法としては、実機ロボットにおいて発生するたわみなど実機ロボットの実際の動きをパラメータ化して、これをロボットモデル内の動きを規定するパラメータとして用いることで、ロボットモデルの動きが実機に合うようにしている。
【０００８】
また、シミュレーションによる教示データを実機により再生する際に、ロボットコントローラが持っている機能により教示データをシフトさせたり、あるいは、実機ロボットを再生させつつ不具合のあるところを補正したりしている。
【０００９】
【発明が解決しようとする課題】
このような従来のシミュレーションにおいて、位置補正については、実機とシミュレーションにおけるロボットモデルの位置を合わせるものであり、特に問題はない。
【００１０】
しかしながら、ロボットモデルと実機のパラメータを合わせて、たわみなどによる誤差を補正する方は、たわみなどが非線形であるため、これパラメータ化してモデリングするのが非常に難しい。このため、従来は、たわみのように、完全なパラメータ化が困難なものについては、近似式を用いることになるが、近似式であるがゆえに、よく一致する部分とあまり一致せず、誤差の大きくなる部分が発生してしまうという問題があった。
【００１１】
また、シミュレーションによる教示データの作成後、実機ロボットのコントローラを用いた補正方法では、教示データにおける教示点全体をシフト（Ｘ、Ｙ、Ｚ平行移動や軸回転位置をシフトする）させるだけであるため、エンコーダゼロ点のずれやロボットアームに発生するたわみなど、部分的な補正を行うことはできないといった問題がある。
【００１２】
さらに、実機ロボットにより、教示点を一つひとつ補正することも可能であるが、教示点の数が多いと非常に多くの時間を要するといった問題がある。
【００１３】
本発明の目的は、ロボットシミュレーションにより作成した教示データを補正する際に、効率よくすべての教示点において誤差を少なくすることができるロボット教示データの補正方法を提供することである。
【００１４】
【課題を解決するための手段】
本発明の目的は、以下の構成により達成される。
【００１５】
（１）ロボットの動作軌跡を決める複数の教示点からなる教示データにより実機ロボットを動作させる段階と、前記動作における実機ロボットの動作軌跡を計測する段階と、前記ロボットの軸のうち指定した軸のトルクを前記教示点ごとに求め、求めた軸ごとのトルクが同じトルク範囲に入っている教示点同士をグループ化する段階と、前記グループの中の教示点を前記計測された動作軌跡上の対応する点へ移動させる移動量を算出して、該移動量を前記グループ内における全教示点の補正量として前記教示データを補正する段階と、を有することを特徴とするロボット教示データの補正方法。
【００１６】
（２）前記トルク範囲は、前記実機ロボットのたわみ量に対するトルクの特性から、トルクを複数の範囲に分割したものであることを特徴とする。
【００１７】
（３）前記指定した軸は、前記ロボットが６軸ロボットの場合に、第２軸、第３軸、および第５軸であることを特徴とする。
【００１８】
【発明の効果】
本発明は、請求項ごとに以下の効果を奏する。
【００１９】
請求項１記載の本発明によれば、ロボットの軸のうち指定した軸のトルクが同じトルク範囲となっている教示点同士をグループ化して、このグループを単位にロボットの教示データを補正することとしたので、実機ロボットのたわみなどによって生じる部分的なずれを確実に補正することができ、しかもグループ化することで、一つひとつの教示点を補正する場合と比較して複数の教示点を一度に補正することができるため、補正にかかる時間も少なくてすむ。
【００２０】
請求項２記載の本発明によれば、トルク範囲が、実機ロボットのたわみ量に対するトルクの特性から、トルクを複数の範囲に分割したものであるので、実機ロボットのたわみ量に対して、どのようなトルク特性を示しているかにより教示点をグループ化することができ、ロボットの姿勢や教示点位置によらず、たわみの発生具合から、複数の教示点をグループ化することが可能となる。
【００２１】
請求項３記載の本発明によれば、グループ化において指定する軸として、ロボットが６軸ロボットの場合に、第２軸、第３軸、および第５軸とすることで、最もたわみに大きな影響を与える軸のみでグループ化することができるので、グループ化の処理を効率よく行うことができる。
【００２２】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【００２３】
図１は、本発明を実施するためのシステム構成を説明するための図面であり、図２は、本発明による補正方法の処理手順を示すメイルーチンフローチャートである。
【００２４】
システム構成は、図１に示すように、教示データを作成するためのシミュレーション装置１、教示データにより動作させる実機ロボット２、および実機ロボットの手先の動きを計測する３次元位置計測器３である。
【００２５】
シミュレーション装置１は、ハードウェアとしては一般的なコンピュータであり、このコンピュータによってロボットのシミュレーションを行うためのプログラムが実行される。そして、このシミュレーション装置１によりロボットを所定の経路で動作させるための教示データの作成およびその補正が行われる。
【００２６】
実機ロボット２は、シミュレーションにより作成された教示データにより動作させるロボットである。図示する実機ロボット２は、ロボット全体を旋回させる第１軸２１、ロボット全体を傾斜させる第２軸２２、アーム２７を傾斜させる第３軸２３、アーム２０を回転させる第４軸２４、エンドエフェクタ２８を傾斜させる第５軸２５、エンドエフェクタ２８を回転させる第６軸２６よりなる６軸ロボットである。
【００２７】
この実機ロボット２は、必ずしもシミュレーション装置１により作成した教示データにより実際に稼動させるロボットと完全に同じ物である必要はない。たとえば生産現場などで実際に使用されている実機ロボットに対して、それと同種、同形のロボットであればよい。
【００２８】
３次元計測器３は、実機ロボット２の手先（エンドエフェクタに取り付けたツール先端）の動きを３次元計測するものである。このような３次元計測器としては、たとえばロボットの手先に赤外線発光ダイオード（赤外線マーカ）を取り付けて、この赤外線マーカを少なくとも３個のＣＣＤラインセンサを用いて測距し、得られた３つの距離から赤外線マーカの３次元位置を計測し３次元座標値として出力する装置、また、音波や赤外線、レーザなどを放射してその反射音や反射光を受信することで、ロボットの手先の位置を計測する装置など、一般に市販されているものである。
【００２９】
そして、シミュレーション装置１、実機ロボット２、および３次元計測器３は、互いにＬＡＮ回線などによって接続され、データのやり取りができるようになっている。なお、このようなデータのやり取りは、周知のコンピュータ技術であり説明を省略する。
【００３０】
次に、図２を参照して、教示データの補正手順を説明する。
【００３１】
まず、シミュレーション装置１により、あらかじめ作成された教示データを読み込む（Ｓ１）。教示データは、ロボットを所定の動作軌跡で動作させるためデータで、複数の教示点よりなる。教示データの作成自体は、シミュレーション装置１により設計データによって描かれたロボットモデルを動作させることにより行われたものである。
【００３２】
この段階で読み込んだ教示データの教示点Ｐ１Ｄ〜Ｐ８Ｄを図３に示す。ここで最初に読み込んだ教示データは設計上の動作軌跡を示すデータ（これを設計動作軌跡データと称する）であり、実機ロボットがこの設計動作軌跡データに沿って動くように、最初に作った教示データを補正してゆくのである。
【００３３】
次に、現時点での教示データ（このステップでは、後述するように補正後の教示データが来ることがある）を実機ロボット２のコントローラ（不図示）に転送して再生し、実機ロボット２を実際に動作させる（Ｓ２）。
【００３４】
そして、図４に示すように、動作中のロボットの手先の位置を３次元計測器により計測する（Ｓ３）。
【００３５】
続いて、計測されたデータをシミュレーション装置１に取り込む（Ｓ４）。取り込んだ計測データにおける教示点に対応する位置の点をＰ１ｍ〜Ｐ８ｍ（これを計測点と称する）とする。
【００３６】
そして、設計動作軌跡データ（最初に取り込んだ教示データ）における各教示点の位置と測定点の位置を比較して、そのずれが許容範囲内であるか否かを判断し（Ｓ５）、許容範囲内であれば（Ｓ５：Ｙｅｓ）、補正処理は終了となる。なお、この判断に際して、シミュレーション装置１における座標系と計測座標系はあらかじめ合わせておく。ここでは計測基準の座標系に合わせている。
【００３７】
最初の段階では、ロボットアームのたわみなどにより、図５に示すように、設計動作軌跡の教示点Ｐ１Ｄ〜Ｐ８Ｄに対して、実測された計測点Ｐ１ｍ〜Ｐ８ｍはずれている。
【００３８】
続いて、シミュレーション装置１により各教示点におけるロボット各軸のトルクを算出して、ロボットの任意に指定した軸のトルクが同じトルク範囲に入っている教示点同士をグループ化する（Ｓ６）。
【００３９】
ここで、このグループ化の処理について、図６に示すグループ化処理のサブルーチンフローチャートを参照して説明する。
【００４０】
まず、教示点番号変数ｉを初期化して０にする（Ｓ６１）。
【００４１】
続いて、ｉ番目の教示点のときの各軸の関節角を算出する（Ｓ６２）。算出した各軸関節角は、軸ごとにＪＶ１〜ＪＶｎとして記憶する。なお、ｎは最大軸番号である。個々で、算出する関節角は、ある教示点（たとえば教示点Ｐ１Ｄ）から次の教示点（Ｐ２Ｄ）へ移る際の各軸の関節角である。
【００４２】
続いて、関節角から各軸トルクを算出する（Ｓ６３）。ここで算出する各軸のトルクは、上記で算出した関節各の関係からある教示点から次の教示点へ移る際の各軸のトルクであり、たとえば教示点Ｐ２Ｄのトルクとは、教示点Ｐ１Ｄから次の教示点Ｐ２Ｄへ移る際に出力された各軸のトルクである。算出された各軸のトルクはＴＲ１〜ＴＲｎとして記憶する。
【００４３】
続いて、軸番号変数ｊを１にして（Ｓ６４）、ｊ番目の軸のトルク特性分割数を設定する（Ｓ６５）。
【００４４】
このトルク特性分割数は、ロボットアームのたわみ量が、その長さや回転方向、アームやエンドエフェクタの重量などによって異なるため、このたわみ量の大きさに対するトルク出力の大きさを範囲分けするために、その分割数を設定するものである。
【００４５】
図７は、たわみ量に対するトルクの特性をグラフ化し、トルクを範囲分けした例を示す図面である。
【００４６】
たとえば、図７Ａに示すように、比較的たわみ量の少ないアームを駆動している軸の場合は、トルク量を２分割、すなわち、トルク特性分割数を２とすればよい。また、図７Ｂに示すように、たわみ量の多いアームを駆動している軸の場合は、トルク量を４分割、すなわち、トルク特性分割数を４とするとよい。
【００４７】
このトルク特性分割数は、ロボットの形態やアーム重量、また、エンドエフェクタにワークをつかんだり持ち上げたりするようなハンドを用いている場合には、ワークの重量などによってアームのたわみ量が異なるので、それらに応じて適宜設定することになる。
【００４８】
ｊ番目の軸のトルク特性分割数の設定後、続いて、ｊ番目の軸のトルクが、分割したどのトルク範囲に入っているかを決定する（Ｓ６６）。ここでトルク範囲とは、図７に示した分割した各領域のことで、図７Ａにおける「ａ」または「ｂ」、あるいは、図７Ｂにおける「ａ」、「ｂ」、「ｃ」、または「ｄ」である。
【００４９】
続いて軸番号変数ｊをインクリメントし（Ｓ６７）、変数ｊが最大軸番号ｎを越えたか否かを判断し（Ｓ６８）、越えていなければ（Ｓ６８：Ｎｏ）、ステップＳ６６へ戻り、インクリメントしたｊ番目の軸のトルクのトルク範囲を決定する。
【００５０】
一方、変数ｊが最大軸番号ｎを越えた場合（Ｓ６８：Ｙｅｓ）は、続いて、教示点番号変数ｉをインクリメントし（Ｓ６９）、変数ｉが最大教示点番号ｍ越えたか否かを判断し（Ｓ７０）、越えていなければ（Ｓ７０：Ｎｏ）、ステップＳ６２へ戻り以降の処理を繰り返し実行する。
【００５１】
そして、すべての教示点におけるすべての軸についてトルクによるグループ分けが終了したなら（Ｓ７０：Ｙｅｓ）、教示点ごとにあらかじめ設定された軸がすべて同じトルク範囲に属する教示点同士を一つのグループとする（Ｓ７１）。
【００５２】
これは、たとえば、図８に示すように教示点ごとに各軸のトルクが属するトルク範囲を表形式にしてまとめると分かりやすい。なお、このグループ化は、シミュレーション装置１内、すなわちコンピュータ内において実施されるもので、実際のコンピュータ内の処理においてこのような図表を作成する必要はく、図８は、グループ化の概念を説明するための図表である。
【００５３】
図８に示した例では、教示点１、３、４が、すべての軸のトルク範囲が同じであるのでこれらを一つのグループとする。
【００５４】
このとき、グループ化においては、どの軸に着目するかをあらかじめ設定しておく。これは、たとえば、ロボット全体を旋回させる第１軸、アームを回転させる第４軸、エンドエフェクタを回転させる第６軸などは、その動きがアームのたわみに影響することが少ない。そこで、このようなアームのたわみに影響することが少ない軸については、教示点の位置の補正に影響しない軸としてこれらを除外し、逆にアームのたわみに対して大きく影響を与える第２軸、第３軸、および第５軸を補正が必要となる軸として、これらをグループ化する際に使用するようにしたものである。
【００５５】
なお、このグループ化によって、いずれのグループにも属さない教示点がある場合には、グループ化する際に着目する軸数を減らしてもう一度それらいずれのグループにも属さない教示点のグループ化を試みる。最終的にはグループ化する際に着目する軸数を一つにしてグループ化を行ってもいずれのグループにも属さない教示点がある場合には、それらの教示点は一つで１グループとする。
【００５６】
以上のようにして補正する教示点のグループ化を終了したなら、メインルーチンへ戻る。
【００５７】
メイルーチンでは、続いて、グループごとに補正量を算出する（Ｓ７）。この補正量の算出について説明する。
【００５８】
ここでは、たとえば、図９Ａに示すような最初の教示点Ｐ１Ｄ〜Ｐ３Ｄに対して、グループ分けの結果、図９Ｂに示すように、教示点Ｐ１Ｄ、Ｐ３Ｄ、Ｐ５Ｄ、Ｐ７Ｄが第１グループ、Ｐ２Ｄ、Ｐ４Ｄ、Ｐ６Ｄが第２グループとなった場合について説明する。
【００５９】
まず、第１グループについて、図９Ｃに示すように、第１グループ内の教示点から３点Ｐ１Ｄ、Ｐ３Ｄ、Ｐ７Ｄを選択し、これらを線で結び三角形を形作る。このとき選択する３点は、三角形の面積が最も大きくなるように選択する。
【００６０】
そして、この三角形を作った教示点に対応する計測点Ｐ１ｍ、Ｐ３ｍ、Ｐ７ｍにより三角形を作り、教示点による三角形を計測点による三角形に重なるように移動する。このとき三角形の平行移動だけでは重ならない場合には、三角形全体を回転させてもよい。また、完全に三角形同士が重ならない場合には、そのずれが最小となるようにする。
【００６１】
このようにして教示点による三角形を移動したときの移動量が第１グループ内における各教示点の補正量となる。
【００６２】
同様に、第２グループに対しても補正量を求める。すなわち、図９Ｅに示すように、第２グループの各教示点Ｐ２Ｄ、Ｐ４Ｄ、Ｐ６Ｄを用いて三角形を作り、図９Ｆに示すように、この三角形が対応する計測点Ｐ２ｍ、Ｐ４ｍ、Ｐ６ｍによる三角形に重なるように移動して、その移動量を補正量とする。
【００６３】
なお、以上の補正量の算出において、一つのグループ内に３点以上の教示点がない場合、すなわち三角形を形成することができない場合には、各教示点を結ぶ線分とし、この線分が、対応する計測点を結んだ線分に重なるように移動量（平行移動量と回転量）を求めて、この移動量をこのグループにおける各教示点の補正量とする。
【００６４】
以上により各グループ内の各教示点の補正量が求まるので、この補正量分だけ元の各教示点の位置をずらして、教示データを補正する（Ｓ８）。この補正後の教示データにおける教示点Ｐ１ｃ〜Ｐ８ｃを図１０に示す。
【００６５】
そして、ステップＳ２に戻り、この補正された教示データにより実機ロボットを再生して（Ｓ２）、再びその手先の動きを３次元計測器により計測し（Ｓ３）、シミュレーション装置１に計測データを取り込んで（Ｓ４）、図１１に示すように、各計測点と設計動作軌跡の教示点とのすれが許容範囲か否かを確認して（Ｓ５）、許容範囲内でなければ、さらに各計測点と設計動作軌跡の教示点とのすれが許容範囲内になるまで、ステップ６以降の処理を繰り返して実行することになる。そして、許容範囲内であれば補正処理を終了する。
【００６６】
補正処理終了後は、周辺設備やワークなどとの干渉チェックが行われて、実機ロボットに最終的な教示データとして投入される。
【００６７】
以上のように、本実施の形態によれば、設計動作軌跡データと、教示データにより実機ロボットを動作させたとき動作軌跡のずれを、トルクを指標として教示点ごとにグループ化したことで、同じようなずれ方をしている複数の教示点を一度に補正することができるようになるため、従来、パラメータ化することが困難であったロボットアームのたわみなどによるずれを確実に補正することが可能となる。また、グループ化したことにより、複数の教示点を一度に補正することができるので、各教示点を一つひとつ手作業で補正することと比較して、より速く容易に補正することができる。これは、本実施の形態では教示点の数が８点の場合を示したので、一つひとつ補正してもさほど時間のかかるものではないが、実際の教示点の数は数十点から百点ほどになることもあり、教示点の数が多くなるほど本発明を適用した際の効果が大きい。
【００６８】
以上本発明を適用した実施の形態を説明したが、本発明は、このような実施の形態に限定されるものではない。たとえば、上述した実施の形態では、６軸のロボット例に説明したが、これは、３軸ロボットやその他のロボットでも本発明を適用できることは言うまでもない。
【図面の簡単な説明】
【図１】  本発明を実施するためのシステム構成を説明するための図面である。
【図２】  本発明による補正方法の処理手順を示すメイルーチンフローチャートである。
【図３】  教示点を示す図面である。
【図４】  動作中のロボットの手先の位置を３次元計測器により計測する状態を示す図面である。
【図５】  設計動作軌跡データの教示点と実測された計測点を示す図面である。
【図６】  グループ化の手順を示すサブルーチンフローチャートである。
【図７】  たわみ量に対するトルク特性をグラフ化した例を示す図面である。
【図８】  教示点ごとに各軸のトルク範囲を表形式にしてまとめた例を示す図面である。
【図９】  教示点のグループ化を説明するための図面である。
【図１０】  補正後の教示データにおける教示点を示す図面である。
【図１１】  計測点と設計動作軌跡データの教示点とのずれを示す図面である。
【符号の説明】
１…シミュレーション装置
２…実機ロボット
３…３次元位置計測器
【図１】
0003840973.tif 000002
【図２】
0003840973.tif 000003
【図３】
0003840973.tif 000004
【図４】
0003840973.tif 000005
【図５】
0003840973.tif 000006
【図６】
0003840973.tif 000007
【図７】
0003840973.tif 000008
【図８】
0003840973.tif 000009
【図９】
0003840973.tif 000010
【図１０】
0003840973.tif 000011
【図１１】
0003840973.tif 000012