処理中

しばらくお待ちください...

設定

設定

出願の表示

1. WO2020110495 - 制御装置、制御方法、及び制御プログラム

Document

明 細 書

発明の名称 制御装置、制御方法、及び制御プログラム

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

発明の概要

発明が解決しようとする課題

0005   0006   0007  

課題を解決するための手段

0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033  

発明の効果

0034  

図面の簡単な説明

0035  

発明を実施するための形態

0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205   0206   0207   0208   0209   0210   0211   0212   0213   0214   0215   0216   0217   0218   0219   0220   0221   0222   0223   0224   0225   0226   0227   0228   0229   0230   0231   0232   0233   0234   0235   0236   0237   0238  

符号の説明

0239  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11   12   13  

図面

1   2A   2B   2C   2D   2E   2F   3   4   5A   5B   6   7A   7B   7C   8   9A   9B   10   11A   11B   12   13   14A   14B   15   16   17A   17B   18   19A   19B   20  

明 細 書

発明の名称 : 制御装置、制御方法、及び制御プログラム

技術分野

[0001]
 本発明は、制御装置、制御方法、及び制御プログラムに関する。

背景技術

[0002]
 製品を生産する生産ラインでは、マニピュレータ等のロボット装置が利用されている。機構、コネクタ、エンドエフェクタ等のロボット装置の構成要素は、遂行する作業(タスク)等に応じて多くのバリエーションを有しており、それらすべてに対応したロボット装置の動作手順を人手で作成するのは困難である。そのため、従来、機構、コネクタ、エンドエフェクタ等の構成要素の種類を決定した後、ロボット装置を人手で動かして、実行させる一連の動作における姿勢をレコードしながら、遂行する作業を直接的にティーチングする方法が採用されている。
[0003]
 しかしながら、この方法では、機構、コネクタ、エンドエフェクタ等の構成要素が変更される度に、遂行する作業をロボット装置に教示することになる。したがって、遂行する作業をロボット装置に教示するのにあまりにコストがかかってしまう。そこで、近年、機械学習を利用して、遂行する作業をロボット装置に習得させる方法が研究されている。例えば、非特許文献1では、カメラから得られる画像データに基づいて対象物を把持する動作を強化学習によりロボット装置に習得させる方法が提案されている。この方法によれば、対象物を把持する動作をロボット装置に教示する一連の処理の少なくとも一部を自動化することができる。よって、ロボット装置に作業を教示するコストを低減することができる。

先行技術文献

特許文献

[0004]
非特許文献1 : Dmitry Kalashnikov, et al. "QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation" arXiv preprint arXiv:1806.10293, 2018.

発明の概要

発明が解決しようとする課題

[0005]
 本件発明者らは、上記のようなロボット装置の従来の制御方法には、次のような問題があることを見出した。従来の制御方法では、遂行する作業に対してロボット装置に与える時系列の制御指令を学習している。つまり、学習された時系列の制御指令は作業に直接的に関連付けられる。そのため、作業を遂行する環境及び対象物の少なくとも一方が少しでも変化した場合には、実質的に作業の内容も変化してしまい、新たに学習させなければ、ロボットは、その作業を適切に遂行できなくなる可能性がある。
[0006]
 例えば、ロボット装置に教示した作業が、A地点に姿勢Bで存在する対象物CをD地点に運ぶことであったと想定する。この場合に、対象物CがA地点に姿勢Bで正確に配置されていたならば、ロボット装置は、学習結果に基づいて、当該作業を適切に遂行可能である。しかしながら、対象物CがA地点からややずれて配置されていたり、A地点に配置されているが姿勢Bから傾いていたりした場合には、ロボット装置が対象物Cを把持する位置及び姿勢が変化する等の理由により、遂行すべき作業の内容が変化してしまう。すなわち、この場合には、遂行すべき作業は、「A地点からずれたり傾いたりしている対象物CをD地点に運ぶ」ことであり、「A地点に姿勢Bで存在する対象物CをD地点に運ぶ」という元の作業と相違している。そうすると、ロボット装置は、学習結果に基づいて動作しても、この作業を適切に遂行できない可能性がある。つまり、従来の制御方法では、習得される作業を遂行する能力の汎用性が乏しいという問題点がある。この問題点に起因して、ロボット装置を汎用的に動作させるためには、異なる作業毎に制御指令を学習させることになり、ロボット装置に作業を教示するのにかかるコストは依然として高い。
[0007]
 本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、習得される作業を遂行する能力の汎用性を高めるための技術を提供することである。

課題を解決するための手段

[0008]
 本発明は、上述した課題を解決するために、以下の構成を採用する。
[0009]
 すなわち、本発明の一側面に係る制御装置は、複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成する制御装置であって、最終目標となる前記複数の対象物の間の相対関係量を設定する目標設定部であって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、目標設定部と、前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するデータ取得部と、取得された前記観察データから、前記複数の対象物の間の相対関係量を算出する関係特定部と、前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定する行動決定部と、前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定する指令決定部と、決定された前記制御指令を前記ロボット装置に出力する出力部と、を備える。
[0010]
 上記構成では、作業(タスク)の遂行に関連し、ロボット装置の稼働する環境下に存在する複数の対象物の状況及び目標が相対関係量で表現され、制御指令は、この相対関係量を変化させることに応じて決定される。相対関係量は、環境に存在する複数の対象物の間の相対的かつ物理的な関係に関する属性を示すものであり、例えば、複数の対象物の間の相対座標(相対位置、相対姿勢)、複数の対象物の間に作用する力、複数の対象物の間の状態(例えば、連結されているか否か)等である。つまり、上記構成では、制御指令は、作業に直接的に関連付けられるのではなく、相対関係量の変化量に関連付けられる。これにより、作業の内容に依存せずに、相対関係量を変化させることに対してロボット装置に与える制御指令の系列を教示することができる。すなわち、同じ相対関係量の変化で遂行可能な作業であれば、その作業の内容が多少変更されていても、ロボット装置にそれらの作業を適切に遂行させることができる。したがって、上記構成によれば、習得される作業を遂行する能力の汎用性を高めることができる。これによって、ロボット装置に作業を教示するのにかかるコストを低減することができる。
[0011]
 なお、「対象物」は、ロボット装置の動作に関連し得る物体であり、例えば、エンドエフェクタ、ワーク、障害物等である。「環境」は、対象物が存在し、ロボット装置が稼働する区域である。ロボット装置の種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。ロボット装置は、例えば、マニピュレータ等の産業用ロボット、自動的に移動可能な移動体等を含んでよい。産業用ロボットは、例えば、上記垂直多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等を含む。また、自動的に移動可能な移動体は、例えば、ドローン、自度運転可能に構成された車両、モバイルロボット等を含む。本発明は、対象物の操作可能なあらゆる種類のロボット装置に適用されてよい。
[0012]
 作業(タスク)は、ロボット装置に遂行させる仕事であり、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。作業は、例えば、部品運搬、部品嵌合、ネジ回し等である。作業は、例えば、ワークの把持、ワークの解放等の単純な仕事であってもよい。作業は、予め与えられてもよいし、オペレータの指定により与えられてもよい。
[0013]
 「センサ」は、相対関係量を観察可能であれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。センサは、例えば、カメラであってよい。この場合、観察データは、画像データである。「センサから観察データを取得すること」は、制御装置とセンサとが接続され、センサから直接的に観察データを取得すること、及び他の装置を経由してセンサから間接的に観察データを取得することを含んでよい。
[0014]
 「最終目標」は、終着点(ゴール)であり、作業の遂行を完了した時点に実現され、与えられた作業に応じて設定される。「開始する時点」は、開始点(スタート)であり、作業の遂行に関してロボット装置の動作の制御を開始する前の状態である。「開始する時点における相対関係量」は、予め与えられてもよいし、作業の遂行に関してロボット装置の動作の制御を開始する前に取得された観察データから算出されてよい。
[0015]
 「目標」は、最終目標を含み、作業の遂行を達成するために適宜設定される。設定される目標の数は、1つであってもよいし(この場合、最終目標だけが設定される)、複数であってもよい。最終目標以外の目標は、開始点から終着点に到達するまでに経由する経由点である。そのため、最終目標を単に「目標(ゴール)」と称し、最終目標以外の目標を「下位目標(サブゴール)」と称してもよい。
[0016]
 「最終目標の相対関係量を実現する」とは、作業の遂行が完了することであり、例えば、センサから取得された観測データから算出された相対関係量が最終目標の相対関係量に一致することである。この「一致」は、完全に一致することの他、閾値(許容誤差)による近似を含んでもよい。「次に遷移する目標」は、現在の状態から次に目指す状態(最終目標以外の目標であれば暫定的な状態)であり、例えば、最終目標に向かって、現在の状態に最も近い目標である。「最新」は、制御指令により動作を制御する際であり、その制御指令を決定する直前の時点である。
[0017]
 「制御指令」は、ロボット装置の動作の制御に関するものであり、例えば、目標制御量、操作量等である。「制御指令を出力すること」は、制御指令に基づいてロボット装置を直接的に制御すること、及びロボット装置がコントローラを備える場合に、コントローラに制御指令を出力することで、コントローラにロボット装置の動作を制御させることを含む。
[0018]
 上記一側面に係る制御装置において、前記相対関係量は、前記複数の対象物の間の相対座標を含んでもよい。また、上記一側面に係る制御装置において、前記センサは、カメラを含んでよく、前記観察データは、前記カメラにより得られる画像データを含んでよく、前記関係特定部は、前記カメラにより得られた前記画像データに対して前記各対象物のモデルをマッチングし、当該マッチングの結果に基づいて、前記複数の対象物の間の相対座標を算出してもよい。当該構成によれば、相対座標に基づいて、ロボット装置に教示する作業を遂行する能力の汎用性を容易に高めることができる。なお、相対座標は、対象物の間の相対的な位置関係が特定可能であれば、その表現方法は特に限定されなくてもよい。相対座標は、例えば、相対位置及び相対姿勢を含んでよい。
[0019]
 上記一側面に係る制御装置において、前記指令決定部は、第1の状態における相対関係量及び第2の状態における相対関係量の入力に対して、前記第1の状態における相対関係量を前記第2の状態における相対関係量に変化させるように前記ロボット装置の動作を制御するための制御指令を決定するように訓練された第1の学習済みの学習モデルを含んでもよい。そして、前記制御指令を決定することは、前記現在の状態における前記相対関係量及び前記次に遷移する目標の状態における前記相対関係量を前記第1の学習済みの学習モデルに入力すること、前記第1の学習済みの学習モデルの演算処理を実行すること、及び前記第1の学習済みの学習モデルから出力される出力値を、前記制御指令を決定した結果として取得すること、を含んでもよい。当該構成によれば、学習モデルを利用することで、相対関係量を変化させることに対してロボット装置に与える制御指令を適切に決定することができる。そのため、作業を遂行する能力の汎用性を高めた上で、習得させた能力に基づいて、ロボット装置に作業を適切に遂行させることができる。
[0020]
 なお、第1の状態は、訓練用の「現在の状態」である。第1の状態における相対関係量を第1の相対関係量と称してもよい。第2の状態は、訓練用の「次に遷移する状態」である。第2の状態における相対関係量を第2の相対関係量と称してもよい。学習モデルは、制御指令を決定するための推論する能力を機械学習により獲得可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。機械学習の種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。機械学習は、典型的には、教師あり学習又は強化学習である。機械学習として教師あり学習を採用する場合には、学習モデルは、例えば、全結合ニューラルネットワーク、長期短期記憶(LSTM:Long short-term memory)ブロックを含む再帰型ニューラルネットワーク等のニューラルネットワークにより構成されてよい。以下、長期短期記憶ブロックを「LSTMブロック」とも記載する。また、機械学習として強化学習を採用する場合には、学習モデルは、例えば、状態価値関数、行動価値関数等の価値関数により構成されてよい。
[0021]
 上記一側面に係る制御装置において、前記ロボット装置は、前記ロボット装置の属性を観測する観測センサを備えてもよく、前記第1の学習済みの学習モデルは、前記観測センサにより得られる属性データの入力を更に受け付けるように構成されてもよく、前記制御指令を決定することは、前記観測センサにより得られた前記属性データを前記第1の学習済みの学習モデルに更に入力すること、を含んでもよい。当該構成によれば、属性データを更に利用することで、ロボット装置に与える制御指令を更に適切に決定することができる。
[0022]
 なお、「観測センサ」は、ロボット装置の何らかの属性を観測するものであれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。観測センサは、例えば、近接センサ、触覚センサ、力覚センサ、エンコーダ等であってよい。この場合、属性データは、例えば、近接センサ、触覚センサ、力覚センサ、エンコーダ等の測定データ又は測定データから算出された特徴量である。観測センサは、複数のセンサにより構成されてよい。第1の学習済みの学習モデルに入力する属性データを得る時点は、例えば、制御指令により動作を制御する時点であり、その制御指令を決定する直前である。
[0023]
 上記一側面に係る制御装置において、前記行動決定部は、前記複数の対象物の間の相対関係量の集合を表現する配置空間であって、前記目標とする状態の候補となる状態における相対関係量にそれぞれ対応する複数のノードが配置された配置空間を示すマップ情報を保持してもよい。そして、前記相対関係量の系列を決定することは、前記マップ情報により示される前記配置空間において、前記複数のノードのうちから経由するノードを選択することで、前記開始する時点の状態における相対関係量に対応するノードから前記最終目標の状態における相対関係量に対応するノードまでの経路を探索すること、及び探索された前記経路に含まれるノードに対応する相対関係量により前記相対関係量の系列を生成すること、を含んでもよい。当該構成によれば、制御指令を決定する指針となる相対関係量の系列の決定(すなわち、行動計画)を簡易かつ適切に行うことができる。そのため、作業を遂行する能力の汎用性を高めた上で、習得させた能力に基づいて、ロボット装置に作業を簡易かつ適切に遂行させることができる。
[0024]
 なお、各ノード(節点、頂点)は、複数の対象物の一状態に対応し、その一状態における相対関係量を示す。各ノードは、ランダムサンプリング、手入力等により適宜設定されてよい。各ノード間には、エッジが適宜設定されてよい。つまり、マップ情報は、ノード及びエッジにより構成されるグラフ構造を有してもよい。エッジ(枝、辺)は、2つのノード間を接続し、一方のノードに対応する状態から他方のノードに対応する状態に遷移可能であることを示す。エッジを設定する2つのノードの組み合わせを決定する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、最近傍法等の公知の方法に基づいて、エッジを設定する2つのノードの組み合わせが決定されてよい。経路は、選択されたノードに連結されたエッジにより構成される。経路探索には、例えば、ダイクストラ法等の公知の探索方法が採用されてよい。また、経路探索には、例えば、指定されたノードを経由する等の制約条件が課されてもよい。制約条件は、実施の形態に応じて適宜決定されてよい。
[0025]
 配置空間は、相対関係量の集合を表現する。この配置空間には、自由領域及び制限領域が設定されてよい。自由領域には、複数の対象物の間の相対的な関係として取り得る状態(実現可能な相対関係量)に対応するノードが属する。一方、制限領域には、複数の対象物の間の相対的な関係として取り得ない状態(実現不能な相対関係量)に対応するノードが属する。この場合、各ノードは、自由領域に配置される。また、エッジは、制限領域に入らないように適宜設定される。
[0026]
 上記一側面に係る制御装置において、前記行動決定部は、訓練用の最終目標における相対関係量及び訓練用の現在の状態における相対関係量の入力に対して、当該訓練用の現在の状態の次に遷移する目標の状態における相対関係量を決定するように訓練された第2の学習済みの学習モデルを含んでもよい。そして、前記相対関係量の系列を決定することは、前記現在の状態における前記相対関係量及び設定された前記最終目標の前記相対関係量を前記第2の学習済みの学習モデルに入力すること、前記第2の学習済みの学習モデルの演算処理を実行すること、及び前記第2の学習済みの学習モデルから出力される出力値を、前記次に遷移する目標の状態における前記相対関係量を決定した結果として取得すること、を繰り返し実行することを含んでもよい。当該構成によれば、学習モデルを利用することで、開始時点から最終目標までに目標とする状態を決定する精度を高めることができる。そのため、精度よく決定された目標に基づいて、ロボット装置に与える制御指令を適切に決定することができ、これによって、ロボット装置に作業を適切に遂行させることができる。
