(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】手先負荷推定装置、ロボット制御システムおよびロボットシステム
(51)【国際特許分類】
B25J 13/08 20060101AFI20241022BHJP
G05B 11/36 20060101ALI20241022BHJP
B25J 9/16 20060101ALI20241022BHJP
【FI】
B25J13/08 Z
G05B11/36 501F
B25J9/16
(21)【出願番号】P 2021064141
(22)【出願日】2021-04-05
【審査請求日】2024-02-19
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(73)【特許権者】
【識別番号】301021533
【氏名又は名称】国立研究開発法人産業技術総合研究所
(74)【代理人】
【識別番号】100118762
【氏名又は名称】高村 順
(72)【発明者】
【氏名】松岡 諒
(72)【発明者】
【氏名】前川 清石
(72)【発明者】
【氏名】梶田 秀司
(72)【発明者】
【氏名】藤井 夏樹
(72)【発明者】
【氏名】麻生 英樹
(72)【発明者】
【氏名】赤穂 昭太郎
【審査官】國武 史帆
(56)【参考文献】
【文献】特開2020-97072(JP,A)
【文献】国際公開第2020/017370(WO,A1)
【文献】特開2016-215357(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 11/36
(57)【特許請求の範囲】
【請求項1】
ロボットの手先に加えられる負荷についてのパラメータである手先負荷パラメータを推定する手先負荷推定装置であって、
前記ロボットの関節の位置、速度および加速度のうち少なくとも1つのデータである動きデータが逆動力学モデルに入力されることによって、前記逆動力学モデルを基に計算されるトルクである公称トルクの値を出力する逆動力学モデル部と、
前記動きデータと、前記関節の実トルクおよび前記公称トルクの差分とを含む学習用データに基づいて、前記逆動力学モデルのモデル化誤差の影響と、前記ロボットの特性のうち前記逆動力学モデルに含まれていない特性の影響とが除かれた前記手先負荷パラメータを学習する学習部と、
前記動きデータと、前記実トルクおよび前記公称トルクの前記差分とを含む推論用データが入力され、前記学習部による学習結果を基に前記手先負荷パラメータを推論する推論部と、
を備えることを特徴とする手先負荷推定装置。
【請求項2】
前記手先負荷推定装置には、前記関節の位置を表す位置データが入力され、
前記逆動力学モデル部、前記学習部および前記推論部には、前記位置データから求まる前記動きデータが入力されることを特徴とする請求項1に記載の手先負荷推定装置。
【請求項3】
前記位置データは、前記関節を制御するための指令値または前記関節の位置のフィードバック値であることを特徴とする請求項2に記載の手先負荷推定装置。
【請求項4】
前記差分を計算するための前記実トルクの値は、前記関節の電流データにトルク定数を乗じた値であることを特徴とする請求項1から3のいずれか1つに記載の手先負荷推定装置。
【請求項5】
前記差分を計算するための前記実トルクの値は、前記ロボットに備えられたトルクセンサによって検出されたトルクの値であることを特徴とする請求項1から3のいずれか1つに記載の手先負荷推定装置。
【請求項6】
前記手先に負荷が加えられているときにおける前記動きデータと、前記手先に負荷が加えられているときにおける前記実トルクおよび前記公称トルクを基に計算された前記差分と、前記手先負荷パラメータの正解ラベルとが前記学習部に入力されることを特徴とする請求項1から5のいずれか1つに記載の手先負荷推定装置。
【請求項7】
前記手先に負荷が加えられていないときにおける前記動きデータと、前記手先に負荷が加えられていないときにおける前記実トルクおよび前記公称トルクを基に計算された前記差分とが前記学習部に入力され、
前記推論部は、前記実トルクと、前記手先に負荷が追加されていないときにおける前記公称トルクである推定トルクとの差分に基づいて前記手先負荷パラメータを推論することを特徴とする請求項1から5のいずれか1つに記載の手先負荷推定装置。
【請求項8】
前記手先負荷パラメータが既知である負荷が前記手先に加えられているときにおける前記動きデータと、前記手先負荷パラメータが既知である負荷が前記手先に加えられているときにおける前記実トルクおよび前記公称トルクを基に計算された前記差分とが前記学習部に入力され、
前記推論部は、前記実トルクと、前記手先負荷パラメータが既知である負荷が前記手先に加えられているときにおける前記公称トルクである推定トルクとの差分に基づいて前記手先負荷パラメータを推論することを特徴とする請求項1から5のいずれか1つに記載の手先負荷推定装置。
【請求項9】
前記学習部には、前記関節の位置、速度および加速度の少なくとも1つに関係する摩擦特性の情報が入力されることを特徴とする請求項1から8のいずれか1つに記載の手先負荷推定装置。
【請求項10】
前記関節の温度を示す温度データが前記学習部に入力されることによって、前記学習部は、前記関節における摩擦特性の温度依存性による誤差を含まない前記手先負荷パラメータを学習することを特徴とする請求項1から5のいずれか1つに記載の手先負荷推定装置。
【請求項11】
前記学習部には、前記関節の位置、速度、加速度および温度の少なくとも1つに関係する摩擦特性の情報が入力されることを特徴とする請求項10に記載の手先負荷推定装置。
【請求項12】
前記動きデータを、前記手先負荷パラメータに関して線形化されたトルクの式を設定するための変数に変換する変数変換部をさらに備え、
前記学習部および前記推論部の各々には、前記変数が入力されることを特徴とする請求項1から11のいずれか1つに記載の手先負荷推定装置。
【請求項13】
前記学習部は、前記手先負荷パラメータの信頼度を示す指標を計算し、
前記推論部は、前記手先負荷パラメータの推論結果とともに前記指標を出力することを特徴とする請求項1から12のいずれか1つに記載の手先負荷推定装置。
【請求項14】
前記推論部によって求まる前記手先負荷パラメータの推定値は、前記動きデータおよび前記差分からの逐次同定によって更新される確率分布の平均値であって、
前記推定値の信頼度を示す前記指標は、前記確率分布の分散値であることを特徴とする請求項13に記載の手先負荷推定装置。
【請求項15】
請求項1から14のいずれか1つに記載の手先負荷推定装置と、
前記手先負荷推定装置から出力される手先負荷パラメータを基に、ロボットへ送る指令を生成するロボット制御装置と、
を備えることを特徴とするロボット制御システム。
【請求項16】
前記ロボット制御装置は、前記ロボットの動作中において、前記手先負荷パラメータを基に、前記ロボットの加減速度を調整することを特徴とする請求項15に記載のロボット制御システム。
【請求項17】
前記ロボット制御装置は、前記ロボットの動作中において、前記手先負荷パラメータを基に、前記ロボットの衝突を検知するためのパラメータを調整することを特徴とする請求項15または16に記載のロボット制御システム。
【請求項18】
前記手先負荷推定装置が前記ロボット制御装置の内部に備えられることを特徴とする請求項15から17のいずれか1つに記載のロボット制御システム。
【請求項19】
前記手先負荷推定装置のうち前記手先負荷パラメータを推論する推論部が前記ロボット制御装置の内部に備えられていることを特徴とする請求項15から17のいずれか1つに記載のロボット制御システム。
【請求項20】
請求項15から19のいずれか1つに記載のロボット制御システムと、
前記ロボット制御システムからの指令に従って動作するロボットと、
を備えることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットの手先に加えられる負荷についてのパラメータを推定する手先負荷推定装置、ロボット制御システムおよびロボットシステムに関する。
【背景技術】
【0002】
産業用ロボット等のロボットの制御では、高速な動作および高精度な位置決めといった性能をロボットが発揮できるように、操作対象である手先に加えられる負荷についての質量または重心位置等のパラメータを適切に設定することが求められる。以下、ロボットの手先に加えられる負荷についてのパラメータを、手先負荷パラメータと称する。
【0003】
特許文献1には、多関節のロボットについて、ロボットを動作させたときにおける各関節の状態量を基に手先負荷パラメータを同定する方法が開示されている。特許文献1の方法では、手先負荷パラメータについて線形化された式と、ロボットモデルに示される駆動トルクとに基づいて、ロボットの各関節の位置、速度、加速度、および、動作に要する電流といった状態量から手先負荷パラメータが同定される。特許文献1の方法によると、負荷の種類またはロボットの動作パターンを限定せずに、手先負荷パラメータを推定することができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の方法では、手先負荷パラメータは、負荷の推定のために取得されたデータのみに基づいて推定される。このため、特許文献1の方法の場合、ロボットモデルのモデル化誤差の影響、または、ロボットモデルに含まれていない特性の影響によって、手先負荷パラメータの推定結果には、実際の手先負荷パラメータからの誤差が生じる場合がある。このため、特許文献1にかかる従来の技術によると、手先負荷パラメータの高精度な推定結果を得ることが困難であるという問題があった。
【0006】
本開示は、上記に鑑みてなされたものであって、手先負荷パラメータの高精度な推定結果を得ることができる手先負荷推定装置を得ることを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本開示にかかる手先負荷推定装置は、ロボットの手先に加えられる負荷についてのパラメータである手先負荷パラメータを推定する手先負荷推定装置である。本開示にかかる手先負荷推定装置は、ロボットの関節の位置、速度および加速度のうち少なくとも1つのデータである動きデータが逆動力学モデルに入力されることによって、逆動力学モデルを基に計算されるトルクである公称トルクの値を出力する逆動力学モデル部と、動きデータと、関節の実トルクおよび公称トルクの差分とを含む学習用データに基づいて、逆動力学モデルのモデル化誤差の影響と、ロボットの特性のうち逆動力学モデルに含まれていない特性の影響とが除かれた手先負荷パラメータを学習する学習部と、動きデータと、実トルクおよび公称トルクの差分とを含む推論用データが入力され、学習部による学習結果を基に手先負荷パラメータを推論する推論部と、を備える。
【発明の効果】
【0008】
本開示にかかる手先負荷推定装置は、手先負荷パラメータの高精度な推定結果を得ることができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】実施の形態1にかかる手先負荷推定装置の構成を示す図
【
図2】実施の形態1にかかる手先負荷推定装置がRNNを用いて手先負荷パラメータの教師あり学習を行う場合における手先負荷推定装置の構成を示す図
【
図3】実施の形態1における学習に使用されるニューラルネットワークの構成を示す概念図
【
図4】
図3に示すニューラルネットワークを構成するLSTMユニットの例を示す図
【
図5】実施の形態1にかかる手先負荷推定装置がトルクセンサによって検出されたトルクの値を実トルクの値として用いる場合における手先負荷推定装置の構成を示す図
【
図6】実施の形態2にかかる手先負荷推定装置の構成を示す図
【
図7】実施の形態2における学習に使用されるGPRについて説明するための図
【
図8】実施の形態2における推論に使用されるヒストグラムフィルタについて説明するための図
【
図9】実施の形態3にかかる手先負荷推定装置の構成を示す図
【
図10】実施の形態4にかかる手先負荷推定装置の構成を示す図
【
図11】実施の形態5にかかる手先負荷推定装置の構成を示す図
【
図12】実施の形態6にかかる手先負荷推定装置の構成を示す図
【
図13】実施の形態7にかかる手先負荷推定装置の構成を示す図
【
図14】実施の形態7におけるベイズ線形回帰による確率分布の更新について説明するための概念図
【
図15】実施の形態8にかかるロボットシステムの構成を示す図
【
図16】実施の形態1から7にかかる手先負荷推定装置を実現するハードウェアの第1の構成例を示す図
【
図17】実施の形態1から7にかかる手先負荷推定装置を実現するハードウェアの第2の構成例を示す図
【発明を実施するための形態】
【0010】
以下に、実施の形態にかかる手先負荷推定装置、ロボット制御システムおよびロボットシステムを図面に基づいて詳細に説明する。
【0011】
実施の形態1.
図1は、実施の形態1にかかる手先負荷推定装置1の構成を示す図である。手先負荷推定装置1は、ロボットの手先に加えられる負荷についてのパラメータである手先負荷パラメータを推定する。実施の形態1において、ロボットは、産業用ロボットである。ロボットは、ロボットの可動部を動作させる複数の関節を有する。手先は、可動部の先端部分である。手先には、負荷が取り付けられる。負荷の例は、ハンドまたは工具といった着脱可能な部品である。
【0012】
手先負荷推定装置1は、入力部11、逆動力学モデル部12、学習部13、学習結果記憶部14および推論部15を有する。入力部11には、ロボットの内部の状態量のデータが、ロボットの制御周期ごとに入力される。これにより、手先負荷推定装置1は、ロボットの内部の状態量の時系列データを取得する。状態量のデータは、制御周期の整数倍ごとに入力されても良い。
【0013】
状態量のデータは、位置データと電流データとを含む。位置データは、関節の位置を表すデータである。ここでは、位置データは、関節の位置のフィードバック値とする。関節の位置とは、関節の回転方向における位置であって、例えば回転角により表される。電流データは、関節を回転させるモータに流れる電流を表すデータである。ここでは、電流データは、モータに流れる電流のフィードバック値とする。入力部11には、各関節の位置フィードバック(FB)値である位置データと、各関節の電流フィードバック(FB)値である電流データが入力される。
【0014】
学習部13による学習の際に、入力部11は、学習時の入力データとして、位置FB値の時系列データと電流FB値の時系列データとを取得する。推論部15による推論の際に、入力部11は、推論時の入力データとして、位置FB値の時系列データと電流FB値の時系列データとを取得する。
図1では、学習時における入力部11の入力データのイメージと、推論時における入力部11の入力データのイメージとを示す。
【0015】
各関節の位置θ、速度θ′および加速度θ′′は、入力部11へ入力された位置データから計算される。位置データから位置θ、速度θ′および加速度θ′′を計算する手段の図示は省略する。逆動力学モデル部12には、各関節の位置データから求まる各関節の位置θ、速度θ′および加速度θ′′のデータである動きデータが入力される。逆動力学モデルは、運動方程式を解くことによってトルクを求めるモデルである。逆動力学モデル部12は、各関節の位置θ、速度θ′および加速度θ′′が逆動力学モデルに入力されることによって、各関節の公称トルクτmdlを出力する。公称トルクτmdlは、関節についての運動方程式から求まるトルクである。逆動力学モデルは、事前に手先負荷推定装置1に内蔵される。
【0016】
逆動力学モデル部12は、運動方程式を計算する際に、事前に設定された公称パラメータを参照する。公称パラメータとしては、ロボットの各リンクの質量、重心位置または慣性テンソルといったパラメータが設定される。公称パラメータには、ロボットの設計時の値を使用できる。または、公称パラメータには、位置データおよび電流データが取得されるロボットにより事前に同定された値を使用しても良い。
【0017】
学習部13による学習の際に、逆動力学モデル部12は、学習時の入力データから得られた位置θ、速度θ′および加速度θ′′を基に公称トルクτ
mdlを計算する。推論部15による推論の際に、逆動力学モデル部12は、推論時の入力データから得られた位置θ、速度θ′および加速度θ′′を基に公称トルクτ
mdlを計算する。なお、
図1では、学習時のデータフローと推論時のデータフローとを分けて示す都合上、逆動力学モデル部12を2つに分けて示す。
【0018】
実トルクτrealは、入力部11へ入力された電流データにトルク定数を乗じることによって求まる。すなわち、手先負荷推定装置1は、電流データにトルク定数を乗じた値を実トルクのτreal値として用いる。手先負荷推定装置1は、実トルクτrealと、逆動力学モデル部12から出力された公称トルクτmdlとの差分τreal-τmdlを計算する。
【0019】
学習部13には、学習用データとして、学習時の入力データから得られた動きデータである各関節の位置θ、速度θ′および加速度θ′′と、学習時の入力データに基づく各関節の差分τreal-τmdlとが入力される。学習部13には、各関節についての学習用データが入力される。学習部13は、逆動力学モデルのモデル化誤差の影響と、ロボットの特性のうち逆動力学モデルに含まれていない特性の影響とが除かれた手先負荷パラメータを、学習用データを用いて学習する。以下、ロボットの特性のうち逆動力学モデルに含まれていない特性を、モデル外特性と称する。学習部13は、学習結果を学習結果記憶部14に保存する。
【0020】
推論部15には、推論用データとして、推論時の入力データから得られた動きデータである各関節の位置θ、速度θ′および加速度θ′′と、推論時の入力データに基づく各関節の差分τ
real-τ
mdlとが入力される。推論部15には、各関節についての推論用データが入力される。また、推論部15は、学習部13による学習結果を学習結果記憶部14から読み出す。推論部15は、学習部13による学習結果を基に、手先負荷パラメータを推定する。
図1に示す構成において、手先負荷推定装置1は、学習部13における学習方法として任意の方法を適用することができる。手先負荷パラメータは、負荷の質量、負荷の重心位置、および負荷の慣性テンソルの各パラメータのうち少なくとも1つである。なお、逆動力学モデル部12、学習部13および推論部15の各々へ入力される動きデータは、位置θ、速度θ′および加速度θ′′の全てについてのデータに限られず、位置θ、速度θ′および加速度θ′′のうち少なくとも1つのデータであれば良い。
【0021】
推論部15は、推論用データとして、ロボットの動作開始直後における位置FB値に基づいた動きデータと、ロボットの動作開始直後における電流FB値に基づいた差分τreal-τmdlとを使用する。これにより、手先負荷推定装置1は、ロボットが動作を開始したときから早い時点において手先負荷パラメータを推定することができる。また、ロボットが動作を開始したときから早い時点において、各関節を制御するための指令値に手先負荷パラメータの推定結果を反映させることが可能となる。
【0022】
次に、学習方法の具体的な例について説明する。ここでは、RNN(Recurrent Neural Network)を用いて手先負荷パラメータの教師あり学習を行う場合について説明する。
図2は、実施の形態1にかかる手先負荷推定装置1がRNNを用いて手先負荷パラメータの教師あり学習を行う場合における手先負荷推定装置1の構成を示す図である。
【0023】
図2に示す手先負荷推定装置1の学習部13aには、学習用データとして、各関節の位置θ、速度θ′および加速度θ′′と、学習時の入力データに基づく各関節の差分τ
real-τ
mdlとが入力される。また、学習部13aには、教師信号が入力される。教師信号は、手先負荷パラメータの正解ラベルである。正解ラベルは、逆動力学モデルのモデル化誤差とモデル外特性とによる誤差を含まない手先負荷パラメータである。学習部13aは、位置θ、速度θ′および加速度θ′′と差分τ
real-τ
mdlとの入力に対する出力が正解ラベルに一致するようなニューラルネットワークを構築し、学習結果記憶部14aに学習結果を保存する。
【0024】
RNNの例としては、Elman/Jordan net、LSTM(Long Short Term Memory)、GRU(Gated Recurrent Unit)などがあり、いずれを用いても良い。実施の形態1では、LSTMを用いる場合を例に挙げて説明する。
【0025】
図3は、実施の形態1における学習に使用されるニューラルネットワークの構成を示す概念図である。ニューラルネットワークは、入力層21、中間層22および出力層23を備える。入力層21は、入力されるデータの要素の数、すなわち入力数に応じた数のニューロン24を備える。
図3では入力層21における一番上のニューロン24にのみ符号を付しているが、入力層21において符号を省略した丸もニューロン24である。
図3ではニューロン24の数を3としているが、ニューロン24の数は3に限定されない。
【0026】
中間層22は、複数のニューロン25を備える。各ニューロン25は、LSTMユニットである。
図3では中間層22における一番上のニューロン25にのみ符号を付しているが、中間層22において符号を省略した二重丸もニューロン25である。また、
図3では中間層を1層としているが、中間層は2層以上でも良い。
図3ではニューロン25の数を5としているが、ニューロン25の数は5に限定されない。
【0027】
出力層23は、出力されるデータの要素の数、すなわち出力数に応じた数のニューロン26を備える。
図3では出力層23における一番上のニューロン26にのみ符号を付しているが、出力層23において符号を省略した丸もニューロン26である。
図3ではニューロン26の数を3としているが、ニューロン26の数は3に限定されない。
【0028】
入力層21は、入力されたデータを中間層22へ出力する。詳細には、各ニューロン24は、入力されたデータを中間層22の各ニューロン25へ出力する。各ニューロン24は、入力された値に重みを乗算してから中間層22の各ニューロン25へ出力する。中間層22の各ニューロン25は、LSTMの処理を行い、処理結果を出力層23の各ニューロン26へ出力する。出力層23の各ニューロン26は、中間層22の各ニューロン25から出力されたデータを加算し、加算結果を出力する。出力層23の各ニューロン26は、中間層22の各ニューロン25から出力されたデータに重みを乗算し、重みを乗算した結果を加算する。
【0029】
RNNにおいて、入力値を要素とするベクトルをxt、中間層22の出力値を要素とするベクトルをhtとした場合に、ベクトルhtは、次の式(1)で表すことができる。tは、制御周期を単位として離散化された時刻であって、何番目の制御周期であるかを示す整数である。ベクトルxtの次元をM、ベクトルhtの次元をNとするとき、Wは、N×Mの次元の線形変換行列であり、Rは、N×Nの次元の線形変換行列であり、bは、バイアスベクトルである。g(・)は、活性化関数を示す。
【0030】
【0031】
xt
1,xt
2,xt
3は、ベクトルxtの要素である入力値とする。ht
1,ht
2,ht
3,ht
4,ht
5は、ベクトルhtの要素である出力値とする。yt
1,yt
2,yt
3は、ベクトルytの要素である出力値とする。ベクトルytは、出力層23の出力値を要素とするベクトルとする。
【0032】
図4は、
図3に示すニューラルネットワークを構成するLSTMユニットの例を示す図である。
図4に示す構成例では、LSTMユニットでは、以下の式(2)-(7)に示す計算が行われる。
【0033】
【0034】
Wf,Wi,Wz,Woは、N×Mの次元の線形変換行列であり、Rf,Ri,Rz,Roは、N×Nの次元の線形変換行列であり、bf,bi,bz,boは、バイアスベクトルである。これらは、学習部13aによる学習により決定される。σ(・)は、活性化関数として使用されるシグモイド関数である。tanh(・)は、活性化関数として使用されるハイパボリックタンジェント関数を示す。
【0035】
実施の形態1において、入力層21には、位置θ、速度θ′、加速度θ′′および差分τreal-τmdlの各データが入力される。ベクトルxtは、位置θ、速度θ′、加速度θ′′および差分τreal-τmdlの各値を要素とするベクトルである。6軸の垂直多関節ロボットの場合、ベクトルxtの次元は24である。入力されるデータは、ロボットの全ての関節のデータに限られず、一部の関節のデータであっても良い。入力されるデータは、ロボットの全ての関節のうち動作中の関節のデータのみなどとしても良い。学習部13aは、入力されるデータを一部の関節のデータのみとすることによって、ベクトルxtの次元を減少させても良い。
【0036】
実施の形態1において、出力層23は、位置θ、速度θ′、加速度θ′′および差分τreal-τmdlのデータから推定された手先負荷パラメータの値を出力する。ベクトルytは、時刻tにおけるデータから推定された手先負荷パラメータの各値を要素とするベクトルである。手先負荷パラメータは、負荷の質量、負荷の重心を示すXYZ座標、慣性テンソルの対角成分Ixx,Iyy,Izz、および慣性テンソルの非対角成分Ixy,Iyz,Izxといったパラメータである。これらのパラメータの全てを推定する場合、ベクトルytの次元は10である。学習部13aは、出力されるデータをこれらのパラメータのうちの一部のパラメータのデータのみとすることによって、ベクトルytの次元を減少させても良い。
【0037】
学習部13aは、中間層22にLSTMユニットを適用することによって、時系列データの過去の値に依存する特徴量を抽出可能とするニューラルネットワークを構築する。また、学習部13aは、学習用データの入力に対する出力が手先負荷パラメータの正解値に一致するように、各ニューロン24,25,26の重み係数を調整する。これにより、学習部13aは、モデル化誤差とモデル外特性との影響を吸収可能なRNNの学習済モデルを生成することができる。学習結果記憶部14aは、学習結果である学習済モデルを記憶する。
【0038】
推論部15aは、学習結果記憶部14aからRNNの学習済モデルを読み出す。推論部15aでは、推論用データである位置θ、速度θ′、加速度θ′′および差分τreal-τmdlの各データが学習済モデルへ入力される。推論部15aは、入力に対する学習済モデルの出力を、手先負荷パラメータの推定結果として出力する。
【0039】
実施の形態1によると、手先負荷推定装置1は、逆動力学モデルのモデル化誤差の影響とモデル外特性の影響とが除かれた手先負荷パラメータを学習し、学習結果を基に手先負荷パラメータを推論する。手先負荷推定装置1は、モデル化誤差の影響とモデル外特性の影響とによる誤差が低減された手先負荷パラメータを推定可能であることによって、ロボットの動作開始直後における手先負荷パラメータの高精度な推定が可能となる。これにより、手先負荷推定装置1は、手先負荷パラメータの高精度な推定結果を得ることができるという効果を奏する。
【0040】
位置データは、各関節の位置のフィードバック値としたが、これに限定されない。位置データは、各関節を制御するための指令値であっても良い。手先負荷推定装置1は、ロボット制御装置から指令値を取得する。
【0041】
手先負荷推定装置1は、電流データにトルク定数を乗じた値を実トルクのτrealの値として用いることとしたが、これに限定されない。手先負荷推定装置1は、ロボットに備えられたトルクセンサによって検出されたトルクの値を、実トルクτrealの値として用いても良い。
【0042】
図5は、実施の形態1にかかる手先負荷推定装置1がトルクセンサ27によって検出されたトルクの値を実トルクの値として用いる場合における手先負荷推定装置1の構成を示す図である。トルクセンサ27は、ロボットの手先に実際に加わっているトルクを検出し、検出値を出力する。
図5に示す手先負荷推定装置1では、
図1に示す手先負荷推定装置1の電流データの入力とトルク定数の乗算とに代えて、トルクセンサ27からの検出値が入力される。
図5における「トルク出力」は、トルクセンサ27から出力される検出値を表す。
【0043】
学習部13による学習の際に、入力部11は、学習時の入力データとして、トルクの検出値を取得する。推論部15による推論の際に、入力部11は、推論時の入力データとして、トルクの検出値を取得する。手先負荷推定装置1は、トルクの検出値である実トルクτ
realと、逆動力学モデル部12から出力された公称トルクτ
mdlとの差分τ
real-τ
mdlを計算する。この場合も、手先負荷推定装置1は、手先負荷パラメータの高精度な推定結果を得ることができる。
図2に示す手先負荷推定装置1においても、トルクの検出値を、実トルクτ
realの値として用いても良い。
【0044】
学習部13aが用いるニューラルネットワークはRNNとしたが、これに限定されない。学習部13aは、フィードフォワード型、すなわち順伝搬型のニューラルネットワークを用いても良い。すなわち、学習部13aは、時刻tの中間層22の出力を再帰的に次の時刻の中間層22への入力とするニューラルネットワークではなく、各関節の位置θ、速度θ′加速度θ′′および差分τreal-τmdlの時系列データの入力のみによって出力が決まるニューラルネットワークを用いて、手先負荷パラメータの教師あり学習を行っても良い。この場合、学習部13aは、時刻tのデータを取得するごとにニューラルネットワークに逐次データを入力するのではなく、あらかじめ定められたバッチサイズのデータが蓄積されてからニューラルネットワークにデータを入力する。
【0045】
実施の形態1では、学習部13,13aは、モデル化誤差の影響とモデル外特性の影響とが除かれた手先負荷パラメータを学習する。すなわち、学習部13,13aは、手先負荷パラメータの学習と、手先負荷パラメータに対応するトルクの誤差の学習とを、1つのニューラルネットワークによってまとめて行う。学習部13,13aは、手先負荷パラメータを学習するニューラルネットワークと、トルクの誤差を学習するニューラルネットワークとを分けても良い。この場合、手先負荷パラメータを学習するニューラルネットワークは、位置θ、速度θ′、加速度θ′′および差分τreal-τmdlが入力されることによって出力される手先負荷パラメータが正解ラベルに一致するように構築される。トルクの誤差を学習するニューラルネットワークは、位置θ、速度θ′、加速度θ′′および手先負荷パラメータが入力されることによって出力されるトルク誤差が正解ラベルである差分τreal-τmdlに一致するように構築される。手先負荷推定装置1は、手先負荷パラメータの推論結果を、トルク誤差の推論結果を基に補正する。この場合も、手先負荷推定装置1は、モデル化誤差の影響とモデル外特性の影響とが除かれた手先負荷パラメータを推定可能とし、手先負荷パラメータの高精度な推定結果を得ることができる。
【0046】
実施の形態2.
実施の形態2では、GPR(Gaussian Process Regression)を用いて、手先に負荷が加えられていないときのデータを用いて学習を行う場合について説明する。以下、手先に負荷が加えられていないことを、無負荷と称する。
図6は、実施の形態2にかかる手先負荷推定装置2の構成を示す図である。実施の形態2では、実施の形態1と同一の構成要素には同一の符号を付し、実施の形態1とは異なる構成について主に説明する。
【0047】
手先負荷推定装置2は、入力部11、逆動力学モデル部12,12b、学習部13b、学習結果記憶部14bおよび推論部15bを有する。学習部13bによる学習の際に、逆動力学モデル部12は、公称パラメータが設定された逆動力学モデルを基に、無負荷時の位置θ、速度θ′および加速度θ′′から公称トルクτmdlを計算する。学習部13bには、学習用データとして、無負荷時の位置θ、速度θ′および加速度θ′′と、無負荷時の差分τreal-τmdlとが入力される。学習部13bは、無負荷でのモデル化誤差およびモデル外特性の影響が除かれた手先負荷パラメータを、学習用データを用いて学習する。学習部13bは、学習結果を学習結果記憶部14bに保存する。
【0048】
推論部15bによる推論の際に、逆動力学モデル部12bは、補正された逆動力学モデルを基に、推論用データである位置θ、速度θ′および加速度θ′′から、無負荷と仮定した場合における推定トルクτestを計算する。推論部15bには、推論用データとして、各関節の位置θ、速度θ′および加速度θ′′と、差分τreal-τestとが入力される。また、推論部15bは、学習部13bによる学習結果を学習結果記憶部14bから読み出す。推論部15bは、学習部13bによる学習結果を基に、手先負荷パラメータを推定する。
【0049】
図7は、実施の形態2における学習に使用されるGPRについて説明するための図である。GPRは、非線形な関数y=f(x)の推定に用いられる手法である。GPRでは、観測値であるyが超多次元のガウス分布N(u,S)に従うと仮定して、ベイズ推定における尤度p(f|z)が最大となるようにカーネル関数Sの内部パラメータzを調整する。ガウス分布N(u,S)は、ある平均値に相当する平均関数u(x)と、ある分散値に相当するカーネル関数S(x,x’)とによって決まる。推定された関数f~N(u,S)は、関数の分布として出力される。カーネル関数Sが大きい領域では、入力xに対する出力yの不確実性が大きくなる。次の式(8)は、推定された関数f~N(u,S)を表したものである。
【0050】
【0051】
GPRを備える学習部13bは、学習用データである無負荷時の位置θ、速度θ′および加速度θ′′を入力とし、差分τreal-τmdlを出力とする関数の分布を学習する。学習部13bは、得られた関数の分布を学習結果記憶部14bに保存する。学習用データは、位置θ、速度θ′および加速度θ′′のうちの一部のデータのみであっても良い。学習部13bには、位置θ、速度θ′および加速度θ′′のうち例えば速度θ′のデータのみが学習用データとして入力されても良い。このように、学習部13bは、入力されるデータを位置θ、速度θ′および加速度θ′′のうちの一部のデータのみに限定することによって、入力されるデータの次元を減少させても良い。
【0052】
推論部15bは、ベイズフィルタの一種であるヒストグラムフィルタを用いて手先負荷パラメータの推定結果を得ることとしても良い。ヒストグラムフィルタでは、推定対象であるパラメータの存在範囲を特定の刻み幅で区切ることによって各刻み幅に候補点を設定し、時系列データを基に各候補点の存在確率が更新される。
【0053】
図8は、実施の形態2における推論に使用されるヒストグラムフィルタについて説明するための図である。逆動力学モデル部12bは、GPRの学習結果である関数の分布を学習結果記憶部14bから読み出し、関数の分布を基に逆動力学モデルを補正する。逆動力学モデル部12bは、GPRの学習結果により補正された逆動力学モデルへ推論用データである位置θ、速度θ′および加速度θ′′が入力されることによって、無負荷と仮定した場合における推定トルクτ
estを出力する。
【0054】
手先に負荷を加えてロボットを動作させたときにおける推論用データの実トルクτrealと推定トルクτestとの差分τreal-τestは、負荷によって発生したオフセット分のトルクと考えることができる。以下、オフセット分のトルクを、オフセットトルクΔτと称する。推論部15bは、推定するパラメータの候補点を用意しておき、位置θ、速度θ′および加速度θ′′に対して実際のオフセットトルクΔτのデータが得られる確率が最も大きい候補点を、手先負荷パラメータの推定結果として出力する。
【0055】
図8では、推定するパラメータは1種類、例えば手先の質量のみとする。
図8では、取り得る質量の値の範囲をj等分した候補点m
1,m
2,・・・,m
jのうちの1つである候補点m
iにおいて、入力されたオフセットトルクΔτのデータが得られる確率が最も大きくなった例を示す。jは任意の整数、iは1≦i≦jを満足する整数である。推定するパラメータがK種類である場合、各パラメータの採りうる範囲についてj個に分割したj
K通りの候補点を用意しておくことができる。Kは2以上の整数とする。
【0056】
候補点の刻み幅は、推定するパラメータの種類ごとに異なっても良い。推論部15bは、時刻tの位置θ、速度θ′および加速度θ′′に対するオフセットトルクΔτのデータが入力されることによって各候補点の存在確率を更新する際に、推定する各パラメータの採りうる範囲、または各パラメータの刻み幅を変更しても良い。
【0057】
ヒストグラムフィルタの候補点miの存在確率をpiとして、ヒストグラムフィルタ全体の情報量の期待値は、次の式(9)により表される。
【0058】
【0059】
式(9)に示すHは、エントロピーと呼ばれる。エントロピーHは、正の値を持つ。エントロピーHがゼロに近いほど、ある候補点にヒストグラムフィルタが収束していることを表す。推論用データの外れ値による悪影響を避けるため、推論部15bは、時刻tのデータが入力されるたびにエントロピーHを計算し、エントロピーHが前回求めたエントロピーHの値よりも減少している場合のみデータを有効なデータとみなして、各候補点の存在確率を更新しても良い。
【0060】
実施の形態2によると、手先負荷推定装置2は、無負荷時における学習用データを基に手先負荷パラメータを学習し、実トルクと無負荷時における推定トルクとに基づいて手先負荷パラメータを推論する。これにより、手先負荷推定装置2は、手先負荷パラメータの高精度な推定結果を得ることができるという効果を奏する。
【0061】
実施の形態2では、手先負荷推定装置2は、無負荷にてロボットを動作させたときのデータを用いて学習を行うこととしたが、これに限定されない。手先負荷推定装置2は、質量または重心位置といった手先負荷パラメータが既知である負荷を手先に取り付けてロボットを動作させたときのデータを用いて学習を行っても良い。すなわち、手先負荷推定装置2は、実トルクτrealと、無負荷時のパラメータを基に計算された公称トルクτmdlとの差分τreal-τmdlをGPRで学習する代わりに、実トルクτrealと、既知の手先負荷パラメータを基に計算された公称トルクτmdlとの差分τreal-τmdlをGPRで学習する。手先負荷推定装置2は、推論用データの実トルクτrealと、学習時と同じ負荷が手先に取り付けられていると仮定した場合の推定トルクτestとの差分τreal-τestから、ヒストグラムフィルタにより手先負荷パラメータを推定することができる。
【0062】
実施の形態2における学習には、非線形な未知関数を学習するために、GPRに代わる近似関数の学習方式を適用しても良い。学習には、例えば、Neural ProcessesまたはGP Netといった手法を適用しても良い。Neural Processesは、データから確率過程のモデルを生成するニューラルネットワークを学習する手法として知られる。GP Netは、未知関数の事前分布がガウス過程に従うと仮定して、データによる予測分布をベイズニューラルネットワークで近似する手法として知られる。これらの手法においても、GPRと同様に、関数の平均値と分散値とを出力可能である。また、実施の形態2における推論には、オフセットトルクΔτのデータに合うように手先負荷パラメータの候補点を更新するために、組合せ最適化問題を解く手法として知られる粒子群最適化(Particle Swarm Optimization:PSO)、遺伝的アルゴリズム(Genetic Algorithm:GA)、またはシミュレーテッドアニーリング(Simulated Annealing:SA)といった手法を適用しても良い。
【0063】
実施の形態2では、非線形な未知関数を学習するために、GPRによる学習とその他の学習とが組み合わせられても良い。例えば、GPRによる学習において入力されたデータをニューラルネットワークの入力として、GPRが出力する関数の平均値と分散値とを教師信号とする学習を実施する。この場合、手先負荷推定装置2は、学習したニューラルネットワークを用いて、推論時の平均値と分散値とを出力することができる。
【0064】
実施の形態3.
実施の形態3では、関節の温度データを学習に用いる場合について説明する。
図9は、実施の形態3にかかる手先負荷推定装置3の構成を示す図である。実施の形態3では、実施の形態1または2と同一の構成要素には同一の符号を付し、実施の形態1または2とは異なる構成について主に説明する。
【0065】
手先負荷推定装置3は、入力部11、逆動力学モデル部12、学習部13c、学習結果記憶部14cおよび推論部15cを有する。入力部11には、位置データである位置FB値と、電流データである電流FB値と、温度データである温度フィードバック(FB)値とが入力される。温度FB値は、ロボットの動作時における各関節の温度である。
【0066】
学習部13cには、学習用データとして、学習時の入力データに基づく各関節の位置θ、速度θ′および加速度θ′′と、学習時の入力データに基づく各関節の差分τreal-τmdlと、各関節の温度データとが入力される。学習部13cは、関節における摩擦特性の温度依存性による影響が除かれた手先負荷パラメータを、学習用データを用いて学習する。学習部13cは、学習結果を学習結果記憶部14cに保存する。
【0067】
推論部15cには、推論用データとして、推論時の入力データに基づく各関節の位置θ、速度θ′および加速度θ′′と、推論時の入力データに基づく各関節の差分τreal-τmdlと、各関節の温度データとが入力される。また、推論部15cは、学習部13cによる学習結果を学習結果記憶部14cから読み出す。推論部15cは、学習部13cによる学習結果を基に、手先負荷パラメータを推定する。
【0068】
摩擦特性の温度依存性は、モデル化誤差の要因、またはモデル外特性の1つに挙げられる。実施の形態3によると、手先負荷推定装置3は、摩擦特性の温度依存性による影響が除かれた手先負荷パラメータを学習し、学習結果を基に手先負荷パラメータを推論する。手先負荷推定装置3は、摩擦特性の温度依存性による影響が低減された手先負荷パラメータを推論可能であることによって、手先負荷パラメータの高精度な推定結果を得ることができる。なお、実施の形態1または2の手先負荷推定装置1,2に、実施の形態3と同様の学習および推論を適用しても良い。
【0069】
実施の形態4.
実施の形態4では、各関節の位置θ、速度θ′および加速度θ′′のデータである動きデータを変数に変換する場合について説明する。
図10は、実施の形態4にかかる手先負荷推定装置4の構成を示す図である。実施の形態4では、実施の形態1から3と同一の構成要素には同一の符号を付し、実施の形態1から3とは異なる構成について主に説明する。
【0070】
手先負荷推定装置4は、入力部11、逆動力学モデル部12、学習部13d、学習結果記憶部14d、推論部15dおよび変数変換部16を有する。変数変換部16には、位置データから計算された位置θ、速度θ′および加速度θ′′が入力される。変数変換部16は、位置θ、速度θ′および加速度θ′′を、手先負荷パラメータに関して線形化されたトルクの式を設定するための変数に変換する。変数変換部16は、変換後の変数を出力する。
【0071】
学習部13dによる学習の際に、変数変換部16は、学習時の入力データから得られた位置θ、速度θ′および加速度θ′′のデータを変数に変換し、学習部13dへ変数を出力する。推論部15dによる推論の際に、変数変換部16は、推論時の入力データから得られた位置θ、速度θ′および加速度θ′′のデータを変数に変換し、推論部15dへ変数を出力する。なお、
図10では、学習時のデータフローと推論時のデータフローとを分けて示す都合上、変数変換部16を2つに分けて示す。
【0072】
学習部13dには、学習用データとして、各関節の位置θ、速度θ′および加速度θ′′のデータから変換された変数と、各関節の差分τreal-τmdlとが入力される。学習部13dは、逆動力学モデルのモデル化誤差の影響とモデル外特性による影響とが除かれた手先負荷パラメータを、学習用データを用いて学習する。学習部13dは、学習結果を学習結果記憶部14dに保存する。
【0073】
推論部15dには、推論用データとして、各関節の位置θ、速度θ′および加速度θ′′のデータから変換された変数と、各関節の差分τreal-τmdlとが入力される。推論部15dは、学習部13dによる学習結果を学習結果記憶部14dから読み出す。推論部15dは、学習部13dによる学習結果を基に、手先負荷パラメータを推定する。
【0074】
ロボットの運動方程式は、位置θ、速度θ′および加速度θ′′に関して非線形な式である。ただし、負荷についての質量および重心等のパラメータを(質量)×(重心)といった形にして並べたパラメータベクトルをMとすると、運動方程式は、次の式(10)のように線形化が可能となる。K(θ,θ′,θ′′)は、リグレッサ行列と呼ばれる。K(θ,θ′,θ′′)は、各関節の位置θ、速度θ′および加速度θ′′から変換された変数である。
【0075】
【0076】
上記のRNNおよびGPRは、非線形回帰による処理を扱い得る。手先負荷推定装置4は、位置θ、速度θ′および加速度θ′′のデータを変数に変換することによって、非線形回帰により扱われる処理を線形領域での処理として扱うことが可能となる。これにより、手先負荷推定装置4は、簡易な処理による学習と推論とが可能となる。手先負荷推定装置4は、簡易な処理によって、手先負荷パラメータの高精度な推定結果を得ることができる。実施の形態1から3の手先負荷推定装置1,2,3に、実施の形態4と同様の変数変換を適用しても良い。なお、後述する実施の形態7では、手先負荷パラメータの逐次同定と確率分布との組み合わせによる推論にリグレッサ行列を適用する例について説明する。
【0077】
実施の形態5.
実施の形態5では、各関節の位置θ、速度θ′または加速度θ′′に関係する摩擦特性の情報を学習に用いる場合について説明する。
図11は、実施の形態5にかかる手先負荷推定装置5の構成を示す図である。実施の形態5では、実施の形態1から4と同一の構成要素には同一の符号を付し、実施の形態1から4とは異なる構成について主に説明する。
【0078】
手先負荷推定装置5は、入力部11、逆動力学モデル部12、学習部13e、学習結果記憶部14eおよび推論部15eを有する。学習部13eには、学習用データとして、学習時の入力データに基づく各関節の位置θ、速度θ′および加速度θ′′と、学習時の入力データに基づく各関節の差分τreal-τmdlとが入力される。
【0079】
また、学習部13eには、摩擦特性の情報が入力される。学習部13eに入力される摩擦特性の情報は、学習用データとは別にあらかじめ同定された情報であって、各関節の位置θ、速度θ′および加速度θ′′の少なくとも1つに関係する情報である。なお、摩擦特性が位置θ、速度θ′および加速度θ′′の少なくとも1つに関係するとは、位置θ、速度θ′および加速度θ′′の少なくとも1つの変化に対応して摩擦特性が変化することを指す。
【0080】
学習部13eは、学習用データと摩擦特性の情報とを用いた学習によって、各関節の位置θ、速度θ′または加速度θ′′に関係する摩擦特性による影響が除かれた手先負荷パラメータを学習する。学習部13eは、学習結果を学習結果記憶部14eに保存する。推論部15eは、学習部13eによる学習結果を学習結果記憶部14eから読み出す。推論部15eは、学習部13eによる学習結果を基に、手先負荷パラメータを推定する。
【0081】
位置θ、速度θ′または加速度θ′′に関係する摩擦特性は、モデル化誤差の要因、またはモデル外特性の1つに挙げられる。実施の形態5によると、手先負荷推定装置5は、各関節の位置θ、速度θ′または加速度θ′′に関係する摩擦特性による影響が除かれた手先負荷パラメータを学習し、学習結果を基に手先負荷パラメータを推論する。手先負荷推定装置5は、位置θ、速度θ′または加速度θ′′に関係する摩擦特性の影響が低減された手先負荷パラメータを推論可能であることによって、手先負荷パラメータの高精度な推定結果を得ることができる。
【0082】
なお、学習部13eには、各関節の温度に関係する摩擦特性の情報が入力されても良い。各関節の温度に関係する摩擦特性の情報は、学習用データとは別にあらかじめ同定された情報である。この場合、学習部13eは、各関節の温度に関係する摩擦特性による影響が除かれた手先負荷パラメータを学習する。摩擦特性が温度に関係するとは、温度の変化に対応して摩擦特性が変化することを指す。この場合も、手先負荷推定装置5は、手先負荷パラメータの高精度な推定結果を得ることができる。なお、実施の形態1から4の手先負荷推定装置1,2,3,4に、実施の形態5と同様の学習を適用しても良い。
【0083】
実施の形態6.
実施の形態6では、手先負荷パラメータの信頼度を示す指標を計算および出力する場合について説明する。
図12は、実施の形態6にかかる手先負荷推定装置6の構成を示す図である。実施の形態6では、実施の形態1から5と同一の構成要素には同一の符号を付し、実施の形態1から5とは異なる構成について主に説明する。
【0084】
手先負荷推定装置6は、入力部11、逆動力学モデル部12、学習部13f、学習結果記憶部14fおよび推論部15fを有する。学習部13fは、関節における摩擦特性の温度依存性による影響が除かれた手先負荷パラメータを、学習用データを用いて学習する。学習部13fは、学習結果を学習結果記憶部14fに保存する。推論部15fは、学習部13fによる学習結果を学習結果記憶部14fから読み出す。推論部15fは、学習部13fによる学習結果を基に、手先負荷パラメータを推論する。さらに、学習部13fは、信頼度の指標を計算し、計算結果を学習結果記憶部14fに保存する。推論部15fは、信頼度の指標を学習結果記憶部14fから読み出し、手先負荷パラメータの推論結果とともに信頼度の指標を出力する。
【0085】
ニューラルネットワークを用いた推論を行う場合、信頼度の指標は、学習時の確率分布と推論時の確率分布との差異を表す尺度を用いることによって求めることができる。尺度としては、JSダイバージェンス(Jensen-Shannon divergence)、KLダイバージェンス(Kullback-Leibler divergence)などがあり、いずれを用いても良い。学習部13fは、ニューラルネットワークの出力としてパラメータごとの平均値と分散とを設定する。ここで、差異を表す尺度は、正解ラベルの確率分布と、ニューラルネットワークの出力として得られる平均値および分散で表現される推論値の確率分布との差であって、KLダイバージェンス等で計算して得られる値である。正解ラベルは、平均値に対する教師信号である。学習部13fは、ニューラルネットワークの構築によって、各パラメータの平均値と分散とを正解ラベルの確率分布に近づけるような学習を行う。手先負荷推定装置6は、各パラメータについての平均値を推定値、分散を信頼度の指標として扱う。分散が小さいほど、推定値の信頼度が高いと評価される。
【0086】
ニューラルネットワークを用いた推論を行う場合、Dropoutによる出力結果を信頼度指標とすることもできる。Dropoutは、ニューラルネットワークのユニットごとにある割合でランダムにユニットの利用および非利用を設定して学習する手法として知られる。この場合には、推論時にも同様の割合でユニットをランダムに利用または非利用としたいくつかのニューラルネットワークを用意してそれぞれで推定を行うことで、推定のばらつきを確保する。複数の推定結果の平均値を推定値、分散を信頼度指標として扱い、分散が小さいほど、推定値の信頼度が高いと評価される。
【0087】
ヒストグラムフィルタを用いた推論を行う場合、ヒストグラムフィルタの確信度の大きさを信頼度指標とすることができる。この場合には、すべての候補点での存在確率の和が1となるように正規化した場合に最大の存在確率を示す候補点の確率が大きいほど、推定値の信頼度が高いと評価される。上記の式(9)で計算されたヒストグラムフィルタのエントロピーHの値が小さいほど推定値の信頼度が高いとする評価もできる。
【0088】
GPRを用いた学習を行う場合、学習結果として得られている関数の分布の分散値を信頼度指標とすることができる。この場合には、推論時の位置θ、速度θ′、加速度θ′′の領域に対して、GPRが示すトルク誤差関数の分布の分散値が小さいほど、推定値の信頼度が高いと評価される。
【0089】
実施の形態6によると、手先負荷推定装置6は、手先負荷パラメータの信頼度を示す指標を計算し、手先負荷パラメータの推論結果とともに信頼度の指標を出力することによって、推定された手先負荷パラメータの信頼度の評価が可能となる。
【0090】
実施の形態7.
実施の形態7では、推論部が手先負荷パラメータの推定値とともに信頼度の指標を出力する例について説明する。
図13は、実施の形態7にかかる手先負荷推定装置7の構成を示す図である。実施の形態7では、実施の形態1から6と同一の構成要素には同一の符号を付し、実施の形態1から6とは異なる構成について主に説明する。
【0091】
手先負荷推定装置7は、入力部11、逆動力学モデル部12,12g、学習部13g、学習結果記憶部14g、推論部15gおよび変数変換部16を有する。学習部13gによる学習の際に、変数変換部16は、学習時の入力データから得られた動きデータである位置θ、速度θ′および加速度θ′′を変数に変換し、学習部13gへ変数を出力する。推論部15gによる推論の際に、変数変換部16は、推論時の入力データから得られた位置θ、速度θ′および加速度θ′′を変数に変換し、推論部15gへ変数を出力する。
【0092】
学習部13gには、学習用データとして、K(θ,θ′,θ′′)と、差分τreal-τmdlとが入力される。リグレッサ行列であるK(θ,θ′,θ′′)は、上記実施の形態4にて説明するように、位置θ、速度θ′および加速度θ′′から変換された変数である。さらに、学習部13gには、公称パラメータの情報が入力される。GPRを備える学習部13gは、学習用データである無負荷時の位置θ、速度θ′および加速度θ′′を入力とし、差分τreal-τmdlを出力とする関数の分布を学習する。学習部13gは、学習結果である関数の分布を学習結果記憶部14gに保存する。
【0093】
逆動力学モデル部12gは、GPRの学習結果である関数の分布を学習結果記憶部14gから読み出し、関数の分布を基に逆動力学モデルを補正する。逆動力学モデル部12gは、GPRの学習結果により補正された逆動力学モデルへ、推論時の位置データに基づく位置θ、速度θ′および加速度θ′′が入力されることによって、無負荷と仮定した場合における推定トルクτestを出力する。
【0094】
推論部15gには、推論用データとして、K(θ,θ′,θ′′)とオフセットトルクΔτとが入力される。オフセットトルクΔτは、実トルクτrealと推定トルクτestとの差分τreal-τestである。推論部15gは、学習部13gによる学習結果を学習結果記憶部14gから読み出す。推論部15gは、学習部13gによる学習結果を基に、手先負荷パラメータを推定する。
【0095】
上記の式(10)におけるK(θ,θ′,θ′′)とパラメータベクトルMは、摩擦トルクに関する項を含む形に拡張できる。学習部13gは、学習用の無負荷時のデータに含まれる各時刻の実トルクτrealを並べたベクトルであるYと、変数変換部16で各時刻の位置θ、速度θ′および加速度θ′′から計算されたリグレット行列であるKと、逆動力学モデルに含まれる公称パラメータとを入力として、無負荷時に上記式(10)により計算される公称トルクが実トルクに合うようなパラメータベクトルMの最適解を計算する。パラメータベクトルMの最適解は、次の式(11)により表される。なお、式(11)において、Mの上部に「^」を付したものは、パラメータベクトルMの最適解を表す。Mの上部に「 ̄」を付したものは、公称パラメータを表す。Tは転置行列を表す。Wは重み行列を表す。
【0096】
【0097】
オフセットトルクΔτと、推定対象の手先負荷パラメータベクトルmとについて、次の式(12)が成り立つ。これにより、推論部15gは、任意の線形回帰手法によって手先負荷パラメータベクトルmを推定することができる。
【0098】
【0099】
線形回帰手法としてベイズ線形回帰が用いられる場合、推論部15gは、手先負荷パラメータの推定結果とともに、推定結果の信頼度についての指標を出力することができる。
【0100】
図14は、実施の形態7におけるベイズ線形回帰による確率分布の更新について説明するための概念図である。事前確率分布であるN(m|u
0,S
0)は、観測データΔτ,K(θ,θ′,θ′′)により事後確率分布であるN(m|u,S)へ更新される。かかる更新は繰り返される。ベイズ線形回帰では、時刻tのデータを入力としたときの手先負荷パラメータベクトルmが確率分布N(m|u,S)に従うとして、平均uおよび分散Sは、それぞれ次の式(13)、式(14)に従って更新される。u
0は、平均の事前確率分布を表す。S
0は、分散の事前確率分布を表す。βは、トルク誤差の共分散の逆数を表すパラメータであって、トルクデータに含まれるノイズ分布に応じて設定される。
【0101】
【0102】
推論部15gは、手先負荷パラメータの推定値として確率分布の平均uを出力する。また、推論部15gは、信頼度の指標として確率分布の分散Sを出力する。分散Sが小さいほど、推定値の信頼度が高いと評価される。
【0103】
実施の形態7によると、手先負荷推定装置7は、手先負荷パラメータの推論結果とともに信頼度の指標を出力することによって、推定された手先負荷パラメータの信頼度の評価が可能となる。
【0104】
実施の形態8.
図15は、実施の形態8にかかるロボットシステム8の構成を示す図である。ロボットシステム8は、ロボット制御システム9とロボット40とを有する。ロボット制御システム9は、手先負荷推定装置1と、ロボット40を制御するロボット制御装置30とを有する。実施の形態8において、ロボット制御装置30は、ロボット40の動作中において、手先負荷推定装置1から出力される手先負荷パラメータを基に、ロボット40の加減速度を調整する。実施の形態8では、実施の形態1から7と同一の構成要素には同一の符号を付し、実施の形態1から7とは異なる構成について主に説明する。なお、ロボットシステム8は、実施の形態1から7のいずれか1つに記載の手先負荷推定装置を有するものであれば良い。
【0105】
ロボット制御装置30は、指令生成部31を有する。ロボット制御装置30は、手先負荷推定装置1から出力される手先負荷パラメータを受信する。指令生成部31は、手先負荷推定装置1から出力される手先負荷パラメータを基に、ロボット40へ送る指令を生成する。ロボット制御装置30は、生成された指令をロボット40へ送る。
【0106】
手先負荷推定装置1は、ロボット制御装置30と通信可能に接続されている。手先負荷推定装置1は、ロボット制御装置30の外部の装置に限定されない。手先負荷推定装置1は、ロボット制御装置30に内蔵されても良い。実施の形態1から7のいずれか1つにおける学習および推論は、ロボット制御装置30の内部で実施されても良い。
【0107】
または、手先負荷推定装置1の学習部13および推論部15のうち、学習部13がロボット制御装置30の外部の装置によって実現され、推論部15がロボット制御装置30の内部の手先負荷推定装置1に内蔵されても良い。この場合、入力部11、逆動力学モデル部12、学習部13および学習結果記憶部14を有する学習装置がロボット制御装置30の外部に設けられる。また、かかる学習装置と同様の入力部11および逆動力学モデル部12と、学習装置の学習結果記憶部14から読み出された学習済モデルに基づいた推論を行う推論部15とが、ロボット制御装置30の内部の手先負荷推定装置1に設けられる。このように、実施の形態1から7のいずれか1つにおける学習はロボット制御装置30の外部で実施され、かつ、実施の形態1から7のいずれか1つにおける推論はロボット制御装置30の内部で実施されても良い。
【0108】
次に、ロボット制御装置30によるロボット40の加減速度の変更について説明する。ロボット制御装置30は、各関節を動作させるトルクの許容値を超えない範囲で最短となる加速時間および減速時間を算出する機能を有する。ロボット制御装置30は、手先負荷パラメータを用いて、ロボット40の加速開始地点、加速終了地点、減速開始地点、減速終了地点の各々についての運動方程式を計算することによって、加速時間および減速時間を求める。ロボット制御装置30は、加速時間および減速時間を基に、加減速度を変更する。
【0109】
ロボット制御装置30は、加減速終了地点までのデータによって推定された手先負荷パラメータを用いて、減速開始地点と減速終了地点とについての計算を行う。この場合、実トルクが許容値を超えないように、いわば保守的な固定値に設定された手先負荷パラメータを基に減速時間が計算される場合に比べて、減速時間の短縮が可能となる。ロボット制御装置30は、トルクの許容値を超えない範囲で減速時間を短縮可能であることによって、トルクを過大とさせること無くロボット40の高速化を実現できる。
【0110】
ロボット制御装置30は、手先負荷パラメータの推定結果とともに、推定結果の信頼度を示す指標が得られる場合、信頼度の指標に応じて加減速度をさらに調整しても良い。例えば、ロボット制御装置30は、最適加減速の演算に用いられる手先負荷パラメータの値に信頼度を反映させることができる。この場合、ロボット制御装置30は、手先負荷パラメータが固定値である場合よりも減速時間が長くならない範囲で、信頼度に応じて手先負荷パラメータを保守的な方向に補正することができる。
【0111】
ロボット制御装置30は、推定結果である手先負荷パラメータの値をそのまま用いて計算された減速時間に信頼度を反映させても良い。この場合、ロボット制御装置30は、手先パラメータの推定結果をそのまま用いて計算された減速時間に、信頼度に応じた補正係数a(ただし、a>1とする)を乗じた値をロボット40の減速時間として用いる。
【0112】
ロボット制御装置30は、手先負荷パラメータの推定に用いられるデータを取得するための1つの動作が終了した後において負荷が加えられた状態で続けられる次の動作の加速時間および減速時間を計算する際に、推定された当該手先負荷パラメータを用いても良い。
【0113】
実施の形態8によると、ロボットシステム8は、手先負荷パラメータを基に、ロボットの加減速度を変更することによって、ロボット40の高速化を実現できる。
【0114】
実施の形態9.
実施の形態9では、
図15を参照して、ロボットシステム8においてロボット40の衝突検知のためのパラメータを調整する例について説明する。ロボット制御装置30は、ロボット40の動作中において、手先負荷パラメータを基に、ロボット40の衝突を検知するためのパラメータである閾値を調整する。閾値は、ロボット40と障害物との衝突の有無を判断するための閾値である。
【0115】
ロボット制御装置30は、各関節の実トルクと推定トルクとの比較によって衝突を検知する機能を有する。実トルクが推定トルクよりも大きく、かつ実トルクと推定トルクとの差があらかじめ設定された閾値よりも大きい場合、ロボット制御装置30は、障害物にロボット40が衝突したと判断する。閾値には、正常にロボット40が動作しているときの実トルクと推定トルクとの誤差による誤検知を防ぐためのマージンがあらかじめ設けられる。これに加えて、ロボット制御装置30は、手先負荷パラメータを基に閾値を調整することによって、閾値を固定とする場合に比べて衝突の検知感度を高めることができる。
【0116】
ロボット制御装置30は、手先負荷パラメータの推定結果とともに、推定結果の信頼度を示す指標が得られる場合、信頼度の指標に応じて閾値をさらに調整しても良い。例えば、ロボット制御装置30は、推定トルクの演算に用いられる手先負荷パラメータの値に信頼度を反映させることができる。この場合、ロボット制御装置30は、信頼度に応じて補正された手先負荷パラメータを基に閾値を調整することで、いわば保守的な方向に閾値を調整することができる。
【0117】
ロボット制御装置30は、推定結果である手先負荷パラメータの値をそのまま用いて計算された閾値の信頼度を反映させても良い。この場合、ロボット制御装置30は、手先パラメータの推定結果をそのまま用いて推定トルクを計算し、推定トルクを基に求めた閾値に、信頼度に応じた補正係数b(ただし、b>1とする)を乗じることによって閾値を調整する。
【0118】
実施の形態8と同様に、手先負荷推定装置1は、ロボット制御装置30の外部の装置に限定されない。手先負荷推定装置1は、ロボット制御装置30に内蔵されても良い。実施の形態1から7のいずれか1つにおける学習および推論は、ロボット制御装置30の内部で実施されても良い。または、実施の形態1から7のいずれか1つにおける学習はロボット制御装置30の外部で実施され、かつ、実施の形態1から7のいずれか1つにおける推論はロボット制御装置30の内部で実施されても良い。
【0119】
実施の形態9によると、ロボットシステム8は、手先負荷パラメータを基に、衝突検知のためのパラメータを調整することによって、障害物へのロボット40の衝突を低減させ、ロボット40の安全性を向上させることができる。
【0120】
次に、実施の形態1から7にかかる手先負荷推定装置1,2,3,4,5,6,7を実現するハードウェア構成について説明する。
図16は、実施の形態1から7にかかる手先負荷推定装置1,2,3,4,5,6,7を実現するハードウェアの第1の構成例を示す図である。第1の構成例は、手先負荷推定装置1,2,3,4,5,6,7の要部である逆動力学モデル部12,12b,12g、学習部13,13a,13b,13c,13d,13e,13f,13g、推論部15,15a,15b,15c,15d,15e,15f,15gおよび変数変換部16を、プロセッサ53とメモリ54とを有する処理回路51によって実現する場合の構成例である。
【0121】
入力部52は、手先負荷推定装置1,2,3,4,5,6,7に対する入力信号を外部から受信する回路である。
図1等に示す入力部11は、入力部52により実現される。出力部55は、手先負荷推定装置1,2,3,4,5,6,7で生成した信号を外部へ出力する回路である。出力部55は、推定結果である手先負荷パラメータと、実施の形態6および7における信頼度の指標とを出力する。
【0122】
プロセッサ53は、CPU(Central Processing Unit)である。プロセッサ53は、演算装置、マイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)でも良い。メモリ54は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)等の不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスクまたはDVD(Digital Versatile Disk)等である。
【0123】
プロセッサ53は、手先負荷推定プログラムを実行する。手先負荷推定プログラムは、手先負荷推定装置1,2,3,4,5,6,7の要部を構成する各部として動作するための処理が記述されたプログラムである。手先負荷推定プログラムは、メモリ54にあらかじめ格納される。プロセッサ53は、メモリ54に格納されている手先負荷推定プログラムを読み出して実行することにより、手先負荷推定装置1,2,3,4,5,6,7の要部を構成する各部として動作する。また、メモリ54は、各種情報を記憶する。学習結果記憶部14,14a,14b,14c,14d,14e,14f,14gは、メモリ54により実現される。メモリ54は、プロセッサ53が各種処理を実行する際の一時メモリにも使用される。
【0124】
手先負荷推定プログラムは、メモリ54にあらかじめ格納されているものとしたがこれに限定されない。手先負荷推定プログラムは、コンピュータシステムによる読み取りが可能とされた記憶媒体に書き込まれた状態で手先負荷推定装置1,2,3,4,5,6,7のユーザに提供され、ユーザによってメモリ54にインストールされても良い。記憶媒体は、フレキシブルディスクである可搬型記憶媒体、あるいは半導体メモリであるフラッシュメモリでも良い。手先負荷推定プログラムは、他のコンピュータあるいはサーバ装置から通信ネットワークを介してメモリ54へインストールされても良い。
【0125】
実施の形態1から7にかかる手先負荷推定装置1,2,3,4,5,6,7の要部は、専用のハードウェアによって実現しても良い。
図17は、実施の形態1から7にかかる手先負荷推定装置1,2,3,4,5,6,7を実現するハードウェアの第2の構成例を示す図である。第2の構成例は、
図16に示す処理回路51の機能を、専用のハードウェアである処理回路56により実現する場合の構成例である。
【0126】
処理回路56は、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせた回路である。なお、
図17に示す例では、手先負荷推定装置1,2,3,4,5,6,7の要部を単一の処理回路56で実現するものとしたがこれに限定されない。ハードウェアが複数の処理回路56を備え、手先負荷推定装置1,2,3,4,5,6,7の要部をそれぞれ異なる処理回路56で実現しても良い。記憶装置57は、HDD(Hard Disk Drive)あるいはSSD(Solid State Drive)であって、各種情報を記憶する。学習結果記憶部14,14a,14b,14c,14d,14e,14f,14gは、記憶装置57により実現される。
【0127】
なお、手先負荷推定装置1,2,3,4,5,6,7の要部のうちの一部を
図16に示すプロセッサ53とメモリ54とで実現し、残りを処理回路56と同様の専用のハードウェアで実現しても良い。
【0128】
以上の各実施の形態に示した構成は、本開示の内容の一例を示すものである。各実施の形態の構成は、別の公知の技術と組み合わせることが可能である。各実施の形態の構成同士が適宜組み合わせられても良い。本開示の要旨を逸脱しない範囲で、各実施の形態の構成の一部を省略または変更することが可能である。
【符号の説明】
【0129】
1,2,3,4,5,6,7 手先負荷推定装置、8 ロボットシステム、9 ロボット制御システム、11,52 入力部、12,12b,12g 逆動力学モデル部、13,13a,13b,13c,13d,13e,13f,13g 学習部、14,14a,14b,14c,14d,14e,14f,14g 学習結果記憶部、15,15a,15b,15c,15d,15e,15f,15g 推論部、16 変数変換部、21 入力層、22 中間層、23 出力層、24,25,26 ニューロン、27 トルクセンサ、30 ロボット制御装置、31 指令生成部、40 ロボット、51,56 処理回路、53 プロセッサ、54 メモリ、55 出力部、57 記憶装置。