(57)【特許請求の範囲】
【請求項１】
転移元ロボットの複数の動作を示すデータを含む第１の動作情報を取得する転移元動作情報取得部と、
転移先ロボットの複数の動作を示すデータを含む第２の動作情報を取得する転移先動作情報取得部と、
前記第２の動作情報を用いて所定の更新式により前記第１の動作情報を補正することにより、前記転移元ロボットの動作を前記転移先ロボットに転移するための第３の動作情報を生成する補正部と、を備え、
前記第２の動作情報が含むデータ数は、前記第１の動作情報が含むデータ数よりも少なく、
前記第１〜第３の動作情報は、ロボットの１以上の関節値を示すデータ群と、ロボットの特定部位の座標値を示すデータ群と、を含み、
前記補正部は、
前記第２の動作情報に含まれる関節値と同一の関節値を、前記第１の動作情報に含まれる関節値から探し出し、
探し出された関節値に対応する前記第１の動作情報に含まれる座標値と前記第２の動作情報に含まれる座標値との間の誤差を算出し、
算出した座標値の誤差から、最大値である最大誤差を選択し、
前記最大誤差に対応する前記第２の動作情報に含まれる関節値を選択し、
前記第１の動作情報に含まれる座標値のそれぞれに対応する関節値と前記最大誤差に対応する関節値との間の誤差をパラメータとして含む前記更新式を用いて、前記第１の動作情報に含まれる座標値のそれぞれに前記最大誤差を伝搬させて、前記第３の動作情報を生成する、
動作転移装置。
【請求項２】
前記補正部は、前記最大誤差が設定された閾値よりも小さくなるまで、前記更新式を用いた誤差の伝搬を繰り返し行う、
請求項１に記載の動作転移装置。
【請求項３】
座標値をｘ、前記最大誤差をΔｘ、ｓｇｍ（ａ，ｄ）をゲインａ及び変数ｄのシグモイド関数、ｄを前記更新式に含まれる前記パラメータとして含まれる関節値の誤差として、前記更新式は、ｘ＝ｘ＋２ｓｇｍ（ａ，ｄ）×Δｘで表される、
請求項１又は２に記載の動作転移装置。
【請求項４】
前記第１の動作情報に含まれる座標値は、前記転移元ロボットを動作させて得られた複数の座標値を前記複数の座標値のうちの最大値で除算した値であり、
前記第２の動作情報に含まれる座標値は、前記転移先ロボットを動作させて得られた複数の座標値を前記複数の座標値のうちの最大値で除算した値であり、
前記更新式のパラメータｄは、前記第１の動作情報に含まれる座標値のそれぞれに対応する関節値と前記最大誤差に対応する関節値との間の前記誤差を、前記誤差の内の最大値で除算した値である、
請求項３に記載の動作転移装置。
【請求項５】
転移元ロボットの複数の動作を示すデータを含む第１の動作情報を取得し、
転移先ロボットの複数の動作を示すデータを含む第２の動作情報を取得し、
前記第２の動作情報を用いて所定の更新式により前記第１の動作情報を補正することにより、前記転移元ロボットの動作を前記転移先ロボットに転移するための第３の動作情報を生成し、
前記第２の動作情報が含むデータ数は、前記第１の動作情報が含むデータ数よりも少なく、
前記第１〜第３の動作情報は、ロボットの１以上の関節値を示すデータ群と、ロボットの特定部位の座標値を示すデータ群と、を含み、
前記第２の動作情報に含まれる関節値と同一の関節値を、前記第１の動作情報に含まれる関節値から探し出し、
探し出された関節値に対応する前記第１の動作情報に含まれる座標値と前記第２の動作情報に含まれる座標値との間の誤差を算出し、
算出した座標値の誤差から、最大値である最大誤差を選択し、
前記最大誤差に対応する前記第２の動作情報に含まれる関節値を選択し、
前記第１の動作情報に含まれる座標値のそれぞれに対応する関節値と前記最大誤差に対応する関節値との間の誤差をパラメータとして含む前記更新式を用いて、前記第１の動作情報に含まれる座標値のそれぞれに前記最大誤差を伝搬させて、前記第３の動作情報を生成する、
動作転移方法。
【請求項６】
転移元ロボットの複数の動作を示すデータを含む第１の動作情報を取得する処理と、
転移先ロボットの複数の動作を示すデータを含む第２の動作情報を取得する処理と、
前記第２の動作情報を用いて所定の更新式により前記第１の動作情報を補正することにより、前記転移元ロボットの動作を前記転移先ロボットに転移するための第３の動作情報を生成する処理と、をコンピュータに実行させ、
前記第２の動作情報が含むデータ数は、前記第１の動作情報が含むデータ数よりも少なく、
前記第１〜第３の動作情報は、ロボットの１以上の関節値を示すデータ群と、ロボットの特定部位の座標値を示すデータ群と、を含み、
前記第３の動作情報を生成する処理では、
前記第２の動作情報に含まれる関節値と同一の関節値を、前記第１の動作情報に含まれる関節値から探し出し、
探し出された関節値に対応する前記第１の動作情報に含まれる座標値と前記第２の動作情報に含まれる座標値との間の誤差を算出し、
算出した座標値の誤差から、最大値である最大誤差を選択し、
前記最大誤差に対応する前記第２の動作情報に含まれる関節値を選択し、
前記第１の動作情報に含まれる座標値のそれぞれに対応する関節値と前記最大誤差に対応する関節値との間の誤差をパラメータとして含む前記更新式を用いて、前記第１の動作情報に含まれる座標値のそれぞれに前記最大誤差を伝搬させて、前記第３の動作情報を生成する、
動作転移プログラムが格納された非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動作転移装置、動作転移方法及び動作転移プログラムに関し、例えば転移先ロボットで取得した少量の学習サンプルを用いて、転移元ロボットからの動作転移を行う技術に関する。
【背景技術】
【０００２】
現在、ロボットが家庭をはじめとする人間社会に急速に進出している。現在のところ、ロボットのための知的発達機構は未だ発展途上であり、実行できる動作や理解できる事柄は限られている。一方、機体の特性がそれぞれ異なる多種多様なロボットが開発され、それらが一般家庭へ導入されることを想定すると、それらのロボット１つ１つに独立に動作等を学習させることは非効率的である。【０００３】
そこで、ロボットが学習した知識、特に動作情報をロボット同士で共有できる手法が必要となる。このように、ロボット同士が動作情報の共有によって動作を獲得することを、動作の転移（動作転移）という。換言すれば、動作転移とは、転移元（ソースドメイン）のロボット上で獲得した動作情報を利用して、転移先（ターゲットドメイン）のロボットが動作を効率的に学習することである。【０００４】
ロボットの動作の基となる情報（動作情報）は、例えばある物理特性（例えば腕の長さ、関節の数等）を有するロボットについて、関節角（関節値）と、腕の先端部分の座標（エンドエフェクタ）と、の対応関係を集積した情報として考えることができる。このような動作情報を用いることで、ロボットは動作を行うことができる。したがって、ロボットの動作転移においては、物理特性が重要な意味を有する。しかし、ロボットの物理特性を、多種多様なロボット間で統一することは、一般的に困難である。そのため、動作転移においては、他のロボットから得た動作情報を、自らの物理特性に合わせる処理が重要となる。【０００５】
このような手法としては、転移先ロボットの物理特性を得たうえで、移転元ロボットの動作情報を、移転先ロボットの物理特性に適合するよう加工する手法が一般的である。しかし、この手法では、事前に移転先ロボットの物理特性を測定するなどの準備が必要となる。また、移転先ロボットの物理特性が変更された場合や、測定に誤差が生じていた場合には、正確な動作ができないという問題もある。さらに、人や動物は、事前に自己の体の物理特性を得ることなく、動作を学習できている。これらより、移転先ロボットの物理特性を事前に想定せず、実機における経験ベースで動作転移を実現することが、より現実的に則したアプローチと考えられる。【０００６】
この点、非特許文献１は、転移先ロボットの物理特性が一部未知であっても、転移元ロボットと転移先ロボットとの双方から取得した同数の動作サンプルを利用して、転移元ロボットの動作サンプルを転移先に転移する手法を提案している。なお、ここでの動作転移は、行列計算によるフィッティングで実現されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Ｂｏｔｏｎｄ  Ｂｏｃｓｉ外２名，“Ａｌｉｇｎｍｅｎｔ−ｂａｓｅｄ  Ｔｒａｎｓｆｅｒ  Ｌｅａｒｎｉｎｇ  ｆｏｒ  Ｒｏｂｏｔ  Ｍｏｄｅｌｓ”，［ｏｎｌｉｎｅ］，２０１３年，［２０１４年１０月６日検索］，ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｃｓ．ｕｂｂｃｌｕｊ．ｒｏ／〜ｂｂｏｔｉ／ｐｕｂｓ／ｉｊｃｎｎ＿２０１３．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献１は、動作転移において必要となるデータサンプルの量への言及が少なく、転移元ロボットと転移先ロボットとの双方で同数のデータサンプルを取得することが必要と考えられる。すなわち、同手法では転移元のみならず転移先においても大量の学習サンプルを取得する必要がある。そのため、動作転移に大量の時間、工数及び費用等を要し、迅速かつ正確な動作転移ができないという問題があった。【０００９】
一般に、転移元ロボットについては、シミュレータや実験施設内の実機等を用いることにより、大量の動作サンプルを取得することが比較的容易である。しかし、転移先ロボットは、家庭内などで現実の稼働に供される実機であることが想定され、このような状況のもとでは移転元ロボットと同量の学習サンプルを取得することは困難と考えられる。したがって、転移先ロボットにおいては大量の学習サンプルを取得する工程を要せず、高い効率で動作転移を実現する手法が望まれる。【００１０】
本発明は、このような問題点を解決するためになされたものであり、転移先ロボットで取得した少量の学習サンプルを用いて、転移元ロボットからの動作転移を実現することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の態様である動作転移装置は、転移元ロボットの複数の動作を示すデータを含む第１の動作情報を取得する転移元動作情報取得部と、転移先ロボットの複数の動作を示すデータを含む第２の動作情報を取得する転移先動作情報取得部と、前記第２の動作情報を用いて所定の更新式により前記第１の動作情報を補正することにより、前記転移元ロボットの動作を前記転移先ロボットに転移するための第３の動作情報を生成する補正部と、を有し、前記第２の動作情報が含むデータ数は、前記第１の動作情報が含むデータ数よりも少なく、前記第１〜第３の動作情報は、ロボットの１以上の関節値を示すデータ群と、ロボットの特定部位の座標値を示すデータ群と、を含み、前記補正部は、前記第２の動作情報に含まれる関節値と同一の関節値を、前記第１の動作情報に含まれる関節値から探し出し、探し出された関節値に対応する前記第１の動作情報に含まれる座標値と前記第２の動作情報に含まれる座標値との間の誤差を算出し、算出した座標値の誤差から、最大値である最大誤差を選択し、前記最大誤差に対応する前記第２の動作情報に含まれる関節値を選択し、前記第１の動作情報に含まれる座標値のそれぞれに対応する関節値と前記最大誤差に対応する関節値との間の誤差をパラメータとして含む前記更新式を用いて、前記第１の動作情報に含まれる座標値のそれぞれに前記最大誤差を伝搬させて、前記第３の動作情報を生成する、ものである。【００１２】
本発明の第２の態様である動作転移装置は、上述の動作転移装置であって、前記補正部は、前記最大誤差が設定された閾値よりも小さくなるまで、前記更新式を用いた誤差の伝搬を繰り返し行う、ことが望ましい。【００１３】
本発明の第３の態様である動作転移装置は、上述の動作転移装置であって、座標値をｘ、前記最大誤差をΔｘ、ｓｇｍ（ａ，ｄ）をゲインａ及び変数ｄのシグモイド関数、ｄを前記更新式に含まれる前記パラメータとして含まれる関節値の誤差として、前記更新式は、ｘ＝ｘ＋２ｓｇｍ（ａ，ｄ）×Δｘで表される、ことが望ましい。【００１４】
本発明の第４の態様である動作転移装置は、上述の動作転移装置であって、前記第１の動作情報に含まれる座標値は、前記転移元ロボットを動作させて得られた複数の座標値を前記複数の座標値のうちの最大値で除算した値であり、前記第２の動作情報に含まれる座標値は、前記転移先ロボットを動作させて得られた複数の座標値を前記複数の座標値のうちの最大値で除算した値であり、前記更新式のパラメータｄは、前記第１の動作情報に含まれる座標値のそれぞれに対応する関節値と前記最大誤差に対応する関節値との間の前記誤差を、前記誤差の内の最大値で除算した値である、ことが望ましい。【００１５】
本発明の第５の態様である動作転移方法は、転移元ロボットの複数の動作を示すデータを含む第１の動作情報を取得し、転移先ロボットの複数の動作を示すデータを含む第２の動作情報を取得し、前記第２の動作情報を用いて所定の更新式により前記第１の動作情報を補正することにより、前記転移元ロボットの動作を前記転移先ロボットに転移するための第３の動作情報を生成し、前記第２の動作情報が含むデータ数は、前記第１の動作情報が含むデータ数よりも少なく、前記第１〜第３の動作情報は、ロボットの１以上の関節値を示すデータ群と、ロボットの特定部位の座標値を示すデータ群と、を含み、前記第２の動作情報に含まれる関節値と同一の関節値を、前記第１の動作情報に含まれる関節値から探し出し、探し出された関節値に対応する前記第１の動作情報に含まれる座標値と前記第２の動作情報に含まれる座標値との間の誤差を算出し、算出した座標値の誤差から、最大値である最大誤差を選択し、前記最大誤差に対応する前記第２の動作情報に含まれる関節値を選択し、前記第１の動作情報に含まれる座標値のそれぞれに対応する関節値と前記最大誤差に対応する関節値との間の誤差をパラメータとして含む前記更新式を用いて、前記第１の動作情報に含まれる座標値のそれぞれに前記最大誤差を伝搬させて、前記第３の動作情報を生成する、ものである。【００１６】
本発明の第６の態様である動作転移プログラムは、転移元ロボットの複数の動作を示すデータを含む第１の動作情報を取得する処理と、転移先ロボットの複数の動作を示すデータを含む第２の動作情報を取得する処理と、前記第２の動作情報を用いて所定の更新式により前記第１の動作情報を補正することにより、前記転移元ロボットの動作を前記転移先ロボットに転移するための第３の動作情報を生成する処理と、をコンピュータに実行させ、前記第２の動作情報が含むデータ数は、前記第１の動作情報が含むデータ数よりも少なく、前記第１〜第３の動作情報は、ロボットの１以上の関節値を示すデータ群と、ロボットの特定部位の座標値を示すデータ群と、を含み、前記第３の動作情報を生成する処理では、前記第２の動作情報に含まれる関節値と同一の関節値を、前記第１の動作情報に含まれる関節値から探し出し、探し出された関節値に対応する前記第１の動作情報に含まれる座標値と前記第２の動作情報に含まれる座標値との間の誤差を算出し、算出した座標値の誤差から、最大値である最大誤差を選択し、前記最大誤差に対応する前記第２の動作情報に含まれる関節値を選択し、前記第１の動作情報に含まれる座標値のそれぞれに対応する関節値と前記最大誤差に対応する関節値との間の誤差をパラメータとして含む前記更新式を用いて、前記第１の動作情報に含まれる座標値のそれぞれに前記最大誤差を伝搬させて、前記第３の動作情報を生成する、ものである。
【発明の効果】
【００１７】
本発明によれば、転移先ロボットで取得した少量の学習サンプルを用いて、転移元ロボットからの動作転移を実現することができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１にかかる動作転移装置の構成を模式的に示すブロック図である。
【図２】実施の形態１にかかる動作転移装置の動作を示すフローチャートである。フローチャートが示す処理の一実装例である。
【図３】実施の形態１にかかる動作転移装置の動作アルゴリズムの一例を示す図である。
【図４】２自由度のロボットアームの概略構成を示す図である。
【図５】２自由度のロボットアームの２次元平面（Ｘ−Ｙ平面）における作業空間を示す図である。
【図６】２自由度のロボットアームにおける動作転移誤差を示す図である。
【図７】２自由度のロボットアームにおいて動作転移に要する時間を示す図である。
【図８】実施の形態１にかかる動作転移手法によって動作転移を行った場合の転移誤差と転移先ロボットアームの腕の長さとの関係を示す図である。
【図９】従来の動作転移手法によって動作転移を行った場合の転移誤差と転移先ロボットアームの腕の長さとの関係を示す図である。比較実験の結果を示す図である。
【図１０】実施の形態１にかかる動作転移手法により生成した転移データ用いた場合の制御性能を示す図である。
【図１１】従来の動作転移手法により生成した転移データ用いた場合の制御性能を示す図である。
【図１２】３自由度のロボットアームの概略構成を示す図である。
【図１３】３自由度のロボットアームにおける転移誤差を示す図である。
【図１４】３自由度のロボットアームにおける動作転移に要する時間を示す図である。
【図１５】３自由度のロボットアームの制御性能を示す図である。
【図１６】６自由度のロボットアームの概略構成を示す図である。
【図１７】６自由度のロボットアームにおける転移誤差を示す図である。
【図１８】６自由度のロボットアームにおける動作転移に要する時間を示す図である。
【図１９】６自由度のロボットアームの制御性能を示す図である。
【図２０】本発明にかかる動作転移の概念を示す図である。
【発明を実施するための形態】
【００１９】
はじめに、本発明にかかる動作転移の前提となる諸条件について説明する。本発明は、以下の条件の下に、あるロボット間で動作転移を実施する手法を提案するものである（図２０）。後述する本発明の実施の形態も、以下の条件に従うものとする。なお、ここでロボットの動作とは、腕のエンドエフェクタ（人間の手先にあたる、腕の先端部分）などのロボットの特定の部分を任意の場所（座標値）へ移動させることを指す。
【００２０】
条件１：転移元及び転移先ロボットはいずれも、関節数が既知であり、かつ等しいものとする。
条件２：関節数以外の物理特性（例えば腕の長さ等）は未知であるものとする。
条件３：転移元ロボットは、大量の動作サンプルが抽出可能であるものとする。典型的にはシミュレータ上又は実験施設内に存在するロボットである。
条件４：転移先ロボットは、少量の動作サンプルのみが抽出可能であるものとする。典型的には実機のロボットである。
【００２１】
本発明にかかる動作転移手法は、上述の制約条件を満たす転移元ロボットから、転移先ロボットに動作を転移させるものである。動作転移とは、転移元ロボット上で作成された動作の経験データベースである転移元データセットＤｓｒｃから、転移先ロボットの作業空間に合わせた経験データベースである転移データＤｔｒａｎｓを作成することを意味している。このとき、転移データＤｔｒａｎｓは、まず転移先ロボットにて少量の動作を行って転移先サンプルデータセットＤｔｇｔを作成し、次に転移先サンプルデータセットＤｔｇｔを用いて転移元データセットＤｓｒｃを補正することで作成される。ここで、転移先サンプルデータセットＤｔｇｔのサイズは、転移元データセットＤｓｒｃよりも小さく、転移データＤｔｒａｎｓのサイズは転移元データセットＤｓｒｃと同等である。
【００２２】
したがって、本手法によれば、転移先ロボットを実際に大量に動作させてデータセットを生成する場合に比べ、少ないデータセットでの学習（すなわち、動作転移）が可能である。また、転移元データセットＤｓｒｃをそのままコピーして転移データＤｔｒａｎｓを生成する場合に比べ、動作転移の精度を向上させることができる。
【００２３】
転移元データセットＤｓｒｃ等の経験データベースは、単に関節値と座標値とのペアの集合であってもよい。また、転移元データセットＤｓｒｃ等の経験データベースは、単純なデータベース（単純なペアの情報を記録したデータベース）の他にも、例えば、競合学習を用いた自己組織化マップＳＯＭ（Ｓｅｌｆ  Ｏｒｇａｎｉｚｉｎｇ  Ｍａｐｓ）や、ＳＯＭを改良した追加学習可能なオンライン教師なし学習手法であるＳＯＩＮＮ（Ｓｅｌｆ  Ｏｒｇａｎｉｚｉｎｇ  Ｉｎｃｒｅｍｅｎｔａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）等を用いて情報を圧縮したものであってもよい。ＳＯＭ及びＳＯＩＮＮについては下記参考文献１及び参考文献２に説明されているため、ここでは詳細な説明を省略する。
（参考文献１）Ｋｏｈｏｎｅｎ  Ｔ．，“Ｓｅｌｆ−ｏｒｇａｎｉｚｅｄ  ｆｏｒｍａｔｉｏｎ  ｏｆ  ｔｏｐｏｌｏｇｉｃａｌｌｙ  ｃｏｒｒｅｃｔ  ｆｅａｔｕｒｅ  ｍａｐｓ”，Ｂｉｏｌｏｇｉｃａｌ  Ｃｙｂｅｒｎｅｔｉｃｓ  Ｖｏｌ．４３，ｐｐ．５９−６９，１９８２年
（参考文献２）Ｓｈｅｎ  Ｆ．，Ｈａｓｅｇａｗａ  Ｏ．，“Ａ  Ｆａｓｔ  Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒ  Ｃｌａｓｓｉｆｉｅｒ  Ｂａｓｅｄ  ｏｎ  Ｓｅｌｆ−ｏｒｇａｎｉｚｉｎｇ  Ｉｎｃｒｅｍｅｎｔａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ”，Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ，２００８年
【００２４】
以下、ロボット上で動作の経験データベースＤを作成する方法について説明する。この方法は、転移元データセットＤｓｒｃ及び転移先サンプルデータセットＤｔｇｔの作成に適用できる。一般に、ロボットの物理特性が既知の場合は、公知技術であるＩｎｖｅｒｓｅ  Ｋｉｎｅｍａｔｉｃｓ（ＩＫ）を用いることにより、腕のエンドエフェクタを任意の場所に移動させる制御が可能である。ところが、今回の仮定ではその物理特性が未知である。したがって、本発明の手法では、経験ベースのＩＫを実施することによりエンドエフェクタの移動を行う。以下、経験ベースのＩＫを実行するためにロボットが獲得すべきデータと、そのデータを用いたＩＫの実行方法について説明する。
【００２５】
まず、対象とするロボットが持つ全ての関節の関節角を示すデータである関節値セットＪを生成する。関節値セットＪは、以下の通りに表現できる。ここで、ｉは１以上ｎ以下の整数であり（ここで、ｎは少なくとも２以上の整数）、関節値をサンプリングしたロボットの姿勢を表す指標である。
【数１】
0006518982.tif 000002
なお、関節値セットＪの成分である関節値
【数２】
0006518982.tif 000003
は、関節数分の成分からなるベクトル量であり、例えばｍ軸のロボット、すなわちｍ個の関節を持つロボットの場合には、ｍ次元ベクトルとなる。
【００２６】
そして、関節値セットＪに含まれる関節値のそれぞれを用いて実際にロボットを動作させ、ロボットの各種センサ情報（例えば視覚情報等）により腕のエンドエフェクタの絶対座標値（以下、単に座標値という）を求める。シミュレータ上のロボットなど、物理特性が既知の場合には、Ｆｏｒｗａｒｄ  Ｋｉｎｅｍａｔｉｃｓを用いることで、座標値取得の所要時間を短縮できる。そして、計算された座標値をまとめたデータセットである座標値セットＸを生成する。座標値セットは、以下の通りに表現できる。
【数３】
0006518982.tif 000004
なお、座標値セットＸの成分である座標値
【数４】
0006518982.tif 000005
は、平面上の座標を示す２次元ベクトル又は３次元空間における座標を示す３次元ベクトルとして定義される。ロボットの関節値からエンドエフェクタの座標値は一意に決定されるので、関節値と座標値との間には関数の関係がある。
【００２７】
これらの経験、すなわち実際の動作から獲得される関節値セット及び座標値セットからなるデータセットをデータセットＤとする。データセットＤは、以下の式で表される。
【数５】
0006518982.tif 000006
【００２８】
実施の形態１
【００２９】
実施の形態１にかかる動作ｎ転移では、転移先ロボットにおいて少量の動作サンプルである転移先サンプルデータセットＤｔｇｔを取得し、転移先サンプルデータセットＤｔｇｔの座標値セットＸｔｇｔを用いて、かつ、ＳＯＭを参考に作成した更新式により、転移元ロボットの転移元データデットの座標値セットＸｓｒｃを補正して、転移データＤｔｒａｎｓを生成するものである。
【００３０】
ＳＯＭ変形法は、いわゆるＳＯＭ（Ｓｅｌｆ  Ｏｒｇａｎｉｚｉｎｇ  Ｍａｐｓ）の更新式から着想されたアルゴリズムである。ＳＯＭは、ネットワーク構造（トポロジー）を入力に合わせて変化させる手法としてＫｏｈｏｎｅｎらによって考案された自己組織化マップである。ＳＯＭは人工ニューラルネットワークの一種であり、入力に従ってニューロンのトポロジーを変形させる機構を持つ。ＳＯＭの学習方式は競合学習であり、入力に対する近傍ニューロンに対して更新を行う。
【００３１】
一方、従来のＳＯＭとＳＯＭ変形法とでは対象とする問題設定が異なるため、ＳＯＭ変形法では、更新率の変動方法に新たな知見を加えている。従来のＳＯＭは、１つの空間内におけるノードの更新を行うものであり、当該空間内における、入力と、入力の近傍ノードと、の距離を用いて更新率の決定を行っている。一方、ＳＯＭ変形法は、関節値空間（関節値セット）及びエンドエフェクタの座標値空間（座標値セット）という２つの空間が存在することを前提としている。本手法においては、入力されたデータに応じて更新が行われる空間は、座標値空間が適当と考えられる。但し、上述のように座標値と関節値との間には一定の制約条件が存在することから、関節値空間における関節値の距離も考慮することが重要である。そこで、本手法では、関節値空間における関節値の距離を、座標値空間の更新に反映させることで、動作転移の精度を向上させている。
【００３２】
以下、ＳＯＭ変形法により転移データＤｔｒａｎｓを求める手法を具体的に説明する。まず、実施の形態１にかかる動作転移装置１００の構成について説明する。図１は、実施の形態１にかかる動作転移装置１００の構成を模式的に示すブロック図である。
【００３３】
動作転移装置１００は、典型的にはサーバコンピュータ、パーソナルコンピュータ（ＰＣ）等の情報処理装置である。典型的な動作転移装置１００は、演算処理装置、揮発性又は不揮発性の記憶装置、及び入出力装置を有する。演算処理装置は、記憶装置に格納されたプログラムに基づいて各種制御を実行することにより、後述の各処理部を論理的に実現する。動作転移装置１００は、物理的に単一である必要はなく、複数の情報処理装置による分散処理により実現されてもよい。また、動作転移装置１００は、例えば転移先ロボットに内蔵されてもよく、又は、転移先ロボットとは分離されていてもよい。
【００３４】
図１に示すように、動作転移装置１００は、転移元動作情報取得部１０１、転移先動作情報取得部１０２、補正部１０３及び出力部１０４を有する。
【００３５】
転移元動作情報取得部１０１は、転移元ロボットを動作させるための転移元データセットＤｓｒｃを取得する。転移元データセットＤｓｒｃは、関節値セットJｓｒｃ及びエンドエフェクタの座標値セットＸｓｒｃを含む（すなわち、Ｄｓｒｃ＝<Ｊｓｒｃ, Ｘｓｒｃ>）。典型的には、転移元データセットＤｓｒｃは、シミュレータ上及び実験施設内等において転移元ロボットを幾度にもわたり動作させ、エンドエフェクタと、それに対応する関節値と、のペアを多数取得することにより生成できる。本実施の形態では、転移元データセットＤｓｒｃは予め生成済みであるものとし、転移元動作情報取得部１０１は、入力装置又は記憶装置から転移元データセットＤｓｒｃを取得するものとする。
【００３６】
転移先動作情報取得部１０２は、転移先ロボットを試験動作させた際に得られたデータセットである転移先サンプルデータセットＤｔｇｔを取得する。転移先サンプルデータセットＤｔｇｔは、関節値セットJｔｇｔ及びエンドエフェクタの座標値セットＸｔｇｔを含む（すなわち、Ｄｔｇｔ＝<Ｊｔｇｔ, Ｘｔｇｔ>）。典型的には、転移先サンプルデータセットＤｔｇｔは、転移元ロボットを何度かランダムに動作させ、エンドエフェクタの座標値と、それに対応する関節値と、のペアを幾つか取得することにより生成できる。ここで、転移先サンプルデータセットＤｔｇｔの大きさは、転移元データセットＤｓｒｃよりも極めて小さくてよい。すなわち、転移元ロボットの動作試行回数に比べて、転移先ロボットの動作試行回数は少なくてもよい。本実施の形態では、転移先サンプルデータセットＤｔｇｔは予め生成済みであるものとし、転移先動作情報取得部１０２は、入力装置又は記憶装置から転移先サンプルデータセットＤｔｇｔを取得するものとする。
【００３７】
補正部１０３は、転移先サンプルデータセットＤｔｇｔを利用して、転移元データセットＤｓｒｃを転移データＤｔｒａｎｓに変形する処理を行う。本実施の形態では、補正部１０３はＳＯＭ変形法を用いた変形処理を行う。
【００３８】
出力部１０４は、補正部１０３が生成した転移データＤｔｒａｎｓを外部に出力する。転移先ロボットは、出力部１０４が出力した転移データＤｔｒａｎｓ取得し、これに基づいた動作を行うことで、転移元ロボット同様の動作を獲得できる。
【００３９】
つづいて、図２のフローチャートを用いて、本発明の実施の形態１にかかる動作転移装置１００の動作について説明する。なお、図３のアルゴリズムは、上記フローチャートが示す処理の一実装例である。図３のアルゴリズムにおいては、Ａをある集合として、ｎｕｍ（Ａ）は、集合Ａに含まれる要素の数を表すものとする。ｓｇｍ（ａ,ｘ）は、ゲインａのシグモイド関数を表すものとする。ａｅは、ゲインａを決定するためのパラメータである。ｅは、以下で説明する誤差が満たすべき閾値を示す。
【００４０】
ステップＳ１１：パラメータｔの初期設定
まず、補正部１０３は、繰り返し処理の指標となるパラメータｔの初期値として、「１」を設定する（図３、第１行）。以下では、ｔは、例えば１≦ｔ≦ｎｕｍ（Ｄｔｇｔ）を満たす整数が設定される。
【００４１】
ステップＳ１２：データセットの正規化
転移元動作情報取得部１０１は、転移元データセットＤｓｒｃを取得する。次いで、転移元動作情報取得部１０１は、転移元データセットＤｓｒｃに含まれる座標値セットＸｓｒｃ内の要素のうちの最大値（ｍａｘ｜Ｘｓｒｃ｜）を選択し、選択した最大値で座標値セットＸｓｒｃ内の各要素を除算したものを、新たな座標値セットＸｓｒｃとして設定する（図３、第２行）。これにより、転移元データセットＤｓｒｃに含まれる座標値セットＸｓｒｃが正規化される。
転移先動作情報取得部１０２は、転移先サンプルデータセットＤｔｇｔを取得する。次いで、転移先動作情報取得部１０２は、転移先サンプルデータセットＤｔｇｔに含まれる座標値セットＸｔｇｔ内の要素のうちの最大値（ｍａｘ｜Ｘｔｇｔ｜）を選択し、選択した最大値で座標値セットＸｔｇｔ内の各要素を除算したものを、新たな座標値セットＸｔｇｔとして設定する（図３、第３行）。これにより、転移先サンプルデータセットＤｔｇｔに含まれる座標値セットＸｔｇｔが正規化される。
【００４２】
ステップＳ１３：転移データの初期設定
補正部１０３は、転移元ロボットから転移先ロボットに動作を転移するための転移データＤｔｒａｎｓを生成する。この際、転移データＤｔｒａｎｓの初期値として、ステップＳ１２にて座標値セットが正規化された転移元データセットＤｓｒｃと同じ値を、転移データＤｔｒａｎｓとして設定する（図３、第４行）。
【００４３】
ステップＳ１４：座標値の誤差算出
補正部１０３は、転移先サンプルデータセットＤｔｇｔの関節値セットＪｔｇｔに含まれる関節値
【数６】
0006518982.tif 000007
のそれぞれについて、転移データＤｔｒａｎｓの関節値セットＪｔｒａｎｓから同じ関節値
【数７】
0006518982.tif 000008
を探し出す。
次いで、補正部１０３は、関節値
【数８】
0006518982.tif 000009
のそれぞれに対応する座標値
【数９】
0006518982.tif 000010
を、転移データＤｔｒａｎｓの座標値セットＸｔｒａｎｓから探し出す。そして、同じ関節値に対応している座標値
【数１０】
0006518982.tif 000011
と座標値
【数１１】
0006518982.tif 000012
との間の誤差Δｘを算出する。この距離算出を転移先サンプルデータセットＤｔｇｔの座標値セットＸｔｇｔに含まれるすべて誤差算出をすべての関節値について行うことで、算出した誤差を要素とする誤差データセットΔＸが生成される（図３、第５行）。
【００４４】
ステップＳ１５：誤差の最大値の決定
補正部１０３は、誤差データセットΔＸに含まれる距離のうち、最大値ｍａｘ（｜ΔＸ｜）を決定する（図３、第６行）。
【００４５】
ステップＳ１６：誤差の最大値の評価
補正部１０３は、最大値ｍａｘ（｜ΔＸ｜）が所定の閾値ｅ以上であるかを判定する（図３、第７行）。
【００４６】
ステップＳ１７：ゲインａ算出
最大値ｍａｘ（｜ΔＸ｜）が所定の閾値ｅ以上である場合、補正部１０３は、以下の式に基づいてシグモイド関数のゲインａを算出する（図３、第８行）。
【数１２】
0006518982.tif 000013
【００４７】
ここで補正部１０３は、転移先サンプルデータセットＤｔｇｔの変形処理にかかるパラメータａｅを適宜設定してもよい（図３、第８行）。つまり、変形処理に用いるシグモイド関数の特性を設定するためのパラメータａｅを設定することができる。シグモイド関数の特性を変更することで、変形処理（学習処理）のスピードを調整することが可能である。なお、このパラメータは任意に設定して構わない。
【００４８】
ステップＳ１８：関節値の偏差算出
次いで、補正部１０３は、最大値ｍａｘ（｜ΔＸ｜）に対応する転移先サンプルデータセットＤｔｇｔに含まれる関節値を
【数１３】
0006518982.tif 000014
とすると、関節値
【数１４】
0006518982.tif 000015
と転移データＤｔｒａｎｓの各関節値
【数１５】
0006518982.tif 000016
との間の偏差ｄｊを計算する。
【数１６】
0006518982.tif 000017
そして、算出した偏差の最大値で偏差にそれぞれを除算することで、各偏差を正規化する（図３、第９〜１１行）。
【数１７】
0006518982.tif 000018
【００４９】
ステップＳ１９：誤差伝搬
補正部１０３は、シグモイド関数を用いて、転移データＤｔｒａｎｓに含まれる座標値に誤差を、以下に示す更新式（１８）によって、伝搬させる（図３、第１２、１３行）。
【数１８】
0006518982.tif 000019
【００５０】
ステップＳ２０：パラメータｔのインクリメント
誤差伝搬の後、補正部１０３は、パラメータｔをインクリメントする（ｔに１を加算する。すなわち、ｔ＝ｔ＋１）（図３、第１６行）。
【００５１】
ステップＳ２１：繰り返し処理回数の検証
補正部１０３は、パラメータｔが、ｎｕｍ（Ｄｔｇｔ）よりも小さいかを判定する。
【００５２】
パラメータｔがｎｕｍ（Ｄｔｇｔ）よりも小さい場合には、処理をステップＳ１４に返す。これにより、誤算伝搬により更新された転移データＤｔｒａｎｓを用いた誤差伝搬が繰り返し行われることとなる（図３、第１４、１５行、及び第７行以降）。
【００５３】
ステップＳ２２
繰り返し処理が進むにつれて（繰り返し処理の回数が増えるにつれて）、上記の誤差は縮小してゆくので、算出される誤差の最大値が小さくなってゆくこととなる。そして、繰り返し処理の結果、誤差の最大値が閾値ｅよりも小さくなった場合には、以下の式に基づいて、正規化された座標値を元の座標値に戻し、処理を終了する。
【数１９】
0006518982.tif 000020
【００５４】
誤差の最大値が閾値ｅよりも小さくならない場合でも、パラメータｔがｎｕｍ（Ｄｔｇｔ）と等しくなったときには、処理の発散を避けるため、処理を終了する。
【００５５】
本実施の形態では、関節値空間の計算を、座標値空間の計算に先立って行っている。これは、ある座標値に対応する関節値が複数存在する場合があるためである。このような場合に座標値空間の計算を行うと、座標値に対応する関節値を探し出すことができないからである。
【００５６】
ここで、上記更新式（１８）は、従来のＳＯＭの更新式を基としながら、座標値空間の更新を行うに際し、関節値空間の情報も加味している点に留意されたい。これは、従来のＳＯＭとは異なり、本発明では関節値空間及び座標値空間という複数の空間を扱う必要があることに起因している。
【００５７】
本実施の形態においては、動作転移装置１００は、ＳＯＭ変形法を用いて、転移元ロボットのデータセットを変形し、転移先ロボットに最適化されたデータセットを生成する。この変形処理においては、転移先ロボットにおいて取得された、上記データセットに含まれるよりも少ない数の動作サンプルが用いられる。これにより、たとえ転移先ロボット上で大量の動作サンプルを得ていなくても、転移元ロボットの動作を、転移先ロボットにて獲得することができる。すなわち、同等の動作を実施できることとなり、動作が転移される。
【００５８】
さらに、本実施の形態によれば、従来技術に比較して少量の計算量で動作転移を実現できる。特に、転移先ロボットにおける学習サンプルが従来よりも少なくて済むことから、計算量を大幅に削減することが可能である。
【００５９】
［実験］
以下、実施の形態１にかかる動作転移手法の効果を検証するため、発明者は２自由度、３自由度、６自由度のロボットにおける３つの実験を実施した。
【００６０】
［２自由度のロボットによる実験］
この実験では、２次元上で動作する２自由度のロボットアームをシミュレータ上に作製した。図４は、２自由度のロボットアーム１の概略構成を示す図である。２自由度のロボットアーム１は、第１の関節Ｊ１１、第２の関節Ｊ１２、第１の腕ＡＲＭ１及び第２の腕ＡＲＭ２を有する。第１の関節Ｊ１１及び第２の関節Ｊ１２は、Ｘ軸及びＹ軸に対して垂直なＺ軸を回転軸として回転可能に構成される。ロボットアームの保持部１０と第１の腕ＡＲＭ１との間は、第１の関節Ｊ１１により連結される。第１の腕ＡＲＭ１と第２の腕ＡＲＭ２との間は、第２の関節Ｊ１２により連結される。第２の腕ＡＲＭ２の先端にはエンドエフェクタ１１が取り付けられる。すなわち、第１の関節Ｊ１１は肩関節、第１の腕ＡＲＭ１は上腕、第２の関節Ｊ１２は肘関節、第２の腕ＡＲＭ２は前腕に対応する。
【００６１】
本実験では第１の関節Ｊ１１及び第２の関節Ｊ１１の可動範囲を０°〜１８０°に制限している。転移元ロボットアームの第１の腕ＡＲＭ１の長さを０．３００ｍ、第２の腕ＡＲＭ２の長さを０．２５０ｍとした。転移先ロボットアームの第１の腕ＡＲＭ１の長さを０．６００ｍ、第２の腕ＡＲＭ２の長さを０．２００ｍとした。図５に、２自由度のロボットアームの２次元平面（Ｘ−Ｙ平面）における作業空間を示す。
【００６２】
本実験では、転移元ロボットアームの関節をそれぞれ１．８０°ずつ動かしたときに得られる関節値と、そのときのロボットアーム先端のエンドエフェクタの座標値（Ｘ−Ｙ平面での座標値）とにより、転移元データセットを構成した。つまり、１回の学習で得られる学習データは、２次元の関節値と２次元の座標値との合計４次元である。この例では、データ数は約１００００とした。
【００６３】
転移先サンプルデータセットについては、転移元データセットから無作為に選択された関節値と、選択された関節値を転移先ロボットアームに適用した場合に得られる、転移先ロボットアームのエンドエフェクタの座標値と、により構成した。
【００６４】
まず、転移先サンプルデータセットのデータと転移誤差との関係について調査した。以下では、転移誤差をＲＭＳＥ（Root Mean Squared Error）を用いて評価する。転移誤差を示すＲＭＳＥは、以下の式で表される。
【数２０】
0006518982.tif 000021
ここで、Ｎは転移元データセットの学習データ数である。Ｘｔｒａｎｓは転移データＤｔｒａｎｓセットのデータの座標値である。Ｘｌｔｇｔは転移元データセットの関節値と同量かつ同じ関節値を有する転移先サンプルデータセットの座標値である。
【００６５】
図６に、２自由度のロボットアームにおける動作転移誤差を示す。本実験では、動作転移を行わなかった場合、すなわち転移元データセットをそのまま転移先ロボットアームに適用した場合、転移誤差（ＲＭＳＥ）は０．２１５［ｍ］であった。図６に示すように、一般的な手法（ここでは、ＬＰＡを用いた動作転移手法）と比べて、転移誤差（ＲＭＳＥ）を低減できることが理解できる。
【００６６】
次いで、動作転移に要する処理時間について調査した。以下では、ここでは、３．５０［ＧＨｚ］のパーソナルコンピュータ上でシミュレータを動作させ、動作転移が完了するまでに要する時間と、転移先サンプルデータセットのデータ数との関係について評価した。図７に、２自由度のロボットアームにおいて動作転移に要する時間を示す。一般的な手法（ＬＰＡ）では、転移先サンプルデータセットのデータ数に対して概ね単調に処理時間が増加する。これに対し、実施の形態１にかかる動作転移手法では、概ね転移先サンプルデータセットのデータ数が２００以上の領域では、処理時間が４秒前後で飽和した。
【００６７】
以上説明した通り、実施の形態１にかかる動作転移手法によれば、転移先サンプルデータセットのデータ数に対して、転移誤差（ＲＭＳＥ）を急速に減少させ、かつ、処理時間は転移先サンプルデータセットのデータ数が２００程度でほぼ収束する。このことから、転移先サンプルデータセットのデータ数が２００程度得られれば、十分な精度の動作転移が実現されたと考えることができる。
【００６８】
次いで、転移先ロボットアームの腕の長さと転移誤差の関係について調査した。ここでは、２本のアームのそれぞれの長さを、０．１００［ｍ］から１０．１［ｍ］まで０．５［ｍ］ピッチで変化させた。図８は、実施の形態１にかかる動作転移手法によって動作転移を行った場合の転移誤差と転移先ロボットアームの腕の長さとの関係を示す図である。図９は、従来の動作転移手法によって動作転移を行った場合の転移誤差と転移先ロボットアームの腕の長さとの関係を示す図である。図８及び９では、横軸は転移先ロボットアームの一方の腕ＡＲＭ１の長さを示し、縦軸は転移先ロボットアームの他方の腕ＡＲＭ２の長さを示す。図８及び９では、パターンが濃いほど転移誤差（ＲＭＳＥ）が小さいことを示す。
【００６９】
次いで、動作転移の制御性能について調査した。ここでは、転移先ロボットアームにおける目標地点（座標値）を無作為に生成し、生成した目標地点に向けて各腕を動かすための関節値を、転移データを用いたＩＤＷ（Inverse distance weighting）によって予測した。ＩＤＷについては、「D. Shepard, “A two-dimensional interpolation function for irregularly-spaced data”, Proceedings of the 1968 23rd ACM national conference, 1968.」に詳細が開示されている。そして、予測された関節値を用いて各腕を動かし、そのときの到達地点と目標地点とのＲＭＳＥを測定した。この例では、合計で２００ステップの評価を実施した。
【００７０】
図１０は、実施の形態１にかかる動作転移手法により生成した転移データ用いた場合の制御性能を示す図である。図１１は、従来の動作転移手法により生成した転移データ用いた場合の制御性能を示す図である。図１０及び１１では、横軸は転移先ロボットアームの一方の腕ＡＲＭ１の長さを示し、縦軸は転移先ロボットアームの他方の腕ＡＲＭ２の長さを示す。図１０及び１１では、パターンが濃いほどＲＭＳＥが小さいことを示す。図１０及び１１に示すように、実施の形態１にかかる動作転移手法によれば、ＲＭＳＥを低減し、制御性能が向上していることが理解できる。
【００７１】
［３自由度のロボットによる実験］
次いで、３次元上で動作する３自由度のロボットアームをシミュレータ上に作製し、更に実験を行った。図１２は、３自由度のロボットアーム２の概略構成を示す図である。３自由度のロボットアーム２は、第１の関節Ｊ２１、第２の関節Ｊ２２、第１の腕ＡＲＭ１及び第２の腕ＡＲＭ２を有する。第１の関節Ｊ２１は２自由度の関節であり、第２の関節Ｊ２２は、１自由度の関節である。ロボットアームの保持部１０と第１の腕ＡＲＭ１との間は、第１の関節Ｊ２１により連結される。第１の腕ＡＲＭ１と第２の腕ＡＲＭ２との間は、第２の関節Ｊ２２により連結される。第２の腕ＡＲＭ２の先端にはエンドエフェクタ１１が取り付けられる。すなわち、第１の関節Ｊ２１は肩関節、第１の腕ＡＲＭ１は上腕、第２の関節Ｊ２２は肘関節、第２の腕ＡＲＭ２は前腕に対応する。
【００７２】
本実験では、転移元ロボットアームの第１の腕ＡＲＭ１の長さを０．３００ｍ、第２の腕ＡＲＭ２の長さを０．２５０ｍとした。転移先ロボットアームの第１の腕ＡＲＭ１の長さを０．６００ｍ、第２の腕ＡＲＭ２の長さを０．２００ｍとした。また、第１の関節Ｊ２１のヨー方向（水平面内）の可動範囲を−１８０°〜１８０°とし、ピッチ方向（鉛直面内）での可動範囲を０°〜１８０°とした。第２の関節Ｊ２２のピッチ方向（鉛直面内）の可動範囲を０°〜１８０°とした。
【００７３】
本実験では、転移元ロボットアームの関節を無作為に動かしたときに得られる関節値と、そのときのロボットアーム先端のエンドエフェクタの座標値（Ｘ−Ｙ平面での座標値）とにより、転移元データセットを構成した。つまり、１回の学習で得られる学習データは、３次元の関節値と３次元の座標値との合計６次元である。この例では、データ数は約１００，０００とした。
【００７４】
転移先サンプルデータセットについては、転移元データセットから無作為に選択された関節値と、選択された関節値を転移先ロボットアームに適用した場合に得られる、転移先ロボットアームのエンドエフェクタの座標値と、により構成した。
【００７５】
まず、転移先サンプルデータセットのデータと転移誤差との関係について調査した。図１３に、３自由度のロボットアームにおける転移誤差を示す。本実験では、動作転移を行わなかった場合、すなわち転移元データセットをそのまま転移先ロボットアームに適用した場合、転移誤差（ＲＭＳＥ）は０．１５６［ｍ］であった。図１３に示すように、一般的な手法（ここでは、ＬＰＡを用いた動作転移手法）と比べて、転移誤差（ＲＭＳＥ）を低減できることが理解できる。
【００７６】
次いで、動作転移に要する処理時間について調査した。図１４に、３自由度のロボットアームにおける動作転移に要する時間を示す。この例では、データ数が５０００までは、実施の形態１にかかる動作転移手法での処理時間は、一般的な手法（ＬＰＡ）と比べて長くなることが判明した。これはデータの実施の次元数が大きくなったため、処理負荷が大きくなったためと考えられる。しかし、データ数が５０００程度となると、十分なデータ数が得られ、その結果処理時間が収束したと考えられる。
【００７７】
次いで、２自由度のロボットアームの場合と同様に、動作転移の制御性能について調査した。この例では、合計で２００ステップの評価を実施した。図１５に、３自由度のロボットアームの制御性能を示す。図１５に示すように、データ数が５００までは実施の形態１にかかる手法が良好な制御性能を示したが、データ数が５０００以降ではＬＰＡと実施の形態１にかかる手法とはほぼ同様の制御性能となった。
【００７８】
［６自由度のロボットによる実験］
次いで、３次元上で動作する６自由度のロボットアームをシミュレータ上に作製し、更に実験を行った。図１６は、６自由度のロボットアーム２の概略構成を示す図である。６自由度のロボットアーム２は、第１の関節Ｊ３１、第２の関節Ｊ３２、第１の腕ＡＲＭ１、第２の腕ＡＲＭ２、手首部ＬＩＳＴを有する。第１の関節Ｊ３１は２自由度の関節であり、第２の関節Ｊ３２は、１自由度の関節である。手首部ＬＩＳＴの自由度は３であり、いわゆるユニバーサルジョイントとして構成される。ロボットアームの保持部１０と第１の腕ＡＲＭ１との間は、第１の関節Ｊ３１により連結される。第１の腕ＡＲＭ１と第２の腕ＡＲＭ２との間は、第２の関節Ｊ３２により連結される。第２の腕ＡＲＭ２の先端は、手首部ＬＩＳＴによりエンドエフェクタ１１と連結される。すなわち、第１の関節Ｊ２１は肩関節、第１の腕ＡＲＭ１は上腕、第２の関節Ｊ２２は肘関節、第２の腕ＡＲＭ２は前腕に対応する。
【００７９】
本実験では、転移元ロボットアームの第１の腕ＡＲＭ１の長さを０．３００ｍ、第２の腕ＡＲＭ２の長さを０．２５０ｍとし、手首部ＬＩＳＴの長さを０．１５ｍとした。転移先ロボットアームの第１の腕ＡＲＭ１の長さを０．６００ｍ、第２の腕ＡＲＭ２の長さを０．２００ｍとし、手首部ＬＩＳＴの長さを０．０９ｍとした。第１の関節Ｊ３１のヨー方向（水平面内）の可動範囲を−８５°〜８５°とし、ピッチ方向（鉛直面内）での可動範囲を−１７５°〜１１５°とした。第２の関節Ｊ３２のピッチ方向（鉛直面内）の可動範囲を−１５５°〜０°とした。手首部ＬＩＳＴのロール方向の可動範囲を−１２５°〜１２５°、ピッチ方向の可動範囲を−９５°〜９５°、ヨー方向の可動範囲を−１３０°〜１９０°とした。
【００８０】
本実験では、転移元ロボットアームの関節を無作為に動かしたときに得られる関節値と、そのときのロボットアーム先端のエンドエフェクタの座標値（Ｘ−Ｙ平面での座標値）とにより、転移元データセットを構成した。つまり、１回の学習で得られる学習データは、６次元の関節値と３次元の座標値との合計９次元である。この例では、データ数は５００，０００とした。
【００８１】
転移先サンプルデータセットについては、転移元データセットから無作為に選択された関節値と、選択された関節値を転移先ロボットアームに適用した場合に得られる、転移先ロボットアームのエンドエフェクタの座標値と、により構成した。
【００８２】
まず、転移先サンプルデータセットのデータと転移誤差との関係について調査した。図１７に、６自由度のロボットアームにおける転移誤差を示す。ここでは、動作転移を５回行い、これらの転移誤差の平均値で評価する。本実験では、動作転移を行わなかった場合、すなわち転移元データセットをそのまま転移先ロボットアームに適用した場合、転移誤差（ＲＭＳＥ）は０．２０６［ｍ］であった。図１７に示すように、一般的な手法（ここでは、ＬＰＡを用いた動作転移手法）と比べて、転移誤差（ＲＭＳＥ）を低減できることが理解できる。また、転移先サンプルデータセットのデータ数の場合、ＬＰＡでは単位誤差が増加してしまったのに対し、実施の形態１にかかる動作転移手法では増加することなく当初誤差の約半分にまで転移誤差を低減させることができた。
【００８３】
次いで、動作転移に要する処理時間について調査した。図１８に、６自由度のロボットアームにおける動作転移に要する時間を示す。この例では、一般的な手法（ＬＰＡ）と比べ、実施の形態１にかかる動作転移手法での処理時間が長くなることが判明した。これはデータの実施の次元数がより大きくなったため、処理負荷が更に大きくなったためと考えられる。
【００８４】
次いで、２自由度のロボットアームの場合と同様に、動作転移の制御性能について調査した。この例では、合計で２００ステップの評価を実施した。図１９に、６自由度のロボットアームの制御性能を示す。図１９に示すように、データ数にかかわらず、実施の形態１にかかる手法が良好な制御性能を示した。
【００８５】
＜その他の実施の形態＞
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、転移元の座標値と転移先の座標値とのマッピングにシグモイド関数を採用した。しかし、シグモイド関数に代えて、アークタンジェント（ａｒｃｔａｎ）をはじめとする任意の関数を採用しても良い。
【００８６】
また、上述の実施の形態では、関節値空間、座標値空間の２空間の存在を前提として動作情報の転移を行う手法を開示した。しかしながら、空間数は任意のＮであって良い。この場合、上述の更新式は空間数に応じ任意に拡張することができる。例えば、センサ値の空間を追加し、関節値及び座標値の関数として座標値を定義することが考えられる。センサ値は、例えば腕の状態（折れや曲がり等）を示すデータであって良い。これにより、センサ値を考慮しながら動作を行うことができるので、ロボット自身やその周辺の状態に応じた動作の選択、動作の生成が行うことができると考えられる。
【００８７】
また、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８８】
この出願は、２０１６年１１月７日に出願された日本出願特願２０１６−２１７３５３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００８９】
１〜３  ロボットアーム
１０  保持部
１１  エンドエフェクタ
１００  動作転移装置
１０１  転移元動作情報取得部
１０２  転移先動作情報取得部
１０３  補正部
１０４  出力部
Ｊ１１、Ｊ２１、Ｊ３１  第１の関節
Ｊ１２、Ｊ２２、Ｊ３２  第２の関節
ＡＲＭ１  第１の腕
ＡＲＭ２  第２の腕
ＬＩＳＴ  手首部
【図１】
0006518982.tif 000022
【図２】
0006518982.tif 000023
【図３】
0006518982.tif 000024
【図４】
0006518982.tif 000025
【図５】
0006518982.tif 000026
【図６】
0006518982.tif 000027
【図７】
0006518982.tif 000028
【図８】
0006518982.tif 000029
【図９】
0006518982.tif 000030
【図１０】
0006518982.tif 000031
【図１１】
0006518982.tif 000032
【図１２】
0006518982.tif 000033
【図１３】
0006518982.tif 000034
【図１４】
0006518982.tif 000035
【図１５】
0006518982.tif 000036
【図１６】
0006518982.tif 000037
【図１７】
0006518982.tif 000038
【図１８】
0006518982.tif 000039
【図１９】
0006518982.tif 000040
【図２０】
0006518982.tif 000041