[0027]
 上記一側面に係る制御装置において、前記第2の学習済みの学習モデルは、前記センサから取得される前記観察データの入力を更に受け付けるように構成されてよく、前記相対関係量の系列を決定することは、前記最新の観察データを前記第2の学習済みの学習モデルに更に入力すること、を含んでもよい。当該構成によれば、最新の観察データを更に利用することで、目標の状態を決定する精度を更に高めることができる。そのため、ロボット装置に作業を更に適切に遂行させることができる。
[0028]
 上記一側面に係る制御装置において、前記関係特定部は、訓練用の観察データの入力に対して、当該訓練用の観察データに現れる前記複数の対象物の間の相対関係量を算出するように訓練された第3の学習済みの学習モデルを含んでもよい。そして、前記相対関係量を算出することは、取得された前記観察データを前記第3の学習済みの学習モデルに入力すること、前記第3の学習済みの学習モデルの演算処理を実行すること、及び前記第3の学習済みの学習モデルから出力される出力値を、前記相対関係量を算出した結果として取得すること、を含んでもよい。当該構成によれば、学習モデルを利用することで、センサより得られた観察データから相対関係量を導出する精度を高めることができる。そのため、相対関係量を変化させることに対してロボット装置に与える制御指令を適切に決定することができ、これによって、ロボット装置に作業を適切に遂行させることができる。
[0029]
 上記一側面に係る制御装置において、前記ロボット装置は、前記ロボット装置の属性を観測する観測センサを備えてもよく、前記第3の学習済みの学習モデルは、前記観測センサにより得られる属性データの入力を更に受け付けるように構成されてよく、前記相対関係量を算出することは、前記観測センサにより得られた前記属性データを前記第3の学習済みの学習モデルに更に入力すること、を含んでもよい。当該構成によれば、属性データを更に利用することで、相対関係量を導出する精度を更に高めることができる。そのため、ロボット装置に作業を更に適切に遂行させることができる。
[0030]
 上記一側面に係る制御装置において、前記ロボット装置は、エンドエフェクタを備えるマニピュレータであってよく、前記複数の対象物は、前記エンドエフェクタを含んでよく、前記指令決定部は、前記エンドエフェクタに関する制御指令を決定してもよく、前記出力部は、決定された制御指令を前記マニピュレータに出力してもよい。当該構成によれば、マニピュレータに教示する作業を遂行する能力の汎用性を高めることができる。これにより、マニピュレータに作業を教示するのにかかるコストを低減することができる。なお、エンドエフェクタは、マニピュレータの手先に取り付けられるものであり、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。エンドエフェクタは、例えば、グリッパ、吸引器、ドライバ等であってよい。
[0031]
 上記各形態に係る制御装置の別の態様として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
[0032]
 例えば、本発明の一側面に係る制御方法は、複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成する情報処理方法であって、コンピュータが、最終目標となる前記複数の対象物の間の相対関係量を設定するステップであって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、ステップと、前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するステップと、取得された前記観察データから、前記複数の対象物の間の相対関係量を算出するステップと、前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定するステップと、前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定するステップと、決定された前記制御指令を前記ロボット装置に出力するステップと、を実行する、情報処理方法である。
[0033]
 例えば、本発明の一側面に係る制御プログラムは、複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成するためのプログラムであって、コンピュータに、最終目標となる前記複数の対象物の間の相対関係量を設定するステップであって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、ステップと、前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するステップと、取得された前記観察データから、前記複数の対象物の間の相対関係量を算出するステップと、前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定するステップと、前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定するステップと、決定された前記制御指令を前記ロボット装置に出力するステップと、を実行させるための、プログラムである。

発明の効果

[0034]
 本発明によれば、習得される作業を遂行する能力の汎用性を高めることができる。

図面の簡単な説明

[0035]
[図1] 図1は、本発明が適用される場面の一例を模式的に例示する。
[図2A] 図2Aは、実施の形態に係る相対関係量の一例を模式的に例示する。
[図2B] 図2Bは、実施の形態に係る相対関係量の一例を模式的に例示する。
[図2C] 図2Cは、実施の形態に係る相対関係量の一例を模式的に例示する。
[図2D] 図2Dは、実施の形態に係る相対関係量の一例を模式的に例示する。
[図2E] 図2Eは、実施の形態に係る相対関係量の一例を模式的に例示する。
[図2F] 図2Fは、実施の形態に係る相対関係量の一例を模式的に例示する。
[図3] 図3は、実施の形態に係る制御装置のハードウェア構成の一例を模式的に例示する。
[図4] 図4は、実施の形態に係るロボット装置の一例を模式的に例示する。
[図5A] 図5Aは、実施の形態に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
[図5B] 図5Bは、実施の形態に係る制御装置の学習処理に関するソフトウェア構成の一例を模式的に例示する。
[図6] 図6は、実施の形態に係る制御装置によるマップ情報の作成に関する処理手順の一例を例示する。
[図7A] 図7Aは、実施の形態に係るマップ情報の作成過程の一例を模式的に例示する。
[図7B] 図7Bは、実施の形態に係るマップ情報の作成過程の一例を模式的に例示する。
[図7C] 図7Cは、実施の形態に係るマップ情報の作成過程の一例を模式的に例示する。
[図8] 図8は、実施の形態に係る制御装置による学習モデルの機械学習に関する処理手順の一例を例示する。
[図9A] 図9Aは、実施の形態に係る制御装置によるロボット装置の制御に関する処理手順の一例を例示する。
[図9B] 図9Bは、実施の形態に係る制御装置によるロボット装置の制御に関する処理手順の一例を例示する。
[図10] 図10は、実施の形態に係る制御装置による行動計画の一例を模式的に例示する。
[図11A] 図11Aは、従来の制御方法の問題点を説明するための図である。
[図11B] 図11Bは、従来の制御方法の問題点を説明するための図である。
[図12] 図12は、実施の形態に係る制御方法の特徴を説明するための図である。
[図13] 図13は、変形例に係る制御装置のソフトウェア構成の一例を模式的に例示する。
[図14A] 図14Aは、変形例に係る学習装置が適用される場面の一例を模式的に例示する。
[図14B] 図14Bは、変形例に係る学習装置のハードウェア構成の一例を模式的に例示する。
[図15] 図15は、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
[図16] 図16は、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
[図17A] 図17Aは、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
[図17B] 図17Bは、変形例に係る制御装置の学習処理に関するソフトウェア構成の一例を模式的に例示する。
[図18] 図18は、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
[図19A] 図19Aは、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
[図19B] 図19Bは、変形例に係る制御装置の学習処理に関するソフトウェア構成の一例を模式的に例示する。
[図20] 図20は、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。

発明を実施するための形態

[0036]
 以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
[0037]
 §1 適用例
 まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本実施形態に係る制御装置1の適用場面の一例を模式的に例示する。図1の例では、グリッパ37を備える垂直多関節型のマニピュレータ3の動作を制御する場面を想定している。マニピュレータ3は、本発明の「ロボット装置」の一例であり、グリッパ37は、本発明の「エンドエフェクタ」の一例である。しかしながら、本発明の適用対象は、このような例に限定されなくてもよく、何らかのロボット装置の動作を制御するあらゆる場面に適用可能である。
[0038]
 図1に示されるとおり、本実施形態に係る制御装置1は、複数の対象物の存在する環境WS下で稼働するロボット装置(マニピュレータ3)の動作を制御するための制御指令41を生成するコンピュータである。環境WSは、対象物が存在し、ロボット装置が稼働する区域である。対象物は、ロボット装置の動作に関連し得る物体であり、例えば、エンドエフェクタ、ワーク、障害物等である。対象物は、ロボット装置の構成要素を含んでもよい。本実施形態では、環境WSには、グリッパ37、第1ワークW1、及び第2ワークW2が対象物の一例として存在している。
[0039]
 制御装置1は、環境WSに存在する複数の対象物を観察するセンサから観察データを繰り返し取得し、取得された観察データから複数の対象物の間の相対関係量を算出する。相対関係量は、複数の対象物の間の相対的かつ物理的な関係に関する属性を示すものである。相対関係量は、例えば、複数の対象物の間の相対座標(相対位置、相対姿勢)、複数の対象物の間に作用する力、複数の対象物の間の状態(例えば、連結されているか否か)等である。本実施形態では、センサの一例としてカメラCAが採用されている。また、本実施形態では、後述するとおり、相対関係量は、複数の対象物の間の相対座標を含む。そのため、制御装置1は、カメラCAから画像データ40を観察データとして取得し、取得された画像データ40から相対座標を含む相対関係量を算出する。
[0040]
 制御装置1は、最終目標となる複数の対象物の間の相対関係量を設定する。最終目標は、マニピュレータ3に遂行させる作業(タスク)に応じて決定される。制御装置1は、動作の制御を開始する時点からこの最終目標を達成するまでの相対関係量の遷移を計画し、計画された相対関係量の遷移に従って、マニピュレータ3に与える制御指令41を決定する。「開始する時点」は、当該計画における開始点(スタート)であり、作業の遂行に関してロボット装置(マニピュレータ3)の動作の制御を開始する前の状態である。「最終目標」は、当該計画における終着点(ゴール)であり、作業の遂行を完了した時点に実現され、与えられた作業に応じて設定される。
[0041]
 具体的には、制御装置1は、動作の制御を開始する時点における複数の対象物の間の相対関係量から設定された最終目標の相対関係量を実現するまでの、複数の対象物の目標とする状態における相対関係量の系列を決定する。制御装置1は、最終目標の相対関係量を実現するまで、センサから取得された最新の観察データから算出された現在の状態における相対関係量を、相対関係量の系列に含まれる、現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、マニピュレータ3に与える制御指令41を繰り返し決定する。
[0042]
 そして、制御装置1は、決定された制御指令41をマニピュレータ3に出力する。制御指令41は、ロボット装置(マニピュレータ3)の動作の制御に関するものであり、例えば、目標制御量、操作量等である。また、制御指令41を出力することは、制御指令41に基づいてロボット装置を直接的に制御すること、及びロボット装置がコントローラを備える場合に、制御指令41をコントローラに与えることで、コントローラにロボット装置の動作を制御させることを含む。本実施形態では、制御装置1は、制御指令41の出力処理として、制御指令41に基づいて、マニピュレータ3の動作を制御する。これにより、マニピュレータ3は、与えられた作業を遂行するように動作を制御される。
[0043]
 図2A~図2Fを更に用いて、制御装置1による動作制御の具体例について説明する。図1及び図2A~図2Fは、マニピュレータ3に遂行させる作業の一例として、第2ワークW2から離れた場所に配置されている第1ワークW1をグリッパ37により把持させ、把持させた第1ワークW1を第2ワークW2上に運搬する作業を模式的に例示している。図1は、上記計画の結果、開始する時点stから最終目標gnまで当該部品運搬の作業をn(nは自然数)回のステップで実行させるように相対関係量の系列RSを決定した場面を例示している。図2A~図2Fは、第1ワークW1を第2ワークW2の上に配置する作業をマニピュレータ3に遂行させる過程を模式的に例示する。
[0044]
 ただし、マニピュレータ3に遂行させる作業は、このような部品運搬に限られなくてもよく、実施の形態に応じて適宜選択されてよい。作業は、部品運搬の他、例えば、部品嵌合、ネジ回し等であってよい。作業は、例えば、ワークの把持、ワークの解放等の単純な仕事であってもよい。また、一連の作業を遂行するためのステップ数、すなわち、系列RSに含まれる相対関係量の数は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。更に、図1の例では、動作の制御を開始する時点stと最終目標gnとの間に、最終目標gn以外の目標(g1、g2等)が設定されている。しかしながら、相対関係量の系列を決定する処理の例は、このような例に限定されなくてもよく、開始する時点stの後に最終目標gnが設定される、換言すると、最終目標gn以外の目標が存在しないように相対関係量の系列が決定されてもよい。
[0045]
 まず、相対関係量の一例について説明する。図2Aに示されるとおり、本実施形態に係る相対関係量は、相対座標(rc1、rc2、rc3)を含んでいる。相対座標rc1は、グリッパ37のローカル座標系CO1から見た第1ワークW1のローカル座標系CO2を表し、グリッパ37と第1ワークW1との間の相対的な位置及び姿勢の関係を示す。相対座標rc2は、グリッパ37のローカル座標系CO1から見た第2ワークW2のローカル座標系CO3を表し、グリッパ37と第2ワークW2との間の相対的な位置及び姿勢の関係を示す。相対座標rc3は、第1ワークW1のローカル座標系CO2からみた第2ワークW2のローカル座標系CO3を表し、第1ワークW1と第2ワークW2との間の相対的な位置及び姿勢の関係を示す。
[0046]
 本実施形態では、各相対座標(rc1、rc2、rc3)は、3次元空間の3つの軸(前後、左右、上下;相対位置)で表現される相対位置、及び各軸の回転(ロール、ピッチ、ヨー)で表現される相対姿勢を含む。各相対座標(rc1、rc2、rc3)は、本発明の「複数の対象物の間の相対座標」の一例である。ただし、相対座標の表現は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。相対座標は、例えば、相対位置及び相対姿勢のいずれか一方のみを含むように設定されてもよい。また、相対座標の与え方は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、相対座標rc1は、第1ワークW1のローカル座標系CO2から見たグリッパ37のローカル座標系CO1を表す等のように、各相対座標(rc1、rc2、rc3)の関係は反転されてもよい。
[0047]
 次に、この相対関係量に基づいて、制御指令41を決定する過程の一例について説明する。本実施形態では、部品運搬の一連の動作における各状態が、各相対座標(rc1、rc2、rc3)を含む相対関係量により表現される。図2Aに示されるとおり、動作の制御を開始する時点stでは、第1ワークW1は第2ワークW2から離れて配置されており、グリッパ37は、第1ワークW1及び第2ワークW2から離れた位置に傾いて配置されている。開始する時点stにおける相対関係量r0に含まれる各相対座標(rc1、rc2、rc3)は、この状態におけるグリッパ37、第1ワークW1、及び第2ワークW2の間の相対的な位置及び姿勢の関係を示す。本実施形態では、この相対関係量r0の各相対座標(rc1、rc2、rc3)は、作業の遂行に関してマニピュレータ3の動作の制御を開始する前(開始する時点st)に取得された画像データ401から算出される。
[0048]
 一方、図2Fに示されるとおり、この作業の一例における最終目標gnは、グリッパ37が第1ワークW1の上部を把持し、把持した第1ワークW1を第2ワークW2上に配置することである。最終目標gnにおける相対関係量rnに含まれる各相対座標(rc1、rc2、rc3)は、この状態におけるグリッパ37、第1ワークW1、及び第2ワークW2の間の相対的な位置及び姿勢の関係を示す。この相対関係量rnは、マニピュレータ3に遂行させる作業に応じて適宜与えられる。
[0049]
 制御装置1は、この開始する時点stにおける相対関係量r0から最終目標gnの相対関係量rnを実現するまでの、複数の対象物の目標とする状態における相対関係量の系列RSを決定する。「目標」は、最終目標gnを含み、作業の遂行を達成するために適宜設定される。設定される目標の数は、1つであってもよいし、複数であってもよい。図1の例では、最終目標gnを含むn個の目標(g1、g2等)が設定されている。最終目標gn以外の目標(g1、g2等)は、開始点から終着点に到達するまでに経由する経由点(途中状態に対応する)である。そのため、最終目標gnを単に「目標(ゴール)」と称し、最終目標gn以外の目標を「下位目標(サブゴール)」と称してもよい。
[0050]
 図2B~図2Eは、相対関係量の系列RSを決定した結果、策定された途中状態の目標(g1、g2等)の一例を模式的に例示する。具体的に、図2Bの例では、開始する時点stの次に遷移する目標g1として、第1ワークW1を把持可能なようにグリッパ37の姿勢を変更し、グリッパ37を第1ワークW1の上空に配置することが策定されている。この目標g1における相対関係量r1に含まれる各相対座標(rc1、rc2、rc3)は、この状態におけるグリッパ37、第1ワークW1、及び第2ワークW2の間の相対的な位置及び姿勢の関係を示すように設定される。図2Cの例では、目標g1の次に遷移する目標g2として、グリッパ37を下降させ、第1ワークW1の上部をグリッパ37で把持することが策定されている。この目標g2における相対関係量r2に含まれる各相対座標(rc1、rc2、rc3)は、この状態におけるグリッパ37、第1ワークW1、及び第2ワークW2の間の相対的な位置及び姿勢の関係を示すように設定される。
