(57)【特許請求の範囲】
【請求項１】
モータの位置、速度および加速度から、前記モータと軸を介して接続され、前記モータの駆動力を伝達する伝達機構の出力トルクを前記軸の慣性力、遠心力およびコリオリ力並びに重力を用いて演算する駆動トルク演算部と、
前記駆動トルク演算部によって前記伝達機構の出力トルクとして出力された前記軸の慣性力、遠心力およびコリオリ力並びに重力のそれぞれの絶対値に、前記伝達機構の慣性力、遠心力およびコリオリ力並びに重力に応じて変動する摩擦の補正係数である補正パラメータを乗じた値を用いて、前記軸の摩擦力を補正する摩擦補正値を演算する摩擦補正値演算部を有し、前記摩擦補正値を用いて前記軸の摩擦力の推定値である摩擦推定値を演算する摩擦推定値演算部と、
を備えることを特徴とする摩擦補償装置。
【請求項２】
モータの位置、速度および加速度から、前記モータと軸を介して接続され、前記モータの駆動力を伝達する伝達機構の出力トルクを前記軸の慣性力、遠心力およびコリオリ力並びに重力を用いて演算する駆動トルク演算部と、
前記駆動トルク演算部によって前記伝達機構の出力トルクとして出力された前記軸の慣性力、遠心力およびコリオリ力並びに重力の和の絶対値に、前記伝達機構の慣性力、遠心力およびコリオリ力並びに重力に応じて変動する摩擦の補正係数である補正パラメータを乗じた値を用いて、前記軸の摩擦力を補正する摩擦補正値を演算する摩擦補正値演算部を有し、前記摩擦補正値を用いて前記軸の摩擦力の推定値である摩擦推定値を演算する摩擦推定値演算部と、
を備えることを特徴とする摩擦補償装置。
【請求項３】
前記補正パラメータを決定する補正パラメータ決定部をさらに備え、
前記補正パラメータ決定部は、前記モータの位置を用いて算出されるクーロン摩擦および粘性摩擦の和と、前記モータの電流であるモータ電流から算出される駆動トルクの実測値と、前記モータを加減速するのに必要なトルクであるモータ慣性力と、前記駆動トルク演算部から出力される前記出力トルクと、を用いて、前記補正パラメータを算出することを特徴とする請求項１または２に記載の摩擦補償装置。
【請求項４】
前記駆動トルク演算部は、前記軸の伝達機構の出力トルクに加えて、駆動方向ではない非駆動方向の力およびモーメントをさらに演算し、
前記摩擦推定値演算部は、前記駆動トルク演算部で演算される前記出力トルク、並びに前記非駆動方向の力およびモーメントに応じて、前記軸の前記摩擦補正値を演算することを特徴とする請求項１から３のいずれか１つに記載の摩擦補償装置。
【請求項５】
前記補正パラメータ決定部は、前記駆動トルクの実測値と、前記伝達機構の出力トルク、前記モータ慣性力および前記摩擦推定値の和と、の差である駆動トルク推定誤差が予め定められた値よりも小さくなるように前記補正パラメータを学習するパラメータ学習部をさらに有することを特徴とする請求項３に記載の摩擦補償装置。
【請求項６】
モータの位置、速度および加速度から、前記モータと軸を介して接続され、前記モータの駆動力を伝達する伝達機構の出力トルクを前記軸の慣性力、遠心力およびコリオリ力並びに重力を用いて演算する駆動トルク演算部と、
前記駆動トルク演算部によって前記伝達機構の出力トルクとして出力された前記軸の慣性力、遠心力およびコリオリ力並びに重力のそれぞれの絶対値を補正関数に入力して前記軸の摩擦力を補正する摩擦補正値を演算する摩擦補正値演算部を有し、前記摩擦補正値を用いて前記軸の摩擦力の推定値である摩擦推定値を演算する摩擦推定値演算部と、
前記補正関数を決定する補正関数決定部と、
を備え、
前記補正関数決定部は、前記軸の慣性力、遠心力およびコリオリ力並びに重力のそれぞれの絶対値を入力とし、出力が、前記モータの電流であるモータ電流から算出される駆動トルクの実測値と、前記伝達機構の前記出力トルク、前記モータを加減速するのに必要なトルクであるモータ慣性力並びに前記モータの位置を用いて算出されるクーロン摩擦および粘性摩擦の和と、の差である駆動トルク推定誤差と一致するような前記補正関数を学習することを特徴とする摩擦補償装置。
【請求項７】
モータの位置、速度および加速度から、前記モータと軸を介して接続され、前記モータの駆動力を伝達する伝達機構の出力トルクを前記軸の慣性力、遠心力およびコリオリ力並びに重力を用いて演算する駆動トルク演算部と、
前記駆動トルク演算部によって前記伝達機構の出力トルクとして出力された前記軸の慣性力、遠心力およびコリオリ力並びに重力の和の絶対値を補正関数に入力して前記軸の摩擦力を補正する摩擦補正値を演算する摩擦補正値演算部を有し、前記摩擦補正値を用いて前記軸の摩擦力の推定値である摩擦推定値を演算する摩擦推定値演算部と、
前記補正関数を決定する補正関数決定部と、
を備え、
前記補正関数決定部は、前記軸の慣性力、遠心力およびコリオリ力並びに重力の和の絶対値を入力とし、出力が、前記モータから得られるモータ電流から算出される駆動トルクの実測値と、前記伝達機構の前記出力トルク、前記モータを加減速するのに必要なトルクであるモータ慣性力並びに前記モータの位置を用いて算出されるクーロン摩擦および粘性摩擦の和と、の差である駆動トルク推定誤差と一致するような前記補正関数を学習することを特徴とする摩擦補償装置。
【請求項８】
請求項１から７のいずれか１つに記載の摩擦補償装置と、
前記摩擦補償装置によって演算された前記摩擦推定値と、前記モータを加減速するのに必要なトルクであるモータ慣性力と、前記伝達機構の前記出力トルクと、を加算して衝突検知用駆動トルク推定値を算出する衝突検知用トルク合算部と、
前記衝突検知用駆動トルク推定値と、前記モータから得られるモータ電流から算出される駆動トルクの実測値と、を比較してロボットの障害物への衝突の有無を判定する衝突判定部と、
を備えることを特徴とする衝突検知装置。
【請求項９】
モータ位置指令を用いて各軸モータ制御部にトルクフィードフォワード指令を出力するトルクフィードフォワード演算装置であって、
請求項１から７のいずれか１つに記載の摩擦補償装置を備えることを特徴とするトルクフィードフォワード演算装置。
【請求項１０】
ロボットプログラムにおける移動指令の動作開始地点、動作終了地点および前記ロボットプログラムで指定されている最高速度を出力するプログラム読出部と、
前記動作開始地点、前記動作終了地点および前記最高速度のデータから、前記動作開始地点、前記動作終了地点および前記最高速度のデータによる動作の代表点における加速時間および減速時間を加減速時間として算出する加減速時間決定部と、
前記動作開始地点、前記動作終了地点、前記最高速度のデータおよび前記加減速時間に基づいて予め定められた周期毎の位置指令を生成する位置指令生成部と、
前記位置指令に基づいてロボットを制御する各軸モータ制御部と、
を備え、
前記加減速時間決定部は、請求項１から７のいずれか１つに記載の摩擦補償装置を含み、前記加減速時間の演算に必要な前記摩擦推定値を算出することを特徴とするロボット制御装置。
【請求項１１】
前記位置指令生成部で生成される前記位置指令を用いて、前記トルクフィードフォワード指令を生成する請求項９に記載のトルクフィードフォワード演算装置と、
前記各軸モータ制御部で検出されたモータ電流から算出した駆動トルクと、前記衝突検知用駆動トルク推定値とを比較して、前記ロボットの前記障害物への衝突の有無の判定を行う請求項８に記載の衝突検知装置と、
をさらに備えることを特徴とする請求項１０に記載のロボット制御装置。
【請求項１２】
モータの位置、速度および加速度から、前記モータと軸を介して接続され、前記モータの駆動力を伝達する伝達機構の出力トルクを演算する駆動トルク演算部と、前記軸の摩擦力の推定値である摩擦推定値を演算する摩擦推定値演算部と、を備える摩擦補償装置における摩擦補償方法であって、
前記駆動トルク演算部が、前記モータの位置の異なる時間での差分からモータの速度を算出する工程と、
前記駆動トルク演算部が、前記モータの速度の異なる時間での差分からモータの加速度を算出する工程と、
前記駆動トルク演算部が、前記モータの位置、速度および加速度から前記伝達機構の出力側の駆動トルクとして、前記軸の慣性力、遠心力およびコリオリ力並びに重力を算出する工程と、
前記摩擦推定値演算部が、前記軸の慣性力、遠心力およびコリオリ力並びに重力のそれぞれの絶対値に、前記伝達機構の慣性力、遠心力およびコリオリ力並びに重力に応じて変動する摩擦の補正係数である補正パラメータを乗じた値を用いて、前記出力側の駆動トルクに依存する摩擦トルクを算出する工程と、
前記駆動トルク演算部が、前記出力側の駆動トルクに依存しない摩擦トルクを算出する工程と、
前記摩擦推定値演算部が、前記出力側の駆動トルクに依存する摩擦トルクと前記出力側の駆動トルクに依存しない摩擦トルクとを加算して摩擦トルク推定値を算出する工程と、
を含むことを特徴とする摩擦補償方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ロボットまたは産業機械の駆動軸の摩擦トルクを算出する摩擦補償装置、衝突検知装置、トルクフィードフォワード演算装置およびロボット制御装置並びに摩擦補償方法に関する。
【背景技術】
【０００２】
ロボットおよび産業機械を含む制御対象を駆動する際、制御対象の動特性を高精度にコントローラで演算することによって、制御対象の高速化、高機能化が実現される。ロボットおよび産業機械は、一般的に駆動軸に伝達機構である減速機構を備えており、ロボットの障害物への衝突の検出などの制御を行うためには、駆動トルクを高精度に推定することが求められている。特に、駆動軸の摩擦トルクを高精度に推定する技術が要求される。【０００３】
特許文献１には、関節を有するロボットを制御するコントローラで、その時点で実施している動作を行うために必要な関節を駆動するための駆動トルクの予測値を演算し、予測値と、実際のモータ電流から演算した関節の駆動トルクの実測値と、の差分を予め設定された判定値と比較して、ロボットの障害物への衝突を検出する技術が開示されている。特許文献１に記載の技術では、ロボットの関節に働く摩擦トルクは、モータの速度の符号に応じて決まるクーロン摩擦と、モータの速度に比例する粘性摩擦と、の和によって求まるという摩擦モデルを用いて、関節の駆動トルクの予測値を算出している。すなわち、各軸のモータの速度のみで決定する摩擦モデルを用いて、関節に働く駆動トルクを補償している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２８３２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ロボットの関節の駆動トルクを詳細に分析した結果、速度および駆動部の温度が同一である条件下においても、摩擦トルクの変動があることが判明した。すなわち、特許文献１に記載の技術のように、各軸のモータの速度のみで決定される摩擦モデルでは、上記の摩擦トルクの変動が考慮されていないため、高精度に摩擦トルクを推定できないという問題があった。【０００６】
本開示は、上記に鑑みてなされたものであって、従来に比して高精度に摩擦トルクを推定することができる摩擦補償装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本開示の摩擦補償装置は、モータの位置、速度および加速度から、モータと軸を介して接続され、モータの駆動力を伝達する伝達機構の出力トルクを軸の慣性力、遠心力およびコリオリ力並びに重力を用いて演算する駆動トルク演算部と、駆動トルク演算部によって伝達機構の出力トルクとして出力された軸の慣性力、遠心力およびコリオリ力並びに重力のそれぞれの絶対値に、伝達機構の慣性力、遠心力およびコリオリ力並びに重力に応じて変動する摩擦の補正係数である補正パラメータを乗じた値を用いて、軸の摩擦力を補正する摩擦補正値を演算する摩擦補正値演算部を有し、摩擦補正値を用いて軸の摩擦力の推定値である摩擦推定値を演算する摩擦推定値演算部と、を備える。
【発明の効果】
【０００８】
本開示にかかる摩擦補償装置は、従来に比して高精度に摩擦トルクを推定することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１による摩擦補償装置の構成の一例を模式的に示すブロック図
【図２】実施の形態１による摩擦補償装置における摩擦補正値演算部の構成の一例を模式的に示すブロック図
【図３】実施の形態２による摩擦補償装置における摩擦推定値演算部の構成の一例を模式的に示すブロック図
【図４】実施の形態３による摩擦補償装置の構成の一例を模式的に示すブロック図
【図５】実施の形態５による摩擦補償装置の構成の一例を模式的に示すブロック図
【図６】実施の形態５による摩擦補償装置における摩擦補正値演算部の構成の一例を模式的に示すブロック図
【図７】実施の形態６による摩擦補償装置における摩擦補正値演算部の構成の一例を模式的に示すブロック図
【図８】実施の形態７による摩擦補償装置における摩擦補正パラメータ決定部の構成の一例を模式的に示すブロック図
【図９】実施の形態８による摩擦補償装置の構成の一例を模式的に示すブロック図
【図１０】実施の形態８による摩擦補償装置における摩擦補正値演算部の構成の一例を模式的に示すブロック図
【図１１】実施の形態８による摩擦補償装置における摩擦補正値演算部の構成の他の例を模式的に示すブロック図
【図１２】実施の形態８によるロボットの摩擦補正値演算における摩擦補正関数決定部の構成の一例を模式的に示すブロック図
【図１３】実施の形態９による摩擦補償装置を備えた衝突検知装置の構成の一例を模式的に示すブロック図
【図１４】実施の形態１０による摩擦補償装置を備えたトルクフィードフォワード演算装置の構成の一例を示すブロック図
【図１５】実施の形態１１による摩擦補償装置を備えたロボット制御装置の構成の一例を模式的に示すブロック図
【図１６】実施の形態１１によるロボット制御装置における加減速時間決定部の構成の一例を模式的に示すブロック図
【図１７】実施の形態１２による摩擦補償装置を備えたロボット制御装置の構成の一例を模式的に示すブロック図
【図１８】摩擦補償装置の制御部の機能をハードウェアで実現した構成の一例を示す図
【図１９】摩擦補償装置の制御部の機能をソフトウェアで実現した構成の一例を示す図
【図２０】実施の形態１３による摩擦補償方法の一例を示すフローチャート
【発明を実施するための形態】
【００１０】
以下に、本開示の実施の形態にかかる摩擦補償装置、衝突検知装置、トルクフィードフォワード演算装置およびロボット制御装置並びに摩擦補償方法を図面に基づいて詳細に説明する。
【００１１】
実施の形態１．
図１は、実施の形態１による摩擦補償装置の構成の一例を模式的に示すブロック図である。実施の形態１による摩擦補償装置１０は、ロボットの制御を行うロボット制御装置の内部に設けられる。ロボットの一例は、６軸ロボットである。摩擦補償装置１０は、ロボットの各軸のモータの位置であるモータ位置から、ロボットの各軸の摩擦を推定した摩擦推定値を算出し出力する。
【００１２】
摩擦補償装置１０は、速度算出部１１と、加速度算出部１２と、駆動トルク演算部１３と、摩擦推定値演算部１４と、を備える。
【００１３】
速度算出部１１は、入力される異なる時間のモータの位置を示すモータ位置の差分を用いて、モータの速度を検出する。以下では、モータの速度は、モータ速度と称される。速度算出部１１は、モータ速度を加速度算出部１２、駆動トルク演算部１３および摩擦推定値演算部１４に出力する。
【００１４】
加速度算出部１２は、速度算出部１１から入力される異なる時間のモータ速度の差分を用いて、モータの加速度を検出する。以下では、モータの加速度は、モータ加速度と称される。加速度算出部１２は、モータ加速度を駆動トルク演算部１３に出力する。
【００１５】
駆動トルク演算部１３は、次式（１）で示されるロボットの運動方程式に基づいて、ロボットのモータの駆動力を伝達する軸の伝達機構の出力トルク、すなわち慣性力、遠心力およびコリオリ力並びに重力をそれぞれ算出する。なお、伝達機構は、軸を介してモータと接続され、モータの駆動力を出力側に伝達する機構である。駆動トルク演算部１３は、算出した各軸の伝達機構の慣性力、遠心力およびコリオリ力並びに重力を摩擦推定値演算部１４の内部の後述する摩擦補正値演算部２４に出力する。ここで、ロボットの各軸の伝達機構の出力トルクから構成されるベクトルはτとされ、各軸のモータ位置を伝達機構の出力位置に換算した各軸の位置で構成されるベクトルはｑとされる。また、モータ速度を伝達機構の出力速度に換算した各軸の速度で構成されるベクトルはｖとされ、モータ加速度を伝達機構の出力加速度に換算した各軸の加速度で構成されるベクトルはａとされる。モータ位置を伝達機構出力位置に換算した位置がｑにおける慣性力のベクトルはＭ（ｑ）ａとなり、モータ位置を伝達機構出力位置に換算した位置がｑであり、速度がｖである場合の遠心力およびコリオリ力のベクトルはｈ（ｑ，ｖ）となり、モータ位置を伝達機構出力位置に換算した位置がｑにおける重力のベクトルはｇ（ｑ）となる。
τ＝Ｍ（ｑ）ａ＋ｈ（ｑ，ｖ）＋ｇ（ｑ）  ・・・（１）
【００１６】
すなわち、駆動トルク演算部１３は、入力されるモータ位置、モータ速度およびモータ加速度から伝達機構の出力側に換算した値で構成されるベクトルｑ，ｖおよびａを算出することによって、慣性力のベクトルＭ（ｑ）ａ、遠心力およびコリオリ力のベクトルｈ（ｑ，ｖ）並びに重力のベクトルｇ（ｑ）を求めることができる。また、駆動トルク演算部１３は、これらを用いて、（１）式のように伝達機構の出力側の出力トルク、すなわち駆動トルクτを求めることができる。
【００１７】
摩擦推定値演算部１４は、駆動トルク演算部１３から入力される各軸の慣性力、遠心力およびコリオリ力並びに重力と、速度算出部１１で算出されたモータ速度と、を用いて、ロボットの各軸に作用する摩擦力の推定値である摩擦推定値を算出する。これは、ロボットのモータの速度および駆動部の温度が同一である条件下での摩擦トルクの変動は、各軸の伝達機構の出力部の慣性力、遠心力およびコリオリ力並びに重力に応じて変動する摩擦成分の影響を受けていることを見出したことにより、摩擦推定値を算出するものである。摩擦推定値演算部１４は、符号回路２１と、クーロン摩擦演算部２２と、粘性摩擦演算部２３と、摩擦補正値演算部２４と、加算器２５と、を有する。
【００１８】
符号回路２１は、速度算出部１１から出力されたモータ速度に応じた符号を出力する。符号回路２１の機能は、一例では、ｓｇｎ関数によって表すことができる。ｓｇｎ関数は、入力が負の数のときには−１を出力し、入力が０のときには０を出力し、入力が正の数のときには１を出力する関数である。
【００１９】
クーロン摩擦演算部２２は、モータ速度を符号回路２１に通した結果に、各軸のクーロン摩擦係数を乗じて当該軸のクーロン摩擦を算出する。クーロン摩擦は、モータ速度の符号に応じて決まる。
【００２０】
粘性摩擦演算部２３は、モータ速度に粘性摩擦係数を乗じて当該軸の粘性摩擦を算出する。なお、粘性摩擦が温度により変動する場合には、温度によって粘性摩擦係数の値が設定されてもよい。また、粘性摩擦が速度の１乗に比例するモデルではなく、速度の指数乗に比例するモデルとしてもよい。クーロン摩擦演算部２２および粘性摩擦演算部２３は、出力側の駆動トルクに依存しない摩擦を演算する。
【００２１】
摩擦補正値演算部２４は、駆動トルク演算部１３から入力された出力トルクまたは出力トルクの要素に応じて、各軸の摩擦力を補正する摩擦補正値を算出する。出力トルクの要素の一例は慣性力である。実施の形態１では、摩擦補正値演算部２４は、各軸の慣性力、遠心力およびコリオリ力並びに重力の絶対値と、モータ速度を符号回路２１に通した結果と、に基づいて、摩擦補正値を算出する。
【００２２】
図２は、実施の形態１による摩擦補償装置における摩擦補正値演算部の構成の一例を模式的に示すブロック図である。摩擦補正値演算部２４は、慣性力絶対値算出部１０１と、慣性力補正部１０２と、遠心コリオリ力絶対値算出部１０３と、遠心コリオリ力補正部１０４と、重力絶対値算出部１０５と、重力補正部１０６と、加算器１０７と、乗算器１０８と、を有する。
【００２３】
慣性力絶対値算出部１０１は、入力される慣性力のベクトルから各軸の慣性力の絶対値を算出する。慣性力補正部１０２は、算出された各軸の慣性力の絶対値に、補正パラメータである補正ゲインを乗じた補正慣性力を算出し、加算器１０７に出力する。
【００２４】
遠心コリオリ力絶対値算出部１０３は、入力される遠心力およびコリオリ力の和のベクトルから各軸の遠心力およびコリオリ力の和の絶対値を算出する。遠心コリオリ力補正部１０４は、算出された各軸の遠心力およびコリオリ力の絶対値に、補正パラメータである補正ゲインを乗じた補正遠心コリオリ力を算出し、加算器１０７に出力する。
【００２５】
重力絶対値算出部１０５は、入力される重力のベクトルから各軸の重力の絶対値を算出する。重力補正部１０６は、算出された各軸の重力の絶対値に、補正パラメータである補正ゲインを乗じた補正重力を算出し、加算器１０７に出力する。
【００２６】
加算器１０７は、各軸の補正慣性力、補正遠心コリオリ力および補正重力を加算し、その結果を乗算器１０８に出力する。
【００２７】
乗算器１０８は、図１の速度算出部１１で出力されたモータ速度を符号回路２１に通した値と、各軸について加算器１０７で加算した結果と、を乗じて、各軸の摩擦補正値を算出する。このように、実施の形態１では、モータ速度の符号と同じ符号を有し、各軸の補正慣性力、補正遠心コリオリ力および補正重力の和に正比例する値で摩擦力を補正するものが摩擦補正値となる。
【００２８】
図１に戻り、加算器２５は、各軸について、クーロン摩擦演算部２２から入力されるクーロン摩擦と、粘性摩擦演算部２３から入力される粘性摩擦と、摩擦補正値演算部２４から入力される摩擦補正値と、を加算し、加算した値を摩擦推定値として出力する。６軸ロボットでは、１軸から６軸のそれぞれについて摩擦推定値を算出して出力する。
【００２９】
出力された各軸の摩擦推定値は、ロボット制御装置内の他の機能処理部でロボットの制御処理の演算のために使用される。一例では、ロボットが障害物に衝突したかどうかを判定する衝突検知機能でのトルク推定値、トルクフィードフォワードの摩擦力成分、動作前に当該動作の加減速時間を算出する際の代表点での摩擦トルク、あるいは異常診断を行う際の摩擦トルク推定値として、摩擦推定値が使用される。
【００３０】
上記のような構成を有する摩擦補償装置１０は、制御部１０Ａによって構成される。
【００３１】
実施の形態１では、摩擦補償装置１０の摩擦推定値演算部１４が、ロボットの伝達機構の出力部における慣性力、遠心力およびコリオリ力並びに重力の各軸の絶対値を含む成分を摩擦補正値として算出した。また、摩擦推定値演算部１４は、モータ速度の符号に応じて決まるクーロン摩擦と、モータ速度に比例する粘性摩擦と、の和に、摩擦補正値を加算したものを、摩擦推定値として出力する。これによって、速度および駆動部の温度が同一である条件下で摩擦トルクの変動が生じた場合に、各軸の速度のみで決定される摩擦モデルに基づいて算出される摩擦トルクに比して、摩擦トルクの推定値である摩擦推定値を高精度に推定することができるという効果を有する。すなわち、伝達機構の出力部の慣性力、遠心力およびコリオリ力並びに重力に応じて変動する摩擦を高精度に推定することができる。
【００３２】
実施の形態２．
実施の形態２による摩擦補償装置１０の構成は、図１と同様である。ただし、実施の形態２による摩擦補償装置１０は、実施の形態１の摩擦補正値演算部２４の構成が異なる。そこで、以下では、実施の形態１と同一の構成については説明を省略し、実施の形態１とは異なる部分について説明する。
【００３３】
図３は、実施の形態２による摩擦補償装置における摩擦推定値演算部の構成の一例を模式的に示すブロック図である。実施の形態２では、摩擦補正値演算部２４に、ロボットの各軸の伝達機構の慣性力、遠心力およびコリオリ力並びに重力のそれぞれが入力されるのではなく、各軸の慣性力、遠心力およびコリオリ力並びに重力の和である伝達機構の駆動トルクτが入力される。摩擦補正値演算部２４は、駆動トルク絶対値算出部１１１と、駆動トルク補正部１１２と、乗算器１１３と、を有する。
【００３４】
駆動トルク絶対値算出部１１１は、入力される各軸の慣性力、遠心力およびコリオリ力並びに重力の和である伝達機構の駆動トルクの絶対値を算出する。駆動トルク補正部１１２は、算出された各軸の駆動トルクの絶対値に、補正パラメータである補正ゲインを乗じた補正駆動トルクを算出し、乗算器１１３に出力する。
【００３５】
乗算器１１３は、図１の速度算出部１１で出力されたモータ速度を符号回路２１に通した値と、各軸について駆動トルク補正部１１２から出力される補正駆動トルクと、を乗じて、各軸の摩擦補正値を算出する。このように、実施の形態２では、モータ速度の符号と同じ符号を有し、各軸の慣性力、遠心力およびコリオリ力並びに重力の絶対値の和に正比例する値で摩擦力を補正するものが摩擦補正値となる。
【００３６】
実施の形態２では、摩擦補償装置１０の摩擦補正値演算部２４が、ロボットの伝達機構の出力部における慣性力、遠心力およびコリオリ力並びに重力の各軸の絶対値の和に、補正ゲインとモータ速度の符号と同じ符号とを乗じたものを摩擦補正値として算出した。これによって、実施の形態１の場合に比して摩擦補正値の算出を簡易化することができるという効果を、実施の形態１の効果に加えて有する。
【００３７】
実施の形態３．
図４は、実施の形態３による摩擦補償装置の構成の一例を模式的に示すブロック図である。なお、上記した実施の形態と同一の構成要素には同一の符号を付し、その説明を省略する。以下では、上記した実施の形態と異なる部分について説明する。実施の形態３による摩擦補償装置１０は、摩擦補正値演算部２４で使用される補正ゲインを算出する摩擦補正パラメータ決定部３０をさらに備える。図４では、摩擦補正パラメータ決定部３０は、摩擦補償装置１０およびロボット制御装置の外部に設けられる場合が示されている。この場合、摩擦補正パラメータ決定部３０は、一例では、パーソナルコンピュータなどによって構成される。しかし、摩擦補正パラメータ決定部３０は、摩擦補償装置１０またはロボット制御装置の内部に設けられてもよい。なお、摩擦補正値演算部２４は、実施の形態１の図２の構成を有するものとする。
【００３８】
実施の形態３では、駆動トルク演算部１３は、（１）式のロボットの各軸の伝達機構の出力トルクτに加えて、次式（２）に示される各軸のモータ自身を加減速するのに必要なトルクであるベクトルτmを算出する。ただし、Ｉmはモータおよび伝達機構の高速側部品の慣性モーメントである。また、τmはモータ慣性力とも称される。
τm＝Ｉmａ  ・・・（２）
【００３９】
摩擦補正パラメータ決定部３０には、駆動トルク演算部１３から（１）式の伝達機構の出力トルクτの各要素である、慣性力、遠心力およびコリオリ力並びに重力と、（２）式のモータ慣性力τmと、が入力される。また、摩擦補正パラメータ決定部３０には、モータ位置およびモータ電流も入力される。
【００４０】
まず、摩擦補正パラメータ決定部３０は、クーロン摩擦演算部２２および粘性摩擦演算部２３と同様の方式およびパラメータを用いて、モータ位置からクーロン摩擦および粘性摩擦を演算し、その和τｆを算出する。次に、摩擦補正パラメータ決定部３０は、モータ電流から、トルク定数および減速比の情報を用いて摩擦を含めた駆動トルクの実測値τｒを算出する。慣性力のベクトル、遠心力およびコリオリ力を合成した遠心コリオリ力のベクトル並びに重力のベクトルをそれぞれτa，τb，τcとし、摩擦補正値演算部２４で使用する各軸の慣性力の絶対値に乗じる補正ゲインをＫａとし、各軸の遠心力およびコリオリ力の和の絶対値に乗じる補正ゲインをＫｂとし、各軸の重力の絶対値に乗じるゲインをＫｃとすると、次式（３）が成り立つ。
τr−τ−τm−τf＝ｙ・ｐ  ・・・（３）
【００４１】
ここで、（３）式中のベクトルｙおよびｐは、次式（４）および次式（５）によって示される。ただし、ａｂｓ（Ｘ）は、ベクトルＸの絶対値を返す関数である。
ｙ＝［ａｂｓ（τa），ａｂｓ（τb），ａｂｓ（τc）］  ・・・（４）
ｐ＝［Ｋａ，Ｋｂ，Ｋｃ］T  ・・・（５）
【００４２】
（３）式から（５）式はいずれも軸毎の式とする。摩擦補正パラメータ決定部３０は、ｎを２以上の自然数としたとき、時刻ｔ１からｔｎまでのデータを用いて摩擦補正値演算部２４に出力する（５）式の補正ゲインｐを算出する。そのためには、ｋを１以上ｎ以下の自然数とし、時刻ｔｋのときの（３）式の左辺をτ（ｋ）とし、（３）式の右辺のｙをｙ（ｋ）として、行列Ｔ，Ｙをそれぞれ次式（６）および次式（７）で定義する。そして、Ｙの疑似逆行列Ｙ+を用いることによって、次式（８）のように補正ゲインｐが算出される。
【００４３】
【数１】
0006906711.tif 000002
【００４４】
【数２】
0006906711.tif 000003
【００４５】
ｐ＝Ｙ+Ｔ  ・・・（８）
【００４６】
摩擦補正パラメータ決定部３０は、以上のように各軸について算出した補正ゲインｐの各要素、すなわち補正パラメータを摩擦補正値演算部２４の内部で使用する補正ゲインとして出力する。つまり、補正ゲインｐの要素Ｋａは、慣性力補正部１０２で使用される補正ゲインであり、慣性力補正部１０２に出力される。補正ゲインｐの要素Ｋｂは、遠心コリオリ力補正部１０４で使用される補正ゲインであり、遠心コリオリ力補正部１０４に出力される。補正ゲインｐの要素Ｋｃは、重力補正部１０６で使用される補正ゲインであり、重力補正部１０６に出力される。
【００４７】
実施の形態３では、摩擦補正パラメータ決定部３０が、モータ位置、モータ電流、伝達機構の各軸の駆動トルクおよび各軸のモータ慣性力に基づいて、摩擦補正値演算部２４で使用される補正ゲインを算出する。これによって、伝達機構の慣性力、遠心力およびコリオリ力並びに重力に応じて変動する摩擦の補正係数である補正ゲインを高精度に決定することができる。その結果、実施の形態１，２の場合に比して、摩擦推定値の精度を高めることができるという効果を有する。
【００４８】
実施の形態４．
実施の形態４による摩擦補償装置１０の構成は、実施の形態３の図４と同様である。ただし、実施の形態４では、摩擦補正パラメータ決定部３０および摩擦補正値演算部２４の機能が実施の形態３の場合とは異なる。なお、摩擦補正値演算部２４は、実施の形態２の図３と同じ構成を有する。以下では、上記した実施の形態と異なる部分について説明する。
【００４９】
補正ゲインを決定する軸の＋方向の重力が最大になる位置をθ１とし、重力が０になる位置をθ２とし、−方向の重力が最大になる位置をθ３とする。位置θ１，θ２およびθ３を低速かつ一定速で通過するようにロボットを単軸動作させ、そのときのモータ位置、モータ速度およびモータ電流を測定する。位置θ１，θ２およびθ３それぞれにおけるモータ電流から算出した駆動トルクをτ１，τ２，τ３とする。このとき、τ１およびτ３から重力最大値は（τ１−τ３）／２と算出され、クーロン摩擦と重力が最大になるときの摩擦補正値との和は（τ１＋τ３）／２と算出される。また、τ２がクーロン摩擦力となることから、重力が最大になるときの摩擦補正値は、（τ１＋τ３）／２−τ２と算出される。以上より、補正ゲインＫは、次式（９）によって算出される。
Ｋ＝（（τ１＋τ３）／２−τ２）／（（τ１−τ３）／２）  ・・・（９）
【００５０】
ここで、（９）式は、τ１＞τ３，τ２＞０となるように動作させたときの計算式である。摩擦補正パラメータ決定部３０は、（９）式で算出した補正ゲインＫの値を図３の摩擦補正値演算部２４で使用される補正ゲインとして出力する。
【００５１】
実施の形態４では、補正ゲインを決定する軸の＋方向の重力が最大になる位置をθ１とし、重力が０になる位置をθ２とし、−方向の重力が最大になる位置をθ３とし、位置θ１，θ２およびθ３を定速かつ一定速で通過するようにロボットを単軸動作させて得られる駆動トルクから、補正ゲインを算出した。これによって、伝達機構の出力トルクに応じて変動する摩擦の補正係数を、重力の作用する軸に関して高精度に決定することができるという効果を実施の形態２の効果に加えて得ることができる。
【００５２】
実施の形態５．
図５は、実施の形態５による摩擦補償装置の構成の一例を模式的に示すブロック図である。なお、上記した実施の形態と同一の構成要素には同一の符号を付し、その説明を省略する。また、以下では、上記した実施の形態と異なる部分について説明する。
【００５３】
実施の形態５による摩擦補償装置１０は、実施の形態１から４で説明した駆動トルク演算部１３に代えて、駆動トルク非駆動軸トルク演算部１５を備える。駆動トルク非駆動軸トルク演算部１５は、駆動軸のトルクに加えて、非駆動方向の力およびモーメントも算出する。また、摩擦補正値演算部２４は、駆動トルクと、非駆動方向の力およびモーメントと、から摩擦補正値を演算する。なお、ニュートン・オイラーの運動方程式を用いることによって、非駆動方向の力およびモーメントを容易に算出することができる。駆動トルク非駆動軸トルク演算部１５は、駆動トルク演算部に対応する。
【００５４】
図６は、実施の形態５による摩擦補償装置における摩擦補正値演算部の構成の一例を模式的に示すブロック図である。摩擦補正値演算部２４の構成は、実施の形態１の図２を非駆動軸について拡張したものとなっている。ここで、駆動軸をＺ軸とし、非駆動軸をＸ軸およびＹ軸とする。摩擦推定値演算部１４は、駆動軸でないＸ軸のモーメントであるトルクの補正量を算出する非駆動Ｘ軸トルク補正量算出部１２０と、駆動軸でないＹ軸のモーメントであるトルクの補正量を算出する非駆動Ｙ軸トルク補正量算出部１３０と、駆動軸であるＺ軸の駆動トルク補正量を算出する駆動トルク補正量算出部１００と、加算器１３８と、乗算器１０８と、を有する。なお、駆動軸でないＸ軸は、非駆動Ｘ軸と称され、駆動軸でないＹ軸は、非駆動Ｙ軸と称される。
【００５５】
非駆動Ｘ軸トルク補正量算出部１２０は、駆動トルク非駆動軸トルク演算部１５から入力される非駆動Ｘ軸のトルク、すなわちモーメントの慣性力、遠心力およびコリオリ力並びに重力から非駆動Ｘ軸トルク補正量を算出する。非駆動Ｘ軸トルク補正量算出部１２０は、慣性力絶対値算出部１２１と、慣性力補正部１２２と、遠心コリオリ力絶対値算出部１２３と、遠心コリオリ力補正部１２４と、重力絶対値算出部１２５と、重力補正部１２６と、加算器１２７と、を有する。
【００５６】
慣性力絶対値算出部１２１は、入力される非駆動Ｘ軸の慣性力の絶対値を算出する。慣性力補正部１２２は、算出された慣性力の絶対値に、補正パラメータである補正ゲインを乗じた補正慣性力を算出し、加算器１２７に出力する。
【００５７】
遠心コリオリ力絶対値算出部１２３は、入力される非駆動Ｘ軸の遠心力およびコリオリ力の絶対値を算出する。遠心コリオリ力補正部１２４は、算出された非駆動Ｘ軸の遠心力およびコリオリ力の絶対値に、補正パラメータである補正ゲインを乗じた補正遠心コリオリ力を算出し、加算器１２７に出力する。
【００５８】
重力絶対値算出部１２５は、入力される非駆動Ｘ軸の重力の絶対値を算出する。重力補正部１２６は、算出された非駆動Ｘ軸の重力の絶対値に、補正パラメータである補正ゲインを乗じた補正重力を算出し、加算器１２７に出力する。
【００５９】
加算器１２７は、非駆動Ｘ軸の補正慣性力、補正遠心コリオリ力および補正重力を加算して非駆動Ｘ軸の補正量を算出し、非駆動Ｘ軸の補正量を加算器１３８に出力する。
【００６０】
非駆動Ｙ軸トルク補正量算出部１３０は、駆動トルク非駆動軸トルク演算部１５から入力される非駆動Ｙ軸のトルク、すなわちモーメントの慣性力、遠心力およびコリオリ力並びに重力から非駆動Ｙ軸トルク補正量を算出する。非駆動Ｙ軸トルク補正量算出部１３０は、慣性力絶対値算出部１３１と、慣性力補正部１３２と、遠心コリオリ力絶対値算出部１３３と、遠心コリオリ力補正部１３４と、重力絶対値算出部１３５と、重力補正部１３６と、加算器１３７と、を有する。なお、非駆動Ｙ軸トルク補正量算出部１３０の各構成要素は、非駆動Ｘ軸トルク補正量算出部１２０の各構成要素と同様の機能を有する。ただし、非駆動Ｙ軸トルク補正量算出部１３０では、非駆動Ｙ軸のトルクの慣性力、遠心力およびコリオリ力並びに重力について処理を行う。
【００６１】
駆動トルク補正量算出部１００は、駆動トルク非駆動軸トルク演算部１５から入力される駆動軸のトルクの慣性力、遠心力およびコリオリ力並びに重力から駆動軸の補正量である駆動トルク補正量を算出する。駆動トルク補正量算出部１００の構成は、図２で説明したものと同様であるので、その説明を省略する。
【００６２】
加算器１３８は、非駆動Ｘ軸トルク補正量算出部１２０から出力される非駆動Ｘ軸トルク補正量と、非駆動Ｙ軸トルク補正量算出部１３０から出力される非駆動Ｙ軸トルク補正量と、駆動トルク補正量算出部１００から出力される駆動トルク補正量と、を加算し、加算した結果を乗算器１０８に出力する。
【００６３】
乗算器１０８は、図５の速度算出部１１で出力されたモータ速度を符号回路２１に通した値と、加算器１３８での加算結果と、を乗じて、摩擦補正値を算出する。
【００６４】
なお、実施の形態５の摩擦補正パラメータ決定部３０では、実施の形態３を拡張したものになっており、時刻ｔ１からｔｎまでのモータ電流およびモータ位置から（３）式から（７）式を用いて行列Ｙ，Ｔを算出し、補正ゲインＫａ，Ｋｂ，Ｋｃで構成されるベクトルｐが（８）式に示される疑似逆行列Ｙ+を用いて算出される。
【００６５】
実施の形態５の摩擦補償装置１０では、駆動トルク非駆動軸トルク演算部１５が、駆動軸のトルクに加えて、非駆動方向の力およびモーメントも算出し、摩擦補正値演算部２４は、駆動トルクと非駆動方向のモーメントとから摩擦補正値を演算する。これによって、非駆動方向の力とモーメントとに応じて変動する摩擦成分も高精度に補償することができる。つまり、非駆動方向の慣性力、遠心力およびコリオリ力並びに重力に応じて変動する摩擦を考慮して、摩擦トルクを高精度に推定することができるという効果を有する。
【００６６】
実施の形態６．
実施の形態６による摩擦補償装置１０の構成は、図５と同様である。ただし、実施の形態６による摩擦補償装置１０は、実施の形態５の摩擦補正値演算部２４および摩擦補正パラメータ決定部３０の構成が異なる。以下では、上記した実施の形態と同一の構成要素には同一の符号を付し、その説明を省略し、上記した実施の形態と異なる部分について説明する。
【００６７】
図７は、実施の形態６による摩擦補償装置における摩擦補正値演算部の構成の一例を模式的に示すブロック図である。摩擦補正値演算部２４の構成は、実施の形態２の図３を非駆動軸について拡張したものとなっている。摩擦補正値演算部２４は、非駆動Ｘ軸補正量算出部１４０と、非駆動Ｙ軸補正量算出部１５０と、駆動軸補正量算出部１６０と、加算器１６５，１６６，１６７と、乗算器１１３と、を有する。
【００６８】
非駆動Ｘ軸補正量算出部１４０は、駆動軸でないＸ軸方向の力およびモーメントによる摩擦補正量を算出する。非駆動Ｘ軸補正量算出部１４０は、力絶対値算出部１４１と、力補正部１４２と、モーメント絶対値算出部１４３と、モーメント補正部１４４と、を有する。力絶対値算出部１４１は、駆動トルク非駆動軸トルク演算部１５から入力される非駆動Ｘ軸の方向における力である非駆動Ｘ軸力の絶対値を算出する。力補正部１４２は、算出された非駆動Ｘ軸力の絶対値に、補正パラメータである補正ゲインを乗じた補正非駆動Ｘ軸力を算出し、加算器１６５に出力する。モーメント絶対値算出部１４３は、駆動トルク非駆動軸トルク演算部１５から入力される非駆動Ｘ軸の方向におけるモーメント、すなわち慣性力、遠心力およびコリオリ力並びに重力の和である非駆動Ｘ軸モーメントの絶対値を算出する。モーメント補正部１４４は、算出された非駆動Ｘ軸モーメントの絶対値に、補正パラメータである補正ゲインを乗じた補正非駆動Ｘ軸モーメントを算出し、加算器１６５に出力する。
【００６９】
非駆動Ｙ軸補正量算出部１５０は、駆動軸でないＹ軸方向の力およびモーメントによる摩擦補正量を算出する。非駆動Ｙ軸補正量算出部１５０は、力絶対値算出部１５１と、力補正部１５２と、モーメント絶対値算出部１５３と、モーメント補正部１５４と、を有する。力絶対値算出部１５１、力補正部１５２、モーメント絶対値算出部１５３およびモーメント補正部１５４の機能は、非駆動Ｙ軸方向の力またはモーメントについて演算する点を除いて、非駆動Ｘ軸補正量算出部１４０の力絶対値算出部１４１、力補正部１４２、モーメント絶対値算出部１４３およびモーメント補正部１４４の機能と同じである。力補正部１５２からは補正非駆動Ｙ軸力が出力され、モーメント補正部１５４からは、補正非駆動Ｙ軸モーメントが出力される。
【００７０】
駆動軸補正量算出部１６０は、駆動軸方向の力および駆動トルクによる摩擦補正量を算出する。駆動軸補正量算出部１６０は、力絶対値算出部１６１と、力補正部１６２と、駆動トルク絶対値算出部１１１と、駆動トルク補正部１１２と、を有する。力絶対値算出部１６１および力補正部１６２の機能は、駆動軸方向の力について演算する点を除いて、非駆動Ｘ軸補正量算出部１４０の力絶対値算出部１４１および力補正部１４２の機能と同じである。また、駆動トルク絶対値算出部１１１および駆動トルク補正部１１２は、実施の形態２で説明したものと同様である。力補正部１６２からは補正駆動軸力が出力され、駆動トルク補正部１１２からは、補正駆動軸トルクが出力される。
【００７１】
加算器１６５は、力補正部１４２から出力された補正非駆動Ｘ軸力と、モーメント補正部１４４から出力された補正非駆動Ｘ軸モーメントと、力補正部１５２から出力された補正非駆動Ｙ軸力と、を加算する。加算器１６６は、モーメント補正部１５４から出力された補正非駆動Ｙ軸モーメントと、力補正部１６２から出力された補正駆動軸力と、駆動トルク補正部１１２から出力された補正駆動軸トルクと、を加算する。加算器１６７は、加算器１６５での加算結果と、加算器１６６での加算結果と、を加算し、乗算器１１３に出力する。
【００７２】
乗算器１１３は、図５の速度算出部１１で出力されたモータ速度を符号回路２１に通した値と、加算器１６７での加算結果と、を乗じて、摩擦補正値を算出する。
【００７３】
なお、摩擦補正パラメータ決定部３０では、実施の形態３を拡張したものになっており、時刻ｔ１からｔｎまでのモータ電流およびモータ位置から（３）式から（７）式を用いて行列Ｙ，Ｔを算出し、補正ゲインＫａ，Ｋｂ，Ｋｃで構成されるベクトルｐが（８）式に示される疑似逆行列Ｙ+を用いて算出される。
【００７４】
実施の形態６の摩擦補償装置１０では、駆動トルク非駆動軸トルク演算部１５は、駆動軸の力およびトルクに加えて、非駆動方向の力およびモーメントも算出し、摩擦補正値演算部２４は、駆動軸方向および非駆動方向の力およびモーメントから摩擦補正値を演算する。これによって、非駆動方向の力とモーメントに応じて変動する摩擦を高精度に推定することができるという効果を有する。
【００７５】
実施の形態７．
実施の形態７による摩擦補償装置１０の構成は、実施の形態３の図４と同様である。ただし、実施の形態７では、駆動トルク演算部１３および摩擦補正パラメータ決定部３０の構成が実施の形態３の場合とは異なっている。以下では、上記した実施の形態と異なる部分について説明する。
【００７６】
駆動トルク演算部１３は、モータ自身を加減速するのに必要なトルク、すなわちモータ慣性力τmと、ロボットの各軸の伝達機構の慣性力、遠心力およびコリオリ力並びに重力の和である伝達機構の駆動トルクτと、を算出し、摩擦補正パラメータ決定部３０へ出力する。
【００７７】
図８は、実施の形態７による摩擦補償装置における摩擦補正パラメータ決定部の構成の一例を模式的に示すブロック図である。摩擦補正パラメータ決定部３０は、速度算出部３１と、摩擦トルク演算部３２と、モータ駆動トルク比較部３３と、パラメータ学習部３４と、を有する。
【００７８】
速度算出部３１は、入力される異なる時間のモータ位置の差分を用いてモータ速度を算出する。摩擦トルク演算部３２は、摩擦推定値演算部１４と同様の機能を有する。すなわち、摩擦トルク演算部３２は、速度算出部３１から入力されるモータ速度と、駆動トルク演算部１３から入力される伝達機構の慣性力、遠心力およびコリオリ力並びに重力と、パラメータ学習部３４から入力される補正ゲインと、を用いて、クーロン摩擦、粘性摩擦および摩擦補正値を算出する。さらに、摩擦トルク演算部３２は、クーロン摩擦、粘性摩擦および摩擦補正値を加算した摩擦トルク推定値を算出する。この摩擦トルク推定値は、上記した摩擦推定値に対応する。
【００７９】
モータ駆動トルク比較部３３は、モータ電流から算出した駆動トルクの実測値τrと、モータ慣性力τm、伝達機構の駆動トルクτおよび摩擦トルク推定値τfの和と、の差である駆動トルク推定誤差τr−（τ＋τm＋τf）を算出し、パラメータ学習部３４に出力する。
【００８０】
パラメータ学習部３４は、まず補正ゲインの初期値を摩擦トルク演算部３２に設定する。また、パラメータ学習部３４は、モータ駆動トルク比較部３３から入力される駆動トルク推定誤差が小さくなるように補正ゲインを探索し、探索した結果を摩擦トルク演算部３２に出力する。補正ゲインの探索手法の一例は、ベイズ最適化または粒子群最適化である。パラメータ学習部３４は、一例では、駆動トルク推定誤差が予め定められた範囲に収まった補正パラメータである補正ゲインを、摩擦補正値演算部２４に出力する。このとき、パラメータ学習部３４は、学習に用いた条件である補正ゲインで求めた駆動トルク推定誤差よりも小さくなる駆動トルク推定誤差となる補正ゲインを探索できた場合には、探索した補正ゲインを学習に用いた条件に類似した条件として摩擦補正値演算部２４に出力してもよい。
【００８１】
実施の形態７の摩擦補償装置１０では、駆動トルクの実測値と、モータ慣性力、伝達機構の駆動トルクおよび摩擦トルク推定値の和と、の差である駆動トルク推定誤差が小さくなる補正ゲインを探索するように学習し、学習した結果である補正ゲインを摩擦補正値演算部２４に設定した。これによって、動作に応じて摩擦トルクを高精度に補償することができる。つまり、学習に用いた条件および学習に用いた条件に類似した条件で、高精度に摩擦を推定することができるという効果を有する。
【００８２】
実施の形態８．
図９は、実施の形態８による摩擦補償装置の構成の一例を模式的に示すブロック図である。なお、上記した実施の形態と同一の構成要素には同一の符号を付し、その説明を省略する。以下では、上記した実施の形態と異なる部分について説明する。
【００８３】
実施の形態８による摩擦補償装置１０は、実施の形態３の摩擦補正パラメータ決定部３０に代えて、摩擦補正関数決定部４０を備える。また、実施の形態８による摩擦補償装置１０は、駆動トルク演算部１３および摩擦補正値演算部２４の機能が実施の形態３とは異なる。
【００８４】
駆動トルク演算部１３は、モータ自身を加減速するのに必要なトルク、すなわちモータ慣性力τmと、ロボットの各軸の伝達機構の慣性力、遠心力およびコリオリ力並びに重力の和である伝達機構の駆動トルクτと、を算出し、摩擦補正関数決定部４０へ出力する。
【００８５】
図１０は、実施の形態８による摩擦補償装置における摩擦補正値演算部の構成の一例を模式的に示すブロック図である。摩擦補正値演算部２４は、慣性力絶対値算出部１０１と、遠心コリオリ力絶対値算出部１０３と、重力絶対値算出部１０５と、駆動トルク補正量演算部１０９と、乗算器１０８と、を有する。なお、慣性力絶対値算出部１０１、遠心コリオリ力絶対値算出部１０３、重力絶対値算出部１０５および乗算器１０８は、実施の形態１の図２で説明したものと同様であるので説明を省略する。
【００８６】
駆動トルク補正量演算部１０９は、慣性力絶対値算出部１０１で算出される慣性力の絶対値と、遠心コリオリ力絶対値算出部１０３で算出される遠心コリオリ力絶対値と、重力絶対値算出部１０５で算出される重力絶対値と、を入力とする補正関数を用いて、補正駆動トルクを算出する。駆動トルク補正量演算部１０９で使用される補正関数は、後述する摩擦補正関数決定部４０によって学習された補正関数が用いられる。
【００８７】
摩擦補正値演算部２４は、他の構成を有していてもよい。図１１は、実施の形態８による摩擦補償装置における摩擦補正値演算部の構成の他の例を模式的に示すブロック図である。摩擦補正値演算部２４は、駆動トルク絶対値算出部１１１と、駆動トルク補正量演算部１１４と、乗算器１１３と、を有する。なお、駆動トルク絶対値算出部１１１および乗算器１１３は、実施の形態２の図３で説明したものと同様であるので説明を省略する。
【００８８】
図１１における駆動トルク補正量演算部１１４は、駆動トルク絶対値算出部１１１で算出される慣性力、遠心力およびコリオリ力並びに重力の和の絶対値を入力とする補正関数を用いて、補正駆動トルクを算出する。駆動トルク補正量演算部１１４で使用される補正関数は、後述する摩擦補正関数決定部４０によって学習された補正関数が用いられる。
【００８９】
図１２は、実施の形態８によるロボットの摩擦補正値演算における摩擦補正関数決定部の構成の一例を模式的に示すブロック図である。摩擦補正関数決定部４０は、速度算出部４１と、摩擦トルク演算部４２と、モータ駆動トルク比較部４３と、補正関数学習部４４と、を有する。
【００９０】
速度算出部４１は、入力される異なる時間のモータ位置の差分を用いてモータ速度を算出する。摩擦トルク演算部４２は、速度算出部４１から入力されるモータ速度と、駆動トルク演算部１３から入力される伝達機構の慣性力、遠心力およびコリオリ力並びに重力と、を用いて、クーロン摩擦および粘性摩擦を算出する。さらに、摩擦トルク演算部４２は、クーロン摩擦と粘性摩擦との和である摩擦トルクτf0を算出する。
【００９１】
モータ駆動トルク比較部４３は、モータ電流から算出した駆動トルクの実測値τrと、モータ慣性力τm、伝達機構の駆動トルクτおよび摩擦トルクτf0の和と、の差τr−（τ＋τm＋τf0）を駆動トルク推定誤差として算出し、補正関数学習部４４に出力する。
【００９２】
補正関数学習部４４は、慣性力、遠心力およびコリオリ力並びに重力のそれぞれの絶対値、または慣性力、遠心力およびコリオリ力並びに重力の和の絶対値を入力とし、出力が駆動トルク推定誤差と一致するような補正関数を学習する。すなわち、補正関数学習部４４は、駆動トルク推定誤差との誤差を小さくするように補正関数を学習する。一例では、複数の駆動トルク推定誤差との誤差のうち、駆動トルク推定誤差との誤差が最も小さいものが補正関数とされる。補正関数の学習として例えばニューラルネットワーク、多項式近似などを適用することができる。補正関数学習部４４は、学習した補正関数を摩擦補正値演算部２４に出力する。
【００９３】
実施の形態８の摩擦補償装置１０では、慣性力、遠心力およびコリオリ力並びに重力のそれぞれの絶対値、または慣性力、遠心力およびコリオリ力並びに重力の和の絶対値を入力とし、出力が駆動トルクの実測値と、モータ慣性力、伝達機構の駆動トルクおよび摩擦トルクの和と、の差である駆動トルク推定誤差と一致するように、補正関数を学習し、学習した結果である補正関数を摩擦補正値演算部２４に設定した。摩擦補正値演算部２４では、補正関数を用いて、摩擦補正値を演算した。これによって、各軸の伝達機構の出力トルクの大きさに対応して非線形に変動する摩擦成分も高精度に補償することができる。つまり、慣性力、遠心力およびコリオリ力並びに重力のそれぞれの絶対値またはそれぞれの和の絶対値と非線形な関係がある摩擦の場合でも高精度に摩擦を推定することができるという効果を有する。
【００９４】
実施の形態９．
図１３は、実施の形態９による摩擦補償装置を備えた衝突検知装置の構成の一例を模式的に示すブロック図である。実施の形態９による衝突検知装置７０は、ロボット制御装置の内部に設けられる。衝突検知装置７０は、衝突検知トルク演算部７１と、衝突判定部７３と、を備える。なお、上記した実施の形態と同一の構成要素には同一の符号を付し、その説明を省略する。また、以下では、上記した実施の形態と異なる部分について説明する。
【００９５】
衝突検知トルク演算部７１は、摩擦補償装置１０と、衝突検知用トルク合算部７２と、を備える。摩擦補償装置１０は、上記した実施の形態１から８で説明したものを用いることができるが、ここでは、実施の形態２で説明したものが適用されたものとして説明を行う。また、衝突検知トルク演算部７１と、衝突判定部７３と、は、制御部１０Ａによって構成される。
【００９６】
衝突検知トルク演算部７１には、予め定められた周期毎、一例では制御周期毎に、ロボットの各軸の位置が入力される。速度算出部１１は、入力されるロボットの各軸のモータ位置の差分から、モータ速度を算出し、加速度算出部１２は、速度算出部１１から入力されるモータ速度の差分からモータ加速度を算出する。
【００９７】
駆動トルク演算部１３は、モータ自身を加減速するのに必要なトルクであるモータ慣性力τmと、ロボットの各軸の伝達機構の慣性力、遠心力およびコリオリ力並びに重力の和である伝達機構の駆動トルクτと、を算出する。駆動トルク演算部１３は、モータ慣性力τmと伝達機構の駆動トルクτとを衝突検知用トルク合算部７２に出力し、伝達機構の駆動トルクτを摩擦推定値演算部１４に出力する。
【００９８】
摩擦推定値演算部１４は、実施の形態１，２で説明したものと同一であり、実施の形態２と同様に、摩擦補正値演算部２４では、入力された伝達機構の駆動トルクτの絶対値を算出した後に補正ゲインを乗じ、さらにモータ速度の符号と同じ符号を乗じて、その軸の摩擦補正値を算出する。また、摩擦推定値演算部１４は、クーロン摩擦および粘性摩擦を算出し、クーロン摩擦と粘性摩擦と摩擦補正値との和である摩擦推定値τfeを算出し、衝突検知用トルク合算部７２に出力する。
【００９９】
衝突検知用トルク合算部７２は、入力されたモータ慣性力τm、伝達機構の駆動トルクτおよび摩擦推定値τfeの和を衝突検知用駆動トルク推定値τcとして算出し、衝突判定部７３に出力する。
【０１００】
衝突判定部７３は、入力されたモータ電流から算出した駆動トルクの実測値τrと、衝突検知用トルク合算部７２から入力された衝突検知用駆動トルク推定値τcと、を比較し、ロボットが障害物に衝突したか否かを判定する。具体的には、駆動トルクの実測値τrと衝突検知用駆動トルク推定値τcとの差が予め定めた閾値以上の場合に、衝突判定部７３は、ロボットが障害物に衝突したと判定する。
【０１０１】
実施の形態９では、衝突検知装置７０が実施の形態１から８に記載の摩擦補償装置１０を備える。摩擦補償装置１０で算出された摩擦推定値と、モータ慣性力と、伝達機構の駆動トルクと、の和が衝突検知用駆動トルク推定値とされる。モータ電流から算出した駆動トルクの実測値と、衝突検知用駆動トルク推定値と、の差を用いて、ロボットが障害物に衝突したか否かが判定される。衝突検知用駆動トルク推定値では、各駆動軸の伝達機構の出力トルクの大きさに応じて変動する摩擦成分が高精度に補償されているので、ロボットが障害物に接触したことを高感度に検知することができるという効果を有する。
【０１０２】
実施の形態１０．
図１４は、実施の形態１０による摩擦補償装置を備えたトルクフィードフォワード演算装置の構成の一例を示すブロック図である。トルクフィードフォワード演算装置８０は、ロボット制御装置の内部に設けられる。トルクフィードフォワード演算装置８０は、摩擦補償装置１０Ｂと、トルクフィードフォワード指令生成部８１と、を備える。なお、上記した実施の形態と同一の構成要素には同一の符号を付し、その説明を省略する。また、以下では、上記した実施の形態と異なる部分について説明する。また、摩擦補償装置１０Ｂと、トルクフィードフォワード指令生成部８１と、は、制御部１０Ａによって構成される。
【０１０３】
摩擦補償装置１０Ｂは、実施の形態１から８で説明した摩擦補償装置１０と基本的には同一の構成を有するが、摩擦推定値演算部１４Ａの構成が、実施の形態１から８で説明した摩擦推定値演算部１４と異なる。摩擦推定値演算部１４Ａは、符号回路２１と、クーロン摩擦演算部２２と、粘性摩擦演算部２３と、摩擦補正値演算部２４と、加算器２５ａと、フィルタ部２６と、を備える。符号回路２１、クーロン摩擦演算部２２、粘性摩擦演算部２３および摩擦補正値演算部２４は、上記した実施の形態１から８で説明したものと同様である。ただし、ここでは、摩擦補正値演算部２４は、実施の形態２で説明したものが適用されたものとして説明を行う。
【０１０４】
加算器２５ａは、クーロン摩擦演算部２２から出力されたクーロン摩擦と、摩擦補正値演算部２４から出力された摩擦補正値と、を加算する。フィルタ部２６は、摩擦補正値とクーロン摩擦との加算結果をフィルタリングする。フィルタ部２６の一例は、移動平均フィルタ、１次遅れフィルタ、２次遅れフィルタなどの低域通過フィルタである。フィルタ部２６は、フィルタリングした結果をトルクフィードフォワード指令生成部８１に出力する。また、粘性摩擦演算部２３は、演算した粘性摩擦をトルクフィードフォワード指令生成部８１に出力する。
【０１０５】
ここで、トルクフィードフォワード演算装置８０での動作の概要を説明する。トルクフィードフォワード演算装置８０には、予め定められた周期毎、一例では制御周期毎に、ロボットの各軸のモータ位置指令が入力される。速度算出部１１は、入力されるロボットの各軸のモータ位置指令の差分から、モータ速度の指令であるモータ速度指令を算出する。加速度算出部１２は、速度算出部１１から入力されるモータ速度指令の差分からモータ加速度の指令であるモータ加速度指令を算出する。
【０１０６】
駆動トルク演算部１３は、モータ自身を加減速するのに必要なトルクであるモータ慣性力τmdと、ロボットの各軸の伝達機構の慣性力、遠心力およびコリオリ力並びに重力の和である伝達機構の駆動トルクτdと、を算出する。駆動トルク演算部１３は、伝達機構の駆動トルクτdを摩擦推定値演算部１４に出力し、モータ慣性力τmdと伝達機構の駆動トルクτdとをトルクフィードフォワード指令生成部８１に出力する。
【０１０７】
摩擦補正値演算部２４は、実施の形態２で説明したものと同一である。実施の形態２と同様に、摩擦補正値演算部２４では、入力された伝達機構の駆動トルクτdの絶対値を算出した後に補正ゲインを乗じ、さらにモータ速度の符号と同じ符号を乗じて、その軸の摩擦補正値を算出する。加算器２５ａは、算出した摩擦補正値と、クーロン摩擦演算部２２で演算されたクーロン摩擦と、を加算する。フィルタ部２６は、摩擦補正値とクーロン摩擦との加算結果をフィルタリングする。
【０１０８】
トルクフィードフォワード指令生成部８１は、摩擦補正値およびクーロン摩擦の加算結果をフィルタリングした結果と、粘性摩擦演算部２３で演算された粘性摩擦と、駆動トルク演算部１３で算出されたモータ慣性力τmdおよび伝達機構の駆動トルクτdと、を加算し、トルクフィードフォワード指令として図示しない各軸のモータ制御部に出力する。
【０１０９】
実施の形態１０のトルクフィードフォワード演算装置８０は、摩擦補償装置１０Ｂを備える。摩擦補償装置１０Ｂは、実施の形態１から８に記載の摩擦補償装置１０と同様の構成を有する。摩擦補償装置１０Ｂで算出された摩擦補正値とクーロン摩擦との和を低域通過フィルタに通した結果と、粘性摩擦と、モータ慣性力と、伝達機構の駆動トルクと、を加算したものがトルクフィードフォワード指令とされる。トルクフィードフォワード指令では、各駆動軸の伝達機構の出力トルクの大きさに応じて変動する摩擦成分が高精度に補償されているので、高精度にロボット先端の軌跡を制御することができるという効果を有する。
【０１１０】
実施の形態１１．
図１５は、実施の形態１１による摩擦補償装置を備えたロボット制御装置の構成の一例を模式的に示すブロック図である。ロボット制御装置３００は、制御対象であるロボット３３０を制御する装置である。ロボット制御装置３００は、プログラム読出部３１１と、加減速時間決定部３１２と、位置指令生成部３１３と、各軸モータ制御部３１４と、を備える。
【０１１１】
プログラム読出部３１１は、実行が指定されたロボットプログラムの各行を順次読み出して、読み出したロボットコマンドが移動指令の場合には、その移動指令の動作開始地点、動作終了地点およびプログラムで指定されている最高速度を加減速時間決定部３１２に出力する。
【０１１２】
加減速時間決定部３１２は、一例では、移動指令で指示される動作の代表点における加速時間および減速時間である加減速時間を決定する。一例では、移動指令で指示される動作を動作させるための速度台形パターンにおける加速終了地点での時刻と動作開始地点での時刻との差が加速時間に対応し、動作終了地点での時刻と減速開始地点での時刻との差が減速時間に対応する。図１６は、実施の形態１１によるロボット制御装置における加減速時間決定部の構成の一例を模式的に示すブロック図である。加減速時間決定部３１２は、代表点データ算出部３２１と、駆動トルク演算部１３と、摩擦推定値演算部１４と、代表点での加減速時間演算部３２３と、加減速時間選定部３２４と、を有する。なお、駆動トルク演算部１３と摩擦推定値演算部１４とは、実施の形態１から８で説明した摩擦補償装置１０に対応する。
【０１１３】
代表点データ算出部３２１は、プログラム読出部３１１から入力された動作開始地点、動作終了地点および最高速度のデータから当該動作の代表点における位置および速度を算出する。１回目の代表点の位置および速度の算出の際には、代表点データ算出部３２１は、予め定められた加減速時間の初期値を用いて代表点における位置および速度を算出する。代表点での加減速時間の算出を複数回繰り返す場合には、前回の加減速時間の算出結果を用いて代表点の位置および速度を算出する。代表点としては、一例では、当該動作を速度台形パターンで動作させる場合の動作開始地点、加速終了地点、減速開始地点および動作終了地点が採用される。ただし、代表点の選び方は上記に限定されるものではなく、動作の中点、加速区間の中点等が採用されてもよい。
【０１１４】
以下では、駆動トルク演算部１３、摩擦推定値演算部１４、代表点での加減速時間演算部３２３および加減速時間選定部３２４について、代表点が加速終了地点である場合を具体的に例に挙げて説明する。
【０１１５】
加速終了地点での伝達機構の出力軸側に換算したモータ位置から構成されるベクトルをｑkとし、伝達機構の出力軸側に換算したモータ速度から構成されるベクトルをｖkとする。また、指定されている最高速度を伝達機構の出力軸側に換算した速度から構成されるベクトルをＶmaxとし、各軸のモータの許容トルクを伝達機構の出力軸側に換算した値から構成されるベクトルをτmaxとする。さらに、代表点の位置および速度を算出するのに用いた加減速時間の初期値または前回の加減速時間のうち加速時間をｋｔ０とする。駆動トルク演算部１３は、次式（１０）を用いて伝達機構の出力軸側の慣性力に関連するベクトルであるＭｄｄｔを算出し、次式（１１）を用いて出力軸側の遠心力およびコリオリ力並びに重力によるトルクＴｏｒａを算出する。また、駆動トルク演算部１３は、次式（１２）を用いて、出力軸側の慣性力、遠心力およびコリオリ力並びに重力、すなわち慣性力によるトルクＴｏｒｂを算出する。
Ｍｄｄｔ＝Ｍ（ｑk）Ｖmax・・・  （１０）
Ｔｏｒａ＝ｈ（ｑk，ｖk）＋ｇ（ｑk）  ・・・（１１）
Ｔｏｒｂ＝Ｔｏｒａ＋Ｍｄｄｔ／ｋｔ０  ・・・（１２）
【０１１６】
ここで、行列Ｍ、ベクトルｈ，ｇは（１）式で説明したものと同一である。駆動トルク演算部１３は、算出したＭｄｄｔ，Ｔｏｒａを代表点での加減速時間演算部３２３に出力し、算出したＴｏｒｂを摩擦推定値演算部１４に出力する。
【０１１７】
摩擦推定値演算部１４は、ここでは、実施の形態２の図１および図３で示す摩擦推定値演算部１４と同じ構成になっている。つまり、ロボット３３０の各軸の摩擦補正値演算部２４の補正ゲインの値をＫiとし、Ｔｏｒｂの各軸成分をＴｏｒｂiとし、伝達機構の出力軸側に換算したモータ速度のベクトルｖkの各軸成分をｖkiとし、各軸のクーロン摩擦係数をＫfciとし、各軸の粘性摩擦係数をＫfviとするとき、摩擦推定値演算部１４は、次式（１３）によって各軸の摩擦推定値Ｔｏｒｆiを算出する。摩擦推定値演算部１４は、算出した各軸の摩擦推定値Ｔｏｒｆiを代表点での加減速時間演算部３２３に出力する。
Ｔｏｒｆi＝ａｂｓ（Ｔｏｒｂi）＊Ｋｉ＊ｓｇｎ（ｖki）＋Ｋfci＊ｓｇｎ（ｖki）＋Ｋfvi＊ｖki  ・・・（１３）
【０１１８】
代表点での加減速時間演算部３２３は、次式（１４）を満たす正の最小のｋｔａをｋｔａiとし、軸毎に算出したｋｔａiの最大値を当該代表点での加速時間候補ｋｔａとして加減速時間選定部３２４に出力する。ただし、Ｍｄｄｔi，ＴｏｒａiおよびτmaxiはそれぞれＭｄｄｔ，Ｔｏｒａおよびτmaxの第ｉ軸成分である。
−τmaxi≦Ｍｄｄｔi／ｋｔａ＋Ｔｏｒａi＋Ｔｏｒｆi≦τmaxi  ・・・（１４）
【０１１９】
加減速時間選定部３２４は、代表点が複数ある場合には、複数の代表点で算出した加速時間候補のうち最大の加速時間を選択する。加減速時間選定部３２４は、減速時間についても同様に、複数の代表点で算出した減速時間候補のうち最大の減速時間を選択する。加減速時間選定部３２４は、最大の加速時間および最大の減速時間の選択が規定の繰り返し回数に達した場合には、選定した加速時間と減速時間とを当該動作の加減速時間として、動作開始地点、動作終了地点および最高速度と併せて、図１５の位置指令生成部３１３に出力する。加減速時間選定部３２４は、規定の繰り返し回数に達していない場合には、選択した加速時間と減速時間とを今回の繰返し周期の加減速時間として、代表点データ算出部３２１に出力する。代表点データ算出部３２１で、加減速時間が次回の繰り返しにおける代表点データの算出に活用される。
【０１２０】
図１５に戻り、位置指令生成部３１３は、加減速時間決定部３１２から入力された動作開始地点、動作終了地点、最高速度および加減速時間に基づいて、予め定められた周期毎、一例では制御周期毎の位置指令を生成し、生成した位置指令を各軸モータ制御部３１４に出力する。
【０１２１】
各軸モータ制御部３１４は、各軸の位置が位置指令に追従するように、各軸のモータの駆動トルクをロボット３３０に出力する。
【０１２２】
なお、上記した説明では、摩擦推定値演算部１４は、実施の形態２の構成を有する場合を説明したが、実施の形態１，３から８の構成を有するものであってもよい。また、プログラム読出部３１１、加減速時間決定部３１２および位置指令生成部３１３は制御部１０Ａによって構成される。
【０１２３】
実施の形態１１では、ロボット制御装置３００は、実施の形態１から８で説明した摩擦補償装置１０を備える。ロボット制御装置３００では、各駆動軸の伝達機構の出力トルクの大きさに応じて変動する摩擦成分が高精度に補償されているので、運動方程式から算出される加速時間および減速時間をより高精度に算出することができる。また、制約を満たす範囲で、ロボット制御装置３００と、ロボット３３０の各動作を高速化すること、すなわちロボット３３０の動作時間を短縮することができるという効果を有する。
【０１２４】
実施の形態１２．
図１７は、実施の形態１２による摩擦補償装置を備えたロボット制御装置の構成の一例を模式的に示すブロック図である。なお、上記した実施の形態と同一の構成要素には同一の符号を付し、その説明を省略する。また、以下では、上記した実施の形態とは異なる部分のみ説明する。ロボット制御装置３００は、実施の形態１０のトルクフィードフォワード演算装置８０と、実施の形態９の衝突検知装置７０と、をさらに備えている。トルクフィードフォワード演算装置８０は、位置指令生成部３１３と各軸モータ制御部３１４との間に設けられる。衝突検知装置７０は、各軸モータ制御部３１４に接続されるように設けられる。なお、衝突検知装置７０、トルクフィードフォワード演算装置８０、プログラム読出部３１１、加減速時間決定部３１２および位置指令生成部３１３は制御部１０Ａによって構成される。
【０１２５】
実施の形態１２では、実施の形態１１のロボット制御装置３００にトルクフィードフォワード演算装置８０と衝突検知装置７０とを設けた。これによって、ロボット３３０が障害物に接触したことを高感度に検知するとともに、高精度にロボット３３０の先端の軌跡を制御することができるという効果を、実施の形態１１の効果に加えて得ることができる。
【０１２６】
上記の実施の形態１から８による摩擦補償装置１０、実施の形態９の衝突検知装置７０、実施の形態１０のトルクフィードフォワード演算装置８０、および実施の形態１１，１２のロボット制御装置３００の制御部１０Ａの機能は、処理回路により実現される。処理回路は、専用のハードウェアであっても、記憶装置に格納されるプログラムを実行する処理装置であってもよい。
【０１２７】
処理回路が専用のハードウェアである場合、処理回路は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、またはこれらを組み合わせたものが該当する。図１８は、摩擦補償装置の制御部の機能をハードウェアで実現した構成の一例を示す図である。処理回路５０１には、制御部１０Ａの機能を実現する論理回路５０１ａが組み込まれている。
【０１２８】
処理回路５０１が処理装置の場合、制御部１０Ａの機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。
【０１２９】
図１９は、摩擦補償装置の制御部の機能をソフトウェアで実現した構成の一例を示す図である。処理回路５０１は、プログラム５０１ｂを実行するプロセッサ５１１と、プロセッサ５１１がワークエリアに用いるランダムアクセスメモリ５１２と、プログラム５０１ｂを記憶する記憶装置５１３と、を有する。記憶装置５１３に記憶されているプログラム５０１ｂをプロセッサ５１１がランダムアクセスメモリ５１２上に展開し、実行することにより、制御部１０Ａの機能が実現される。ソフトウェアまたはファームウェアはプログラム言語で記述され、記憶装置５１３に格納される。プロセッサ５１１は、中央処理装置を例示できるがこれに限定はされない。記憶装置５１３は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）、またはＥＥＰＲＯＭ（登録商標）（Electrically  Erasable  Programmable  Read  Only  Memory）といった半導体メモリを適用できる。半導体メモリは、不揮発性メモリでもよいし揮発性メモリでもよい。また記憶装置５１３は、半導体メモリ以外にも、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスクまたはＤＶＤ（Digital  Versatile  Disc）を適用できる。なお、プロセッサ５１１は、演算結果といったデータを記憶装置５１３に出力して記憶させてもよいし、ランダムアクセスメモリ５１２を介して不図示の補助記憶装置に当該データを記憶させてもよい。プロセッサ５１１、ランダムアクセスメモリ５１２および記憶装置５１３を１チップに集積することにより、制御部１０Ａの機能をマイクロコンピュータにより実現することができる。
【０１３０】
処理回路５０１は、記憶装置５１３に記憶されたプログラム５０１ｂを読み出して実行することにより、制御部１０Ａの機能を実現する。プログラム５０１ｂは、制御部１０Ａの機能を実現する手順および方法をコンピュータに実行させるものであるとも言える。
【０１３１】
なお、処理回路５０１は、制御部１０Ａの機能の一部を専用のハードウェアで実現し、制御部１０Ａの機能の一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【０１３２】
このように、処理回路５０１は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
【０１３３】
なお、ここでは、摩擦補償装置１０の制御部１０Ａの場合を例に挙げたが、衝突検知装置７０、トルクフィードフォワード演算装置８０およびロボット制御装置３００の制御部１０Ａのハードウェア構成も同様である。
【０１３４】
実施の形態１３．
図２０は、実施の形態１３による摩擦補償方法の一例を示すフローチャートである。ここでは、摩擦補償方法における摩擦トルクを推定する手順について示している。また、以下では、図１の摩擦補償装置１０を参照して、ロボットの摩擦補償方法を説明する。
【０１３５】
まず、モータ位置が入力されると、速度算出部１１は、モータ位置の差分によってモータ速度を算出する（ステップＳ１１）。また、加速度算出部１２は、モータ速度の差分によってモータ加速度を算出する（ステップＳ１２）。算出されたモータ速度は、駆動トルク演算部１３と摩擦推定値演算部１４に出力され、算出されたモータ加速度は、駆動トルク演算部１３に出力される。
【０１３６】
次いで、伝達機構の出力側に配置される駆動トルク演算部１３は、モータ位置、モータ速度およびモータ加速度から、伝達機構の出力側の駆動トルクを算出する（ステップＳ１３）。具体的には、駆動トルク演算部１３は、モータ位置、モータ速度およびモータ加速度から、それぞれ伝達機構の出力側に換算した値で構成されるベクトルｑ，ｖ，ａを算出し、各軸の伝達機構の出力側の駆動トルクで構成されるベクトルτを（１）式にしたがって算出する。
【０１３７】
その後、出力側の駆動トルクに依存する摩擦補正値演算部２４は、出力側の駆動トルクに依存する摩擦トルクを算出する（ステップＳ１４）。具体的には、摩擦補正値演算部２４は、駆動トルクのベクトルτ、モータ速度を伝達機構の出力速度に換算した速度のベクトルｖの第ｉ軸成分をそれぞれτi、ｖiとし、駆動トルクに依存する摩擦トルクの各軸の補正係数をＫiとして、出力側の駆動トルクに依存する各軸の摩擦トルクＴｏｒｆａiを次式（１５）を用いて算出する。この摩擦トルクＴｏｒｆａiは、摩擦補正値に対応する。
Ｔｏｒｆａｉ＝ａｂｓ（τi）＊Ｋi＊ｓｇｎ（ｖi）  ・・・（１５）
【０１３８】
一方、ステップＳ１３およびＳ１４と並行して、出力側の駆動トルクに依存しないクーロン摩擦演算部２２および粘性摩擦演算部２３は、出力側の駆動トルクに依存しない摩擦トルクを算出する（ステップＳ１５）。具体的には、クーロン摩擦演算部２２、粘性摩擦演算部２３および加算器２５は、各軸のクーロン摩擦係数をＫfciとし、各軸の粘性摩擦係数をＫfviとして、次式（１６）を用いて、出力側の駆動トルクに依存しない摩擦トルクの各軸成分Ｔｏｒｆｂiを求める。
Ｔｏｒｆｂi＝Ｋfci＊ｓｇｎ（ｖi）＋Ｋfvi＊ｖi  ・・・（１６）
【０１３９】
その後、加算器２５は、出力側の駆動トルクに依存する摩擦トルクと、出力側の駆動トルクに依存しない摩擦トルクとの和から、摩擦トルク推定値を算出する（ステップＳ１６）。具体的には、加算器２５は、算出したＴｏｒｆａおよびＴｏｒｆｂを各軸成分について加算し、各軸の摩擦トルク推定値を算出する。以上で、摩擦補償方法が終了する。
【０１４０】
実施の形態１３による摩擦補償方法では、伝達機構の駆動トルクの絶対値と、モータ速度の符号と、駆動軸トルクに依存する摩擦トルクの補正係数とを乗じた摩擦補正値を、クーロン摩擦および粘性摩擦の和に加算して、摩擦トルク推定値を算出した。これによって、速度および駆動部の温度が同一である条件下での摩擦トルクの変動が生じた場合に、各軸の速度のみで決定される摩擦モデルに基づいて算出される摩擦トルクに比して、高精度で摩擦トルクを推定することができるという効果を有する。すなわち、伝達機構の出力部の慣性力、遠心力およびコリオリ力並びに重力に応じて変動する摩擦を高精度に推定することができる。
【０１４１】
以上の説明では、ロボットの駆動軸の摩擦を補償する場合を例に挙げたが、上記の実施の形態は、産業機械など駆動軸を含む制御対象全般に適用することができる。
【０１４２】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１４３】
１０，１０Ｂ  摩擦補償装置、１０Ａ  制御部、１１，３１，４１  速度算出部、１２  加速度算出部、１３  駆動トルク演算部、１４，１４Ａ  摩擦推定値演算部、１５  駆動トルク非駆動軸トルク演算部、２１  符号回路、２２  クーロン摩擦演算部、２３  粘性摩擦演算部、２４  摩擦補正値演算部、２５，２５ａ，１０７，１２７，１３７，１３８，１６５，１６６，１６７  加算器、２６  フィルタ部、３０  摩擦補正パラメータ決定部、３２，４２  摩擦トルク演算部、３３，４３  モータ駆動トルク比較部、３４  パラメータ学習部、４０  摩擦補正関数決定部、４４  補正関数学習部、７０  衝突検知装置、７１  衝突検知トルク演算部、７２  衝突検知用トルク合算部、７３  衝突判定部、８０  トルクフィードフォワード演算装置、８１  トルクフィードフォワード指令生成部、１００  駆動トルク補正量算出部、１０１，１２１，１３１  慣性力絶対値算出部、１０２，１２２，１３２  慣性力補正部、１０３，１２３，１３３  遠心コリオリ力絶対値算出部、１０４，１２４，１３４  遠心コリオリ力補正部、１０５，１２５，１３５  重力絶対値算出部、１０６，１２６，１３６  重力補正部、１０８，１１３  乗算器、１０９，１１４  駆動トルク補正量演算部、１１１  駆動トルク絶対値算出部、１１２  駆動トルク補正部、１２０  非駆動Ｘ軸トルク補正量算出部、１３０  非駆動Ｙ軸トルク補正量算出部、１４０  非駆動Ｘ軸補正量算出部、１４１，１５１，１６１  力絶対値算出部、１４２，１５２，１６２  力補正部、１４３，１５３  モーメント絶対値算出部、１４４，１５４  モーメント補正部、１５０  非駆動Ｙ軸補正量算出部、１６０  駆動軸補正量算出部、３００  ロボット制御装置、３１１  プログラム読出部、３１２  加減速時間決定部、３１３  位置指令生成部、３１４  各軸モータ制御部、３２１  代表点データ算出部、３２３  代表点での加減速時間演算部、３２４  加減速時間選定部、３３０  ロボット。
【要約】
本開示の摩擦補償装置（１０）は、モータの位置、速度および加速度から、モータと軸を介して接続され、モータの駆動力を伝達する伝達機構の出力トルクを演算する駆動トルク演算部（１３）と、軸の摩擦力の推定値である摩擦推定値を演算する摩擦推定値演算部（１４）と、を備える。摩擦推定値演算部（１４）は、駆動トルク演算部（１３）の出力に応じて、軸の摩擦力を補正する摩擦補正値を演算する摩擦補正値演算部（２４）を有する。【図１】
0006906711.tif 000004
【図２】
0006906711.tif 000005
【図３】
0006906711.tif 000006
【図４】
0006906711.tif 000007
【図５】
0006906711.tif 000008
【図６】
0006906711.tif 000009
【図７】
0006906711.tif 000010
【図８】
0006906711.tif 000011
【図９】
0006906711.tif 000012
【図１０】
0006906711.tif 000013
【図１１】
0006906711.tif 000014
【図１２】
0006906711.tif 000015
【図１３】
0006906711.tif 000016
【図１４】
0006906711.tif 000017
【図１５】
0006906711.tif 000018
【図１６】
0006906711.tif 000019
【図１７】
0006906711.tif 000020
【図１８】
0006906711.tif 000021
【図１９】
0006906711.tif 000022
【図２０】
0006906711.tif 000023