(57)【要約】【課題】エンコーダをアームに組み付け後に、検出誤差を補正することのできる角度位置検出装置を提供する。【解決手段】入力軸エンコーダ４０と、出力軸エンコーダ５０と、を備える角度位置検出装置であって、入力軸エンコーダ４０により検出された入力軸２１の角度位置に基づいて、所定軸１２の角度位置である入力側角度位置を算出し、モータ２０に流れる電流に基づいて、減速機３０の出力軸に作用する負荷モーメントを算出し、算出された入力側角度位置と、出力軸エンコーダにより検出された所定軸の角度位置である出力側角度位置と、算出された負荷モーメントと、減速機３０の剛性とに基づいて、出力軸エンコーダ５０の検出誤差を算出し、算出された検出誤差により、出力軸エンコーダ５０により検出された出力側角度位置を補正する。【選択図】      図１
2018036097.tif 000002
【特許請求の範囲】
【請求項１】
モータの回転が入力される減速機の入力軸の角度位置を検出する入力軸エンコーダと、前記減速機の出力軸と一体で回転する所定軸の角度位置を検出する出力軸エンコーダと、を備える角度位置検出装置であって、
前記入力軸エンコーダにより検出された前記入力軸の角度位置に基づいて、前記所定軸の角度位置である入力側角度位置を算出する入力側角度位置算出部と、
前記モータに流れる電流に基づいて、前記出力軸に作用する負荷モーメントを算出する負荷モーメント算出部と、
前記入力側角度位置算出部により算出された前記入力側角度位置と、前記出力軸エンコーダにより検出された前記所定軸の角度位置である出力側角度位置と、前記負荷モーメント算出部により算出された前記負荷モーメントと、前記減速機の剛性とに基づいて、前記出力軸エンコーダの検出誤差を算出する検出誤差算出部と、
前記検出誤差算出部により算出された前記検出誤差により、前記出力軸エンコーダにより検出された前記出力側角度位置を補正する補正部と、
を備える角度位置検出装置。
【請求項２】
前記検出誤差算出部は、前記モータの駆動トルクにより前記出力軸を静止させた状態において、前記入力側角度位置算出部により算出された前記入力側角度位置と、前記出力軸エンコーダにより検出された前記出力側角度位置と、前記負荷モーメント算出部により算出された前記負荷モーメントと、前記減速機の剛性とに基づいて、前記検出誤差を算出する請求項１に記載の角度位置検出装置。
【請求項３】
前記負荷モーメント算出部は、前記出力軸のそれぞれの角度位置に、前記モータを正回転させた時に流れる電流と逆回転させた時に流れる電流との平均電流に基づいて、前記出力軸のそれぞれの角度位置における前記出力軸に作用する負荷モーメントを算出し、
前記検出誤差算出部は、前記入力側角度位置算出部により算出された前記入力側角度位置と、前記出力軸エンコーダにより検出された前記出力側角度位置と、前記入力側角度位置に対応して前記負荷モーメント算出部により算出された前記負荷モーメントと、前記減速機の剛性とに基づいて、前記検出誤差を算出する請求項１に記載の角度位置検出装置。
【請求項４】
前記検出誤差算出部は、前記出力軸の角度位置に対応して予め測定された前記検出誤差をテーブルとして備えており、前記入力側角度位置算出部により算出された前記入力側角度位置及び前記テーブルに基づいて前記検出誤差を算出する請求項２又は３に記載の角度位置検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット等の回転軸の角度位置を検出する角度位置検出装置に関する。
【背景技術】
【０００２】
従来、この種の角度位置検出装置において、エンコーダの回転軸と回転ディスクの取り付け時の偏心に起因する検出誤差を補正するものがある（特許文献１参照）。また、特許文献１に記載のものでは、モータの回転を、減速機を介して出力軸に伝達する構成において、出力軸エンコーダを設けている。そして、入力軸エンコーダの検出値に基づく角度位置と出力軸エンコーダの検出値に基づく角度位置との差を、減速機の弾性変形等によるねじれ角として補正している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１９４４６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、偏心に起因する検出誤差の補正値を入出力軸エンコーダで検出しようとした場合でも、偏心分以外にもアーム自体の重さや、アームに取り付けるツール、ワーク等の重さにより、アームや減速機がたわんだりねじれたりした分が混ざって検出される。偏心は、エンコーダをアームに組み付けた後に決まるため、アーム影響分が混ざらないように分解したり、事前に検出したりすることは困難である。また、アーム影響分だけをロボットの設計値から幾何学的に算出することも可能だが、アーム長やロボット設置角度といった設計値と実機とのずれや、そもそも補正前のずれたアーム角度を元にずれを算出することになるといった事情から、補正値が正確には得られない。
【０００５】
本発明は、こうした課題を解決するためになされたものであり、その主たる目的は、エンコーダをアームに組み付け後に、検出誤差を補正することのできる角度位置検出装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するための第１の手段は、
モータの回転が入力される減速機の入力軸の角度位置を検出する入力軸エンコーダと、前記減速機の出力軸と一体で回転する所定軸の角度位置を検出する出力軸エンコーダと、を備える角度位置検出装置であって、
前記入力軸エンコーダにより検出された前記入力軸の角度位置に基づいて、前記所定軸の角度位置である入力側角度位置を算出する入力側角度位置算出部と、
前記モータに流れる電流に基づいて、前記出力軸に作用する負荷モーメントを算出する負荷モーメント算出部と、
前記入力側角度位置算出部により算出された前記入力側角度位置と、前記出力軸エンコーダにより検出された前記所定軸の角度位置である出力側角度位置と、前記負荷モーメント算出部により算出された前記負荷モーメントと、前記減速機の剛性とに基づいて、前記出力軸エンコーダの検出誤差を算出する検出誤差算出部と、
前記検出誤差算出部により算出された前記検出誤差により、前記出力軸エンコーダにより検出された前記出力側角度位置を補正する補正部と、
を備える。
【０００７】
上記構成によれば、入力軸エンコーダにより、モータの回転が入力される減速機の入力軸の角度位置が検出される。また、出力軸エンコーダにより、減速機の出力軸と一体で回転する所定軸の角度位置が検出される。なお、所定軸は、減速機の出力軸に取り付けられた部材と一体で回転する軸であってもよいし、減速機の出力軸そのものであってもよい。
【０００８】
そして、入力側角度位置算出部により、入力軸エンコーダにより検出された入力軸の角度位置に基づいて、所定軸の角度位置である入力側角度位置が算出される。入力側角度位置は、入力軸の角度位置と減速機の減速比とに基づいて算出することができる。この入力側角度位置は、たわみ及び弾性変形によるねじれの影響を受けていない状態での所定軸の角度位置に相当する。
【０００９】
ここで、減速機を構成する部材がたわんだり弾性変形によりねじれたりした場合は、出力軸エンコーダにより検出される所定軸の角度位置が変化する。そして、減速機を構成する部材のたわみ角及び弾性変形によるねじれ角は、出力軸に作用する負荷モーメントが大きいほど大きくなり、減速機の剛性が低いほど大きくなる。これらのたわみ及びねじれによる検出角度位置の変化は、入力側角度位置算出部により算出された入力側角度位置と、出力軸エンコーダにより検出された所定軸の角度位置である出力側角度位置との差に相当する。また、出力軸に作用する負荷モーメントは、モータに流れる電流と相関を有しており、モータに流れる電流に基づき算出することができる。したがって、検出誤差算出部は、入力側角度位置算出部により算出された入力側角度位置と、出力軸エンコーダにより検出された出力側角度位置と、負荷モーメント算出部により算出された負荷モーメントと、減速機の剛性とに基づいて、出力軸エンコーダの検出誤差を算出することができる。
【００１０】
そして、補正部は、検出誤差算出部により算出された検出誤差により、出力軸エンコーダにより検出された出力側角度位置を補正する。このため、エンコーダをアームに組み付け後に個々の使用状態に応じて検出誤差が生じたとしても、エンコーダをアームに組み付け後に検出誤差を補正することができる。その結果、減速機の出力軸と一体で回転する所定軸の角度位置を、正確に検出することができる。
【００１１】
モータの駆動トルクにより減速機の出力軸を静止させた状態では、モータの駆動トルクと減速機の出力軸に作用する負荷モーメントとが釣り合っている。このため、たわみ及びねじれによる検出角度位置の変化は、負荷モーメント及び減速機の剛性に基づき算出される角度位置の変化に等しくなる。
【００１２】
この点、第２の手段では、検出誤差算出部は、前記モータの駆動トルクにより前記出力軸を静止させた状態において、前記入力側角度位置算出部により算出された前記入力側角度位置と、前記出力軸エンコーダにより検出された前記出力側角度位置と、前記負荷モーメント算出部により算出された前記負荷モーメントと、前記減速機の剛性とに基づいて、前記検出誤差を算出する。したがって、モータの駆動トルクにより減速機の出力軸を静止させた状態にすることにより、検出誤差を算出することができる。
【００１３】
モータを正回転させた時と逆回転させた時とでは、同一の角度位置であっても減速機の出力軸に作用する負荷モーメントが異なる。例えば、モータの回転方向によって、減速機で生じる摩擦力の大きさが異なったり、重力方向とアームの移動方向との関係が異なったりする。このため、モータに流れる電流はモータの回転方向に依存することとなり、モータの回転方向に応じて電流が受ける影響を考慮しなければ、モータに流れる電流に基づき負荷モーメントを適切に算出することができない。
【００１４】
この点、第３の手段では、負荷モーメント算出部は、前記出力軸のそれぞれの角度位置に、前記モータを正回転させた時に流れる電流と逆回転させた時に流れる電流との平均電流に基づいて、前記出力軸のそれぞれの角度位置における前記出力軸に作用する負荷モーメントを算出する。このため、モータの回転方向による電流の変化を相殺することができ、モータに流れる電流に基づき負荷モーメントを適切に算出することができる。
【００１５】
そして、検出誤差算出部は、前記入力側角度位置算出部により算出された前記入力側角度位置と、前記出力軸エンコーダにより検出された前記出力側角度位置と、前記入力側角度位置に対応して前記負荷モーメント算出部により算出された前記負荷モーメントと、前記減速機の剛性とに基づいて、前記検出誤差を算出する。したがって、モータの駆動トルクにより減速機の出力軸を静止させた状態にする必要がなく、出力軸を回転させながら迅速に検出誤差を算出することができる。
【００１６】
モータの駆動トルクにより減速機の出力軸を静止させた状態にして検出誤差を算出する場合も、出力軸を回転させながら検出誤差を算出する場合も、出力軸の角度位置毎に検出誤差を算出する必要がある。このため、角度位置検出装置の動作を開始するまでに、長時間を要するおそれがある。
【００１７】
この点、第４の手段では、検出誤差算出部は、前記出力軸の角度位置に対応して予め測定された前記検出誤差をテーブルとして備えており、前記入力側角度位置算出部により算出された前記入力側角度位置及び前記テーブルに基づいて前記検出誤差を算出する。したがって、角度位置検出装置の動作開始時に、出力軸の角度位置毎に新たに検出誤差を算出する必要がなく、角度位置検出装置の動作を迅速に開始することができる。
【図面の簡単な説明】
【００１８】
【図１】ロボット及びロボットコントローラを示す斜視図。
【図２】ロボットのアームの関節を示す模式図。
【図３】アームがたわむ状態を示す模式図。
【図４】負荷モーメントが作用しない状態において、入力側角度位置に対する偏心誤差の実測値及び算出値を求めた結果を示すグラフ。
【発明を実施するための形態】
【００１９】
（第１実施形態）
以下、第１実施形態について、図面を参照しつつ説明する。本実施形態は、多関節ロボットの回転軸を接続する関節において、回転軸の角度位置を検出する角度位置検出装置に具現化している。
【００２０】
図１に示すように、ロボット１０の動作状態は、ロボットコントローラ８０により制御される。ロボット１０は、例えば６軸の垂直多関節ロボットであり、アームとしての第１軸１１及び第２軸１２を備えている。
【００２１】
図２は、図１の円Ａで囲む部分を拡大した模式図である。ロボット１０のアームは、第１軸１１、第２軸１２、モータ２０、減速機３０、入力軸エンコーダ４０、出力軸エンコーダ５０等を備えている。
【００２２】
第１軸１１には、モータ２０及び減速機３０が固定されている。モータ２０の駆動軸は、減速機３０へ回転を入力する入力軸２１になっている。モータ２０の駆動状態は、ロボットコントローラ８０により制御される。モータ２０には、入力軸２１の角度位置を検出する入力軸エンコーダ４０が取り付けられている。なお、減速機３０はモータ２０に固定されていてもよい。
【００２３】
入力軸エンコーダ４０は、円板状のディスク４１、検出素子４２等を備えている。ディスク４１は、入力軸２１に同心状に取り付けられている。検出素子４２は、入力軸エンコーダ４０の筐体に取り付けられている。検出素子４２は、ディスク４１の検出面における外周縁部の所定位置に対向して配置されている。検出素子４２は、ディスク４１の角度位置に対応するオン・オフ信号を検出する。検出素子４２により検出されたオン・オフ信号（すなわち角度位置）は、ロボットコントローラ８０へ入力される。入力軸エンコーダ４０として、透過型光学式エンコーダや、反射型光学式エンコーダ、磁気式エンコーダ等を採用することができる。
【００２４】
減速機３０は、入力軸２１の回転を所定の減速比で減速して、第２軸１２の回転として出力する。すなわち、第２軸１２（所定軸に相当）は、減速機３０の出力軸と一体で回転する。減速機３０として、波動歯車式の減速機や、遊星歯車式の減速機等を採用することができる。第２軸１２には、第２軸１２の角度位置を検出する出力軸エンコーダ５０が取り付けられている。なお、出力軸エンコーダ５０が、第１軸１１あるいは減速機３０に取り付けられた構成を採用することもできる。その場合は、出力軸エンコーダ５０は、減速機３０の出力軸（所定軸に相当）の角度位置を検出する。
【００２５】
出力軸エンコーダ５０は、円板状のディスク５１、検出素子５２等を備えている。ディスク５１は、第２軸１２に取り付けられた検出軸３１に同心状に取り付けられている。検出素子５２は、出力軸エンコーダ５０の筐体あるいは第１軸１１に取り付けられている。検出素子５２は、ディスク５１の検出面における外周縁部の所定位置に対向して配置されている。検出素子５２は、ディスク５１の角度位置に対応するオン・オフ信号をそれぞれ検出する。検出素子５２により検出されたオン・オフ信号（すなわち角度位置）は、ロボットコントローラ８０へ入力される。出力軸エンコーダ５０として、透過型光学式エンコーダや、反射型光学式エンコーダ、磁気式エンコーダ等を採用することができる。
【００２６】
入力軸２１、ディスク４１、検出軸３１、及びディスク５１は、同心状に配置されている。すなわち、入力軸２１、ディスク４１、検出軸３１、及びディスク５１の中心線は、軸線Ｃ１で一致している。ただし、入力軸２１の中心と、検出軸３１の中心又はディスク５１の中心とは、アームへの入力軸エンコーダ４０及び出力軸エンコーダ５０の組み付け時に偏心が生じている。また、入力軸２１の中心とディスク４１の中心との偏心は予め解消されている、又は入力軸２１の中心とディスク４１の中心との偏心に起因する入力軸エンコーダ４０の検出誤差は補正されているものとする。
【００２７】
ロボットコントローラ８０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、入出力ポート、駆動回路等を含むマイクロコンピュータである。ロボットコントローラ８０は、入力軸エンコーダ４０や、出力軸エンコーダ５０等の各種センサによる検出値を入力し、モータ２０等の各種アクチュエータの駆動状態を制御する。ロボットコントローラ８０は、入力軸エンコーダ４０の検出素子４２により検出されたオン・オフ信号に基づいて、ディスク４１すなわち入力軸２１の角度位置を算出する。そして、ロボットコントローラ８０（入力側角度位置算出部に相当）は、入力軸２１の角度位置及び減速機３０の減速比に基づいて、第２軸１２（検出軸３１）の角度位置である入力側角度位置を算出する。この入力側角度位置は、たわみ及び弾性変形によるねじれの影響を受けていない状態での第２軸１２の角度位置に相当する。また、ロボットコントローラ８０（出力側角度位置算出部に相当）は、出力軸エンコーダ５０の検出素子５２により検出されたオン・オフ信号に基づいて、ディスク５１すなわち第２軸１２の角度位置である出力側角度位置を算出する。なお、入力軸エンコーダ４０、出力軸エンコーダ５０、及びロボットコントローラ８０により、角度位置検出装置が構成されている。
【００２８】
図３は、ロボット１０のアームがたわむ状態を示す模式図である。同図に示すように、アームの第２軸１２には、第２軸１２自体の質量や、アームに取り付けられるツールの質量、把持するワークの質量等に相当する質量Ｗにより負荷Ｆ（重力）が作用する。負荷Ｆにより第２軸１２に負荷モーメントが作用すると、減速機３０や第２軸１２の剛性に応じてたわみが生じる。なお、第２軸１２をねじる方向の外力が第２軸１２に作用する場合は、第２軸１２に弾性変形によるねじれが生じる。そして、減速機３０や第２軸１２のたわみ角及び弾性変形によるねじれ角は、第２軸１２に作用する負荷モーメントが大きいほど大きくなり、減速機３０や第２軸１２の剛性が低いほど大きくなる。こうしたたわみやねじれにより、出力軸エンコーダ５０により検出される第２軸１２の角度位置θが変化し、検出誤差が生じることとなる。
【００２９】
そこで、本実施形態では、ロボットコントローラ８０（負荷モーメント算出部、検出誤差算出部、補正部に相当）は、以下のように出力軸エンコーダ５０により検出された第２軸１２の角度位置（出力側角度位置θｏｕｔ）を補正する。
【００３０】
出力側角度位置θｏｕｔは、第２軸１２の真の角度位置θａ（第１軸１１に対する角度位置）と、組み付け時の偏心に起因する偏心誤差Δθｅとの複合になっている。なお、角度位置θａは、上記質量Ｗに作用する重力により生じるたわみによる角度誤差Δθｇと、第２軸１２に作用する外力によるねじれ角Δθｔとを含んで、出力軸エンコーダ５０が検出すべき角度位置に相当する。すなわち、出力側角度位置θｏｕｔは、以下のように表される。
【００３１】
θｏｕｔ＝θａ＋Δθｅ    ・・・（１）
ここで、入力軸エンコーダ４０により検出された入力軸２１の角度位置に基づき算出された第２軸１２の角度位置である入力側角度位置θｉｎと、出力側角度位置θｏｕｔとの検出角度差Δθｄは、以下のように表される。
【００３２】
Δθｄ＝θｏｕｔ−θｉｎ    ・・・（２）
一方、検出角度差Δθｄは、上記質量Ｗに作用する重力により生じるたわみによる角度誤差Δθｇと、第２軸１２に作用する外力によるねじれ角Δθｔと、偏心誤差Δθｅとの複合になっている。すなわち、検出角度差Δθｄを、以下のように表すこともできる。
【００３３】
Δθｄ＝Δθｇ＋Δθｔ＋Δθｅ    ・・・（３）
また、モータ２０の駆動トルクにより減速機３０の出力軸、すなわち第２軸１２を静止させた状態では、モータ２０の駆動トルクと第２軸１２に作用する負荷モーメントＭとが釣り合っている。このため、たわみ及びねじれによる検出角度位置の変化は、負荷モーメントＭ、減速機３０及び第２軸１２の剛性ｋに基づき算出される角度位置の変化に等しくなる。すなわち、モータ２０の駆動トルクにより第２軸１２を静止させた状態では、以下の式が成立する。
【００３４】
Δθｇ＋Δθｔ＝Ｍ／ｋ    ・・・（４）
負荷モーメントＭは、モータ２０に流れる電流を電流センサ等により検出し、検出された電流に基づいて算出することができる。
【００３５】
式（３）を変形すると、以下のようになる。
【００３６】
Δθｅ＝Δθｄ−（Δθｇ＋Δθｔ）    ・・・（５）
式（５）に、式（２）のΔθｄ、及び式（４）の（Δθｇ＋Δθｔ）を代入すると、以下のようになる。
【００３７】
Δθｅ＝（θｏｕｔ−θｉｎ）−Ｍ／ｋ    ・・・（６）
式（６）において、出力側角度位置θｏｕｔ、入力側角度位置θｉｎ、負荷モーメントＭはそれぞれ算出することができ、剛性ｋは既知の値である。このため、式（６）により、偏心誤差Δθｅを算出することができる。そして、第２軸１２の角度位置を所定角度変化させて、モータ２０の駆動トルクにより第２軸１２を静止させた状態とし、式（６）により偏心誤差Δθｅを算出することを第２軸１２の可動範囲にわたって繰り返す。
【００３８】
式（１）を変形すると、以下のようになる。
【００３９】
θａ＝θｏｕｔ−Δθｅ    ・・・（７）
したがって、第２軸１２の各角度位置において、式（７）に、検出された出力側角度位置θｏｕｔ、及び式（６）により算出された偏心誤差Δθｅを代入することにより、第２軸１２の真の角度位置θａを算出することができる。すなわち、たわみによる角度誤差Δθｇ、外力によるねじれ角Δθｔ、及び偏心誤差Δθｅにより、出力側角度位置θｏｕｔを補正することができる。さらに、補正された出力側角度位置θｏｕｔを用いることで、アームに作用する負荷トルクやアームの先端位置を高精度に推定することができる。
【００４０】
以上詳述した本実施形態は、以下の利点を有する。
【００４１】
・減速機３０を構成する部材のたわみ角及び弾性変形によるねじれ角Δθｔは、第２軸１２に作用する負荷モーメントＭが大きいほど大きくなり、減速機３０の剛性ｋが低いほど大きくなる。これらのたわみ及びねじれによる検出角度位置の変化（Δθｇ＋Δθｔ）は、入力軸エンコーダ４０により検出された角度位置に基づき算出された第２軸１２の角度位置である入力側角度位置θｉｎと、出力軸エンコーダ５０により検出された第２軸１２の角度位置である出力側角度位置θｏｕｔとの差に相当する。また、第２軸１２に作用する負荷モーメントＭは、モータ２０に流れる電流と相関を有しており、モータ２０に流れる電流に基づき算出することができる。したがって、入力側角度位置θｉｎと、出力側角度位置θｏｕｔと、負荷モーメントＭと、減速機３０の剛性ｋとに基づいて、出力軸エンコーダ５０の検出誤差（Δθｅ）を算出することができる。
【００４２】
・算出された検出誤差により、出力軸エンコーダ５０により検出された出力側角度位置θｏｕｔが補正される。このため、エンコーダ４０，５０をアームに組み付け後に個々の使用状態に応じて検出誤差が生じたとしても、エンコーダ４０，５０をアームに組み付け後に検出誤差を補正することができる。その結果、減速機３０の出力軸と一体で回転する第２軸１２の角度位置θａを、正確に検出することができる。
【００４３】
・モータ２０の駆動トルクにより減速機３０の第２軸１２を静止させた状態では、モータ２０の駆動トルクと減速機３０の第２軸１２に作用する負荷モーメントＭとが釣り合っている。このため、たわみ及びねじれによる検出角度位置の変化（Δθｇ＋Δθｔ）は、負荷モーメントＭ及び減速機３０の剛性ｋに基づき算出される角度位置の変化（Ｍ／ｋ）に等しくなる。そこで、ロボットコントローラ８０は、モータ２０の駆動トルクにより第２軸１２を静止させた状態において、入力側角度位置θｉｎと、出力側角度位置θｏｕｔと、負荷モーメントＭと、減速機３０の剛性ｋとに基づいて、検出誤差（Δθｅ）を算出する。したがって、モータ２０の駆動トルクにより減速機３０の第２軸１２を静止させた状態にすることにより、検出誤差を算出することができる。
【００４４】
（第２実施形態）
以下、第２実施形態について、第１実施形態との相違点を中心に説明する。第１実施形態のように、第２軸１２の角度位置を所定角度変化させて、モータ２０の駆動トルクにより第２軸１２を静止させた状態とし、式（６）により偏心誤差Δθｅを算出することを第２軸１２の可動範囲にわたって繰り返すには、長時間を要するおそれがある。本実施形態では、モータ２０の駆動トルクにより減速機３０の第２軸１２を動かしながら、検出誤差を算出する。
【００４５】
図３において、モータ２０を正回転させた時と逆回転させた時とでは、同一の角度位置θであっても減速機３０の出力軸、すなわち第２軸１２に作用する負荷モーメントＭが異なる。例えば、モータ２０の回転方向によって、減速機３０で生じる摩擦力の大きさが異なったり、重力方向（矢印で示す負荷Ｆの方向）とアームの第２軸１２との関係が異なったりする。このため、モータ２０に流れる電流はモータ２０の回転方向に依存することとなり、モータ２０の回転方向に応じて電流が受ける影響を考慮しなければ、モータ２０に流れる電流に基づき負荷モーメントＭを適切に算出することができない。
【００４６】
そこで、本実施形態では、ロボットコントローラ８０（負荷モーメント算出部に相当）は、第２軸１２のそれぞれの角度位置に、モータ２０を正回転させた時に流れる電流と逆回転させた時に流れる電流との平均電流に基づいて、第２軸１２のそれぞれの角度位置における第２軸１２に作用する負荷モーメントＭを算出する。詳しくは、上記式（６）のΔθｅ＝（θｏｕｔ−θｉｎ）−Ｍ／ｋにおいて、負荷モーメントＭを、モータ２０を正回転させた時の負荷モーメントＭ＋と逆回転させた時の負荷モーメントＭ−との平均とする。すなわち、式（６）に代えて以下の式（８）を用いる。
【００４７】
Δθｅ＝（θｏｕｔ−θｉｎ）−｛（Ｍ＋）＋（Ｍ−）｝／２ｋ    ・・・（８）
負荷モーメントＭ＋は、モータ２０を正回転させた時にモータ２０に流れる電流を電流センサ等により検出し、検出された電流に基づいて算出することができる。負荷モーメントＭ−は、モータ２０を逆回転させた時にモータ２０に流れる電流を電流センサ等により検出し、検出された電流に基づいて算出することができる。
【００４８】
ここで、第２軸１２の角度位置を正回転方向へ所定角度ずつ変化させながら、それぞれの角度位置に対応する負荷モーメントＭ＋を算出することを、第２軸１２の可動範囲にわたって繰り返す。また、第２軸１２の角度位置を逆回転方向へ所定角度ずつ変化させながら、それぞれの角度位置に対応する負荷モーメントＭ−を算出することを、第２軸１２の可動範囲にわたって繰り返す。
【００４９】
そして、第２軸１２の各角度位置において、上記式（７）に、検出された出力側角度位置θｏｕｔ、及び式（８）により算出された偏心誤差Δθｅを代入することにより、第２軸１２の真の角度位置θａを算出する。
【００５０】
図４は、第２軸１２に負荷モーメントＭが作用しない状態において、入力側角度位置θｉｎに対する偏心誤差Δθｅの実測値及び算出値を求めた結果を示すグラフである。なお、第２軸１２に負荷モーメントＭが作用しない状態は、アームにおいて減速機３０の出力軸よりも先端側の部分を取り外し、且つアームにねじり力等の外力を作用させないようにして実現している。
【００５１】
同図に示すように、破線で示す偏心誤差Δθｅの実測値と、実線で示す偏心誤差Δθｅの算出値とが精度よく一致している。したがって、モータ２０の駆動トルクにより減速機３０の第２軸１２を動かしながら偏心誤差Δθｅを算出しても、偏心誤差Δθｅを正確に算出することができる。なお、第１実施形態により、偏心誤差Δθｅを算出した場合も、偏心誤差Δθｅの実測値と算出値とが精度よく一致する。
【００５２】
本実施形態は、以下の利点を有する。ここでは、第１実施形態との相違点のみを述べる。
【００５３】
・ロボットコントローラ８０は、第２軸１２のそれぞれの角度位置に、モータ２０を正回転させた時に流れる電流と逆回転させた時に流れる電流との平均電流に基づいて、第２軸１２のそれぞれの角度位置における第２軸１２に作用する負荷モーメントＭを算出する。このため、モータ２０の回転方向による電流の変化を相殺することができ、モータ２０に流れる電流に基づき負荷モーメントＭを適切に算出することができる。
【００５４】
・ロボットコントローラ８０は、入力側角度位置θｉｎと、出力側角度位置θｏｕｔと、入力側角度位置θｉｎに対応して算出された負荷モーメントＭと、減速機３０の剛性ｋとに基づいて、検出誤差を算出する。したがって、モータ２０の駆動トルクにより減速機３０の出力軸（第２軸１２）を静止させた状態にする必要がなく、第２軸１２を回転させながら迅速に検出誤差を算出することができる。
【００５５】
なお、第１，第２実施形態を、以下のように変更して実施することもできる。
【００５６】
・モータ２０の駆動トルクにより減速機３０の出力軸（第２軸１２）を静止させた状態にして検出誤差を算出する場合も、出力軸を回転させながら検出誤差を算出する場合も、第２軸１２の角度位置毎に検出誤差を算出する必要がある。ロボットコントローラ８０は、こうした検出誤差の算出をロボット１０のキャリブレーションにおいて実行する。しかしながら、ロボット１０（角度位置検出装置）の動作を開始するまでに、長時間を要するおそれがある。
【００５７】
そこで、ロボットコントローラ８０（検出誤差算出部に相当）は、第２軸１２の角度位置に対応して予め測定された検出誤差をテーブルとして備えており、算出された入力側角度位置θｉｎ及びテーブルに基づいて検出誤差を算出してもよい。こうした構成によれば、ロボット１０のキャリブレーション時（動作開始時）に、第２軸１２の角度位置毎に新たに検出誤差を算出する必要がなく、ロボット１０の動作を迅速に開始することができる。
【００５８】
・ロボット１０のアームに限らず、いわゆるマニプレータを採用することができる。
【符号の説明】
【００５９】
１０…ロボット、１２…第２軸（所定軸）、２０…モータ、２１…入力軸、３０…減速機、４０…入力軸エンコーダ、５０…出力軸エンコーダ、８０…ロボットコントローラ。
【図１】
2018036097.tif 000003
【図２】
2018036097.tif 000004
【図３】
2018036097.tif 000005
【図４】
2018036097.tif 000006