特許第6844462号(P6844462)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーウェーブの特許一覧

特許6844462角度検出器の偏心誤差補正方法、ロボットシステム
<>
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000002
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000003
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000004
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000005
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000006
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000007
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000008
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000009
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000010
  • 特許6844462-角度検出器の偏心誤差補正方法、ロボットシステム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6844462
(24)【登録日】2021年3月1日
(45)【発行日】2021年3月17日
(54)【発明の名称】角度検出器の偏心誤差補正方法、ロボットシステム
(51)【国際特許分類】
   B25J 9/10 20060101AFI20210308BHJP
   G05B 19/404 20060101ALI20210308BHJP
   G01D 5/244 20060101ALI20210308BHJP
   G01B 21/22 20060101ALI20210308BHJP
【FI】
   B25J9/10 A
   G05B19/404 G
   G01D5/244 J
   G01B21/22
【請求項の数】8
【全頁数】21
(21)【出願番号】特願2017-141877(P2017-141877)
(22)【出願日】2017年7月21日
(65)【公開番号】特開2019-18328(P2019-18328A)
(43)【公開日】2019年2月7日
【審査請求日】2020年3月13日
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】特許業務法人 サトー国際特許事務所
(72)【発明者】
【氏名】河地 勇登
(72)【発明者】
【氏名】福岡 貴史
(72)【発明者】
【氏名】白取 寛章
(72)【発明者】
【氏名】川瀬 大介
【審査官】 樋口 幸太郎
(56)【参考文献】
【文献】 特開平5−269649(JP,A)
【文献】 特開2015−194462(JP,A)
【文献】 特開2016−198828(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10
G01B 21/22
G01D 5/244
G05B 19/404
(57)【特許請求の範囲】
【請求項1】
モータと、
前記モータの出力軸側に減速機を介して接続されたアームと、
前記モータの回転角度を入力軸角度として検出する入力軸角度検出器と、
前記アームの回転角度を出力軸角度として検出する出力軸角度検出器と、を有するロボットにおいて、前記出力軸角度検出器の偏心により生じる偏心誤差を補正する角度検出器の偏心誤差補正方法であって、
前記アームの自重による回転方向への影響が抑制される少なくとも3つの測定位置において出力軸角度を検出し、
前記測定位置におけるアーム角度値と当該測定位置において検出された出力軸角度との差分を偏心誤差として求め、
各測定位置における偏心誤差を前記アームの1回転を1周期とする正弦波で近似することにより、アーム角度値と偏心誤差との関係を示す誤差曲線を、アーム角度値の関数として求め、
誤差曲線を用いて出力軸角度とアーム角度値とを対応付けした補正式を求め、
前記アームを回転する際、補正式に基づいて、検出された出力軸角度に対応する補正値を求めて前記偏心誤差を補正することを特徴とする角度検出器の偏心誤差補正方法。
【請求項2】
前記測定位置の少なくとも1つに、前記アームの回転を機械的に規制するストッパに前記アームが上方から接触する接触位置を設定することを特徴とする請求項1記載の角度検出器の偏心誤差補正方法。
【請求項3】
前記測定位置の少なくとも1つに、前記アーム側の重心が、当該アームの回転中心の鉛直上方を含む所定の角度範囲内に位置する鉛直位置を設定することを特徴とする請求項1または2記載の角度検出器の偏心誤差補正方法。
【請求項4】
前記アームを正転させた際に検出した前記鉛直位置における出力軸角度と、正転時と同じ速さで前記アームを逆転させた際に検出した前記鉛直位置における出力軸角度との平均値を、当該鉛直位置における出力軸角度とすることを特徴とする請求項3記載の角度検出器の偏心誤差補正方法。
【請求項5】
前記アームを正転させた際に検出した複数の入力軸角度と出力軸角度との関係を近似した正転時近似線と、正転時と同じ速さで前記アームを逆転させた際に検出した複数の入力軸角度と出力軸角度との関係を近似した逆転時近似線とを求め、
前記正転時近似線から求まる前記鉛直位置における出力軸角度と、前記逆転時近似線から求まる前記鉛直位置における出力軸角度との平均値を、当該鉛直位置における出力軸角度とすることを特徴とする請求項3または4記載の角度検出器の偏心誤差補正方法。
【請求項6】
前記アームの回転中心の鉛直上方を中心とする所定の検出範囲を設定し、
前記検出範囲の上限または下限のいずれか一方まで前記アームを一旦回転させた後、前記アームを上限から下限まで回転させて所定角度ごとに出力軸角度を検出する処理と、同じ速さで前記アームを下限から上限まで回転させて所定角度ごとに出力軸角度を検出する処理とを同一回数だけ実行し、
各処理において検出した複数の出力軸角度の平均値を、前記鉛直位置における出力軸角度とすることを特徴とする請求項3または4記載の角度検出器の偏心誤差補正方法。
【請求項7】
補正式に含まれるアーム角度値の関数を、入力軸角度を前記減速機の減速比で除算して得られるアーム角度で近似することを特徴とする請求項1から6のいずれか一項記載の角度検出器の偏心誤差補正方法。
【請求項8】
モータと、
前記モータの出力軸側に減速機を介して接続されたアームと、
前記モータの回転角度を入力軸角度として検出する入力軸角度検出器と、
前記アームの回転角度を出力軸角度として検出する出力軸角度検出器と、
前記アームの自重による回転方向への影響が無い少なくとも3つの測定位置において出力軸角度を検出し、前記測定位置におけるアーム角度値と当該測定位置において検出された出力軸角度との差分を偏心誤差として求め、各測定位置における偏心誤差とを前記アームの1回転を1周期とする正弦波で近似することにより、アーム角度値と偏心誤差との関係を示す誤差曲線を求め、誤差曲線を用いて出力軸角度とアーム角度値とを対応付けした補正式を求め、前記アームを回転する際、補正式に基づいて検出された出力軸角度を補正する補正値を求めて前記偏心誤差を補正する処理を行う制御部と、
を備えることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットに設けられている角度検出器の偏心により生じる誤差を補正する角度検出器の誤差補正方法、ロボットシステムに関する。
【背景技術】
【0002】
従来、ロボットの関節角度の制御は、モータに取り付けた光学式エンコーダ等の角度検出器で検出した検出角度をフィードバックすることにより行われている。また、アーム先端の位置決め精度を高めるために、減速機等の伝達機構を介して接続されているアームの回転角度を直接読み取るための角度検出器がさらに取り付けられることもある。以下、モータの回転角度を検出する角度検出器を入力軸角度検出器と称し、アームの回転角度を検出する角度検出器を出力軸角度検出器と称する。
【0003】
入力軸角度検出器は、入力軸角度を減速機の減速比で除算することにより、所定の原点に対するアームの回転角度を求めることができることから、減速比に応じた高い分解能でアームの回転角度を検出することができる。そのため、入力軸角度検出器は、検出器そのものの分解能や精度が相対的に低い場合であっても、細かな制御が可能になるという特徴がある。
【0004】
一方、出力軸角度検出器は、減速機のバックラッシ分のずれや弾性変形によるねじれ、あるいは減速機の角度伝達誤差等の影響を受けることなく直接的にアームの回転角度を検出することが可能になるという特徴がある。
【0005】
そのため、入力軸角度検出器と出力軸角度検出器とを設けた場合には、分解能と検出精度とを考慮して、入力軸角度検出器を主に角速度制御に用い、出力軸角度検出器を主に角度制御に用いる組み合わせが一般的に採用されている。なお、これらの角度検出器は、入力軸角度と出力軸角度との相対的なずれをねじれ角度として検出することで、制振制御や力制御に用いられることもある。
【0006】
ただし、角度検出器には、回転中心がずれている場合つまりは角度検出器が偏心している場合には、その検出角度に誤差が生じるという問題がある。以下、角度検出器の偏心により生じる誤差を偏心誤差と称する。そのため、例えば特許文献1では、周期的な角度ごとに検出した入力軸角度と出力軸角度とに基づいて偏心誤差を補正して先端位置精度を向上させることが提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2015−194462号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、ロボットの関節部分では、角度検出器の偏心だけでなく、減速機のバックラッシやアーム自重の影響による減速機の弾性変形等、入力軸角度と出力軸角度との間にずれを生じさせる要因が存在する。そのため、入力軸角度と出力軸角度とに基づいて偏心誤差のみを正確に抽出することは困難であり、偏心誤差を正しく補正することができなかった。
【0009】
本発明は上記事情に鑑みてなされたものであり、その目的は、角度検出器の偏心により生じる偏心誤差を正しく補正することができる角度検出器の偏心誤差補正方法、ロボットシステムを提供することにある。
【課題を解決するための手段】
【0010】
請求項1に記載した発明は、入力軸角度検出器と出力軸角度検出器とを有するロボットにおいて出力軸角度検出器の偏心により生じる偏心誤差を補正するために、まず、アームの自重による回転方向への影響が抑制される少なくとも3つの測定位置において出力軸角度を検出する。この場合、アームの自重による回転方向への影響が抑制される位置には、回転方向への影響が全く無い位置、および、回転方向への影響がほぼ無視できる程度に小さいと考えられる位置が含まれる。
【0011】
この測定位置で検出される出力軸角度は、アームの自重の影響が抑制されていることから、出力軸角度検出器が偏心していなければ実際のアームの回転角度を示すアーム角度値に一致することになる。一方、出力軸角度検出器が偏心していればアーム角度値からずれることになるが、アームの自重の影響が抑制されていることから、出力軸角度とアーム角度値とがずれている場合には、そのずれは、出力軸角度検出器の偏心によって生じた偏心誤差であると考えられる。
【0012】
そこで、アーム角度値と検出した出力軸角度との差分を、それぞれの測定位置における偏心誤差として求める。これにより、アーム角度値と偏心誤差との組み合わせが少なくとも3つ取得することができる。
【0013】
さて、出力軸角度検出器が偏心している場合、出力軸角度検出器の検出位置は、アームの回転に伴って回転中心からの距離が変化するものの、アームが1回転すると同じ位置に戻ることになる。そのため、出力軸角度検出器が偏心により生じた偏心誤差もアームの1回転を1周期とする正弦波状になる。
【0014】
そこで、各測定位置における偏心誤差を、アームの1回転を1周期とする正弦波で近似することにより、アーム角度値と偏心誤差との関係を示す誤差曲線を求めることができる。この誤差曲線を用いた場合、偏心誤差をθe、アーム角度値をθaとすると、偏心誤差は、アーム角度値を変数とする関数fを用いて簡易的に以下のように表すことができる。
θe=f(θa)
【0015】
求めた誤差曲線は、アーム角度値と偏心誤差との関係を示すものであるため、ロボットの稼動時に偏心誤差を補正するためには、稼動時に検出できる入力軸角度または出力軸角度からアーム角度値を求める必要がある。
【0016】
このとき、上記した測定位置以外ではバックラッシや弾性変形あるいは減速機の角度伝達誤差等の誤差要因が存在するため、入力軸角度検出器で検出される入力軸角度からアーム角度値を求めると、アーム角度値に上記の誤差が含まれる可能性があり、最終的に求める補正値に誤差が生じてしまう。
【0017】
一方、前述のように、出力軸角度検出器で検出される出力軸角度にはバックラッシや弾性変形あるいは減速機の角度伝達誤差等の誤差要因の影響を受けないため、出力軸角度からアーム角度値を求めることが望ましい。
このとき、出力軸角度はアーム角度値と偏心誤差との和として検出されることから、それらの関係は、以下のようになる。
出力軸角度=アーム角度値+偏心誤差
【0018】
そして、これら2つの関係から、出力軸角度とアーム角度値との対応関係を示す補正式を、以下のように求めることができる。
出力軸角度=アーム角度値(θa)+f(θa)
すなわち、ロボットの稼動時に検出される出力軸角度から、その出力軸角度に対応するアーム角度値を求めることができる。そして、出力軸角度に対応するアーム角度値が求まれば、上記した誤差曲線に基づいてその出力軸角度に対応する偏心誤差のみを抽出することができ、偏心誤差を補正することができる。
【0019】
このように、各測定位置において出力軸角度を検出し、その測定位置におけるアーム角度値と出力軸角度との差分を偏心誤差として誤差曲線を求めることにより、アーム角度値に対応する偏心誤差を、バックラッシや弾性変形あるいは減速機の角度伝達誤差等の誤差を含まない状態で正確に抽出することができる。
【0020】
そして、誤差曲線を用いて出力軸角度とアーム角度値とを対応付けた補正式が求まったことにより、稼動中に検出可能な出力軸角度からアーム角度値を求めることができ、アーム角度値が求まれば、そのアーム角度値に対応する偏心誤差、すなわち、出力軸角度に含まれる偏心誤差を補正するための補正値を正確に求めることができる。
したがって、角度検出器の偏心により生じる偏心誤差を正しく補正することができる。
【0021】
また、請求項8に係る発明のように上記した処理を実行する制御部を備えるロボットシステムにおいても、角度検出器の偏心により生じる偏心誤差を正しく補正することができる。
【0022】
補正値を正しく求めるためにはアーム自重の影響が抑制された姿勢で偏心誤差を計測する事が重要である。このとき、ストッパの位置を細かく変更すれば理論上はアーム自重の影響を受けない姿勢が無限になるものの、現実のロボットにおいてはそのような細かな変更を可能にするような構造にすることはないため、アーム自重の影響を受けない姿勢というのは現実的には有限である。
【0023】
そのため、偏心誤差が正弦波に近似した変化を示すという点に着目すれば、アームの自重が抑制されていると考えられる3点の姿勢における偏心誤差を求めることにより、偏心誤差が正弦波に近似する変化を示すという特性に基づいて誤差曲線を生成することができることから、実際のロボットへの適用に好適となる。
【0024】
また、偏心誤差の補正対象が出力軸角度検出器である点も重要である。出力軸角度検出器が偏心しているか否かを確認できるのは、ロボットの組付けが完了した後である。つまり、出力軸角度検出器の偏心誤差を求めることができるのは、ロボットの組付けが完了した後、換言すると、ロボットの関節がアームの自重を受ける状態になった後である。
この場合、アームの自重を受けないように例えばロボットアームを床に寝かせて調整するといったことは、ロボットが比較的重量物であることや、ロボットが傷ついたりすることに鑑みると、製造現場で現実的に行えるものではない。
【0025】
その点、本願の方法であれば、組み付けが完了したロボットに対して誤差曲線を求めたり補正値を求めたりすることが可能となるため、ロボットの製造現場において現実的に実施可能であるというメリットがあるとともに、ロボットの設置現場においても誤差曲線を求めたり補正値を求めたりすることができるようになり、極めて効果的である。
【0026】
請求項2に記載した発明は、測定位置の少なくとも1つに、アームの回転を機械的に規制するストッパにアームが上方から接触する接触位置を設定する。ストッパは、ロボットに機械的に取り付けられることから、その位置が固定されており、アームの回転中心との機械的な位置関係も定まっている。また、接触位置では、アーム側の自重がストッパによって支えられるため、アーム側の自重により検出角度に誤差が生じることもない。
【0027】
そのため、アームが接触位置にある場合には、アーム角度値を、ストッパの位置やアームの外形寸法等から機械的に特定することができる。したがって、測定位置として接触位置を設定することにより、出力軸角度検出器の偏心に起因する偏心誤差のみを抽出することができる。
【0028】
請求項3に記載した発明は、測定位置の少なくとも1つに、アーム側の重心が、アームの回転中心の鉛直上方を含む所定の角度範囲内に位置する鉛直位置を設定する。アームが鉛直位置に位置している場合には、減速機には回転方向に力が加わらないことから弾性変形がない状態、あるいは、回転方向に加わる力が微小であることから弾性変形が無視できる程度に小さい状態であると考えられる。
【0029】
そのため、鉛直位置では、入力軸と出力軸とがほぼ一致した状態になっていると考えられ、その場合には、検出した入力軸角度からアーム角度値を高い精度で求めることができると考えられる。
したがって、測定位置として鉛直位置を設定することにより、出力軸角度検出器の偏心に起因する偏心誤差のみを抽出することができる。また、鉛直位置では、例えばアームを真っ直ぐ伸ばした状態であればアームの向きがほぼ鉛直方向になることから、アーム角度値を機械的に特定することもできる。
【0030】
請求項4に記載した発明は、アームを正転させた際に検出した鉛直位置における出力軸角度と、正転時と同じ速さでアームを逆転させた際に検出した鉛直位置における出力軸角度との平均値を、鉛直位置における出力軸角度とする。
【0031】
モータを制御してアームを一定速度で正転および逆転した場合、出力軸は入力軸に引きずられた形で回転することから、出力軸と入力軸との間にねじれが生じ、アームを正転させた場合に検出された出力軸角度と逆転させた場合に検出された出力軸角度との間にずれが生じるおそれがある。
【0032】
一方、同じ速さでアームを回転させれば、正転時と逆転時とで同じ大きさのねじれが生じることになるため、正転時と逆転時との平均を出力軸角度とすることにより、ねじれの影響を排除した状態の出力軸角度に基づいて補正値を求めることができ、補正値の精度を向上させることができる。
【0033】
請求項5に記載した発明は、アームを正転させた際に検出した複数の入力軸角度と出力軸角度との関係を近似した正転時近似線と、正転時と同じ速さでアームを逆転させた際に検出した複数の入力軸角度と出力軸角度との関係を近似した逆転時近似線とを求め、正転時近似線から求まる鉛直位置における出力軸角度と、逆転時近似線から求まる鉛直位置における出力軸角度との平均値を、当該鉛直位置における出力軸角度とする。
【0034】
例えば減速機として波動歯車装置を用いる場合、角度検出器の検出値には、入力軸角度から求めた出力軸角度が理論値からずれることによる角度伝達誤差が生じるおそれがある。このため、鉛直位置で1回検出した出力軸角度を用いて補正を行うと、角度伝達誤差が含まれてしまう。そこで、正転時近似線から求まる出力軸角度と逆転時近似線から求まる出力軸角度との平均値を鉛直位置における出力軸角度とすることにより、角度伝達誤差の影響を抑制した状態で出力軸角度を求めることができ、補正値の精度を向上させることができる。
【0035】
請求項6に記載した発明は、アームの回転中心の鉛直上方を中心とする検出範囲を設定し、検出範囲の上限または下限のいずれか一方までアームを一旦回転させた後、アームを上限から下限まで回転させて所定角度ごとに出力軸角度を検出する処理と、同じ速さで前記アームを下限から上限まで回転させて所定角度ごとに出力軸角度を検出する処理とを同一回数だけ実行し、各処理において検出した複数の出力軸角度の平均値を、鉛直位置における出力軸角度とする。
【0036】
例えば減速機として波動歯車装置を用いる場合、角度検出器の検出値には、上記した角度伝達誤差が含まれるおそれがあるそこで、アームを正転および逆転させ、検出範囲の上限から下限までの間で複数の出力軸角度を検出する。
【0037】
この場合、検出範囲はアームの回転中心の鉛直上方を中心として設定されていることから、また、アームを正転および逆転させていることから、検出した複数の出力軸角度の総平均値を鉛直位置における出力軸角度として扱うことができる。そして、角度伝達誤差の影響を抑制した状態で出力軸角度を求めることができることから、補正値の精度を向上させることができる。
【0038】
請求項7に記載した発明は、補正式を用いて出力軸角度からアーム角度値を求める際、補正式に含まれるアーム角度値の関数を、入力軸角度を減速機の減速比で除算して得られるアーム角度で近似する。
【0039】
上記した補正式は、アーム角度値(θa)と関数f(θa)との和として示される非線形式であり、検出された出力軸角度からアーム角度値を求めることが難しく、また、演算負荷が大きくなったり演算時間が長くなったりするおそれがある。
そこで、関数f(θa)について、アーム角度値(θa)をアーム角度(θai)で代用することにより、補正式を簡素化する。実際のロボットにおいては、アーム角度値(θa)とアーム角度(θai)とのずれはごく小さいものと想定されるため、アーム角度(θai)を代用した場合であっても、アーム角度値(θa)を用いた場合と同程度の精度になると考えられる。
【0040】
そして、アーム角度(θai)を代用することにより、演算負荷を大きく低減することができる。これにより、ロボットを稼動時に補正式を用いて演算を行っても、アーム角度値や補正値を容易且つ制御に影響を与えるような遅延を生じさせることなく求めることができる。
【図面の簡単な説明】
【0041】
図1】第1実施形態によるロボットシステムの構成を模式的に示す図
図2】ロボットの関節部の概略を模式的に示す図
図3】偏心誤差を補正する処理の流れを示す図
図4】鉛直位置を模式的に示す図
図5】鉛直位置における出力軸角度のずれを模式的に示す図
図6】アーム角度値と出力軸角度との関係の一例を示す図
図7】アーム角度値と偏心誤差との関係の一例を示す図
図8】第2実施形態による角度伝達誤差が含まれた出力軸角度を求める手法の一例を示す図その1
図9】角度伝達誤差が含まれた出力軸角度を求める手法の一例を示す図その2
図10】接触位置を増やす構成の一例を模式的に示す図
【発明を実施するための形態】
【0042】
以下、複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に共通する部位には同一符号を付して説明する。
(第1実施形態)
以下、第1実施形態について、図1から図7を参照しながら説明する。
図1に示すように、本実施形態のロボットシステム1は、いわゆる垂直多関節型のロボット2と、そのロボット2を制御するコントローラ3とを備えている。
【0043】
ロボット2は、ベース2a上に、鉛直方向に設定された回転軸を介してベース2aに接続されているショルダ2bが、水平方向に回転可能に連結されている。ショルダ2bには、水平方向に設定された回転軸を介して第1アーム2cの一端が、垂直方向に回転可能に連結されている。この第1アーム2cの他端側には、水平方向に設定された回転軸を介して第2アーム2dの一端が、垂直方向に回転可能に連結されている。そして、第2アーム2dの他端側には、第2アーム2dに対して相対的に回転可能なツール2eが連結されている。
【0044】
また、ロボット2には、例えば第1アーム2cの可動範囲を機械的に規定するストッパ4が設けられている。このストッパ4は、メカエンドとも称されるものであり、本実施形態では、第1アーム2cを図示反時計回りに回転させた際の可動範囲を規定する第1ストッパ4Aと、第1アーム2cを図示時計回りに回転させた際の可動範囲を規定する第2ストッパ4Bとが設けられている。これらのストッパ4は、取り付け穴(図10参照)に着脱可能あるいは固定的に設けられている。以下、図1において図示時計回りへの回転を正転と称し、図示反時計回りへの回転を逆転と称する。
【0045】
第1ストッパ4Aは、第1アーム2cの回転中心(J1)の鉛直上方を示す鉛直線(Lv)よりも逆転側となる位置に設けられている。このため、第1ストッパ4Aは、第1アーム2cが接触した状態では、第1アーム2cを下方側から支持することになる。換言すると、第1アーム2cは第1ストッパ4Aに上方側から接触するとともに、第1アーム2cが第1ストッパ4Aに接触している状態においては、第1アーム2c側の重量つまりは第1アーム2cを含むロボット2の先端側の重量は、第1ストッパ4Aによって支えられている。以下、第1アーム2c側の重量のようにロボット2の関節部に加わる重量を便宜的にアーム自重と称する。
【0046】
第2ストッパ4Bは、鉛直線(Lv)よりも正転側となる位置に設けられている。このため、第2ストッパ4Bは、第1アーム2cが接触した状態では、第1アーム2cを下方側から支持することになる。換言すると、第1アーム2cは第2ストッパ4Bに上方側から接触するとともに、第1アーム2cが第2ストッパ4Bに接触している状態においては、アーム自重は、第2ストッパ4Bによって支えられている。
【0047】
さて、ロボット2は、図2に示すように、例えばショルダ2bと第1アーム2cとを連結している関節部に、第1アーム2cを駆動するモータ5、モータ5の出力軸に接続されている伝達機構としての減速機6、モータ5の回転角度を検出する入力軸角度検出器7、アームの回転角度を検出する出力軸角度検出器8等が設けられている。
モータ5は、例えばステッピングモータで構成されている。減速機6は、本実施形態では波動歯車装置により構成されている。
【0048】
入力軸角度検出器7および出力軸角度検出器8は、回転ディスクと光学検出器とを有する周知のエンコーダにより構成されている。以下、入力軸角度検出器7の検出値を入力軸角度と称し、出力軸角度検出器8の検出値を出力軸角度と称するとともに、それらを総称して検出角度とも称する。なお、検出角度は、アームの正転方向を正方向とする。
【0049】
この場合、入力軸角度検出器7の回転中心をJiとし、出力軸角度検出器8の回転中心をJoとすると、第1アーム2cの場合には、入力軸角度検出器7の回転中心(Ji)、より厳密に言えば減速機6の出力軸の回転中心が第1アーム2cの回転中心(J1)になる。そして、第1アーム2cの回転中心(J1)と出力軸角度検出器8の回転中心(Jo)との位置のずれが、出力軸角度検出器8の偏心に相当する。
【0050】
コントローラ3は、図示しないマイクロコンピュータ等で構成された制御部3aを有しており、ロボット2の姿勢や動作を制御する。例えば、制御部3aは、モータ5に取り付けている入力軸角度検出器7で検出した入力軸角度をフィードバックすることにより、各関節部のモータ5を駆動してロボット2の姿勢を制御する。また、制御部3aは、ツール2eを駆動してワークの把持等の動作を制御する。また、制御部3aは、後述するように出力軸角度検出器8の回転中心のずれに起因する誤差、つまりは、出力軸角度検出器8の偏心により生じる偏心誤差を補正する処理を実行する。
【0051】
次に上記した構成の作用について説明する。
前述のように、角度検出器は、自身の回転中心とアームの回転中心との位置がずれて偏心している場合には、検出角度に誤差が生じるという問題がある。このとき、出力軸角度検出器8の偏心誤差を補正することができれば、アームの回転角度の検出精度を向上させることができると考えられる。
【0052】
このとき、いずれの誤差要因も存在していなければ、入力軸角度に基づいてアームの回転角度を求めることができると考えられる。しかし、ロボット2の関節部に設けられている角度検出器の場合、偏心誤差以外にも、入力軸角度と実際のアームの回転角度を示すアーム角度値との間に誤差が生じる要因が存在する。具体的には、図2に示すように、ロボット2の関節部分においては、入力軸角度(θi)に対して、バックラッシ分のずれ(D1)、および弾性変形分のずれ(D2)が生じる可能性がある。なお、図2では説明のために、それぞれのずれを意図的に拡大して示している。
【0053】
このうち、弾性変形分のずれは、アーム自重が回転方向に影響を与えることによって生じるものであるため、ロボット2の姿勢つまりはアームの回転角度に応じて大きさが変化する。そのため、単純に入力軸角度(θi)からアームの実際の回転角度を求めることができず、入力軸角度(θi)と出力軸角度(θo)との差分であるねじれ角度から偏心誤差のみを正確に抽出することは困難である。
【0054】
この場合、アーム自重の影響を抑えるために、ロボット2を組み立てる前の段階で関節部分の偏心を計測しておく手法が考えられる。しかし、そのような手法は、出力軸角度検出器8はアーム側に取り付けられるため組み立て誤差によって偏心自体がずれる可能性があること、また、組み立て誤差が生じないように作業することは難しく生産性が著しく低下するおそれがあること等を考慮すると、実用的とは言い難い。
【0055】
また、減速機6の剛性やアームの剛性等、設計上の特性に基づいてアーム自重の影響を推定して補正する手法も考えられる。しかし、そのような手法は、設計上の特性と実際の特性とが異なるおそれがあること、また、減速機6の個体ごとの特性を同定することが困難であることから、補正値に誤差が含まれてしまうおそれがあり、正確に補正することは難しいと考えられる。
【0056】
さらに、偏心誤差の補正対象が出力軸角度検出器8である点も重要である。出力軸角度検出器8が偏心しているか否かを確認できるのは、ロボット2の組付けが完了した後である。つまり、出力軸角度検出器8の偏心誤差を求めることができるのは、ロボット2の組付けが完了した後、換言すると、ロボット2の関節がアームの自重を受ける状態になった後である。この場合、アームの自重を受けないように例えばロボットアームを床に寝かせて調整するといったことは、ロボット2が比較的重量物であることや、ロボット2が傷ついたりするおそれがあることに鑑みると、製造現場で現実的に行えるものではない。
【0057】
そこで、本実施形態では、以下のようにして、出力軸角度検出器8の偏心による偏心誤差を正しく補正する。以下、第1アーム2cに設けられている出力軸角度検出器8の偏心誤差を補正する例について説明するが、他のアームについても同様の考え方で補正することができる。また、入力軸角度検出器7については、偏心等の補正や原点合わせ等の調整が既に行われているものとする。なお、入力軸角度検出器7の調整は、偏心の補正については一般的にモータ5単体で実施することができ、原点合わせについてはストッパ4にアームを当てること等により実施することができる。
【0058】
図3は、本実施形態による偏心誤差補正方法における処理の全体的な流れを示している。以下、第1アーム2cを例として説明する。また、以下の処理は、本実施形態ではコントローラ3の制御部3aによって実行されるものとする。なお、詳細は後述するが、図3に示すステップS1〜S3は例えばティーチング作業時等、ロボット2が実際の作業を行っていない非稼動時に行われる処理であり、ステップS4は非稼動時あるいはロボット2が実際に作業を行っている稼動時に行うことができる処理であり、ステップS5は稼動時に行われる処理である。また、ステップS4は、省略することもできる。
【0059】
まず、コントローラ3は、各測定位置における検出角度、つまりは入力軸角度と出力軸角度とを取得する(S1)。本実施形態では、測定位置として、アームの自重による回転方向への影響が無い位置を含む少なくとも3つの位置を設定している。この場合、アームの自重による回転方向への影響が無い位置には、回転方向への影響が全く無い位置、および、回転方向への影響がほぼ無視できる程度に小さいと考えられる位置も含まれる。
【0060】
本実施形態絵は、測定位置として、第1アーム2cが各ストッパ4に接触する2つの接触位置、および、アーム自重の重心が回転中心の鉛直上方を含む所定の範囲内に位置する1つの鉛直位置の合計3つを設定している。
【0061】
このうち接触位置は、第1アーム2cが第1ストッパ4Aに上方側から接触する位置(Pm1。図6参照)と、第1アーム2cが第2ストッパ4Bに上方側から接触する位置(Pm2。図6参照)である。このとき、第1アーム2cを接触位置まで回転させる際には、モータ5を駆動して第1アーム2cを回転させることもできるし、作業者の手で第1アーム2cを回転させることもできる。
【0062】
この接触位置は、各ストッパ4の位置が機械的に定まっていることから、第1アーム2cがストッパ4に接触している状態の回転角度、つまりは、接触位置におけるアーム角度値をロボット2の機械的な設計値に基づいて特定することができる位置である。また、接触位置ではアーム自重がストッパ4によって支えられるため、アーム側の自重により出力軸側に誤差が生じることもない。そのため、接触位置は、出力軸角度検出器8の偏心に起因する偏心誤差のみを抽出できる位置であると言える。また、接触位置は、アームの回転角度を機械的な設計値に基づいて推定できる位置、および、アームの自重による回転方向への影響が無い位置に該当する。
【0063】
一方、鉛直位置は、補正対象のアームが例えば第1アーム2cであれば、図4に示すように、第1アーム2c側の重心(G)が鉛直線(Lv)上、あるいは、鉛直線(Lv)を含む所定の角度範囲(α)内となる位置(Pg。図6参照)である。
【0064】
このとき、ロボット2の重心(G)は、ロボット2の姿勢に基づいて大まかに特定することができるし、例えば各アームが真っ直ぐに伸ばされている状態等であれば、作業者が目視にて大まかに把握することもできる。また、重心(G)を鉛直位置まで移動させる際には、入力軸角度をフィードバックすることでモータ5を駆動して重心(G)が鉛直位置にくるように制御することもできる。あるいは、重心(G)を把握できているのであれば、作業者が手で第1アーム2cを回転させることにより目視にて重心(G)が概ね鉛直位置にくるようにすることもできる。
【0065】
また、角度範囲(α)は、弾性変形分のずれが概ね等しい考えられる範囲として設定される。この角度範囲(α)は、モータ5を駆動して制御する場合には、入力軸角度を基準として設定することができる。あるいは、角度範囲(α)は、作業者が手で第1アーム2cを回転させる場合には、重心(G)が第1アーム2cの回転中心(J)の鉛直上方となるように目視にて設定することもできる。つまり、鉛直位置は、アームの自重による回転方向への影響が無い位置、および、アームの自重による回転方向への影響がほとんど無いと予想される位置に該当する。
【0066】
さて、鉛直位置は、減速機6には鉛直下方への力は加わるものの回転方向への力は加わらない、あるいは、無視できる程度に小さいと予想されることから、減速機6には弾性変形分のずれが生じない状態となる。
ただし、鉛直位置では、接触位置とは異なり、出力軸角度に影響を与える別の要因が存在する。モータ5を制御してアームを一定速度で正転および逆転した場合、出力軸は入力軸に引きずられた形で回転することから、出力軸側と入力軸側との間にねじれが生じることになる。
【0067】
その結果、アームを正転させた場合に検出された出力軸角度と逆転させた場合に検出された出力軸角度との間にずれが生じる。
そのため、本実施形態では、図5に示すように、鉛直位置の入力軸角度がθgであったとすると、第1アーム2cを正転させて鉛直位置に到達した場合における出力軸角度(θf)と、正転時と同じ速さで第1アーム2cを逆転させて鉛直位置に到達した場合における出力軸角度(θb)とを検出し、その平均値を鉛直位置における出力軸角度(θout)としている。
【0068】
同じ速さで第1アーム2cを回転させれば正転時と逆転時とで同じ大きさのねじれが生じることになるため、正転時と逆転時との平均を取ることにより、ねじれの影響を排除した状態で補正値を求めることができるようになる。つまり、鉛直位置では、回転方向への力をほぼ無視できることから、入力軸角度を減速機6の減速比で除算した値をアーム角度値として用いることができる。また、バックラッシ分のずれが逆向きになるため、バックラッシ分のずれも打ち消した状態でアーム角度値を求めることができる。
【0069】
このように、鉛直位置は、出力軸角度検出器8の偏心に起因する偏心誤差のみを抽出できる位置であると言える。なお、出力軸角度が補正される前であることから精度は若干低下するものの、正転と逆転とで同じ出力軸角度における入力軸角度の平均値を求めてアーム角度値とすることもできる。
【0070】
各測定位置において入力軸角度および出力軸角度を検出すると、コントローラ3は、図3に示すように誤差曲線(Le)を求める(S2)。このとき、出力軸角度検出器8が偏心していなければ、出力軸角度はアーム角度値に一致するはずであり、その場合には、アーム角度値と出力軸角度との関係は、図6に仮想線(Lt)にて示すように、正比例の関係になる。
【0071】
これに対して、出力軸角度検出器8が偏心している場合には、その偏心によって生じる誤差の分だけ出力軸角度が仮想線(Lt)からずれることになるため、そのずれを、出力軸角度検出器8の偏心によって生じた偏心誤差として扱うことができる。なお、アーム自重が回転方向に影響を与える位置では、減速機6におけるねじれ分が推定できないことから上記の考え方を適用することができず、入力軸角度からアーム角度値を求めることは困難である。
【0072】
さて、各測定位置におけるアーム角度値および出力軸角度が、接触位置(Pm1)において(θa1,θo1)であり、接触位置(Pm2)において(θa2,θo2)であり、鉛直位置(Pg)において(θag,θout)であったとする。
【0073】
このとき、上記したように仮想線(Lt)と出力軸角度との差分が偏心誤差であることから、コントローラ3は、図6に示すアーム角度値と出力軸角度との関係を、図7に示すようにアーム角度値と偏心誤差との関係に変換する。なお、変換に際しては、後述するオフセット(B)により調整できるため、例えばいずれかの測定位置を原点や横軸の零点とする態様で変換することもできる。
【0074】
ここで、出力軸角度検出器8の偏心誤差は、アームの1回転を1周期とする正弦波状になることが知られている。これは、出力軸角度検出器8の回転中心(Jo)が第1アーム2cの回転中心(J)からずれている場合には、光学検出器による検出位置が、第1アーム2cの回転にともなって変化するとともに1回転すると同じ位置に戻るためである。
【0075】
そのため、アーム角度値(θa)と偏心誤差(θe)との関係を示す誤差曲線(Le)は、図7に示す各測定位置を通るような正弦波で近似することができ、以下の(1)式のように求めることができる。
θe=A(sin(θa+φ))+B ・・・(1)
【0076】
さて、(1)式のうち、未知数は、振幅(A)、位相(φ)およびオフセット(B)の3つであるが、上記したように3つの測定位置におけるアーム角度値(θa)と偏心誤差(θe)とが求まっていることから、各測定位置におけるアーム角度値(θa)と偏心誤差(θe)とを(1)式に代入することにより、振幅(A)、位相(φ)およびオフセット(B)の各未知数が特定され、誤差曲線(Le)を求めることができる。
【0077】
この誤差曲線は、アーム角度値(θa)と偏心誤差(θe)との関係を示すものであるため、ロボット2の稼動中に偏心誤差を求めるためには、稼動中に検出できるいずれかの検出角度からアーム角度値を特定する必要がある。ただし、アーム自重の影響があることから、入力軸角度に基づいてアーム角度値を特定することは困難である。
【0078】
そこで、本実施形態では、出力軸角度に基づいてアーム角度値を特定する。(1)式に示す偏心誤差(θe)は、上記したように出力軸角度(θo)と偏心が無いと仮定した場合におけるアーム角度値(θa)との差分であるため、それらの関係は、以下の(2)式で表すことができる。
θo=θa+θe ・・・(2)
【0079】
これら(1)式および(2)式から偏心誤差(θe)を消去すると、出力軸角度(θo)とアーム角度値(θa)との関係が、以下の(3)式のように求まる。この(3)式は、誤差曲線を用いて出力軸角度とアーム角度値とを対応付けした補正式に相当する。
θo=θa+(A(sin(θa+φ))+B) ・・・(3)
【0080】
この(3)式から明らかなように、出力軸角度を検出すれば、その出力軸角度に対応するアーム角度値(θa)を求めることができる。そして、アーム角度値(θa)が求まれば、(1)式に基づいて、偏心誤差つまりは出力軸角度検出器8の偏心による誤差を補正するための補正値を求めることができる。
【0081】
これにより、ロボット2の稼動中に出力軸角度を検出する際、検出した出力軸角度に含まれる偏心誤差を正しく求めることができるとともに、その偏心誤差を補正値として用いることにより、偏心誤差を正確に補正することができる。なお、一見すると(3)式からは複数のアーム角度値の候補が解として求まるように見えるが、実際のロボット2においては偏心誤差の振幅は非常に小さいことが予想されるため、実用上、複数解への考慮は不要であると考えられる。
【0082】
ところで、(3)式は非線形であることから、直接的にアーム角度値(θa)を求めることが難しく、ロボット2の稼動時に演算を行うと、演算負荷が増大したり処理速度が低下したりするおそれがある。
【0083】
そこで、コントローラ3は、図3に示すように補正の準備を行う(S4)。この補正の準備では、アーム角度値(θa)あるいは補正値そのものを直接的あるいは補間等により間接的に特定可能な参照テーブルや、ロボット2の稼動中にアーム角度値(θa)あるいは補正値そのものを遅延無く求めることができる程度の例えばn次多項式で(3)式を近似した近似式を生成する等の処理が行われる。
【0084】
つまり、コントローラ3は、ステップS4において、補正値を効率的に求めるための下準備を行っている。なお、参照テーブルは、ダミー値を代入して複数点の値を求め、各値の間を補間する直線あるいは曲線を求めること等により生成することができる。なお、この補正の準備としては、上記した参照テーブルやn次多項式以外の手法を採用することもできる。また、(3)式から直接的にアーム角度値(θa)を求めることも可能であるため、ステップS4を省略し、ロボット2の稼動中に(1)式と(3)式とに基づいてアーム角度値(θa)や補正値を求めることも可能である。
【0085】
補正の準備を終了あるいは省略すると、コントローラ3は、主としてロボット2の稼動中に、補正値を求めて偏心誤差を補正する(S5)。具体的には、コントローラ3は、ロボット2の稼動中において、例えば第1アーム2cの回転に伴って変化する出力軸角度をその都度検出する。そして、コントローラ3は、検出された出力軸角度に対応するアーム角度値あるいは補正値そのものを上記した参照テーブルやn次多項式を用いて間接的に、あるいは、(1)式と(3)式とから直接的に求め、求めたアーム角度値に対応する偏心誤差を補正値として、出力軸角度に含まれる偏心誤差を補正する。
【0086】
このように、本実施形態では、アームの回転角度を機械的な設計値に基づいて推定できる位置、アームの自重による回転方向への影響が無い位置、および、アームの自重による回転方向への影響がほとんど無いと予想される位置のいずれか1つ以上に該当する少なくとも3つの測定位置における偏心誤差を検出することに基づいて、出力軸角度検出器8の偏心によって生じた偏心誤差を補正している。
【0087】
以上説明した実施形態によれば、次のような効果を得ることができる。
実施形態では、アームの自重による回転方向への影響が無い少なくとも3つの測定位置において出力軸角度を検出し、測定位置におけるアーム角度値と当該測定位置において検出された出力軸角度との差分を偏心誤差として求める。続いて、各測定位置におけるアーム角度値と偏心誤差とをアームの1回転を1周期とする正弦波で近似することによりアーム角度値と偏心誤差との関係を示す誤差曲線を求め、誤差曲線を用いて出力軸角度とアーム角度値とを対応付けした補正式を求める。
【0088】
続いて、アームを回転する際、検出された出力軸角度に対応するアーム角度値を補正式に基づいて求め、求めたアーム角度値に対応する偏心誤差を補正値として補正曲線に基づいて求めることにより、偏心誤差を補正する。このとき、測定位置で検出される出力軸角度は、アームの自重の影響が抑制あるいは排除されていることから、出力軸角度とアーム角度値とがずれている場合には、そのずれは、出力軸角度検出器8の偏心によって生じた偏心誤差であると考えられる。
【0089】
そして、出力軸角度検出器8の偏心により生じる偏心誤差はアームの1回転を1周期とする正弦波状になることが知られているため、各測定位置におけるアーム角度値と偏心誤差とをアームの1回転を1周期とする正弦波で近似することにより、アーム角度値と偏心誤差との関係を示す誤差曲線を求めることができる。
【0090】
このとき、求めた誤差曲線は、アーム角度値と偏心誤差との関係を示すものであるため、ロボット2の稼動時に偏心誤差を補正できるようにするために、出力軸角度とアーム角度値とを対応付けた補正式を定義し、ロボット2の稼動時に検出された出力軸角度からその出力軸角度に対応するアーム角度値を求め、そのアーム角度値に対応する補正値を用いて偏心誤差を補正する。これにより、アーム角度値に対応する偏心誤差を正確に抽出できるようになる。
【0091】
この場合、バックラッシや弾性変形あるいは減速機6の角度伝達誤差等の影響を受けない出力軸角度に基づいているため正確に補正値を求めることができるとともに、出力軸角度はロボット2の稼動時に検出可能であるためロボット2の稼動時に補正を行うことができる。したがって、角度検出器の偏心により生じる偏心誤差を正しく補正することができる。
【0092】
実施形態では、測定位置の少なくとも1つに、アームの回転を機械的に規制するストッパ4にアームが上方から接触する接触位置を設定する。ストッパ4は、ロボット2に機械的に取り付けられることから、その位置が固定されており、アームの回転中心との機械的な位置関係も定まっている。また、接触位置では、アーム側の自重がストッパ4によって支えられるため、アーム側の自重により検出角度に誤差が生じることもない。
【0093】
そのため、アームが接触位置にある場合には、アーム角度値を、ストッパ4の位置やアームの外形寸法等から機械的に特定することができる。したがって、測定位置として接触位置を設定することにより、出力軸角度検出器8の偏心に起因する偏心誤差のみを抽出することができる。
【0094】
実施形態では、測定位置の少なくとも1つに、アーム側の重心が、アームの回転中心の鉛直上方を含む所定の角度範囲内に位置する鉛直位置を設定する。アームが鉛直位置に位置している場合には、減速機6には回転方向に力が加わらないことから弾性変形がない状態、あるいは、回転方向に加わる力が微小であることから弾性変形が無視できる程度に小さい状態であると考えられる。
【0095】
そのため、鉛直位置では、入力軸と出力軸とがほぼ一致した状態になっていると考えられ、その場合には、検出した入力軸角度からアーム角度値を高い精度で求めることができると考えられる。したがって、測定位置として鉛直位置を設定することにより、出力軸角度検出器8の偏心に起因する偏心誤差のみを抽出することができる。また、鉛直位置では、例えばアームを真っ直ぐ伸ばした状態であればアームの向きがほぼ鉛直方向になることから、アーム角度値を機械的に特定することもできる。
【0096】
実施形態では、アームを正転させた際に検出した鉛直位置における出力軸角度と、正転時と同じ速さでアームを逆転させた際に検出した鉛直位置における出力軸角度との平均値を、鉛直位置における出力軸角度とする。同じ速さでアームを回転させれば、正転時と逆転時とで同じ大きさのねじれが生じることになるため、正転時と逆転時との平均を出力軸角度とすることにより、ねじれの影響が排除された状態の出力軸角度に対応する補正値を求めることができ、補正値の精度を向上させることができる。
【0097】
上記した処理を実行する制御部3aをロボットシステム1によっても、同様の効果を得ることができる。また、現実のロボット2においてはストッパ4の位置を細かく変更可能にすることは少ないため、アーム自重の影響を受けない姿勢というのは現実的には有限である。そのため、3つの測定位置における偏心誤差を求め、その偏心誤差が正弦波に近似する変化を示すという特性に基づいて誤差曲線を生成することにより、実際のロボット2へ現実的に適用することができるようになる。
【0098】
出力軸角度検出器8の偏心誤差を求めることができるのは、ロボット2の組付けが完了した後、換言すると、ロボット2の関節がアームの自重を受ける状態になった後であるが、上記の方法によれば、組み付けが完了したロボット2に対して誤差曲線を求めたり補正値を求めたりすることが可能となるため、ロボット2の製造現場において現実的に実施可能であるというメリットがあるとともに、ロボット2の設置現場においても誤差曲線を求めたり補正値を求めたりすることができるようになり、極めて有用である。
【0099】
(第2実施形態)
以下、第2実施形態について、図8から図10を参照しながら説明する。第2実施形態では、実際のロボット2に有効な幾つかの手法について説明する。ただし、ロボット2の構成や処理の流れは第1実施形態と共通するので、必要に応じて図1から図7も参照して説明する。また、以下では、鉛直位置における出力軸角度の検出精度を向上させるための2つ手法と、測定位置を増加させて精度を向上させるための1つの手法について個別に説明する。
【0100】
<鉛直位置における出力軸角度の検出精度を向上させる手法その1>
上記した第1実施形態で説明したように、ロボット2は、減速機6として波動歯車装置を採用することがある。この波動歯車装置は、実際に駆動する際に角度伝達誤差が顕著に生じることが知られている。ここで角度伝達誤差とは、入力軸角度を減速機6の減速比で除算して求めた出力軸角度が理論値からずれることにより生じる誤差であり、出力軸側の1回転に対して、減速比の整数倍の周波数で生じることが知られている。
【0101】
そのため、アーム重心が鉛直線(Lv)上となる鉛直位置付近で入力軸角度を制御して一定速度で正転および逆転した場合、出力軸が入力軸に引きずられた形になることに加えて、角度伝達誤差が生じることにより、図8に示すように、出力軸角度に細かな振動が重畳する。なお、図8では、正転時に角度伝達誤差が重畳した状態で検出された出力軸角度の一例を正転時検出角度として示し、逆転時に角度伝達誤差が重畳した状態で検出された出力軸角度の一例を逆転時検出角度として示している。
【0102】
このため、入力軸角度がθgとなる鉛直位置において検出される出力軸角度は、アームを正転させた状態であっても、角度伝達誤差によって異なる値が検出される可能性がある。これは、アームを正転させた場合も同様である。その結果、鉛直位置の付近でアームを正転および逆転させて出力軸角度を検出する場合、角度伝達誤差分のずれが生じ、補正値の精度が低下するおそれがある。
【0103】
そこで、本実施形態では、正転時検出角度つまりはアームを正転させた際に検出した複数の入力軸角度と出力軸角度との関係を直線で近似した正転時近似線(Lf)と、逆転時検出角度つまりは正転時と同じ速さでアームを逆転させた際に検出した複数の入力軸角度と出力軸角度との関係を直線で近似した逆転時近似線(Lb)とを求める。
【0104】
そして、正転時近似線(Lf)から求まる鉛直位置(入力軸角度=θg)における出力軸角度(θf)と、逆転時近似線(Lb)から求まる鉛直位置における出力軸角度(θb)との平均値を、鉛直位置における出力軸角度(θout)とする。あるいは、正転時近似線(Lf)と逆転時近似線(Lb)との平均となる平均値近似線(Lout)を求め、鉛直位置において平均値近似線(Lout)上の値を出力軸角度(θout)とすることもできる。
【0105】
このように正転時近似線(Lf)および逆転時近似線(Lb)に基づいて出力軸角度を求めることにより、角度伝達誤差の影響を抑制することができる。
このとき、各近似線を求める際の鉛直位置の近傍の範囲は、入力軸角度に基づいて、例えばθg−X≦近傍の範囲≦θg+Xの角度範囲として設定することができる。
【0106】
この場合、Xが小さすぎると近似線自体に対する角度伝達誤差の影響が大きく、近似線を用いる効果が得られないため、少なくともアームの1回転を減速比で除算した角度以上を設定する必要がある。その一方で、逆にXが大きすぎると、偏心の影響が大きく現れてしまう。
【0107】
そのため、Xの大きさは、角度伝達誤差の影響と偏心の影響とを考慮してバランス良く設定することが望ましい。この場合、鉛直位置の近傍の範囲として、第1実施形態で説明した鉛直位置となる角度範囲(α)を設定することもできる。また、各近似線は、直線で近似する以外にも、曲線で近似することもできる。
【0108】
<鉛直位置における出力軸角度の検出精度を向上させる手法その2>
上記したように、減速機6として波動歯車装置を採用する場合には、角度伝達誤差により出力軸角度の検出値にずれが生じることがあり、また、一定速度でアームを正転および逆転したとしても、出力軸が入力軸に引きずられた形になることによるずれが生じるおそれがある。
【0109】
そして、鉛直位置の近傍に設定した検出範囲内で正転および逆転を繰り返す場合には、図9に示すように、検出範囲の上限あるいは下限に到達して回転方向を逆にする場合、出力軸は、入力軸との間のねじれが反対向きになるまで摩擦で停止しており、ねじれが反対向きになると、入力軸に引きずられて動き出すという挙動を示す。
【0110】
そのため、検出範囲の上限から下限まで正転と逆転とを何度か繰り返し、その際に取得した出力軸角度の平均値をとることにより、図9に概ね菱形になる出力軸角度の軌跡の中心位置、つまりは、鉛直位置における出力軸角度を求めることができる。
【0111】
ただし、停止しているアームを最初に検出範囲の上限あるいは下限まで到達される場合には、図9に示すように初回の動作時の挙動が異なるため、精度を向上させるためには初回の回転時に得られた出力軸角度を除外することが望ましい。
【0112】
そこで、検出範囲の上限または下限のいずれか一方までアームを一旦回転させた後、アームを上限から下限まで回転させて所定角度ごとに出力軸角度を検出する処理と、同じ速さでアームを下限から上限まで回転させて所定角度ごとに出力軸角度を検出する処理とを同一回数だけ実行し、各処理において検出した複数の出力軸角度の平均値を、鉛直位置における出力軸角度とする。これにより、角度伝達誤差の影響を抑えた状態で求めることができる。
【0113】
<測定位置を増加させて精度を向上させる手法>
第1実施形態のロボット2は、ストッパ4が鉛直位置の正転側と逆転側とに設けられている例を示したが、ロボット2の利用形態によっては鉛直位置にアームを回転させることができない場合も想定される。
【0114】
そこで、図10に示すように、例えばタップを切った取り付け孔41をロボット2に複数の設けておき、この取り付け孔41に治具としてストッパ4を取り付けることで、アーム自重の影響を受けない接触位置を増加可能な構成にすることができる。
【0115】
これにより、接触位置が増加することから、ストッパ4が鉛直位置を挟まない位置に設けられていたり、鉛直位置にアームを回転させることができなかったりする場合であっても、最低3つの接触位置を設定することができる。
【0116】
そして、取り付け孔41の位置は機械的に求まることから、アームをストッパ4に接触させた接触位置において正しいアーム角度値を求めることができる。この場合、取り付け孔41に取り付けられるストッパ4は、誤差曲線を求める処理を行うときだけ取り付ければよく、その後に取り外すことにより、ロボット2の稼動中に邪魔にならないようにすることができる。なお、アームの可動範囲を規定するためのストッパ4はそのまま取り付けばよい。
【0117】
また、接触位置を4つ以上にすることにより、測定誤差の影響をさらに抑制した状態で誤差曲線を求めることができ、補正値をより精度良く求めることができる。その場合、鉛直位置も利用できることは勿論である。
上記した処理を実行する制御部3aをロボットシステム1によっても、同様の効果を得ることができる。
【0118】
(第3実施形態)
以下、第3実施形態について説明する。第3実施形態では、補正値を求める演算を簡略化する手法について説明する。
第1実施形態では、(3)式を用いて出力軸角度(θo)に対応するアーム角度値(θa)を求め、求めたアーム角度値(θa)における補正値を(1)式から求める手法について説明したが、上記したように、(3)式から直接的にアーム角度値(θa)を求める場合には演算が困難であったり、演算の負荷が増大したりすることが懸念される。
【0119】
そこで、本実施形態では、補正式に含まれるアーム角度値の関数、つまり、以下に誤差項として示す(3)式の右辺第2項を、入力軸角度を前記減速機6の減速比で除算して得られるアーム角度で近似することで、演算の簡略化を図っている。以下、(3)式の下記に示す右辺第2項を、便宜的に誤差項と称する。
A(sin(θa+φ))+B ・・・(誤差項)
【0120】
具体的には、誤差項に含まれるアーム角度値(θa)を入力軸角度(θi)を減速機6の減速比で除算したアーム角度(θai)とすることにより、誤差項を下記に示す近似項のように近似する。
A(sin(θai+φ))+B ・・・(近似項)
【0121】
そして、この近似項を用いて(3)式を以下の(4)式のように近似する。
θo=θa+A(sin(θai+φ))+B ・・・(4)
この(4)式の場合、本来であればアーム角度値(θa)を用いて演算すべきところを、アーム角度(θai)を用いて近似していることから、アームの回転角度によっては、アーム自重の影響により誤差が含まれることが想定され、最終的に求まるアーム角度値(θa)にも若干の誤差が生じる可能性がある。
【0122】
ただし、偏心誤差が上記したようにアーム1回転で1周期となる正弦波状に変化するのに対し、実際のロボット2においてはアーム角度値(θa)とアーム角度(θai)とのずれは非常に小さく、(3)式の右辺と(4)式の右辺とはほぼ等しいと考えることができる。そのため、(4)式のようにアーム角度(θai)を用いる場合であっても、概ね(3)式と同程度の精度で偏心誤差を補正することができる。
【0123】
すなわち、補正値を求める際、アーム角度値(θa)を、入力軸角度を減速機6の減速比で除算して得られるアーム角度(θai)で近似することにより、(4)式に示すように四則演算と三角関数の演算とでアーム角度値(θa)を求めることができるため、演算の負荷を大きく低減することができる。
上記した処理を実行する制御部3aをロボットシステム1によっても、同様の効果を得ることができる。
【0124】
(その他の実施形態)
本発明は上記した各実施形態で例示した構成にのみ限定されるものではなく、その要旨を逸脱しない範囲で各種の変形や拡張あるいは組み合わせを行うことができる。
各実施形態では図3に示す処理をコントローラ3で実行する例を示したが、ステップS1〜S4の処理は、図示しないティーチングペンダントや上位の制御装置で実行することもできる。
【0125】
第1実施形態では接触位置と鉛直位置とを利用して補正を行う例示したが、アーム自重の重心(G)はロボット2の姿勢によって変化することから、例えば図3においてロボット2のアームが鉛直線(Lv)に線対称になったような状態等、入力軸角度が異なる鉛直位置が複数存在すると考えられる。また、第2実施形態で説明したように、複数の接触位置を設けられることも考えられる。
【0126】
そのため、1つの接触位置と2つの鉛直位置とを利用して補正を行うこともできるし、複数の接触位置と複数の鉛直位置とを利用して補正を行うこともできるし、3つ以上の接触位置のみを利用して補正を行うこともできるし、3つ以上の鉛直位置のみを利用して補正を行うこともできる。
【0127】
実施形態で示した接触位置は、アーム角度値を機械的に求めることができる位置でもあるが、アーム自重がストッパ4によって支持された状態であることから、減速機6に回転方向への力が加わらず、弾性変形分のずれが生じない位置でもある。そのため、例えばアームを手で回転させて接触位置にした場合等、アームを押し付ける側に弾性変形が生じない状態であれば、入力軸と出力軸との間にねじれが生じない、あるいは、ねじれが極微小であると考えられるため、測定位置におけるアーム角度値を入力軸角度から求めることもできる。
【符号の説明】
【0128】
図面中、1はロボットシステム、2はロボット、2cは第1アーム(アーム)、2dは第2アーム(アーム)、3はコントローラ(制御部)、3aは制御部、4はストッパ、4Aは第1ストッパ(ストッパ)、4Bは第2ストッパ(ストッパ)、5はモータ、6は減速機、7は入力軸角度検出器、8は出力軸角度検出器、41は取り付け孔を示す。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10