(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-04
(45)【発行日】2024-12-12
(54)【発明の名称】ロボットシステム、および、ロボット装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20241205BHJP
B25J 13/00 20060101ALI20241205BHJP
【FI】
G06N20/00
B25J13/00 Z
(21)【出願番号】P 2024062554
(22)【出願日】2024-04-09
(62)【分割の表示】P 2019209482の分割
【原出願日】2019-11-20
【審査請求日】2024-04-09
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】伊藤 洋
(72)【発明者】
【氏名】山本 健次郎
【審査官】上島 拓也
(56)【参考文献】
【文献】中国特許出願公開第108897328(CN,A)
【文献】国際公開第2020/129617(WO,A1)
【文献】本村駿希ほか,屋内環境における全天周画像によるロボットの位置決め,2019年総合大会講演論文集 情報・システム2,2019年03月05日,p.21,ISSN 1349-1369
【文献】堀内隆志ほか,教示例の人工的拡張を用いた,深層学習による距離画像からの物体認識,情報処理学会 研究報告 コンピュータビジョンとイメージメディア(CVIM),情報処理学会,2017年05月03日,p.1-7
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
B25J 13/00
(57)【特許請求の範囲】
【請求項1】
複数の計測部と複数の駆動部とを備えるロボット装置と、
前記計測部からセンサデータを取得し、前記ロボット装置に動作指令値を出力する情報処理装置と、を備えるロボットシステムであって、
前記計測部は、ロボット装置の状態を計測する第1センサおよび周囲の状況を計測する第2センサを含み、
前記情報処理装置は、
少なくとも1つの速度の変更値、少なくとも1つの位相の変更値、少なくとも1つの位置の変更値、または、少なくとも1つの大きさの変更値の、少なくとも1つの拡張データ生成規則を記憶するメモリと、
前記拡張データ生成規則の少なくとも1つの変更値を用いて前記第1センサ及び前記第2センサから取得した時系列のオリジナルデータをデータ拡張することにより、前記第1センサに関する時系列の拡張データと前記第2センサに関する時系列の拡張データを生成し、該時系列の拡張データと前記時系列のオリジナルデータを含む前記第1センサに関する時系列データおよび前記第2センサに関する時系列データを組み合わせた、前記時系列の学習データを出力し、前記学習データを用いて機械学習モデルを機械学習し、学習した前記機械学習モデルを用いて動作指令値を生成するプロセッサと、を備え、
前記駆動部は、前記動作指令値に基づいて制御されることを特徴とするロボットシステム。
【請求項2】
請求項1に記載のロボットシステムにおいて、
前記ロボット装置は、多関節ロボットであり、
前記駆動部は、前記動作指令値に基づいて、複数の駆動部がロボット装置の各関節の角度を変更させることを特徴とするロボットシステム。
【請求項3】
請求項2に記載のロボットシステムにおいて、
前記ロボット装置は、ロボットハンドを備え、
前記動作指令値は把持動作指令値であり、
前記ロボットハンドは、前記把持動作指令値に従い、対象物を把持することを特徴とするロボットシステム。
【請求項4】
複数の計測部と複数の駆動部とを備えるロボット装置であって、
少なくとも1つの速度の変更値、少なくとも1つの位相の変更値、少なくとも1つの位置の変更値、または、少なくとも1つの大きさの変更値の、少なくとも1つの拡張データ生成規則を記憶するメモリと、
前記拡張データ生成規則の少なくとも1つの変更値を用いて、ロボット装置の状態を計測する第1センサ及び周囲の状況を計測する第2センサから取得した時系列のオリジナルデータをデータ拡張することにより、前記第1センサに関する時系列の拡張データと前記第2センサに関する時系列の拡張データを生成し、該時系列の拡張データと前記時系列のオリジナルデータを含む前記第1センサに関する時系列データおよび前記第2センサに関する時系列データを組み合わせた、前記時系列の学習データを出力し、前記学習データを用いて機械学習モデルを機械学習し、学習した前記機械学習モデルを用いて動作指令値を生成するプロセッサと、を備える情報処理装置から出力される前記動作指令値に基づいて、前記複数の駆動部は、前記ロボット装置の各関節の角度を変更させることを特徴とするロボット装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、少量のオリジナルデータに基づいて、機械学習のための大量の学習データを生成し、その大量の学習データを用いて機械学習を実行するロボットシステム、および、ロボット装置に関する。
【背景技術】
【0002】
深層学習をはじめとする機械学習は、これまで難しかった複雑な認識や識別を高精度に実現する学習方法として注目されている。効率的な機械学習には、十分な数の学習データが必要であり、例えば、画像認識分野の深層学習の場合は、数万~数億の画像データを学習データとすることで、従来手法を超える物体認識精度を実現している。
【0003】
画像認識分野の深層学習を開示する文献としては、例えば、非特許文献1がある。この文献では、画像データにパラメトリックな変形を施し、疑似的な学習データ、つまり疑似的な学習データを複数作成する方法を開示している。この文献で用いられるパラメトリックな変形の例としては、画像に対する輝度調整、反転、歪み、拡大縮小等がある。
【0004】
また、特許文献1では、時系列データである生体データから疑似的な生体データを生成するデータ生成装置を開示している。このデータ生成装置は、日常的に生じる生体データの変動を反映した疑似的なデータを予め生成することで、装着者や装着状態の認識精度が向上するというものである。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】Ciresanほか著、「Deep Big Simple Neural Nets Excel on Handwritten Digit Recognition」、Computation、2010年12月、Vol.22、No.12
【発明の概要】
【発明が解決しようとする課題】
【0007】
深層学習を用いたロボット動作の生成方法としては、人の情報処理を模擬したマルチモーダル深層学習が提案されている。マルチモーダル深層学習は、複数のセンサ情報(例えば、画像や音声、テキストなど)を統合的に処理・学習することで、これまで難しかった複雑な形状の物体操作や、複雑な環境変化に対し、柔軟な動作を自律的に実行可能にするものである。しかしながら、ロボット装置に移動対象物の把持を学習させる場合、対象物の移動速度や把持タイミングなどの学習データを大量に用意する必要があり、膨大な計算コストが必要になるという問題があった。
【0008】
そこで、本発明では、ロボット装置が移動対象物を把持するような複雑な環境下でも容易に深層学習できるようにするため、少量の時系列のオリジナルデータに基づいて、大量の学習データを容易に生成できるロボットシステムを提供することを目的としている。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係るロボットシステムは、複数の計測部と複数の駆動部とを備えるロボット装置と、前記計測部からセンサデータを取得し、前記ロボット装置に動作指令値を出力する情報処理装置と、を備えるロボットシステムであって、前記計測部は、ロボット装置の状態を計測する第1センサおよび周囲の状況を計測する第2センサを含み、前記情報処理装置は、少なくとも1つの速度の変更値、少なくとも1つの位相の変更値、少なくとも1つの位置の変更値、または、少なくとも1つの大きさの変更値の、少なくとも1つの拡張データ生成規則を記憶するメモリと、前記拡張データ生成規則の少なくとも1つの変更値を用いて前記第1センサ及び前記第2センサから取得した時系列のオリジナルデータをデータ拡張することにより、前記第1センサに関する時系列の拡張データと前記第2センサに関する時系列の拡張データを生成し、該時系列の拡張データと前記時系列のオリジナルデータを含む前記第1センサに関する時系列データおよび前記第2センサに関する時系列データを組み合わせた、前記時系列の学習データを出力し、前記学習データを用いて機械学習モデルを機械学習し、学習した前記機械学習モデルを用いて動作指令値を生成するプロセッサと、を備え、前記駆動部は、前記動作指令値に基づいて制御されるものとした。
【発明の効果】
【0010】
本発明のロボットシステムによれば、少量の時系列のオリジナルデータに基づいて、大量の時系列の学習データを容易に生成できるため、ロボット装置のロボットハンドが移動物体を把持するような複雑な環境下でも、大量の学習データに基づいて適切な機械学習を実行することができる。
【図面の簡単な説明】
【0011】
【
図1】一実施例に係るロボットシステムの機能ブロック図
【
図2】一実施例に係るロボットシステムのハードウェア構成の一例である。
【
図3】動作教示ルーチンを示すフローチャートである。
【
図4】機械学習ルーチンを示すフローチャートである。
【
図5】動作生成ルーチンを示すフローチャートである。
【
図6】速度演算部で生成した速度データの一例である。
【
図7】手先位置演算部で生成した画像データの一例である。
【
図8】位相演算部で生成した位相データの一例である。
【
図9】データ処理部で統合した学習データの一例である。
【発明を実施するための形態】
【0012】
まず、本発明を説明するために用いる用語を定義する。「センサデータ」とは、ロボッ
ト装置の各駆動部(アクチュエータ)の状態を計測するセンサの計測値(関節角度、電流
値、トルク値、触覚値等)や、ロボット装置の外部に取り付けられ、周囲の状況を計測す
るセンサ(カメラやモーションキャプチャなど)の計測値(カメラ画像等)である。また
、「学習データ」とは、ロボット装置に目的動作を教示する際に用いる一連のセンサデー
タであり、計測時刻と計測値が対応付けられた時系列のデータである。
【0013】
「背景技術」欄に記載したように、機械学習は、これまで難しかった複雑な認識や識別
を高精度に実現する方法として注目されている。この機械学習をロボット装置に適用すれ
ば、ロボット装置に多数の目的動作を教示し、それを機械学習させることで、環境が変化
した場合であっても、適切な動作を自律的に生成することが可能となる。
【0014】
しかしながら、機械学習のロボット装置への適用例の多くは、静止した対象物を把持す
るという比較的易しい物体操作を対象としており、ベルトコンベアに載って接近してくる
移動対象物を把持するような複雑な物体操作への適用例は非常に少なかった。これは、移
動対象物の把持を学習するには、移動対象物の移動速度や把持タイミングなどの異なる膨
大な学習データが必要であり、そのような膨大な学習データを用意することが困難だった
からである。
【0015】
そこで、本実施例では、非特許文献1等で開示されるデータ拡張(Data Augmentation
)と呼ばれる手法を改善することで、ロボット装置が移動対象物を把持する物体操作の機
械学習に必要とされる十分な学習データを容易に生成できるようにする。非特許文献1等
のデータ拡張手法は、既存のデータから疑似的なデータを生成し、機械学習に適用できる
データを増加させるものである。上述したように、非特許文献1は、画像認識分野でのデ
ータ拡張手法を開示しており、取得した画像データに、輝度調整、反転、歪、拡大縮小な
どのパラメトリックな変形を施すことによって、複数の疑似的な学習データを生成する。
また、特許文献1は、生体データの特性に適したデータ拡張手法を開示しており、時系列に示された生体データに振幅や時間ずれをパラメトリックな変形を施すことによって、複数の疑似的な学習データを生成する。
【0016】
画像データのデータ拡張に関して、例えば、画像の輝度の調整は、自然画像における明るさという特性の変化を模擬するものである。画像の拡大縮小は、認識対象物とカメラの距離という特性に関する画像間の違いを模擬するものである。このように、画像データのデータ拡張手法は、画像の特性の変動要因を考慮したデータ拡張手法である。また、生体データのデータ拡張に関して、例えば、データの振幅の調整は、生体情報における活動状態の強度という特性の変化を模擬するものである。データのタイミング変化は、外部刺激を受けた時間という特性の変化を模擬するものである。このようなデータ拡張手法を用いて、想定されるデータの特性の変動を反映したデータを予め生成することによって、認識率の向上が達成される。
【0017】
しかしながら、非特許文献1や特許文献1に開示されているようなデータ拡張手法は、ロボット装置のセンサデータのデータ拡張に適していない。なぜなら、両文献は、1つのセンサデータに関するデータ拡張手法を開示しているに留まり、特性の異なる複数のセンサデータから構成されているロボット装置に対しては、それらの文献では開示されていない別種のデータ拡張手法が必要になるからである。
【0018】
そこで、本発明では、複数のセンサから取得されたロボット装置の各センサデータに対し、データ拡張を実現できるデータ生成手法を提供する。また、本発明では、少数のセンサデータに対してデータ拡張を適用することで、少数のデータから大量の学習データを生成し、それにより、十分な動作生成性能を実現できる動作生成手法を提供する。このように、本発明では、時系列に示されたセンサデータにおいて、タスク遂行に必要な特徴に着目した情報処理装置を提供する。
【0019】
さらに詳細に説明すると、本発明は、移動対象物の把持動作生成に関するセンサデータを対象にする。すなわち、画像データ中の対象物体とロボット装置の状態に基づいて、ロボット装置の把持動作を逐次生成することが可能である。例えば、移動対象物の把持動作生成を生成する場合、動作タイミングや動作速度の特定は、画像変化から明確に且つ容易に可能である。しかし、画像変化だけでは、ロボット装置への把持動作指令、例えば動作速度や各関節の指令値を推定することは困難である。
【0020】
そこで、本発明では、全く異なる特性を持つ2種類のセンサデータ(画像データとロボット装置の指令値)のデータ拡張手法を提案する。これにより、多様な移動対象物の把持動作を生成するための疑似的なデータを生成することが可能である。さらに、このような疑似的なデータを学習データとして適用した機械学習によって、環境変化に対し多様な動作生成が可能になる。
【0021】
以下、図面を参照して、本発明の一実施例について詳細に説明する。なお、以下の説明は、本発明の実施形態の一例であり、各種条件によって適宜修正または変更が可能であるため、本発明は以下の実施例に限定されるものではない。
【0022】
(ロボットシステムの概略構成)
図1は、本発明の一実施例に係るロボットシステム100の構成例を示す機能ブロック図である。ここに示すように、ロボットシステム100は、情報処理装置1とロボット装置10からなる。
【0023】
ロボット装置10は、複数の計測部11と複数の駆動部12を備えたロボットであり、例えば、対象物を把持するためのロボットハンドを備えた多関節ロボットである。このロボット装置10は、情報処理装置1から入力される動作指令値に従って、複数の駆動部12が各関節の角度等を変更することで、移動対象物を追従して把持するなどの所望の動作を実現する。各々の駆動部12は、電動モータによって駆動されてもよいし、油圧や空気圧等の流体圧で作動するアクチュエータによって駆動されてもよい。なお、本実施例では、ロボット装置10の一例として多関節ロボットを挙げているが、情報処理装置1の制御対象は数値制御可能なものであればロボット装置以外の他種の機械であってもよい。
【0024】
情報処理装置1は、ロボット装置10の計測部11からセンサデータを取得し、ロボット装置10の駆動部12に動作指令値を出力するものであり、記憶ユニット20と、データ生成ユニット30と、機械学習ユニット40から構成されている。
【0025】
以下では、まず、情報処理装置1のハードウェア構成を説明する。その後、情報処理装置1で実行される各種処理、すなわち、ベルトコンベアに載って接近してくる移動対象物の把持動作をロボット装置10に教示し、そこで取得した時系列のオリジナルデータに基づいて拡張した学習データを生成し、生成した大量の学習データを用いて、機械学習モデルを学習することで、実稼働中のロボット装置10が自律的に動作を生成する方法について説明する。
【0026】
図2は、情報処理装置1のハードウェア構成の一例を示す図である。ここに示すように、情報処理装置1は、プロセッサであるCPU1aと、メモリであるROM1b、RAM1c、外部メモリ1dと、ユーザインタフェースである表示部1e、入力部1fと、通信インタフェース1gと、システムバス1hを備えるコンピュータである。
【0027】
CPU1aは、情報処理装置1における動作を統括的に制御するものであり、システムバス1hを介して、ロボットシステム100全体を制御する。ROM1bは、CPU1aが処理を実行するために必要なプログラム等を記憶する不揮発性メモリである。なお、プログラムは、外部メモリや着脱可能な記憶媒体に記憶されてもよい。RAM1cは、CPU1aの主メモリ、ワークエリア等として機能する。つまり、CPU1aは、処理の実行に際しROM1bから必要なプログラム等をRAM1cにロードし、プログラム等を実行することで、データ生成ユニット30や機械学習ユニット40等の各種の機能動作を実行する。外部メモリ1dは、CPU1aがプログラムを用いた処理を行う際に必要な各種データや各種情報を記憶することができる。また、外部メモリ1dは、CPU1aがプログラムを用いた処理を行うことにより得られる各種データや各種情報等を記憶することができる。外部メモリ1dは、上記の学習データを保存してもよい。
【0028】
表示部1eは、液晶ディスプレイ(LCD)等のモニタにより構成される。入力部1fは、キーボードやマウス等のポインティングデバイスにより構成され、ユーザが情報処理装置1に対し指示を与えることができるように構成される。通信インタフェース1gは、ロボット装置10等の外部装置と通信するためのインタフェースである。通信インタフェース1gは、例えばLANインタフェースとすることができる。システムバス1hは、CPU1a、ROM1b、RAM1c、外部メモリ1d、表示部1e、入力部1f、および通信インタフェース1gを通信可能に接続する。
【0029】
CPU1aにより実現されるデータ生成ユニット30は、ロボット装置10から取得した時系列のセンサデータに基づいて、時系列の学習データを生成するものである。また、同じくCPU1aにより実現される機械学習ユニット40は、データ生成ユニット30が生成した時系列の学習データを用いてロボット装置10のモデルを機械学習し、学習したモデルを用いて実際の画像中の対象物体を認識して適切な把持動作、すなわち、駆動部12の動作指令値を生成し、ロボット装置10に出力するものである。なお、機械学習ユニット40では、ディープラーニングの一種であるCNN(Convolutional Neural Network)とRNN(Recurrent Neural Network)によってモデルを機械学習するが、これらは周知の学習方法であるため、詳細説明を省略する。
【0030】
本実施例では、機械学習に先立ち、ロボット装置10のロボットハンドに、実際に少なくとも一回の把持動作を実行させる。この動作は、動作教示と呼ばれ、人によるロボット装置10の遠隔操作や、人がロボット装置10のロボットハンドを直接操作するダイレクトティーチングなどを用いて、ロボット装置10に移動対象物の把持方法を教示する手法である。また、機械学習の実行時には、まず、情報処理装置1は、実際に対象物体の把持を行うときの計測部11のセンサデータ(関節角やトルク値、電流値など)とカメラ画像(デプス画像など)をオリジナルデータとして取得し、データ生成ユニット30は、そのオリジナルデータをもとに、大量の学習データを生成する。そして、機械学習ユニット40は、生成された大量の学習データを用いて、機械学習モデルを学習する。以下、データ生成ユニット30と機械学習ユニット40を概説する。
【0031】
(データ生成ユニット30)
データ生成ユニット30は、
図1に示すように、生成規則記憶部31、速度演算部32、位相演算部33、手先位置演算部34、データ処理部35を備えている。生成規則記憶部31は、後述する拡張データの生成規則を記憶している。速度演算部32は、生成規則に基づいて記憶ユニット20から取得したオリジナルデータの速度を変更する。位相演算部33は、生成規則に基づいてオリジナルデータの位相を変更する。手先位置演算部34は、生成規則に基づいてオリジナルデータに示されるロボット装置10の手先位置を変更する。
【0032】
ここで、生成規則記憶部31が記憶している生成規則は、少なくとも1つの速度情報の変更値、少なくとも1つの位相情報の変更値、または、少なくとも1つの手先位置情報の変更値を含む規則である。
【0033】
記憶ユニット20から取得するオリジナルデータは、学習データの生成の基礎となる時系列のデータであり、把持動作時のロボット装置10のセンサデータと対象物を撮像したが画像データを含む。学習データは、把持動作時の一連の動作を時系列データとして記憶したものであり、学習に用いる画像データとロボット装置10のセンサデータの組である。なお、画像データは、RGBのカラー画像、デプス画像(距離画像)およびモノクロ画像のうち少なくとも1つを含む。
【0034】
データ処理部35で処理された少なくとも1つのセンサデータは、学習データとして記憶ユニット20の学習データ蓄積部22に蓄積される。
【0035】
(機械学習ユニット40)
機械学習ユニット40は、
図1に示すように、モデル定義部41と、学習部42と、重み保存部43と、推論部44を備えている。モデル定義部41は、ユーザが予め指定したモデルを定義する。学習部42は、学習データ蓄積部22に蓄積された大量の学習データを用いて、目的関数に従って、モデルの最適パラメータを学習する。重み保存部43は、学習によって得られたモデルの最適パラメータを保存する。なお、学習部42の目的関数とは、ユーザが指定するものである。本実施例では、移動対象物の把持を例にしているため、時刻tにおける各種センサデータから、時刻t+1のロボット装置10の動作指令値を推定できるように、機械学習装置を構成するモデルのパラメータの最適化を行う。推論部44は、ロボット装置10の実稼働時に、計測部11で計測したセンサデータに基づいて、ロボット装置10の動作指令値を推論するものであり、機械学習処理中には利用されない。
【0036】
以下、本実施例のロボットシステム100で順次実施される、動作教示ルーチン、動作学習ルーチン、動作生成ルーチンの各々について、フローチャートを用いて詳細に説明する。
【0037】
(動作教示ルーチン)
ロボットシステム100の動作教示ルーチンについて、
図3を参照しながら説明する。このルーチンは、目的動作をロボットに教示し、オリジナルデータとしてオリジナルデータ蓄積部21に蓄積する処理である。
【0038】
まず、ステップS11では、ロボット装置10に目的動作を教示する。ロボット装置10への教示方法は、遠隔操作装置を用いた遠隔操縦による動作教示、人がロボットを直接持って教示するダイレクトティーチング、さらに人が目的動作を事前にプログラミングし再生する方法など、任意の方法で教示する。
【0039】
ステップS12では、ロボット装置10に目的動作を教示した際に計測部11で計測された各駆動部12のセンサ値を時系列的に計測し、オリジナルデータとして、オリジナルデータ蓄積部21に蓄積する。
【0040】
ステップS13では、データ生成ユニット30は、生成規則記憶部31に記憶されたデータ拡張のための生成規則を参照し、少なくとも1つの演算処理をデータ処理部35にて実行する。データ拡張の詳細については、後述する。
【0041】
最後に、ステップS14では、データ生成ユニット30は、生成された学習データを学習データ蓄積部22に蓄積する。
【0042】
(動作学習ルーチン)
ロボットシステム100の動作学習ルーチンについて、
図4を参照しながら説明する。このルーチンは、データ生成ユニット30で生成された大量の学習データを用いて、モデル定義部41にて定義されたモデルを機械学習し、モデルを構成する各種パラメータ情報を重み保存部43に保存する処理である。
【0043】
まず、ステップS21では、学習部42は、学習データ蓄積部22で蓄積された学習データを読み込む。
【0044】
ステップS22では、学習部42は、ユーザが定義する任意の機械学習モデル(例えば、ニューラルネットワークのネットワーク構成など)をモデル定義部41から読み込む。
【0045】
ステップS23では、学習部42は、読み出した学習データと機械学習モデルを用いて、ユーザが指定する目的関数に従うよう、機械学習モデルの最適化を行う。
【0046】
最後に、ステップS24では、学習部42は、機械学習モデルを構成する各種パラメータを重み保存部43に保存する。
【0047】
(動作生成ルーチン)
ロボットシステム100の動作生成ルーチンについて、
図5を参照しながら説明する。このルーチンは、ロボット装置10の実稼働時に計測部11で計測されたセンサデータに基づいて、機械学習ユニット40の推論部44が、ロボット装置10の適切な動作指令値を推論し、駆動部12へ出力することで、所望の目的動作を達成するように逐次動作指令値を生成する処理である。
【0048】
まず、ステップS31では、推論部44は、モデル定義部41からユーザが定義する機械学習モデルを読み込む。
【0049】
ステップS32では、推論部44は、重み保存部43から、動作学習ルーチンで学習した機械学習モデルを構成する各種パラメータを読み込む。
【0050】
ステップS33では、推論部44は、ロボット装置10の実稼働時に計測部11で計測した各種センサデータを取得する。
【0051】
ステップS34では、推論部44は、取得した各種センサデータと、読み込んだ機械学習モデルを用いて、ロボット装置10に所望の動作をさせる際の動作指令値を推定する。推定された動作指令値に基づいてロボット装置10は駆動部12を駆動させる。
【0052】
ステップS35では、推論部44は、移動対象物を把持するなどの目的動作を達成できたかを判断し、仮に目的動作の遂行途中であればステップS33へ戻る。一方、目的動作を達成できた場合は、動作生成ルーチンを終了する。
【0053】
以上のステップを繰り返すことで、ロボット装置10は、計測部11で計測されたセンサデータに基づいて、目的動作を達成するまで逐次動作を生成することが可能となる。
【0054】
(学習データ生成ステップS13の詳細)
次に、動作教示ルーチンのステップS13で実行される、データ生成ユニット30による学習データ生成方法について、
図6~
図9を参照しながら詳細に説明する。ここでは、特に、移動対象物の速度や把持タイミングなど、膨大な学習データと計算コストが必要になる把持動作生成のためのデータ拡張方法について述べる。そこで、移動対象物の挙動に着目し、主に3つ前処理を実施することで、移動対象物の把持動作のための学習データの生成方法について述べる。基本的に、物体の物理的特性として、移動速度と位置が挙げられる。
【0055】
図6は、速度演算部32でデータ拡張により生成された、移動速度の異なるセンサデータを示している。速度演算部32は、破線で示す1.0倍速のオリジナルデータを、予め指定されたサンプリング間隔でサンプリング(ダウンサンプリング、もしくは、アップサンプリング)することで、点線で示す0.5倍速や、二点鎖線で示す1.5倍速のような、新たな速度データを拡張データとして生成する。ここでは、0.5倍速や1.5倍速に相当するサンプリング間隔等が拡張データの生成規則である。
【0056】
また、ロボット装置10のロボットハンドの手先位置については、手先位置演算部34で、ロボットの手先位置に関するセンサデータを定数倍して変更することにより、新たな手先位置データを生成する。このとき、
図7のように、ロボットハンドの手先位置の位置変化に応じて、画像を上下左右方向にシフトすることで、画像中のロボットの手先位置を疑似的に変更する。更に対象物体の移動速度や、静止状態から移動状態に遷移したことを認識させるための、把持タイミングが特性として挙げられる。ここでは、画像のシフト量等が拡張データの生成規則である。
【0057】
図8は、位相演算部33でデータ拡張により生成された、動作タイミングの異なるセンサデータを示している。位相演算部33は、オリジナルデータ蓄積部21に蓄積されている、実線で示すオリジナルデータを、時間軸において正の方向及び/または負の方向に、予め設定された時間の変更軸で移動することによって、新たな位相データを拡張データとして生成する。ここでは、正の方向及び/または負の方向の移動量が拡張データの生成規則である。
【0058】
図9は、データ処理部35で実行される、大量の学習データを生成する学習データ生成処理を概念的に示したものである。上記したように、速度演算部32、位相演算部33、手先位置演算部34の各々では、複数の拡張データが生成されるため、データ処理部35では、各演算部で生成されたデータ数に応じて、データを統合する。仮に、速度に関しては2種類、位相に関しては2種類、手先位置に関しては0種類の拡張データが生成された場合、データ処理部35では、オリジナルデータも考慮し、3×3×1の合計9パターンの学習データを生成し、学習データ蓄積部22に蓄積する。
【0059】
なお、上記の説明では、速度、位相、手先位置の3種類のデータに着目して拡張データを生成したが、例えば、把持対象物の大きさのような他種のデータに着目した拡張データを生成しても良い。
【0060】
このように本実施例の処理によって、ロボット装置10で実測した各種のオリジナルデータは、オリジナルデータに基づく疑似的な拡張データを含む学習データに、データ拡張される。このデータ拡張によって、本実施例では、学習データ数を、容易に数倍~数十倍に増加することができる。すなわち、データD1~Dnのn種類のデータが存在する場合、データDnについてmn種類のデータを用意すれば、データ処理部35では、m1×m2×・・・×mn種類の膨大な学習データを容易に生成できるため、ベルトコンベアに載って接近してくる移動対象物を把持するような複雑な物体操作を機械学習する場合であっても、ロボット装置10の機械学習モデルの最適パラメータを高精度に機械学習できるようになる。
【0061】
以上で説明したように、本実施例の情報処理装置によれば、大量の学習データを容易に生成することができるため、ロボット装置が移動対象物を把持するような複雑な環境下でも高精度の深層学習を容易に実現することができる。
【符号の説明】
【0062】
100 ロボットシステム
1 情報処理装置
1a CPU
1b ROM
1c RAM
1d 外部メモリ
1e 表示部
1f 入力部
1g 通信インタフェース
1h システムバス
10 ロボット装置
11 計測部
12 駆動部
20 記憶ユニット
21 オリジナルデータ蓄積部
22 学習データ蓄積部
30 データ生成ユニット
31 生成規則記憶部
32 速度演算部
33 位相演算部
34 手先位置演算部
35 データ処理部
40 機械学習ユニット
41 モデル定義部
42 学習部
43 重み保存部
44 推論部