(57)【要約】【課題】動作機械の制御モジュールを好適に獲得することを可能とする情報処理装置等を提供する。【解決手段】動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける第１入力部と、前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける第２入力部と、前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する仮想モデル生成部と、確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する判定部と、当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュールを学習する学習部とを備える。【選択図】図２
2019153246.tif 000002
【特許請求の範囲】
【請求項１】
動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける第１入力部と、
前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける第２入力部と、
前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する仮想モデル生成部と、
確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する判定部と、
当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュールを学習する学習部と
を備える情報処理装置。
【請求項２】
前記学習部は、前記第１パラメータで特定される種別に対応して生成される複数の前記動作機械の各々に対して、対応する前記制御モジュールを学習する、
請求項１記載の情報処理装置。
【請求項３】
動作の成否判定結果と、その際に用いた前記動作機械の制御情報とに応じた学習データを生成する学習データ生成部
を更に備え、
前記学習部は、前記学習データを用いて、所定の動作を実現するための前記動作機械の前記制御モジュールを学習する、
請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記学習データ生成部は、前記第１パラメータで特定される種別に対応して生成される複数の前記動作機械の各々に対して前記学習データを生成し、
前記学習部は、選択可能な複数の前記動作機械の各々に対して、対応する前記学習データを用いて学習することで、対応する前記制御モジュールを学習する、
請求項３記載の情報処理装置。
【請求項５】
対応する前記制御モジュールを適用させた前記動作機械の仮想モデルを、少なくとも前記第２パラメータを用いて確率的に生成された前記１以上の仮想モデルを含む仮想空間上で動作させた場合の当該動作の正否判定に応じて、複数の前記動作機械と前記制御モジュールとの組合せのそれぞれに対して動作成功率を算出する第１算出部と、
前記動作成功率に応じて、前記動作機械と前記制御モジュールとの組合せを選択する第１選択部と
を更に備える、請求項２乃至請求項４のいずれか１項記載の情報処理装置。
【請求項６】
前記学習データ生成部は、動作の正否判定結果と、その際に用いた前記動作機械の制御情報と、その際に用いた前記第１パラメータとを含む前記学習データを生成し、
前記学習部は、異なる前記第１パラメータで指定される複数種別の前記動作機械による前記学習データを単一の前記制御モジュールとして学習することで、複数種別の前記動作機械に適用可能な前記制御モジュールを学習する、
請求項３記載の情報処理装置。
【請求項７】
前記学習部は、前記制御モジュールを適用させた前記動作機械の仮想モデルを、少なくとも前記第２パラメータを用いて確率的に生成された前記１以上の仮想モデルを含む仮想空間上で動作させた場合の当該動作の正否判定に応じて、複数種別の前記動作機械に対して、前記制御モジュールを適用させた場合の動作成功率を算出する第２算出部と、
前記動作成功率に応じて、前記動作機械を選択する第２選択部と
を更に備える、請求項６記載の情報処理装置。
【請求項８】
前記第１パラメータは、前記動作機械のキネマティクス構造の種別、及び前記動作機械の形状の種別の少なくとも一方の情報を含む、
請求項１乃至請求項７のいずれか１項記載の情報処理装置。
【請求項９】
前記第２パラメータは、前記動作機械の要素の寸法、設置位置、色、及びテクスチャの少なくともいずれかの特性を確率変数とする確率分布に関するものである、
請求項１乃至請求項８のいずれか１項記載の情報処理装置。
【請求項１０】
前記１以上の仮想モデルは、前記動作機械の周辺環境に影響を与える部材、前記動作機械とともに使用される部材、前記動作機械の動作を検出するセンサ、及び、前記動作機械の動作対象物、の少なくともいずれかを含み、
前記第１パラメータは、前記動作機械の周辺環境に影響を与える部材の種別、前記動作機械と共に使用される部材の種別、前記動作機械の動作を検出するためのセンサ種別、及び、前記動作機械の作業対象物の種別、の少なくともいずれかの情報を含む、
請求項１乃至請求項９のいずれか１項記載の情報処理装置。
【請求項１１】
前記第２パラメータは、前記動作機械の周辺環境に影響を与える部材、前記動作機械と共に使用される部材、前記動作機械の動作を検出するためのセンサ、及び、前記作業対象物の動作対象の少なくともいずれかの特性を確率変数とする確率分布に関するものである、
請求項１０記載の情報処理装置。
【請求項１２】
前記第２パラメータの確率分布は、連続値の分布関数の種別と関数形状を決定する値の組合せ、離散値の分布関数と関数形状を決定する値の組合せ、及び、値の分布のリスト、を含む、
請求項１乃至請求項１１のいずれか１項記載の情報処理装置。
【請求項１３】
動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける処理と、
前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける処理と、
前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する処理と、
確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する処理と、
当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュールを学習する処理と
を情報処理装置が行う、情報処理方法。
【請求項１４】
動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける処理と、
前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける処理と、
前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する処理と、
確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する処理と、
当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュールを学習する処理と
を情報処理装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、例えば産業ロボット等の動作機械による制御モジュールを、教師あり学習や強化学習等の機械学習によって自律獲得すること等が考えられている。しかしながら、動作機械の実機を用いて制御モジュールを獲得するには、実機を学習する回数分動かす必要があるため、非常に時間がかかる。
【０００３】
そこで、学習時間を短縮する方法として、動作機械や作業対象物、動作を観察するセンサ、及び動作環境などに対してそれぞれ等価な仮想モデルを仮想空間上に配置した上で、当該仮想モデルを用いたシミュレーションを元に仮想空間上で動作機械の制御モジュールを学習することも考えられる。しかしながら、実環境では、例えばロボットアームの各個体のばらつきや、センサの取付位置のばらつき等が生じるが、一般に仮想モデルではこのようなばらつきが生じないため、仮想モデルによるシミュレータでの学習により得られる制御モジュールは、実環境で適用した場合の頑健性が不十分である。
【０００４】
シミュレータでの学習により得られるロボットアームの制御モジュールを獲得する際に実環境の種々の状況に備える技術として、例えば非特許文献１には、ロボットや作業対象物の仮想モデルの色や、カメラや光源の位置、壁面やテーブルのテクスチャ等を無作為に選択して学習する方法が開示されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Stephen James  他２名、"Transferring End-to-End Visuomotor Control from Simulation to Real World for a Multi-Stage Task"、米国、1st Conference on Robot Learning (CoRL 2017)、２０１７年７月７日
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１記載の手法のように、無作為に仮想モデルを生成して学習すると、現実では起こり得ない仮想モデルをも学習することになるため、学習効率が悪くなる。また他方で、実際に起こる仮想モデルのみを学習すると、学習していない未知の状況に対しては、獲得した制御モジュールを適用することができない課題もある。
【０００７】
本発明のいくつかの態様は前述の課題に鑑みてなされたものであり、動作機械の制御モジュールを好適に獲得することを可能とする情報処理装置、情報処理方法、及びプログラムを提供することを目的の１つとする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る情報処理装置は、動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける第１入力部と、前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける第２入力部と、前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する仮想モデル生成部と、確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する判定部と、当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュールを学習する学習部とを備える。
【０００９】
当該構成では、仮想モデルを構成する要素の特性を確率変数とする確率分布を定める第２パラメータの入力を受け、当該第２パラメータに基づき、要素の特性にばらつきを持たせた仮想モデルを用いて、制御モジュールを学習する。これにより、実環境で発生するばらつきに対して頑健な制御モジュールを生成することが可能となる。
また、制御モジュールを仮想環境下で生成するため、計算時間のみで制御モジュールを獲得することができる。これにより、実環境で学習データを生成する場合よりも短時間で動作機械の制御モジュールを獲得することが可能である。
【００１０】
なお、「動作機械」とは、任意の制御モジュールに基づいて動作するロボット等の機械であり、例えば、多軸ロボットアーム等の産業ロボットを含む。特に、実世界で動作する機械のみならず、実世界での機械を仮想世界で動作する仮想モデルとしての機械も含め、動作機械という。
【００１１】
上記構成において、前記学習部は、前記第１パラメータで特定される種別に対応して生成される複数の前記動作機械の各々に対して、対応する前記制御モジュールを学習する、
ように構成されてもよい。
前記学習データ生成部は、選択可能な複数の前記動作機械の各々に対して前記学習データを生成し、前記学習部は、選択可能な複数の前記動作機械の各々に対して、対応する前記学習データを用いて学習することで、対応する前記制御モジュールを学習する、ように構成されてもよい。
【００１２】
当該構成では、各々の動作機械に対して、それぞれ好適な制御モジュールを生成することが可能である。
【００１３】
上記構成において、動作の成否判定結果と、その際に用いた前記動作機械の制御情報とに応じた学習データを生成する学習データ生成部を更に備え、前記学習部は、前記学習データを用いて、所定の動作を実現するための前記動作機械の前記制御モジュールを学習する、ように構成されてもよい。
【００１４】
当該構成では、教師あり学習により制御モジュールを学習することができる。
【００１５】
上記構成において、前記学習データ生成部は、前記第１パラメータで特定される種別に対応して生成される複数の前記動作機械の各々に対して前記学習データを生成し、前記学習部は、選択可能な複数の前記動作機械の各々に対して、対応する前記学習データを用いて学習することで、対応する前記制御モジュールを学習する、ように構成されてもよい。
【００１６】
当該構成では、各々の動作機械に対して、それぞれ好適な制御モジュールを教師あり学習により生成することができる。
【００１７】
上記構成において、対応する前記制御モジュールを適用させた前記動作機械の仮想モデルを、少なくとも前記第２パラメータを用いて確率的に生成された前記１以上の仮想モデルを含む仮想空間上で動作させた場合の当該動作の正否判定に応じて、複数の前記動作機械と前記制御モジュールとの組合せのそれぞれに対して動作成功率を算出する第１算出部と、前記動作成功率に応じて、前記動作機械と前記制御モジュールとの組合せを選択する第１選択部とを更に備える、ように構成されてもよい。
【００１８】
当該構成では、仮想モデルを構成する要素の特性を確率変数とする確率分布を定める第２パラメータに基づいて要素の特性にばらつきを持たせた仮想モデルが配置された仮想環境下でシミュレーションを行い、その結果に応じて、動作機械及び制御モジュールの組合せを選択する。これにより、実環境で発生するばらつきに対して頑健な動作機械及び制御モジュールの組合せを選択することができる。
【００１９】
上記構成において、前記学習データ生成部は、動作の正否判定結果と、その際に用いた前記動作機械の制御情報と、その際に用いた前記第１パラメータとを含む前記学習データを生成し、前記学習部は、異なる前記第１パラメータで指定される複数種別の前記動作機械による前記学習データを単一の前記制御モジュールとして学習することで、複数種別の前記動作機械に適用可能な前記制御モジュールを学習する、ように構成されてもよい。
【００２０】
当該構成では、複数種別の動作機械に対して適用可能な、汎用的な制御モジュールを生成することができる。これにより、当該制御モジュールは、たとえ学習の際に用いなかった動作機械であっても、適用することが可能と考えられる。
【００２１】
上記構成において、前記学習部は、前記制御モジュールを適用させた前記動作機械の仮想モデルを、少なくとも前記第２パラメータを用いて確率的に生成された前記１以上の仮想モデルを含む仮想空間上で動作させた場合の当該動作の正否判定に応じて、複数種別の前記動作機械に対して、前記制御モジュールを適用させた場合の動作成功率を算出する第２算出部と、前記動作成功率に応じて、前記動作機械を選択する第２選択部とを更に備える、ように構成されてもよい。
【００２２】
当該構成では、仮想モデルを構成する要素の特性の確率分布を定める第２パラメータに基づいて要素の特性にばらつきを持たせた仮想モデルが配置された仮想環境下でシミュレーションを行い、その結果に応じて、動作機械及び制御モジュールの組合せを選択する。また、動作機械及び制御モジュールは学習の際に用いなかったものであっても適用可能であると考えられる。
【００２３】
上記構成において、前記第１パラメータは、前記動作機械のキネマティクス構造の種別、及び前記動作機械の形状の種別の少なくとも一方の情報を含む、ように構成されても良い。
また、上記構成において、前記第２パラメータは、前記動作機械の要素の寸法、設置位置、色、及びテクスチャの少なくともいずれかの特定を確率変数とする確率分布に関するものである、ように構成されてもよい。
【００２４】
当該構成では、特に制御モジュールの学習対象である動作機械について、実環境での特性のばらつきを考慮した、頑健な制御モジュールを生成することができる。
【００２５】
上記構成において、前記１以上の仮想モデルは、前記動作機械の周辺環境に影響を与える部材、前記動作機械とともに使用される部材、前記動作機械の動作を検出するセンサ、及び、前記動作機械の動作対象物、の少なくともいずれかを含み、前記第１パラメータは、前記動作機械の周辺環境に影響を与える部材の種別、前記動作機械と共に使用される部材の種別、前記動作機械の動作を検出するためのセンサ種別、及び、前記動作機械の作業対象物の種別、の少なくともいずれかの情報を含む、ように構成されてもよい。
【００２６】
また、上記構成において、前記第２パラメータは、前記動作機械の周辺環境に影響を与える部材、前記動作機械と共に使用される部材、前記動作機械の動作を検出するためのセンサ、及び、前記作業対象物の動作対象の少なくともいずれかの特性を確率変数とする確率分布に関するものである、ように構成されてもよい。
【００２７】
当該構成では、特に動作機械の動作環境や制御対象物、センサ等について、実環境での特性のばらつきを考慮した、頑健な動作機械の制御モジュールを生成することができる。
【００２８】
上記構成において、前記第２パラメータの確率分布は、連続値の分布関数の種別と関数形状を決定する値の組合せ、離散値の分布関数と関数形状を決定する値の組合せ、及び、値の分布のリスト、を含む、ように構成されても良い。
【００２９】
当該構成では、実環境で起こりうる様々な確率分布を反映させた仮想環境を生成して、制御モジュールの学習等を行うことが可能である。
【００３０】
本発明の一態様に係る情報処理方法では、動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける処理と、前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける処理と、前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する処理と、確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する処理と、当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュールを学習する処理とを情報処理装置が行う。
【００３１】
当該構成では、仮想モデルを構成する要素の特性を確率変数とする確率分布を定める第２パラメータの入力を受け、当該第２パラメータに基づき、要素の特性にばらつきを持たせた仮想モデルを用いて、制御モジュールを学習する。これにより、実環境で発生するばらつきに対して頑健な制御モジュールを生成することが可能となる。
また、制御モジュールを仮想環境下で生成するため、計算時間のみで制御モジュールを獲得することができる。これにより、実環境で学習データを生成する場合よりも短時間で制御モジュールを獲得することが可能である。
【００３２】
本発明の一態様に係るプログラムでは、動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける処理と、前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける処理と、前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する処理と、確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する処理と、当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュールを学習する処理とを情報処理装置に実行させる。
【００３３】
当該構成では、仮想モデルを構成する要素の特性を確率変数とする確率分布を定める第２パラメータの入力を受け、当該第２パラメータに基づき、要素の特性にばらつきを持たせた仮想モデルを用いて、制御モジュールを学習する。これにより、実環境で発生するばらつきに対して頑健な制御モジュールを生成することが可能となる。
また、制御モジュールを仮想環境下で生成するため、計算時間のみで制御モジュールを獲得することができる。これにより、実環境で学習データを生成する場合よりも短時間で制御モジュールを獲得することが可能である。
【００３４】
なお、本発明において、「部」や「手段」、「装置」、「システム」とは、単に物理的手段を意味するものではなく、その「部」や「手段」、「装置」、「システム」が有する機能をソフトウェアによって実現する場合も含む。また、１つの「部」や「手段」、「装置」、「システム」が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の「部」や「手段」、「装置」、「システム」の機能が１つの物理的手段や装置により実現されてもよい。また、本発明において「異なる動作機械の種別」および「異なる第１パラメータ」の記述は、動作機械の種別、作業の種別、および動作環境の種別の組み合わせのうち、いずれか一つ以上が異なっていることをいう。
【図面の簡単な説明】
【００３５】
【図１】実施形態に係るパラメータの一例を説明するための図である。
【図２】実施形態に係る情報処理装置の構成の一例を模式的に例示するための図である。
【図３】実施形態に係る情報処理装置の処理手順の一例を例示するフローチャートである。
【図４】実施形態に係る情報処理装置の処理手順の一例を例示するフローチャートである。
【図５】実施形態に係る情報処理装置のハードウェア構成の一例を模式的に例示するための図である。
【図６】実施形態に係る情報処理装置の処理手順の一例を例示するフローチャートである。
【図７】実施形態に係る情報処理装置の処理手順の一例を例示するフローチャートである。
【図８】実施形態に係る情報処理装置の処理手順の一例を例示するフローチャートである。
【図９】実施形態に係る情報処理装置の処理手順の一例を例示するフローチャートである。
【発明を実施するための形態】
【００３６】
以下、図面を参照して本発明の実施形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。即ち、本発明は、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
【００３７】
［１  適用例］
まず、図１を参照しながら、実施形態に係る全体の概要を説明する。本実施形態に係る情報処理装置は、例えば産業ロボット等である動作機械の制御モジュールを学習により獲得するためのものである。ここで、制御モジュールとは、ある入力が与えられた場合に、動作機械の制御に関する出力を生成するための関数を表現するソフトウェアの一単位もしくはソフトウェアの組合せ、当該ソフトウェアを搭載したハードウェア、または当該ソフトウェアの機能を実現するデバイス等である。制御モジュールは、動作機械が実行する作業についての学習能力を備えている。ここで学習能力とは、ある作業（タスク）の処理能力を、学習用データから得られる経験に基づいて向上させることのできる能力をいう。
【００３８】
この際、動作機械を実際に実環境で動作させ、当該動作に用いた制御内容と動作結果とを学習データとして学習させることも考えられるが、実環境で動作させるには相応の時間が必要であるため、十分な数の学習データを得るためには膨大な時間が必要となる。そこで本実施形態に係る情報処理装置では、仮想空間上に、動作機械や作業対象物、動作機械の動作を検出するためのセンサ等を配置した上で、当該仮想空間上で動作機械を仮想的に動作させ、その結果を学習データとする。これにより、動作機械を実際には動かさずに、仮想空間での動作を演算処理によりシミュレートするのみで学習データを得ることができるため、より短時間で大量の学習データを獲得し、それを用いて制御モジュールを生成することが可能となる。
【００３９】
ここで、実環境では、動作機械を構成する部材の寸法や、動作機械と共に用いられる光源の強さ、動作を検出するセンサの設置位置等にばらつきが生じる。このようなばらつきの存在を考慮せずに、部材寸法、光源強度、センサ設置位置等を固定値とした仮想空間上での動作結果を学習データとして制御モジュールを学習させ、それを実環境に適用したとしても、実環境のばらつきに対して頑健な動作を保証することができない。
【００４０】
そこで本実施形態に係る情報処理装置は、仮想空間上に配置される動作機械やセンサ、作業対象物、光源等（以下、仮想空間上に配置されるこれらのものを総称して「仮想モデル」という）の寸法や位置等の各種特性を確率的に設定する。このようにして確率的なばらつきをもたせた仮想モデルが配置された仮想環境で動作機械を動作させた動作結果を学習データとして制御モジュールを生成することで、実環境のばらつきに対して頑健な動作を行うことを可能とする。
【００４１】
以下の説明では、仮想環境に配置される仮想モデルの種別を規定するパラメータを第１パラメータ、仮想モデルを構成する構成要素の特性を確率変数とする確率分布を規定するパラメータを第２パラメータという。
【００４２】
例えば図１の例では、仮想環境に配置される動作機械の仮想モデルとして、「６軸アーム型」及び「７軸アーム型」の２種類が第１パラメータにより特定可能となっている。また、作業台の仮想モデルとしては、「丸テーブル」及び「立方体」の２種類が第１パラメータで特定可能である。
【００４３】
更に、第１パラメータで特定される仮想モデルに対して、当該仮想モデルを構成する要素の特性が第２パラメータにより指定されている。例えば「６軸アーム型」の動作機械であれば、要素「第１リンク」の特性「長さ」が、正規分布関数の確率分布により連続的に与えられること、正規分布関数の変数であるμ（平均）及びσ（標準偏差）が、それぞれ４０ｃｍ及び２ｃｍとして設定されることが、第２パラメータで指定されている。また同様に、例えば「７軸アーム型」であれば、要素「第１リンク」の特性「長さ」が、一様分布関数として与えられること、最小値（Ｍｉｎ）及び最大値（Ｍａｘ）がそれぞれ２０ｃｍ及び３０ｃｍとして設定されることが、第２パラメータで指定されている。また要素「第７リンク」の特性「長さ」は、リストにより離散値として与えられ、６０ｃｍである確率が６０％、５０ｃｍである確率が４０％であることが第２パラメータで指定されている。
【００４４】
本実施形態に係る情報処理装置では、このように仮想環境に配置される仮想モデルの種別が第１パラメータにより、仮想モデルの構成要素の特性の取りうる値の発生確率が第２パラメータにより、それぞれ事前に与えられる。これにより、情報処理装置は、第１パラメータにより特定される１以上の仮想モデルを、第２パラメータに応じたばらつきを持つ構成要素の特性で生成した上で、それらを仮想環境に配置し、当該仮想環境下で動作機械の仮想モデルを動作させるシミュレーションを行う。先述のとおり、動作機械も仮想モデルの一種であるため、動作機械の構成要素の特性（例えば、把持動作を行う動作機械である場合の、当該把持動作を行う動作機械の物理的特性等）等も、第２パラメータにより確率的なばらつきを有し得る。情報処理装置は、このように確率的なばらつきのある仮想モデルが配置された仮想環境下で動作機械の動作シミュレーションを繰り返し行い、その動作結果を学習データとして制御モジュールを学習する。特に、第２パラメータを、実環境のばらつきに応じて設定すれば、実環境のばらつきに対して頑健な制御モジュールを学習により獲得することが可能である。
【００４５】
［２  構成例１］
以下、図２乃至図５を参照しながら、本実施形態に係る情報処理装置１００の構成例１を説明する。なお、構成例１では、選択可能な動作機械が複数ある場合に、各々動作機械に対してそれぞれ好適な制御モジュール１３３を学習する。
【００４６】
［２．１  動作構成］
まず、図２を参照しながら、構成例１にかかる情報処理装置１００の動作構成例を説明する。情報処理装置１００は、大きく、仮想モデル種別情報入力部１０１、確率情報入力部１０３、センシングデータ入力部１０５、シミュレーション部１１０、学習データ生成部１２１、制御モジュール生成部１３１、及び選択部１４１を含む。なお、これらの各構成は、プロセッサ上で動作するプログラムとして実現されてもよいし、或いは専用の１又は複数の半導体等のハードウェアとして実現されてもよい。各構成がプログラムとして実現される場合のハードウェア構成の例については、図５を参照しながら後述する。
【００４７】
仮想モデル種別情報入力部１０１は、仮想環境に配置される、動作機械を含む１以上の仮想モデルの各々の種別を特定するための情報、すなわち上述の第１パラメータの入力を受ける。なお、仮想モデル種別情報入力部１０１は、本発明の「第１入力部」の一例である。
【００４８】
第１パラメータでは、動作機械のキネマティクス構造の種別、ハンド部形状の種別の他、動作機械の周辺環境に影響を与える部材（例えば光源、床、壁面等）の種別、動作機械と共に使用される部材（例えば作業台やトレイ等）の種別、動作機械の動作を検出するためのセンサ（例えばカメラを含みうる）等の種別、動作機械が実行する作業の作業対象物の種別、等のうち少なくともいずれかを特定することができる。
【００４９】
確率情報入力部１０３は、仮想環境に配置される仮想モデルを構成する要素（例えば、図１を参照しながら説明した、仮想モデルである６軸アームを構成するリンク等）の特性（例えば寸法や重さ、設置位置、色、テクスチャ等）を確率変数とする確率分布に関する情報、すなわち上述の第２パラメータの入力を受ける。なお、確率情報入力部１０３は、本発明の「第２入力部」の一例である。
【００５０】
なお、第２パラメータは、動作機械のキネマティクス構造、ハンド部形状の他、動作機械の周辺環境に影響を与える部材（例えば光源、床、壁面等）、動作機械と共に使用される部材（例えば作業台やトレイ等）、動作機械の動作を検出するためのセンサ（例えばカメラを含みうる）、動作機械の作業対象物、等のうち、少なくともいずれかの特性を確率変数とする確率分布に関する情報を含む。より具体的には、例えば、動作機械の各部の寸法、動作機械の設置位置、動作機械の色、動作機械のテクスチャ、作業台／床／壁面の各部の寸法、設置位置、色、及びテクスチャ、センサの設置位置、カメラのフォーカス、カメラの視野角、作業対象物の各部の寸法、設置位置、移動速度、加速度、色等の特性を確率変数とする確率分布に関する情報を、第２パラメータは示す。
【００５１】
この時、第２パラメータは、連続値の分布関数の種別（例えば正規分布、一様分布等）と関数形状を決定する値（例えば正規分布の場合、μ及びσの値）の組合せ、離散値の分布関数と関数形状を決定する値の組合せ、値の分布のリスト（例えば第１値を○％、第２値を□％、第３値を△％…で取ることを示すリスト）等により、特性を確率変数とする確率分布を表現しうる。
【００５２】
センシングデータ入力部１０５は、動作機械や光源、センサ（例えばカメラを含みうる）等が実際に配置された実環境における、センサの検出結果の入力を受ける。後述の仮想センシングデータ生成部１１３は、仮想環境下におけるセンサの検出結果を、当該実環境におけるセンサの検出結果と組み合わせることで、より実環境に近づけた疑似センシングデータを生成して、当該疑似センシングデータを用いた学習データ１２３を生成することが可能となる。しかしながら、当該処理を行わずに、仮想環境下のセンサの検出結果のみを用いて学習データ１２３を生成する場合には、センシングデータ入力部１０５を省略することもできる。
【００５３】
シミュレーション部１１０は、動作機械を含む１以上の仮想モデルを生成した上で、生成した仮想モデルが配置された仮想環境下で動作機械を仮想的に動作させるシミュレーションを行う。この時、選択可能な動作機械（第１パラメータで指定可能な動作機械）が複数ある場合には、各々の動作機械に対してシミュレーションを行う。シミュレーション部１１０は、仮想モデル生成部１１１、仮想センシングデータ生成部１１３、動作成否判定部１１５、動作成功率算出部１１７を含む。
【００５４】
仮想モデル生成部１１１は、仮想環境に配置される１以上の仮想モデルを多数生成する。なお、仮想モデル生成部１１１は、本発明の「仮想モデル生成部」の一例である。仮想モデル生成部１１１により生成される仮想モデルの種別は、仮想モデル種別情報入力部１０１から入力される第１パラメータにより特定される。また、仮想モデルを構成する要素の特性は、確率情報入力部１０３から入力される第２パラメータに基づき、確率的に定められる。すなわち、仮想モデル生成部１１１が１つの種別の仮想モデルを１００個生成する場合には、生成される各々の仮想モデルの要素の特性には、第２パラメータに応じたばらつきが生じる。特に第２パラメータの確率分布を実世界における確率分布に応じて設定しておくことで、情報処理装置１００は、ばらつきを持つ実環境下で収集される学習データに近い学習データ１２３を仮想環境下で生成することが可能となる。
【００５５】
仮想センシングデータ生成部１１３は、仮想環境下で動作機械（仮想モデルである動作機械）を動作させる場合の動作機械の動作や周辺環境等を検出した結果である仮想センシングデータを生成する。この際、センシングデータ入力部１０５から、実環境下におけるセンサの検出結果の情報の入力を受けている場合には、仮想センシングデータ生成部１１３は、仮想センシングデータを当該実環境下でのセンサの検出結果と組み合わせることで、より実環境に近づけた疑似センシングデータを生成するようにしてもよい。
【００５６】
動作成否判定部１１５は、仮想環境下のセンサ（仮想モデルであるセンサ）で検出される結果を用いて、制御モジュール１３３の学習対象となる動作機械を任意の制御内容で動作させ、予め設定された動作結果が得られるかどうかを判定する。もし予め設定された動作結果が得られた場合には動作成功、得られなかった場合には動作失敗となる。なお、仮想環境下のセンサで検出される結果は、先述の仮想センシングデータに相当するものであり、仮想センシングデータの代わりに、疑似センシングデータを用いてもよい（なお、以降「仮想センシングデータ」との記載は、特に言及しない限り「疑似センシングデータ」することができる）。なお、動作成否判定部１１５は、本発明の「判定部」の一例である。
【００５７】
ここで、先述のとおり、十分な数の施行母数を得るために、仮想モデル生成部１１１は、１つの種別に対して多数の仮想モデルを生成する。動作成否判定部１１５は、仮想モデル生成部１１１が生成した各々の仮想モデルを用いて仮想環境下で動作機械を動作させ、それぞれの動作結果を判定する。動作成否判定部１１５により判定された動作成否判定結果は、動作機械の動作内容（制御情報）、及び仮想センシングデータ（疑似センシングデータであってもよい）と共に学習データ生成部１２１に出力される。
【００５８】
動作成功率算出部１１７は、同じ動作機械を用いて試行を行った場合の動作結果を集計することにより、仮想環境下で動作機械を動作させた場合に、予め定められた動作結果が得られる動作成功率を算出する。なお、動作成功率算出部１１７は、本発明の「第１算出部」の一例である。
【００５９】
ここで、動作成功率を算出するためにシミュレーション部１１０は仮想環境下でのシミュレーションを多数繰り返す必要があるが、その際に仮想環境に配置される仮想モデルには、仮想モデル生成部１１１により第２パラメータを用いて確率的に生成された仮想モデルが用いられる。すなわち、動作成功率は、ばらつきを持つ実環境と同様に、ばらつきを持つ仮想モデルに対して算出されるため、特に第２パラメータの確率分布を実世界における確率分布に応じて設定しておくことで、実環境に近い動作成功率を算出することができる。
【００６０】
学習データ生成部１２１は、シミュレーション部１１０によるシミュレーションの結果に応じて学習データ１２３を生成する。学習データ１２３には、動作機械の動作内容（制御内容）、仮想センシングデータ、及びそれらの動作内容及び仮想センシングデータを用いた場合の動作成否判定結果の情報を含むことができる。このとき、選択可能な動作機械が複数ある場合には、学習データ１２３は各々の動作機械に対して生成される。学習データ生成部１２１は、本発明の「学習データ生成部」の一例である。
【００６１】
制御モジュール生成部１３１は、学習データ１２３を用いた学習により制御モジュール１３３を生成する。この時、選択可能な動作機械が複数ある場合には、制御モジュール生成部１３１は、各々の動作機械に対して制御モジュール１３３を生成する。なお、制御モジュール生成部１３１は、本発明の「学習部」の一例である。
【００６２】
制御モジュール生成部１３１による制御モジュール１３３の形態は任意であるが、例えばニューラルネットワークを用いることができる。この場合、例えば、仮想センシングデータと、動作機械の単位動作とをニューラルネットワークの入力、当該仮想センシングデータと当該単位動作の組合せに対する動作成功率を出力とすることができる。制御モジュール生成部１３１は、学習により、当該ニューラルネットワークの出力結果が、仮想空間におけるシミュレーション結果の動作成功率に近似するように、各ノードの重みが調整されたニューラルネットワーク（すなわち制御モジュール１３３）を生成する。１つの仮想センシングデータに対し、単位動作候補となる複数の単位動作を組み合わせることにより、それぞれの単位動作の組合せに対する作業成功率が学習される。得られたニューラルネットワークは、制御モジュール１３３として制御モジュール生成部１３１から任意の記憶媒体へ出力される。
【００６３】
なお、制御モジュール１３３を用いて動作機械（仮想環境の動作機械か実環境の動作機械かは問わない）を動作させる場合には、例えば以下のような処理を行えばよい。センサで検出されたセンシングデータと、動作機械が取りうる任意の単位動作をニューラルネットワーク（制御モジュール１３３）に入力することで、当該単位動作を選択した場合の成功確率を得ることができる。よって、１つのセンシングデータに対して、動作候補となりうる複数の単位動作を組合せて、それぞれの組み合わせに対する動作成功率を算出した上で、最も動作成功率が高い単位動作を、直近の単位動作とすればよい。
【００６４】
制御モジュール生成部１３１により生成された制御モジュール１３３は、シミュレーション部１１０に出力される。シミュレーション部１１０の動作成功率算出部１１７は、当該制御モジュール１３３を適用して動作機械を動作させた場合の動作成功率を算出する。このとき、選択可能な動作機械が複数ある場合には、動作成功率算出部１１７は、動作機械と制御モジュール１３３との組合せの各々に対して、動作成功率を算出する。
【００６５】
選択部１４１は、選択可能な動作機械が複数ある場合に、実機として用いる動作機械と制御モジュール１３３の組合せを選択する。なお、選択部１４１は、本発明の「第１選択部」の一例である。より具体的には、例えば、各々の動作機械と制御モジュール１３３との組合せの中から、動作成功率算出部１１７が算出した動作成功率が最も高い動作機械と制御モジュール１３３の組合せを、実機として用いる動作機械及び制御モジュール１３３として選択部１４１は選択すればよい。
【００６６】
［２．２  処理の流れ］
以下、図３及び図４を参照しながら、構成例１に係る情報処理装置１００の処理の流れを説明する。図３及び図４は、情報処理装置１００の処理の流れを示すフローチャートである。
【００６７】
なお、後述の各処理ステップは、処理内容に矛盾を生じない範囲で、任意に順番を変更して若しくは並列に実行することができ、また、各処理ステップ間に他のステップを追加してもよい。更に、便宜上１つのステップとして記載されているステップは複数のステップに分けて実行することもでき、便宜上複数に分けて記載されているステップを１ステップとして実行することもできる。この点、後述の図６乃至図９のフローチャートについても同様である。
【００６８】
［２．２．１  制御モジュール１３３の学習］
まず、図３を参照しながら、制御モジュール１３３を学習する処理の流れを説明する。
【００６９】
仮想モデル種別情報入力部１０１は、制御モジュール１３３の学習対象となる動作機械の種別の特定を含む、仮想環境に配置される１以上の仮想モデルに関する第１パラメータの入力を受ける（Ｓ３０１）。また、確率情報入力部１０３は、仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける（Ｓ３０３）。仮想モデル生成部１１１は、第１パラメータで指定された種別の１以上の仮想モデルを、第２パラメータにより確率的に設定された特性を持つ要素により生成する（Ｓ３０５）。シミュレーション部１１０は、生成された１以上の仮想モデルが配置された仮想環境下で、学習対象となる動作機械を動作させるシミュレーションを行う（Ｓ３０７）。このとき、仮想センシングデータ生成部１１３は、動作の適宜の時点において、仮想環境の状況を検出した結果である仮想センシングデータを生成する。動作成否判定部１１５は、このようにしてシミュレーションを行った結果、動作機械が予め設定された目的を達成したか否か、すなわち動作が成功したか否かを判定する（Ｓ３０９）。
【００７０】
学習データ生成部１２１は、当該判定結果を用いて学習データ１２３を生成する（Ｓ３１１）。先述のとおり、学習データ１２３には、動作機械の動作内容（制御情報）、仮想センシングデータ、及びそれらの動作内容（制御情報）及び仮想センシングデータを用いた場合の動作成否判定結果の情報を含むことができる。
【００７１】
学習データ１２３が生成されると、制御モジュール生成部１３１は、それらの学習データ１２３を用いて、対象の動作機械の制御モジュール１３３を学習する（Ｓ３１３）。制御モジュール１３３の学習方法の具体例については先述したため、ここでは説明を省略する。
【００７２】
シミュレーション部１１０、学習データ生成部１２１、および制御モジュール生成部１３１は、このような、仮想環境下での仮想モデルの生成から動作判定までの処理を、十分な母数が得られるまで所定の試行回数繰り返す（Ｓ３１５のＮｏ）。また、選択可能な動作機械（学習対象となる動作機械）の種別が複数ある場合には、情報処理装置１００は、Ｓ３０１乃至Ｓ３１５の処理を、各々の動作機械の数だけ繰り返す（Ｓ３１７のＮｏ）。
【００７３】
［２．２．２  動作機械の選択］
次に、図４を参照しながら、選択可能な複数の動作機械の中から、実環境に適用するのに好適な動作機械を選択する処理の流れを説明する。
【００７４】
仮想モデル種別情報入力部１０１は、例えば実環境で実際に作業を行う際に選択可能な複数の動作機械の中から１つの候補に係る第１パラメータの入力を受ける（Ｓ４０１）。また、確率情報入力部１０３は、仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける（Ｓ４０３）。仮想モデル生成部１１１は、第１パラメータで指定された種別の１以上の仮想モデルを、第２パラメータにより確率的に設定された特性を持つ要素を用いて生成する（Ｓ４０５）。シミュレーション部１１０は、生成された１以上の仮想モデルが配置された仮想環境下で、選択候補である動作機械を動作させるシミュレーションを行う（Ｓ４０７）。この時、動作機械は、制御モジュール生成部１３１により生成された制御モジュール１３３に基づいて動作させる。また、仮想センシングデータ生成部１１３は、動作の適宜の時点において、仮想環境の状況を検出した結果である仮想センシングデータを生成する。動作成否判定部１１５は、このようにしてシミュレーションを行った結果、動作機械が予め設定された目的を達成したか否か、すなわち動作が成功したか否かを判定する（Ｓ４０９）。
【００７５】
シミュレーション部１１０は、このような、仮想環境下での仮想モデルの生成から動作判定までの処理を、動作成功率を集計するのに十分な母数が得られるまで所定の試行回数繰り返す（Ｓ４１１のＮｏ）。動作成功率算出部１１７は、動作機械及び制御モジュール１３３の組合せによる動作成功率を算出する（Ｓ４１３）。
【００７６】
情報処理装置１００は、Ｓ４０１乃至Ｓ４１３の処理を、選択可能な動作機械及び制御モジュール１３３の全ての組合せに対して行う（Ｓ４１５のＮｏ）。選択可能な動作機械及び制御モジュール１３３の全ての組み合わせに対して動作成功率が算出されると（Ｓ４１５のＹｅｓ）、選択部１４１は、当該動作成功率に基づいて、実際に用いる動作機械及び制御モジュール１３３の組合せを選択する（Ｓ４１７）。このとき選択部１４１は、例えば、動作成功率が最も高い動作機械及び制御モジュール１３３の組合せを選択すればよい。
【００７７】
［２．３  ハードウェア構成］
以下、図５を参照しながら、情報処理装置１００を実現可能なハードウェア構成を説明する。図５は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を模式的に例示する。
【００７８】
図５の例に示す情報処理装置１００は、制御部５０１、記憶部５０５、通信インタフェース（Ｉ／Ｆ）部５１１、入力部５１３、及び出力部５１５を含み、各部はバスライン５１７を介して相互に通信可能に選択され得る。
【００７９】
制御部５０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０３、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等を含み、情報処理に応じて各構成要素の制御を行う。より具体的には、例えば、制御部５０１に含まれ得るＣＰＵは、記憶部５０５から制御プログラム５０７をＲＡＭ５０３へ読込み、当該制御プログラム５０７を実行することで、図２に示した仮想モデル種別情報入力部１０１、確率情報入力部１０３、センシングデータ入力部１０５、シミュレーション部１１０、学習データ生成部１２１、制御モジュール生成部１３１、及び選択部１４１の各種処理を実行可能である。
【００８０】
記憶部５０５は、例えばハード・ディスク・ドライブ（ＨＤＤ）、ソリッド・ステート・ドライブ（ＳＳＤ）等の補助記憶装置であり制御部５０１で実行される制御プログラム５０７、及び、データベース（ＤＢ）５０９等を記憶する。ＤＢ５０９では、図２に示した学習データ１２３や制御モジュール１３３等を管理することができる。この他、仮想モデル生成部１１１により生成される仮想モデルや、仮想センシングデータ生成部１１３により生成される仮想センシングデータ等も、記憶部５０５に記憶され得る。
【００８１】
制御プログラム５０７は、図２乃至図４を参照しながら説明した情報処理装置１００の処理を実行させるためのプログラムである。特に、図２に示した仮想モデル種別情報入力部１０１、確率情報入力部１０３、センシングデータ入力部１０５、シミュレーション部１１０、学習データ生成部１２１、制御モジュール生成部１３１、及び選択部１４１の各構成は、制御プログラム５０７として実現しうる。
【００８２】
通信インタフェース部５１１は、例えば、有線又は無線により他の装置と通信するための通信モジュールである。通信Ｉ／Ｆ部５１１が他の装置との通信に用いる通信方式は任意であるが、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等が挙げられる。例えば、図示しない動作機械への制御モジュール１３３の出力等は、通信Ｉ／Ｆ部５１１を介して行うことが考えられる。
【００８３】
入力部５１３は、例えば、マウスやキーボード、タッチパネル等で実現しうる、ユーザからの各種入力操作等を受け付けるためのデバイスである。出力部５１５は、例えば、ディスプレイやスピーカ等、表示や音声等により、情報処理装置１００を利用するユーザ等へ各種情報を報知するための装置である。例えば、選択部１４１により選択された動作機械の情報などを、出力部５１５が表示等することにより、ユーザに報知することが考えられる。
【００８４】
［２．４  構成例１の効果］
以上説明したように、構成例１に係る情報処理装置１００では、仮想モデルを構成する要素の特性を確率変数とする確率分布を定める第２パラメータの入力を受け、当該第２パラメータに基づき、要素の特性にばらつきを持たせた仮想モデルを生成した上で、当該仮想モデルが配置された仮想環境下で、動作機械の動作シミュレーションを行ってその動作結果を評価する。当該動作結果に基づく学習データ１２３を用いて当該動作機械の制御モジュール１３３を生成することにより、実環境で発生するばらつきに対して頑健な制御モジュール１３３を生成することができる。
【００８５】
また、選択可能な動作機械の全てに対して同様の処理を繰り返して制御モジュール１３３を生成した上で、更に、当該制御モジュール１３３が適用された動作機械に対して、同様に第２にパラメータに基づいて要素の特性にばらつきを持たせた仮想モデルが配置された仮想環境下でシミュレーションを行い、その結果を評価する。その中で、動作成功率が高い動作機械及び制御モジュール１３３の組合せを選択することにより、実環境で発生するばらつきに対して頑健な動作機械及び制御モジュール１３３の組合せを選択することができる。
【００８６】
［２．５  構成例１の変形例］
なお、上記で説明した構成例１は、本発明を教師あり学習による自動機械の制御モジュールの自立獲得技術に適用したものであるが、本発明は教師あり学習に限られるものではない。たとえば、強化学習による自動機械の制御モジュールの自立獲得技術にも適用可能である。以下、本発明を教科学習に適用する場合の構成および処理を、図６を参照しながら説明する。
【００８７】
上記Ｓ６０１乃至Ｓ６０５の処理は、図４を参照しながら説明した上記構成例１と同様であるため、説明を省略する。本発明を強化学習に適用する場合、動作成否判定部１１５は報酬算出部として動作し、自動機械の仮想モデルが行動する度に動作成否判定結果の代わりに報酬を算出する（Ｓ６０９）。学習データ生成部１２１は、算出された報酬を含む学習データ１２３を生成し（Ｓ６１１）、任意の記憶媒体に保存する。制御モジュール生成部１３１は、所定の行動回数の間隔で学習データ１２３を記憶媒体から読み込み、制御モジュール１３３を学習する（Ｓ６１３）。制御モジュール生成部１３１は、各行動後に学習してもよいし、複数回の行動間隔で学習してもよい。なお、行動を動作機械の単位動作とすると好適である（Ｓ６１５）。情報処理装置１００は、これらの処理を全候補動作機械種別に対する学習が終了するまで繰り返す（Ｓ６１７）。
【００８８】
ここで、制御モジュール生成部１３１が直近の学習データ１２３のみを読み込むように実装されると、同一の仮想モデルでの学習データ１２３ばかりが使用されることになるため、頑健な制御モジュール１３３を学習することが困難である。そこで、記憶媒体からランダムに学習データ１２３を読み込むと、第２パラメータにより変動した異なる仮想モデルでの学習データ１２３を用いて学習することができるため、より頑健な制御モジュール１３３を獲得することができる。
【００８９】
あるいは、シミュレーション部１１０におけるシミュレーションを並列に実行し、また、各シミュレーションにおける仮想モデルが第２パラメータによりランダムに異なるようにした上で、それらの各シミュレーションによる学習データ１２３を集めて制御モジュール生成部１３１での学習を行えば、第２パラメータにより変動した異なる仮想モデルでの学習データ１２３を用いることが可能となる。この場合にも、制御モジュール生成部１３１は頑健な制御モジュール１３３を獲得することが可能である。
【００９０】
［３  構成例２］
以下、本実施形態に係る情報処理装置１００の構成例２を説明する。なお、構成例２では、複数の作業機械に適用可能な汎用的な制御モジュール１３３を学習により獲得する。
【００９１】
［３．１  動作構成］
構成例２に係る情報処理装置１００の大まかな動作構成は、構成例１と同様となる。また、構成例２に係る情報処理装置１００は、構成例１に係る情報処理装置１００と同様のハードウェア構成により実現可能であるため、ハードウェア構成に関する説明は省略する。
【００９２】
以下、図２を参照しながら、構成例１と動作が異なる部分を中心に説明する。以下の説明において、構成例１と同様とすることができる部分は記載を省略している。
【００９３】
仮想モデル種別情報入力部１０１は、仮想環境に配置される、動作機械を含む１以上の仮想モデルの各々の種別を特定するための情報、すなわち第１パラメータの入力を受ける。ここで、構成例２では、複数種別の仮想モデルを第１パラメータで指定可能である。第１パラメータにより指定可能な仮想モデルの種別については構成例１と同様である。すなわち、構成例２における第１パラメータでは、異なる種別の複数の動作機械種別、異なる種別の複数の環境種別、および異なる種別の複数の作業対象物種別等を指定可能である。
【００９４】
確率情報入力部１０３は、仮想環境に配置される仮想モデルを構成する要素の特性を確率変数とする確率分布に関する情報、すなわち第２パラメータの入力を受ける。先述のとおり、第１パラメータで複数種別の仮想モデルを指定可能であることから、それら複数種別の仮想モデルのそれぞれに対する要素の特性を確率変数とする確率分布に関する情報を第２パラメータに含む必要がある。
構成例２のセンシングデータ入力部１０５、及びそれを利用する仮想センシングデータ生成部１１３については、構成例１と同様とすることができる。
【００９５】
シミュレーション部１１０は、動作機械となる１以上の仮想モデルを生成した上で、生成した仮想モデルが配置された仮想環境下で動作機械を仮想的に動作させるシミュレーションを行う。このとき、第１パラメータで指定される動作機械の種別が複数ある場合には、シミュレーション部１１０は各々の種別の動作機械に対してシミュレーションを行う。
【００９６】
シミュレーション部１１０に含まれる仮想モデル生成部１１１は、仮想環境に配置される１以上の仮想モデルを多数生成する。この時、仮想モデル生成部１１１により生成される仮想モデルの種別は、第１パラメータで指定される複数種別とすることができ、それぞれに対して第２パラメータに基づいて、要素の特性にばらつきを持つ仮想モデルを生成する。
【００９７】
動作成否判定部１１５は、仮想環境下のセンサ（仮想モデルであるセンサ）で検出される結果を用いて、制御モジュール１３３の学習対象となる動作機械を任意の制御内容で動作させ、予め設定された動作結果が得られるかどうかを判定する。動作成否判定部１１５により判定された動作成否判定結果は、動作機械の動作内容（制御内容）、及び仮想センシングデータ（疑似センシングデータであってもよい）と共に学習データ生成部１２１へ出力される。
【００９８】
ここで、仮想モデル生成部１１１は、十分な数の試行母数を得るために、１つの種別に対して多数の仮想モデルを生成する。更に、構成例２の仮想モデル生成部１１１は、複数種別の仮想モデルも生成するため、動作成否判定部１１５は、複数種別に対してそれぞれ多数生成された仮想モデルのそれぞれを用いて仮想環境下で動作機械を動作させ、それらの動作結果を各々判定する。
【００９９】
動作成功率算出部１１７は、動作機械を用いて試行を行った場合の動作結果を集計することにより、仮想環境下で動作機械を動作させた場合に、予め定められた動作結果が得られる動作成功率を算出する。このとき、動作成功率は、単一の種別の仮想環境、すなわち第１パラメータの単一の組み合わせに対してそれぞれ算出される。なお、構成例２に係る動作成功率算出部１１７は、本発明の「第２算出部」の一例である。
【０１００】
学習データ生成部１２１は、シミュレーション部１１０によるシミュレーション結果に応じて学習データ１２３を生成する。学習データ１２３には、仮想モデルの生成に使用した第１パラメータ、動作機械の動作内容（制御内容）、仮想センシングデータ、及びそれらの動作内容及び仮想センシングデータを用いた場合の動作成否判定結果の情報を含むことができる。このとき、学習データ生成部１２１は、同様の機能を有する複数種別の動作機械に対して学習データ１２３を生成する。
【０１０１】
制御モジュール生成部１３１は、学習データ１２３を用いた学習により制御モジュール１３３を生成する。ここで、先述のとおり、構成例２における制御モジュール生成部１３１により生成される制御モジュール１３３は、複数種別の動作機械に対してそれぞれ生成されるものではなく、制御する動作機械の種別に対応した第１パラメータを指定することで動作機械の種別に適した制御を行う、汎用的な単一のものとなる。
【０１０２】
ここで、制御モジュール生成部１３１による制御モジュール１３３の形態は任意であるが、例えばニューラルネットワークを用いることができる。この場合、例えば、仮想モデルの生成に使用した第１パラメータ、仮想センシングデータと、動作機械の単位動作とをニューラルネットワークの入力、当該仮想センシングデータと当該単位動作の組合せに対する動作成功率を出力とすることができる。制御モジュール生成部１３１は、学習により、当該ニューラルネットワークの出力結果が、仮想空間におけるシミュレーション結果の動作成功率に近似するように、各ノードの重みが調整されたニューラルネットワーク（すなわち制御モジュール１３３）を生成する。仮想モデルの生成に使用した第１パラメータと仮想センシングデータの１つに対し、単位動作候補となる複数の単位動作を組み合わせることにより、それぞれの単位動作の組合せに対する作業成功率が学習される。得られたニューラルネットワークは、制御モジュール１３３として制御モジュール生成部１３１から任意の記憶媒体へ出力される。
【０１０３】
制御モジュール生成部１３１により生成された汎用的な１つの制御モジュール１３３は、シミュレーション部１１０に出力される。シミュレーション部１１０の動作成功率算出部１１７は、当該制御モジュール１３３を用いて動作機械を動作させた場合の動作成功率を算出する。このとき、選択可能な動作機械の種別が複数ある場合には、動作成功率算出部１１７は、各々の種別の動作機械のそれぞれに対して、動作成功率を算出する。このために、制御モジュール１３３には動作機械の種別に対応した第１パラメータを入力する必要がある。
【０１０４】
選択部１４１は、選択可能な動作機械の種別が複数ある場合に、実機として、汎用的な制御モジュール１３３と合わせて用いる動作機械の種別を選択する。なお、構成例２に係る選択部１４１は、本発明の「第２選択部」の一例である。
【０１０５】
［３．２  処理の流れ］
以下、図７及び図８を参照しながら、構成例２に係る情報処理装置１００の処理の流れを説明する。図７及び図８は、情報処理装置１００の処理の流れを示すフローチャートである。
【０１０６】
［３．２．１  制御モジュール１３３の学習］
まず、図７を参照しながら、汎用的な制御モジュール１３３を学習する処理の流れを説明する。
【０１０７】
仮想モデル種別情報入力部１０１は、制御モジュール１３３の学習対象となる動作機械の種別の情報を含む、仮想環境に配置され得る１以上の仮想モデルに関する第１パラメータの入力を受ける（Ｓ７０１）。この際、第１パラメータには、同様の機能を有する１つの仮想モデル（例えば１つの動作機械）に対して、複数種別の情報を含むことができる。また、確率情報入力部１０３は、第１パラメータに含まれる複数種別の仮想モデルの各々を構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける（Ｓ７０３）。
【０１０８】
シミュレーション部１１０は、今回の試行に用いる仮想環境を構成する１以上の仮想モデルからなる組合せを選定し（Ｓ７０５）、仮想モデル生成部１１１は、選定された組合せを構成する各々の仮想モデルを、第２パラメータにより確率的に設定された特定を持つ要素により生成する（Ｓ７０７）。シミュレーション部１１０は、生成された１以上の仮想モデルが配置された仮想環境下で、学習対象となる動作機械を動作させるシミュレーションを行う（Ｓ７０９）。このとき、仮想センシングデータ生成部１１３は、動作の適宜の時点において、仮想環境の状況を検出した結果である仮想センシングデータを生成する。動作成否判定部１１５は、このようにしてシミュレーションを行った結果、動作機械が予め設定された目的を達成したか否か、すなわち動作が成功したか否かを判定する（Ｓ７１１）。
【０１０９】
学習データ生成部１２１は、当該結果を用いて学習データ１２３を生成する（Ｓ７１３）。学習データ１２３には、仮想モデルの生成に使用した第１パラメータ、動作機械の動作内容（制御情報）、仮想センシングデータ、及びこれらの動作内容及び仮想センシングデータを用いた場合の動作成否判定結果の情報を含むことができる。
【０１１０】
学習データ１２３が生成されると、制御モジュール生成部１３１は、当該学習データ１２３を用いて、全ての動作機械に汎用的に用いることができる制御モジュール１３３を学習する（Ｓ７１５）。
【０１１１】
シミュレーション部１１０、学習データ生成部１２１、および制御モジュール生成部１３１は、仮想環境を構成する１以上の仮想モデルの組合せに対して、Ｓ７０７乃至Ｓ７１５までの処理を十分な母数が得られるまで所定の試行回数繰り返す（Ｓ７１７のＮｏ）。十分な試行回数だけシミュレーションを行うと（Ｓ７１７のＹｅｓ）、シミュレーション部１１０は、異なる仮想モデルの組合せを選定して（Ｓ７１９のＮｏ、Ｓ７０５）、再度Ｓ７０７乃至Ｓ７１５の処理を繰り返す。
【０１１２】
［３．２．２  動作機械の選択］
次に、図８を参照しながら、選択可能な複数種別の動作機械の中から、実環境に適用するのに好適な動作機械の種別を選択する処理の流れを説明する。
【０１１３】
仮想モデル種別情報入力部１０１は、例えば実環境で実際に作業を行う際に選択可能な複数種別の動作機械の中から１つの候補に係る第１パラメータの入力を受ける（Ｓ８０１）。また、確率情報入力部１０３は、仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける（Ｓ８０３）。仮想モデル生成部１１１は、第１パラメータで指定された種別の１以上の仮想モデルを、第２パラメータにより確率的に設定された特性を持つ要素を用いて生成する（Ｓ８０７）。シミュレーション部１１０は、生成された１以上の仮想モデルが配置された仮想環境下で、選択候補である動作機械を動作させるシミュレーションを行う（Ｓ８０９）。この時、動作機械は、制御モジュール生成部１３１により生成された制御モジュール１３３に基づいて動作させる。このとき、制御モジュール１３３に対し、仮想モデルの生成に使用した第１パラメータを指定する必要がある。また、仮想センシングデータ生成部１１３は、動作の適宜の時点において、仮想環境の状況を検出した結果である仮想センシングデータを生成する。動作成否判定部１１５は、このようにしてシミュレーションを行った結果、動作機械が予め設定された目的を達成したか否か、すなわち動作が成功したか否かを判定する（Ｓ８１１）。
【０１１４】
シミュレーション部１１０は、候補として選択されている種別の動作機械に対して、Ｓ８０７乃至Ｓ８１１までの処理を、十分な母数が得られるまで所定の試行回数繰り返す（Ｓ８１３のＮｏ）。１つの種別の動作機械に対して十分な試行回数だけシミュレーションを行うと（Ｓ８１３のＹｅｓ）、動作成功率算出部１１７は、動作成功率を算出する（Ｓ８１５）。
【０１１５】
その後、シミュレーション部１１０は、異なる動作機械を選定して（Ｓ８１７のＮｏ、Ｓ８０５）、再度Ｓ８０７乃至Ｓ８１５の処理により、動作成功率を算出する。このようにして、動作機械の選択可能な全ての種別に対して動作成功率が算出されると（Ｓ８１７のＹｅｓ）、選択部１４１は、当該動作成功率に基づいて、実際に用いる動作機械の種別を選択する（Ｓ８１９）。このとき選択部１４１は、例えば、動作成功率が最も高い動作機械を選択すればよい。
【０１１６】
［３．３  構成例２の効果］
以上説明したように、構成例２に係る情報処理装置１００では、構成例１と同様に、仮想モデルを構成する要素の特性を確率変数とする確率分布を定める第２パラメータの入力を受け、当該第２パラメータに基づき、要素の特性にばらつきを持たせた仮想モデルを生成した上で、当該仮想モデルが配置された仮想環境下で、動作機械の動作シミュレーションを行ってその動作結果を評価する。当該動作結果に基づく学習データ１２３を用いて当該動作機械の制御モジュール１３３を生成することにより、実環境で発生するばらつきに対して頑健な制御モジュール１３３を生成することができる。
【０１１７】
また、制御対象である動作機械の種別を示す第１パラメータの入力を受けることで好適な動作を実行可能な、汎用的な制御モジュール１３３が生成される。生成される制御モジュール１３３が汎用的なものであるため、制御モジュール１３３を獲得するための学習の際に用いなかった種別の動作機械であったとしても、当該制御モジュール１３３を適用することが可能だと考えられる。
【０１１８】
更に、当該制御モジュール１３３が適用された動作機械に対して、同様に第２パラメータに基づいて要素の特性にばらつきを持たせた仮想モデルが配置された仮想環境下でシミュレーションを行い、その結果を評価する。その中で、動作成功率が高い動作機械を選択することにより、実環境で発生するばらつきに対して頑健な動作機械を選択することができる。
【０１１９】
［３．４  構成例２の変形例］
なお、上記で説明した構成例２は、本発明を教師あり学習による自動機械の制御モジュールの自立獲得技術に適用したものであるが、本発明は教師あり学習に限られるものではない。たとえば、適用例１と同様に、強化学習による自動機械の制御モジュールの自立獲得技術にも適用可能である。本発明を教科学習に適用する場合の構成および処理の流れは、図９に図示する。基本的には、図６を参照しながら説明した適用例１の制御モジュール１３３の学習の流れ、および、図７を参照しながら説明した適用例２の制御モジュールの学習の流れ、の少なくともいずれかに応じた処理の組合せにより実現しうるため、詳細な説明は省略する。
【０１２０】
［４  付記］
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【０１２１】
（付記１）
動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける第１入力部（１０１）と、
前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける第２入力部（１０３）と、
前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する仮想モデル生成部（１１１）と、
確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する判定部（１１５）と、
当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュール（１３３）を学習する学習部（１３１）と
を備える情報処理装置（１００）。
【０１２２】
（付記２）
前記学習部（１３１）は、前記第１パラメータで特定される種別に対応して生成される複数の前記動作機械の各々に対して、対応する前記制御モジュール（１３３）を学習する、
付記１記載の情報処理装置（１００）。
【０１２３】
（付記３）
動作の成否判定結果と、その際に用いた前記動作機械の制御情報とに応じた学習データ（１２３）を生成する学習データ生成部（１２１）
を更に備え、
前記学習部（１３１）は、前記学習データ（１２３）を用いて、所定の動作を実現するための前記動作機械の前記制御モジュール（１３３）を学習する、
付記１又は付記２記載の情報処理装置（１００）。
【０１２４】
（付記４）
前記学習データ生成部（１２１）は、前記第１パラメータで特定される種別に対応して生成される複数の前記動作機械の各々に対して前記学習データ（１２３）を生成し、
前記学習部（１３１）は、選択可能な複数の前記動作機械の各々に対して、対応する前記学習データ（１２３）を用いて学習することで、対応する前記制御モジュール（１３３）を学習する、
付記３記載の情報処理装置（１００）。
【０１２５】
（付記５）
対応する前記制御モジュール（１３３）を適用させた前記動作機械の仮想モデルを、少なくとも前記第２パラメータを用いて確率的に生成された前記１以上の仮想モデルを含む仮想空間上で動作させた場合の当該動作の正否判定に応じて、複数の前記動作機械と前記制御モジュール（１３３）との組合せのそれぞれに対して動作成功率を算出する第１算出部と、
前記動作成功率に応じて、前記動作機械と前記制御モジュール（１３３）との組合せを選択する第１選択部（１４１）と
を更に備える、付記２乃至付記４のいずれか１項記載の情報処理装置（１００）。
【０１２６】
（付記６）
前記学習データ生成部（１２１）は、動作の正否判定結果と、その際に用いた前記動作機械の制御情報と、その際に用いた前記第１パラメータとを含む前記学習データ（１２３）を生成し、
前記学習部（１３１）は、異なる前記第１パラメータで指定される複数種別の前記動作機械による前記学習データ（１２３）を単一の前記制御モジュール（１３３）として学習することで、複数種別の前記動作機械に適用可能な前記制御モジュール（１３３）を学習する、
付記３記載の情報処理装置（１００）。
【０１２７】
（付記７）
前記学習部（１３１）は、前記制御モジュール（１３３）を適用させた前記動作機械の仮想モデルを、少なくとも前記第２パラメータを用いて確率的に生成された前記１以上の仮想モデルを含む仮想空間上で動作させた場合の当該動作の正否判定に応じて、複数種別の前記動作機械に対して、前記制御モジュール（１３３）を適用させた場合の動作成功率を算出する第２算出部（１１７）と、
前記動作成功率に応じて、前記動作機械を選択する第２選択部（１４１）と
を更に備える、付記６記載の情報処理装置（１００）。
【０１２８】
（付記８）
前記第１パラメータは、前記動作機械のキネマティクス構造の種別、及び前記動作機械の形状の種別の少なくとも一方の情報を含む、
付記１乃至付記７のいずれか１項記載の情報処理装置（１００）。
【０１２９】
（付記９）
前記第２パラメータは、前記動作機械の要素の寸法、設置位置、色、及びテクスチャの少なくともいずれかの特性を確率変数とする確率分布に関するものである、
付記１乃至付記８のいずれか１項記載の情報処理装置（１００）。
【０１３０】
（付記１０）
前記１以上の仮想モデルは、前記動作機械の周辺環境に影響を与える部材、前記動作機械とともに使用される部材、前記動作機械の動作を検出するセンサ、及び、前記動作機械の動作対象物、の少なくともいずれかを含み、
前記第１パラメータは、前記動作機械の周辺環境に影響を与える部材の種別、前記動作機械と共に使用される部材の種別、前記動作機械の動作を検出するためのセンサ種別、及び、前記動作機械の作業対象物の種別、の少なくともいずれかの情報を含む、
付記１乃至付記９のいずれか１項記載の情報処理装置（１００）。
【０１３１】
（付記１１）
前記第２パラメータは、前記動作機械の周辺環境に影響を与える部材、前記動作機械と共に使用される部材、前記動作機械の動作を検出するためのセンサ、及び、前記作業対象物の動作対象の少なくともいずれかの特性を確率変数とする確率分布に関するものである、
付記１０記載の情報処理装置（１００）。
【０１３２】
（付記１２）
前記第２パラメータの確率分布は、連続値の分布関数の種別と関数形状を決定する値の組合せ、離散値の分布関数と関数形状を決定する値の組合せ、及び、値の分布のリスト、を含む、
付記１乃至付記１１のいずれか１項記載の情報処理装置（１００）。
【０１３３】
（付記１３）
動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける処理と、
前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける処理と、
前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する処理と、
確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する処理と、
当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュール（１３３）を学習する処理と
を情報処理装置（１００）が行う、情報処理方法。
【０１３４】
（付記１４）
動作機械の仮想モデルを含む１以上の仮想モデルについて、種別を特定するための第１パラメータの入力を受ける処理と、
前記１以上の仮想モデルを構成する要素の特性を確率変数とする確率分布に関する第２パラメータの入力を受ける処理と、
前記第１パラメータ及び前記第２パラメータを用いて、前記１以上の仮想モデルを確率的に生成する処理と、
確率的に生成された前記１以上の仮想モデルを含む仮想空間上で前記動作機械の仮想モデルを動作させた場合の当該動作の正否を判定する処理と、
当該動作の正否判定結果に応じて、所定の動作を実現するための前記動作機械の制御モジュール（１３３）を学習する処理と
を情報処理装置（１００）に実行させるためのプログラム。
【符号の説明】
【０１３５】
１００…情報処理装置、１０１…仮想モデル種別情報入力部、１０３…確率情報入力部、１０５…センシングデータ入力部、１１０…シミュレーション部、１１１…仮想モデル生成部、１１３…仮想センシングデータ生成部、１１５…動作成否判定部、１１７…動作成功率算出部、１２１…学習データ生成部、１２３…学習データ、１３１…制御モジュール生成部、１３３…制御モジュール、１４１…選択部、５０１…制御部、５０５…記憶部、５０７…制御プログラム、５０９…データベース（ＤＢ）、５１１…通信インタフェース部、５１３…入力部、５１５…出力部、５１７…バスライン
【図１】
2019153246.tif 000003
【図２】
2019153246.tif 000004
【図３】
2019153246.tif 000005
【図４】
2019153246.tif 000006
【図５】
2019153246.tif 000007
【図６】
2019153246.tif 000008
【図７】
2019153246.tif 000009
【図８】
2019153246.tif 000010
【図９】
2019153246.tif 000011