[0051]
 このように、各目標における相対関係量は、開始する時点stにおける相対関係量r0が最終目標gnにおける相対関係量rnに遷移する過程の一時点(すなわち、途中状態)に対応するように適宜決定される。図2Dの例では、目標g2と最終目標gnとの間に策定される目標として、第1ワークW1を把持したグリッパ37が第2ワークW2に近付く場面が示されている。この目標における相対関係量rrに含まれる各相対座標(rc1、rc2、rc3)は、この状態におけるグリッパ37、第1ワークW1、及び第2ワークW2の間の相対的な位置及び姿勢の関係を示すように設定される。図2Eの例では、最終目標gnの直前の目標として、第1ワークW1を把持したグリッパ37が第2ワークW2の上空に位置する場面が示されている。この目標における相対関係量r(n-1)に含まれる各相対座標(rc1、rc2、rc3)は、この状態におけるグリッパ37、第1ワークW1、及び第2ワークW2の間の相対的な位置及び姿勢の関係を示すように設定される。
[0052]
 制御装置1は、最終目標gnの相対関係量rnを実現するまで、カメラCAから取得された最新の画像データ40から算出された現在の状態における相対関係量を、相対関係量の系列RSに含まれる、現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、マニピュレータ3に与える制御指令41を繰り返し決定する。この繰り返しの最初のステップs1では、開始する時点stの初期状態が現在の状態n1である。つまり、最新の画像データ401から算出された現在の状態n1における相対関係量p1は、開始する時点stにおける相対関係量r0と同じである。「最新」とは、制御指令により動作を制御する際であり、その制御指令を決定する直前の時点である。また、「次に遷移する目標」は、現在の状態から次に目指す状態(最終目標以外の目標であれば暫定的な状態)であり、例えば、最終目標に向かって、現在の状態に最も近い目標である。そのため、現在の状態n1の次に遷移する目標は、目標g1である。したがって、ステップs1では、制御装置1は、最新の画像データ401算出された現在の状態n1における相対関係量p1(図2A)を、目標g1の状態における相対関係量r1(図2B)に変化させるように、制御指令411を決定する。マニピュレータ3は、決定された制御指令411に基づいて動作を制御される。
[0053]
 この制御指令411に基づくマニピュレータ3の動作制御が適切に完了すると、グリッパ37、第1ワークW1、及び第2ワークW2は、図2Bに示される状態になる。つまり、次のステップs2では、最新の画像データ402から算出された現在の状態n2における相対関係量p2は、このステップs2を実行する前に達成される目標g1の相対関係量r1と一致又は近似している。この現在の状態n2の次に遷移する目標は、目標g1の次に設定された目標g2である。そのため、ステップs2では、制御装置1は、画像データ402から算出された現在の状態n2における相対関係量p2(図2B)を、目標g2の状態における相対関係量r2(図2C)に変化させるように、制御指令412を決定する。マニピュレータ3は、決定された制御指令412に基づいて動作を制御される。
[0054]
 このような制御指令41の決定、及び決定された制御指令41に基づくマニピュレータ3の動作の制御が繰り返し実行される。この繰り返しにより、グリッパ37、第1ワークW1、及び第2ワークW2の状態は、開始する時点stの状態から最終目標gnの状態に遷移していく。最終目標gnを実現する直前のステップsnの時点では、最新の画像データ40nから算出された現在の状態nnにおける相対関係量pnは、最終目標gnの前に達成される目標の相対関係量r(n-1)と一致又は近似している。このステップsnでは、制御装置1は、画像データ40nから算出された現在の状態nnにおける相対関係量pn(図2E)を、最終目標gnの状態における相対関係量rn(図2F)に変化させるように、制御指令41nを決定する。マニピュレータ3は、決定された制御指令41nに基づいて動作を制御される。
[0055]
 このステップsnにおける制御による動作が完了すると、最終目標gnの相対関係量rn、すなわち、グリッパ37により把持された第1ワークW1が第2ワークW2上に配置された状態が実現される。なお、最終目標gnの相対関係量rnを実現することは、作業の遂行が完了することであり、例えば、カメラCAから取得された画像データ40から算出される相対関係量が最終目標gnの相対関係量rnと一致することである。この「一致」は、完全に一致することの他、閾値(許容誤差)による近似を含んでもよい。最終目標gnを実現するまで上記繰り返しの処理が実行されることで、マニピュレータ3は、第2ワークW2から離れた場所に配置されている第1ワークW1をグリッパ37により把持し、把持した第1ワークW1を第2ワークW2上に運搬する一連の動作を実行するように制御される。
[0056]
 以上のとおり、本実施形態では、作業の遂行に関連し、マニピュレータ3の稼働する環境WS下に存在する複数の対象物の状況及び目標が相対関係量で表現され、制御指令41は、この相対関係量を変化させることに応じて決定される。相対関係量は、環境WSに存在する複数の対象物(グリッパ37、第1ワークW1、第2ワークW2)の間の相対的かつ物理的な関係に関する属性を示すものであり、本実施形態では、各相対座標(rc1、rc2、rc3)を含んでいる。つまり、本実施形態では、制御指令41は、作業に直接的に関連付けられるのではなく、相対関係量の変化量に関連付けられる。これにより、作業の内容に依存せずに、相対関係量を変化させることに対してマニピュレータ3に与える時系列の制御指令41を教示することができる。したがって、本実施形態によれば、習得される作業を遂行する能力の汎用性を高めることができる。これによって、マニピュレータ3に作業を教示するのにかかるコストを低減することができる。
[0057]
 §2 構成例
 [ハードウェア構成]
 <制御装置>
 次に、図3を用いて、本実施形態に係る制御装置1のハードウェア構成の一例について説明する。図3は、本実施形態に係る制御装置1のハードウェア構成の一例を模式的に例示する。
[0058]
 図3に示されるとおり、本実施形態に係る制御装置1は、制御部11、記憶部12、外部インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図3では、外部インタフェースを「外部I/F」と記載している。
[0059]
 制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、制御プログラム81、学習プログラム82、CAD(computer-aided design)データ121、マップ情報123、学習データ125、学習結果データ127等の各種情報を記憶する。
[0060]
 制御プログラム81は、後述するマニピュレータ3の制御に関する情報処理(図9A、図9B)を制御装置1に実行させるためのプログラムである。制御プログラム81は、この情報処理の一連の命令を含む。学習プログラム82は、相対関係量の系列RSの決定に利用するマップ情報123及び制御指令41の決定に利用する学習済みの学習モデル(後述するニューラルネットワーク51)の構築に関する情報処理(図6、図8)を制御装置1に実行させるためのプログラムである。学習プログラム82は、この情報処理の一連の命令を含む。CADデータ121は、環境WSに存在する各対象物のモデルを含む。マップ情報123及び学習結果データ127は、学習プログラム82の実行結果として生成される。マップ情報123は、複数の対象物の間の相対関係量の集合を表現する配置空間であって、目標とする状態の候補となる状態における相対関係量にそれぞれ対応する複数のノードが配置された配置空間を示す。学習データ125は、学習モデルの機械学習に使用される。学習結果データ127は、機械学習により構築された学習済みの学習モデルの設定を行うためのデータである。詳細は後述する。
[0061]
 外部インタフェース13は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース13の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、制御装置1は、外部インタフェース13を介して、マニピュレータ3及びカメラCAに接続される。
[0062]
 カメラCAは、マニピュレータ3の稼働する環境WSに存在する各対象物(グリッパ37、第1ワークW1、第2ワークW2)を観察するように適宜配置される。このカメラCAの種類は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。カメラCAには、例えば、デジタルカメラ、ビデオカメラ等の公知のカメラが利用されてよい。制御装置1は、外部インタフェース13を介して、カメラCAから画像データ40を取得することができる。画像データ40は、本発明の「観察データ」の一例である。なお、図1及び図3の例では、カメラCAは、マニピュレータ3と別体に設けられている。しかしながら、カメラCAの構成は、このような例に限定されなくてもよい。カメラCAは、マニピュレータ3と一体に設けられていてもよい。
[0063]
 入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置14及び出力装置15を利用することで、制御装置1を操作することができる。
[0064]
 ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記制御プログラム81、学習プログラム82、CADデータ121、及び学習データ125の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
[0065]
 記憶媒体91は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。制御装置1は、この記憶媒体91から、上記制御プログラム81、学習プログラム82、CADデータ121、及び学習データ125の少なくともいずれかを取得してもよい。
[0066]
 ここで、図3では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
[0067]
 なお、制御装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。外部インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。制御装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、制御装置1は、提供されるサービス専用に設計された情報処理装置の他、PC(Personal Computer)等の汎用の情報処理装置、PLC(programmable logic controller)等のコントローラ等であってよい。
[0068]
 <マニピュレータ>
 次に、図4を用いて、本実施形態に係るマニピュレータ3のハードウェア構成の一例について説明する。図4は、本実施形態に係るマニピュレータ3のハードウェア構成の一例を模式的に例示する。
[0069]
 本実施形態に係るマニピュレータ3は、6軸の垂直多関節型の産業用ロボットであり、台座部30及び6つの関節部31~36を備えている。各関節部31~36は、サーボモータ(不図示)を内蔵していることで、各軸を中心に回転可能に構成されている。第1関節部31は、台座部30に接続されており、先端側の部分を台座の軸周りに回転させる。第2関節部32は、第1関節部31に接続されており、先端側の部分を前後方向に回転させる。第3関節部33は、リンク391を介して第2関節部32に接続されており、先端側の部分を上下方向に回転させる。第4関節部34は、リンク392を介して第3関節部33に接続されており、先端側の部分をリンク392の軸周りに回転させる。第5関節部35は、リンク393を介して第4関節部34に接続されており、先端側の部分を上下方向に回転させる。第6関節部36は、リンク394を介して第5関節部35に接続されており、先端側の部分をリンク394の軸周りに回転させる。第6関節部36の先端側には、力覚センサ38と共にグリッパ37が取り付けられている。
[0070]
 各関節部31~36には、エンコーダ(不図示)が更に内蔵されている。エンコーダは、各関節部31~36の角度(制御量)を測定可能に構成されている。エンコーダの測定データは、各関節部31~36の角度の制御に利用される。また、力覚センサ38は、グリッパ37に作用する6軸方向の力及びモーメントを検出するように構成されている。力覚センサ38の測定データは、グリッパ37の把持力を調整したり、グリッパ37に異常な力が作用しているか否かを検知したりするために利用されてよい。
[0071]
 なお、マニピュレータ3のハードウェア構成は、このような例に限定されなくてもよい。マニピュレータ3の具体的なハードウェア構成に関して、実施の形態に応じて適宜、構成要素の省略、置換及び追加が可能である。例えば、マニピュレータ3は、マニピュレータ3の制御量又はその他の属性を観測するために、エンコーダ及び力覚センサ38以外のセンサを備えていてもよい。マニピュレータ3の軸数は、6軸に限定されなくてもよい。また、マニピュレータ3には、公知の産業用ロボットが採用されてもよい。
[0072]
 [ソフトウェア構成]
 (A)制御処理
 次に、図5Aを用いて、本実施形態に係る制御装置1の制御処理に関するソフトウェア構成の一例について説明する。図5Aは、本実施形態に係る制御装置1の制御処理に関するソフトウェア構成の一例を模式的に例示する。
[0073]
 制御装置1の制御部11は、記憶部12に記憶された制御プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された制御プログラム81をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図5Aに示されるとおり、本実施形態に係る制御装置1は、目標設定部101、データ取得部102、関係特定部103、行動決定部104、指令決定部105、及び動作制御部106をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、制御処理に関する制御装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
[0074]
 目標設定部101は、最終目標gnとなる複数の対象物の間の相対関係量rnを設定する。最終目標gnの相対関係量rnは、上記図2Fに例示されるように、与えられた作業Tに応じて設定される。この最終目標gnの相対関係量rnは、CAD等のシミュレータにより与えられてもよいし、オペレータの指定により与えられてもよい。
[0075]
 データ取得部102は、環境WSに存在する複数の対象物を観察するセンサから観察データを繰り返し取得する。関係特定部103は、取得された観察データから、複数の対象物の間の相対関係量を算出する。本実施形態では、相対関係量は、複数の対象物の間の相対座標を含む。また、センサは、カメラCAを含み、観察データは、カメラCAにより得られた画像データ40を含む。そのため、本実施形態では、データ取得部102は、カメラCAから画像データ40を観察データとして繰り返し取得する。関係特定部103は、取得された画像データ40から、複数の対象物の間の相対座標を含む相対関係量を算出する。
[0076]
 画像データ40から相対座標を算出する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。本実施形態では、関係特定部103は、各対象物のモデルを利用して、各対象物の間の相対座標を算出する。具体的に、関係特定部103は、カメラCAにより得られた画像データ40に対して、CADデータ121により示される各対象物のモデルをマッチングする。関係特定部103は、このマッチングの結果に基づいて、複数の対象物の間の相対座標を算出する。
[0077]
 行動決定部104は、動作の制御を開始する時点stにおける相対関係量r0から設定された最終目標gnの相対関係量rnを実現するまでの、複数の対象物の目標(g1等)とする状態における相対関係量の系列RSを決定する。本実施形態では、開始する時点stにおける相対関係量r0は、作業の遂行に関してマニピュレータ3の動作の制御を開始する直前の時点に取得された画像データ40から算出される。また、本実施形態では、行動決定部104は、マップ情報123を保持する。相対関係量の系列RSの決定には、このマップ情報123が利用される。具体的には、行動決定部104は、マップ情報123により示される配置空間において、複数のノードのうちから経由するノードを選択することで、開始する時点stの状態における相対関係量r0に対応するノードから最終目標gnの状態における相対関係量rnに対応するノードまでの経路を探索する。そして、行動決定部104は、探索された経路に含まれるノードに対応する相対関係量(r1等)により相対関係量の系列RSを生成する。
[0078]
 指令決定部105は、最終目標gnの相対関係量rnを実現するまで、カメラCAから取得された最新の画像データ40から算出された現在の状態における相対関係量を、相対関係量の系列RSに含まれる、現在の状態の次に遷移する目標における相対関係量に変化させるように、マニピュレータ3に与える制御指令41を繰り返し決定する。図5Aの例では、この繰り返しのs回目の処理として、現在の状態nsから次の目標gsの状態に遷移させる場面が例示されている。この場面では、指令決定部105は、最新の画像データ40sから算出された現在の状態nsにおける相対関係量psを、次に遷移する目標gsにおける相対関係量rsに変化させるように、制御指令41sを決定する。
[0079]
 制御指令41を決定する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。本実施形態では、指令決定部105は、学習結果データ127を保持することで、学習済みのニューラルネットワーク51を含んでいる。この学習済みのニューラルネットワーク51は、本発明の「第1の学習済みの学習モデル」の一例である。指令決定部105は、学習済みのニューラルネットワーク51を利用することで、制御指令41を決定する。具体的には、指令決定部105は、現在の状態nsにおける相対関係量ps及び次に遷移する目標gsの状態における相対関係量rsをニューラルネットワーク51に入力し、ニューラルネットワーク51の演算処理を実行する。これにより、指令決定部105は、ニューラルネットワーク51から出力される出力値を、制御指令41sを決定した結果として取得する。
[0080]
 動作制御部106は、決定された制御指令41をマニピュレータ3に出力する。この動作制御部106は、本発明の「出力部」の一例である。本実施形態では、動作制御部106は、この制御指令41の出力処理として、制御指令41に基づいて、マニピュレータ3の動作を制御する。最終目標gnの相対関係量rnを実現するまで、指令決定部105及び動作制御部106の処理が繰り返されることで、マニピュレータ3は、例えば、上記図2A~図2Fで例示されるような、与えられた作業Tの遂行に関する一連の動作を実行するように制御される。
