(57)【要約】【課題】処理の効率化を実現することができる、ロボットの制御装置、制御方法、制御プログラム、及び処理装置を提供する。【解決手段】本発明は、ロボットの動作を制御する制御装置であって、前記ロボットの第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記ロボットに実行させる複数の基本動作から選択された少なくとも一つの前記基本動作と、当該基本動作の動作順序と、を出力とするための第１処理部であって、前記各基本動作には所定の動作パラメータが設定されている、第１処理部と、前記第１処理部からの出力に基づいて、前記ロボットに対して動作指令を行う、指令部と、を備えている。【選択図】図９
2019155554.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を制御する制御装置であって、
前記ロボットの第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記ロボットに実行させる複数の基本動作から選択された少なくとも一つの前記基本動作と、当該基本動作の動作順序と、を出力とするための第１処理部であって、前記各基本動作には所定の動作パラメータが設定されている、第１処理部と、
前記第１処理部からの出力に基づいて、前記ロボットに対して動作指令を行う、指令部と、
を備えている、ロボットの制御装置。
【請求項２】
前記第１の状態と、前記第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記第１処理部の出力として選択された前記各基本動作の動作パラメータを出力とするための第２処理部をさらに備え、
前記指令部は、前記第１処理部及び第２処理部からの出力に基づいて、前記ロボットに対して動作指令を行う、請求項１に記載のロボットの制御装置。
【請求項３】
前記第１処理部による出力によっては、前記ロボットを前記第２の状態に所定の基準で遷移できない場合、前記第２処理部による前記動作パラメータの出力を行うように構成されている、請求項２に記載のロボットの制御装置。
【請求項４】
所定範囲内で、前記動作パラメータが出力されるように構成されている、請求項２または３に記載のロボットの制御装置。
【請求項５】
前記各基本動作の動作パラメータに対する調整を受け付ける受付部をさらに備えている、請求項１から３のいずれかに記載のロボットの制御装置。
【請求項６】
前記第２の状態の指定を受け付ける入力部をさらに備えている、請求項１から５のいずれかに記載のロボットの制御装置。
【請求項７】
前記第１処理部は、学習済みの学習器によって構成されている、請求項１から６のいずれかに記載のロボットの制御装置。
【請求項８】
ロボットと、
請求項１から７のいずれかに記載の前記ロボットの制御装置と、
を備え、
前記ロボットが、前記制御装置からの前記動作指令により、前記第１の状態から第２の状態に遷移するように構成されている、ロボットの制御システム。
【請求項９】
ロボットの動作を制御する制御方法であって、
前記ロボットの第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記ロボットに実行させる複数の基本動作から選択された少なくとも一つの前記基本動作と、当該基本動作の動作順序とを出力とするための第１処理部を準備するステップであって、前記各基本動作には所定の動作パラメータが設定されている、ステップと、
前記第１処理部に、所定の前記第１状態及び第２状態を入力し、少なくとも一つの前記基本動作と当該基本動作の動作順序を出力するステップと、
前記第１処理部からの出力に基づいて、前記ロボットに対して動作指令を行うステップと、
を備えている、ロボットの制御方法。
【請求項１０】
ロボットの動作を制御する制御プログラムであって、
コンピュータに、
前記ロボットの第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記ロボットに実行させる複数の基本動作から選択された少なくとも一つの前記基本動作と、当該基本動作の動作順序とを出力とするための第１処理部を準備するステップであって、前記各基本動作には所定の動作パラメータが設定されている、ステップと、
前記第１処理部に、所定の前記第１状態及び第２状態を入力し、少なくとも一つの前記基本動作と当該基本動作の動作順序を出力するステップと、
前記第１処理部からの出力に基づいて、前記ロボットに対して動作指令を行うステップと、
を実行させる、制御プログラム。
【請求項１１】
処理対象物に対して、処理を行うための処理装置であって、
前記処理対象物の第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記処理対象物に対して行われる複数の基本処理から選択された少なくとも一つの前記基本処理と当該基本処理の処理順序を出力とするための第１処理部であって、前記各基本処理には所定の処理パラメータが設定されている、第１処理部と、
前記第１処理部からの出力に基づいて、前記処理対象物に対して処理を行う、指令部と、
を備えている、処理装置。
【請求項１２】
前記処理対象物の第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記第１処理部の出力として選択された前記各基本処理の処理パラメータを出力とするための第２処理部をさらに備え、
前記指令部は、前記第１処理部及び第２処理部からの出力に基づいて、前記処理対象物に対して処理を行う、請求項１１に記載の処理装置。
【請求項１３】
前記第１処理部による出力によっては、前記処理対象物を前記第２の状態に所定の基準で遷移できない場合、前記第２処理部による前記処理パラメータの出力を行うように構成されている、請求項１２に記載の処理装置。
【請求項１４】
所定範囲内で、前記処理パラメータが出力されるように構成されている、請求項１２または１３に記載の処理装置。
【請求項１５】
前記処理は画像処理であり、
前記複数の基本処理は、画像に施されるフィルタ処理である、請求項１１から１４のいずれかに記載の処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの制御装置、制御方法、制御プログラム、及び処理装置に関する。
【背景技術】
【０００２】
ロボットの制御システムを全て人が作成する場合には、細かいパラメータの調整に時間を要するという問題がある。その一方で、現在の状態から目標状態までのロボットの行動シーケンスの計画を機械学習により決定することが行われている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１８４９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のように機械学習を採用すると、次のような問題があった。例えば、複雑な行動シーケンスの決定をニューラルネットワークなどの一つの大きな学習済みモデルで実現しようとすると、学習に時間がかかるという問題がある。また、学習済みモデルでは、重みなどの内部パラメータを人が見ても、意味を理解できないため、学習結果を部分的に変更したい場合でも、調整することができないという問題もある。
【０００５】
なお、このような問題は、ロボットの制御装置に限られず、多数の候補の中から所定の処理を行って目的を達成するような処理装置全般に生じうる問題である。
【０００６】
本発明は、この問題を解決するためになされたものであり、処理の効率化を実現することができる、ロボットの制御装置、制御方法、制御プログラム、及び処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本開示は、ロボットの動作を制御する制御装置であって、前記ロボットの第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記ロボットに実行させる複数の基本動作から選択された少なくとも一つの前記基本動作と、当該基本動作の動作順序と、を出力とするための第１処理部であって、前記各基本動作には所定の動作パラメータが設定されている、第１処理部と、前記第１処理部からの出力に基づいて、前記ロボットに対して動作指令を行う、指令部と、を備えている。
【０００８】
この構成によれば、ロボットの動作を、あらゆる動作から処理部によって出力を得るのではなく、所定の数の基本動作を予め準備し、その中から最適な基本動作とその順序を選択するように第１処理部が処理を行うため、処理のための演算時間を短縮することができる。また、基本動作が予め決められているため、ユーザは、その組み合わせを見ることで、ロボットの動作を容易に知ることができる。さらに、各基本動作には、動作パラメータが設定されているため、基本動作が決定した後に、ユーザが任意で、各基本動作の動作パラメータを変更することができる。
【０００９】
なお、ロボットの第１の状態、第２の状態とは、ロボット自体の状態のみならず、ロボットによる作業対象の状態も含むこととする。
【００１０】
上記制御装置においては、前記第１の状態と、前記第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記第１処理部の出力として選択された前記各基本動作の動作パラメータを出力とするための第２処理部をさらに備えることができ、前記指令部は、前記第１処理部及び第２処理部からの出力に基づいて、前記ロボットに対して動作指令を行うことができる。
【００１１】
この構成により、基本動作の調整、つまり動作パラメータの調整を自動で行うことができるため、第２の状態の達成の精度を向上することができる。
【００１２】
上記制御装置において、前記第１処理部による出力によっては、前記ロボットを前記第２の状態に所定の基準で遷移できない場合、前記第２処理部による前記動作パラメータの出力を行うように構成することができる。
【００１３】
上記制御装置においては、所定範囲内で、前記動作パラメータが出力されるように構成することができる。これにより、探索の範囲を狭くすることができ、処理の時間を短くすることができる。
【００１４】
上記制御装置においては、前記各基本動作の動作パラメータに対する調整を受け付ける受付部をさらに備えることができる。これにより、ユーザが任意に動作パラメータの調整を行うことができる。
【００１５】
上記制御装置においては、前記第２の状態の指定を受け付ける入力部をさらに備えることができる。
【００１６】
上記制御装置において、前記第１処理部は、学習済みの学習器によって構成することができる。
【００１７】
本開示に係るロボットの制御システムは、ロボットと、上述したいずれかの前記ロボットの制御装置と、を備え、前記ロボットが、前記制御装置からの前記動作指令により、前記第１の状態から第２の状態に遷移するように構成されている。
【００１８】
本開示は、ロボットの動作を制御する制御方法であって、前記ロボットの第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記ロボットに実行させる複数の基本動作から選択された少なくとも一つの前記基本動作と、当該基本動作の動作順序とを出力とするための第１処理部を準備するステップであって、前記各基本動作には所定の動作パラメータが設定されている、ステップと、前記第１処理部に、所定の前記第１状態及び第２状態を入力し、少なくとも一つの前記基本動作と当該基本動作の動作順序を出力するステップと、前記第１処理部からの出力に基づいて、前記ロボットに対して動作指令を行うステップと、を備えている。
【００１９】
本開示は、ロボットの動作を制御する制御プログラムであって、コンピュータに、前記ロボットの第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記ロボットに実行させる複数の基本動作から選択された少なくとも一つの前記基本動作と、当該基本動作の動作順序とを出力とするための第１処理部を準備するステップであって、前記各基本動作には所定の動作パラメータが設定されている、ステップと、前記第１処理部に、所定の前記第１状態及び第２状態を入力し、少なくとも一つの前記基本動作と当該基本動作の動作順序を出力するステップと、前記第１処理部からの出力に基づいて、前記ロボットに対して動作指令を行うステップと、を実行させる。
【００２０】
本開示は、処理対象物に対して、処理を行うための処理装置であって、前記処理対象物の第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記処理対象物に対して行われる複数の基本処理から選択された少なくとも一つの前記基本処理と当該基本処理の処理順序を出力とするための第１処理部であって、前記各基本処理には所定の処理パラメータが設定されている、第１処理部と、前記第１処理部からの出力に基づいて、前記処理対象物に対して処理を行う、指令部と、を備えている。
【００２１】
上記処理装置においては、前記処理対象物の第１の状態と、前記第１の状態から遷移した第２の状態とを入力とし、前記第１の状態から前記第２の状態への遷移のために、前記第１処理部の出力として選択された前記各基本処理の処理パラメータを出力とするための第２処理部をさらに備えることができ、前記指令部は、前記第１処理部及び第２処理部からの出力に基づいて、前記処理対象物に対して処理を行うことができる。
【００２２】
上記処理装置において、前記第１処理部による出力によっては、前記処理対象物を前記第２の状態に所定の基準で遷移できない場合、前記第２処理部による前記処理パラメータの出力を行うように構成することができる。
【００２３】
上記処理装置においては、所定範囲内で、前記処理パラメータが出力されるように構成することができる。
【００２４】
上記処理装置において、前記処理を画像処理とすることができ、前記複数の基本処理を、画像に施されるフィルタ処理とすることができる。
【発明の効果】
【００２５】
本発明によれば、最適な処理を決定するための処理時間を短くすることができるとともに、各処理の調整を容易に行うことができる。
【図面の簡単な説明】
【００２６】
【図１】本発明のロボットの制御装置の一実施形態の概要を示すブロック図である。
【図２】ロボットの作業対象の初期状態と目標位置を示す図である。
【図３】ロボットの動作を示す図である。
【図４】動作プリミティブの例を示す図である。
【図５】動作プリミティブに基づく、ロボットの動作例を示す図である。
【図６】ロボットの動作の評価方法を示す図である。
【図７】動作パラメータの調整を説明する図である。
【図８】図１の制御装置のハードウェア構成を示すブロック図である。
【図９】図１の制御装置の機能構成を示すブロック図である。
【図１０】図１の制御装置で用いられるニューラルネットワークの一例を示す図である。
【図１１】図１の制御装置の学習器の学習の一例を示す図である。
【図１２】図１の制御装置によるロボットの制御の処理手順の一例を例示するフローチャートである。
【図１３】動作決定部の他の処理の例を説明する図である。
【発明を実施するための形態】
【００２７】
以下、本発明に係るロボットの制御装置、制御方法、及び制御プログラムの一実施形態について、図面を参照しつつ説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００２８】
＜１．適用例＞
以下、本実施形態に係るロボットの制御装置について説明する。図１に示すように、この制御装置では、所定の目的のために、ロボットを第１の状態から第２の状態に遷移させるにあたって、第１状態と第２状態とを入力とし、ロボットが行う少なくとも一つの基本動作と、その動作順序を出力とするものである。この出力は、学習器により行う。
【００２９】
例えば、図２に示すように、直方体状の部品Ａと、部品Ａがはめ込まれる凹部を有する部品Ｂとが離れて配置されている初期状態から、部品Ｂの凹部に部品Ａがはめ込まれた目的状態までの遷移をロボットにより行う場合を例として説明する。
【００３０】
ロボット１０が、部品Ａを初期状態から目的状態まで移動させるには、種々の動作及び動作順序が考えられる。しかし、あらゆる動作を検討すると、計算に時間を要するおそれがある。そこで、本実施形態では、ロボット１０が行う動作の候補を動作プリミティブ（基本動作）として予め設定しておき、その中から選択された動作プリミティブを所定の順序で実行することで、部品Ａの移動を行うこととする。なお、動作プリミティブとは、ロボット１０が行い得る動作を所定数の要素で表現した場合の個々の要素である。例えば、ロボット１０が部品を搬送する際に、水平移動した後に、下降移動したとすると、水平移動及び下降移動が、動作プリミティブとなる。
【００３１】
図３に示すように、本実施形態では、ロボット１０が上昇（Ｕｐ），下降（Ｄｏｗｎ），右側移動（Ｒｉｇｈｔ），左側移動（Ｌｅｆｔ），傾斜（Ｔｉｌｔ）という５つの動作を行うこととし、これら５つの動作のいくつかを組み合わせて、部品Ａを部品Ｂにはめ込むこととする。なお、本実施形態では、説明の便宜上、図面の紙面に垂直な方向の移動は考えないこととする。但し、ロボット１０の作業内容によっては、そのような方向の移動も含み得る。
【００３２】
図４に示すように、本実施形態では、上記５つの動作が、動作プリミティブとして設定され、各動作プリミティブにおいては、移動量がそれぞれ設定されている。これをアクションセットと称することとする。図４の例では、各動作プリミティブについて、３つずつのアクションセットが設定されている。例えば、Right(1)、Right(2)、Right(3)は、それぞれ、右側への移動量が１，２，３であることを意味する。以下では、この移動量（または傾きの角度）を動作パラメータと称することとする。なお、動作パラメータとは、動作プリミティブで表される動作の態様／程度を表すものであり、移動量や角度に限定されない。また、アクションセットとは、動作プリミティブと動作パラメータの組み合わせであり、動作の系列ということができる。さらに、ここでは、アクションセットとして、動作パラメータである移動量が１，２，３のセットを示しているが、これに限定されない。例えば、動作パラメータの組み合わせをＰ１，Ｐ２，Ｐ３，，，Ｐｎとすると、これらが等差数列、または等比数列のように規則性を持つ組み合わせにすることができる。
【００３３】
このように本実施形態では、複数のアクションセットを含め、１５種類の動作プリミティブの中から、部品Ａの移動に使用する動作プリミティブ及びその順序が決定される。すなわち、部品Ａと部品Ｂの初期状態と目的状態とを入力としたとき、ロボット１０が実行する最適な動作プリミティブ及びその動作順序を出力となるように、学習器が動作する。
【００３４】
ここで、学習器によって最適な出力を行うために、ロボット１０の動作を次のように評価する。例えば、図５に示すように、ロボット１０の動作のためには、複数の動作プリミティブの組み合わせがある。ここでは、３種類の動作プリミティブの組み合わせを例示する。３つのロボットの動作（１）〜（３）の結果、部品Ａと部品Ｂの最終状態は、それぞれ相違しているが、この最終状態を目的状態と比較して、ロボットの動作の評価を行う。
【００３５】
例えば、部品Ａの目的状態における位置のベクトルと、部品Ａの最終状態における位置ベクトルとを比較し、その差から評価値を算出する。この例では、位置ベクトルをＶ（左右位置、上下位置、傾き）とし、目標状態の位置ベクトルをＶｇ，最終状態の位置ベクトルをＶｅとする。そして、以下の式により評価値を算出する。
評価値＝１−｜Ｖｅ-Ｖｇ｜／Ｋ
（但し、Ｋは評価値が０〜１となるように正規化するための係数である。したがって、例えば、理想的な状態で評価値が１に近くなり、許容可能なずれ量を超えると評価値が０になるようにＫを設定することができる。）
【００３６】
例えば、上記３つのロボット１０の動作（１）〜（３）については、図６のように、評価値を算出することができる。この例では、動作（２）による部品Ａの最終状態の評価値が最も高い。すなわち、部品Ａが目標状態に最も近い位置に配置されている。したがって、学習器は、このような高い評価値を得るための動作プリミティブとその順序を出力するように学習される。
【００３７】
ところで、上記の動作（２）は、評価値が１．０（満点）ではなく、図６に示すように、部品Ａが完全に部品Ｂの凹部に嵌まっているわけではない。したがって、ロボット１０の動作には改善の余地がある。図６では、例えば、動作（２）の最後の動作であるＤｏｗｎ（１）の動作パラメータを１から修正することで、部品Ａを部品Ｂの凹部に完全にはめることができると考えられる。そこで、本実施形態では、準備されている動作プリミティブだけでは、目的が完全に達成されない場合には、動作プリミティブの動作パラメータを調整してもよい。
【００３８】
例えば、図７に示すように、動作（２）の最後の動作プリミティブの動作パラメータを１から１．２に変更すれば、評価値が１．０となり、最終状態を目標状態にすることができる。ここで、動作パラメータの調整方法は、種々の方法があるが、動作プリミティブとその順序が決まった後、動作パラメータをランダムに変更して、最適値を探索したり、学習器を用いて最適値を決定することもできる。
【００３９】
このような動作パラメータの調整は、ユーザの意思の元に行うことができる。したがって、最適な動作に近い動作プリミティブを得た後、ユーザは、マニュアルで、ロボット動作を調整することができる。
【００４０】
＜２．構成例＞
＜２−１．ハードウェア構成＞
まず、本実施形態に係るロボットの制御装置のハードウェア構成について、図８も参照しつつ説明する。図８は、本実施形態に係るロボットの制御装置のハードウェア構成を示すブロック図である。
【００４１】
＜２−１−１．ロボット＞
図３に示すように、ロボット１０は、部品を把持可能なアームを有しており、このアームが上下左右に移動するほか、アームが傾くように構成されている。但し、ロボットの構成は特には限定されず、他の動作を行えるように適宜変更可能である。
【００４２】
＜２−１−２．制御装置＞
図８に示すように、本実施形態に係るロボットの制御装置２は、制御部２１、記憶部２２、通信インタフェース２３、入力装置（入力部、受付部）２４、出力装置２５、表示装置２６、外部インタフェース２７、及びドライブ２８が電気的に接続されたコンピュータである。なお、図１では、通信インタフェース及び外部インタフェースをそれぞれ、「通信Ｉ／Ｆ」及び「外部Ｉ／Ｆ」と記載している。
【００４３】
制御部２１は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、情報処理に応じて各構成要素の制御を行う。記憶部２２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置であり、制御部２１で実行される制御プログラム２２１、動作プリミティブデータ２２２、入力データ２２３、出力データ２２４、学習済みの学習器に関する情報を示す学習結果データ２２５、学習器を学習させるための学習データ２２６等を記憶する。その他、制御装置の駆動に必要な各種のデータも記憶することができる。
【００４４】
制御プログラム２２１は、ロボットの動作のために、上述した入力を受け付け、これに応じた出力を行うものであり、後述する学習器によって、出力を行う。動作プリミティブデータ２２２は、上記図４に示すように、ロボット１０の種類や要求される作業の種類に応じて予め設定されたものである。入力データ２２３は、上述した部品の初期状態及び目標状態を含むデータであり、出力データ２２４は、学習器によって出力されたロボット１０の動作を示すデータである。学習結果データ２２５は、学習済みの学習器の設定を行うためのデータである。また、学習データ２２６は、現在の学習器の学習に用いたデータである。なお、学習に関する詳細な説明は後述する。
【００４５】
通信インタフェース２３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。例えば、ロボット１０と通信したり、あるいはロボット１０の制御に関する情報を外部に送信するために用いられる。入力装置２４は、例えば、マウス、キーボード等の入力を行うための装置であり、入力データ２２３を入力するほか、ユーザによる各種の指示を入力することができる。出力装置２５は、例えば、スピーカ等の出力を行うための装置である。表示装置２６は、ディスプレイ等で構成することができ、例えば、学習器による出力の結果などを表示することができる。外部インタフェース２７は、ＵＳＢ（Universal Serial Bus）ポート等であり、外部装置と接続するためのインタフェースである。
【００４６】
ドライブ２８は、例えば、ＣＤ（Compact Disk）ドライブ、ＤＶＤ（Digital Versatile Disk）ドライブ等であり、記憶媒体９１に記憶されたプログラムを読み込むための装置である。ドライブ１７の種類は、記憶媒体９１の種類に応じて適宜選択されてよい。上記記憶部２２に記憶される各種のデータ２２１〜２２６の少なくとも一つは、この記憶媒体９１に記憶されていてもよい。また、入力データ２２３、出力データ２２４は、制御部２１のＲＡＭに記憶させることもできる。
【００４７】
記憶媒体９１は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、このプログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。この制御装置２は、この記憶媒体９１から、上記各種のデータ２２１〜２２６を取得してもよい。
【００４８】
ここで、図８では、記憶媒体９１の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９１の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００４９】
なお、制御装置２の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部２１は、複数のプロセッサを含んでもよい。制御装置２は、複数台の情報処理装置で構成されてもよい。また、制御装置２は、提供されるサービス専用に設計された情報処理装置の他、汎用のデスクトップＰＣ（Personal Computer）、タブレットＰＣ等が用いられてもよい。
【００５０】
＜２−２．制御装置の機能的構成＞
次に、図８及び図９を参照しつつ、本実施形態に係る制御システムの機能構成の一例を説明する。図９は、制御装置の機能構成を示すブロック図である。
【００５１】
＜２−２−１．概略構成＞
制御装置２の制御部２１は、記憶部２２に記憶された制御プログラム２２１をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開されたプログラム２２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図９に示すように、本実施形態に係る制御装置２は、動作決定部２１１、評価部２１２、及び動作パラメータ決定部２１３を備えるコンピュータとして機能する。
【００５２】
＜２−２−２．動作決定部＞
動作決定部２１１では、上述したように、図２に示すような部品の初期状態及び目標状態を入力データとして、入力とする。このような入力は、入力装置２４から入力されるが、種々の入力方法がある。例えば、初期状態及び目標状態の座標、位置ベクトルなどを入力してもよいし、予め設定されている初期状態及び目標状態から選択してもよい。あるいは、初期状態及び目標状態の画像を取得し、これを入力することもできる。
【００５３】
そして、動作決定部２１１では、このような入力データから、ロボット１０の動作を決定するための第１学習器２１４を備えている。第１学習器２１４の出力は、少なくとも一つの動作プリミティブ、及び動作順序である。すなわち、この第１学習器２１４は、予め設定されている複数の動作プリミティブから、上述した評価値が高くなるような動作プリミティブと、その順序を出力するように学習されている。
【００５４】
このような出力を行う学習器２１４は、ニューラルネットワークで構成されている。具体的には、図１０に示すような、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層７１、中間層（隠れ層）７２、及び出力層７３を備えている。
【００５５】
図１０では、ニューラルネットワーク７は１層の中間層７２を備えており、入力層７１の出力が中間層７２の入力となり、中間層７２の出力が出力層７３の入力となっている。ただし、中間層７２の数は１層に限られなくてもよく、ニューラルネットワーク７は、中間層７２を２層以上備えてもよい。
【００５６】
各層７１〜７３は、１又は複数のニューロンを備えている。例えば、入力層７１のニューロンの数は、入力データの数に応じて設定することができる。中間層７２のニューロンの数は実施の形態に応じて適宜設定することができる。また、出力層７３も、動作プリミティブの数に応じて設定することができる。
【００５７】
隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。図４の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
【００５８】
各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。制御装置２は、このようなニューラルネットワーク７の入力層７１に上記入力データを入力することで、出力層７３から最適なロボットの動作を示す出力データを得る。
【００５９】
なお、このようなニューラルネットワーク７の構成（例えば、ニューラルネットワーク７の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、学習結果データ２２５に含まれている。制御装置２は、学習結果データ２２５を参照して、学習済みの学習器の設定を行う。
【００６０】
また、第１学習器２１４の学習は、例えば、図１１に示すような学習データ２２６により行われる。つまり、初期状態及び目標状態を入力とし、理想的な動作のための動作プリミティブ及び動作順序を出力とした学習データを用い、これによって誤差伝播法などで学習を行う。
【００６１】
＜２−２−３．評価部＞
評価部（指令部）２１２は、動作決定部２１１の出力を評価するものである。例えば、動作決定部２１１が出力した動作プリミティブ及び動作順序により、部品を目標位置に完全に移動できる場合には、動作決定部２１１の出力によりロボット１０を動作させることができる。但し、上述した図６に示すように、動作決定部２１１が出力した動作プリミティブ及び動作順序によっては、部品を目標状態にまで完全に移動できない場合もある。この場合には、動作パラメータの調整が必要となる。
【００６２】
そこで、評価部２１２は、所定の基準で、動作決定部２１１の出力が適切であるか否かを判定し、基準を充足する場合には、動作決定部２１１の出力で動作するように、ロボット１０に対して指令を行う。この基準は、例えば、上述した評価値を用いることができ、評価値１．０との差が所定範囲以内であれば、基準を充足すると判断することができる。一方、所定の基準を充足しない場合には、動作パラメータ決定部２１３において、最適な動作パラメータの決定を行う。このとき、評価部２１２の決定を表示装置２６に表示し、ユーザによって、動作パラメータの調整を行うか否かを決定することもできる。
【００６３】
動作パラメータ決定部２１３は、第２学習器２１５を備えており、この第２学習器２１５によって、各動作プリミティブの最適な動作パラメータが出力される。第２学習器２１５は、第１学習器２１４と同様にニューラルネットワークにより構成することができる。第２学習器２１５には、種々の入力が可能である。例えば、初期状態、目標状態、第１学習器２１４で出力された動作プリミティブ、及び決定された動作順序を入力とし、各動作プリミティブの動作パラメータを出力とすることもできる。あるいは、第１学習器２１４による出力に対応する評価値を入力に加えることもできる。こうして、入力及び出力を設定し、目標状態を達成するための最適な各動作プリミティブの動作パラメータを出力する。
【００６４】
そして、出力された動作パラメータは、評価部２１２に送られ、動作パラメータが変更された動作プリミティブ及び動作順序に基づいて、ロボット１０に対して動作指令を行う。
【００６５】
＜２−３．制御装置の動作＞
次に、図１２を参照しつつ、制御装置２におけるロボットの制御処理の例を説明する。図１２は、制御装置の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００６６】
図１２に示すように、まず、入力装置２４から、部品の初期状態及び目標状態を入力する（ステップＳ１０１）。これにより、動作決定部２１１は、入力に応じた最適な動作プリミティブ及び動作順序を出力する（ステップＳ１０２）。次に、評価部２１２は、動作決定部２１１が出力した動作プリミティブ及び動作順序によって、目標状態が達成できるか否かを判断する（ステップＳ１０３）。すなわち、動作決定部２１１の出力が所定の基準を充足しているか否かを判断する。そして、所定の基準を充足している場合には（ステップＳ１０３のＹＥＳ）、動作決定部２１１の出力に基づいて、ロボット１０に対し動作指令を行う（ステップＳ１０４）。一方、所定の基準を充足していない場合には（ステップＳ１０３のＮＯ）、動作パラメータの調整を行う。すなわち、動作パラメータ決定部２１３において、最適な動作パラメータを決定する（ステップＳ１０５）。これに続いて、評価部２１２は、動作パラメータが変更された動作プリミティブ及び動作順序に基づき、ロボット１０に対して動作指令を行う（ステップＳ１０６）。
【００６７】
＜３．特徴＞
以上のように、本実施形態によれば、ロボットの動作を、あらゆる動作から学習器によって出力を得るのではなく、所定の数の動作プリミティブを予め準備し、その中から最適な動作プリミティブとその順序を選択するように第１学習器２１４が学習されているため、学習を短時間で行うことができる。また、動作プリミティブが予め決められているため、ユーザは、その組み合わせを見ることで、ロボットの動作を容易に知ることができる。
【００６８】
但し、動作決定部２１１で決定した動作プリミティブ及び動作順序によっても、目標状態を達成できない場合には、各動作プリミティブの動作パラメータを動作パラメータ決定部２１３において自動的に決定することができる。これにより、目標位置の達成の精度を向上することができる。
【００６９】
＜４．変形例＞
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【００７０】
＜１＞
評価部において、動作決定部の出力が所定の基準を充足していないと判断されたとき、評価部２１２の決定を表示装置２６に表示した上で、ユーザによって、動作パラメータを決定することもできる。この場合、ユーザが入力装置２４から直接動作パラメータを入力することができる。したがって、ユーザの好みに合わせた動作をロボットにさせることができる。
【００７１】
＜２＞
動作パラメータ決定部２１３においては、すべての動作プリミティブの動作パラメータを変更する必要はなく、一部の動作プリミティブの動作パラメータのみを変更するようにしてもよい。例えば、最終位置に達する直前の一つまたは複数の動作に係る動作プリミティブの動作パラメータのみを変更することができる。
【００７２】
＜３＞
動作パラメータは、所定の範囲内で設定しておき、動作パラメータ決定部２１３では、その範囲内で、動作パラメータの調整を行うことができる。
【００７３】
＜４＞
上記実施形態では、動作決定部２１１において、動作プリミティブとその動作順序を決定しているが、ロボットの作業によっては、基本的な動作プリミティブとその動作順序が既知の場合もある。この場合は、例えば、図１３に示すように、基本的なプリミティブと類似の、動作パラメータのみが相違する動作プリミティブの中から、最適な動作プリミティブを決定することもできる。この場合、学習器に対する入力は、上記実施形態と同じにすることができるが、予め準備された動作プリミティブは、図１３のように、動作パラメータのみが相違する動作プリミティブとしたり、あるいは動作自体が類似する動作プリミティブとすることができ、この中から、最適な動作プリミティブを学習器によって決定することができる。
【００７４】
＜５＞
上記実施形態で示した動作プリミティブ及び動作パラメータは一例であり、ロボットの種類や作業の種類によって適宜決定することができる。例えば、動作プリミティブとして、回転、把持、押し当て、引っ張りなど、種々の設定を行うことができるが、ロボットの行う作業によって適宜設定することができる。例えば、多指ハンドを有するロボットが組み立て作業を行う場合には、「押し当て」、「引っ張り」などの動作プリミティブが設定される。押し当てとは、ロボットの手をある方向に一定の力で押しつける動作であり、動作パラメータは押しつけ力となる。また、引っ張りとは、ロボットが指を閉じた状態で一定の方向に一定の力で動かす動作であり、動作パラメータは、引張り力となる。さらに、ロボットに筆を把持させて紙に字を書かせる作業を行う場合、筆を一定の力で紙に対して押し付ける「押し付け」、筆を押し付けた状態で前後左右に動かす「移動」、筆を動かしつつ徐々に上昇させる「離脱」などの動作プリミティブが設定される。これらの動作プリミティブを組み合わせることで、手本となる字の線の太さや「はらい」、「はね」などの表現を再現できるような動作を獲得させることもできる。
【００７５】
＜６＞
上記の例では、ニューラルネットワーク７として、多層構造を有する一般的な順伝播型ニューラルネットワークを用いている。しかしながら、各ニューラルネットワーク７の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、各ニューラルネットワーク７は、入力層７１及び中間層７２を畳み込み層及びプーリング層として利用する畳み込みニューラルネットワークであってもよい。また、例えば、各ニューラルネットワーク７は、中間層７２から入力層７１等のように出力側から入力側に再帰する結合を有する再帰型ニューラルネットワークであってもよい。なお、各ニューラルネットワーク７の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、及び各ニューロンの伝達関数は、実施の形態に応じて適宜決定されてよい。
【００７６】
＜７＞
上記各学習器２１４，２１５は、本発明の第１及び第２処理部の一例であるが、その種類は、特には限定されず、ニューラルネットワーク以外に、例えば、サポートベクターマシン、自己組織化マップ、又は強化学習により学習を行う学習器とすることができる。あるいは、機械学習以外の他の手法を用いることができるが、動作プリミティブ、その順序、動作パラメータを出力するものであれば、本発明の第１処理部または第２処理部に相当する。
【００７７】
特に、動作パラメータ決定部２１３については、学習器の代わりに、遺伝的アルゴリズムを用いて、動作パラメータを決定することもできる。以下、その一例について説明する。まず、各動作プリミティブの動作パラメータを遺伝子としてエンコードした個体を作成する。例えば、図５の動作（２）は、（２，２，１）との遺伝子を有する個体とすることができる。そして、このような個体を多数有する初期集団を作成し、各個体の評価値を算出する。この評価値は、図６で示した評価値と同じにすることができる。そして、この評価値に基づいて、集団に対し、個体の削除、個体間の交配、遺伝子の突然変異などを繰り返し、数世代後に集団の中から、最も高い評価値を得た個体を選択し、その遺伝子に係る動作パラメータを、動作パラメータ決定部２１３の出力とすることができる。このような遺伝的アルゴリズムによって出力するものも、本発明の処理部に相当する。
【００７８】
＜８＞
上記実施形態では、制御装置２に動作決定部２１１、評価部２１２、及び動作パラメータ決定部２１３を設けているが、動作決定部２１１及び評価部２１２によって、本発明の制御装置を構成することもできる。例えば、アクションセットを多数有する動作プリミティブを多数設定した場合には、動作パラメータ決定部２１３を設けないようにすることもできる。この場合、評価部２１２は、動作プリミティブの評価を行わず、単に、ロボット１０に対して指令を行う指令部として機能する。
【００７９】
＜９＞
上述した初期状態（第１の状態）及び目標状態（第２の状態）は、ロボットの作業対象の状態を示しているが、これをロボットの状態ともいえる。また、直接的にロボットの状態を初期状態及び目標状態として学習器の入力に用いることもできる。
【００８０】
＜１０＞
本発明に係る制御装置は、ロボットの制御装置のみならず、他の制御や処理にも適用することができる。すなわち、処理対象物の第１の状態と、この第１の状態から遷移する第２の状態とを入力とし、この遷移のために処理対象物に対して行われる処理を所定の数の処理の中から選択するようにしてもよい。この点については、上述した動作決定部２１１の処理と同じである。そして、所定の基準に基づいて、選択された処理の処理パラメータを、上述した動作パラメータ決定部と同様の処理により決定することができる。
【００８１】
このような処理の例としては、例えば、画像処理を挙げることができる。動作プリミティブに対応する画像処理（基本処理）としては、例えば、ガウスフィルタ、二値化処理、エッジ抽出処理などを挙げることができる。具体的な適用対象としては、例えば、次の例を挙げることができる。
【００８２】
例えば、ＣＴ（Computed Tomography）画像が入力されたときに、骨の部分だけが表示された画像に変換するアプリケーションが考えられる。このような処理を自動的に行わせる場合、人がプログラムを書くと、例えば、画像をある閾値で二値化し、二値化された画像に対して収縮膨張処理を適用し（これによって、ノイズのような細かい領域を消し去る）、収縮膨張処理結果をマスクとして元画像との画像の積（ＡＮＤ）を取るといった、画像処理を組み合わせることになり、これによって所望の画像が得られる。しかし、この際に、二値化処理の閾値や、膨張収縮処理（いわゆるオープニング処理）のフィルタサイズや、収縮膨張回数などのパラメータを適切に調整する必要がある。このようなことを実現しようとすると、画像処理とプログラミングの知識を持った人がプログラムを組み、パラメータ調整を繰り返して処理結果が所望のものになるように試行錯誤を行う必要がある。これに対して、本発明を用いれば、適切な画像処理フィルタ（基本処理）の適用順、および各フィルタのパラメータ（処理パラメータ）を自動決定できるようになる。
【符号の説明】
【００８３】
１０  ロボット
２１２  評価部（指令部）
２１４  第１学習器（第１処理部）
２１５  第２学習器（第２処理部）
【図１】
2019155554.tif 000003
【図２】
2019155554.tif 000004
【図３】
2019155554.tif 000005
【図４】
2019155554.tif 000006
【図５】
2019155554.tif 000007
【図６】
2019155554.tif 000008
【図７】
2019155554.tif 000009
【図８】
2019155554.tif 000010
【図９】
2019155554.tif 000011
【図１０】
2019155554.tif 000012
【図１１】
2019155554.tif 000013
【図１２】
2019155554.tif 000014
【図１３】
2019155554.tif 000015