(57)【要約】      （修正有）【課題】追加の処理を学習させる場合、効率的に学習を行うことができる、ロボットの動作制御装置、動作制御方法、動作制御プログラム、及び処理装置を提供する。【解決手段】本発明は、処理対象物に対するロボットの動作制御装置であって、少なくとも前記処理対象物を撮影した撮影画像及び前記ロボットの少なくとも一つの動作候補が入力される入力部と、前記ロボットが第１の処理動作を行うときの、前記各動作候補の評価を示す第１の評価値を出力するために、第１学習データにより学習された学習済みの第１の学習器と、ロボットが第２の処理動作を行うときの、前記各動作候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器と、前記第１の評価値及び前記第２の評価値の少なくとも一方に基づいて、前記ロボットを動作させるための指令値を算出する評価部と、を備えている。【選択図】図２
2019155561.tif 000002
【特許請求の範囲】
【請求項１】
処理対象物に対するロボットの動作制御装置であって、
少なくとも前記処理対象物を撮影した撮影画像、及び前記ロボットの少なくとも一つの動作候補が入力される入力部と、
前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第１の処理動作を行うときの、前記各動作候補の評価を示す第１の評価値を出力するために、第１学習データにより学習された学習済みの第１の学習器と、
前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第２の処理動作を行うときの、前記各動作候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器と、
前記第１の評価値及び前記第２の評価値の少なくとも一方に基づいて、前記ロボットを動作させるための指令値を算出する評価部と、
を備えている、動作制御装置。
【請求項２】
前記第１の評価値は、当該第１の動作候補の成功確率を示す確率値であり、
前記第２の評価値は、当該第２の動作候補の成功確率を示す確率値である、請求項１に記載の動作制御装置。
【請求項３】
前記評価部は、前記各評価値が所定値以上の前記動作候補に基づいて、前記指令値を算出する、請求項１または２に記載の動作制御装置。
【請求項４】
前記評価部は、前記第１の評価値及び第２の評価値に対し、前記各処理動作に基づく重み付けを行うことで、前記指令値を算出する、請求項１または２に記載の動作制御装置。
【請求項５】
前記第２の評価値は、前記第１の処理動作及び第２の処理動作の少なくとも一方に起因して起こり得る事象の評価値である、請求項１から４のいずれかに記載の動作制御装置。
【請求項６】
前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記第１の処理動作及び第２の処理動作の少なくとも一方に起因して起こり得る事象を示す第３の評価値を出力とするように、前記第１及び第２学習データとは異なる第３学習データにより、学習された学習済みの第３の学習器をさらに備え、
前記評価部は、前記第３の評価値も用いて、前記指令値を算出する、請求項１から４のいずれかに記載の動作制御装置。
【請求項７】
前記撮影画像を入力とし、前記第１の処理動作に適した前記第１の動作候補、及び前記第２の処理動作に適した前記第２の動作候補を出力とする動作候補生成部をさらに備えている、請求項１から６のいずれかに記載の動作制御装置。
【請求項８】
前記第１の処理動作及び前記第２の処理動作の動作候補は、前記ロボットが動作するための移動ベクトルを含む、請求項１から７のいずれかに記載の動作制御装置。
【請求項９】
処理対象物に対して、処理を行うロボットと、
請求項１から８のいずれかに記載の動作制御装置と、
を備え、
前記動作制御装置から算出された指令値により、前記ロボットが動作するように構成されている、ロボット制御システム。
【請求項１０】
処理対象物に対するロボットの動作制御方法であって、
少なくとも前記処理対象物を撮影した撮影画像、及び前記ロボットの少なくとも一つの動作候補を入力するステップと、
前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第１の処理動作を行うときの、前記各動作候補の評価を示す第１の評価値を出力するために、第１学習データにより、学習された学習済みの第１の学習器を準備するステップと、
前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第２の処理動作を行うときの、前記各動作候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器を準備するステップと、
前記撮影画像及び前記動作候補から、前記第１の学習器によって、前記第１の評価値を出力するステップと、
前記撮影画像及び前記動作候補から、前記第２の学習器によって、前記第２の評価値を出力するステップと、
前記第１の評価値及び第２の評価値の少なくとも一方に基づいて、前記ロボットを動作させるための指令値を算出するステップと、
を備えている、動作制御方法。
【請求項１１】
処理対象物に対するロボットの動作制御プログラムであって、
コンピュータに、
少なくとも前記処理対象物を撮影した撮影画像、及び前記ロボットの少なくとも一つの動作候補を入力するステップと、
前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第１の処理動作を行うときの、前記各動作候補の評価を示す第１の評価値を出力するために、第１学習データにより、学習された学習済みの第１の学習器を準備するステップと、
前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第２の処理動作を行うときの、前記各動作候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器を準備するステップと、
前記撮影画像及び前記動作候補から、前記第１の学習器によって、前記第１の評価値を出力するステップと、
前記撮影画像及び前記動作候補から、前記第２の学習器によって、前記第２の評価値を出力するステップと、
前記第１の評価値及び第２の評価値の少なくとも一方に基づいて、前記ロボットを動作させるための指令値を算出するステップと、
を実行させる、動作制御プログラム。
【請求項１２】
制御対象物の制御装置であって、
前記制御対象物に関連する環境情報、及び前記制御対象物に対する少なくとも一つの処理候補を入力する入力部と、
前記環境情報、及び少なくとも一つの前記処理候補を入力とし、前記制御対象物に対し第１の処理を行うときの、前記各処理候補の評価を示す第１の評価値を出力するために、第１学習データにより、学習された学習済みの第１の学習器と、
前記環境情報、及び少なくとも一つの前記処理候補を入力とし、前記制御対象物に対し第２の処理を行うときの、前記各処理候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器と、
前記第１の評価値及び前記第２の評価値の少なくとも一方に基づいて、前記制御対象物を制御するための指令値を算出する評価部と、
を備えている、制御装置。
【請求項１３】
所定の処理を行う処理装置であって、
少なくとも一つの処理候補を入力する入力部と、
少なくとも一つの処理候補を入力とし、第１の処理を行うときの、前記各処理候補の評価を示す第１の評価値を出力するために、第１学習データにより、学習された学習済みの第１の学習器と、
少なくとも一つの前記処理候補を入力とし、第２の処理を行うときの、前記各処理候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器と、
前記第１の評価値及び前記第２の評価値の少なくとも一方に基づいて、前記第１の処理及び前記第２の処理の少なくとも一方の処理候補を決定する評価部と、
を備えている、処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作制御装置、動作制御方法、動作制御プログラム、及び処理装置に関する。
【背景技術】
【０００２】
従来より、ロボットの動作制御の方法として、種々の方法が提案されている。例えば、特許文献１には、ロボットアームにより対象物を把持する制御において、画像データに含まれる対象物の形状モデルに基づいて、ロボットアームの制御を行う制御装置が開示されている。また、この文献には、ロボットアームの制御を行うために、画像データを入力とした把持の成功確率を出力する学習器も開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１８５５７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、このような学習器を用いてロボットの動作制御を行う場合、制御対象となるロボットの動作を追加するには、学習器を再学習する必要がある。すなわち、新たに追加するロボットの動作に関する学習データを追加した上で、学習器を再学習する必要がある。しかしながら、既存の学習器に対し、学習データを追加して再学習を行うと、学習データが膨大になり、再学習に時間を要するという問題があった。
【０００５】
なお、このような問題は、ロボットの動作制御に限られる問題ではなく、例えば、学習器により所定の処理に対する出力を行う、処理装置全般に生じうる問題である。本発明は、この問題を解決するためになされたものであり、追加の処理を学習させる場合、効率的に学習を行うことができる、ロボットの動作制御装置、動作制御方法、動作制御プログラム、及び処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示は、処理対象物に対するロボットの動作制御装置であって、少なくとも前記処理対象物を撮影した撮影画像、及び前記ロボットの少なくとも一つの動作候補が入力される入力部と、前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第１の処理動作を行うときの、前記各動作候補の評価を示す第１の評価値を出力するために、第１学習データにより学習された学習済みの第１の学習器と、前記撮影画像及び少なくとも一つの前記動作候補を入力とし、ロボットが第２の処理動作を行うときの、前記各動作候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器と、前記第１の評価値及び前記第２の評価値の少なくとも一方に基づいて、前記ロボットを動作させるための指令値を算出する評価部と、を備えている。
【０００７】
この構成によれば、一つの学習器を、すべての処理動作を考慮するように学習させるのではなく、新たな処理動作が付加されたときには、その処理動作のみを考慮した学習器を追加で生成している。すなわち、本発明では、第１の処理動作とは異なる第２の処理動作を行うために、第１の処理動作とは異なる学習データによって、学習された第２学習器を別途生成し、第１及び第２学習器の出力を考慮して、評価部において、動作指令を算出するようにしている。したがって、学習器の学習の負担を低減すことができる。
【０００８】
なお、処理対象物とはロボットが作業を行うべき部品、被搬送物などの対象であり、処理動作とは、処理対象物に対して、ロボットが行う動作である。例えば、処理対象物の把持、搬送、位置決めなどである。また、動作候補とは、ロボットが処理動作を行うに当たってのロボットが行う動作の候補である。例えば、ロボットハンドの前後進、昇降、回転などの動作である。また、昇降、回転のような動作の種類が異なる動作候補を準備するほか、例えば、同じ動作の種類であっても、回転角度が異なる２つの回転動作も、それぞれ動作候補となり得る。
【０００９】
上記動作制御装置において、前記第１の評価値は、当該第１の動作候補の成功確率を示す確率値とすることができ、前記第２の評価値は、当該第２の動作候補の成功確率を示す確率値とすることができる。
【００１０】
上記動作制御装置において、前記評価部は、前記各評価値が所定値以上の動作候補に基づいて、前記指令値を算出することができる。
【００１１】
上記動作制御装置において、前記評価部は、前記第１の評価値及び第２の評価値に対し、前記各処理動作に基づく重み付けを行うことで、前記指令値を算出することができる。
【００１２】
上記動作制御装置において、前記第２の評価値は、前記第１の処理動作及び第２の処理動作の少なくとも一方に起因して起こり得る事象の評価値とすることができる。
【００１３】
上記動作制御装置において、前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記第１の処理動作及び第２の処理動作の少なくとも一方に起因して起こり得る事象を示す第３の評価値を出力とするように、前記第１及び第２学習データとは異なる第３学習データにより、学習された学習済みの第３の学習器をさらに備えることができ、前記評価部は、前記第３の評価値も用いて、前記指令値を算出することができる。
【００１４】
上記動作制御装置においては、前記撮影画像を入力とし、前記第１の処理動作に適した前記第１の動作候補、及び前記第２の処理動作に適した前記第２の動作候補を出力とする動作候補生成部をさらに備えることができる。
【００１５】
上記動作制御装置において、前記第１の処理動作及び前記第２の処理動作の動作候補は、前記ロボットが動作するための移動ベクトルを含むことができる。
【００１６】
本開示は、ロボット制御システムであって、処理対象物に対して、処理を行うロボットと、上述したいずれかの動作制御装置と、を備え、前記動作制御装置から算出された指令値により、前記ロボットが動作するように構成されている。
【００１７】
本開示は、処理対象物に対するロボットの動作制御方法であって、少なくとも前記処理対象物を撮影した撮影画像、及び前記ロボットの少なくとも一つの動作候補を入力するステップと、前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第１の処理動作を行うときの、前記各動作候補の評価を示す第１の評価値を出力するために、第１学習データにより、学習された学習済みの第１の学習器を準備するステップと、前記撮影画像及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第２の処理動作を行うときの、前記各動作候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器を準備するステップと、前記撮影画像及び前記動作候補から、前記第１の学習器によって、前記第１の評価値を出力するステップと、前記撮影画像及び前記動作候補から、前記第２の学習器によって、前記第２の評価値を出力するステップと、前記第１の評価値及び第２の評価値の少なくとも一方に基づいて、前記ロボットを動作させるための指令値を算出するステップと、を備えている。
【００１８】
本開示は、処理対象物に対するロボットの動作制御プログラムであって、コンピュータに、少なくとも前記処理対象物を撮影した撮影画像及び前記ロボットの少なくとも一つの動作候補を入力するステップと、前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第１の処理動作を行うときの、前記各動作候補の評価を示す第１の評価値を出力するために、第１学習データにより、学習された学習済みの第１の学習器を準備するステップと、前記撮影画像、及び少なくとも一つの前記動作候補を入力とし、前記ロボットが第２の処理動作を行うときの、前記各動作候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器を準備するステップと、前記撮影画像及び前記動作候補から、前記第１の学習器によって、前記第１の評価値を出力するステップと、前記撮影画像及び前記動作候補から、前記第２の学習器によって、前記第２の評価値を出力するステップと、前記第１の評価値及び第２の評価値の少なくとも一方に基づいて、前記ロボットを動作させるための指令値を算出するステップと、を実行させる。
【００１９】
本開示は、制御対象物の制御装置であって、前記制御対象物に関連する環境情報、及び前記制御対象物に対する少なくとも一つの処理候補を入力する入力部と、前記環境情報、及び少なくとも一つの前記処理候補を入力とし、前記制御対象物に対し第１の処理を行うときの、前記各処理候補の評価を示す第１の評価値を出力するために、第１学習データにより、学習された学習済みの第１の学習器と、前記環境情報、及び少なくとも一つの前記処理候補を入力とし、前記制御対象物に対し第２の処理を行うときの、前記各処理候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器と、前記第１の評価値及び前記第２の評価値の少なくとも一方に基づいて、前記制御対象物を制御するための指令値を算出する評価部と、を備えている。
【００２０】
本開示は、所定の処理を行う処理装置であって、少なくとも一つの処理候補を入力する入力部と、少なくとも一つの処理候補を入力とし、第１の処理を行うときの、前記各処理候補の評価を示す第１の評価値を出力するために、第１学習データにより、学習された学習済みの第１の学習器と、少なくとも一つの前記処理候補を入力とし、第２の処理を行うときの、前記各処理候補の評価を示す第２の評価値を出力するために、前記第１学習データとは異なる第２学習データにより、学習された学習済みの第２の学習器と、前記第１の評価値及び前記第２の評価値の少なくとも一方に基づいて、前記第１の処理及び前記第２の処理の少なくとも一方の処理候補を決定する評価部と、を備えている。
【発明の効果】
【００２１】
本発明によれば、追加の処理を学習させる場合、効率的に学習を行うことができる。
【図面の簡単な説明】
【００２２】
【図１】本発明のロボットの動作制御装置の一実施形態で用いられるロボットの一例を示す概略図である。
【図２】本発明に係る動作制御装置の一実施形態の機能ブロック図である。
【図３】ロボットハンドによる対象部品の把持を示す図である。
【図４】図２の動作制御装置のハードウエア構成を示すブロック図である。
【図５】図２の動作制御装置で用いられるニューラルネットワークの一例を示す図である。
【図６】図２の動作制御装置の学習器の学習の一例を示す図である。
【図７】学習データの一例である。
【図８】学習データの一例である。
【図９】学習器からの出力の例である。
【図１０】図２のモータ制御システムにおける学習器の更新の処理手順の一例を例示するフローチャートである。
【図１１】本発明に係る制御装置の一実施形態の機能ブロック図である。
【図１２】本発明に係る処理装置の一実施形態の機能ブロック図である。
【発明を実施するための形態】
【００２３】
以下、本発明に係るロボットの動作制御装置、動作制御方法、及び動作制御プログラムの一実施形態について、図面を参照しつつ説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００２４】
＜１．適用例＞
以下、本実施形態に係るロボットの動作制御装置について図１及び図２を参照しつつ説明する。図１は、本実施形態に係るロボットの概略図、図２は、動作制御装置を含むロボットの制御システムの機能構成を示すブロック図である。
【００２５】
この制御システムは、ロボットの動作を制御するシステムであり、ロボットが処理すべき対象物に対し、適切に処理を行うための動作指令を与えるものである。ここでは、図１に示すように、ロボットハンド１０を有するロボット１が、複数の部品（処理対象物）５の中の対象部品５０を把持するための動作指令を行う場合を例として説明する。
【００２６】
このような動作指令を行うため、動作制御装置２は、図２に示すように、ロボットハンド１０と対象部品５０とを撮影した撮影画像と、対象部品５０を把持するためにロボットハンド１０が動作すべき複数の動作候補と、を入力として、学習器２１１〜２１３に入力する。すなわち、各学習器２１１〜２１３には、同じ入力がなされるようになっている。本実施形態では、３つの学習器２１１〜２１３が設けられているが、ここでは、まず第１学習器２１１について説明する。
【００２７】
第１学習器２１１は、撮影画像と複数の動作候補とを入力としたとき、各動作候補の対象部品を把持できる成功確率を第１確率値として出力とするように学習されている。撮影画像は、ロボットハンド１０及び対象部品５０を撮影したものであり、現在のロボットハンド１０と対象部品５０の位置を抽出するためのものである。但し、ロボットハンド１０が固定された初期位置に配置される場合には、対象部品５０だけを撮影した撮影画像を準備することもできる。
【００２８】
また、本実施形態では、図１に示すように、動作候補として、ロボットハンド１０が対象部品５０に向かって移動する移動ベクトルＭｎ（ｘｎ，ｙｎ，θｎ）（ｎは整数）を用いている。ここで、ｘはｘ方向の移動量、ｙはｙ方向の移動量、θはロボットハンド１０の傾きを表している。このように設定された複数の移動ベクトルを動作候補とし、この動作候補を撮影画像とともに入力とすることで、第１学習器２１１は、ロボットハンド１０が各動作候補によって対象部品５０を把持できる成功確率を第１確率値として出力とする。そして、図２に示すように、動作制御装置２の評価部２１４では、算出された第１確率値に基づいて、一の動作候補を選択し、選択された動作候補の移動ベクトルをロボット１に対して動作指令として送信する。
【００２９】
このとき、評価部２１４での動作候補の選択は、種々の方法があるが、例えば、最も高い第１確率値を示した動作候補を選択することができる。また、第１確率値が所定値以下である場合には、動作指令を行わず、入力に用いた動作候補とは異なる動作候補を準備した後、第１学習器２１１で確率値の出力を改めて行うこともできる。
【００３０】
このような第１学習器２１１は、ニューラルネットワークなどの機械学習で構成することができる。ところで、この第１学習器２１１では、ロボットハンド１０が対象部品５０を把持することを目的として動作候補を選択しているが、さらなる条件を付加してロボットハンド１０に対象部品５０を把持させることが考えられる。例えば、単に対象部品５０を把持するだけではなく、図３に示すように、対象部品５０の取り扱いを考慮して、対象部品５０の中心Ｘを挟むようにロボットハンド１０で把持させたいという条件を付加したい場合がある。この場合は、ロボットハンド１０が対象部品５０の中心に到達する成功確率を出力できるように、第１学習器２１１を再学習させる必要がある。
【００３１】
しかしながら、第１学習器２１１を再学習させるとすると、追加学習データを第１学習器２１１の学習データに加えた上で、第１学習器２１１の再学習を行わなければならない。すなわち、全ての条件を１つの学習器で学習しようとすると、複合的な条件を満足する学習データの収集が困難であったり、追加の学習を行うと、確立していた元の学習結果の出力が保証できなくなる等の問題があり、効率がよくない。そこで、本実施形態では、追加の条件に係るロボットハンド１０の動作を、第１学習器２１１とは別の第２学習器２１２で行うこととし、この追加された条件での各動作候補の成功確率を示す第２確率値を出力する。そして、評価部２１４では、第１学習器２１１で選択された動作候補の第１確率値、及び第２学習器２１２で出力された動作候補の第２確率値の２つを考慮して、動作指令を算出するようにしている。すなわち、第１学習器２１１を、すべての条件を考慮するように学習させるのではなく、条件が追加されたときには、その条件のみを考慮した第２学習器２１２を追加で生成し、第１学習器２１１及び第２学習器２１２の両方の出力を考慮して、評価部２１４において、動作指令を算出するようにしている。したがって、学習器の学習の負担を低減すことができる。
【００３２】
同様にして、本実施形態の動作制御装置２では、第３学習器２１３を備えている。この第３学習器２１３は、ロボットハンド１０で対象部品５０を把持するとき、他の部品に影響を与えないように対象部品５０を把持できる確率を示す第３確率値を出力できるようにしている。例えば、ロボットハンド１０が、対象部品５０を把持する過程で、図１に示す他の部品５１〜５３の位置を変えないように、対象部品５０を把持できる確率を出力することができる。このような付加的な条件についても、第１及び第２学習器２１１，３１２とは別途学習を行った第３学習器２１３を生成し、評価部２１４では、その出力である第３確率値を、第１及び第２確率値とともに考慮して、動作指令を算出する。このように、学習器の数は、特には限定されず、付加的な条件が加えられるたびに、学習器を新たに生成することができる。
【００３３】
以上のように、本実施形態では、ロボット１０に所定の目的の動作をさせる制御を行うとき、全ての条件を充足するように１つの学習器を学習させるのではなく、ロボットが行うべき動作の条件を分け、各条件ごとにロボット１０の動作の学習を行い、各条件ごとに学習器によって動作の評価を行うようにしている。そして、各学習器が出力した動作の評価を総合的に考慮して、ロボット１０が行うべき動作指令を算出するようにしている。また、各学習器が出力した評価を考慮するに当たっては、各評価を均等に考慮することもできるし、重み付けをすることもできる。さらには、評価の優先順位を設けておき、例えば、一の評価が所定以上の評価でない場合には、他の評価を考慮しないようにすることもできる。これにより、上述したような１つの学習器を用いたときの不具合を解消することができる。
【００３４】
＜２．構成例＞
＜２−１．ハードウエア構成＞
次に、本実施形態に係るロボットの動作制御装置２を含む制御システムのハードウエア構成について、図４も参照しつつ説明する。図４は、本実施形態に係るロボットの制御システムのハードウエア構成を示すブロック図である。
【００３５】
＜２−１−１．ロボット＞
図１に示すように、このロボット１は、部品を把持可能なロボットハンド１０を有しており、このロボットハンド１０が上下左右に移動するほか、ロボットハンド１０が傾くように構成されている。但し、ロボット１及びロボットハンド１０の構成は特には限定されず、他の動作を行えるように適宜変更可能である。
【００３６】
＜２−１−２．制御装置＞
図４に示すように、本実施形態に係るロボットの動作制御装置２は、制御部２１、記憶部２２、通信インタフェース２３、入力装置２４、出力装置２５、表示装置２６、外部インタフェース２７、及びドライブ２８が電気的に接続されたコンピュータである。なお、図４では、通信インタフェース及び外部インタフェースをそれぞれ、「通信Ｉ／Ｆ」及び「外部Ｉ／Ｆ」と記載している。
【００３７】
制御部２１は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、情報処理に応じて各構成要素の制御を行う。記憶部２２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置であり、制御部２１で実行される制御プログラム２２１、動作候補データ２２２、撮影画像データ２２３、確率値データ２２４、第１〜第３学習器２１１〜２１３に関する情報を示す学習結果データ２２５、第１〜第３学習器２１１〜２１３を学習させるための学習データ２２６等を記憶する。その他、動作制御装置２の駆動に必要な各種のデータも記憶することもできる。
【００３８】
制御プログラム２２１は、ロボット１の動作のために、上述した入力を受け付け、これに応じた出力を行うものであり、後述する第１〜第３学習器２１１〜２１３によって、出力を行う。動作候補データ２２２は、上述したとおり、ロボットハンド１０の移動ベクトルを含むデータであり、多数の動作候補を有している。動作候補データは、ロボット１の種類や対象物品の種類に応じて予め準備されている。撮影画像データ２２３は、上述したようにロボットハンド１０及び対象部品５０を撮影した撮影画像に係るデータであり、確率値データ２２４は、各学習器２１１〜２１３によって出力されたロボットハンド１０の各動作候補の成功確率を示すデータである。学習結果データ２２５は、学習済みの各学習器２１１〜２１３の設定を行うためのデータである。また、学習データ２２６は、現在の各学習器２１１〜２１３の学習に用いたデータである。なお、学習に関する詳細な説明は後述する。
【００３９】
通信インタフェース２３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。例えば、動作指令を送信するためにロボット１と通信したり、あるいは外部のカメラ４と通信し、カメラ４によって撮影された撮影画像を取得することができる。また、ロボット１の制御に関する情報を外部に送信するために用いることもできる。入力装置２４は、例えば、マウス、キーボード等の入力を行うための装置であり、ユーザによるロボット１の動作に係る各種の指示を入力することができる。出力装置２５は、例えば、スピーカ等の出力を行うための装置である。表示装置２６は、ディスプレイ等で構成することができ、例えば、学習器２１１〜２１３による出力の結果などを表示することができる。外部インタフェース２７は、ＵＳＢ（Universal Serial Bus）ポート等であり、外部装置と接続するためのインタフェースである。
【００４０】
ドライブ２８は、例えば、ＣＤ（Compact Disk）ドライブ、ＤＶＤ（Digital Versatile Disk）ドライブ等であり、記憶媒体９１に記憶されたプログラムを読み込むための装置である。ドライブ２８の種類は、記憶媒体９１の種類に応じて適宜選択されてよい。上記記憶部２２に記憶される各種のデータ２２１〜２２６の少なくとも一つは、この記憶媒体９１に記憶されていてもよい。また、撮影画像データ２２３、確率値データ２２４は、制御部２１のＲＡＭに記憶させることもできる。
【００４１】
記憶媒体９１は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、このプログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。この動作制御装置２は、この記憶媒体９１から、上記各種のデータ２２１〜２２６を取得してもよい。
【００４２】
ここで、図４では、記憶媒体９１の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９１の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００４３】
なお、動作制御装置２の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部２１は、複数のプロセッサを含んでもよい。動作制御装置２は、複数台の情報処理装置で構成されてもよい。また、動作制御装置２は、提供されるサービス専用に設計された情報処理装置の他、汎用のデスクトップＰＣ（Personal Computer）、タブレットＰＣ等が用いられてもよい。
【００４４】
＜２−２．動作制御装置の機能的構成＞
次に、図２及び図４を参照しつつ、本実施形態に係る動作制御装置の機能構成の一例を説明する。
【００４５】
＜２−２−１．概略構成＞
図２に示すように、動作制御装置２の制御部２１は、記憶部２２に記憶された制御プログラム２２１をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開されたプログラム２２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図２に示すように、本実施形態に係る制御装置２は、入力部２１０、第１〜第３学習器２１１〜２１３、及び評価部２１４を備えるコンピュータとして機能する。
【００４６】
＜２−２−２．入力部＞
入力部２１０は、各学習器２１１〜２１３への入力として、撮影画像及び動作候補を準備する。例えば、入力装置２４からの指示により、ロボット１の制御が始まると、カメラ４にロボットハンド１０及び対象部品２０を撮影させ、撮影画像を取得する。撮影画像は、撮影画像データ２２３として記憶部２２に記憶することができる。なお、予め撮影画像が取得されている場合には、記憶部２２の撮影画像データから必要な撮影画像を読み出すこともできる。また、記憶部２２の動作候補データ２２２から複数の動作候補を入力用に選択する。このとき、入力用の動作候補は、動作候補データ２２２の中からランダムに選択する。こうして、入力部２１０により準備された撮影画像及び複数の動作候補を各学習器２１１〜２１３に入力する。
【００４７】
＜２−２−３．第１学習器＞
第１学習器２１１では、撮影画像及び複数の動作候補を入力とし、各動作候補による動作によってロボットハンド１０が対象部品５０を把持できる成功確率を示す第１確率値を出力するように学習されている。ここで、ロボットハンド１０が対象部品５０を単に把持する動作を第１処理動作と称することとする。
【００４８】
このような出力を行う第１学習器２１１は、ニューラルネットワークで構成されている。具体的には、図５に示すような、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層７１、中間層（隠れ層）７２、及び出力層７３を備えている。
【００４９】
図５に示すように、ニューラルネットワーク７は１層の中間層７２を備えており、入力層７１の出力が中間層７２の入力となり、中間層７２の出力が出力層７３の入力となっている。ただし、中間層７２の数は１層に限られなくてもよく、ニューラルネットワーク７は、中間層７２を２層以上備えてもよい。
【００５０】
各層７１〜７３は、１又は複数のニューロンを備えている。例えば、入力層７１のニューロンの数は、入力データの数に応じて設定することができる。中間層７２のニューロンの数は実施の形態に応じて適宜設定することができる。また、出力層７３も、動作候補の数に応じて設定することができる。
【００５１】
隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。図５の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
【００５２】
各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。この動作制御装置２は、このようなニューラルネットワーク７の入力層７１に上記入力を行うことで、出力層７３から各動作候補の成功確率を示す出力を得る。
【００５３】
なお、このようなニューラルネットワーク７の構成（例えば、ニューラルネットワーク７の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、学習結果データ２２５に含まれている。動作制御装置２は、学習結果データ２２５を参照して、学習済みの学習器の設定を行う。
【００５４】
また、第１学習器２１１の学習は、例えば、図６に示すような学習データ２２６により行われる。つまり、撮影像及び動作候補を入力とし、これに対するロボットハンド１０による把持の成否を出力とした学習データ２２６を用い、これによって誤差伝播法などで学習を行う。具体的な学習データ２２６の例を図７に示す。学習データは、撮影画像及び動作候補を種々組み合わせ、それに対する把持の成否を実際にロボットハンド１０を駆動させることで取得する。すなわち、所定の位置にロボットハンド１０及び対象部品５０が写る撮影画像を取得し、これに対して所定の動作候補でロボットハンド１０を動作させた場合、ロボットハンド１０が実際に対象部品５０を把持したときには成功、把持できなかったときには失敗として、学習データ２２６を生成する。例えば、図７では、画像１及び動作候補Ｍ１に基づいて、ロボットハンド１０を駆動したときには、対象部品２０を把持できたとする学習データが含まれている。このような学習データ２２６を生成し、これによって第１学習器２１１を学習させると、各動作候補において、対象部品５０を把持できる成功確率、つまり第１確率値を出力することができる。すなわち、このような出力を得ることができる第１学習器２１１用の学習結果データ２２５が生成される。なお、学習データ２２６を作成するに当たっては、ロボットハンド１０を実際に使用して学習データ２２６を作成することもできるし、コンピュータ上でのシミュレーションにより、ロボットハンドを動作させて学習データ２２６を作成することもできる。
【００５５】
＜２−２−４．第２学習器＞
第２学習器２１２では、撮影画像及び複数の動作候補を入力とし、各動作候補による動作によってロボットハンド１０が対象部品５０の中心に到達できる成功確率を示す第２確率値を出力するように学習されている。ここで、ロボットハンド１０が対象部品５０の中心に到達するような動作を第２処理動作と称することとする。
【００５６】
第２学習器２１２も第１学習器２１１と同様に、ニューラルネットワークにより構成することができるため、詳しい説明は省略する。また、学習の方法及び学習データの生成についても、第１学習器２１１と概ね同様であるが、例えば、ロボットハンド１０を種々の動作候補で動作させたときに、ロボットハンド１０の座標が対象部品５０の中心として設定された範囲に到達すれば、成功（＝１）、到達しなければ、失敗（＝０）となるように学習データ２２６を作成することができる。すなわち、第２学習器２１２は、対象部品５０をロボットハンド１０で把持できるか否かではなく、対象部品５０の中心にロボットハンド１０が到達できるか否かの評価を行うものである。
【００５７】
＜２−２−５．第３学習器＞
第３学習器２１３では、撮影画像及び複数の動作候補を入力とし、各動作候補による動作によってロボットハンド１０が対象部品５０に到達するまでの過程で、他の部品５１〜５３が移動しない確率を示す第３確率値を出力するように学習されている。すなわち、ロボットハンド１０によって、あるいは対象部品５０によって、他の部品５１〜５３が影響を受けずに移動しない確率を出力する。ここで、ロボットハンド１０が対象部品５０に到達する過程で、他の部品を移動させないような動作を第３処理動作と称することとする。
【００５８】
ここで、第３学習器２１３も第１学習器２１１と同様に、ニューラルネットワークにより構成することができるため、詳しい説明は省略する。また、学習データ２２６は、例えば、以下のように生成することができる。
【００５９】
学習データ２２６は、撮影画像及び動作候補を種々組み合わせ、それに対して、他の部品５１〜５３が移動したか否かを、実際にロボットハンド１０を駆動させることで取得する。例えば、所定の位置にロボットハンド１０及び対象部品５０が写る撮影画像を取得し、これに対して所定の動作候補でロボットハンド１０を対象部品５０まで動作させたとき、他の部品が移動しなかった場合には１、移動した場合には０とする。図８に学習データの例を示す。ここで、他の部品が移動したか否かの判定には種々の方法があり、人間が確認するほか、次のような方法がある。例えば、例えば、ロボットハンド１０の動作前と動作後に部品５１〜５３を撮影し、それらの画像の差分を算出する。そして、ロボットハンド１０の動作前後の画像において、変化のあった画素数が所定の基準以上であれば、部品５１〜５３が移動したと判断することができる。また、他の部品が動作する確率を出力とするのではなく、動作前後での変化した画素数を出力とすることもできる。あるいは、撮影画像を複数の範囲に分割し、分割した範囲ごとに動作前後の画素数の変化を算出する。そして、分割した範囲ごとに、画素数の変化に基づいて、０〜１の範囲で部品の移動の影響度が出力されるように、第３学習器２１３を学習させることもできる。
【００６０】
このようにして得た学習データ２２６により、第１実施形態と同様に、第３学習器２１３の学習を行う。こうして、上記出力を得ることができる、第３学習器２１３用の学習結果データ２２５が生成される。
【００６１】
＜２−２−６．評価部＞
評価部２１４は、各学習器２１１〜２１３から出力された、各動作候補の確率値に基づいて、ロボット１に対する動作指令を決定するものである。各学習器２１１〜２１３からは、図９に示すように、各動作候補Ｍ１〜Ｍｎの確率値ｐ１〜ｐ３が評価部２１４へ出力される。
【００６２】
次に、各学習器２１１〜２１３からの出力に基づき、動作候補Ｍ１〜Ｍｎの評価値Ｐをそれぞれ算出し、最も高い評価値Ｐを得た動作候補を動作指令としてロボット１に出力する。動作指令の選択方法は、種々の方法がある。例えば、図９に示す成功確率が出力された場合には、成功確率ｐ１〜ｐ３の合計を評価値Ｐとし、最も高い評価値Ｐを得た動作候補を、ロボット１への動作指令とすることができる。あるいは、成功確率ｐ１〜ｐ３に重み付けを行うこともできる。例えば、第１〜第３処理動作の優先度を考慮して、各処理動作の重みをｗ１，ｗ２，ｗ３とする。これにより、各動作候補の評価値Ｐは、ｗ１＊ｐ１＋ｗ２＊ｐ２＋ｗ３＊ｐ３と表すことができ、その中で最も高い評価値を得た動作候補を動作指令とすることができる。このように重みを設定する理由は、次の通りである。例えば、第１処理動作が非常に重視される場合には、ｗ１＝０．８，ｗ２＝０．１，ｗ３＝０．１といった重み付けをすることができる。このように、各学習器２１１〜２１３が対象とする処理動作の目的によって重みを設定することができる。例えば、第１処理動作が必須の要件であり、第２処理動作が推奨される要件である場合には、第１学習器２１１からの出力の重みｗ１が大きくなり、第２学習器２１２からの出力の重みｗ２は、重みｗ１よりも小さくなる。なお、各学習器２１１〜２１３からの出力が確率以外の評価値、つまり０〜１以外の範囲の評価値である場合には、その最大値が１，最小値が０となるように正規化した上で、重み付けをして評価値Ｐを算出することもできる。例えば、第３学習器２１３において、上述したように変化があった画素数を出力とする場合には、このような正規化を行うことで第１及び第２学習器２１１，２１２からの出力の範囲に合わせることができる。
【００６３】
また、確率値が所定基準値よりも低い場合には、その動作候補を、動作指令として採用しないようにしてもよい。
【００６４】
＜２−３．制御装置の動作＞
次に、図１０を参照しつつ、動作制御装置２におけるロボットの制御処理の例を説明する。図１０は、動作制御装置の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００６５】
図１０に示すように、まず、カメラ４によって撮影画像を取得する（ステップＳ１０１）。次に、取得した撮影画像及び動作候補を各学習器２１１〜２１３に入力する（ステップＳ１０２）。続いて、各学習器２１１〜２１３から動作候補及びその確率値を出力する（ステップＳ１０３）。これに続いて、評価部２１４において、出力された動作候補及び確率値に基づき、動作指令を生成する（ステップＳ１０４）。最後に、生成された動作指令をロボット１に送信し、ロボットハンド１０を動作指令にしたがって駆動させる（ステップＳ１０５）。
【００６６】
＜３．特徴＞
以上のように、本実施形態によれば、一つの学習器を、すべての条件を考慮するように学習させるのではなく、条件が付加されたときには、その条件のみを考慮した学習器を追加で生成し、生成したすべての学習器２１１〜２１３の出力を考慮して、評価部２１４において、動作指令を算出するようにしている。したがって、学習器の学習の負担を低減すことができる。
【００６７】
＜４．変形例＞
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【００６８】
＜１＞
上記実施形態では、学習器の数が３つであるが、学習器の数は、２以上あればよく、特には限定されない。また、第１学習器２１１の対象となる処理動作と、第２，第３学習器２１２，２１３の処理動作は、関連していればよい。例えば、上記実施形態の第１処理動作と第２処理動作のように、第１処理動作を制約するような処理動作が、第２処理動作となるように関連していてもよい。また、第１処理動作と第３処理動作のように、第１処理動作に起因して生じうる事象に関連する処理動作が第３処理動作となるように関連していてもよい。
【００６９】
＜２＞
上記実施形態では、第１〜第３学習器２１１〜２１３を設けたが、例えば、動作制御装置２が、第１学習器２１１と第３学習器２１３とを有するように構成されていてもよい。
【００７０】
＜３＞
上記実施形態では、各学習器２１１〜２１３において、動作候補の成功確率を評価値として出力しているが、これに限定されない。すなわち、各動作候補の評価値としては、成功確率以外に、例えば、各動作候補に基づくロボットハンド１０の移動先の座標とすることもでき、この座標によって、動作候補の評価を行うことができる。例えば、移動先の座標が対象部品５０の座標に近ければ、評価値が高くなる。これ以外にも、種々の評価値を用いて、動作候補の評価を行い、これを学習器２１１〜２１３から出力することができる。
【００７１】
＜４＞
各学習器２１１〜２１３に入力する動作候補は、上記のようにランダムに選択する以外に種々の選択方法がある。例えば、動作制御装置２に、動作候補を生成する動作候補生成部を設ける。この動作候補生成部では、まず、評価値の所定の平均と分散を設定し、これらに基づいて、一定数の動作候補をサンプリングして、動作候補の集合を生成する。次に、学習器を用いて、集合内の各動作候補の評価値を出力し、評価値の高い順にランク付けを行う。続いて、集合内のランクの高い動作候補をいくつか選択し、その動作候補の評価値の平均と分散を算出する。そして、その平均と分散により、集合の平均と分散を更新する。これを繰り返すことで、評価値の高い動作候補を生成することができる。
【００７２】
このほか、動作候補生成部は、ロボットハンド１０の各動作に適合した複数の動作候補の集合を予め準備しておき、その中から、要求されるロボットハンド１０の動作に応じて、動作候補の集合を適宜選択することができる。
【００７３】
＜５＞
上記の例では、ニューラルネットワーク７として、多層構造を有する一般的な順伝播型ニューラルネットワークを用いている。しかしながら、各ニューラルネットワーク７の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、各ニューラルネットワーク７は、入力層７１及び中間層７２を畳み込み層及びプーリング層として利用する畳み込みニューラルネットワークであってもよい。また、例えば、各ニューラルネットワーク７は、中間層７２から入力層７１等のように出力側から入力側に再帰する結合を有する再帰型ニューラルネットワークであってもよい。なお、各ニューラルネットワーク７の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、及び各ニューロンの伝達関数は、実施の形態に応じて適宜決定されてよい。
【００７４】
＜６＞
上記各学習器２１１〜２１３の種類は、特には限定されず、ニューラルネットワーク以外に、例えば、サポートベクターマシン、自己組織化マップ、又は強化学習により学習を行う学習器とすることができる。あるいは、機械学習以外の他の手法を用いることができる。
【００７５】
＜７＞
上記実施形態では、ロボットの動作制御装置２について説明したが、この装置のように、付加的な条件が加えられるたびに、新たな学習器を生成し、複数の学習器の出力を評価する手法は、他の装置にも適用することができる。
【００７６】
例えば、図１１に示すような制御装置８に適用することができる。この制御装置８の基本構成は、上述したロボットの動作制御装置２と概ね同じである。但し、学習器に入力される情報は、画像に限られず、環境情報と称する種々の情報の入力が可能である。環境情報は、制御対象物に関連する情報であり、制御対象物の画像のほか、例えば、制御対象物の動作速度、制御対象物の位置などにすることができる。また、処理候補は、動作候補と対応するものであり、制御対象物に対する処理（制御）の候補である。
【００７７】
例えば、この制御装置を自動車の衝突回避のための制御に適用することができる。この場合、入力の環境情報として、自動車に設けられるカメラ、レーダー等の計測器で得られる障害物との距離などの計測値、処理候補として、ステアリングとアクセルの操作量などが異なる複数の運転操作を用いることができる。そして、第１学習器２１１においては、これらの入力から、障害物との衝突確率を出力することができる。したがって、第１学習器２１１を用いることで、自動運転車の衝突確率が最小となるような運転操作を決定できる。
【００７８】
しかし、単純に衝突確率を最小化するような運転操作は、急ハンドルや急制動を伴うことが考えられるため、乗員への負荷が大きいことが想定される。これに対して、各運転操作に対する乗員への負担度を出力する第２学習器２１２を生成する。そして、第１学習器２１１及び第２学習器２１２の出力から、評価部２１４において、衝突を回避しつつ乗員への負担が小さな運転操作を決定することができる。この場合、第１学習器２１１の対象は衝突であるから、必須条件ということができ、第２学習器２１２の対象は、それより優先度が低い推奨条件ということができる。したがって、第１学習器２１１の出力の重みは、第２学習器２１２の出力の重みよりも大きくなる。なお、学習器は３以上設けてもよい。
【００７９】
＜８＞
また、制御対象物の制御だけでなく、処理対象物に対する処理にも適用することができる。例えば、図１２に示すような処理装置に適用することができる。この処理装置９の基本構成は、上述した制御装置８と概ね同じである。但し、学習器に入力される情報は、処理候補だけにすることができる。
【００８０】
このような処理装置９は、例えば、画像検索システムに適用することができる。例えば、処理候補として、画像を入力し、第１学習器２１１により、入力された画像に人が写っている確率を出力することができる。これにより、人が写っている画像を検索することができる。また、第２学習器２１２にも処理候補として画像が入力されるが、第２学習器で２１２は、画像に写っている人が、ある年齢に属する確率を出力することができる。このような第１学習器２１１及び第２学習器２１２により、人が写っている写真を検索できるシステムに、人の属性による絞り込み機能を追加することが可能になる。
【符号の説明】
【００８１】
２１１  第１学習器
２１２  第２学習器
２１３  第３学習器
２１４  評価部
【図１】
2019155561.tif 000003
【図２】
2019155561.tif 000004
【図３】
2019155561.tif 000005
【図４】
2019155561.tif 000006
【図５】
2019155561.tif 000007
【図６】
2019155561.tif 000008
【図７】
2019155561.tif 000009
【図８】
2019155561.tif 000010
【図９】
2019155561.tif 000011
【図１０】
2019155561.tif 000012
【図１１】
2019155561.tif 000013
【図１２】
2019155561.tif 000014