[0081]
 (ニューラルネットワーク)
 次に、学習モデルの一例であるニューラルネットワーク51について説明する。図5Aに示されるとおり、本実施形態に係るニューラルネットワーク51は、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力側から順に、入力層511、中間(隠れ)層512、及び出力層513を備えている。なお、図5Aの例では、ニューラルネットワーク51は、1層の中間層512を備えており、入力層511の出力が中間層512に入力され、中間層512の出力が出力層513に入力されている。ただし、中間層512の数は、このような例に限られなくてもよい。ニューラルネットワーク51は、2層以上の中間層を備えてもよい。
[0082]
 各層511~513に含まれるニューロンの数は、実施の形態に応じて適宜選択されてよい。隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層511~513に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、学習モデルの演算パラメータの一例である。
[0083]
 指令決定部105は、現在の状態nsにおける相対関係量ps及び次に遷移する目標gsの状態における相対関係量rsを入力層511に入力し、ニューラルネットワーク51の演算処理として各層511~513に含まれる各ニューロンの発火判定を入力側から順に行う。これにより、指令決定部105は、制御指令41sを決定した結果として、出力層513から出力される出力値を取得する。
[0084]
 なお、本実施形態では、このような学習済みのニューラルネットワーク51の構成(例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、及び演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値)を示す情報は、学習結果データ127に含まれている。指令決定部105は、学習結果データ127を参照して、現在の状態及び次に遷移する目標から制御指令41を決定する処理に利用する学習済みのニューラルネットワーク51の設定を行う。
[0085]
 (B)学習処理
 次に、図5Bを用いて、本実施形態に係る制御装置1の学習処理に関するソフトウェア構成の一例について説明する。図5Bは、本実施形態に係る制御装置1の学習処理に関するソフトウェア構成の一例を模式的に例示する。
[0086]
 制御装置1の制御部11は、記憶部12に記憶された学習プログラム82をRAMに展開する。そして、制御部11は、RAMに展開された学習プログラム82をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図5Bに示されるとおり、本実施形態に係る制御装置1は、環境情報取得部111、マップ作成部112、マップ保存処理部113、学習データ取得部114、学習処理部115、及び保存処理部116をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、学習処理に関する制御装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
[0087]
 環境情報取得部111は、作業Tを遂行する環境WSに存在する各対象物に関する環境情報(例えば、CADデータ121)を取得する。マップ作成部112は、取得された環境情報を利用して、配置空間を示すマップ情報123を作成する。マップ保存処理部113は、作成されたマップ情報123を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。
[0088]
 記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ16を介して記憶メディアにマップ情報123を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御装置1は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等の通信インタフェースを更に備えてよく、制御部11は、通信インタフェースを利用して、ネットワークを介してデータサーバにマップ情報123を格納してもよい。また、外部記憶装置は、例えば、制御装置1に接続された外付けの記憶装置であってもよい。
[0089]
 学習データ取得部114は、ニューラルネットワーク51の機械学習に利用する学習データ125を取得する。学習データ125は、例えば、第1の状態における相対関係量1251及び第2の状態における相対関係量1252と、相対関係量1251から相対関係量1252に変化させるようにマニピュレータ3の動作を制御するための制御指令1253との組み合わせによりそれぞれ構成される複数の学習データセット1250を含む。第1の状態は、訓練用の「現在の状態」に相当する。第2の状態は、訓練用の「次に遷移する状態」に相当する。そのため、相対関係量1251を「第1の相対関係量」と称し、相対関係量1252を「第2の相対関係量」と称してもよい。第1の状態における相対関係量1251及び第2の状態における相対関係量1252は、訓練データ(入力データ)として利用される。一方、制御指令1253は、教師データ(正解データ)として利用される。
[0090]
 学習処理部115は、取得された学習データ125を利用して、ニューラルネットワーク51の機械学習を実施する。すなわち、学習処理部115は、機械学習により、相対関係量1251及び相対関係量1252の入力に対して、各対象物の間の相対関係量を相対関係量1251から相対関係量1252に変化させるようにマニピュレータ3の動作を制御するための制御指令(制御指令1253)を決定するようにニューラルネットワーク51を訓練する。これにより、学習済みのニューラルネットワーク51が構築される。保存処理部116は、構築された学習済みのニューラルネットワーク51に関する情報を所定の記憶領域に保存する。
[0091]
 (C)その他
 制御装置1の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、制御装置1の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、制御装置1のソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
[0092]
 §3 動作例
 次に、制御装置1の動作例について説明する。本実施形態に係る制御装置1は、学習処理として、マップ情報123を作成する処理及び学習済みのニューラルネットワーク51を構築する処理の2つの処理を実行する。また、本実施形態に係る制御装置1は、マニピュレータ3の動作を制御するための処理を実行する。以下、各処理手順の一例について説明する。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
[0093]
 (3-1)マップ情報の作成
 まず、図6及び図7A~図7Cを用いて、マップ情報123の作成に関する処理手順の一例について説明する。図6は、本実施形態に係る制御装置1によるマップ情報123の作成に関する処理手順の一例を示すフローチャートである。また、図7A~図7Cは、マップ情報123を作成する過程の一例を模式的に例示する。
[0094]
 (ステップS101)
 ステップS101では、制御部11は、環境情報取得部111として動作し、作業Tを遂行する環境WSに存在する各対象物に関する環境情報を取得する。環境情報は、各対象物の間の相対関係量をシミュレート可能であれば、その形式及び種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。制御部11は、例えば、環境情報としてCADデータ121を取得してもよい。CADデータ121は、各対象物のモデル(例えば、3Dモデル)等の物理的な構成を示す構成情報を含む。このCADデータ121は、公知のソフトウェアにより生成されてよい。環境情報を取得すると、制御部11は、次のステップS102に処理を進める。
[0095]
 (ステップS102及びステップS103)
 ステップS102及びステップS103では、制御部11は、マップ作成部112として動作して、配置空間の作成及び設定を行う。具体的に、ステップS102では、制御部11は、取得された環境情報を利用して、複数の対象物(本実施形態では、グリッパ37、第1ワークW1、第2ワークW2)の間の相対関係量の集合を表現する配置空間を作成する。次のステップS103では、作成された配置空間に自由領域及び制限領域を設定する。
[0096]
 図7Aは、作成される配置空間SPの一例を模式的に例示する。図7Aでは、説明の便宜のため、配置空間SPを2次元で表現している。しかしながら、配置空間SPの次元は、相対関係量に依存するため、必ずしも2次元とは限らない。後述する図7B及び図7Cにおいても同様である。配置空間SPに属するノード(点)は、複数の対象物の間の相対関係量に対応する。
[0097]
 各対象物は、物理的な構成を有しているため、各対象物の相対関係量として実現可能な相対関係量と実現不能な相対関係量とが存在する。例えば、上記図2A等のように、グリッパ37、第1ワークW1、及び第2ワークW2それぞれが移動可能な範囲で離れている状態は、各対象物の間の相対的な関係として取り得る状態であり、この状態のおける相対関係量は実現可能である。一方で、例えば、第1ワークW1及び第2ワークW2が互いに貫通不能であるにも関わらず、いずれか一方が他方に貫通している状態は、各対象物の間の相対的な関係として取り得ない状態であり、この状態における相対関係量は実現不能である。また、例えば、マニピュレータ3の構成に応じて、グリッパ37が移動可能な範囲及び角度は制約される。そのため、グリッパ37が他の対象物に対して移動不能な範囲に移動している状態は、各対象物の間の相対的な関係として取り得ない状態であり、この状態における相対関係量は実現不能である。
[0098]
 そこで、制御部11は、相対関係量の集合を表現する配置空間SPを作成した後に、CADデータ121を参照して、各対象物の物理的な構成に応じて、実現可能な相対関係量に対応するノードの属する自由領域、及び実現不能な相対関係量に対応するノードの属する制限領域を設定する。図7Aの例では、領域E1が、自由領域であり、その他の領域E2~E4が、制限領域である。自由領域及び制限領域の設定が完了すると、制御部11は、次のステップS104に処理を進める。
[0099]
 (ステップS104)
 ステップS104では、制御部11は、マップ作成部112として動作し、配置空間の自由領域内において、各対象物の間の相対的な関係として取り得る各状態における相対関係量にそれぞれ対応する複数のノードを配置する。各ノードは、例えば、目標(g1等)とする状態の候補となる状態における相対関係量に対応する。
[0100]
 図7Bは、配置空間SPの自由領域(領域E1)に各ノードNdを配置した場面を模式的に例示する。各ノードNdは、複数の対象物の間の相対的な関係の一状態に対応し、その一状態における相対関係量(本実施形態では、各相対座標rc1~rc3)を示す。各ノードNdは、例えば、ランダムサンプリング等の公知の方法により設定されてもよい。また、各ノードNdは、例えば、入力装置14を介したオペレータの指定により設定されてもよい。
[0101]
 また、制御部11は、開始する時点stの候補に対応するノード(開始点)と最終目標gnの候補に対応するノード(終着点)とを設定し、設定された開始点から終着点までの経路を適宜探索してもよい。この経路探索には、公知の方法が採用されてもよい。また、この経路探索は、シミュレーションで行われてもよいし、マニピュレータ3を駆動して行われてもよい。そして、制御部11は、この経路探索において、遷移確率の高いノード、例えば、登場頻度が閾値以上である各ノードを抽出し、抽出した各ノードをノードNdとして設定してもよい。
[0102]
 設定される各ノードNdは、開始する時点st及び最終目標gnそれぞれの候補に対応するノードを含んでもよい。各ノードNdの設定が完了すると、制御部11は、次のステップS105に処理を進める。
[0103]
 (ステップS105)
 ステップS105では、制御部11は、マップ作成部112として動作し、各ノード間をエッジで連結する。
[0104]
 図7Cは、各ノードNd間をエッジEgで連結した場面を模式的に例示する。エッジEgは、2つのノードNdの間を接続し、一方のノードNdに対応する状態から他方のノードNdに対応する状態に遷移可能であることを示す。そのため、エッジEgは、制限領域(図7Cの例では、領域E2~E4)に入らないように設定される。
[0105]
 エッジEgを設定する2つのノードNdの組み合わせを決定する方法は、実施の形態に応じて適宜選択されてよい。例えば、最近傍法等の公知の方法に基づいて、エッジEgを設定する2つのノードNdの組み合わせが決定されてもよい。また、例えば、入力装置14を介したオペレータの指定により、エッジEgを設定する2つのノードNdの組み合わせが決定されてもよい。これにより、エッジEgが設定されると、マップ情報123の作成が完了する。つまり、本実施形態では、マップ情報123は、ノードNd及びエッジEgにより構成されるグラフ構造を有している。マップ情報123の作成が完了すると、制御部11は、次のステップS106に処理を進める。
[0106]
 (ステップS106)
 ステップS106では、制御部11は、マップ保存処理部113として動作し、作成されたマップ情報123を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。以上により、制御部11は、マップ情報123の作成に関する一連の処理を終了する。
[0107]
 (3-2)ニューラルネットワークの機械学習
 次に、図8を用いて、制御指令41の決定処理に利用する学習済みのニューラルネットワーク51の構築に関する処理手順の一例について説明する。図8は、本実施形態に係る制御装置1による学習済みのニューラルネットワーク51の構築に関する処理手順の一例を示すフローチャートである。
[0108]
 (ステップS201)
 ステップS201では、制御部11は、学習データ取得部114として動作し、ニューラルネットワーク51の機械学習に利用する学習データ125を取得する。本実施形態では、学習データ125は、相対関係量1251及び相対関係量1252と制御指令1253との組み合わせによりそれぞれ構成される複数の学習データセット1250を含む。
[0109]
 各学習データセット1250を取得する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、シミュレータによる仮想環境又は実環境を用意し、用意した環境下で、第1の状態及び第2の状態の組み合わせを様々な条件で与え、複数の対象物の間の相対的な関係が与えた第1の状態から第2の状態に遷移するようにマニピュレータ3を駆動する。そして、第1の状態から第2の状態に適切に遷移するように駆動した時の制御指令1253を、第1の状態のおける相対関係量1251及び第2の状態における相対関係量1252と組み合わせる。これにより、各学習データセット1250を生成することができる。
[0110]
 各学習データセット1250は、コンピュータの動作により自動的に生成されてもよいし、入力装置14を介したオペレータの操作により手動的に生成されてもよい。また、各学習データセット1250の生成は、制御装置1により行われてもよいし、制御装置1以外の他のコンピュータにより行われてもよい。各学習データセット1250を制御装置1が生成する場合、制御部11は、自動的に又はオペレータの操作により手動的に上記一連の処理を実行することで、複数の学習データセット1250を含む学習データ125を取得する。一方、各学習データセット1250を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の学習データセット1250を含む学習データ125を取得する。
[0111]
 取得する学習データセット1250の件数は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。学習データ125を取得すると、制御部11は、次のステップS202に処理を進める。
[0112]
 (ステップS202)
 ステップS202では、制御部11は、学習処理部115として動作し、取得された学習データ125を利用して、ニューラルネットワーク51の機械学習を実施する。
[0113]
 詳細には、まず、制御部11は、処理対象となるニューラルネットワーク51を用意する。用意するニューラルネットワーク51の構成は、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習を行うことで得られた学習結果データに基づいて、ニューラルネットワーク51を用意してもよい。
[0114]
 次に、制御部11は、ステップS201で取得した各学習データセット1250に含まれる相対関係量1251及び相対関係量1252を入力データとして利用し、対応する制御指令1253を教師データとして利用して、ニューラルネットワーク51の学習処理を実行する。この学習処理には、確率的勾配降下法等が用いられてよい。
[0115]
 例えば、第1のステップでは、制御部11は、各学習データセット1250について、相対関係量1251及び相対関係量1252を入力層511に入力し、入力側から順に各層(511~513)に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、相対関係量1251から相対関係量1252に変化させるためにマニピュレータ3に与える制御指令を決定した結果に対応する出力値を出力層513から取得する。第2のステップでは、制御部11は、取得した出力値と対応する制御指令1253との誤差を算出する。第3のステップでは、制御部11は、誤差逆伝播(Back propagation)法により、算出した出力値の誤差を用いて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。第4のステップでは、制御部11は、算出した各誤差に基づいて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
[0116]
 制御部11は、上記第1~第4のステップを繰り返すことで、各学習データセット1250について、相対関係量1251及び相対関係量1252を入力層511に入力すると、対応する制御指令1253と一致する出力値が出力層513から出力されるように、ニューラルネットワーク51の演算パラメータの値を調節する。例えば、制御部11は、各学習データセット1250について、出力層513から得られる出力値と制御指令1253との誤差の和が閾値以下になるまで、上記第1~第4のステップによる演算パラメータの値の調節を繰り返す。閾値は、実施の形態に応じて適宜設定されてよい。これにより、制御部11は、相対関係量1251及び相対関係量1252の入力に対して、対応する制御指令1253と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク51を構築することができる。この学習データ125を利用した機械学習が完了すると、制御部11は、次のステップS203に処理を進める。
[0117]
 (ステップS203)
 ステップS203では、制御部11は、保存処理部116として動作し、学習済みのニューラルネットワーク51に関する情報を所定の記憶領域に保存する。本実施形態では、制御部11は、ステップS202の機械学習により構築された学習済みのニューラルネットワーク51の構成及び演算パラメータを示す情報を学習結果データ127として生成する。そして、制御部11は、生成した学習結果データ127を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。以上により、制御部11は、学習済みのニューラルネットワーク51の構築に関する一連の処理を終了する。
[0118]
 (3-3)制御処理
 次に、図9A及び図9Bを用いて、マニピュレータ3の動作制御に関する処理手順の一例について説明する。図9A及び図9Bは、本実施形態に係る制御装置1によるマニピュレータ3の動作制御に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、本発明の「制御方法」の一例である。
[0119]
 (ステップS301及びステップS302)
 ステップS301では、制御部11は、遂行する作業Tの指定を受け付ける。作業Tの指定を受け付ける方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、入力装置14を介した作業Tの名称の入力により、遂行する作業Tの指定を受け付けてもよい。また、例えば、制御部11は、遂行する作業Tの候補を示すリストを出力装置15に出力し、オペレータに遂行する作業Tをリストから選択させることで、遂行する作業Tの指定を受け付けてもよい。
