(57)【要約】【課題】  角度伝達誤差を精確に同定することができる角度伝達誤差同定システムを提供する。【解決手段】  減速機１３を介してモータ１１によって回転駆動される関節７を含むロボットアーム４の減速機１３の角度伝達誤差を同定する角度伝達誤差同定システムであって、振幅パラメータ及び位相パラメータを有する減速機１３の角度伝達誤差をモデル化した周期関数である角度伝達誤差同定関数の振幅パラメータ及び位相パラメータを算出し、角度伝達誤差同定関数を用いて角度伝達誤差を同定する同定部４６を備え、同定部４６は、角度伝達誤差の同定時に関節に作用する重力トルク値である重力トルク現在値の値に応じて振幅第１関数又は振幅第２関数を用いて重力トルク現在値に対応する振幅パラメータを算出し、且つ重力トルク現在値の値に応じて位相第１関数又は位相第２関数を用いて重力トルク現在値に対応する位相パラメータを算出する。【選択図】      図６Ａ
2018202554.tif 000002
【特許請求の範囲】
【請求項１】
減速機を介してモータによって回転駆動される関節を含むロボットアームの前記減速機の角度伝達誤差を同定する角度伝達誤差同定システムであって、
振幅パラメータ及び位相パラメータを有する前記減速機の角度伝達誤差をモデル化した周期関数である角度伝達誤差同定関数の前記振幅パラメータ及び前記位相パラメータを算出し、前記角度伝達誤差同定関数を用いて前記角度伝達誤差を同定する同定部を備え、
前記同定部は、前記減速機の角度伝達誤差の同定時に前記関節に作用する重力トルク値である重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が負の値をとる動作領域における前記振幅パラメータと前記関節に作用する重力トルク値との相関関係を表した振幅第１関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が負の値をとる動作領域における前記位相パラメータと前記関節に作用する重力トルク値との相関関係を表した位相第１関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が正の値をとる動作領域における前記振幅パラメータと前記関節に作用する重力トルク値との相関関係を表した振幅第２関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が正の値をとる動作領域における前記位相パラメータと前記関節に作用する重力トルク値との相関関係を表した位相第２関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出する、角度伝達誤差同定システム。
【請求項２】
前記関節の動作領域に含まれる前記関節の回動方向に並ぶ複数の微小動作領域のそれぞれについて、該微小動作領域の前記減速機の角度伝達誤差の所定の周波数成分の振幅である微小動作領域振幅及び位相である微小動作領域位相を算出する微小領域振幅／位相算出部と、
複数の前記微小動作領域のそれぞれについて、対応する該微小動作領域において前記関節に作用する重力トルク値である対応重力トルク値を算出する微小領域重力トルク値算出部と、
前記微小動作領域振幅と前記対応重力トルク値との相関関係を表した前記振幅第１関数及び前記振幅第２関数を算出するトルク−振幅相関関係算出部であって、前記振幅第１関数は前記微小領域振幅／位相算出部が算出した複数の前記微小動作領域のうち前記対応重力トルク値が負の値をとる前記微小動作領域における前記微小動作領域振幅及び前記対応重力トルク値に基づき算出される関数であり、前記振幅第２関数は前記微小領域振幅／位相算出部が算出した複数の前記微小動作領域のうち前記対応重力トルク値が正の値をとる前記微小動作領域における前記微小動作領域振幅及び前記対応重力トルク値に基づき算出される関数である、トルク−振幅相関関係算出部と、
前記位相第１関数及び前記位相第２関数を算出するトルク−位相相関関係算出部であって、前記位相第１関数は前記微小領域振幅／位相算出部が算出した複数の前記微小動作領域のうち前記対応重力トルク値が負の値をとる前記微小動作領域における前記微小動作領域位相及び前記対応重力トルク値に基づき算出される関数であり、前記位相第２関数は前記微小領域振幅／位相算出部が算出した複数の前記微小動作領域のうち前記対応重力トルク値が正の値をとる前記微小動作領域における前記微小動作領域位相及び前記対応重力トルク値に基づき算出される関数である、トルク−位相相関関係算出部と、を更に備える請求項１に記載の角度伝達誤差同定システム。
【請求項３】
前記トルク−振幅相関関係算出部は、最小二乗法を用いて前記振幅第１関数及び前記振幅第２関数を一次関数で表し、
前記トルク−位相相関関係算出部は、最小二乗法を用いて前記位相第１関数及び前記位相第２関数を一次関数で表す、請求項２に記載の角度伝達誤差同定システム。
【請求項４】
前記トルク−位相相関関係算出部は、対応する前記微小動作領域の振幅パラメータの値で重みづけした重み付き最小二乗法を用いて前記位相第１関数及び前記位相第２関数を一次関数で表す、請求項３に記載の角度伝達誤差同定システム。
【請求項５】
前記トルク−振幅相関関係算出部は、振幅第３関数を更に算出し、前記振幅第３関数は前記振幅第１関数における重力トルク値が負の値をとる第１所定値に対応する振幅値と、前記振幅第２関数における重力トルク値が正の値をとる第２所定値に対応する振幅値とを通る関数であり、
前記トルク−位相相関関係算出部は、位相第３関数を更に算出し、前記位相第３関数は前記位相第１関数における重力トルク値が負の値をとる第３所定値に対応する位相値と、前記位相第２関数における重力トルク値が正の値をとる第４所定値に対応する位相値とを通る関数であり、
前記同定部は、前記重力トルク現在値が前記第１所定値よりも小さいときは前記振幅第１関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が前記第１所定値よりも大きく且つ前記第２所定値よりも小さいときは前記振幅第３関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が前記第２所定値よりも大きいときは前記振幅第２関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が前記第３所定値よりも小さいときは前記位相第１関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が前記第３所定値よりも大きく且つ前記第４所定値よりも小さいときは前記位相第３関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が前記第４所定値よりも大きいときは前記位相第２関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出する、請求項２乃至４の何れかに記載の角度伝達誤差同定システム。
【請求項６】
前記トルク−振幅相関関係算出部は、前記振幅第３関数を一次関数で表し、
前記トルク−位相相関関係算出部は、前記位相第３関数を一次関数で表す、請求項５に記載の角度伝達誤差同定システム。
【請求項７】
減速機を介してモータによって回転駆動される関節を含むロボットアームの前記減速機の角度伝達誤差を同定する角度伝達誤差同定方法であって、
前記関節の動作領域に含まれる前記関節の回動方向に並ぶ複数の微小動作領域のそれぞれについて、該微小動作領域の前記減速機の角度伝達誤差の所定の周波数成分の振幅である微小動作領域振幅及び位相である微小動作領域位相を算出する微小領域振幅／位相算出ステップと、
複数の前記微小動作領域のそれぞれについて、対応する該微小動作領域において前記関節に作用する重力トルク値である対応重力トルク値を算出する微小領域重力トルク値算出ステップと、
前記微小動作領域振幅と前記対応重力トルク値との相関関係を表した振幅第１関数及び振幅第２関数を算出するトルク−振幅相関関係算出ステップであって、前記振幅第１関数は前記微小領域振幅／位相算出ステップにおいて算出した複数の前記微小動作領域のうち前記対応重力トルク値が負の値をとる前記微小動作領域における前記微小動作領域振幅及び前記対応重力トルク値に基づき算出される関数であり、前記振幅第２関数は前記微小領域振幅／位相算出ステップにおいて算出した複数の前記微小動作領域のうち前記対応重力トルク値が正の値をとる前記微小動作領域における前記微小動作領域振幅及び前記対応重力トルク値に基づき算出される関数である、トルク−振幅相関関係算出ステップと、
前記微小動作領域位相と前記対応重力トルク値との相関関係を表した位相第１関数及び位相第２関数を算出するトルク−位相相関関係算出ステップであって、前記位相第１関数は前記微小領域振幅／位相算出ステップにおいて算出した複数の前記微小動作領域の位相のうち前記対応重力トルク値が負の値をとる前記微小動作領域における前記微小動作領域位相及び前記対応重力トルク値に基づき算出される関数であり、前記位相第２関数は前記微小領域振幅／位相算出ステップにおいて算出した複数の前記微小動作領域の位相のうち前記対応重力トルク値が正の値をとる前記微小動作領域における前記微小動作領域位相及び前記対応重力トルク値に基づき算出される関数である、トルク−位相相関関係算出ステップと、
振幅パラメータ及び位相パラメータを有する前記減速機の角度伝達誤差をモデル化した角度伝達誤差同定関数の前記振幅パラメータ及び前記位相パラメータを算出し、前記角度伝達誤差同定関数を用いて前記角度伝達誤差を同定する同定ステップであって、前記減速機の角度伝達誤差の同定時に前記関節に作用する重力トルク値である重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記振幅第１関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記位相第１関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記振幅第２関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記位相第２関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出する同定ステップと、を備える角度伝達誤差同定方法。
【請求項８】
減速機を介してモータによって回転駆動される関節を含むロボットアームの前記減速機の角度伝達誤差を同定する角度伝達誤差同定システムを含むロボットシステムであって、
前記角度伝達誤差同定システムは、振幅パラメータ及び位相パラメータを有する前記減速機の角度伝達誤差をモデル化した周期関数である角度伝達誤差同定関数の前記振幅パラメータ及び前記位相パラメータを算出し、前記角度伝達誤差同定関数を用いて前記角度伝達誤差を同定する同定部を備え、
前記同定部は、前記減速機の角度伝達誤差の同定時に前記関節に作用する重力トルク値である重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が負の値をとる動作領域における前記振幅パラメータと前記関節に作用する重力トルク値との相関関係を表した振幅第１関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が負の値をとる動作領域における前記位相パラメータと前記関節に作用する重力トルク値との相関関係を表した位相第１関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が正の値をとる動作領域における前記振幅パラメータと前記関節に作用する重力トルク値との相関関係を表した振幅第２関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が正の値をとる動作領域における前記位相パラメータと前記関節に作用する重力トルク値との相関関係を表した位相第２関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出する、ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、角度伝達誤差同定システム、角度伝達誤差同定方法及びロボットシステムに関する。
【背景技術】
【０００２】
従来からロボット制御装置が知られている（例えば特許文献１参照）。
【０００３】
このロボット制御装置は、ハーモニックドライブ（登録商標）減速機の誤差振動（回転ムラ）を打ち消すための補正信号を出力する補正信号発生手段を備えている。この補正信号発生手段は、位相差を設定する位相設定器及び振幅を設定する歪振幅設定器を有し、設定された位相差及び振幅をもとに補正信号が演算される。位相設定器に設定される位相差は、誤差振動が最も小さくなる位相差を実測的に求められる。また、位相設定器に設定される位相差についても、誤差振動の振幅値を実測又は計算するか、徐々に設定値を変化させるかして、適正値が求められる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−１５３６１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、関節及び減速機に作用する重力トルクの変化によって適切な位相差及び適切な振幅が変化する場合がある。しかし、特許文献１に記載のロボット制御装置は、重力トルクの変化によって位相差及び振幅が適切な値から外れ、誤差振動を打ち消すための補正信号を生成することができない場合があった。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明のある態様に係る角度伝達誤差同定システムは、減速機を介してモータによって回転駆動される関節を含むロボットアームの前記減速機の角度伝達誤差を同定する角度伝達誤差同定システムであって、振幅パラメータ及び位相パラメータを有する前記減速機の角度伝達誤差をモデル化した周期関数である角度伝達誤差同定関数の前記振幅パラメータ及び前記位相パラメータを算出し、前記角度伝達誤差同定関数を用いて前記角度伝達誤差を同定する同定部を備え、前記同定部は、前記減速機の角度伝達誤差の同定時に前記関節に作用する重力トルク値である重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が負の値をとる動作領域における前記振幅パラメータと前記関節に作用する重力トルク値との相関関係を表した振幅第１関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が負の値をとる動作領域における前記位相パラメータと前記関節に作用する重力トルク値との相関関係を表した位相第１関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が正の値をとる動作領域における前記振幅パラメータと前記関節に作用する重力トルク値との相関関係を表した振幅第２関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が正の値をとる動作領域における前記位相パラメータと前記関節に作用する重力トルク値との相関関係を表した位相第２関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出する。
【０００７】
この構成によれば、関節に作用する重力トルクに応じた位相パラメータ及び振幅パラメータを有する周期関数を用いて減速機の角度伝達誤差を同定することができる。これによって、関節に作用する重力トルクが変化しても減速機の角度伝達誤差を精確に同定することができ、同定した角度伝達誤差に基づいて減速機の出力軸に接続される負荷の不安定な挙動を抑制することができる。
【０００８】
更に、関節に作用する重力トルクに応じた位相パラメータ及び振幅パラメータは、重力トルクが正の値をとるときと負の値をとるときとで別の関数を用いて算出されるので、重力トルクが正の領域と重力トルクが負の領域とで減速機の特性が異なる場合であっても、減速機の角度伝達誤差を精確に同定することができる。
【０００９】
前記関節の動作領域に含まれる前記関節の回動方向に並ぶ複数の微小動作領域のそれぞれについて、該微小動作領域の前記減速機の角度伝達誤差の所定の周波数成分の振幅である微小動作領域振幅及び位相である微小動作領域位相を算出する微小領域振幅／位相算出部と、複数の前記微小動作領域のそれぞれについて、対応する該微小動作領域において前記関節に作用する重力トルク値である対応重力トルク値を算出する微小領域重力トルク値算出部と、前記微小動作領域振幅と前記対応重力トルク値との相関関係を表した前記振幅第１関数及び前記振幅第２関数を算出するトルク−振幅相関関係算出部であって、前記振幅第１関数は前記微小領域振幅／位相算出部が算出した複数の前記微小動作領域のうち前記対応重力トルク値が負の値をとる前記微小動作領域における前記微小動作領域振幅及び前記対応重力トルク値に基づき算出される関数であり、前記振幅第２関数は前記微小領域振幅／位相算出部が算出した複数の前記微小動作領域のうち前記対応重力トルク値が正の値をとる前記微小動作領域における前記微小動作領域振幅及び前記対応重力トルク値に基づき算出される関数である、トルク−振幅相関関係算出部と、前記位相第１関数及び前記位相第２関数を算出するトルク−位相相関関係算出部であって、前記位相第１関数は前記微小領域振幅／位相算出部が算出した複数の前記微小動作領域のうち前記対応重力トルク値が負の値をとる前記微小動作領域における前記微小動作領域位相及び前記対応重力トルク値に基づき算出される関数であり、前記位相第２関数は前記微小領域振幅／位相算出部が算出した複数の前記微小動作領域のうち前記対応重力トルク値が正の値をとる前記微小動作領域における前記微小動作領域位相及び前記対応重力トルク値に基づき算出される関数である、トルク−位相相関関係算出部と、を更に備えていてもよい。
【００１０】
この構成によれば、振幅パラメータと重力トルク値との相関関係及び位相パラメータと重力トルク値との相関関係を精確に算出することができる。
【００１１】
前記トルク−振幅相関関係算出部は、最小二乗法を用いて前記振幅第１関数及び前記振幅第２関数を一次関数で表し、前記トルク−位相相関関係算出部は、最小二乗法を用いて前記位相第１関数及び前記位相第２関数を一次関数で表してもよい。
【００１２】
この構成によれば、振幅第１関数、振幅第２関数、位相第１関数及び位相第２関数を適切に算出することができる。
【００１３】
前記トルク−位相相関関係算出部は、対応する前記微小動作領域の振幅パラメータの値で重みづけした重み付き最小二乗法を用いて前記位相第１関数及び前記位相第２関数を一次関数で表してもよい。
【００１４】
この構成によれば、位相第１関数及び位相第２関数を精確に算出することができる。
【００１５】
前記トルク−振幅相関関係算出部は、振幅第３関数を更に算出し、前記振幅第３関数は前記振幅第１関数における重力トルク値が負の値をとる第１所定値に対応する振幅値と、前記振幅第２関数における重力トルク値が正の値をとる第２所定値に対応する振幅値とを通る関数であり、前記トルク−位相相関関係算出部は、位相第３関数を更に算出し、前記位相第３関数は前記位相第１関数における重力トルク値が負の値をとる第３所定値に対応する位相値と、前記位相第２関数における重力トルク値が正の値をとる第４所定値に対応する位相値とを通る関数であり、前記同定部は、前記重力トルク現在値が前記第１所定値よりも小さいときは前記振幅第１関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が前記第１所定値よりも大きく且つ前記第２所定値よりも小さいときは前記振幅第３関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が前記第２所定値よりも大きいときは前記振幅第２関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が前記第３所定値よりも小さいときは前記位相第１関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が前記第３所定値よりも大きく且つ前記第４所定値よりも小さいときは前記位相第３関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が前記第４所定値よりも大きいときは前記位相第２関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出してもよい。
【００１６】
この構成によれば、重力トルク値が０を跨ぐ区間において、角度伝達誤差の補償を円滑におこなうことができる。
【００１７】
前記トルク−振幅相関関係算出部は、前記振幅第３関数を一次関数で表し、前記トルク−位相相関関係算出部は、前記位相第３関数を一次関数で表してもよい。
【００１８】
この構成によれば、振幅第３関数、及び位相第３関数を適切に算出することができる。
【００１９】
上記課題を解決するため、本発明のある態様に係る角度伝達誤差同定方法は、減速機を介してモータによって回転駆動される関節を含むロボットアームの前記減速機の角度伝達誤差を同定する角度伝達誤差同定方法であって、前記関節の動作領域に含まれる前記関節の回動方向に並ぶ複数の微小動作領域のそれぞれについて、該微小動作領域の前記減速機の角度伝達誤差の所定の周波数成分の振幅である微小動作領域振幅及び位相である微小動作領域位相を算出する微小領域振幅／位相算出ステップと、複数の前記微小動作領域のそれぞれについて、対応する該微小動作領域において前記関節に作用する重力トルク値である対応重力トルク値を算出する微小領域重力トルク値算出ステップと、前記微小動作領域振幅と前記対応重力トルク値との相関関係を表した振幅第１関数及び振幅第２関数を算出するトルク−振幅相関関係算出ステップであって、前記振幅第１関数は前記微小領域振幅／位相算出ステップにおいて算出した複数の前記微小動作領域のうち前記対応重力トルク値が負の値をとる前記微小動作領域における前記微小動作領域振幅及び前記対応重力トルク値に基づき算出される関数であり、前記振幅第２関数は前記微小領域振幅／位相算出ステップにおいて算出した複数の前記微小動作領域のうち前記対応重力トルク値が正の値をとる前記微小動作領域における前記微小動作領域振幅及び前記対応重力トルク値に基づき算出される関数である、トルク−振幅相関関係算出ステップと、前記微小動作領域位相と前記対応重力トルク値との相関関係を表した位相第１関数及び位相第２関数を算出するトルク−位相相関関係算出ステップであって、前記位相第１関数は前記微小領域振幅／位相算出ステップにおいて算出した複数の前記微小動作領域の位相のうち前記対応重力トルク値が負の値をとる前記微小動作領域における前記微小動作領域位相及び前記対応重力トルク値に基づき算出される関数であり、前記位相第２関数は前記微小領域振幅／位相算出ステップにおいて算出した複数の前記微小動作領域の位相のうち前記対応重力トルク値が正の値をとる前記微小動作領域における前記微小動作領域位相及び前記対応重力トルク値に基づき算出される関数である、トルク−位相相関関係算出ステップと、振幅パラメータ及び位相パラメータを有する前記減速機の角度伝達誤差をモデル化した角度伝達誤差同定関数の前記振幅パラメータ及び前記位相パラメータを算出し、前記角度伝達誤差同定関数を用いて前記角度伝達誤差を同定する同定ステップであって、前記減速機の角度伝達誤差の同定時に前記関節に作用する重力トルク値である重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記振幅第１関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記位相第１関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記振幅第２関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記位相第２関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出する同定ステップと、を備える。
【００２０】
この構成によれば、関節に作用する重力トルクに応じた位相パラメータ及び振幅パラメータを有する周期関数を用いて減速機の角度伝達誤差を同定することができる。これによって、関節に作用する重力トルクが変化しても減速機の角度伝達誤差を精確に同定することができ、同定した角度伝達誤差に基づいて減速機の出力軸に接続される負荷の不安定な挙動を抑制することができる。
【００２１】
更に、関節に作用する重力トルクに応じた位相パラメータ及び振幅パラメータは、重力トルクが正の値をとるときと負の値をとるときとで別の関数を用いて算出されるので、重力トルクが正の領域と重力トルクが負の領域とで減速機の特性が異なる場合であっても、減速機の角度伝達誤差を精確に同定することができる。
【００２２】
上記課題を解決するため、本発明のある態様に係るロボットシステムは、減速機を介してモータによって回転駆動される関節を含むロボットアームの前記減速機の角度伝達誤差を同定する角度伝達誤差同定システムを含むロボットシステムであって、前記角度伝達誤差同定システムは、振幅パラメータ及び位相パラメータを有する前記減速機の角度伝達誤差をモデル化した周期関数である角度伝達誤差同定関数の前記振幅パラメータ及び前記位相パラメータを算出し、前記角度伝達誤差同定関数を用いて前記角度伝達誤差を同定する同定部を備え、前記同定部は、前記減速機の角度伝達誤差の同定時に前記関節に作用する重力トルク値である重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が負の値をとる動作領域における前記振幅パラメータと前記関節に作用する重力トルク値との相関関係を表した振幅第１関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が負の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が負の値をとる動作領域における前記位相パラメータと前記関節に作用する重力トルク値との相関関係を表した位相第１関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が正の値をとる動作領域における前記振幅パラメータと前記関節に作用する重力トルク値との相関関係を表した振幅第２関数を用いて前記重力トルク現在値に対応する前記振幅パラメータを算出し、且つ前記重力トルク現在値が正の数値範囲である所定の数値範囲に含まれるときは前記関節の動作領域のうち前記関節に作用する重力トルク値が正の値をとる動作領域における前記位相パラメータと前記関節に作用する重力トルク値との相関関係を表した位相第２関数を用いて前記重力トルク現在値に対応する前記位相パラメータを算出する。
【００２３】
この構成によれば、関節に作用する重力トルクに応じた位相パラメータ及び振幅パラメータを有する周期関数を用いて減速機の角度伝達誤差を同定することができる。これによって、関節に作用する重力トルクが変化しても減速機の角度伝達誤差を精確に同定することができ、同定した角度伝達誤差に基づいて減速機の出力軸に接続される負荷の不安定な挙動を抑制することができる。
【００２４】
更に、関節に作用する重力トルクに応じた位相パラメータ及び振幅パラメータは、重力トルクが正の値をとるときと負の値をとるときとで別の関数を用いて算出されるので、重力トルクが正の領域と重力トルクが負の領域とで減速機の特性が異なる場合であっても、減速機の角度伝達誤差を精確に同定することができる。
【発明の効果】
【００２５】
本発明は、減速機の角度伝達誤差を精確に同定することができ、これによって、減速機の角度伝達誤差を精確に補償することできるという効果を奏する。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態に係るロボットシステムの構成例を概略的に示す図である。
【図２】図１のロボットシステムの制御系統の構成例を概略的に示すブロック図である。
【図３】角度伝達誤差の説明図である。
【図４】図１のロボットシステムのロボットの関節の微小動作領域の一例を説明する説明図である。
【図５】図１のロボットシステムの微小領域振幅／位相算出部が算出した所定の周波数成分の周期関数の一例を示す図である。
【図６Ａ】図１のロボットシステムの動作例を示すフローチャートである。
【図６Ｂ】図１のロボットシステムの動作例を示すフローチャートである。
【図７】図１のロボットシステムのトルク−振幅相関関係算出部によって算出された振幅第１関数及び振幅第２関数の一例を示すグラフである。
【図８】図１のロボットシステムのトルク−振幅相関関係算出部によって算出された振幅第１関数、振幅第２関数、及び振幅第３関数の一例を示すグラフである。
【図９】図１のロボットシステムのトルク−位相相関関係算出部によって算出された位相第１関数及び位相第２関数の一例を示すグラフである。
【図１０】図１のロボットシステムのトルク−位相相関関係算出部によって算出された位相第１関数、位相第２関数、及び位相第３関数の一例を示すグラフである。
【発明を実施するための形態】
【００２７】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、本実施の形態によって本発明が限定されるものではない。また、以下では、全ての図を通じて、同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【００２８】
図１は、本発明の実施の形態に係るロボットシステム１００の構成例を概略的に示す図である。図２は、ロボットシステム１００の制御系統の構成例を概略的に示すブロック図である。
【００２９】
図１及び図２に示すように、ロボットシステム１００は、減速機１３を介してモータ１１によって回転駆動される関節７を含むロボットアーム４の減速機１３の角度伝達誤差を同定する減速機角度伝達誤差同定システムを含むシステムである。ロボットシステム１００は、ロボット１と、制御装置２とを備え、減速機１３の角度伝達誤差を制御装置２が同定する。
【００３０】
［ロボットの構成例］
図１に示すように、ロボット１は、多関節型ロボットの産業用ロボット（多関節ロボット）である。ロボット１は、基部３と、ロボットアーム４と、ハンド１４を含む。
【００３１】
ロボットアーム４は、基部３に対してハンド１４を移動させるロボットアームであり、少なくとも一つの関節を含む。このうち、説明の便宜上、角度伝達誤差を同定及び補償する関節を以下では関節７という。関節７は、例えば水平方向に延在する回動軸線周りに回動する関節である。したがって、関節７の回動によって関節７よりも先端側に連なる要素（ハンド１４を含む）の姿勢が変化し、関節７に作用する重力トルクが変化する。図２に示すように、ロボットアーム４には、関節７を駆動する関節駆動部９が設けられている。関節駆動部９は、モータ１１と、エンコーダ１２と、減速機１３とを含む。モータ１１は、関節７を回動させる駆動源であり、例えばサーボモータである。エンコーダ１２は、モータ１１の出力軸１１ａの回転角を検知する。減速機１３は、入力軸１３ａがモータ１１の出力軸１１ａに連結され、モータ１１の出力軸１１ａの回転を所定の減速比で減速し出力軸１３ｂから出力する。
【００３２】
減速機１３は、例えば波動歯車装置（ハーモニックドライブ（登録商標））である。波動歯車装置は、サーキュラスプラインと、フレクスプラインと、ウェーブジェネレータとを備える。サーキュラスプラインは、剛性の内歯歯車であり、例えば筐体と一体的に設けられる。フレクスプラインは、可撓性を有する外歯歯車であり、サーキュラスプラインと歯合する。フレクスプラインは、サーキュラスプラインよりも歯数が少なく、減速機１３の出力軸１３ｂと接続される。ウェーブジェネレータは、フレクスプラインの内側に接触する楕円状のカムであり、減速機１３の入力軸１３ａと接続されている。そして、減速機１３の入力軸１３ａが回転することによって、ウェーブジェネレータがフレクスプラインとサーキュラスプラインとの噛み合い位置が移動し、サーキュラスプラインとフレクスプラインの歯数差に応じてフレクスプラインが回転軸周りに回転し、減速機１３の出力軸１３ｂが回転する。波動歯車装置は、小型・軽量、高減速比、高トルク容量、ノンバックラッシ等の特徴からロボットの駆動機構の減速機に適した特性を有する。
【００３３】
ところで、図３に示すように、波動歯車装置などの減速機には、加工誤差等により、減速機に入力される入力回転角に減速比を乗じた理論上の出力回転角と、実際の出力回転角との差である角度伝達誤差が生じる。この角度伝達誤差は、モータの出力軸の回転に伴って周期的に変化する。このような減速機出力軸の角度伝達誤差ATEは、以下の式（１）に係る関数を用いたモデルによって近似的に表現することが可能である。
【００３４】
【数１】
2018202554.tif 000003
【００３５】
このうち、周波数ｆは、減速機１３の構造（種類）に依存する値であり、例えば波動歯車装置の角度伝達誤差に特に大きな影響をあたえるのは周波数が２に係る成分であることが判っている。
【００３６】
［制御装置の構成例］
図２に示すように、制御装置２は、ロボット１を制御する。制御装置２は、演算部２１と、記憶部２２と、関節７に対応して設けられたサーボアンプ２４とを含む。
【００３７】
演算部２１は、例えばマイクロコントローラ、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡ等のプログラマブルロジックデバイス（ＰＬＤ）などの演算器で構成される。演算部は、集中制御する単独の制御器で構成されていてもよく、互いに協働して分散制御する複数の制御器で構成されてもよい。演算部２１は、指令部４１と、微小領域振幅／位相算出部４２と、微小領域重力トルク値算出部４３と、トルク−振幅相関関係算出部４４と、トルク−位相相関関係算出部４５と、同定部４６とを含む。指令部４１、微小領域振幅／位相算出部４２、微小領域重力トルク値算出部４３、トルク−振幅相関関係算出部４４、トルク−位相相関関係算出部４５、同定部４６は、所定の制御プログラムを演算部２１が実行することにより実現される機能ブロックである。
【００３８】
指令部４１は、動作プログラムに基づき目標位置を生成し、これを出力する。出力された目標位置は、サーボアンプ２４に入力される。また、指令部４１は、同定部４６が同定した角度伝達誤差に基づいて目標位置を補正し、これを出力する。
【００３９】
図４は、ロボット１の関節７の第１微小動作領域Ｒｄ１〜第８微小動作領域Ｒｄ８の一例を説明する説明図である。図５は、微小領域振幅／位相算出部４２が算出した所定の周波数成分の周期関数の一例を示す図である。
【００４０】
微小領域振幅／位相算出部４２は、図４及び図５に示すように、関節７の動作領域Ｒに含まれる関節７の回動方向に並ぶ複数の微小動作領域のそれぞれについて、微小動作領域の角度伝達誤差の所定の周波数の振幅である微小動作領域振幅Ａｄ（図７参照）及び位相である微小動作領域位相φｄ（図９参照）を算出する。微小動作領域は、関節７の回動領域において所定の間隔で予め設定された領域である。例えば８つの予め設定された微小動作領域Ｒｄ１〜Ｒｄ８が設定されている。なお、図４において、７ａで示す要素が関節７よりもロボットアーム４の基端側のリンクであり、７ｂで示す要素が関節７よりもロボットアーム４の先端側のリンクである。
【００４１】
微小領域振幅／位相算出部４２は、例えば、微小動作領域の角度伝達誤差を実測的に算出する。すなわち、例えば、減速機１３の出力軸１３ｂに、この出力軸１３ｂの回転角を検知するエンコーダ（図示せず）を設ける。そして、微小領域振幅／位相算出部４２は、指令部４１を介して関節７を動作させ、理論上の減速機１３の出力軸１３ｂの回転角とエンコーダから出力される減速機１３の出力軸１３ｂの回転角との差分である角度伝達誤差の変化を算出する。そして、算出した角度伝達誤差の変化から所定の周波数成分（例えばｆ＝２）を抽出し、この周波数成分に係る正弦波の振幅（微小動作領域振幅Ａｄ）及び位相（微小動作領域位相φｄ）を算出する。なお、周波数ｆは、減速機１３の構造（種類）に依存する値であり、波動歯車減速機である減速機１３において、周波数ｆは、角度伝達誤差に大きな影響を与える２と予め規定されている。
【００４２】
なお、本実施の形態において、微小領域振幅／位相算出部４２は、減速機１３の出力軸１３ｂの回転角を検知するエンコーダ１２によって取得した情報に基づいて角度伝達誤差を検出したがこれに限られるものではない。これに代えて、角度伝達誤差を同定する関節７の動作に起因する他の関節を制御するための電流値の変化を検知し、この電流値の変化に基づいて関節７の角度伝達誤差を解析的に算出してもよい。
【００４３】
微小領域重力トルク値算出部４３は、微小動作領域Ｒｄ１〜Ｒｄ８のそれぞれについて関節７に作用する対応重力トルク値Ｔｇを算出する。対応重力トルク値Ｔｇは、対応する微小動作領域において関節７に作用する重力トルク値であり、例えばロボットアーム４の姿勢等から解析的に算出される値であるが、これに代えて関節７に重力トルクを検出するためのセンサを設け、関節７に作用する重力トルク値を検出してもよい。上述の通り、関節７は水平方向に延在する回動軸線周りに回動する関節であり、関節７の回動によって、関節７よりも先端側に連なるロボットアーム４の要素、及びハンド１４の姿勢が変化し、関節７に作用する重力トルクが変化する。なお、図４に示すようにロボットアーム４が例えば上方に伸延し、関節７に重力トルクが作用せず、関節７に作用する重力トルク値が０にある状態から一方側に関節７を回動させ、ロボットアーム４を倒していったときの重力トルク値に正符号を付して表す。また、関節７に重力トルクが作用せず、関節７に作用する重力トルク値が０にある状態から他方側に関節７を回動させ、ロボットアーム４を倒していったときの重力トルク値に負符号を付して表す。
【００４４】
そして、微小領域重力トルク値算出部４３は、例えば各微小動作領域の中央における重力トルク値を各微小動作領域の重力トルク値として取り扱う。しかし、これに限られるものではなく、微小領域重力トルク値算出部４３は、各微小動作領域において関節７に作用する重力トルク値の平均値を各微小動作領域の重力トルク値として取り扱ってもよい。
【００４５】
図７は、ロボットシステム１００のトルク−振幅相関関係算出部４４によって算出された振幅第１関数ＦＡ１及び振幅第２関数ＦＡ２の一例を示すグラフである。
【００４６】
トルク−振幅相関関係算出部４４は、図７に示すように、微小動作領域振幅Ａｄと対応重力トルク値Ｔｇとの相関関係を表した振幅第１関数ＦＡ１及び振幅第２関数ＦＡ２を算出する。振幅第１関数ＦＡ１は、微小領域振幅／位相算出部４２が算出した微小動作領域Ｒｄ１〜Ｒｄ８のうち対応重力トルク値Ｔｇが負の値をとる微小動作領域における微小動作領域振幅Ａｄ（図７におけるＡｄ１〜Ａｄ４）及び対応重力トルク値Ｔｇ（図７におけるＴｇ１〜Ｔｇ４）に基づき算出される関数である。本実施の形態において、微小動作領域Ｒｄ１〜Ｒｄ４の対応重力トルク値Ｔｇ１〜Ｔｇ４が負の値をとるように規定されている。
【００４７】
また、振幅第２関数ＦＡ２は、微小領域振幅／位相算出部４２が算出した微小動作領域Ｒｄ１〜Ｒｄ８のうち対応重力トルク値Ｔｇが正の値をとる微小動作領域における微小動作領域振幅Ａｄ（図７におけるＡｄ５〜Ａｄ８）及び対応重力トルク値Ｔｇ（図７におけるＴｇ５〜Ｔｇ８）に基づき算出される関数である。本実施の形態において、微小動作領域Ｒｄ５〜Ｒｄ８の対応重力トルク値Ｔｇ５〜Ｔｇ８が正の値をとるように規定されている。
【００４８】
そして、トルク−振幅相関関係算出部４４は、最小二乗法を用いて振幅第１関数ＦＡ１及び振幅第２関数ＦＡ２を一次関数で表すように構成されている。すなわち、トルク−振幅相関関係算出部４４は、最小二乗法を用いて一次関数で表される振幅第１関数ＦＡ１及び振幅第２関数ＦＡ２の傾き及び切片に係る係数を算出する。
【００４９】
図８は、ロボットシステム１００のトルク−振幅相関関係算出部４４によって算出された振幅第１関数ＦＡ１、振幅第２関数ＦＡ２、及び振幅第３関数ＦＡ３の一例を示すグラフである。
【００５０】
また、トルク−振幅相関関係算出部４４は、図８に示すように、振幅第３関数ＦＡ３を更に算出する。振幅第３関数ＦＡ３は、振幅第１関数ＦＡ１における重力トルク値Ｔｇが負の値をとる第１所定値Ｔｇａに対応する振幅値Ａａと、振幅第２関数ＦＡ２における重力トルク値Ｔｇが正の値をとる第２所定値Ｔｇｂに対応する振幅値Ａｂとを通る関数である。トルク−振幅相関関係算出部４４は、振幅値Ａａと振幅値Ａｂとを通る一次関数として振幅第３関数ＦＡ３を表す。すなわち、トルク−振幅相関関係算出部４４は、一次関数で表される振幅第３関数ＦＡ３の傾き及び切片に係る係数を算出する。
【００５１】
図９は、ロボットシステム１００のトルク−位相相関関係算出部４５によって算出された位相第１関数Ｆφ１及び位相第２関数Ｆφ２の一例を示すグラフである。
【００５２】
トルク−位相相関関係算出部４５は、図９に示すように、微小動作領域位相φｄと対応重力トルク値Ｔｇとの相関関係を表した位相第１関数Ｆφ１及び位相第２関数Ｆφ２を算出する。位相第１関数Ｆφ１は、対応重力トルク値Ｔｇが負の値をとる微小動作領域Ｒｄ１〜Ｒｄ４における微小動作領域位相φｄ（図９におけるφｄ１〜φｄ４）及び対応重力トルク値Ｔｇ（図９におけるＴｇ５〜Ｔｇ８）に基づき算出される関数である。
【００５３】
また、位相第２関数Ｆφ２は、対応重力トルク値Ｔｇが正の値をとる微小動作領域Ｒｄ５〜Ｒｄ８における微小動作領域位相φｄ（図９におけるφｄ５〜φｄ８）及び対応重力トルク値Ｔｇ（図９におけるＴｇ５〜Ｔｇ８）に基づき算出される関数である。
【００５４】
そして、トルク−振幅相関関係算出部４４は、対応する微小動作領域の振幅パラメータの値Ａで重みづけした重み付き最小二乗法を用いて位相第１関数Ｆφ１及び位相第２関数Ｆφ２を一次関数で表す。すなわち、例えば微小動作領域Ｒｄ１の位相φｄ１は、振幅Ａｄ１で重み付けを行い、他の位相についても同様に対応する振幅で重み付けを行う。そして、トルク−位相相関関係算出部４５は、重み付け最小二乗法を用いて一次関数で表される位相第１関数Ｆφ１及び位相第２関数Ｆφ２の傾き及び切片に係る係数を算出する。
【００５５】
図１０は、ロボットシステム１００のトルク−位相相関関係算出部４５によって算出された位相第１関数Ｆφ１、位相第２関数Ｆφ２、及び位相第３関数Ｆφ３の一例を示すグラフである。
【００５６】
そして、トルク−位相相関関係算出部４５は、図１０に示すように、位相第３関数Ｆφ３を更に算出する。位相第３関数Ｆφ３は、位相第１関数Ｆφ１における重力トルク値Ｔｇが負の値をとる第３所定値Ｔｇｃに対応する位相値φａと、位相第２関数Ｆφ２における重力トルク値Ｔｇが正の値をとる第４所定値Ｔｇｄに対応する位相値φｂとを通る関数である。トルク−位相相関関係算出部４５は、位相値φａ及び位相値φｂを通る一次関数として位相第３関数を表す。すなわち、トルク−位相相関関係算出部４５は、一次関数で表される位相第３関数Ｆφ３の傾き及び切片に係る係数を算出する。なお、本実施の形態において、第３所定値Ｔｇｃは、第１所定値Ｔｇａと同じ値であるが、異なる値としてもよい。また、第４所定値Ｔｇｄは、第２所定値Ｔｇｂと同じ値であるが、異なる値としてもよい。
【００５７】
図２に示すように、同定部４６は、振幅パラメータ及び位相パラメータを有する減速機１３の角度伝達誤差をモデル化した周期関数である以下の式（２）に係る角度伝達誤差同定関数Ｆ２の振幅パラメータＡ及び位相パラメータφを算出し、角度伝達誤差同定関数Ｆ２を用いて角度伝達誤差θateを同定する。
【００５８】
【数２】
2018202554.tif 000004
【００５９】
同定部４６は、減速機１３の角度伝達誤差の同定時に関節に作用する重力トルク値である重力トルク現在値Ｔｇｐが第１所定値Ｔｇａよりも小さいときは振幅第１関数ＦＡ１を用いて重力トルク値Ｔｇに対応する振幅パラメータを算出する。重力トルク現在値Ｔｇｐは、ロボットアーム４の姿勢等から解析的に算出される値であるが、これに代えて関節７に重力トルクを検出するためのセンサを設け、関節７に作用する重力トルク値を検出してもよい。また、同定部４６は、重力トルク現在値Ｔｇｐが第１所定値Ｔｇａよりも大きく且つ第２所定値Ｔｇｂよりも小さいときは振幅第３関数ＦＡ３を用いて重力トルク値Ｔｇに対応する振幅パラメータを算出する。本実施の形態において、同定部４６は、重力トルク現在値Ｔｇｐが第１所定値Ｔｇａ以上且つ第２所定値Ｔｇｂ以下のときは振幅第３関数ＦＡ３を用いて重力トルク値Ｔｇに対応する振幅パラメータを算出する。更に、同定部４６は、重力トルク現在値Ｔｇｐが第２所定値Ｔｇｂよりも大きいときは振幅第２関数ＦＡ２を用いて重力トルク値Ｔｇに対応する振幅パラメータを算出する。
【００６０】
また、同定部４６は、重力トルク現在値Ｔｇｐが第３所定値Ｔｇｃよりも小さいときは位相第１関数Ｆφ１を用いて重力トルク値Ｔｇに対応する位相パラメータを算出する。また、同定部４６は、重力トルク現在値Ｔｇｐが第３所定値Ｔｇｃよりも大きく且つ第４所定値Ｔｇｄよりも小さいときは位相第３関数Ｆφ３を用いて重力トルク値Ｔｇに対応する位相パラメータを算出する。本実施の形態において、同定部４６は、重力トルク現在値Ｔｇｐが第３所定値Ｔｇｃ以上且つ第４所定値Ｔｇｄ以下のときは位相第３関数Ｆφ３を用いて重力トルク値Ｔｇに対応する位相パラメータを算出する。更に、同定部４６は、重力トルク現在値Ｔｇｐが第４所定値Ｔｇｄよりも大きいときは位相第２関数Ｆφ２を用いて重力トルク値Ｔｇに対応する位相パラメータを算出する。
【００６１】
記憶部２２は、ＲＯＭ、ＲＡＭ等のメモリを有する。記憶部２２には、所定のプログラムが記憶されていて、演算部２１がこれらのプログラムを読み出して実行することにより、各種の処理が行われる。また、記憶部２２には、領域Ｒｄ１〜Ｒｄ８に係る情報が格納されている。
【００６２】
サーボアンプ２４は、指令部４１が生成した目標位置に基づきモータ１１に電流を供給する。
【００６３】
［動作例］
次に、ロボットシステム１００の動作例を説明する。
【００６４】
図６Ａ及び図６Ｂは、ロボットシステム１００の動作例を示すフローチャートである。
【００６５】
まず、図６Ａに示すように、微小領域振幅／位相算出部４２は、微小動作領域Ｒｄ１〜Ｒｄ８のそれぞれについて、微小動作領域振幅Ａｄ（Ａｄ１〜Ａｄ８）及び微小動作領域位相φｄ（φｄ１〜φｄ８）を算出する（微小領域振幅／位相算出ステップ）（ステップＳ１）。
【００６６】
次に、微小領域重力トルク値算出部４３は、微小動作領域Ｒｄ１〜Ｒｄ８のそれぞれについて、対応重力トルク値Ｔｇ（Ｔｇ１〜Ｔｇ８）を算出する（微小領域重力トルク値算出ステップ）（ステップＳ２）。
【００６７】
次に、図７に示すように、トルク−振幅相関関係算出部４４は、算出した微小動作領域振幅Ａｄ及び対応重力トルク値Ｔｇに基づいて、振幅第１関数ＦＡ１及び振幅第２関数ＦＡ２を算出する（トルク−振幅相関関係算出ステップ）（ステップＳ３）。
【００６８】
次に、図８に示すようにトルク−振幅相関関係算出部４４は、算出した振幅第１関数ＦＡ１及び振幅第２関数ＦＡ２に基づいて、振幅第３関数ＦＡ３を算出する（ステップＳ４）。
【００６９】
次に、図９に示すように、トルク−位相相関関係算出部４５は、算出した微小動作領域位相φｄ及び対応重力トルク値Ｔｇに基づいて、位相第１関数Ｆφ１及び位相第２関数Ｆφ２を算出する（トルク−位相相関関係算出ステップ）（ステップＳ５）。
【００７０】
次に、図１０に示すように、トルク−位相相関関係算出部４５は、算出した振幅第１関数Ｆφ１及び振幅第２関数Ｆφ２に基づいて、位相第３関数Ｆφ３を算出する（ステップＳ６）。
【００７１】
次に、同定部４６は、角度伝達誤差同定関数Ｆ２の振幅パラメータ及び位相パラメータを算出し、角度伝達誤差同定関数Ｆ２を用いて角度伝達誤差を同定する（同定ステップ）（ステップＳ７）。
【００７２】
このとき、図６Ｂに示すように、まず、同定部４６は、重力トルク現在値Ｔｇｐと第１所定値Ｔｇａ及び第２所定値Ｔｇｂとを比較する（ステップＳ７１）。そして、同定部４６は、重力トルク現在値Ｔｇｐが第１所定値Ｔｇａよりも小さい場合、振幅第１関数ＦＡ１を用いて重力トルク値Ｔｇに対応する振幅パラメータを算出する（ステップＳ７２）。また、同定部４６は、重力トルク現在値Ｔｇｐが第１所定値Ｔｇａ以上且つ第２所定値Ｔｇｂ以下の場合、振幅第３関数ＦＡ３を用いて重力トルク値Ｔｇに対応する振幅パラメータを算出する（ステップＳ７３）。更に、同定部４６は、重力トルク現在値Ｔｇｐが第２所定値Ｔｇｂよりも大きいときは振幅第２関数ＦＡ２を用いて重力トルク値Ｔｇに対応する振幅パラメータを算出する（ステップＳ７４）。
【００７３】
次に、同定部４６は、重力トルク現在値Ｔｇｐと第３所定値Ｔｇｃ及び第４所定値Ｔｇｄとを比較する（ステップＳ７５）。そして、同定部４６は、重力トルク現在値Ｔｇｐが第３所定値Ｔｇｃよりも小さい場合、位相第１関数Ｆφ１を用いて重力トルク値Ｔｇに対応する位相パラメータを算出する（ステップＳ７６）。また、同定部４６は、重力トルク現在値Ｔｇｐが第３所定値Ｔｇｃ以上且つ第４所定値Ｔｇｄ以下の場合、位相第３関数Ｆφ３を用いて重力トルク値Ｔｇに対応する位相パラメータを算出する（ステップＳ７７）。更に、同定部４６は、重力トルク現在値Ｔｇｐが第４所定値Ｔｇｄよりも大きい場合、位相第２関数Ｆφ２を用いて重力トルク値Ｔｇに対応する位相パラメータを算出する（ステップＳ７８）。
【００７４】
次に、同定部４６は、算出した振幅パラメータ及び位相パラメータを適用した角度伝達誤差同定関数Ｆ２を用いて角度伝達誤差を同定する（ステップＳ７９）。
【００７５】
このように、同定部４６は、重力トルク現在値Ｔｇｐが負の数値範囲である所定の数値範囲に含まれるときは振幅第１関数ＦＡ１を用いて重力トルク値Ｔｇに対応する振幅パラメータを算出する。また、同定部４６は、重力トルク現在値Ｔｇｐが負の数値範囲である所定の数値範囲に含まれるときは位相第１関数Ｆφ１を用いて重力トルク値Ｔｇに対応する位相パラメータを算出する。更に、同定部４６は、重力トルク現在値Ｔｇｐが正の数値範囲である所定の数値範囲に含まれるときは振幅第２関数ＦＡ２を用いて重力トルク値Ｔｇに対応する振幅パラメータを算出する。また、同定部４６は、重力トルク現在値Ｔｇｐが正の数値範囲である所定の数値範囲に含まれるときは位相第２関数Ｆφ２を用いて重力トルク値Ｔｇに対応する位相パラメータを算出する。
【００７６】
ところで、重力トルク値が０及びこの付近の領域において、減速機１３の角度伝達に係る特性が大きく変化し、重力トルクが正の領域と、重力トルクが負の領域とで減速機１３の角度伝達に係る特性が異なる場合がある。例えば、減速機１３が波動歯車装置の場合、重力トルク値が０となる領域において、サーキュラスプラインの歯とフレクスプラインの歯とが当接する面がウェーブジェネレータの回転方向において反対側に切り替わり、減速機１３の角度伝達に係る特性が大きく変化する場合がある。
【００７７】
しかし、本実施の形態において、ロボットシステム１００は、角度伝達誤差を同定する同定部４６が重力トルク値が正の値をとるときと負の値をとるときとで補償値を算出する基礎となる関数を切り替えるよう構成されている。したがって、重力トルク値が正の値をとるときと負の値をとるときとで減速機１３の角度伝達誤差に係る特性が大きく変化する場合であっても角度伝達誤差の補償をより精確におこなうことができる。
【００７８】
また、重力トルク値が０を跨ぐ区間においては、振幅第１関数ＦＡ１及び振幅第２関数ＦＡ２を振幅第３関数ＦＡ３が緩やかに接続し、位相第１関数Ｆφ１及び位相第２関数Ｆφ２を位相第３関数Ｆφ３が緩やかに接続しているので、減速機１３の角度伝達誤差に係る特性が急激に変化する区間（重力トルク値が０を跨ぐ区間）において、角度伝達誤差の補償を円滑におこなうことができる。
【００７９】
以上に説明したように、本発明のロボットシステム１００は、角度伝達誤差をモデル化した角度伝達誤差同定関数のパラメータ（振幅パラメータ及び位相パラメータ）と関節に作用する重力トルクとの相関関係を踏まえて角度伝達誤差同定関数Ｆ２のパラメータを設定し、角度伝達誤差を同定するよう構成されているので、関節に作用する重力トルクが変化する場合において、角度伝達誤差を精確に同定することができる。これによって、角度伝達誤差を精確に補償することできる。
【００８０】
また、重力トルク値が正の値をとるときと負の値をとるときとで角度伝達誤差同定関数Ｆ２のパラメータ（振幅パラメータ及び位相パラメータ）を算出する基礎となる関数を切り替える。これによって、角度伝達誤差の同定を更に精確におこなうことができる。
【００８１】
＜変形例＞
なお、上記実施の形態において、微小領域振幅／位相算出部４２は、角度伝達誤差から一つの周波数成分を抽出し、これに基づいて算出した角度伝達誤差同定関数を用いて角度伝達誤差を同定しているがこれに限られるものではない。これに代えて、微小領域振幅／位相算出部４２は、角度伝達誤差から複数の周波数成分を抽出し、これらに基づいて算出した各周波数成分に対応する角度伝達誤差同定関数の総和を用いて角度伝達誤差を同定してもよい。
【００８２】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び／又は機能の詳細を実質的に変更できる。
【符号の説明】
【００８３】
１  ロボット
２  制御装置
４  ロボットアーム
７  関節
９  関節駆動部
１１  モータ
１２  エンコーダ
１３  減速機
４６  同定部
１００  ロボットシステム
【図１】
2018202554.tif 000005
【図２】
2018202554.tif 000006
【図３】
2018202554.tif 000007
【図４】
2018202554.tif 000008
【図５】
2018202554.tif 000009
【図６Ａ】
2018202554.tif 000010
【図６Ｂ】
2018202554.tif 000011
【図７】
2018202554.tif 000012
【図８】
2018202554.tif 000013
【図９】
2018202554.tif 000014
【図１０】
2018202554.tif 000015