(57)【要約】【課題】ロボットの姿勢に応じて関節に発生する摩擦を補償して最適化する。【解決手段】制御装置２０は、関節を有するロボット１の姿勢と、ロボット１の姿勢に応じて関節に発生する摩擦力に関連する摩擦情報とを対応づけて記憶する記憶部２１と、ロボット１の姿勢に基づいて記憶部２１に記憶されている摩擦情報を読み出して関節の駆動を制御する制御部２２とを備える。【選択図】図１
2019181664.tif 000002
【特許請求の範囲】
【請求項１】
関節を有するロボットの姿勢と、ロボットの姿勢に応じて前記関節に発生する摩擦力に関連する摩擦情報とを対応づけて記憶する記憶部と、
ロボットの姿勢に基づいて前記記憶部に記憶されている前記摩擦情報を読み出して前記関節の駆動を制御する制御部とを備えるロボットの制御装置。
【請求項２】
ロボットの姿勢が、ロボットの先端位置の座標値に応じて設定されている請求項１に記載のロボットの制御装置。
【請求項３】
ロボットの姿勢が、前記座標値のとり得る空間を区画した複数の領域に応じて設定されている請求項２に記載のロボットの制御装置。
【請求項４】
ロボットが、ベースと、該ベースに対して所定の軸線回りに回転する可動部とを有し、
前記領域が、前記空間を、前記軸線回りの角度方向、前記軸線からの径方向および前記軸線に沿う方向にそれぞれ区画することにより形成されている請求項３に記載のロボットの制御装置。
【請求項５】
前記関節の温度を検出する温度検出部を備え、
前記記憶部が、検出された前記関節の温度と、前記摩擦情報と、ロボットの姿勢とを対応づけている請求項１から請求項４のいずれかに記載のロボットの制御装置。
【請求項６】
前記関節の駆動量を検出する駆動量検出部を備え、
前記記憶部が、前記駆動量検出部により検出された前記駆動量と、前記摩擦情報として摩擦係数とを対応づけた摩擦係数テーブルを記憶し、
前記制御部が、前記摩擦係数を用いて前記摩擦力を算出する摩擦力算出部を備える請求項１から請求項５のいずれかに記載のロボットの制御装置。
【請求項７】
関節を有するロボットの姿勢を検出する検出ステップと、
検出されたロボットの姿勢に基づいて、ロボットの姿勢に対応づけて記憶された前記関節に発生する摩擦力に関連する摩擦情報を読み出す読出ステップと、
読み出された前記摩擦情報に基づいて、前記関節の駆動を制御する制御ステップとを含むロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの制御装置およびロボットの制御方法に関する。
【背景技術】
【０００２】
ロボットの関節には、制御時に、時間や温度とともに変化する摩擦力が発生する。従来、これらの摩擦力を求めて補償することによって、ロボットの制御性能を高く維持するサーボ制御装置が知られている（例えば、特許文献１参照。）。特許文献１に記載されたサーボ制御装置は、入力された位置指令を受けて時間および温度の変化と共に変化する出力トルクと、シミュレーションによって求められた推定トルクとの差分を用いて、補償する摩擦力を算出している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１４６５７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、ロボットの関節に発生する摩擦力は、時間および温度以外の要素によっても変化する。そのため、特許文献１に記載された摩擦補償は、さらに改善の余地があった。
本発明は、ロボットの関節に発生する摩擦補償を最適化したロボットの制御装置およびロボットの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一態様は、関節を有するロボットの姿勢と、ロボットの姿勢に応じて前記関節に発生する摩擦力に関連する摩擦情報とを対応づけて記憶する記憶部と、ロボットの姿勢に基づいて前記記憶部に記憶されている前記摩擦情報を読み出して前記関節の駆動を制御する制御部とを備えるロボットの制御装置を提供する。
【０００６】
ロボットの関節に発生する摩擦力は、ロボットの姿勢に応じて変化する。本態様によれば、制御部は、関節を駆動させる際に、ロボットの姿勢に応じて関節に発生する摩擦力の補償として記憶部に記憶された摩擦情報を用いる。これにより、ロボットの姿勢に応じて関節に変化して発生する摩擦力を補償できるため、ロボットの制御性能を常に高く維持することができる。
【０００７】
上記態様においては、ロボットの姿勢が、ロボットの先端位置の座標値に応じて設定されていてもよい。
上記態様においては、ロボットの姿勢が、前記座標値のとり得る空間を区画した複数の領域に応じて設定されていてもよい。
【０００８】
この構成により、記憶部がロボットの全ての姿勢に対応した摩擦情報を記憶しなくても済むため、記憶部に必要とされる容量を低減できる。また、ロボットの姿勢が微小に変化した場合には、変化前後で同じ摩擦情報が用いられるため、制御部の処理負担を軽減できる。
【０００９】
上記態様においては、ロボットが、ベースと、該ベースに対して所定の軸線回りに回転する可動部とを有し、前記領域が、前記空間を、前記軸線回りの角度方向、前記軸線からの径方向および前記軸線に沿う方向にそれぞれ区画することにより形成されていてもよい。
【００１０】
このロボットにおいて、可動部がベースに対して軸線回りに回転して、可動部に含まれるその他の関節が駆動していない場合には、その他の関節に発生する摩擦力は変化しない。そのため、この構成により、記憶部がロボットの姿勢に対応して記憶する摩擦情報を記憶しなくても済むため、記憶部に必要とされる容量をより低減できる。また、その他の関節が駆動していない場合には、ベースと可動部とを接続する関節に対して同一の摩擦情報が用いられるため、制御部の処理負担を軽減できる。
【００１１】
上記態様においては、前記関節の温度を検出する温度検出部を備え、前記記憶部が、検出された前記関節の温度と、前記摩擦情報と、ロボットの姿勢とを対応づけていてもよい。
【００１２】
ロボットの関節に発生する摩擦力は、関節の温度の影響を受ける。この構成により、補償に用いられる摩擦力は、温度変化についても考慮されているため、摩擦情報を用いた制御が行われることによって、ロボットの制御性能をより高く維持することができる。
【００１３】
上記態様においては、前記関節の駆動量を検出する駆動量検出部を備え、前記記憶部が、前記駆動量検出部により検出された前記駆動量と、前記摩擦情報として摩擦係数とを対応づけた摩擦係数テーブルを記憶し、前記制御部が、前記摩擦係数を用いて前記摩擦力を算出する摩擦力算出部を備えてもよい。
また、摩擦係数テーブルを用いた手法以外の手法としては、機械学習の手法を使ってもよい。例えば、深層学習を応用する場合は、ロボット姿勢と温度をインプットとし、摩擦係数をアウトプットとし、深層学習モデルを構築することができる。摩擦係数をより精度よく推定できる。
【００１４】
この構成により、検出部が検出した実際の関節の駆動量を用いたフィードバック制御によって、摩擦力算出部が補償する摩擦力を算出する。そのため、より実態に即した摩擦力を用いた補償が行われるため、ロボットの制御性能をより高く維持することができる。
【００１５】
また、本発明の他の態様は、関節を有するロボットの姿勢を検出する検出ステップと、検出されたロボットの姿勢に基づいて、ロボットの姿勢に対応づけて記憶された前記関節に発生する摩擦力に関連する摩擦情報を読み出す読出ステップと、読み出された前記摩擦情報に基づいて、前記関節の駆動を制御する制御ステップとを含むロボットの制御方法を提供する。
【００１６】
本態様によれば、ロボットの姿勢に応じて関節に発生する摩擦力を補償した制御が行われることによって、ロボットの姿勢に関わらず、ロボットの制御性能を常に高く維持することができる。
【発明の効果】
【００１７】
本発明によれば、ロボットの姿勢に応じて関節に発生する摩擦力を補償して最適化することができるという効果を奏する。
【図面の簡単な説明】
【００１８】
【図１】本発明の制御装置を備えるロボットの概略斜視図である。
【図２】制御装置によるロボットの各関節のモータの制御を説明するブロック線図である。
【図３】関節の速度と、関節に発生する摩擦力との関係を表すＬｕＧｒｅモデルのグラフである。
【図４】ロボットにおける先端位置の座標値と、関節の温度と、摩擦係数とが対応づけられた摩擦係数テーブルの表である。
【図５】ロボット１の制御方法のフローチャートである。
【図６】変形例の可動領域の説明図である。
【発明を実施するための形態】
【００１９】
本発明の第１実施形態に係る制御装置２０を備えるロボット１について、図面を参照しながら以下に説明する。
図１は、ロボット１と、ロボット１を制御する制御装置２０と、ロボット１の先端の可動領域ＲＧ１とを示す概略斜視図である。図１に示されるロボット１は、６つの関節を有する垂直多関節型ロボットである。ロボット１は、床面に固定されるベース２と、ベース２に対してＪ１軸回りに回転可能に支持された旋回胴（可動部）３と、旋回胴３に対してＪ１軸に直交する水平なＪ２軸回りに回転可能に支持された第１アーム（可動部）４と、第１アーム４に対してＪ２軸に平行なＪ３軸回りに回転可能に支持された第２アーム（可動部）５と、第２アーム５に対してＪ３軸とねじれの位置にあるＪ４軸回りに回転可能に支持された第１手首要素（可動部）６と、第１手首要素６に対してＪ４軸に直交するＪ５軸回りに回転可能に支持された第２手首要素（可動部）７と、第２手首要素７に対してＪ５軸に直交するＪ６軸回りに回転可能に支持された第３手首要素（可動部）８とを備えている。
【００２０】
Ｊ１軸からＪ６軸回りの６つの関節軸は、各関節軸に対応するモータによって駆動される。各モータには、モータの回転角度（駆動量）を検出するエンコーダと、モータの温度を検出する温度センサとが配置されている。エンコーダの検出値および温度センサの検出値は、信号として制御装置２０に送信される。
【００２１】
図１に示されるように、第１モータＭ１には、エンコーダ（駆動量検出部）ＥＮ１と、温度センサ（温度検出部）ＤＴ１とが配置されている。同じように、図１には、第２モータＭ２〜第４モータＭ４が示され、これらに対応するエンコーダＥＮ２〜エンコーダＥＮ４および温度センサＤＴ２〜温度センサＤＴ４が配置されている。なお、本実施形態では、Ｊ５軸およびＪ６軸のそれぞれを回転させるモータ、エンコーダおよび温度センサは、第１手首要素６の内部に配置されているため、図１での図示が省略されている。本実施形態では、温度センサの検出値は、関節の温度として用いられる。
【００２２】
制御装置２０は、図１に図示されていないＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only
Memory）と、ＲＡＭ（Random Access Memory）と、メモリとで構成されている。ＣＰＵが、ＲＯＭに格納されたプログラムを、ＲＡＭとメモリとに展開することにより、制御装置２０は各プログラム機能を実行する。
【００２３】
制御装置２０は、ロボット１を制御するための各種情報を記憶する記憶部２１と、記憶部２１に記憶された情報を読み出してロボット１を制御する制御部２２とを備えている。
記憶部２１は、図４に示されるように、ロボット１の姿勢と、関節の温度と、ロボット１の姿勢および関節の温度に応じて各関節に発生する摩擦力に関連する摩擦情報とを対応づけている摩擦係数テーブルＴＢ１を記憶している。なお、摩擦情報および摩擦係数テーブルＴＢ１についての詳細は、後述する。
【００２４】
制御部２２は、Ｊ１軸からＪ６軸回りの各関節に対応するモータを制御することによって、これらの関節の回転角度を制御する。制御部２２は、各エンコーダの検出値を用いて、各モータのフィードバック制御を行っている。制御部２２の制御によって、各軸の回転角度に応じて変化するロボット１の姿勢が決定する。制御部２２は、ロボット１の姿勢に基づいて、摩擦係数テーブルＴＢ１の摩擦情報を読み出して各関節の駆動を制御する。
【００２５】
図２は、制御装置２０によるロボット１の各関節のモータの制御を説明するブロック線図である。図２に示されるように、制御部２２は、ロボット１の姿勢を制御するための位置指令が入力されると速度指令を出力する位置制御部２２１と、速度指令が入力されると各モータを駆動するための電流指令を出力する速度制御部２２２と、摩擦係数テーブルＴＢ１に記憶された摩擦情報を読み出して各関節に発生する推定摩擦力を算出する摩擦力算出部２２３とを備えている。推定摩擦力とは、駆動時の関節に発生すると推定される摩擦力である。
【００２６】
本実施形態では、摩擦力算出部２２３は、各関節の推定摩擦力を、下記式（１）〜（３）および図３のグラフで示されるＬｕＧｒｅモデルを用いてことによって算出する。なお、図２における「ｓ」は、ラプラス変換における微分を表している。
【００２７】
【数１】
2019181664.tif 000003
ｚ：静止摩擦力の状態関数
ｖ：速度
ｆ：摩擦力
σ０,σ１：静止摩擦係数
σ２：動摩擦係数
【００２８】
摩擦力算出部２２３は、上記式（１）〜（３）に、エンコーダによって検出された各軸の回転角度と、回転角度を微分することによって得られる回転速度と、摩擦係数テーブルＴＢ１に記憶された摩擦係数σ０，σ１，σ２を代入することによって、各関節の推定摩擦力を算出できる。
【００２９】
摩擦係数テーブルＴＢ１は、図４に示されるように、摩擦情報としての摩擦係数σ０，σ１，σ２と、ロボット１の姿勢としてのロボット１の先端位置である第３手首要素８の先端点の座標値（Ｘ，Ｙ，Ｚ）と、関節の温度とを対応づけている。なお、図４には、２つの摩擦係数σ０，σ１，σ２の内、摩擦係数σ０のみが示されているが、記憶部２１は、摩擦係数σ１の対応づけおよびσ２の対応づけについても記憶している。
【００３０】
図４に示されるように、摩擦係数σ０は、第３手首要素８の座標値における所定範囲と、各モータの温度における所定範囲とに対応づけられている。摩擦係数σ０，σ１，σ２が座標値の所定範囲に対応づけられているため、図１に示される可動領域ＲＧ１のように、摩擦係数σ０，σ１，σ２は、複数の領域に区画される。
【００３１】
図２のブロック線図および図５のフローチャートを参照しながら、制御部２２が実行する制御を以下に説明する。
図５に示されるように、初めに、各エンコーダがモータの回転角度を検出し、各温度センサがモータの温度を検出する検出ステップが行われる（ステップＳ１）。検出されたモータの回転角度からモータの回転速度が算出される（ステップＳ２）。
【００３２】
モータの回転角度およびモータの温度が摩擦係数テーブルＴＢ１に入力されると、摩擦係数σ０，σ１，σ２が決定する。摩擦力算出部２２３は、摩擦係数σ０，σ１，σ２を用いて、各関節に発生する推定摩擦力を算出する（ステップＳ３）。ステップＳ３は、請求項における読出ステップを含んでいる。なお、他の実施形態では、摩擦力算出部２２３は、図２に示されるスイッチＳＷを切り替えることによって、ステップＳ２の処理において算出されたモータの回転速度の代わりに、位置制御部２２１に入力される位置指令を微分した速度指令を用いて推定摩擦力を算出してもよい。
【００３３】
各モータは、算出された推定摩擦力を補償するための電流指令と、位置制御部２２１および速度制御部２２２によって位置指令から変換された電流指令とに基づいて駆動する制御ステップを実行する（ステップＳ４）。制御部２２は、入力される位置指令に基づき、各モータの制御を終了するか否かを判定する（ステップＳ５）。制御部２２は、位置指令が入力されると（ステップＳ５：ＮＯ）、ステップＳ１以降の処理を繰り返し、位置指令が入力されない場合には（ステップＳ５：ＹＥＳ）、制御処理を終了する。
【００３４】
このように構成された本実施形態に係るロボット１の制御装置２０の作用について以下に説明する。
ロボット１の関節には、減速機、ベアリング、シール部材の各機械部品において摩擦力が発生する。この摩擦力は、各関節に対応するモータの回転角度によって決定するロボット１の姿勢に応じて変化する。
【００３５】
本実施形態では、制御部２２が、記憶部２１にロボット１の姿勢に対応づけて記憶された摩擦係数テーブルＴＢ１を各モータの駆動制御に用いる。すなわち、制御部２２は、各関節に発生する摩擦力として、ロボット１の姿勢に対応する推定摩擦力を用いて各モータを駆動させる。これにより、ロボット１の姿勢に応じて変化する各関節の摩擦力を効果的に補償することができる。その結果、本実施形態に係る制御装置２０によれば、ロボット１を精度良く制御することができるという利点がある。
【００３６】
上記実施形態の可動領域ＲＧ１（図１）は、図６に示されるような変形例の可動領域ＲＧ２であってもよい。可動領域ＲＧ２は、Ｊ１軸を中心として、角度方向、径方向およびＪ１軸に沿う方向に区画されている。ロボット１では、Ｊ１軸に最も慣性力が影響するので、図６に示される変形例のように、Ｊ１軸の回転半径に応じて摩擦係数σ０，σ１，σ２を記憶しておいてもよい。
【００３７】
摩擦情報については、摩擦係数σ０，σ１，σ２ではなく、例えば、第３手首要素８の座標値などによって決定するロボット１の姿勢に応じて各関節に発生する推定摩擦力そのものであってもよい。
【００３８】
また、推定摩擦力を算出するために、ＬｕＧｒｅモデル以外のモデルが用いられてもよい。例えば、機械学習によって作成されたモデルが用いられてもよい。また、上記実施形態の摩擦係数テーブルＴＢ１は、温度センサによって検出された温度を用いずに、ロボット１の姿勢と摩擦係数σ０，σ１，σ２とのみを対応づけていてもよい。
また、各関節の温度として、例えば、モータのトルクが検出されることによって得られる関節の温度が用いられてもよい。
【符号の説明】
【００３９】
１  ロボット
２  ベース
３  旋回胴（可動部）
４  第１アーム（可動部）
５  第２アーム（可動部）
６  第１手首要素（可動部）
７  第２手首要素（可動部）
８  第３手首要素（可動部）
２０  制御装置
２１  記憶部
２２  制御部
２２３  摩擦力算出部
ＥＮ１，ＥＮ２，ＥＮ３，ＥＮ４  エンコーダ（駆動量検出部）
ＤＴ１、ＤＴ２，ＤＴ３，ＤＴ４  温度センサ（温度検出部）
ＴＢ１  摩擦係数テーブル
σ０，σ１，σ２  摩擦係数（摩擦情報）
Ｓ２  検出ステップ
Ｓ３  読出ステップ
Ｓ４  制御ステップ
【図１】
2019181664.tif 000004
【図２】
2019181664.tif 000005
【図３】
2019181664.tif 000006
【図４】
2019181664.tif 000007
【図５】
2019181664.tif 000008
【図６】
2019181664.tif 000009