[0120]
 次のステップS302では、制御部11は、目標設定部101として動作し、指定された作業Tに応じて最終目標gnとなる相対関係量rnを設定する。この最終目標gnの相対関係量rnは、CAD等のシミュレータにより与えられてもよいし、オペレータの指定により与えられてもよい。最終目標gnの相対関係量を設定すると、制御部11は、次のステップS303に処理を進める。
[0121]
 (ステップS303及びステップS304)
 ステップS303では、制御部11は、データ取得部102として動作し、環境WSに存在する複数の対象物を観察するセンサから観察データを取得する。次のステップS304では、制御部11は、関係特定部103として動作し、取得された観察データから、複数の対象物の間の相対関係量を算出する。
[0122]
 本実施形態では、制御部11は、カメラCAから画像データ40を取得する。そして、制御部11は、取得された画像データ40に対して、CADデータ121により示される各対象物(グリッパ37、第1ワークW1、及び第2ワークW2)のモデルをマッチングする。制御部11は、このマッチングの結果に基づいて、各対象物の間の相対座標rc1~rc3(相対関係量)を算出する。マッチングの方法及び各相対座標rc1~rc3の導出には、公知の画像処理方法が用いられてよい。
[0123]
 なお、このステップS303及びステップS304を処理する時点は、動作の制御を開始する直前の時点(すなわち、開始する時点st)である。ステップS303で取得された画像データ40はこの時点では最新である。そのため、ステップS304により算出された相対関係量は、上記開始する時点stにおける相対関係量r0及び現在の状態n1における相対関係量p1として利用される。相対関係量の算出が完了すると、制御部11は、次のステップS305に処理を進める。
[0124]
 (ステップS305)
 ステップS305では、制御部11は、行動決定部104として動作し、動作の制御を開始する時点stにおける相対関係量r0から最終目標gnの相対関係量rnを実現するまでの、複数の対象物の目標(g1等)とする状態における相対関係量の系列RSを決定する。
[0125]
 本実施形態では、制御部11は、マップ情報123を利用して、相対関係量の系列RSを決定する。具体的には、制御部11は、マップ情報123により示される配置空間において、複数のノードのうちから経由するノードを選択することで、開始する時点stの状態における相対関係量r0に対応するノードから最終目標gnの状態における相対関係量rnに対応するノードまでの経路を探索する。そして、制御部11は、探索された経路に含まれるノードに対応する相対関係量により相対関係量の系列RSを生成する。
[0126]
 図10は、経路探索(行動計画)の結果、開始する時点stの相対関係量r0に対応するノードNsから最終目標gnの相対関係量rnに対応するノードNgまでの経路の経由ノードとしてノードN1~N5が選択された場面を模式的に例示する。なお、図10の例では、説明の便宜上、ノードNsからノードNgまで5つのノードN1~N5を経由している(すなわち、nが6である)が、経由するノードの数はこのような例に限定されなくてもよい。
[0127]
 開始する時点stに対応するノードNs及び最終目標gnに対応するノードNgが既にノードNdとして設定されている場合には、制御部11は、それぞれに対応するノードNdを各ノード(Ns、Ng)として利用する。一方、各ノード(Ns、Ng)がノードNdとして設定されていない場合には、制御部11は、配置空間SP内に各ノード(Ns、Ng)を設定する。そして、制御部11は、配置空間SPに設定された複数のノードNdのうちから経由するノードを選択することで、ノードNsからノードNgまでの経路を探索する。経路探索には、例えば、ダイクストラ法等の公知の探索方法が用いられてよい。図10の例では、ノードNsからノードNgまでの経路は、選択されたノードN1~N5に連結されたエッジEgにより構成される。この場合、制御部11は、この経路に含まれる各ノード(N1~N5、Ng)に対応する相対関係量により相対関係量の系列RSを構成する。
[0128]
 なお、経路探索には、制約条件が課されてもよい。この場合、制御部11は、制約条件を満たすように、ノードNsからノードNgまでの経路を探索する。制約条件の種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。制約条件は、例えば、オペレータ等に指定されたノードNdを経由することであってもよい。この場合、制御部11は、指定されたノードNdを経由するように、ノードNsからノードNgまでの経路を探索する。
[0129]
 また、制約条件として、例えば、各エッジEgに重みが設定されてよい。この重みは、経路探索において優先する項目に応じて適宜設定又は変更されてよい。例えば、優先する項目が最短経路であったと想定する。この場合には、各エッジEgの重みは、グリッパ37を駆動する距離に応じて設定されてよい。また、例えば、優先する項目が、第1ワークW1を第2ワークW2から所定距離だけ離して運搬することであったと想定する。この場合、第1ワークW1の運搬中において、第1ワークW1と第2ワークW2との距離が所定距離以内である相対関係量に対応するノードを経由するエッジEgが優先されず、そうではないノードを経由するエッジEgが優先されるように、各エッジEgの重みが設定されてよい。制御部11は、この重みを利用して、経路探索を行ってもよい。
[0130]
 相対関係量の系列RSを決定すると、制御部11は、次のステップS306に処理を進める。
[0131]
 (ステップS306)
 ステップS306では、制御部11は、行動決定部104として動作し、相対関係量の系列RSの中から、現在の状態の次に遷移する目標の状態における相対関係量を特定する。現在の状態における相対関係量の各相対座標rc1~rc3は、カメラCAから取得された最新の画像データ40から算出される。次に遷移する目標は、例えば、最終目標gnに向かって、現在の状態に最も近い目標である。制御部11は、ステップS305で探索した経路をたどることで、現在の状態の次に遷移する目標の状態における相対関係量を特定することができる。
[0132]
 例えば、ステップS306を最初に実行する段階では、ステップS303で取得された画像データ40が最新であり、この画像データ40から算出された各相対座標rc1~rc3が現在の状態n1における相対関係量p1である。そのため、この段階では、制御部11は、相対関係量の系列RSの中から、目標g1の相対関係量r1を次に遷移する相対関係量として特定する。図10の例では、現在の状態n1における相対関係量p1は、開始のノードNsに対応する。そのため、次に遷移する目標の状態における相対関係量は、開始のノードNsから最終のノードNgの方にエッジEgを一つ経由して到達する(すなわち、開始のノードNsに隣接する)ノードN1に対応する。
[0133]
 次に遷移する目標の状態における相対関係量を特定すると、制御部11は、次のステップS307に処理を進める。
[0134]
 (ステップS307)
 ステップS307では、制御部11は、指令決定部105として動作し、現在の状態における相対関係量を、次に遷移する目標の状態における相対関係量に変化させるように、マニピュレータ3に与える制御指令41を決定する。
[0135]
 本実施形態では、制御部11は、学習済みのニューラルネットワーク51を利用して、制御指令41を決定する。具体的に、制御部11は、学習結果データ127を参照して、学習済みのニューラルネットワーク51の設定を行う。続いて、制御部11は、現在の状態における相対関係量及び次に遷移する目標の状態における相対関係量をニューラルネットワーク51の入力層511に入力する。そして、制御部11は、ニューラルネットワーク51の演算処理として、入力側から順に各層511~513に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、制御指令41を決定した結果に対応する出力値を出力層513から取得する。
[0136]
 なお、ニューラルネットワーク51の出力値の形式は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、ニューラルネットワーク51の出力値は、制御指令41に直接的に対応していてもよい。この場合、制御部11は、ニューラルネットワーク51の出力値をそのまま制御指令41として取り扱うことができる。また、例えば、ニューラルネットワーク51の出力値は、制御指令41を決定するためのインデックス(例えば、クラス)を示してもよい。この場合、制御装置1は、出力値と制御指令とを対応付けたテーブル形式等の参照情報(不図示)を記憶部12に保持していてもよい。制御部11は、この参照情報に基づいて、ニューラルネットワーク51の出力値から制御指令41を決定することができる。制御指令41を決定すると、制御部11は、次のステップS308に処理を進める。
[0137]
 (ステップS308)
 ステップS308では、制御部11は、動作制御部106として動作し、決定された制御指令41をマニピュレータ3に出力する。本実施形態では、制御部11は、制御指令41の出力処理として、制御指令41に基づいて、マニピュレータ3の動作を制御する。
[0138]
 マニピュレータ3の動作を制御する方法は、制御指令41の形式に応じて適宜選択されてよい。例えば、制御指令41は、各関節部31~36の操作量を直接的に示してもよい。各関節部31~36の操作量は、例えば、トルク指令値、電圧指令値等である。この場合、制御部11は、得られた制御指令41をそのまま各関節部31~36のサーボモータに与えることで、マニピュレータ3の動作を制御する。
[0139]
 また、例えば、制御指令41は、各関節部31~36の制御量の目標値を示してもよい。各関節部31~36の制御量は、例えば、各関節部31~36の角度である。この場合、制御部11は、各関節部31~36に内蔵されたエンコーダから各関節部31~36の制御量の計測値(測定データ)を取得する。エンコーダから計測値を取得するタイミングは、マニピュレータ3の動作を制御する直前であれば、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、エンコーダから計測値を取得するタイミングは、上記画像データ40を取得するタイミングと同じであってもよい。次に、制御部11は、制御指令41により示される各関節部31~36の制御量の目標値とエンコーダから取得した計測値との差分(偏差)から各関節部31~36の操作量を算出する。操作量の算出には、PID(Proportional Integral Differential)制御等の従来の制御方法が用いられてよい。そして、制御部11は、算出した各操作量を各関節部31~36のサーボモータに与えることで、マニピュレータ3の動作を制御する。
[0140]
 また、制御指令41は、エンドエフェクタに関するものであってもよい。例えば、制御指令41は、グリッパ37の作業座標系の制御量の目標値を示してもよい。作業座標系の制御量は、例えば、グリッパ37の位置、姿勢等である。この場合、制御部11は、逆運動学に基づいて、制御指令41により示される作業座標系の制御量の目標値から各関節部31~36の関節座標系の制御量の目標値を算出する。以降の処理は、上記の例と同様であってよい。すなわち、制御部11は、各関節部31~36に内蔵されたエンコーダから各関節部31~36の制御量の計測値を取得する。続いて、制御部11は、制御指令41により示される各関節部31~36の制御量の目標値とエンコーダから取得した計測値との差分(偏差)から各関節部31~36の操作量を算出する。そして、制御部11は、算出した各操作量を各関節部31~36のサーボモータに与えることで、マニピュレータ3の動作を制御する。
[0141]
 制御指令41に基づいてマニピュレータ3の動作を制御すると、制御部11は、次のステップS309に処理を進める。
[0142]
 (ステップS309及びステップS310)
 ステップS309及びステップS310は、ステップS303及びステップS304と同様である。ステップS309では、制御部11は、データ取得部102として動作し、カメラCAから画像データ40を取得する。ステップS310では、制御部11は、関係特定部103として動作し、取得された画像データ40に対して、CADデータ121により示される各対象物(グリッパ37、第1ワークW1、及び第2ワークW2)のモデルをマッチングする。制御部11は、このマッチングの結果に基づいて、各対象物の間の相対座標rc1~rc3(相対関係量)を算出する。相対関係量の算出が完了すると、制御部11は、次のステップS311に処理を進める。
[0143]
 (ステップS311)
 ステップS311では、制御部11は、ステップS308による制御の結果、複数の対象物の間の相対関係量がステップS306で特定した目標の状態に遷移したか否かを判定する。
[0144]
 目標の状態に遷移したか否かを判定する方法は、実施の形態に応じて適宜決定されてよい。例えば、制御部11は、ステップS310で算出された相対関係量が、ステップS306で特定した目標の状態における相対関係量と一致するか否かを判定してもよい。この一致は、完全に一致することの他、閾値(許容誤差)による近似を含んでもよい。ステップS310で算出された相対関係量が、ステップS306で特定した目標の状態における相対関係量と一致する場合に、制御部11は、複数の対象物の間の相対関係量が目標の状態に遷移したと判定してもよい。一方、そうではない場合に、制御部11は、複数の対象物の間の相対関係量は目標の状態に遷移していないと判定してもよい。
[0145]
 複数の対象物の間の相対関係量が目標の状態に遷移していないと判定した場合には、制御部11は、ステップS307に処理を戻して、ステップS307~S310の一連の処理を繰り返す。なお、この繰り返しの処理では、ステップS307に戻る前にステップS309で取得された画像データ40が最新である。そのため、この繰り返しの処理では、制御部11は、ステップS307に戻る前にステップS310で算出した相対関係量を現在の状態における相対関係量として取り扱う。一方、複数の対象物の間の相対関係量が目標の状態に遷移していると判定した場合には、制御部11は、次のステップS312に処理を進める。
[0146]
 (ステップS312)
 ステップS312では、制御部11は、最終目標gnの相対関係量rnを実現したか否かを判定する。ステップS306で特定された目標が最終目標gnである場合には、ステップS311の判定の結果から、最終目標gnの相対関係量rnが実現されていることになる。そのため、この場合には、最終目標gnの相対関係量rnを実現したと判定し、制御部11は、マニピュレータ3の動作制御に関する一連の処理を終了する。
[0147]
 ステップS306で特定された目標が最終目標gn以外の目標である場合には、最終目標gnの相対関係量rnはまだ実現されていないことになる。この場合には、制御部11は、ステップS306に処理を戻す。これにより、制御部11は、最終目標gnの相対関係量rnを実現するまで、ステップS306~S311の一連の処理を繰り返し実行する。なお、上記ステップS311と同様に、この繰り返しの処理では、ステップS306に戻る前にステップS309で取得された画像データ40が最新である。そのため、この繰り返しの処理では、制御部11は、ステップS306に戻る前にステップS310で算出した相対関係量を現在の状態における相対関係量として取り扱う。
[0148]
 例えば、ステップS306~S311の一連の処理をs回目に実行する際、ステップS306では、制御部11は、相対関係量の系列RSの中から、最新の画像データ40sから算出された現在の状態nsの次に遷移する目標gsの状態における相対関係量rsを特定する。ステップS307では、制御部11は、現在の状態nsにおける相対関係量psを、次に遷移する目標gsの状態における相対関係量rsに変化させるように、制御指令41sを決定する。そして、ステップS308では、制御部11は、決定された制御指令41sをマニピュレータ3に出力する。最終目標gnの相対関係量rnを実現するまでこの一連の処理が繰り返されることで、マニピュレータ3は、例えば、図2A~図2Fに例示される部品運搬等の作業Tに関する一連の動作を実行するように制御される。
[0149]
 [特徴]
 以上のとおり、本実施形態では、マニピュレータ3の稼働する環境WS下に存在する複数の対象物(グリッパ37、第1ワークW1、第2ワークW2)の現在の状態及び目標が、各相対座標rc1~rc3を含む相対関係量で表現され、制御指令41は、この相対関係量を変化させることに応じて決定される。つまり、本実施形態では、制御指令41は、マニピュレータ3に教示する作業Tそのものに関連付けられるのではなく、相対関係量に変化量に関連付けられる。これにより、作業の内容に依存せずに、相対関係量を変化させることに対してマニピュレータ3に与える時系列の制御指令41を教示することができる。
[0150]
 図11A、図11B及び図12を用いて、この点について詳細に説明する。図11A及び図11Bは、従来の制御方法の問題点を説明するための図である。一方、図12は、本実施形態に係る制御方法の上記の特徴を説明するための図である。各図では、説明の便宜のために、上記図2A~図2Fと同様に、マニピュレータに教示する作業の一例として、グリッパ(37、370)により第1ワークW1を第2ワークW2上に運搬する作業を例示している。
[0151]
 図11Aに示されるとおり、作業を教示する際に、第1ワークW1は台B2の上に配置されており、第2ワークW2は、台B2と同じ高さを有する台B1の上に配置されていたと想定する。この条件の下、従来の方法により、グリッパ370により第1ワークW1を把持させ、把持させた第1ワークW1を第2ワークW2の上空の高さh1付近で水平移動させた後に、グリッパ370を下降させることで、第1ワークW1を第2ワークW2の上に配置する一連の動作をマニピュレータに教示したと想定する。
