(58)【調査した分野】(Int.Cl.,DB名)
座標値をx、前記最大誤差をΔx、sgm(a,d)をゲインa及び変数dのシグモイド関数、dを前記更新式に含まれる前記パラメータとして含まれる関節値の誤差として、前記更新式は、x=x+2sgm(a,d)×Δxで表される、
請求項1又は2に記載の動作転移装置。
【発明を実施するための形態】
【0019】
はじめに、本発明にかかる動作転移の前提となる諸条件について説明する。本発明は、以下の条件の下に、あるロボット間で動作転移を実施する手法を提案するものである(
図20)。後述する本発明の実施の形態も、以下の条件に従うものとする。なお、ここでロボットの動作とは、腕のエンドエフェクタ(人間の手先にあたる、腕の先端部分)などのロボットの特定の部分を任意の場所(座標値)へ移動させることを指す。
【0020】
条件1:転移元及び転移先ロボットはいずれも、関節数が既知であり、かつ等しいものとする。
条件2:関節数以外の物理特性(例えば腕の長さ等)は未知であるものとする。
条件3:転移元ロボットは、大量の動作サンプルが抽出可能であるものとする。典型的にはシミュレータ上又は実験施設内に存在するロボットである。
条件4:転移先ロボットは、少量の動作サンプルのみが抽出可能であるものとする。典型的には実機のロボットである。
【0021】
本発明にかかる動作転移手法は、上述の制約条件を満たす転移元ロボットから、転移先ロボットに動作を転移させるものである。動作転移とは、転移元ロボット上で作成された動作の経験データベースである転移元データセットD
srcから、転移先ロボットの作業空間に合わせた経験データベースである転移データD
transを作成することを意味している。このとき、転移データD
transは、まず転移先ロボットにて少量の動作を行って転移先サンプルデータセットD
tgtを作成し、次に転移先サンプルデータセットD
tgtを用いて転移元データセットD
srcを補正することで作成される。ここで、転移先サンプルデータセットD
tgtのサイズは、転移元データセットD
srcよりも小さく、転移データD
transのサイズは転移元データセットD
srcと同等である。
【0022】
したがって、本手法によれば、転移先ロボットを実際に大量に動作させてデータセットを生成する場合に比べ、少ないデータセットでの学習(すなわち、動作転移)が可能である。また、転移元データセットD
srcをそのままコピーして転移データD
transを生成する場合に比べ、動作転移の精度を向上させることができる。
【0023】
転移元データセットD
src等の経験データベースは、単に関節値と座標値とのペアの集合であってもよい。また、転移元データセットD
src等の経験データベースは、単純なデータベース(単純なペアの情報を記録したデータベース)の他にも、例えば、競合学習を用いた自己組織化マップSOM(Self Organizing Maps)や、SOMを改良した追加学習可能なオンライン教師なし学習手法であるSOINN(Self Organizing Incremental Neural Network)等を用いて情報を圧縮したものであってもよい。SOM及びSOINNについては下記参考文献1及び参考文献2に説明されているため、ここでは詳細な説明を省略する。
(参考文献1)Kohonen T.,“Self−organized formation of topologically correct feature maps”,Biological Cybernetics Vol.43,pp.59−69,1982年
(参考文献2)Shen F.,Hasegawa O.,“A Fast Nearest Neighbor Classifier Based on Self−organizing Incremental Neural Network”,Neural Networks,2008年
【0024】
以下、ロボット上で動作の経験データベースDを作成する方法について説明する。この方法は、転移元データセットD
src及び転移先サンプルデータセットD
tgtの作成に適用できる。一般に、ロボットの物理特性が既知の場合は、公知技術であるInverse Kinematics(IK)を用いることにより、腕のエンドエフェクタを任意の場所に移動させる制御が可能である。ところが、今回の仮定ではその物理特性が未知である。したがって、本発明の手法では、経験ベースのIKを実施することによりエンドエフェクタの移動を行う。以下、経験ベースのIKを実行するためにロボットが獲得すべきデータと、そのデータを用いたIKの実行方法について説明する。
【0025】
まず、対象とするロボットが持つ全ての関節の関節角を示すデータである関節値セットJを生成する。関節値セットJは、以下の通りに表現できる。ここで、iは1以上n以下の整数であり(ここで、nは少なくとも2以上の整数)、関節値をサンプリングしたロボットの姿勢を表す指標である。
【数1】
なお、関節値セットJの成分である関節値
【数2】
は、関節数分の成分からなるベクトル量であり、例えばm軸のロボット、すなわちm個の関節を持つロボットの場合には、m次元ベクトルとなる。
【0026】
そして、関節値セットJに含まれる関節値のそれぞれを用いて実際にロボットを動作させ、ロボットの各種センサ情報(例えば視覚情報等)により腕のエンドエフェクタの絶対座標値(以下、単に座標値という)を求める。シミュレータ上のロボットなど、物理特性が既知の場合には、Forward Kinematicsを用いることで、座標値取得の所要時間を短縮できる。そして、計算された座標値をまとめたデータセットである座標値セットXを生成する。座標値セットは、以下の通りに表現できる。
【数3】
なお、座標値セットXの成分である座標値
【数4】
は、平面上の座標を示す2次元ベクトル又は3次元空間における座標を示す3次元ベクトルとして定義される。ロボットの関節値からエンドエフェクタの座標値は一意に決定されるので、関節値と座標値との間には関数の関係がある。
【0027】
これらの経験、すなわち実際の動作から獲得される関節値セット及び座標値セットからなるデータセットをデータセットDとする。データセットDは、以下の式で表される。
【数5】
【0029】
実施の形態1にかかる動作n転移では、転移先ロボットにおいて少量の動作サンプルである転移先サンプルデータセットD
tgtを取得し、転移先サンプルデータセットD
tgtの座標値セットX
tgtを用いて、かつ、SOMを参考に作成した更新式により、転移元ロボットの転移元データデットの座標値セットX
srcを補正して、転移データD
transを生成するものである。
【0030】
SOM変形法は、いわゆるSOM(Self Organizing Maps)の更新式から着想されたアルゴリズムである。SOMは、ネットワーク構造(トポロジー)を入力に合わせて変化させる手法としてKohonenらによって考案された自己組織化マップである。SOMは人工ニューラルネットワークの一種であり、入力に従ってニューロンのトポロジーを変形させる機構を持つ。SOMの学習方式は競合学習であり、入力に対する近傍ニューロンに対して更新を行う。
【0031】
一方、従来のSOMとSOM変形法とでは対象とする問題設定が異なるため、SOM変形法では、更新率の変動方法に新たな知見を加えている。従来のSOMは、1つの空間内におけるノードの更新を行うものであり、当該空間内における、入力と、入力の近傍ノードと、の距離を用いて更新率の決定を行っている。一方、SOM変形法は、関節値空間(関節値セット)及びエンドエフェクタの座標値空間(座標値セット)という2つの空間が存在することを前提としている。本手法においては、入力されたデータに応じて更新が行われる空間は、座標値空間が適当と考えられる。但し、上述のように座標値と関節値との間には一定の制約条件が存在することから、関節値空間における関節値の距離も考慮することが重要である。そこで、本手法では、関節値空間における関節値の距離を、座標値空間の更新に反映させることで、動作転移の精度を向上させている。
【0032】
以下、SOM変形法により転移データD
transを求める手法を具体的に説明する。まず、実施の形態1にかかる動作転移装置100の構成について説明する。
図1は、実施の形態1にかかる動作転移装置100の構成を模式的に示すブロック図である。
【0033】
動作転移装置100は、典型的にはサーバコンピュータ、パーソナルコンピュータ(PC)等の情報処理装置である。典型的な動作転移装置100は、演算処理装置、揮発性又は不揮発性の記憶装置、及び入出力装置を有する。演算処理装置は、記憶装置に格納されたプログラムに基づいて各種制御を実行することにより、後述の各処理部を論理的に実現する。動作転移装置100は、物理的に単一である必要はなく、複数の情報処理装置による分散処理により実現されてもよい。また、動作転移装置100は、例えば転移先ロボットに内蔵されてもよく、又は、転移先ロボットとは分離されていてもよい。
【0034】
図1に示すように、動作転移装置100は、転移元動作情報取得部101、転移先動作情報取得部102、補正部103及び出力部104を有する。
【0035】
転移元動作情報取得部101は、転移元ロボットを動作させるための転移元データセットD
srcを取得する。転移元データセットD
srcは、関節値セットJ
src及びエンドエフェクタの座標値セットX
srcを含む(すなわち、D
src=<J
src, X
src>)。典型的には、転移元データセットD
srcは、シミュレータ上及び実験施設内等において転移元ロボットを幾度にもわたり動作させ、エンドエフェクタと、それに対応する関節値と、のペアを多数取得することにより生成できる。本実施の形態では、転移元データセットD
srcは予め生成済みであるものとし、転移元動作情報取得部101は、入力装置又は記憶装置から転移元データセットD
srcを取得するものとする。
【0036】
転移先動作情報取得部102は、転移先ロボットを試験動作させた際に得られたデータセットである転移先サンプルデータセットD
tgtを取得する。転移先サンプルデータセットD
tgtは、関節値セットJ
tgt及びエンドエフェクタの座標値セットX
tgtを含む(すなわち、D
tgt=<J
tgt, X
tgt>)。典型的には、転移先サンプルデータセットD
tgtは、転移元ロボットを何度かランダムに動作させ、エンドエフェクタの座標値と、それに対応する関節値と、のペアを幾つか取得することにより生成できる。ここで、転移先サンプルデータセットD
tgtの大きさは、転移元データセットD
srcよりも極めて小さくてよい。すなわち、転移元ロボットの動作試行回数に比べて、転移先ロボットの動作試行回数は少なくてもよい。本実施の形態では、転移先サンプルデータセットD
tgtは予め生成済みであるものとし、転移先動作情報取得部102は、入力装置又は記憶装置から転移先サンプルデータセットD
tgtを取得するものとする。
【0037】
補正部103は、転移先サンプルデータセットD
tgtを利用して、転移元データセットD
srcを転移データD
transに変形する処理を行う。本実施の形態では、補正部103はSOM変形法を用いた変形処理を行う。
【0038】
出力部104は、補正部103が生成した転移データD
transを外部に出力する。転移先ロボットは、出力部104が出力した転移データD
trans取得し、これに基づいた動作を行うことで、転移元ロボット同様の動作を獲得できる。
【0039】
つづいて、
図2のフローチャートを用いて、本発明の実施の形態1にかかる動作転移装置100の動作について説明する。なお、
図3のアルゴリズムは、上記フローチャートが示す処理の一実装例である。
図3のアルゴリズムにおいては、Aをある集合として、num(A)は、集合Aに含まれる要素の数を表すものとする。sgm(a,x)は、ゲインaのシグモイド関数を表すものとする。a
eは、ゲインaを決定するためのパラメータである。eは、以下で説明する誤差が満たすべき閾値を示す。
【0040】
ステップS11:パラメータtの初期設定
まず、補正部103は、繰り返し処理の指標となるパラメータtの初期値として、「1」を設定する(
図3、第1行)。以下では、tは、例えば1≦t≦num(D
tgt)を満たす整数が設定される。
【0041】
ステップS12:データセットの正規化
転移元動作情報取得部101は、転移元データセットD
srcを取得する。次いで、転移元動作情報取得部101は、転移元データセットD
srcに含まれる座標値セットX
src内の要素のうちの最大値(max|X
src|)を選択し、選択した最大値で座標値セットX
src内の各要素を除算したものを、新たな座標値セットX
srcとして設定する(
図3、第2行)。これにより、転移元データセットD
srcに含まれる座標値セットX
srcが正規化される。
転移先動作情報取得部102は、転移先サンプルデータセットD
tgtを取得する。次いで、転移先動作情報取得部102は、転移先サンプルデータセットD
tgtに含まれる座標値セットX
tgt内の要素のうちの最大値(max|X
tgt|)を選択し、選択した最大値で座標値セットX
tgt内の各要素を除算したものを、新たな座標値セットX
tgtとして設定する(
図3、第3行)。これにより、転移先サンプルデータセットD
tgtに含まれる座標値セットX
tgtが正規化される。
【0042】
ステップS13:転移データの初期設定
補正部103は、転移元ロボットから転移先ロボットに動作を転移するための転移データD
transを生成する。この際、転移データD
transの初期値として、ステップS12にて座標値セットが正規化された転移元データセットD
srcと同じ値を、転移データD
transとして設定する(
図3、第4行)。
【0043】
ステップS14:座標値の誤差算出
補正部103は、転移先サンプルデータセットD
tgtの関節値セットJ
tgtに含まれる関節値
【数6】
のそれぞれについて、転移データD
transの関節値セットJ
transから同じ関節値
【数7】
を探し出す。
次いで、補正部103は、関節値
【数8】
のそれぞれに対応する座標値
【数9】
を、転移データD
transの座標値セットX
transから探し出す。そして、同じ関節値に対応している座標値
【数10】
と座標値
【数11】
との間の誤差Δxを算出する。この距離算出を転移先サンプルデータセットD
tgtの座標値セットX
tgtに含まれるすべて誤差算出をすべての関節値について行うことで、算出した誤差を要素とする誤差データセットΔXが生成される(
図3、第5行)。
【0044】
ステップS15:誤差の最大値の決定
補正部103は、誤差データセットΔXに含まれる距離のうち、最大値max(|ΔX|)を決定する(
図3、第6行)。
【0045】
ステップS16:誤差の最大値の評価
補正部103は、最大値max(|ΔX|)が所定の閾値e以上であるかを判定する(
図3、第7行)。
【0046】
ステップS17:ゲインa算出
最大値max(|ΔX|)が所定の閾値e以上である場合、補正部103は、以下の式に基づいてシグモイド関数のゲインaを算出する(
図3、第8行)。
【数12】
【0047】
ここで補正部103は、転移先サンプルデータセットD
tgtの変形処理にかかるパラメータa
eを適宜設定してもよい(
図3、第8行)。つまり、変形処理に用いるシグモイド関数の特性を設定するためのパラメータa
eを設定することができる。シグモイド関数の特性を変更することで、変形処理(学習処理)のスピードを調整することが可能である。なお、このパラメータは任意に設定して構わない。
【0048】
ステップS18:関節値の偏差算出
次いで、補正部103は、最大値max(|ΔX|)に対応する転移先サンプルデータセットD
tgtに含まれる関節値を
【数13】
とすると、関節値
【数14】
と転移データD
transの各関節値
【数15】
との間の偏差d
jを計算する。
【数16】
そして、算出した偏差の最大値で偏差にそれぞれを除算することで、各偏差を正規化する(
図3、第9〜11行)。
【数17】
【0049】
ステップS19:誤差伝搬
補正部103は、シグモイド関数を用いて、転移データD
transに含まれる座標値に誤差を、以下に示す更新式(18)によって、伝搬させる(
図3、第12、13行)。
【数18】
【0050】
ステップS20:パラメータtのインクリメント
誤差伝搬の後、補正部103は、パラメータtをインクリメントする(tに1を加算する。すなわち、t=t+1)(
図3、第16行)。
【0051】
ステップS21:繰り返し処理回数の検証
補正部103は、パラメータtが、num(D
tgt)よりも小さいかを判定する。
【0052】
パラメータtがnum(D
tgt)よりも小さい場合には、処理をステップS14に返す。これにより、誤算伝搬により更新された転移データD
transを用いた誤差伝搬が繰り返し行われることとなる(
図3、第14、15行、及び第7行以降)。
【0053】
ステップS22
繰り返し処理が進むにつれて(繰り返し処理の回数が増えるにつれて)、上記の誤差は縮小してゆくので、算出される誤差の最大値が小さくなってゆくこととなる。そして、繰り返し処理の結果、誤差の最大値が閾値eよりも小さくなった場合には、以下の式に基づいて、正規化された座標値を元の座標値に戻し、処理を終了する。
【数19】
【0054】
誤差の最大値が閾値eよりも小さくならない場合でも、パラメータtがnum(D
tgt)と等しくなったときには、処理の発散を避けるため、処理を終了する。
【0055】
本実施の形態では、関節値空間の計算を、座標値空間の計算に先立って行っている。これは、ある座標値に対応する関節値が複数存在する場合があるためである。このような場合に座標値空間の計算を行うと、座標値に対応する関節値を探し出すことができないからである。
【0056】
ここで、上記更新式(18)は、従来のSOMの更新式を基としながら、座標値空間の更新を行うに際し、関節値空間の情報も加味している点に留意されたい。これは、従来のSOMとは異なり、本発明では関節値空間及び座標値空間という複数の空間を扱う必要があることに起因している。
【0057】
本実施の形態においては、動作転移装置100は、SOM変形法を用いて、転移元ロボットのデータセットを変形し、転移先ロボットに最適化されたデータセットを生成する。この変形処理においては、転移先ロボットにおいて取得された、上記データセットに含まれるよりも少ない数の動作サンプルが用いられる。これにより、たとえ転移先ロボット上で大量の動作サンプルを得ていなくても、転移元ロボットの動作を、転移先ロボットにて獲得することができる。すなわち、同等の動作を実施できることとなり、動作が転移される。
【0058】
さらに、本実施の形態によれば、従来技術に比較して少量の計算量で動作転移を実現できる。特に、転移先ロボットにおける学習サンプルが従来よりも少なくて済むことから、計算量を大幅に削減することが可能である。
【0059】
[実験]
以下、実施の形態1にかかる動作転移手法の効果を検証するため、発明者は2自由度、3自由度、6自由度のロボットにおける3つの実験を実施した。
【0060】
[2自由度のロボットによる実験]
この実験では、2次元上で動作する2自由度のロボットアームをシミュレータ上に作製した。
図4は、2自由度のロボットアーム1の概略構成を示す図である。2自由度のロボットアーム1は、第1の関節J11、第2の関節J12、第1の腕ARM1及び第2の腕ARM2を有する。第1の関節J11及び第2の関節J12は、X軸及びY軸に対して垂直なZ軸を回転軸として回転可能に構成される。ロボットアームの保持部10と第1の腕ARM1との間は、第1の関節J11により連結される。第1の腕ARM1と第2の腕ARM2との間は、第2の関節J12により連結される。第2の腕ARM2の先端にはエンドエフェクタ11が取り付けられる。すなわち、第1の関節J11は肩関節、第1の腕ARM1は上腕、第2の関節J12は肘関節、第2の腕ARM2は前腕に対応する。
【0061】
本実験では第1の関節J11及び第2の関節J11の可動範囲を0°〜180°に制限している。転移元ロボットアームの第1の腕ARM1の長さを0.300m、第2の腕ARM2の長さを0.250mとした。転移先ロボットアームの第1の腕ARM1の長さを0.600m、第2の腕ARM2の長さを0.200mとした。
図5に、2自由度のロボットアームの2次元平面(X−Y平面)における作業空間を示す。
【0062】
本実験では、転移元ロボットアームの関節をそれぞれ1.80°ずつ動かしたときに得られる関節値と、そのときのロボットアーム先端のエンドエフェクタの座標値(X−Y平面での座標値)とにより、転移元データセットを構成した。つまり、1回の学習で得られる学習データは、2次元の関節値と2次元の座標値との合計4次元である。この例では、データ数は約10000とした。
【0063】
転移先サンプルデータセットについては、転移元データセットから無作為に選択された関節値と、選択された関節値を転移先ロボットアームに適用した場合に得られる、転移先ロボットアームのエンドエフェクタの座標値と、により構成した。
【0064】
まず、転移先サンプルデータセットのデータと転移誤差との関係について調査した。以下では、転移誤差をRMSE(Root Mean Squared Error)を用いて評価する。転移誤差を示すRMSEは、以下の式で表される。
【数20】
ここで、Nは転移元データセットの学習データ数である。X
transは転移データD
transセットのデータの座標値である。X
ltgtは転移元データセットの関節値と同量かつ同じ関節値を有する転移先サンプルデータセットの座標値である。
【0065】
図6に、2自由度のロボットアームにおける動作転移誤差を示す。本実験では、動作転移を行わなかった場合、すなわち転移元データセットをそのまま転移先ロボットアームに適用した場合、転移誤差(RMSE)は0.215[m]であった。
図6に示すように、一般的な手法(ここでは、LPAを用いた動作転移手法)と比べて、転移誤差(RMSE)を低減できることが理解できる。
【0066】
次いで、動作転移に要する処理時間について調査した。以下では、ここでは、3.50[GHz]のパーソナルコンピュータ上でシミュレータを動作させ、動作転移が完了するまでに要する時間と、転移先サンプルデータセットのデータ数との関係について評価した。
図7に、2自由度のロボットアームにおいて動作転移に要する時間を示す。一般的な手法(LPA)では、転移先サンプルデータセットのデータ数に対して概ね単調に処理時間が増加する。これに対し、実施の形態1にかかる動作転移手法では、概ね転移先サンプルデータセットのデータ数が200以上の領域では、処理時間が4秒前後で飽和した。
【0067】
以上説明した通り、実施の形態1にかかる動作転移手法によれば、転移先サンプルデータセットのデータ数に対して、転移誤差(RMSE)を急速に減少させ、かつ、処理時間は転移先サンプルデータセットのデータ数が200程度でほぼ収束する。このことから、転移先サンプルデータセットのデータ数が200程度得られれば、十分な精度の動作転移が実現されたと考えることができる。
【0068】
次いで、転移先ロボットアームの腕の長さと転移誤差の関係について調査した。ここでは、2本のアームのそれぞれの長さを、0.100[m]から10.1[m]まで0.5[m]ピッチで変化させた。
図8は、実施の形態1にかかる動作転移手法によって動作転移を行った場合の転移誤差と転移先ロボットアームの腕の長さとの関係を示す図である。
図9は、従来の動作転移手法によって動作転移を行った場合の転移誤差と転移先ロボットアームの腕の長さとの関係を示す図である。
図8及び9では、横軸は転移先ロボットアームの一方の腕ARM1の長さを示し、縦軸は転移先ロボットアームの他方の腕ARM2の長さを示す。
図8及び9では、パターンが濃いほど転移誤差(RMSE)が小さいことを示す。
【0069】
次いで、動作転移の制御性能について調査した。ここでは、転移先ロボットアームにおける目標地点(座標値)を無作為に生成し、生成した目標地点に向けて各腕を動かすための関節値を、転移データを用いたIDW(Inverse distance weighting)によって予測した。IDWについては、「D. Shepard, “A two-dimensional interpolation function for irregularly-spaced data”, Proceedings of the 1968 23rd ACM national conference, 1968.」に詳細が開示されている。そして、予測された関節値を用いて各腕を動かし、そのときの到達地点と目標地点とのRMSEを測定した。この例では、合計で200ステップの評価を実施した。
【0070】
図10は、実施の形態1にかかる動作転移手法により生成した転移データ用いた場合の制御性能を示す図である。
図11は、従来の動作転移手法により生成した転移データ用いた場合の制御性能を示す図である。
図10及び11では、横軸は転移先ロボットアームの一方の腕ARM1の長さを示し、縦軸は転移先ロボットアームの他方の腕ARM2の長さを示す。
図10及び11では、パターンが濃いほどRMSEが小さいことを示す。
図10及び11に示すように、実施の形態1にかかる動作転移手法によれば、RMSEを低減し、制御性能が向上していることが理解できる。
【0071】
[3自由度のロボットによる実験]
次いで、3次元上で動作する3自由度のロボットアームをシミュレータ上に作製し、更に実験を行った。
図12は、3自由度のロボットアーム2の概略構成を示す図である。3自由度のロボットアーム2は、第1の関節J21、第2の関節J22、第1の腕ARM1及び第2の腕ARM2を有する。第1の関節J21は2自由度の関節であり、第2の関節J22は、1自由度の関節である。ロボットアームの保持部10と第1の腕ARM1との間は、第1の関節J21により連結される。第1の腕ARM1と第2の腕ARM2との間は、第2の関節J22により連結される。第2の腕ARM2の先端にはエンドエフェクタ11が取り付けられる。すなわち、第1の関節J21は肩関節、第1の腕ARM1は上腕、第2の関節J22は肘関節、第2の腕ARM2は前腕に対応する。
【0072】
本実験では、転移元ロボットアームの第1の腕ARM1の長さを0.300m、第2の腕ARM2の長さを0.250mとした。転移先ロボットアームの第1の腕ARM1の長さを0.600m、第2の腕ARM2の長さを0.200mとした。また、第1の関節J21のヨー方向(水平面内)の可動範囲を−180°〜180°とし、ピッチ方向(鉛直面内)での可動範囲を0°〜180°とした。第2の関節J22のピッチ方向(鉛直面内)の可動範囲を0°〜180°とした。
【0073】
本実験では、転移元ロボットアームの関節を無作為に動かしたときに得られる関節値と、そのときのロボットアーム先端のエンドエフェクタの座標値(X−Y平面での座標値)とにより、転移元データセットを構成した。つまり、1回の学習で得られる学習データは、3次元の関節値と3次元の座標値との合計6次元である。この例では、データ数は約100,000とした。
【0074】
転移先サンプルデータセットについては、転移元データセットから無作為に選択された関節値と、選択された関節値を転移先ロボットアームに適用した場合に得られる、転移先ロボットアームのエンドエフェクタの座標値と、により構成した。
【0075】
まず、転移先サンプルデータセットのデータと転移誤差との関係について調査した。
図13に、3自由度のロボットアームにおける転移誤差を示す。本実験では、動作転移を行わなかった場合、すなわち転移元データセットをそのまま転移先ロボットアームに適用した場合、転移誤差(RMSE)は0.156[m]であった。
図13に示すように、一般的な手法(ここでは、LPAを用いた動作転移手法)と比べて、転移誤差(RMSE)を低減できることが理解できる。
【0076】
次いで、動作転移に要する処理時間について調査した。
図14に、3自由度のロボットアームにおける動作転移に要する時間を示す。この例では、データ数が5000までは、実施の形態1にかかる動作転移手法での処理時間は、一般的な手法(LPA)と比べて長くなることが判明した。これはデータの実施の次元数が大きくなったため、処理負荷が大きくなったためと考えられる。しかし、データ数が5000程度となると、十分なデータ数が得られ、その結果処理時間が収束したと考えられる。
【0077】
次いで、2自由度のロボットアームの場合と同様に、動作転移の制御性能について調査した。この例では、合計で200ステップの評価を実施した。
図15に、3自由度のロボットアームの制御性能を示す。
図15に示すように、データ数が500までは実施の形態1にかかる手法が良好な制御性能を示したが、データ数が5000以降ではLPAと実施の形態1にかかる手法とはほぼ同様の制御性能となった。
【0078】
[6自由度のロボットによる実験]
次いで、3次元上で動作する6自由度のロボットアームをシミュレータ上に作製し、更に実験を行った。
図16は、6自由度のロボットアーム2の概略構成を示す図である。6自由度のロボットアーム2は、第1の関節J31、第2の関節J32、第1の腕ARM1、第2の腕ARM2、手首部LISTを有する。第1の関節J31は2自由度の関節であり、第2の関節J32は、1自由度の関節である。手首部LISTの自由度は3であり、いわゆるユニバーサルジョイントとして構成される。ロボットアームの保持部10と第1の腕ARM1との間は、第1の関節J31により連結される。第1の腕ARM1と第2の腕ARM2との間は、第2の関節J32により連結される。第2の腕ARM2の先端は、手首部LISTによりエンドエフェクタ11と連結される。すなわち、第1の関節J21は肩関節、第1の腕ARM1は上腕、第2の関節J22は肘関節、第2の腕ARM2は前腕に対応する。
【0079】
本実験では、転移元ロボットアームの第1の腕ARM1の長さを0.300m、第2の腕ARM2の長さを0.250mとし、手首部LISTの長さを0.15mとした。転移先ロボットアームの第1の腕ARM1の長さを0.600m、第2の腕ARM2の長さを0.200mとし、手首部LISTの長さを0.09mとした。第1の関節J31のヨー方向(水平面内)の可動範囲を−85°〜85°とし、ピッチ方向(鉛直面内)での可動範囲を−175°〜115°とした。第2の関節J32のピッチ方向(鉛直面内)の可動範囲を−155°〜0°とした。手首部LISTのロール方向の可動範囲を−125°〜125°、ピッチ方向の可動範囲を−95°〜95°、ヨー方向の可動範囲を−130°〜190°とした。
【0080】
本実験では、転移元ロボットアームの関節を無作為に動かしたときに得られる関節値と、そのときのロボットアーム先端のエンドエフェクタの座標値(X−Y平面での座標値)とにより、転移元データセットを構成した。つまり、1回の学習で得られる学習データは、6次元の関節値と3次元の座標値との合計9次元である。この例では、データ数は500,000とした。
【0081】
転移先サンプルデータセットについては、転移元データセットから無作為に選択された関節値と、選択された関節値を転移先ロボットアームに適用した場合に得られる、転移先ロボットアームのエンドエフェクタの座標値と、により構成した。
【0082】
まず、転移先サンプルデータセットのデータと転移誤差との関係について調査した。
図17に、6自由度のロボットアームにおける転移誤差を示す。ここでは、動作転移を5回行い、これらの転移誤差の平均値で評価する。本実験では、動作転移を行わなかった場合、すなわち転移元データセットをそのまま転移先ロボットアームに適用した場合、転移誤差(RMSE)は0.206[m]であった。
図17に示すように、一般的な手法(ここでは、LPAを用いた動作転移手法)と比べて、転移誤差(RMSE)を低減できることが理解できる。また、転移先サンプルデータセットのデータ数の場合、LPAでは単位誤差が増加してしまったのに対し、実施の形態1にかかる動作転移手法では増加することなく当初誤差の約半分にまで転移誤差を低減させることができた。
【0083】
次いで、動作転移に要する処理時間について調査した。
図18に、6自由度のロボットアームにおける動作転移に要する時間を示す。この例では、一般的な手法(LPA)と比べ、実施の形態1にかかる動作転移手法での処理時間が長くなることが判明した。これはデータの実施の次元数がより大きくなったため、処理負荷が更に大きくなったためと考えられる。
【0084】
次いで、2自由度のロボットアームの場合と同様に、動作転移の制御性能について調査した。この例では、合計で200ステップの評価を実施した。
図19に、6自由度のロボットアームの制御性能を示す。
図19に示すように、データ数にかかわらず、実施の形態1にかかる手法が良好な制御性能を示した。
【0085】
<その他の実施の形態>
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、転移元の座標値と転移先の座標値とのマッピングにシグモイド関数を採用した。しかし、シグモイド関数に代えて、アークタンジェント(arctan)をはじめとする任意の関数を採用しても良い。
【0086】
また、上述の実施の形態では、関節値空間、座標値空間の2空間の存在を前提として動作情報の転移を行う手法を開示した。しかしながら、空間数は任意のNであって良い。この場合、上述の更新式は空間数に応じ任意に拡張することができる。例えば、センサ値の空間を追加し、関節値及び座標値の関数として座標値を定義することが考えられる。センサ値は、例えば腕の状態(折れや曲がり等)を示すデータであって良い。これにより、センサ値を考慮しながら動作を行うことができるので、ロボット自身やその周辺の状態に応じた動作の選択、動作の生成が行うことができると考えられる。
【0087】
また、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0088】
この出願は、2016年11月7日に出願された日本出願特願2016−217353を基礎とする優先権を主張し、その開示の全てをここに取り込む。