(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載する加工システムの場合、多関節ロボットの先端に締め付けツールが取り付けられているために、ワークの複数のねじ穴それぞれについて、締め付け精度が異なる。
【0006】
具体的に説明すると、ロボットの先端(締め付けツールの先端)を目標点(ねじ穴の正面位置)に位置合わせするために、その目標点を教示点として教示してロボットを動作させても、ロボットの動力伝達機構に含まれる歯車のガタ、関節を駆動するモータの軸のねじれ、リンクのたわみやねじれなどを原因としてロボットに生じるたわみにより、実際の先端は目標点からずれる、すなわち誤差が生じる。また、その誤差は、ロボットの姿勢によって異なる。
【0007】
したがって、姿勢によって異なるロボットに生じるたわみを原因として、ワークの複数のねじ穴それぞれについて、ロボットの先端の目標点への位置合わせ精度が異なる。その結果、ねじ穴それぞれについて、締め付け精度が異なる。
【0008】
この対処として、ワークの複数のねじ穴それぞれについて、ロボットの先端と目標点との間の誤差を計測し、その計測した誤差を考慮してロボットの先端が目標点に高精度に位置合わせされる教示点を作成することが考えられる。しかしながら、複数の目標点それぞれについて誤差の計測を実行しなければならず、それには時間がかかる。
【0009】
そこで、本発明は、複数の目標点それぞれにロボットの先端を高精度に位置合わせするための複数の教示点を短時間で作成することを課題とする。
【課題を解決するための手段】
【0010】
上述の課題を解決するために、本発明の第1の態様によれば、
目標点にロボットの代表点を位置合わせするための教示点を作成するロボット教示点作成方法であって、
基準点にロボットの代表点が位置する第1の姿勢にロボットを制御する工程(1)と、
基準点と第1の姿勢のロボットの代表点との間の誤差を計測する工程(2)と、
ロボットの姿勢によって変動する変動誤差成分であって、第1の姿勢のロボットに生じる第1の変動誤差成分を算出する工程(3)と、
誤差および第1の変動誤差成分に基づいて、姿勢によって変動しない固定誤差成分を算出する工程(4)と、
目標点にロボットの代表点が位置する第2の姿勢のロボットに生じる第2の変動誤差成分を算出する工程(5)と、
固定誤差成分および第2の変動誤差成分に基づいて、目標点にロボットの代表点を位置合わせするための教示点を算出する工程(6)とを含み、
工程(5)が、
固定誤差成分および基準点に基づいて、固定誤差成分が補償された基準点として仮の基準点を設定する工程(5−1)と、
仮の目標点を、仮の基準点との間で、基準点と目標点との間の位置関係と同一の位置関係を実現できる位置に設定する工程(5−2)と、
仮の目標点にロボットの代表点が位置する第2の姿勢を算出する工程(5−3)と、
第2の姿勢のロボットに生じる、第2の変動誤差成分を算出する工程(5−4)と、を含む、ロボット教示点作成方法が提供される。
【0012】
本発明の第
2の態様によれば、
目標点にロボットの代表点を位置合わせするための教示点を作成するロボット教示点作成方法であって、
基準点にロボットの代表点が位置合わせされる第1の姿勢にロボットを手動操作する工程(1)と、
第1の姿勢に基づいてロボットの代表点の位置を算出する工程(2)と、
ロボットの代表点の位置と基準点の位置との間の誤差を算出する工程(3)と、
ロボットの姿勢によって変動する変動誤差成分であって、第1の姿勢のロボットに生じる第1の変動誤差成分を算出する工程(4)と、
誤差および第1の変動誤差成分に基づいて、姿勢によって変動しない固定誤差成分を算出する工程(5)と、
目標点にロボットの代表点が位置する第2の姿勢のロボットに生じる第2の変動誤差成分を算出する工程(6)と、
固定誤差成分および第2の変動誤差成分に基づいて、目標点にロボットの代表点を位置合わせするための教示点を算出する工程(7)とを含
み、
工程(6)が、
固定誤差成分および基準点に基づいて、固定誤差成分が補償された基準点として仮の基準点を設定する工程(6−1)と、
仮の目標点を、仮の基準点との間で、基準点と目標点との間の位置関係と同一の位置関係を実現できる位置に設定する工程(6−2)と、
仮の目標点にロボットの代表点が位置する第2の姿勢を算出する工程(6−3)と、
第2の姿勢のロボットに生じる、第2の変動誤差成分を算出する工程(6−4)と、を含む、ロボット教示点作成方法が提供される。
【0014】
本発明の第
3の態様によれば、
目標点がワークの表面上に存在し、
目標点の位置からロボット側且つワーク表面垂直方向に第1の距離離れた第2の目標点が存在し、
仮の目標点の位置からロボット側且つワーク表面垂直方向に第1の距離離れた位置を、仮の第2の目標点と設定する工程と、
仮の第2の目標点にロボットの代表点が位置する第3の姿勢を算出する工程と、
第3の姿勢のロボットに生じる第3の変動誤差成分を算出する工程と、
仮の第2の目標点の位置および第3の変動誤差成分に基づいて、第2の目標点にロボットの代表点を位置合わせするための第2の教示点を算出する工程とを含む、第
1または第
2の態様に記載のロボット教示点作成方法が提供される。
【0015】
本発明の第
4の態様によれば、
ロボットの代表点が穴あけ工具の先端であって、
目標点の位置から反ロボット側且つワーク表面垂直方向に第2の距離離れた第3の目標点が存在し、
仮の目標点の位置から反ロボット側且つワーク表面垂直方向に第2の距離離れた位置を、仮の第3の目標点と設定する工程と、
仮の第3の目標点にロボットの代表点が位置する第4の姿勢を算出する工程と、
第4の姿勢のロボットに生じる第4の変動誤差成分を算出する工程と、
仮の第3の目標点の位置および第4の変動誤差成分に基づいて、第3の目標点にロボットの代表点を位置合わせするための第3の教示点を算出する工程とを含む、第
3の態様に記載のロボット教示点作成方法が提供される。
【0016】
本発明の第
5の態様によれば、
目標点にロボットの代表点を位置合わせするための教示点を作成するロボットシステムであって、
基準点と目標点とが定義されたワークと、
基準点とロボットの先端との間の距離を計測するための計測装置と、
ロボットを制御する制御装置を有し、
制御装置が、
基準点の位置を取得する動作(1)と、
基準点にロボットの代表点が位置する第1の姿勢にロボットを制御する動作(2)と、
計測装置を介して基準点と第1の姿勢のロボットの代表点との間の誤差を計測する動作(3)と、
ロボットの姿勢によって変動する変動誤差成分であって、第1の姿勢のロボットに生じる第1の変動誤差成分を算出する動作(4)と、
誤差および第1の変動誤差成分に基づいて、姿勢によって変動しない固定誤差成分を算出する動作(5)と、
目標点にロボットの代表点が位置する第2の姿勢のロボットに生じる第2の変動誤差成分を算出する動作(6)と、
固定誤差成分および第2の変動誤差成分に基づいて、目標点にロボットの代表点を位置合わせするための教示点を算出する動作(7)とを実行
し、
動作(6)が、
固定誤差成分および基準点に基づいて、固定誤差成分が補償された基準点として仮の基準点を設定する動作(6−1)と、
仮の目標点を、仮の基準点との間で、基準点と目標点との間の位置関係と同一の位置関係を実現できる位置に設定する動作(6−2)と、
仮の目標点にロボットの代表点が位置する第2の姿勢を算出する動作(6−3)と、
第2の姿勢のロボットに生じる、第2の変動誤差成分を算出する動作(6−4)と、を含む、ロボットシステムが提供される。
【0018】
本発明の第
6の態様によれば、
目標点にロボットの代表点を位置合わせするための教示点を作成するロボットシステムであって、
基準点と目標点とが定義されたワークと、
ロボットを手動操作するための手動操作装置と、
ロボットを制御する制御装置を有し、
制御装置が、
手動操作装置を介して基準点にロボットの代表点が位置合わせされる第1の姿勢にロボットが手動操作されると、
第1の姿勢に基づいてロボットの代表点の位置を算出する動作(1)と、
基準点の位置を取得する動作と(2)、
ロボットの代表点の位置と基準点の位置との間の誤差を算出する動作(3)と、
ロボットの姿勢によって変動する変動誤差成分であって、第1の姿勢のロボットに生じる第1の変動誤差成分を算出する動作(4)と、
誤差および第1の変動誤差成分に基づいて、姿勢によって変動しない固定誤差成分を算出する動作(5)と、
目標点にロボットの代表点が位置する第2の姿勢のロボットに生じる第2の変動誤差成分を算出する動作(6)と、
固定誤差成分および第2の変動誤差成分に基づいて、目標点にロボットの代表点を位置合わせするための教示点を算出する動作(7)とを実行
し、
動作(6)が、
固定誤差成分および基準点に基づいて、固定誤差成分が補償された基準点として仮の基準点を設定する動作(6−1)と、
仮の目標点を、仮の基準点との間で、基準点と目標点との間の位置関係と同一の位置関係を実現できる位置に設定する動作(6−2)と、
仮の目標点にロボットの代表点が位置する第2の姿勢を算出する動作(6−3)と、
第2の姿勢のロボットに生じる、第2の変動誤差成分を算出する動作(6−4)と、を含む、ロボットシステムが提供される。
【発明の効果】
【0020】
本発明によれば、基準点とロボットの先端との間の誤差を計測するだけで、後は計算のみで目標点にロボットの代表点を高精度に位置合わせするための教示点を作成することができる。したがって、複数の目標点にロボットの先端を高精度に位置合わせするための複数の教示点を短時間で作成することができる。
【発明を実施するための形態】
【0022】
図1は、本発明の一実施の形態に係るロボットシステムの構成を概略的に示している。
図1に示すロボットシステム10は、ワークWの複数箇所に複数の穴を形成するものである。
【0023】
ロボットシステム10は、多関節型のロボット12と、ロボット12を制御するコントローラ14と、ワークWを固定する治具16と、ワークWに複数の穴を形成する穴あけ装置18と、ビジョンセンサ20とを有する。
【0024】
ロボット12は、多関節型のロボットであって、複数の関節12a〜12fと、フランジ12gとを備える。フランジ12gには、穴あけ装置18とビジョンセンサ20とが取り付けられている。
【0025】
コントローラ14は、ロボット12を制御する装置であって、作業者によって教示された教示点に基づいてロボット12の複数の関節12a〜12fそれぞれの関節角度を制御することにより、ロボット12の先端の位置を変更するように構成されている。なお、本実施の形態のコントローラ14は、後述するが、自動で教示点を作成する機能を備えている。
【0026】
治具16は、ロボット12に対して位置決めされた状態で設置されている。また、治具16は、ワークWをロボット12に対して位置決めして保持するように構成されている。具体的には、ワークWの表面Waには2つの基準点P
R1,P
R2が定義されており、その2つの基準点P
R1,P
R2にロボット12がアクセスできるように、治具16はワークWを位置決め保持する。
【0027】
なお、2つの基準点P
R1,P
R2は、ビジョンセンサ20の撮像画像から特定できる点、例えば
図2に示すように開口の中心などによって定義されている。
【0028】
穴あけ装置18は、ワークWに穴を形成するものであって、穴あけツールとして、例えばドリル18aを備える。本実施の形態においては、ドリル18aの先端が、ロボット12の先端Tとして定義されている。
【0029】
ビジョンセンサ20は、ロボット12の先端Tおよびその周囲を撮像するためのものであって、コントローラ14からの指示に基づいて撮像し、その撮像画像データをコントローラ14に送信するように構成されている。
【0030】
ここからは、本発明に係る、コントローラ14の自動で教示点を作成する機能について説明する。
【0031】
コントローラ14の自動で教示点を作成する機能について説明する前に、まず、本発明の概念を、
図3を参照しながら説明する。
【0032】
図3に示すように、目標点P
Gを教示点と設定し、その目標点P
Gにロボットの先端Tが位置する姿勢F(P
G)にロボットを制御した場合、実際には、先端Tが完全に目標点P
Gに一致せず、先端Tと目標点P
Gとの間に誤差ΔE
Gが生じる。したがって、目標点P
Gに先端Tを位置合わせするためには、目標点P
Gから−ΔE
Gずれた位置を教示点P
Tとすればよい。
【0033】
そのためには、誤差ΔE
Gを計測する必要がある。しかしながら、目標点P
Gが複数存在する場合、従来のように、各目標点P
Gを教示点として教示してロボットを動作させ、各目標点P
Gに対する誤差ΔE
Gを計測すると、当然ながら手間がかかる。その結果、複数の目標点P
Gに先端Tを位置合わせできる複数の教示点P
Tを求めるのに時間がかかる。
【0034】
そこで、複数の目標点P
Gに先端Tが位置合わせできる複数の教示点P
Tを求める時間を短縮するために、発明者は、
図3に示すように、姿勢F(P
G)のロボットに生じる誤差ΔE
Gが、ロボットの姿勢によって変動する誤差成分ΔE(F(P
G))(以下、「変動誤差成分Δ(F(P
G))」と称する)と、ロボットの姿勢によって変動しない誤差成分ΔE
S(以下、「固定誤差成分ΔEs」と称する)からなることに着目した。
【0035】
ここで言う、変動誤差成分ΔE(F(P
G))は、例えば、リンクのたわみやねじれ、ロボットの動力伝達機構に含まれる歯車のガタ、関節を駆動するモータの軸のねじれなどを原因としてロボットに生じるたわみによる目標点P
Gとロボットの先端Tとの間の誤差であって、姿勢によって変動する(異なる)誤差を言う。変動誤差成分ΔE(F(P
G))は、目標点P
Gからロボットの先端Tが変位した量と、その変位方向に対応する。
【0036】
この変動誤差成分ΔE(F(P
G))は、目標点P
Gを教示点と設定し、目標点P
Gにロボットの先端Tが位置する姿勢F(P
G)を、姿勢F(P
G)のロボットに生じるたわみを考慮せずに、ロボットのリンク長と複数の関節それぞれの関節角度とを用いて幾何学的に算出するために生じる。姿勢F(P
G)によってロボット先端におけるたわみ量やたわみ方向が異なるため、姿勢F(P
G)によって変動誤差成分ΔE(F(P
G))も異なる。
【0037】
また、ここで言う、固定誤差成分ΔE
Sは、ロボットの姿勢によって変動しない、すなわちどのような教示点であっても生じる一定の誤差を言う。
【0038】
例えば、固定誤差成分ΔE
Sは、目標点P
Gがワーク上の点である場合、ロボットに対するワークの配置誤差によって生じる。本実施の形態の場合、ロボット12の据え付け誤差、治具16の据え付け誤差、ワークWの治具16への取り付け誤差などによって生じる。
【0039】
このような変動誤差成分と固定誤差成分とを利用した、目標点P
Gに先端Tを高精度に位置合わせするための教示点P
Tの作成方法およびその流れについて
図4に示すフローを参照しながら説明する。
【0040】
図4に示すように、ステップS100において、
図3に示すように、目標点P
Gに対する位置関係が既知の基準点P
Rにロボットの先端Tが位置する姿勢F(P
R)にロボットを制御する。なお、ここでは、基準点P
Rの位置がロボットに対する位置で与えられ、一方、目標点P
Gの位置がロボットではなく基準点P
Rに対する位置で与えられる場合を例に挙げる。
【0041】
次に、ステップS110において、
図3に示すように、基準点P
Rとロボットの実際の先端Tとの間の誤差ΔE
Rを計測する。
【0042】
続いて、ステップS120において、姿勢F(P
R)のときのロボットに生じる変動誤差成分ΔE(F(P
R))を算出する。変動誤差成分ΔE(F(P
R))は、姿勢F(P
R)のときの複数の関節それぞれの関節角度、複数のリンクそれぞれの長さ、ロボットの複数の構成要素それぞれの重量、関節を駆動するモータ軸のねじれ剛性、リンクそれぞれに生じるたわみやねじれなどから算出することができる。なお、姿勢F(P
R)に対応する変動誤差成分ΔE(F(P
R))を予め実測してデータとして記憶しておいてもよい。
【0043】
そして、ステップS130において、ステップS110で計測された誤差ΔE
Rと、ステップS120で算出された変動誤差成分ΔE(F(P
R))とに基づいて、具体的には、誤差ΔE
Rから変動誤差成分ΔE(F(P
R)を減算して、固定誤差成分ΔE
Sを算出する。
【0044】
ステップS130で固定誤差成分ΔE
Sが算出されると、ステップS140において、
図3に示すように、基準点P
Rから−ΔE
Sずれた位置に仮の基準点P
R’を設定する。すなわち、固定誤差成分ΔE
Sが補償された基準点P
Rとして仮の基準点P
R’が設定される。
【0045】
次に、ステップS150において、仮の目標点P
G’を、仮の基準点P
R’との間で、基準点P
Gと目標点P
Rとの間の位置関係と同一の位置関係を実現できる位置に設定する。その結果、仮の目標点P
G’は、目標点P
Gから−ΔE
Sずれた位置に設定される(固定誤差成分ΔE
Sが補償された目標点P
Gとして仮の目標点P
G’が設定される)。
【0046】
続いて、ステップS160において、仮の目標点P
G’にロボットの先端Tが位置する姿勢F(P
G’)を算出する。補足すると、目標点P
Gにロボットの先端Tが位置する姿勢F(P
G)は、目標点P
Gの位置がロボットに対する位置で与えられていないために算出することができない。そのために、仮の目標点P
G’にロボットの先端Tが位置する姿勢F(P
G’)を、目標点P
Gにロボットの先端Tが位置する姿勢F(P
G)の代わりとして算出している。なお、仮の目標点P
G’(仮の目標点P
G’になりうる点)にロボットの先端Tが位置する姿勢F(P
G’)を予め求めて記憶装置(図示せず)に記憶し、仮の目標点P
G’に対応する姿勢F(P
G’)を記憶装置から取得するようにしてもよい。
【0047】
ステップS170において、
図3に示すように、姿勢F(P
G’)のロボットに生じる、先端Tにおける変動誤差成分ΔE(F(P
G’))を算出する。ステップS120で変動誤差成分ΔE(F(P
R))を算出した方法と同様の方法によって算出する。
【0048】
次に、ステップS180において、
図3に示すように、ステップS140で設定された仮の目標点P
G’の位置と、ステップS160で算出された変動誤差成分ΔE(F(P
G’))とに基づいて、具体的には、仮の目標点P
G’から−ΔE(F(P
G’))ずれた位置に、目標点P
Gにロボットの先端Tが高精度に位置合わせされる教示点P
Tが作成される。
【0049】
この教示点P
Tに位置する姿勢F(P
T)にロボットを制御すると、ロボットの先端Tは、教示点P
Tから変動誤差成分ΔE(F(P
G’))だけずれ、さらに固定誤差成分ΔE
Sだけずれ、そして、目標点P
Gに高精度に位置合わせされる。
【0050】
このような教示点作成方法によれば、基準点P
Rと姿勢F(P
R)のロボットの先端Tとの間の誤差ΔE
Rを計測するだけで、後は計算のみで目標点P
Gにロボットの先端Tを高精度に位置合わせするための教示点P
Tを作成することができる。したがって、複数の目標点P
Gにロボットの先端Tを高精度に位置合わせするための複数の教示点P
Tを短時間で作成することができる。
【0051】
また、このような教示点作成方法によれば、目標点P
Gの位置がロボットに対する位置でなくても、基準点P
Rと目標点P
Gとの位置関係が既知であれば、目標点P
Gにロボットの先端Tを高精度に位置合わせするための教示点P
Tを作成することができる。
【0052】
ここで補足すると、
図3に示す変動誤差成分ΔE(F(P
G)),ΔE(F(P
G’))は、姿勢F(P
G),F(P
G’)が異なる姿勢であるため、厳密に言えば、同一ではない。しかしながら、変動誤差成分ΔE(F(P
G))とΔE(F(P
G’))との差は、変動誤差成分ΔE(F(P
G’))に比べて一般に小さい。したがって、変動誤差成分ΔE(F(P
G)),ΔE(F(P
G’))を実質的に同一とみなすことが可能である。以上の理由から、目標点P
Gの位置がロボットではなく基準点P
Rに対する位置として与えられる場合は、仮の目標点P
G’から求められた変動誤差成分ΔE(F(P
G’))に基づいて、目標点P
Gにロボットの先端Tを高精度に位置合わせすることができる教示点P
Tを作成することができる。
【0053】
一方、目標点P
Gの位置がロボットに対する位置で与えられる場合、仮の目標点P
G’を求めることなく、目標点P
Gに先端Tが位置する姿勢F(P
G)を算出することができる、すなわち、姿勢F(P
G)のロボットに生じる変動誤差成分ΔE(F(P
G))を算出することができる。その結果、変動誤差成分ΔE(F(P
G))に基づいて、目標点P
Gにロボットの先端Tを高精度に位置合わせすることができる教示点P
Tを作成することができる。
【0054】
この上述の概念にしたがって、コントローラ14は、自動で教示点を作成する。具体的には、
図1や
図2に示すように、ワークWの表面Waには、3つの穴を形成するために必要な目標点P
G1〜P
G3が定義されている。この目標点P
G1〜P
G3は、ワークWの表面Waに形成される、穴の開口の中心に対応する。また、目標点P
G1〜P
G3は、2つの基準点P
R1,P
R2をワークWの表面Waに沿って最短の長さで結ぶ仮想線Lを等分するように、仮想線L上に配置されている。すなわち、目標点P
G1〜P
G3の位置は、基準点P
R1,P
R2に対する位置で定義されている。このような目標点P
G1〜P
G3にロボット12の先端Tを高精度に位置合わせするための3つの教示点P
T1〜P
T3が作成される。
【0055】
また、穴の加工開始点に対応し、目標点P
G1,P
G2,P
G3の位置からロボット12側且つ表面Waに対して垂直方向に距離D1離れた目標点P
G4,P
G5,P
G6にロボット12の先端Tを高精度に位置決めするための3つの教示点P
T4,P
T5,P
T6が作成される。
【0056】
さらに、穴の加工終了点に対応し、目標点P
G1,P
G2,P
G3の位置から反ロボット12側且つ表面Waに対して垂直方向に距離D2離れた目標点P
G7,P
G8,P
G9にロボット12の先端Tを高精度に位置決めするための3つの教示点P
T7,P
T8,P
T9が作成される。
【0057】
以下、9つの教示点P
T1〜P
T9の作成方法およびその流れについて、
図5A〜5Bと、
図6A〜6Dとを参照しながら説明する。
【0058】
固定誤差成分ΔE
Sを算出するためのフローを示す
図5Aに示すように、まず、ステップS200において、コントローラ14は、ワークWの2つの基準点P
R1,P
R2の位置データ(座標)を取得する。なお、2つの基準点P
R1,P
R2の位置データ(座標)は、例えば、ロボット12、治具16、およびワークWの配置図面(CADデータ)に基づいて予め求められており、コントローラ14の記憶部(図示せず)に記憶されている。
【0059】
次に、ステップS210において、コントローラ14は、ステップS210で取得した基準点P
R1にロボット12の先端Tが位置する姿勢F(P
R1)にロボット12を制御する。
【0060】
続いて、ステップS220において、コントローラ14は、
図6Aに示すように、基準点P
R1とロボット12の先端Tとの間の誤差ΔE
R1を計測する。
【0061】
誤差ΔE
R1の計測は、コントローラ14がビジョンセンサ20を制御して撮影した画像を用いて行われる。具体的には、撮像画像上において、基準点P
R1とロボット12の先端Tとの間の距離を計測する。次に、ロボット12の姿勢からビジョンセンサ20の撮影方向を割り出す。そして、撮像画像上における基準点P
R1とロボット12の先端Tとの間の距離およびビジョンセンサ20の撮影方向に基づいて、基準点P
R1とロボット12の先端Tとの間の空間上の距離、すなわち誤差ΔE
R1を算出する。
【0062】
ステップS230において、コントローラ14は、
図6Aに示すように、姿勢F(P
R1)のときのロボット12に生じる変動誤差成分ΔE(F(P
R1))を算出する。変動誤差成分ΔE(F(P
R1))は、姿勢F(P
R1)のときの複数の関節それぞれの関節角度、複数のリンクそれぞれの長さ、ロボット12の構成要素の重量、関節を駆動するモータ軸のねじれ剛性、リンクそれぞれのたわみなどから算出することができる。
【0063】
ステップS240において、コントローラ14は、
図6Aに示すように、ステップS220で計測した誤差ΔE
R1と、ステップS230で算出した変動誤差成分ΔE(F(P
R1))とに基づいて、固定誤差成分ΔE
S1を算出する。
【0064】
ステップS250において、コントローラ14は、ステップS210で取得した基準点P
R2にロボット12の先端Tが位置する姿勢F(P
R2)にロボット12を制御する。
【0065】
ステップS260において、ステップS220と同様に、コントローラ14は、
図6Aに示すように、基準点P
R2とロボット12の先端Tとの間の誤差ΔE
R2を計測する。
【0066】
ステップS270において、ステップS230と同様に、コントロローラ14は、
図6Aに示すように、姿勢F(P
R2)のときのロボット12に生じる変動誤差成分ΔE(F(P
R2))を算出する。
【0067】
ステップS280において、コントローラ14は、
図6Aに示すように、ステップS260で計測した誤差ΔE
R2と、ステップS270で算出した変動誤差成分ΔE(F(P
R2)とに基づいて、固定誤差成分ΔE
S2を算出する。
【0068】
ステップS290において、コントローラ14は、ステップS240で算出した固定誤差成分ΔE
S1と、ステップS280で算出した固定誤差成分ΔE
S2との平均値として、平均固定誤差成分ΔE
Sを算出する。以後、この平均固定誤差成分ΔE
Sが、教示点P
T1〜P
T9を作成する際に使用される。
【0069】
ここからは、ステップS290で算出された(平均)固定誤差成分ΔE
Sを用いて、教示点P
T1〜P
T9を作成する方法について説明する。なお、教示点P
T1,P
T4,P
T7を作成する方法について説明することにより、他の教示点の作成方法についての説明を行ったものとする(教示点P
T2,P
T3がP
T1と同一の方法で作成され、教示点P
T5,P
T6がP
T4と同一の方法で作成され、教示点P
T8,P
T9がP
T7と同一の方法で作成されるからである)。
【0070】
教示点P
T1,P
T4,P
T7を作成するためのフローを示す
図5Bに示すように、ステップS300において、コントローラ14は、
図6Bに示すように、基準点P
R1,P
R2から、ステップS290で算出された固定誤差成分ΔE
Sが補償された基準点P
R1,P
R2として、すなわち基準点P
R1,P
R2から−ΔE
Sずれた、仮の基準点P
R1’,P
R2’を設定する。
【0071】
ステップS310において、コントローラ14は、
図6Bに示すように、仮の目標点P
G1’を、仮の基準点P
R1’,P
R2’との間で、目標点P
G1,P
G2と基準点P
R1の間の位置関係と同一の位置関係を実現できる位置に設定する。
【0072】
本実施の形態においては、
図1に示すように、目標点P
G1〜P
G3は、2つの基準点P
R1,P
R2をワークWの表面Waに沿って最短の長さで結ぶ仮想線Lを等分するように、その仮想線L上に等間隔に配置されている。したがって、仮の目標点P
G1’〜P
G3’は、仮の基準点P
R1,P
R2を結んで仮想線Lと同一形状の仮想線L’を等分するように、その仮想線L’上に設定される。その結果、仮の目標点P
G1’〜P
G3’は、目標点P
G1〜P
G3から−ΔE
Sずれた位置に設定される。
【0073】
なお、コントローラ14は、目標点P
G1,P
G2と基準点P
R1,P
R2の間の位置関係を、例えば、ワークWのCADデータに基づいて取得する。
【0074】
ステップS320において、コントローラ14は、仮の目標点P
G1’にロボット12の先端Tが位置する姿勢F(P
G1’)を算出する。
【0075】
ステップS330において、コントローラ14は、
図6Cに示すように、姿勢F(P
G1’)のロボット12に生じる、変動誤差成分ΔE(F(P
G1’))を算出する。
【0076】
ステップS340において、コントローラ14は、
図6Cに示すように、ステップS310で設定した仮の目標点P
G1’の位置と、ステップS330で算出した変動誤差成分ΔE(F(P
G1’))とに基づいて、目標点P
G1にロボットの先端Tが高精度に位置合わせされる教示点P
T1を作成する。具体的には、仮の目標点P
G1’から−ΔE(F(P
G1’))ずれた位置に教示点P
T1が作成される。
【0077】
次に、ステップS350において、コントローラ14は、
図6Dに示すように、仮の目標点P
G1’からロボット12側に且つワークWの表面Waに対して垂直方向に距離D1離れた位置に仮の目標点P
G4’を設定する。その結果、固定誤差成分ΔE
Sが補償された目標点P
G4として仮の目標点P
G4’が設定される。
【0078】
続いて、ステップS360において、コントローラ14は、
図6Dに示すように、仮の目標点P
G1’から反ロボット12側に且つワークWの表面Waに対して垂直方向に距離D2離れた位置に仮の目標点P
G7’を設定する。その結果、固定誤差成分ΔE
Sが補償された目標点P
G7として仮の目標点P
G7’が設定される。
【0079】
ステップS370において、コントローラ14は、仮の目標点P
G4’にロボット12の先端Tが位置する姿勢F(P
G4’)を算出する。
【0080】
ステップS380において、コントローラ14は、姿勢F(P
G4’)のロボット12に生じる、先端Tにおけるたわみ誤差成分ΔE(F(P
G4’))を算出する。
【0081】
ステップS390において、コントローラ14は、ステップS350で設定した仮の目標点P
G4’の位置と、ステップS380で算出した変動誤差成分ΔE(F(P
G4’))とに基づいて、目標点P
G4にロボットの先端Tが高精度に位置合わせされる教示点P
T4を作成する。具体的には、仮の目標点P
G4’から−ΔE(F(P
G4’))ずれた位置に教示点P
T4が作成される。
【0082】
ステップS400において、コントローラ14は、仮の目標点P
G7’にロボット12の先端Tが位置する姿勢F(P
G7’)を算出する。
【0083】
ステップS410において、コントローラ14は、姿勢F(P
G7’)のロボット12に生じる、先端Tにおける変動誤差成分ΔE(F(P
G7’))を算出する。
【0084】
ステップS420において、コントローラ14は、ステップS360で設定した仮の目標点P
G7’の位置と、ステップS410で算出した変動誤差成分ΔE(F(P
G7’))とに基づいて、目標点P
G7にロボットの先端Tが高精度に位置合わせされる教示点P
T7を作成する。具体的には、仮の目標点P
G7’から−ΔE(F(P
G7’))ずれた位置に教示点P
T7が作成される。
【0085】
本実施の形態によれば、基準点P
R1と姿勢F(P
R1)のロボットの先端Tとの間の誤差ΔE
R1と、基準点P
R2と姿勢F(P
R2)のロボットの先端Tとの間の誤差ΔE
R2とを計測するだけで、後は計算のみで、ワークWに定義されている目標点P
G1〜P
G9にロボットの先端Tを高精度に位置合わせするための教示点P
T1〜P
T9を作成することができる。したがって、複数の目標点P
G1〜P
G9にロボットの先端Tを高精度に位置合わせするための複数の教示点P
T1〜P
T9を短時間で作成することができる。
【0086】
また、目標点P
G1〜P
G9の位置がロボット12に対する位置でなくても、基準点P
R1,P
R2と目標点P
G1〜P
G9との位置関係があれば(例えばワークWのCADデータがあれば)、目標点P
G1〜P
G9にロボットの先端Tを高精度に位置合わせするための教示点P
T1〜P
T9を作成することができる。
【0087】
さらに、穴の開口中心に対応する目標点P
G1〜P
G3、穴の加工開始点に対応する目標点P
G4〜P
G6、および穴の加工終了点に対応する目標点P
G7〜P
G9にロボット12の先端T、すなわちドリル18aの先端Tを高精度に位置合わせできるため、ワークWに高精度の穴を形成することができる。すなわち、基準点P
R1,P
R2を結ぶ仮想線Lを等分する位置からワークWの表面Waに対して垂直に延びる3つの穴を高精度に形成することができる。
【0088】
以上、上述の実施の形態を挙げて本発明を説明したが、本発明はこれに限定されない。
【0089】
上述の実施の形態の場合、ロボット12がワークWの表面Waに向かってドリル18aを送るものであるが、本発明はこれに限らない。穴あけ装置18に、ドリル18aを送る送り機構を設けてもよい。この場合、ロボット12によって目標点P
G4〜P
G6にドリル18aの先端Tが位置合わせされた後、送り機構を備える穴あけ装置18が、ドリル18aをワークWに向かって所定の送り速度で送るように、ロボットシステム10が構成される。要するに複数の位置での位置決めを行う機械に適用可能である。
【0090】
また、上述の実施の形態の場合、目標点P
G1〜P
G3に孔が形成されるが、基準点P
R1,P
R2にも孔を形成してもよい。この場合、例えば基準点P
R1に穴を形成するための教示点は、
図5Aに示すステップS220で計測された誤差ΔE
R1とステップS200で取得した基準点P
R1の位置とに基づいて、作成することができる。すなわち、教示点の位置は、基準点P
R1から−ΔE
R1の位置に決定される。
【0091】
また、上述の実施の形態の場合、ワークWに定義された2つの基準点P
R1,P
R2に基づいて算出された固定誤差成分ΔE
S1,ΔE
S2の平均(平均固定誤差成分ΔE
S)を用いて、目標点P
G1〜P
G9にロボット12の先端Tを高精度に位置合わせすることができる教示点P
T1〜P
T9を作成しているが、本発明はこれに限らない。例えば、
図1や
図6Aに示すように、目標点P
G1に対する教示点P
T1を算出する場合は近い方の基準点P
R1の固定誤差成分ΔE
S1を用い、目標点P
G3に対する教示点P
T3を算出する場合は近い方の基準点P
R2の固定誤差成分ΔE
S2を用いるようにしてもよい。
【0092】
また、ワーク上の複数の基準点におけるΔE
Sを
図4のステップS100〜S130と同様の方法で算出し、得られた複数のΔE
Sに基づいて、任意の目標点におけるΔE
Sを解析的に求めてもよい。
【0093】
本発明において、固定誤差成分ΔE
Sを求めるための基準点P
Rが少なくとも1つ存在すればよい。ただし、複数の基準点P
Rに基づいて求められた複数の固定誤差成分ΔE
Sを用いる方が、目標点P
Tにロボット先端Tを位置合わせできる教示点P
Tを高精度に作成できることは明らかであり、また好ましい。
【0094】
さらに、上述の実施の形態の場合、ロボット12に取り付けられたビジョンセンサ20を用いて、基準点P
R1,P
R2とロボット12の先端Tとの間の誤差ΔE
R1,ΔE
R2を計測しているが、本発明はこれに限らない。ビジョンセンサ20は、ロボット12以外の場所、例えば治具16に取り付けられてもよい。
【0095】
加えて、基準点を用いて固定誤差成分ΔE
Sを算出する方法は、
図5Aに示す方法以外の方法も考えられる。それについて、
図7を参照しながら説明する。
【0096】
図7に示す、固定誤差成分ΔE
Sを算出する方法では、例えばティーチングペンダントなどの手動操作装置を介して作業者がロボット12を手動操作するステップが存在する。
【0097】
図7に示すように、ステップS500において、コントローラ14は、ワークWの2つの基準点P
R1,P
R2の位置(座標)を取得する。
【0098】
次に、ステップS510において、作業者がティーチングペンダントを介して、基準点P
R1にロボット12の先端Tが位置合わせされる姿勢F
M1にロボット12を手動操作する。なお、上述の実施の形態と異なり、作業者の目視によってロボット12の先端Tが基準点P
R1に位置合わせされるため、
図6Aに示すような空間上の誤差ΔE
R1は生じない。
【0099】
続いて、ステップS520において、コントローラ14は、ステップS510で作業者の手動操作によって実現されたロボット12の姿勢F
M1に基づいて、ロボット12の先端Tの位置(座標)P
M1を算出する。先端Tの位置P
M1は、姿勢F
M1のときの複数の関節それぞれの関節角度、リンク長などによって算出することができる。
【0100】
ステップS530において、コントローラ14は、ステップS500で取得した基準点P
R1の位置と、ステップS520で算出されたロボット12の先端Tの位置P
M1との間の誤差ΔE
RM1を算出する。確認すると、外見上では基準点P
R1に先端Tは位置合わせされているが、数値上では、基準点P1の座標と先端Tの座標がΔE
RM1だけ異なっている。その理由は、ステップS520において、コントローラ14が、ロボット12に生じるたわみやロボット12の据え付け誤差などを考慮せずに先端Tの位置を算出しているためである。
【0101】
ステップ540において、コントローラ14は、姿勢F
M1のロボット12に生じる、変動誤差成分ΔE(F
M1)を算出する。
【0102】
ステップS550において、コントローラ14は、ステップS530で算出した誤差ΔE
RM1と、ステップS540で算出した変動誤差成分ΔE(F
M1)とに基づいて、固定誤差成分ΔE
S1を算出する。
【0103】
次に、ステップS560において、ステップS510と同様に、作業者がティーチングペンダントを介して、基準点P
R2にロボット12の先端Tが位置合わせされる姿勢F
M2にロボット12を手動操作する。
【0104】
続いて、ステップS570において、ステップS520と同様に、コントローラ14は、ステップS560で作業者の手動操作によって実現されたロボット12の姿勢F
M2に基づいて、ロボット12の先端Tの位置(座標)P
M2を算出する。
【0105】
ステップS580において、ステップS530と同様に、コントローラ14は、ステップS500で取得した基準点P
R2の位置と、ステップS570で算出されたロボット12の先端Tの位置P
M2との間の誤差ΔE
RM2を算出する。
【0106】
ステップ590において、コントローラ14は、姿勢F
M2のロボット12に生じる、先端Tにおける変動誤差成分ΔE(F
M2)を算出する。
【0107】
ステップS600において、コントローラ14は、ステップS580で算出した誤差ΔE
RM2と、ステップS590で算出した変動誤差成分ΔE(F
M2)とに基づいて、固定誤差成分ΔE
S2を算出する。
【0108】
ステップS610において、コントローラ14は、ステップS550で算出した固定誤差成分ΔE
S1と、ステップS610で算出した固定誤差成分ΔE
S2との平均値として、平均固定誤差成分ΔE
Sを算出する。
【0109】
このような、ロボットシステム10の固定誤差成分ΔE
Sの算出方法によれば、ビジョンセンサ20は不要となる。
【0110】
最後に、ロボットの先端Tを目標点に位置合わせされるロボットの部分として本発明を説明してきたが、本発明は、これに限定しない。例えば、ロボット12のフランジ12gの取り付け面の中心であってもよい。
【0111】
また、上述の実施の形態においては、ロボットの先端が任意の位置に位置するときのロボットの姿勢は1つであるものとして説明してきたが、実際には複数存在する場合がある。そのために、例えば、
図5BのステップS320において、仮の目標点P
G1’にロボットの先端Tが位置する複数の姿勢F(P
G1’)が算出される可能性がある。この場合、例えば、作業者が所望する、目標点にロボットの先端が位置合わせされているときのロボットの姿勢を取得し、その取得した所望の姿勢に近い方の姿勢F(P
G’)を選択するようにすればよい。