[0152]
 この作業の教示が完了した後に、例えば、作業を行う場所を変更した等の事情により、第1ワークW1及び第2ワークW2の少なくとも一方の状態が変更されたと想定する。図11Bの例では、第1ワークW1が、台B2よりも高さh2だけ低い台B3に配置された場面を例示している。
[0153]
 従来の方法では、上記の教示により習得された時系列の制御指令は、教示対象の作業そのものに関連付けられている。そのため、マニピュレータは、上記と同様の制御指令により、第1ワークW1を第2ワークW2に運搬するよう試みる。その結果、グリッパ370は、台B3が台B2よりも高さh2だけ低くなっている分だけ、第1ワークW1を把持する位置が変更されてしまう。具体的には、図11Aの場面よりもグリッパ370は第1ワークW1の上端部側を把持し、グリッパ370と第1ワークW1との隙間Vが高さh2の分だけ拡がってしまう。
[0154]
 したがって、高さh2が高さh1よりも大きい場合には、マニピュレータが、グリッパ370に把持させた第1ワークW1を第2ワークW2の上空で水平移動させようと試みた際に、第1ワークW1の下部が第2ワークW2に衝突する不具合が生じてしまう。そのため、従来の方法では、このような小さな変更が生じた際にも、新たに作業の内容を教示させなければ、マニピュレータは、その作業を適切に遂行できなくなる可能性がある。
[0155]
 一方、本実施形態では、図11Aと同様にマニピュレータ3に作業を教示した場合に、習得された制御指令は、作業そのものではなく、相対関係量に変化量に関連付けられる。そのため、上記ステップS305では、第1ワークW1が第2ワークW2の上空の高さh1に配置される目標を含むように、相対関係量の系列RSを決定することができる。そして、ステップS307では、第1ワークW1が第2ワークW2の上空の高さh1に配置される相対関係量を実現するよう制御指令41を決定することができる。したがって、図12に例示されるとおり、第1ワークW1が台2Bよりも高さh2だけ低い台B3に配置されることで、グリッパ37と第1ワークW1との隙間Vが高さh2の分だけ拡がってしまったとしても、第1ワークW1を第2ワークW2の上空の高さh1付近で水平移動させるようにマニピュレータ3の動作を制御することができる。
[0156]
 本実施形態では、このように、作業の内容に依存せずに、相対関係量を変化させることに対してマニピュレータ3に与える時系列の制御指令41を教示することができる。したがって、本実施形態によれば、習得される作業を遂行する能力の汎用性を高めることができる。これによって、マニピュレータ3に作業を教示するのにかかるコストを低減することができる。
[0157]
 §4 変形例
 以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
[0158]
 <4.1>
 上記実施形態では、制御対象のロボット装置として、垂直多関節型のマニピュレータ3を例示している。しかしながら、ロボット装置の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ロボット装置は、例えば、産業用ロボット、自動的に移動可能な移動体等を含んでよい。産業用ロボットは、例えば、上記垂直多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等を含む。また、自動的に移動可能な移動体は、例えば、ドローン、自度運転可能に構成された車両、モバイルロボット等を含む。本発明は、対象物の操作可能なあらゆる種類のロボット装置に適用されてよい。なお、自動的に移動可能な移動体であって、GPS(Global Positioning System)測定器を備える移動体に本発明を適用する場合に、位置に関する相対関係量(例えば、上記相対座標)の特定には、GPS測定器により測定されたGPS情報が用いられてよい。この場合、各対象物に備えられたGPS測定器がセンサの一例であり、各GPS測定器から得られたGPS情報が観察データの一例である。センサ及び観察データは、ロボット装置の種類に応じて適宜選択されてよい。また、上記実施形態では、マニピュレータの備えるエンドエフェクタとして、グリッパ37を例示している。しかしながら、エンドエフェクタの種類は、グリッパに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。エンドエフェクタは、例えば、グリッパ以外に、吸引器、ドライバ等であってもよい。
[0159]
 <4.2>
 上記実施形態では、環境WSに存在する複数の対象物を観察するセンサとして、カメラCAを例示している。センサから取得される観察データとして画像データ40を例示している。また、上記実施形態では、このカメラCAにより取得される画像データ40から相対関係量として各相対座標rc1~rc3を算出している。しかしながら、センサ及び相対関係量の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。観察データは、画像データに限定されなくてよく、採用されるセンサの種類に応じて適宜選択されてよい。
[0160]
 センサは、一般的なカメラ以外に、例えば、深度センサ、ステレオカメラ等であってもよい。また、相対関係量は、相対座標以外に、例えば、複数の対象物の間に作用する力、複数の対象物の間の状態(例えば、連結されているか否か)等であってよい。複数の対象物の間に作用する力を相対関係量として採用する場合に、複数の対象物を観察するセンサとして、例えば、上記力覚センサ38、触覚センサ、圧力センサ、ロードセル等の力を検知可能なセンサが採用されてよい。
[0161]
 なお、上記実施形態では、制御装置1は、カメラCAに接続され、カメラCAから直接的に観察データを取得している。しかしながら、センサから観察データを取得することは、このようなセンサから観察データを直接的に取得することに限られなくてもよく、他の装置を経由してセンサから観察データを間接的に取得することを含んでよい。上記実施形態では、制御装置1は、他の装置を経由してカメラCAから画像データ40を取得してもよい。
[0162]
 <4.3>
 上記実施形態に係る各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、上記実施形態に係る各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
[0163]
 例えば、上記実施形態では、制御部11は、ステップS301により、遂行する作業の指定を受け付けている。しかしながら、遂行する作業を与える方法は、このような例に限定されなくてもよい。例えば、遂行する作業は、予め与えられてもよい。この場合、ステップS301は省略されてもよい。
[0164]
 また、例えば、上記実施形態では、制御部11は、ステップS303及びステップS304により、開始する時点stにおける相対関係量r0を算出している。しかしながら、開始する時点stにおける相対関係量r0を与える方法は、このような例に限定されなくてもよい。例えば、相対関係量r0は、予め与えられてもよいし、シミュレータ等により与えられてもよい。この場合、ステップS303及びステップS304は省略されてもよい。
[0165]
 <4.4>
 上記実施形態では、制御装置1は、ステップS308により、制御指令41に基づいて、マニピュレータ3の動作を制御している。しかしながら、制御指令41の出力処理は、このような例に限定されなくてもよい。例えば、マニピュレータ3がコントローラを備える場合には、制御指令41の出力処理は、制御指令41をコントローラに単に送信することであってもよい。
[0166]
 図13は、本変形例に係る制御装置1Aのソフトウェア構成の一例を模式的に例示する。本変形例は、ソフトウェアモジュールにおいて動作制御部106が出力部106Aに置き換わっている点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置1Aのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置1と同様である。また、コントローラ19は、CPU等のハードウェアプロセッサ及びRAM等のメモリを備え、マニピュレータ3の動作を制御するように適宜構成される。コントローラ19のハードウェア構成は、上記実施形態に係る制御装置1と同様であってよい。
[0167]
 本変形例では、上記ステップS308において、制御装置1Aの制御部11は、出力部106Aとして動作し、決定された制御指令41をコントローラ19に送信する。制御装置1Aは、これ以外のステップは上記実施形態と同様に実行する。一方、制御指令41を受信したコントローラ19のプロセッサは、動作制御部108として動作し、上記実施形態に係るステップS308と同様に処理を実行する。すなわち、コントローラ19のプロセッサは、制御指令41に基づいて、マニピュレータ3の動作を制御する。本変形例では、コントローラ19には従来のコントローラを利用することができる。そのため、本変形例によれば、本発明の導入コストを低減することができる。なお、本変形例では、制御装置1Aを上位コントローラと称し、コントローラ19を下位コントローラと称してもよい。
[0168]
 <4.5>
 上記実施形態では、制御装置1は、制御プログラム81及び学習プログラム82を保持し、制御処理及び学習処理の両方の処理を実行する。しかしながら、各処理を実行するコンピュータは別体であってもよい。特に、学習処理は、別のコンピュータに実行させてもよい。
[0169]
 図14Aは、本変形例に係る学習装置2が適用される場面の一例を模式的に例示する。図14Bは、本変形例に係る学習装置2のハードウェア構成の一例を模式的に例示する。本変形例は、上記ステップS101~S106及びステップS201~S203の処理を学習装置2に実行させる点を除き、上記実施形態と同様である。すなわち、本変形例に係る制御装置1では、学習プログラム82が省略される。制御装置1のソフトウェア構成では、学習プログラム82に関するソフトウェアモジュールが省略される。なお、制御装置1及び学習装置2は、ネットワーク等を介して接続されてもよいし、記憶媒体を介してデータの受け渡しが行われてもよい。
[0170]
 図14Bに示されるとおり、本変形例に係る学習装置2は、制御部21、記憶部22、外部インタフェース23、入力装置24、出力装置25、及びドライブ26が電気的に接続されたコンピュータである。学習装置2の制御部21~ドライブ26はそれぞれ、制御装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。
[0171]
 記憶部22は、学習プログラム82、CADデータ121、マップ情報123、学習データ125、学習結果データ127等の各種情報を記憶する。ドライブ26は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。学習プログラム82、CADデータ121、及び学習データ125の少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、学習装置2は、記憶媒体92から、学習プログラム82、CADデータ121、及び学習データ125の少なくともいずれかを取得してもよい。
[0172]
 学習装置2の制御部21は、記憶部22に記憶された学習プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された学習プログラム82をCPUにより解釈及び実行して、各構成要素を制御する。これによって、本変形例に係る学習装置2は、上記図5Bに示される学習処理に関する制御装置1のソフトウェア構成と同様のソフトウェアモジュールを備えるコンピュータとして動作する。
[0173]
 すなわち、学習装置2の制御部21は、上記ステップS101~S106の処理を実行することで、相対関係量の系列RSを決定する処理(行動計画)に利用するマップ情報123を生成する。また、制御部21は、上記ステップS201~S203の処理を実行することで、相対関係量の変化量に応じて制御指令41を決定する処理に利用する学習済みのニューラルネットワーク51を構築する。
[0174]
 学習装置2は、生成されたマップ情報123及び学習結果データ127をネットワーク、記憶媒体等を介して制御装置1に適宜引き渡す。或いは、本変形例では、学習装置2により生成されたマップ情報123及び学習結果データ127は、制御装置1に予め組み込まれてもよい。
[0175]
 本変形例によれば、制御処理を実行するコンピュータと学習処理を実行するコンピュータとを分離することができる。これにより、各処理の高速化を図ることができる。なお、本変形例では、マップ情報123の作成及び学習済みのニューラルネットワーク51の構築の両方の処理を学習装置2が実行する。しかしながら、これらの処理も別々のコンピュータで実行されてもよい。
[0176]
 <4.6>
 上記実施形態では、学習済みのニューラルネットワーク51が制御指令41を決定する処理に利用されている。しかしながら、制御指令41を決定する処理は、このような例に限定されなくてもよい。制御指令41を決定する処理には、学習済みの学習モデルが利用されなくてもよい。例えば、制御装置1は、制御指令41を決定する処理に、相対関係量の変化量と制御指令との対応関係を示すテーブル形式等の参照情報を利用してもよい。この参照情報は、記憶部12に格納されていてもよい。この場合、上記ステップS307では、制御部11は、当該参照情報に基づいて、制御指令41を決定してもよい。
[0177]
 また、上記実施形態では、学習モデルとしてニューラルネットワークが利用されている。しかしながら、学習モデルは、制御指令を決定するための推論する能力を機械学習により獲得可能であれば、その種類は、ニューラルネットワークに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。機械学習の種類は、教師あり学習に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、機械学習として強化学習が採用されてもよい。この場合、学習モデルは、例えば、状態価値関数、行動価値関数等の価値関数により構成されてよい。
[0178]
 また、上記実施形態では、学習済みのニューラルネットワーク51には、現在の状態における相対関係量及び次に遷移する目標の状態における相対関係量が入力される。しかしながら、学習済みのニューラルネットワーク51に入力される情報は、これらに限定されなくてもよい。例えば、ニューラルネットワーク51は、マニピュレータ3の動作に関連し得るその他の情報の入力を更に受け付けるように構成されてもよい。
[0179]
 図15は、本変形例に係る制御装置1Bのソフトウェア構成の一例を模式的に例示する。本変形例は、マニピュレータ3が観測センサCBを備える点、及びニューラルネットワーク51Bが観測センサCBにより得られる属性データ45を更に受け付けるように構成されている点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置1Bのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置1と同様である。
[0180]
 観測センサCBは、マニピュレータ3の属性を観測するように構成される。この観測センサCBは、マニピュレータ3の何らかの属性を観測可能であれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。観測センサCBは、例えば、近接センサ、触覚センサ、力覚センサ、エンコーダ等であってよい。観測センサCBには、上記力覚センサ38又は各関節部31~36に内蔵されたエンコーダが採用されてもよい。属性データ45は、例えば、近接センサ、触覚センサ、力覚センサ、エンコーダ等の測定データ又は測定データから算出された特徴量であってよい。
[0181]
 ニューラルネットワーク51Bは、観測センサCBにより得られた属性データ45の入力を更に受け付けるように構成される点を除き、上記ニューラルネットワーク51と同様に構成される。例えば、ニューラルネットワーク51Bは、属性データ45の入力を受け付け、受け付けた属性データ45を演算処理に組み込むために、入力層等のニューロンの数が上記ニューラルネットワーク51よりも多くなるように設定される。この点を除き、ニューラルネットワーク51Bは、上記ニューラルネットワーク51と同様に構成されてよい。
[0182]
 このニューラルネットワーク51Bの学習処理は、利用する学習データが属性データ45に対応するデータを訓練データとして含む点を除き、上記実施形態と同様に実行されてよい。具体的には、ステップS201では、制御装置1Bの制御部11は、相対関係量1251、相対関係量1252、及び属性データと制御指令1253との組み合わせによりそれぞれ構成される複数の学習データセットを含む学習データを取得する。各学習データセットは、上記第1の状態(すなわち、訓練用の現在の状態)で得られる属性データを上記各学習データセット1250に追加することで生成することができる。
[0183]
 ステップS202では、制御装置1Bの制御部11は、この学習データを利用して、ニューラルネットワーク51Bの機械学習を実施する。これにより、相対関係量1251、相対関係量1252及び属性データの入力に対して、対応する制御指令1253と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク51Bを構築することができる。ステップS203では、制御装置1Bの制御部11は、構築された学習済みのニューラルネットワーク51Bの構成及び演算パラメータを示す情報を学習結果データ127Bとして生成し、生成した学習結果データ127Bを所定の記憶領域に保存する。
[0184]
 また、本変形例に係る制御処理は、画像データ40と共に属性データ45を繰り返し取得する点、観測センサCBから取得された最新の属性データ45を学習済みのニューラルネットワーク51Bに更に入力する点を除き、上記実施形態と同様に実行されてよい。具体的には、制御装置1Bの制御部11は、ステップS307の処理を実行する前に、データ取得部102Bとして動作し、観測センサCBから属性データ45を更に取得する。
[0185]
 属性データ45を取得する時点は、制御指令により動作を制御する際であり、その制御指令を決定する直前の時点である。属性データ45を取得するタイミングは、例えば、画像データ40を取得するタイミングと同じであってよい。ただし、属性データ45を取得するタイミングと画像データ40を取得するタイミングとは必ずしも完全に一致していなければならない訳ではない。属性データ45を取得するタイミングと画像データ40を取得するタイミングとは異なっていてもよい。
[0186]
 ステップS307では、制御装置1Bの制御部11は、指令決定部105Bとして動作し、観測センサCBにより得られた最新の属性データ45を学習済みのニューラルネットワーク51Bに更に入力する。具体的には、制御部11は、学習結果データ127Bを参照して、学習済みのニューラルネットワーク51Bの設定を行う。続いて、制御部11は、最新の画像データ40から算出された現在の状態における相対関係量、次に遷移する目標の状態における相対関係量、及び最新の属性データ45をニューラルネットワーク51Bに入力し、ニューラルネットワーク51Bの演算処理を実行する。これにより、制御部11は、制御指令41を決定した結果に対応する出力値をニューラルネットワーク51Bから取得する。マニピュレータ3の動作制御に関するその他の処理については、上記実施形態と同様に実行されてよい。
[0187]
 本変形例によれば、属性データ45を更に利用することで、制御指令41を適切に決定することができる。なお、本変形例に係る制御装置1Bの別形態として、上記変形例<4.5>と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。また、上記「センサから観察データを取得すること」と同様に、観測センサCBから属性データ45を取得することは、制御装置1Bと観測センサCBとが接続され、観測センサCBから属性データ45を直接的に取得すること、及び他の装置を経由して観測センサCBから属性データ45を間接的に取得することを含んでよい。
[0188]
 また、上記実施形態では、ニューラルネットワーク51は、3層構造を有する全結合型のニューラルネットワークである。しかしながら、ニューラルネットワーク51の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、ニューラルネットワーク51は、LSTMブロック等の再帰型の構造を有してもよい。
[0189]
 図16は、本変形例に係る制御装置1Cのソフトウェア構成の一例を模式的に例示する。本変形例は、ニューラルネットワーク51Cの構成が上記実施形態に係るニューラルネットワーク51と異なる点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置1Cのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置1と同様である。
[0190]
 本変形例に係るニューラルネットワーク51Cは、上記ニューラルネットワーク51の中間層512をLSTMブロック515に置き換えた構成を有している。LSTMブロック515は、入力ゲート及び出力ゲートを備え、情報の記憶及び出力のタイミングを学習可能に構成されたブロックである(S.Hochreiter and J.Schmidhuber, "Long short-term memory" Neural Computation, 9(8):1735-1780, November 15, 1997)。LSTMブロック515は、情報の忘却のタイミングを調節する忘却ゲートを更に備えてもよい(Felix A. Gers, Jurgen Schmidhuber and Fred Cummins, "Learning to Forget: Continual Prediction with LSTM" Neural Computation, pages 2451-2471, October 2000)。LSTMブロック515の構成は、実施の形態に応じて適宜設定されてよい。
[0191]
 本変形例に係る学習処理及び制御処理は、ニューラルネットワーク51Cの構成が上記実施形態とは異なる点を除き、上記実施形態と同様に実行されてよい。すなわち、制御装置1Cの制御部11は、上記ステップS201~S203の処理を実行することで、学習済みのニューラルネットワーク51Cを構築し、学習結果データ127Cを所定の記憶領域に保存する。また、制御装置1Cの制御部11は、指令決定部105Cとして動作し、学習結果データ127Cを参照して、学習済みのニューラルネットワーク51Cの設定を行う。続いて、制御部11は、最新の画像データ40から算出された現在の状態における相対関係量及び次に遷移する目標の状態における相対関係量をニューラルネットワーク51Cに入力し、ニューラルネットワーク51Cの演算処理を実行する。これにより、制御部11は、制御指令41を決定した結果に対応する出力値をニューラルネットワーク51Cから取得する。マニピュレータ3の動作制御に関するその他の処理については、上記実施形態と同様に実行されてよい。
[0192]
 本変形例によれば、再帰型の構成を有するニューラルネットワーク51Cを利用することで、相対関係量の時系列の文脈を考慮して、制御指令41を適切に決定することができる。なお、本変形例に係る制御装置1Cの別形態として、上記変形例<4.5>と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。
[0193]
 <4.7>
 上記実施形態では、制御装置1は、マップ情報123を利用して、開始する時点stから最終目標gnまでの相対関係量の系列RSを決定している。しかしながら、相対関係量の系列RSを決定する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、上記実施形態に係る制御指令41の決定処理と同様に、相対関係量の系列RSの決定処理にも学習済みの学習モデルが利用されてもよい。
[0194]
 図17A及び図17Bはそれぞれ、本変形例に係る制御装置1Dの制御処理及び学習処理それぞれに関するソフトウェア構成の一例を模式的に例示する。本変形例は、相対関係量の系列RSを決定する処理に学習済みのニューラルネットワーク52を用いる点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置1Dのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置1と同様である。
[0195]
 図17Aに示されるとおり、本変形例に係る行動決定部104Dは、学習結果データ128を保持することで、学習済みのニューラルネットワーク52を含んでいる。学習結果データ128は、記憶部12に格納されていてもよい。それぞれを区別するため、学習結果データ127を第1学習結果データと称し、学習結果データ128を第2学習結果データと称してもよい。
[0196]
 一方、図17Bに示されるとおり、制御装置1Dは、ニューラルネットワーク52の学習処理に関して、学習データ取得部181、学習処理部182、及び保存処理部183をソフトウェアモジュールとして更に備えるコンピュータとして動作する。それぞれを区別するために、学習データ取得部114、学習処理部115、及び保存処理部116それぞれを第1学習データ取得部、第1学習処理部、及び第1保存処理部と称し、学習データ取得部181、学習処理部182、及び保存処理部183それぞれを第2学習データ取得部、第2学習処理部、及び第2保存処理部と称してもよい。
[0197]
 学習済みのニューラルネットワーク52は、本発明の「第2の学習済みの学習モデル」の一例である。学習済みのニューラルネットワーク52は、訓練用の最終目標における相対関係量及び訓練用の現在の状態における相対関係量の入力に対して、訓練用の現在の状態の次に遷移する目標の状態における相対関係量を決定するように訓練される。本変形例に係るニューラルネットワーク52は、入力側から順に、入力層521、LSTMブロック522、及び出力層523を備える。このニューラルネットワーク52の構成は、上記変形例に係るニューラルネットワーク51Cと同様である。
[0198]
 このニューラルネットワーク52の学習処理は、上記ニューラルネットワーク51の学習処理と同様に実行されてよい。すなわち、第1のステップでは、制御装置1Dの制御部11は、学習データ取得部181として動作し、ニューラルネットワーク52の機械学習に利用する学習データ171を取得する。本変形例では、学習データ171は、訓練用の現在の状態における相対関係量1711及び訓練用の最終目標の状態における相対関係量1712と訓練用の現在の状態の次に遷移する目標における相対関係量1713との組み合わせによりそれぞれ構成される複数の学習データセット1710を含む。相対関係量1711及び相対関係量1712は訓練データ(入力データ)として利用され、相対関係量1713は教師データ(正解データ)として利用される。
[0199]
 各学習データセット1710を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。上記実施形態と同様に、例えば、シミュレータによる仮想環境又は実環境を用意し、用意した環境下で、作業の遂行を開始する時点から最終目標まで様々な条件でマニピュレータ3を適宜駆動する。そして、得られる現在の状態における相対関係量1711及び最終目標の状態における相対関係量1712と現在の状態の次に遷移する目標における相対関係量1713とを組み合わせる。これにより、各学習データセット1710を生成することができる。
[0200]
 各学習データセット1710の生成には、上記マップ情報123が利用されてよい。各学習データセット1710は、コンピュータの動作により自動的に生成されてもよいし、入力装置14を介したオペレータの操作により手動的に生成されてもよい。また、各学習データセット1710の生成は、制御装置1Dにより行われてもよいし、制御装置1D以外の他のコンピュータにより行われてもよい。これらの点については、上記実施形態と同様である。
[0201]
 第2のステップでは、制御部11は、学習処理部182として動作し、学習データ171を利用して、ニューラルネットワーク52の機械学習を実施する。これにより、訓練用の現在の状態における相対関係量1711及び訓練用の最終目標の状態における相対関係量1722の入力に対して、対応する次に遷移する目標とする状態における相対関係量1713と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク52を構築することができる。
[0202]
 第3のステップでは、制御部11は、保存処理部183として動作し、構築された学習済みのニューラルネットワーク52の構成及び演算パラメータを示す情報を学習結果データ128として生成し、生成した学習結果データ128を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。以上により、制御部11は、学習済みのニューラルネットワーク52の構築に関する一連の処理を終了する。
[0203]
 また、本変形例に係る制御処理は、相対関係量の系列RSを一度に決定するのではなく、学習済みのニューラルネットワーク52を利用して系列RSに含まれる相対関係量を順次決定する点を除き、上記実施形態と同様に実行されてよい。具体的には、制御装置1Dの制御部11は、上記ステップS305及びステップS306に代えて、行動決定部104Dとして動作し、学習済みのニューラルネットワーク52を利用して、相対関係量の系列RSに含まれる次に遷移する目標の状態における相対関係量を決定する(以下、本ステップを「代替ステップ」とも称する)。
[0204]
 すなわち、制御装置1Dの制御部11は、学習結果データ128を参照して、学習済みのニューラルネットワーク52の設定を行う。続いて、制御部11は、最新の画像データ40から算出された現在の状態における相対関係量及び最終目標gnの相対関係量rnを学習済みのニューラルネットワーク52に入力し、学習済みのニューラルネットワーク52の演算処理を実行する。これにより、制御部11は、次に遷移する目標の状態における相対関係量を決定した結果に対応する出力値をニューラルネットワーク52から取得する。そして、制御部11は、ステップS307以降の処理を実行する。
[0205]
 本変形例では、制御部11は、本代替ステップ及びステップS307~S311の処理を繰り返すことで、相対関係量の系列RSを決定する。図17Aの例では、この繰り返しのs回目の処理として、最新の画像データ40sから算出された現在の状態nsにおける相対関係量ps及び最終目標gnの相対関係量rnから次の目標gsの相対関係量rsを導出する場面が例示されている。マニピュレータ3の動作制御に関するその他の処理については、上記実施形態と同様に実行されてよい。
[0206]
 本変形例によれば、学習済みの学習モデルを利用することで、開始時点から最終目標までに目標とする状態を決定する精度を高めることができる。なお、本変形例に係る制御装置1Dの別形態として、上記変形例<4.5>と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。各学習処理を実行するコンピュータも別体であってよい。
[0207]
 上記変形例では、次に遷移する目標の状態における相対関係量を決定するための推論する能力を習得させる学習モデルとしてニューラルネットワークが利用されている。しかしながら、学習モデルは、当該推論の能力を機械学習により獲得可能であれば、その種類は、ニューラルネットワークに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。機械学習の種類は、教師あり学習に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
[0208]
 また、上記変形例では、ニューラルネットワーク52は、LSTMブロック522を含む再帰型のニューラルネットワークである。これにより、ニューラルネットワーク52は、相対関係量の時系列の文脈を考慮して、次に遷移する目標の相対関係量を適切に決定することができる。ただし、ニューラルネットワーク52の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、ニューラルネットワーク52には、上記実施形態に係るニューラルネットワーク51と同様に、多層構造を有する全結合型のニューラルネットワークが用いられてよい。
[0209]
 また、上記変形例では、学習済みのニューラルネットワーク52には、現在の状態のおける相対関係量及び最終目標の状態における相対関係量が入力される。しかしながら、学習済みのニューラルネットワーク52に入力される情報は、これらに限定されなくてもよい。例えば、ニューラルネットワーク52は、センサから取得される観察データの入力を更に受け付けるように構成されてもよい。
[0210]
 図18は、本変形例に係る制御装置1Eのソフトウェア構成の一例を模式的に例示する。本変形例は、ニューラルネットワーク52Eが最新の画像データ40を更に受け付けるように構成されている点を除き、上記図17A及び図17Bの変形例と同様である。つまり、この点を除き、制御装置1Eのハードウェア構成及びソフトウェア構成は、上記変形例に係る制御装置1Dと同様である。
[0211]
 ニューラルネットワーク52Eは、カメラCAにより得られた最新の画像データ40の入力を更に受け付けるように構成される点を除き、上記ニューラルネットワーク52と同様に構成される。例えば、ニューラルネットワーク52Eは、画像データ40の入力を受け付け、受け付けた画像データ40を演算処理に組み込むために、入力層等のニューロンの数が上記ニューラルネットワーク52よりも多くなるように設定される。この点を除き、ニューラルネットワーク52Eは、上記ニューラルネットワーク52と同様に構成されてよい。
[0212]
 このニューラルネットワーク52Eの学習処理は、利用する学習データが画像データ40に対応するデータを訓練データとして含む点を除き、上記変形例と同様に実行されてよい。具体的には、第1のステップでは、制御装置1Eの制御部11は、訓練用の現在の状態における相対関係量1711、訓練用の最終目標の状態における相対関係量1712及び画像データと次に遷移する目標の状態における相対関係量1713との組み合わせによりそれぞれ構成される複数の学習データセットを含む学習データを取得する。各学習データセットは、訓練用の現在の状態で得られる画像データを上記各学習データセット1710に追加することで生成することができる。
[0213]
 第2のステップでは、制御装置1Eの制御部11は、この学習データを利用して、ニューラルネットワーク52Eの機械学習を実施する。これにより、相対関係量1711、相対関係量1712及び画像データの入力に対して、対応する相対関係量1713と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク52Eを構築することができる。第3のステップでは、制御装置1Eの制御部11は、構築された学習済みのニューラルネットワーク52Eの構成及び演算パラメータを示す情報を学習結果データ128Eとして生成し、生成した学習結果データ128Eを所定の記憶領域に保存する。
[0214]
 また、本変形例に係る制御処理は、カメラCAから取得された最新の画像データ40を学習済みのニューラルネットワーク52Eに更に入力する点を除き、上記変形例と同様に実行されてよい。具体的には、代替ステップでは、制御装置1Eの制御部11は、行動決定部104Eとして動作し、学習結果データ128Eを参照して、学習済みのニューラルネットワーク52Eの設定を行う。続いて、制御部11は、最新の画像データ40、最新の画像データ40から算出された現在の状態における相対関係量及び最終目標gnの相対関係量rnを学習済みのニューラルネットワーク52Eに入力し、学習済みのニューラルネットワーク52Eの演算処理を実行する。これにより、制御部11は、次に遷移する目標の状態における相対関係量を決定した結果に対応する出力値をニューラルネットワーク52Eから取得する。マニピュレータ3の動作制御に関するその他の処理については、上記変形例と同様に実行されてよい。
[0215]
 本変形例によれば、画像データ40を更に利用することで、開始時点から最終目標までに目標とする状態を決定する精度を更に高めることができる。なお、本変形例に係る制御装置1Eの別形態として、上記変形例<4.5>と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。各学習処理を実行するコンピュータも別体であってよい。
[0216]
 <4.8>
 上記実施形態では、制御装置1は、画像データ40に対して各対象物のモデルをマッチングすることで、各対象物の間の相対関係量を算出している。しかしながら、観察データから相対関係量を算出する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、上記実施形態に係る制御指令41の決定処理と同様に、観察データから相対関係量を算出する処理にも学習済みの学習モデルが利用されてもよい。
[0217]
 図19A及び図19Bはそれぞれ、本変形例に係る制御装置1Fの制御処理及び学習処理それぞれに関するソフトウェア構成の一例を模式的に例示する。本変形例は、相対関係量を算出する処理に学習済みのニューラルネットワーク53を用いる点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置1Fのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置1と同様である。
[0218]
 図19Aに示されるとおり、本変形例に係る関係特定部Fは、学習結果データ129を保持することで、学習済みのニューラルネットワーク53を含んでいる。学習結果データ129は、記憶部12に格納されていてもよい。上記各学習結果データ(127、128)と区別するために、学習結果データ129を第3学習結果データと称してもよい。
[0219]
 一方、図19Bに示されるとおり、制御装置1Fは、ニューラルネットワーク53の学習処理に関して、学習データ取得部185、学習処理部186、及び保存処理部187をソフトウェアモジュールとして更に備えるコンピュータとして動作する。上記学習データ取得部114、学習処理部115、保存処理部116等と区別するために、学習データ取得部185、学習処理部186、及び保存処理部187それぞれを第3学習データ取得部、第3学習処理部、及び第3保存処理部と称してもよい。
[0220]
 学習済みのニューラルネットワーク53は、本発明の「第3の学習済みの学習モデル」の一例である。学習済みのニューラルネットワーク53は、訓練用の画像データの入力に対して、訓練用の画像データに現れる複数の対象物の間の相対関係量を算出するように訓練される。本変形例に係るニューラルネットワーク53は、入力側から順に、入力層531、中間(隠れ)層532、及び出力層533を備える。このニューラルネットワーク53の構成は、上記実施形態に係るニューラルネットワーク51と同様である。
[0221]
 このニューラルネットワーク53の学習処理は、上記ニューラルネットワーク51の学習処理と同様に実行されてよい。すなわち、第1のステップでは、制御装置1Fの制御部11は、学習データ取得部185として動作し、ニューラルネットワーク53の機械学習に利用する学習データ175を取得する。本変形例では、学習データ175は、各対象物のモデルを含むCADデータ1751及び訓練用の画像データ1752と相対関係量1753との組み合わせによりそれぞれ構成される複数の学習データセット1750を含む。CADデータ1751及び画像データ1752は訓練データ(入力データ)として利用され、相対関係量1753は教師データ(正解データ)として利用される。
[0222]
 各学習データセット1750を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、CADデータ1751は、公知のソフトウェアにより生成されてよい。また、カメラを用意し、用意したカメラにより複数の対象物を様々な条件で撮影することで、画像データ1752を得ることができる。更に、複数の対象物の相対関係量1753を適宜測定する。相対関係量1753は、画像データ1752から算出されてもよい。そして、得られたCADデータ1751及び画像データ1752と相対関係量1753とを関連付けることで、各学習データセット1750を生成することができる。
[0223]
 各学習データセット1750は、コンピュータの動作により自動的に生成されてもよいし、入力装置14を介したオペレータの操作により手動的に生成されてもよい。また、各学習データセット1750の生成は、制御装置1Fにより行われてもよいし、制御装置1F以外の他のコンピュータにより行われてもよい。これらの点については、上記実施形態と同様である。
[0224]
 第2のステップでは、制御部11は、学習処理部186として動作し、学習データ175を利用して、ニューラルネットワーク53の機械学習を実施する。これにより、CADデータ1751及び訓練用の画像データ1752の入力に対して、対応する相対関係量1753と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク53を構築することができる。
[0225]
 第3のステップでは、制御部11は、保存処理部187として動作し、構築された学習済みのニューラルネットワーク53の構築及び演算パラメータを示す情報を学習結果データ129として生成し、生成した学習結果データ129を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。以上により、制御装置1Fの制御部11は、学習済みのニューラルネットワーク53の構築に関する一連の処理を終了する。
[0226]
 また、本変形例に係る制御処理は、学習済みのニューラルネットワーク53を相対関係量の算出に利用する点を除き、上記実施形態と同様に実行されてよい。具体的には、ステップS304及びS310それぞれでは、制御装置1Fの制御部11は、関係特定部103Fとして動作し、学習済みのニューラルネットワーク53を利用して、カメラCAより得られた最新の画像データ40から現在の状態における相対関係量を算出する。
[0227]
 すなわち、制御装置1Fの制御部11は、学習結果データ129を参照して、学習済みのニューラルネットワーク53の設定を行う。続いて、制御部11は、最新の画像データ40及びCADデータ121を学習済みのニューラルネットワーク53に入力し、学習済みのニューラルネットワーク53の演算処理を実行する。これにより、制御部11は、現在の状態における相対関係量を算出した結果に対応する出力値をニューラルネットワーク53から取得する。図19Aでは、繰り返しのs回目の処理として、最新の画像データ40s及びCADデータ121から現在の状態nsにおける相対関係量psを算出する場面が例示されている。マニピュレータ3の動作制御に関するその他の処理については、上記実施形態と同様に実行されてよい。
[0228]
 本変形例によれば、学習済みの学習モデルを利用することで、相対関係量を算出する精度を高めることができる。なお、本変形例に係る制御装置1Fの別形態として、上記変形例<4.5>と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。各学習処理を実行するコンピュータも別体であってよい。
[0229]
 上記変形例では、相対関係量を算出する能力を習得させる学習モデルとしてニューラルネットワークが利用されている。しかしながら、学習モデルは、当該能力を機械学習により獲得可能であれば、その種類は、ニューラルネットワークに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。機械学習の種類は、教師あり学習に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
[0230]
 また、上記変形例では、ニューラルネットワーク53は、3層構造を有する全結合型のニューラルネットワークである。しかしながら、ニューラルネットワーク53の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、ニューラルネットワーク53は、LSTMブロック等の再帰型の構造を有してもよい。
[0231]
 また、上記変形例では、学習済みのニューラルネットワーク53には、最新の画像データ40及びCADデータ121が入力される。しかしながら、学習済みのニューラルネットワーク53に入力される情報は、これらに限定されなくてもよい。例えば、学習済みのニューラルネットワーク53に入力される情報からCADデータ121は省略されてよい。この場合、学習データ175からCADデータ1751は省略される。また、例えば、ニューラルネットワーク53は、マニピュレータ3の動作に関連し得るその他の情報の入力を更に受け付けるように構成されてもよい。
[0232]
 図20は、本変形例に係る制御装置1Gのソフトウェア構成の一例を模式的に例示する。本変形例は、マニピュレータ3が観測センサCBを備える点、及びニューラルネットワーク53Gが観測センサCBにより得られる属性データ45を更に受け付けるように構成されている点を除き、上記図19A及び図19Bの変形例と同様である。つまり、この点を除き、制御装置1Gのハードウェア構成及びソフトウェア構成は、上記変形例に係る制御装置1Fと同様である。また、観測センサCB及び属性データ45については上記制御装置1Bの変形例と同様である。
[0233]
 ニューラルネットワーク53Gは、観測センサCBにより得られた属性データ45の入力を更に受け付けるように構成される点を除き、上記ニューラルネットワーク53と同様に構成される。例えば、ニューラルネットワーク53Gは、属性データ45の入力を受け付け、受け付けた属性データ45を演算処理に組み込むために、入力層等のニューロンの数が上記ニューラルネットワーク53よりも多くなるように設定される。この点を除き、ニューラルネットワーク53Gは、上記ニューラルネットワーク53と同様に構成されてよい。
[0234]
 このニューラルネットワーク53Gの学習処理は、利用する学習データが属性データ45に対応するデータを訓練データとして含む点を除き、上記変形例と同様に実行されてよい。具体的には、第1のステップでは、制御装置1Gの制御部11は、CADデータ1751、訓練用の画像データ1752及び属性データと相対関係量1753との組み合わせによりそれぞれ構成される複数の学習データセットを含む学習データを取得する。観測センサを用意し、画像データ1752を得た際に観測センサにより属性データを取得する。各学習データセットは、得られた属性データを上記各学習データセット1750に追加することで生成することができる。
[0235]
 第2のステップでは、制御装置1Gの制御部11は、この学習データを利用して、ニューラルネットワーク53Gの機械学習を実施する。これにより、CADデータ1751、訓練用の画像データ1752及び属性データの入力に対して、対応する相対関係量1753と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク53Gを構築することができる。第3のステップでは、制御装置1Gの制御部11は、構築された学習済みのニューラルネットワーク53Gの構成及び演算パラメータを示す情報を学習結果データ129Gとして生成し、生成した学習結果データ129Gを所定の記憶領域に保存する。
[0236]
 また、本変形例に係る制御処理は、画像データ40と共に属性データ45を繰り返し取得する点、観測センサCBから取得された最新の属性データ45を学習済みのニューラルネットワーク53Gに更に入力する点を除き、上記変形例と同様に実行されてよい。具体的には、制御装置1Gの制御部11は、ステップS304及びS310それぞれの処理を実行する前に、データ取得部102Gとして動作し、観測センサCBから属性データ45を更に取得する。属性データ45を取得するタイミングについては、上記制御装置1Bの変形例と同様であってよい。
[0237]
 ステップS304及びS310それぞれでは、制御装置1Gの制御部11は、関係特定部103Gとして動作し、観測センサCBにより得られた最新の属性データ45を学習済みのニューラルネットワーク53Gに更に入力する。具体的には、制御装置1Gの制御部11は、学習結果データ129Gを参照して、学習済みのニューラルネットワーク53Gの設定を行う。続いて、制御部11は、最新の画像データ40、CADデータ121、及び最新の属性データ45を学習済みのニューラルネットワーク53Gに入力し、学習済みのニューラルネットワーク53Gの演算処理を実行する。これにより、制御部11は、現在の状態における相対関係量を算出した結果に対応する出力値をニューラルネットワーク53Gから取得する。マニピュレータ3の動作制御に関するその他の処理については、上記変形例と同様に実行されてよい。
[0238]
 本変形例によれば、属性データ45を更に利用することで、相対関係量を算出する精度を更に高めることができる。なお、本変形例に係る制御装置1Gの別形態として、上記変形例<4.5>と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。各学習処理を実行するコンピュータも別体であってよい。

符号の説明

[0239]
 1…制御装置、
 11…制御部、12…記憶部、13…外部インタフェース、
 14…入力装置、15…出力装置、16…ドライブ、
 101…目標設定部、102…データ取得部、
 103…関係特定部、104…行動決定部、
 105…指令決定部、106…動作制御部、
 111…環境情報取得部、112…マップ作成部、
 113…マップ保存処理部、114…学習データ取得部、
 115…学習処理部、116…保存処理部、
 121…CADデータ、123…マップ情報、
 125…学習データ、127…学習結果データ、
 81…制御プログラム、82…学習プログラム、
 91…記憶媒体、
 3…マニピュレータ(ロボット装置)、
 30…台座部、
 31~36…関節部、37…グリッパ(エンドエフェクタ)、
 38…力覚センサ、391~394…リンク、
 CA…カメラ(センサ)、
 40…画像データ(観察データ)、41…制御指令、
 51…ニューラルネットワーク(学習モデル)、
 511…入力層、512…中間(隠れ)層、513…出力層、
 WS…環境、W1…第1ワーク、W2…第2ワーク、
 CO1~CO3…ローカル座標系、
 rc1~rc3…相対座標(相対関係量)

請求の範囲

[請求項1]
 複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成する制御装置であって、
 最終目標となる前記複数の対象物の間の相対関係量を設定する目標設定部であって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、目標設定部と、
 前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するデータ取得部と、
 取得された前記観察データから、前記複数の対象物の間の相対関係量を算出する関係特定部と、
 前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定する行動決定部と、
 前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定する指令決定部と、
 決定された前記制御指令を前記ロボット装置に出力する出力部と、
を備える、
制御装置。
[請求項2]
 前記相対関係量は、前記複数の対象物の間の相対座標を含む、
請求項1に記載の制御装置。
[請求項3]
 前記センサは、カメラを含み、
 前記観察データは、前記カメラにより得られる画像データを含み、
 前記関係特定部は、前記カメラにより得られた前記画像データに対して前記各対象物のモデルをマッチングし、当該マッチングの結果に基づいて、前記複数の対象物の間の相対座標を算出する、
請求項2に記載の制御装置。
[請求項4]
 前記指令決定部は、第1の状態における相対関係量及び第2の状態における相対関係量の入力に対して、前記第1の状態における相対関係量を前記第2の状態における相対関係量に変化させるように前記ロボット装置の動作を制御するための制御指令を決定するように訓練された第1の学習済みの学習モデルを含み、
 前記制御指令を決定することは、
  前記現在の状態における前記相対関係量及び前記次に遷移する目標の状態における前記相対関係量を前記第1の学習済みの学習モデルに入力すること、
  前記第1の学習済みの学習モデルの演算処理を実行すること、及び
  前記第1の学習済みの学習モデルから出力される出力値を、前記制御指令を決定した結果として取得すること、
を含む、
請求項1から3のいずれか1項に記載の制御装置。
[請求項5]
 前記ロボット装置は、前記ロボット装置の属性を観測する観測センサを備え、
 前記第1の学習済みの学習モデルは、前記観測センサにより得られる属性データの入力を更に受け付けるように構成され、
 前記制御指令を決定することは、前記観測センサにより得られた前記属性データを前記第1の学習済みの学習モデルに更に入力すること、を含む、
請求項4に記載の制御装置。
[請求項6]
 前記行動決定部は、前記複数の対象物の間の相対関係量の集合を表現する配置空間であって、前記目標とする状態の候補となる状態における相対関係量にそれぞれ対応する複数のノードが配置された配置空間を示すマップ情報を保持し、
 前記相対関係量の系列を決定することは、
  前記マップ情報により示される前記配置空間において、前記複数のノードのうちから経由するノードを選択することで、前記開始する時点の状態における相対関係量に対応するノードから前記最終目標の状態における相対関係量に対応するノードまでの経路を探索すること、及び
  探索された前記経路に含まれるノードに対応する相対関係量により前記相対関係量の系列を生成すること、
を含む、
請求項1から5のいずれか1項に記載の制御装置。
[請求項7]
 前記行動決定部は、訓練用の最終目標における相対関係量及び訓練用の現在の状態における相対関係量の入力に対して、当該訓練用の現在の状態の次に遷移する目標の状態における相対関係量を決定するように訓練された第2の学習済みの学習モデルを含み、
 前記相対関係量の系列を決定することは、
  前記現在の状態における前記相対関係量及び設定された前記最終目標の前記相対関係量を前記第2の学習済みの学習モデルに入力すること、
  前記第2の学習済みの学習モデルの演算処理を実行すること、及び
  前記第2の学習済みの学習モデルから出力される出力値を、前記次に遷移する目標の状態における前記相対関係量を決定した結果として取得すること、
を繰り返し実行することを含む、
請求項1から5のいずれか1項に記載の制御装置。
[請求項8]
 前記第2の学習済みの学習モデルは、前記センサから取得される前記観察データの入力を更に受け付けるように構成され、
 前記相対関係量の系列を決定することは、前記最新の観察データを前記第2の学習済みの学習モデルに更に入力すること、を含む、
請求項7に記載の制御装置。
[請求項9]
 前記関係特定部は、訓練用の観察データの入力に対して、当該訓練用の観察データに現れる前記複数の対象物の間の相対関係量を算出するように訓練された第3の学習済みの学習モデルを含み、
 前記相対関係量を算出することは、
  取得された前記観察データを前記第3の学習済みの学習モデルに入力すること、
  前記第3の学習済みの学習モデルの演算処理を実行すること、及び
  前記第3の学習済みの学習モデルから出力される出力値を、前記相対関係量を算出した結果として取得すること、
を含む、
請求項1から8のいずれか1項に記載の制御装置。
[請求項10]
 前記ロボット装置は、前記ロボット装置の属性を観測する観測センサを備え、
 前記第3の学習済みの学習モデルは、前記観測センサにより得られる属性データの入力を更に受け付けるように構成され、
 前記相対関係量を算出することは、前記観測センサにより得られた前記属性データを前記第3の学習済みの学習モデルに更に入力すること、を含む、
請求項9に記載の制御装置。
[請求項11]
 前記ロボット装置は、エンドエフェクタを備えるマニピュレータであり、
 前記複数の対象物は、前記エンドエフェクタを含み、
 前記指令決定部は、前記エンドエフェクタに関する制御指令を決定し、
 前記出力部は、決定された制御指令を前記マニピュレータに出力する、
請求項1から10のいずれか1項に記載の制御装置。
[請求項12]
 複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成する制御方法であって、
 コンピュータが、
 最終目標となる前記複数の対象物の間の相対関係量を設定するステップであって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、ステップと、
 前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するステップと、
 取得された前記観察データから、前記複数の対象物の間の相対関係量を算出するステップと、
 前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定するステップと、
 前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定するステップと、
 決定された前記制御指令を前記ロボット装置に出力するステップと、
を実行する、
制御方法。
[請求項13]
 複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成するための制御プログラムであって、
 コンピュータに、
 最終目標となる前記複数の対象物の間の相対関係量を設定するステップであって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、ステップと、
 前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するステップと、
 取得された前記観察データから、前記複数の対象物の間の相対関係量を算出するステップと、
 前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定するステップと、
 前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、
当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定するステップと、
 決定された前記制御指令を前記ロボット装置に出力するステップと、
を実行させるための、
制御プログラム。

図面

[ 図 1]

[ 図 2A]

[ 図 2B]

[ 図 2C]

[ 図 2D]

[ 図 2E]

[ 図 2F]

[ 図 3]

[ 図 4]

[ 図 5A]

[ 図 5B]

[ 図 6]

[ 図 7A]

[ 図 7B]

[ 図 7C]

[ 図 8]

[ 図 9A]

[ 図 9B]

[ 図 10]

[ 図 11A]

[ 図 11B]

[ 図 12]

[ 図 13]

[ 図 14A]

[ 図 14B]

[ 図 15]

[ 図 16]

[ 図 17A]

[ 図 17B]

[ 図 18]

[ 図 19A]

[ 図 19B]

[ 図 20]