(57)【要約】【課題】習得される作業を遂行する能力の汎用性を高めるための技術を提供する。【解決手段】本発明の一側面に係る制御装置は、最終目標となる複数の対象物の間の相対関係量を設定する。また、制御装置は、センサから観察データを繰り返し取得し、取得された観察データから、環境に存在する複数の対象物の間の相対関係量を算出する。更に、制御装置は、動作の制御を開始する時点における相対関係量から最終目標の相対関係量を実現するまでの、目標とする状態における相対関係量の系列を決定し、最終目標の相対関係量を実現するまで、最新の観察データから算出された現在の状態における相対関係量を次に遷移する目標の状態における相対関係量に変化させるように制御指令を繰り返し決定する。そして、制御装置は、決定された制御指令をロボット装置に出力する。【選択図】図１
2020082332.tif 000002
【特許請求の範囲】
【請求項１】
複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成する制御装置であって、
最終目標となる前記複数の対象物の間の相対関係量を設定する目標設定部であって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、目標設定部と、
前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するデータ取得部と、
取得された前記観察データから、前記複数の対象物の間の相対関係量を算出する関係特定部と、
前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定する行動決定部と、
前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定する指令決定部と、
決定された前記制御指令を前記ロボット装置に出力する出力部と、
を備える、
制御装置。
【請求項２】
前記相対関係量は、前記複数の対象物の間の相対座標を含む、
請求項１に記載の制御装置。
【請求項３】
前記センサは、カメラを含み、
前記観察データは、前記カメラにより得られる画像データを含み、
前記関係特定部は、前記カメラにより得られた前記画像データに対して前記各対象物のモデルをマッチングし、当該マッチングの結果に基づいて、前記複数の対象物の間の相対座標を算出する、
請求項２に記載の制御装置。
【請求項４】
前記指令決定部は、第１の状態における相対関係量及び第２の状態における相対関係量の入力に対して、前記第１の状態における相対関係量を前記第２の状態における相対関係量に変化させるように前記ロボット装置の動作を制御するための制御指令を決定するように訓練された第１の学習済みの学習モデルを含み、
前記制御指令を決定することは、
前記現在の状態における前記相対関係量及び前記次に遷移する目標の状態における前記相対関係量を前記第１の学習済みの学習モデルに入力すること、
前記第１の学習済みの学習モデルの演算処理を実行すること、及び
前記第１の学習済みの学習モデルから出力される出力値を、前記制御指令を決定した結果として取得すること、
を含む、
請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
前記ロボット装置は、前記ロボット装置の属性を観測する観測センサを備え、
前記第１の学習済みの学習モデルは、前記観測センサにより得られる属性データの入力を更に受け付けるように構成され、
前記制御指令を決定することは、前記観測センサにより得られた前記属性データを前記第１の学習済みの学習モデルに更に入力すること、を含む、
請求項４に記載の制御装置。
【請求項６】
前記行動決定部は、前記複数の対象物の間の相対関係量の集合を表現する配置空間であって、前記目標とする状態の候補となる状態における相対関係量にそれぞれ対応する複数のノードが配置された配置空間を示すマップ情報を保持し、
前記相対関係量の系列を決定することは、
前記マップ情報により示される前記配置空間において、前記複数のノードのうちから経由するノードを選択することで、前記開始する時点の状態における相対関係量に対応するノードから前記最終目標の状態における相対関係量に対応するノードまでの経路を探索すること、及び
探索された前記経路に含まれるノードに対応する相対関係量により前記相対関係量の系列を生成すること、
を含む、
請求項１から５のいずれか１項に記載の制御装置。
【請求項７】
前記行動決定部は、訓練用の最終目標における相対関係量及び訓練用の現在の状態における相対関係量の入力に対して、当該訓練用の現在の状態の次に遷移する目標の状態における相対関係量を決定するように訓練された第２の学習済みの学習モデルを含み、
前記相対関係量の系列を決定することは、
前記現在の状態における前記相対関係量及び設定された前記最終目標の前記相対関係量を前記第２の学習済みの学習モデルに入力すること、
前記第２の学習済みの学習モデルの演算処理を実行すること、及び
前記第２の学習済みの学習モデルから出力される出力値を、前記次に遷移する目標の状態における前記相対関係量を決定した結果として取得すること、
を繰り返し実行することを含む、
請求項１から５のいずれか１項に記載の制御装置。
【請求項８】
前記第２の学習済みの学習モデルは、前記センサから取得される前記観察データの入力を更に受け付けるように構成され、
前記相対関係量の系列を決定することは、前記最新の観察データを前記第２の学習済みの学習モデルに更に入力すること、を含む、
請求項７に記載の制御装置。
【請求項９】
前記関係特定部は、訓練用の観察データの入力に対して、当該訓練用の観察データに現れる前記複数の対象物の間の相対関係量を算出するように訓練された第３の学習済みの学習モデルを含み、
前記相対関係量を算出することは、
取得された前記観察データを前記第３の学習済みの学習モデルに入力すること、
前記第３の学習済みの学習モデルの演算処理を実行すること、及び
前記第３の学習済みの学習モデルから出力される出力値を、前記相対関係量を算出した結果として取得すること、
を含む、
請求項１から８のいずれか１項に記載の制御装置。
【請求項１０】
前記ロボット装置は、前記ロボット装置の属性を観測する観測センサを備え、
前記第３の学習済みの学習モデルは、前記観測センサにより得られる属性データの入力を更に受け付けるように構成され、
前記相対関係量を算出することは、前記観測センサにより得られた前記属性データを前記第３の学習済みの学習モデルに更に入力すること、を含む、
請求項９に記載の制御装置。
【請求項１１】
前記ロボット装置は、エンドエフェクタを備えるマニピュレータであり、
前記複数の対象物は、前記エンドエフェクタを含み、
前記指令決定部は、前記エンドエフェクタに関する制御指令を決定し、
前記出力部は、決定された制御指令を前記マニピュレータに出力する、
請求項１から１０のいずれか１項に記載の制御装置。
【請求項１２】
複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成する制御方法であって、
コンピュータが、
最終目標となる前記複数の対象物の間の相対関係量を設定するステップであって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、ステップと、
前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するステップと、
取得された前記観察データから、前記複数の対象物の間の相対関係量を算出するステップと、
前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定するステップと、
前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定するステップと、
決定された前記制御指令を前記ロボット装置に出力するステップと、
を実行する、
制御方法。
【請求項１３】
複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成するための制御プログラムであって、
コンピュータに、
最終目標となる前記複数の対象物の間の相対関係量を設定するステップであって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、ステップと、
前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するステップと、
取得された前記観察データから、前記複数の対象物の間の相対関係量を算出するステップと、
前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定するステップと、
前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定するステップと、
決定された前記制御指令を前記ロボット装置に出力するステップと、
を実行させるための、
制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
製品を生産する生産ラインでは、マニピュレータ等のロボット装置が利用されている。機構、コネクタ、エンドエフェクタ等のロボット装置の構成要素は、遂行する作業（タスク）等に応じて多くのバリエーションを有しており、それらすべてに対応したロボット装置の動作手順を人手で作成するのは困難である。そのため、従来、機構、コネクタ、エンドエフェクタ等の構成要素の種類を決定した後、ロボット装置を人手で動かして、実行させる一連の動作における姿勢をレコードしながら、遂行する作業を直接的にティーチングする方法が採用されている。
【０００３】
しかしながら、この方法では、機構、コネクタ、エンドエフェクタ等の構成要素が変更される度に、遂行する作業をロボット装置に教示することになる。したがって、遂行する作業をロボット装置に教示するのにあまりにコストがかかってしまう。そこで、近年、機械学習を利用して、遂行する作業をロボット装置に習得させる方法が研究されている。例えば、非特許文献１では、カメラから得られる画像データに基づいて対象物を把持する動作を強化学習によりロボット装置に習得させる方法が提案されている。この方法によれば、対象物を把持する動作をロボット装置に教示する一連の処理の少なくとも一部を自動化することができる。よって、ロボット装置に作業を教示するコストを低減することができる。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】Dmitry Kalashnikov, et al. "QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation" arXiv preprint arXiv:1806.10293, 2018.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本件発明者らは、上記のようなロボット装置の従来の制御方法には、次のような問題があることを見出した。従来の制御方法では、遂行する作業に対してロボット装置に与える時系列の制御指令を学習している。つまり、学習された時系列の制御指令は作業に直接的に関連付けられる。そのため、作業を遂行する環境及び対象物の少なくとも一方が少しでも変化した場合には、実質的に作業の内容も変化してしまい、新たに学習させなければ、ロボットは、その作業を適切に遂行できなくなる可能性がある。
【０００６】
例えば、ロボット装置に教示した作業が、Ａ地点に姿勢Ｂで存在する対象物ＣをＤ地点に運ぶことであったと想定する。この場合に、対象物ＣがＡ地点に姿勢Ｂで正確に配置されていたならば、ロボット装置は、学習結果に基づいて、当該作業を適切に遂行可能である。しかしながら、対象物ＣがＡ地点からややずれて配置されていたり、Ａ地点に配置されているが姿勢Ｂから傾いていたりした場合には、ロボット装置が対象物Ｃを把持する位置及び姿勢が変化する等の理由により、遂行すべき作業の内容が変化してしまう。すなわち、この場合には、遂行すべき作業は、「Ａ地点からずれたり傾いたりしている対象物ＣをＤ地点に運ぶ」ことであり、「Ａ地点に姿勢Ｂで存在する対象物ＣをＤ地点に運ぶ」という元の作業と相違している。そうすると、ロボット装置は、学習結果に基づいて動作しても、この作業を適切に遂行できない可能性がある。つまり、従来の制御方法では、習得される作業を遂行する能力の汎用性が乏しいという問題点がある。この問題点に起因して、ロボット装置を汎用的に動作させるためには、異なる作業毎に制御指令を学習させることになり、ロボット装置に作業を教示するのにかかるコストは依然として高い。
【０００７】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、習得される作業を遂行する能力の汎用性を高めるための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００９】
すなわち、本発明の一側面に係る制御装置は、複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成する制御装置であって、最終目標となる前記複数の対象物の間の相対関係量を設定する目標設定部であって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、目標設定部と、前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するデータ取得部と、取得された前記観察データから、前記複数の対象物の間の相対関係量を算出する関係特定部と、前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定する行動決定部と、前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定する指令決定部と、決定された前記制御指令を前記ロボット装置に出力する出力部と、を備える。
【００１０】
上記構成では、作業（タスク）の遂行に関連し、ロボット装置の稼働する環境下に存在する複数の対象物の状況及び目標が相対関係量で表現され、制御指令は、この相対関係量を変化させることに応じて決定される。相対関係量は、環境に存在する複数の対象物の間の相対的かつ物理的な関係に関する属性を示すものであり、例えば、複数の対象物の間の相対座標（相対位置、相対姿勢）、複数の対象物の間に作用する力、複数の対象物の間の状態（例えば、連結されているか否か）等である。つまり、上記構成では、制御指令は、作業に直接的に関連付けられるのではなく、相対関係量の変化量に関連付けられる。これにより、作業の内容に依存せずに、相対関係量を変化させることに対してロボット装置に与える制御指令の系列を教示することができる。すなわち、同じ相対関係量の変化で遂行可能な作業であれば、その作業の内容が多少変更されていても、ロボット装置にそれらの作業を適切に遂行させることができる。したがって、上記構成によれば、習得される作業を遂行する能力の汎用性を高めることができる。これによって、ロボット装置に作業を教示するのにかかるコストを低減することができる。
【００１１】
なお、「対象物」は、ロボット装置の動作に関連し得る物体であり、例えば、エンドエフェクタ、ワーク、障害物等である。「環境」は、対象物が存在し、ロボット装置が稼働する区域である。ロボット装置の種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。ロボット装置は、例えば、マニピュレータ等の産業用ロボット、自動的に移動可能な移動体等を含んでよい。産業用ロボットは、例えば、上記垂直多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等を含む。また、自動的に移動可能な移動体は、例えば、ドローン、自度運転可能に構成された車両、モバイルロボット等を含む。本発明は、対象物の操作可能なあらゆる種類のロボット装置に適用されてよい。
【００１２】
作業（タスク）は、ロボット装置に遂行させる仕事であり、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。作業は、例えば、部品運搬、部品嵌合、ネジ回し等である。作業は、例えば、ワークの把持、ワークの解放等の単純な仕事であってもよい。作業は、予め与えられてもよいし、オペレータの指定により与えられてもよい。
【００１３】
「センサ」は、相対関係量を観察可能であれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。センサは、例えば、カメラであってよい。この場合、観察データは、画像データである。「センサから観察データを取得すること」は、制御装置とセンサとが接続され、センサから直接的に観察データを取得すること、及び他の装置を経由してセンサから間接的に観察データを取得することを含んでよい。
【００１４】
「最終目標」は、終着点（ゴール）であり、作業の遂行を完了した時点に実現され、与えられた作業に応じて設定される。「開始する時点」は、開始点（スタート）であり、作業の遂行に関してロボット装置の動作の制御を開始する前の状態である。「開始する時点における相対関係量」は、予め与えられてもよいし、作業の遂行に関してロボット装置の動作の制御を開始する前に取得された観察データから算出されてよい。
【００１５】
「目標」は、最終目標を含み、作業の遂行を達成するために適宜設定される。設定される目標の数は、１つであってもよいし（この場合、最終目標だけが設定される）、複数であってもよい。最終目標以外の目標は、開始点から終着点に到達するまでに経由する経由点である。そのため、最終目標を単に「目標（ゴール）」と称し、最終目標以外の目標を「下位目標（サブゴール）」と称してもよい。
【００１６】
「最終目標の相対関係量を実現する」とは、作業の遂行が完了することであり、例えば、センサから取得された観測データから算出された相対関係量が最終目標の相対関係量に一致することである。この「一致」は、完全に一致することの他、閾値（許容誤差）による近似を含んでもよい。「次に遷移する目標」は、現在の状態から次に目指す状態（最終目標以外の目標であれば暫定的な状態）であり、例えば、最終目標に向かって、現在の状態に最も近い目標である。「最新」は、制御指令により動作を制御する際であり、その制御指令を決定する直前の時点である。
【００１７】
「制御指令」は、ロボット装置の動作の制御に関するものであり、例えば、目標制御量、操作量等である。「制御指令を出力すること」は、制御指令に基づいてロボット装置を直接的に制御すること、及びロボット装置がコントローラを備える場合に、コントローラに制御指令を出力することで、コントローラにロボット装置の動作を制御させることを含む。
【００１８】
上記一側面に係る制御装置において、前記相対関係量は、前記複数の対象物の間の相対座標を含んでもよい。また、上記一側面に係る制御装置において、前記センサは、カメラを含んでよく、前記観察データは、前記カメラにより得られる画像データを含んでよく、前記関係特定部は、前記カメラにより得られた前記画像データに対して前記各対象物のモデルをマッチングし、当該マッチングの結果に基づいて、前記複数の対象物の間の相対座標を算出してもよい。当該構成によれば、相対座標に基づいて、ロボット装置に教示する作業を遂行する能力の汎用性を容易に高めることができる。なお、相対座標は、対象物の間の相対的な位置関係が特定可能であれば、その表現方法は特に限定されなくてもよい。相対座標は、例えば、相対位置及び相対姿勢を含んでよい。
【００１９】
上記一側面に係る制御装置において、前記指令決定部は、第１の状態における相対関係量及び第２の状態における相対関係量の入力に対して、前記第１の状態における相対関係量を前記第２の状態における相対関係量に変化させるように前記ロボット装置の動作を制御するための制御指令を決定するように訓練された第１の学習済みの学習モデルを含んでもよい。そして、前記制御指令を決定することは、前記現在の状態における前記相対関係量及び前記次に遷移する目標の状態における前記相対関係量を前記第１の学習済みの学習モデルに入力すること、前記第１の学習済みの学習モデルの演算処理を実行すること、及び前記第１の学習済みの学習モデルから出力される出力値を、前記制御指令を決定した結果として取得すること、を含んでもよい。当該構成によれば、学習モデルを利用することで、相対関係量を変化させることに対してロボット装置に与える制御指令を適切に決定することができる。そのため、作業を遂行する能力の汎用性を高めた上で、習得させた能力に基づいて、ロボット装置に作業を適切に遂行させることができる。
【００２０】
なお、第１の状態は、訓練用の「現在の状態」である。第１の状態における相対関係量を第１の相対関係量と称してもよい。第２の状態は、訓練用の「次に遷移する状態」である。第２の状態における相対関係量を第２の相対関係量と称してもよい。学習モデルは、制御指令を決定するための推論する能力を機械学習により獲得可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。機械学習の種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。機械学習は、典型的には、教師あり学習又は強化学習である。機械学習として教師あり学習を採用する場合には、学習モデルは、例えば、全結合ニューラルネットワーク、長期短期記憶（ＬＳＴＭ：Long short-term memory）ブロックを含む再帰型ニューラルネットワーク等のニューラルネットワークにより構成されてよい。以下、長期短期記憶ブロックを「ＬＳＴＭブロック」とも記載する。また、機械学習として強化学習を採用する場合には、学習モデルは、例えば、状態価値関数、行動価値関数等の価値関数により構成されてよい。
【００２１】
上記一側面に係る制御装置において、前記ロボット装置は、前記ロボット装置の属性を観測する観測センサを備えてもよく、前記第１の学習済みの学習モデルは、前記観測センサにより得られる属性データの入力を更に受け付けるように構成されてもよく、前記制御指令を決定することは、前記観測センサにより得られた前記属性データを前記第１の学習済みの学習モデルに更に入力すること、を含んでもよい。当該構成によれば、属性データを更に利用することで、ロボット装置に与える制御指令を更に適切に決定することができる。
【００２２】
なお、「観測センサ」は、ロボット装置の何らかの属性を観測するものであれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。観測センサは、例えば、近接センサ、触覚センサ、力覚センサ、エンコーダ等であってよい。この場合、属性データは、例えば、近接センサ、触覚センサ、力覚センサ、エンコーダ等の測定データ又は測定データから算出された特徴量である。観測センサは、複数のセンサにより構成されてよい。第１の学習済みの学習モデルに入力する属性データを得る時点は、例えば、制御指令により動作を制御する時点であり、その制御指令を決定する直前である。
【００２３】
上記一側面に係る制御装置において、前記行動決定部は、前記複数の対象物の間の相対関係量の集合を表現する配置空間であって、前記目標とする状態の候補となる状態における相対関係量にそれぞれ対応する複数のノードが配置された配置空間を示すマップ情報を保持してもよい。そして、前記相対関係量の系列を決定することは、前記マップ情報により示される前記配置空間において、前記複数のノードのうちから経由するノードを選択することで、前記開始する時点の状態における相対関係量に対応するノードから前記最終目標の状態における相対関係量に対応するノードまでの経路を探索すること、及び探索された前記経路に含まれるノードに対応する相対関係量により前記相対関係量の系列を生成すること、を含んでもよい。当該構成によれば、制御指令を決定する指針となる相対関係量の系列の決定（すなわち、行動計画）を簡易かつ適切に行うことができる。そのため、作業を遂行する能力の汎用性を高めた上で、習得させた能力に基づいて、ロボット装置に作業を簡易かつ適切に遂行させることができる。
【００２４】
なお、各ノード（節点、頂点）は、複数の対象物の一状態に対応し、その一状態における相対関係量を示す。各ノードは、ランダムサンプリング、手入力等により適宜設定されてよい。各ノード間には、エッジが適宜設定されてよい。つまり、マップ情報は、ノード及びエッジにより構成されるグラフ構造を有してもよい。エッジ（枝、辺）は、２つのノード間を接続し、一方のノードに対応する状態から他方のノードに対応する状態に遷移可能であることを示す。エッジを設定する２つのノードの組み合わせを決定する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、最近傍法等の公知の方法に基づいて、エッジを設定する２つのノードの組み合わせが決定されてよい。経路は、選択されたノードに連結されたエッジにより構成される。経路探索には、例えば、ダイクストラ法等の公知の探索方法が採用されてよい。また、経路探索には、例えば、指定されたノードを経由する等の制約条件が課されてもよい。制約条件は、実施の形態に応じて適宜決定されてよい。
【００２５】
配置空間は、相対関係量の集合を表現する。この配置空間には、自由領域及び制限領域が設定されてよい。自由領域には、複数の対象物の間の相対的な関係として取り得る状態（実現可能な相対関係量）に対応するノードが属する。一方、制限領域には、複数の対象物の間の相対的な関係として取り得ない状態（実現不能な相対関係量）に対応するノードが属する。この場合、各ノードは、自由領域に配置される。また、エッジは、制限領域に入らないように適宜設定される。
【００２６】
上記一側面に係る制御装置において、前記行動決定部は、訓練用の最終目標における相対関係量及び訓練用の現在の状態における相対関係量の入力に対して、当該訓練用の現在の状態の次に遷移する目標の状態における相対関係量を決定するように訓練された第２の学習済みの学習モデルを含んでもよい。そして、前記相対関係量の系列を決定することは、前記現在の状態における前記相対関係量及び設定された前記最終目標の前記相対関係量を前記第２の学習済みの学習モデルに入力すること、前記第２の学習済みの学習モデルの演算処理を実行すること、及び前記第２の学習済みの学習モデルから出力される出力値を、前記次に遷移する目標の状態における前記相対関係量を決定した結果として取得すること、を繰り返し実行することを含んでもよい。当該構成によれば、学習モデルを利用することで、開始時点から最終目標までに目標とする状態を決定する精度を高めることができる。そのため、精度よく決定された目標に基づいて、ロボット装置に与える制御指令を適切に決定することができ、これによって、ロボット装置に作業を適切に遂行させることができる。
【００２７】
上記一側面に係る制御装置において、前記第２の学習済みの学習モデルは、前記センサから取得される前記観察データの入力を更に受け付けるように構成されてよく、前記相対関係量の系列を決定することは、前記最新の観察データを前記第２の学習済みの学習モデルに更に入力すること、を含んでもよい。当該構成によれば、最新の観察データを更に利用することで、目標の状態を決定する精度を更に高めることができる。そのため、ロボット装置に作業を更に適切に遂行させることができる。
【００２８】
上記一側面に係る制御装置において、前記関係特定部は、訓練用の観察データの入力に対して、当該訓練用の観察データに現れる前記複数の対象物の間の相対関係量を算出するように訓練された第３の学習済みの学習モデルを含んでもよい。そして、前記相対関係量を算出することは、取得された前記観察データを前記第３の学習済みの学習モデルに入力すること、前記第３の学習済みの学習モデルの演算処理を実行すること、及び前記第３の学習済みの学習モデルから出力される出力値を、前記相対関係量を算出した結果として取得すること、を含んでもよい。当該構成によれば、学習モデルを利用することで、センサより得られた観察データから相対関係量を導出する精度を高めることができる。そのため、相対関係量を変化させることに対してロボット装置に与える制御指令を適切に決定することができ、これによって、ロボット装置に作業を適切に遂行させることができる。
【００２９】
上記一側面に係る制御装置において、前記ロボット装置は、前記ロボット装置の属性を観測する観測センサを備えてもよく、前記第３の学習済みの学習モデルは、前記観測センサにより得られる属性データの入力を更に受け付けるように構成されてよく、前記相対関係量を算出することは、前記観測センサにより得られた前記属性データを前記第３の学習済みの学習モデルに更に入力すること、を含んでもよい。当該構成によれば、属性データを更に利用することで、相対関係量を導出する精度を更に高めることができる。そのため、ロボット装置に作業を更に適切に遂行させることができる。
【００３０】
上記一側面に係る制御装置において、前記ロボット装置は、エンドエフェクタを備えるマニピュレータであってよく、前記複数の対象物は、前記エンドエフェクタを含んでよく、前記指令決定部は、前記エンドエフェクタに関する制御指令を決定してもよく、前記出力部は、決定された制御指令を前記マニピュレータに出力してもよい。当該構成によれば、マニピュレータに教示する作業を遂行する能力の汎用性を高めることができる。これにより、マニピュレータに作業を教示するのにかかるコストを低減することができる。なお、エンドエフェクタは、マニピュレータの手先に取り付けられるものであり、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。エンドエフェクタは、例えば、グリッパ、吸引器、ドライバ等であってよい。
【００３１】
上記各形態に係る制御装置の別の態様として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【００３２】
例えば、本発明の一側面に係る制御方法は、複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成する情報処理方法であって、コンピュータが、最終目標となる前記複数の対象物の間の相対関係量を設定するステップであって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、ステップと、前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するステップと、取得された前記観察データから、前記複数の対象物の間の相対関係量を算出するステップと、前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定するステップと、前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定するステップと、決定された前記制御指令を前記ロボット装置に出力するステップと、を実行する、情報処理方法である。
【００３３】
例えば、本発明の一側面に係る制御プログラムは、複数の対象物の存在する環境下で稼働するロボット装置の動作を制御するための制御指令を生成するためのプログラムであって、コンピュータに、最終目標となる前記複数の対象物の間の相対関係量を設定するステップであって、前記相対関係量は、前記複数の対象物の間の相対的かつ物理的な関係に関する属性を示す、ステップと、前記環境に存在する前記複数の対象物を観察するセンサから観察データを繰り返し取得するステップと、取得された前記観察データから、前記複数の対象物の間の相対関係量を算出するステップと、前記動作の制御を開始する時点における前記複数の対象物の間の相対関係量から設定された前記最終目標の相対関係量を実現するまでの、前記複数の対象物の目標とする状態における相対関係量の系列を決定するステップと、前記最終目標の相対関係量を実現するまで、前記センサから取得された最新の観察データから算出された現在の状態における相対関係量を、前記相対関係量の系列に含まれる、当該現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、前記ロボット装置に与える制御指令を繰り返し決定するステップと、決定された前記制御指令を前記ロボット装置に出力するステップと、を実行させるための、プログラムである。
【発明の効果】
【００３４】
本発明によれば、習得される作業を遂行する能力の汎用性を高めることができる。
【図面の簡単な説明】
【００３５】
【図１】図１は、本発明が適用される場面の一例を模式的に例示する。
【図２Ａ】図２Ａは、実施の形態に係る相対関係量の一例を模式的に例示する。
【図２Ｂ】図２Ｂは、実施の形態に係る相対関係量の一例を模式的に例示する。
【図２Ｃ】図２Ｃは、実施の形態に係る相対関係量の一例を模式的に例示する。
【図２Ｄ】図２Ｄは、実施の形態に係る相対関係量の一例を模式的に例示する。
【図２Ｅ】図２Ｅは、実施の形態に係る相対関係量の一例を模式的に例示する。
【図２Ｆ】図２Ｆは、実施の形態に係る相対関係量の一例を模式的に例示する。
【図３】図３は、実施の形態に係る制御装置のハードウェア構成の一例を模式的に例示する。
【図４】図４は、実施の形態に係るロボット装置の一例を模式的に例示する。
【図５Ａ】図５Ａは、実施の形態に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
【図５Ｂ】図５Ｂは、実施の形態に係る制御装置の学習処理に関するソフトウェア構成の一例を模式的に例示する。
【図６】図６は、実施の形態に係る制御装置によるマップ情報の作成に関する処理手順の一例を例示する。
【図７Ａ】図７Ａは、実施の形態に係るマップ情報の作成過程の一例を模式的に例示する。
【図７Ｂ】図７Ｂは、実施の形態に係るマップ情報の作成過程の一例を模式的に例示する。
【図７Ｃ】図７Ｃは、実施の形態に係るマップ情報の作成過程の一例を模式的に例示する。
【図８】図８は、実施の形態に係る制御装置による学習モデルの機械学習に関する処理手順の一例を例示する。
【図９Ａ】図９Ａは、実施の形態に係る制御装置によるロボット装置の制御に関する処理手順の一例を例示する。
【図９Ｂ】図９Ｂは、実施の形態に係る制御装置によるロボット装置の制御に関する処理手順の一例を例示する。
【図１０】図１０は、実施の形態に係る制御装置による行動計画の一例を模式的に例示する。
【図１１Ａ】図１１Ａは、従来の制御方法の問題点を説明するための図である。
【図１１Ｂ】図１１Ｂは、従来の制御方法の問題点を説明するための図である。
【図１２】図１２は、実施の形態に係る制御方法の特徴を説明するための図である。
【図１３】図１３は、変形例に係る制御装置のソフトウェア構成の一例を模式的に例示する。
【図１４Ａ】図１４Ａは、変形例に係る学習装置が適用される場面の一例を模式的に例示する。
【図１４Ｂ】図１４Ｂは、変形例に係る学習装置のハードウェア構成の一例を模式的に例示する。
【図１５】図１５は、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
【図１６】図１６は、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
【図１７Ａ】図１７Ａは、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
【図１７Ｂ】図１７Ｂは、変形例に係る制御装置の学習処理に関するソフトウェア構成の一例を模式的に例示する。
【図１８】図１８は、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
【図１９Ａ】図１９Ａは、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
【図１９Ｂ】図１９Ｂは、変形例に係る制御装置の学習処理に関するソフトウェア構成の一例を模式的に例示する。
【図２０】図２０は、変形例に係る制御装置の制御処理に関するソフトウェア構成の一例を模式的に例示する。
【発明を実施するための形態】
【００３６】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００３７】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る制御装置１の適用場面の一例を模式的に例示する。図１の例では、グリッパ３７を備える垂直多関節型のマニピュレータ３の動作を制御する場面を想定している。マニピュレータ３は、本発明の「ロボット装置」の一例であり、グリッパ３７は、本発明の「エンドエフェクタ」の一例である。しかしながら、本発明の適用対象は、このような例に限定されなくてもよく、何らかのロボット装置の動作を制御するあらゆる場面に適用可能である。
【００３８】
図１に示されるとおり、本実施形態に係る制御装置１は、複数の対象物の存在する環境ＷＳ下で稼働するロボット装置（マニピュレータ３）の動作を制御するための制御指令４１を生成するコンピュータである。環境ＷＳは、対象物が存在し、ロボット装置が稼働する区域である。対象物は、ロボット装置の動作に関連し得る物体であり、例えば、エンドエフェクタ、ワーク、障害物等である。対象物は、ロボット装置の構成要素を含んでもよい。本実施形態では、環境ＷＳには、グリッパ３７、第１ワークＷ１、及び第２ワークＷ２が対象物の一例として存在している。
【００３９】
制御装置１は、環境ＷＳに存在する複数の対象物を観察するセンサから観察データを繰り返し取得し、取得された観察データから複数の対象物の間の相対関係量を算出する。相対関係量は、複数の対象物の間の相対的かつ物理的な関係に関する属性を示すものである。相対関係量は、例えば、複数の対象物の間の相対座標（相対位置、相対姿勢）、複数の対象物の間に作用する力、複数の対象物の間の状態（例えば、連結されているか否か）等である。本実施形態では、センサの一例としてカメラＣＡが採用されている。また、本実施形態では、後述するとおり、相対関係量は、複数の対象物の間の相対座標を含む。そのため、制御装置１は、カメラＣＡから画像データ４０を観察データとして取得し、取得された画像データ４０から相対座標を含む相対関係量を算出する。
【００４０】
制御装置１は、最終目標となる複数の対象物の間の相対関係量を設定する。最終目標は、マニピュレータ３に遂行させる作業（タスク）に応じて決定される。制御装置１は、動作の制御を開始する時点からこの最終目標を達成するまでの相対関係量の遷移を計画し、計画された相対関係量の遷移に従って、マニピュレータ３に与える制御指令４１を決定する。「開始する時点」は、当該計画における開始点（スタート）であり、作業の遂行に関してロボット装置（マニピュレータ３）の動作の制御を開始する前の状態である。「最終目標」は、当該計画における終着点（ゴール）であり、作業の遂行を完了した時点に実現され、与えられた作業に応じて設定される。
【００４１】
具体的には、制御装置１は、動作の制御を開始する時点における複数の対象物の間の相対関係量から設定された最終目標の相対関係量を実現するまでの、複数の対象物の目標とする状態における相対関係量の系列を決定する。制御装置１は、最終目標の相対関係量を実現するまで、センサから取得された最新の観察データから算出された現在の状態における相対関係量を、相対関係量の系列に含まれる、現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、マニピュレータ３に与える制御指令４１を繰り返し決定する。
【００４２】
そして、制御装置１は、決定された制御指令４１をマニピュレータ３に出力する。制御指令４１は、ロボット装置（マニピュレータ３）の動作の制御に関するものであり、例えば、目標制御量、操作量等である。また、制御指令４１を出力することは、制御指令４１に基づいてロボット装置を直接的に制御すること、及びロボット装置がコントローラを備える場合に、制御指令４１をコントローラに与えることで、コントローラにロボット装置の動作を制御させることを含む。本実施形態では、制御装置１は、制御指令４１の出力処理として、制御指令４１に基づいて、マニピュレータ３の動作を制御する。これにより、マニピュレータ３は、与えられた作業を遂行するように動作を制御される。
【００４３】
図２Ａ〜図２Ｆを更に用いて、制御装置１による動作制御の具体例について説明する。図１及び図２Ａ〜図２Ｆは、マニピュレータ３に遂行させる作業の一例として、第２ワークＷ２から離れた場所に配置されている第１ワークＷ１をグリッパ３７により把持させ、把持させた第１ワークＷ１を第２ワークＷ２上に運搬する作業を模式的に例示している。図１は、上記計画の結果、開始する時点ｓｔから最終目標ｇｎまで当該部品運搬の作業をｎ（ｎは自然数）回のステップで実行させるように相対関係量の系列ＲＳを決定した場面を例示している。図２Ａ〜図２Ｆは、第１ワークＷ１を第２ワークＷ２の上に配置する作業をマニピュレータ３に遂行させる過程を模式的に例示する。
【００４４】
ただし、マニピュレータ３に遂行させる作業は、このような部品運搬に限られなくてもよく、実施の形態に応じて適宜選択されてよい。作業は、部品運搬の他、例えば、部品嵌合、ネジ回し等であってよい。作業は、例えば、ワークの把持、ワークの解放等の単純な仕事であってもよい。また、一連の作業を遂行するためのステップ数、すなわち、系列ＲＳに含まれる相対関係量の数は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。更に、図１の例では、動作の制御を開始する時点ｓｔと最終目標ｇｎとの間に、最終目標ｇｎ以外の目標（ｇ１、ｇ２等）が設定されている。しかしながら、相対関係量の系列を決定する処理の例は、このような例に限定されなくてもよく、開始する時点ｓｔの後に最終目標ｇｎが設定される、換言すると、最終目標ｇｎ以外の目標が存在しないように相対関係量の系列が決定されてもよい。
【００４５】
まず、相対関係量の一例について説明する。図２Ａに示されるとおり、本実施形態に係る相対関係量は、相対座標（ｒｃ１、ｒｃ２、ｒｃ３）を含んでいる。相対座標ｒｃ１は、グリッパ３７のローカル座標系ＣＯ１から見た第１ワークＷ１のローカル座標系ＣＯ２を表し、グリッパ３７と第１ワークＷ１との間の相対的な位置及び姿勢の関係を示す。相対座標ｒｃ２は、グリッパ３７のローカル座標系ＣＯ１から見た第２ワークＷ２のローカル座標系ＣＯ３を表し、グリッパ３７と第２ワークＷ２との間の相対的な位置及び姿勢の関係を示す。相対座標ｒｃ３は、第１ワークＷ１のローカル座標系ＣＯ２からみた第２ワークＷ２のローカル座標系ＣＯ３を表し、第１ワークＷ１と第２ワークＷ２との間の相対的な位置及び姿勢の関係を示す。
【００４６】
本実施形態では、各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）は、３次元空間の３つの軸（前後、左右、上下；相対位置）で表現される相対位置、及び各軸の回転（ロール、ピッチ、ヨー）で表現される相対姿勢を含む。各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）は、本発明の「複数の対象物の間の相対座標」の一例である。ただし、相対座標の表現は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。相対座標は、例えば、相対位置及び相対姿勢のいずれか一方のみを含むように設定されてもよい。また、相対座標の与え方は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、相対座標ｒｃ１は、第１ワークＷ１のローカル座標系ＣＯ２から見たグリッパ３７のローカル座標系ＣＯ１を表す等のように、各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）の関係は反転されてもよい。
【００４７】
次に、この相対関係量に基づいて、制御指令４１を決定する過程の一例について説明する。本実施形態では、部品運搬の一連の動作における各状態が、各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）を含む相対関係量により表現される。図２Ａに示されるとおり、動作の制御を開始する時点ｓｔでは、第１ワークＷ１は第２ワークＷ２から離れて配置されており、グリッパ３７は、第１ワークＷ１及び第２ワークＷ２から離れた位置に傾いて配置されている。開始する時点ｓｔにおける相対関係量ｒ０に含まれる各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）は、この状態におけるグリッパ３７、第１ワークＷ１、及び第２ワークＷ２の間の相対的な位置及び姿勢の関係を示す。本実施形態では、この相対関係量ｒ０の各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）は、作業の遂行に関してマニピュレータ３の動作の制御を開始する前（開始する時点ｓｔ）に取得された画像データ４０１から算出される。
【００４８】
一方、図２Ｆに示されるとおり、この作業の一例における最終目標ｇｎは、グリッパ３７が第１ワークＷ１の上部を把持し、把持した第１ワークＷ１を第２ワークＷ２上に配置することである。最終目標ｇｎにおける相対関係量ｒｎに含まれる各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）は、この状態におけるグリッパ３７、第１ワークＷ１、及び第２ワークＷ２の間の相対的な位置及び姿勢の関係を示す。この相対関係量ｒｎは、マニピュレータ３に遂行させる作業に応じて適宜与えられる。
【００４９】
制御装置１は、この開始する時点ｓｔにおける相対関係量ｒ０から最終目標ｇｎの相対関係量ｒｎを実現するまでの、複数の対象物の目標とする状態における相対関係量の系列ＲＳを決定する。「目標」は、最終目標ｇｎを含み、作業の遂行を達成するために適宜設定される。設定される目標の数は、１つであってもよいし、複数であってもよい。図１の例では、最終目標ｇｎを含むｎ個の目標（ｇ１、ｇ２等）が設定されている。最終目標ｇｎ以外の目標（ｇ１、ｇ２等）は、開始点から終着点に到達するまでに経由する経由点（途中状態に対応する）である。そのため、最終目標ｇｎを単に「目標（ゴール）」と称し、最終目標ｇｎ以外の目標を「下位目標（サブゴール）」と称してもよい。
【００５０】
図２Ｂ〜図２Ｅは、相対関係量の系列ＲＳを決定した結果、策定された途中状態の目標（ｇ１、ｇ２等）の一例を模式的に例示する。具体的に、図２Ｂの例では、開始する時点ｓｔの次に遷移する目標ｇ１として、第１ワークＷ１を把持可能なようにグリッパ３７の姿勢を変更し、グリッパ３７を第１ワークＷ１の上空に配置することが策定されている。この目標ｇ１における相対関係量ｒ１に含まれる各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）は、この状態におけるグリッパ３７、第１ワークＷ１、及び第２ワークＷ２の間の相対的な位置及び姿勢の関係を示すように設定される。図２Ｃの例では、目標ｇ１の次に遷移する目標ｇ２として、グリッパ３７を下降させ、第１ワークＷ１の上部をグリッパ３７で把持することが策定されている。この目標ｇ２における相対関係量ｒ２に含まれる各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）は、この状態におけるグリッパ３７、第１ワークＷ１、及び第２ワークＷ２の間の相対的な位置及び姿勢の関係を示すように設定される。
【００５１】
このように、各目標における相対関係量は、開始する時点ｓｔにおける相対関係量ｒ０が最終目標ｇｎにおける相対関係量ｒｎに遷移する過程の一時点（すなわち、途中状態）に対応するように適宜決定される。図２Ｄの例では、目標ｇ２と最終目標ｇｎとの間に策定される目標として、第１ワークＷ１を把持したグリッパ３７が第２ワークＷ２に近付く場面が示されている。この目標における相対関係量ｒｒに含まれる各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）は、この状態におけるグリッパ３７、第１ワークＷ１、及び第２ワークＷ２の間の相対的な位置及び姿勢の関係を示すように設定される。図２Ｅの例では、最終目標ｇｎの直前の目標として、第１ワークＷ１を把持したグリッパ３７が第２ワークＷ２の上空に位置する場面が示されている。この目標における相対関係量ｒ（ｎ−１）に含まれる各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）は、この状態におけるグリッパ３７、第１ワークＷ１、及び第２ワークＷ２の間の相対的な位置及び姿勢の関係を示すように設定される。
【００５２】
制御装置１は、最終目標ｇｎの相対関係量ｒｎを実現するまで、カメラＣＡから取得された最新の画像データ４０から算出された現在の状態における相対関係量を、相対関係量の系列ＲＳに含まれる、現在の状態の次に遷移する目標の状態における相対関係量に変化させるように、マニピュレータ３に与える制御指令４１を繰り返し決定する。この繰り返しの最初のステップｓ１では、開始する時点ｓｔの初期状態が現在の状態ｎ１である。つまり、最新の画像データ４０１から算出された現在の状態ｎ１における相対関係量ｐ１は、開始する時点ｓｔにおける相対関係量ｒ０と同じである。「最新」とは、制御指令により動作を制御する際であり、その制御指令を決定する直前の時点である。また、「次に遷移する目標」は、現在の状態から次に目指す状態（最終目標以外の目標であれば暫定的な状態）であり、例えば、最終目標に向かって、現在の状態に最も近い目標である。そのため、現在の状態ｎ１の次に遷移する目標は、目標ｇ１である。したがって、ステップｓ１では、制御装置１は、最新の画像データ４０１算出された現在の状態ｎ１における相対関係量ｐ１（図２Ａ）を、目標ｇ１の状態における相対関係量ｒ１（図２Ｂ）に変化させるように、制御指令４１１を決定する。マニピュレータ３は、決定された制御指令４１１に基づいて動作を制御される。
【００５３】
この制御指令４１１に基づくマニピュレータ３の動作制御が適切に完了すると、グリッパ３７、第１ワークＷ１、及び第２ワークＷ２は、図２Ｂに示される状態になる。つまり、次のステップｓ２では、最新の画像データ４０２から算出された現在の状態ｎ２における相対関係量ｐ２は、このステップｓ２を実行する前に達成される目標ｇ１の相対関係量ｒ１と一致又は近似している。この現在の状態ｎ２の次に遷移する目標は、目標ｇ１の次に設定された目標ｇ２である。そのため、ステップｓ２では、制御装置１は、画像データ４０２から算出された現在の状態ｎ２における相対関係量ｐ２（図２Ｂ）を、目標ｇ２の状態における相対関係量ｒ２（図２Ｃ）に変化させるように、制御指令４１２を決定する。マニピュレータ３は、決定された制御指令４１２に基づいて動作を制御される。
【００５４】
このような制御指令４１の決定、及び決定された制御指令４１に基づくマニピュレータ３の動作の制御が繰り返し実行される。この繰り返しにより、グリッパ３７、第１ワークＷ１、及び第２ワークＷ２の状態は、開始する時点ｓｔの状態から最終目標ｇｎの状態に遷移していく。最終目標ｇｎを実現する直前のステップｓｎの時点では、最新の画像データ４０ｎから算出された現在の状態ｎｎにおける相対関係量ｐｎは、最終目標ｇｎの前に達成される目標の相対関係量ｒ（ｎ−１）と一致又は近似している。このステップｓｎでは、制御装置１は、画像データ４０ｎから算出された現在の状態ｎｎにおける相対関係量ｐｎ（図２Ｅ）を、最終目標ｇｎの状態における相対関係量ｒｎ（図２Ｆ）に変化させるように、制御指令４１ｎを決定する。マニピュレータ３は、決定された制御指令４１ｎに基づいて動作を制御される。
【００５５】
このステップｓｎにおける制御による動作が完了すると、最終目標ｇｎの相対関係量ｒｎ、すなわち、グリッパ３７により把持された第１ワークＷ１が第２ワークＷ２上に配置された状態が実現される。なお、最終目標ｇｎの相対関係量ｒｎを実現することは、作業の遂行が完了することであり、例えば、カメラＣＡから取得された画像データ４０から算出される相対関係量が最終目標ｇｎの相対関係量ｒｎと一致することである。この「一致」は、完全に一致することの他、閾値（許容誤差）による近似を含んでもよい。最終目標ｇｎを実現するまで上記繰り返しの処理が実行されることで、マニピュレータ３は、第２ワークＷ２から離れた場所に配置されている第１ワークＷ１をグリッパ３７により把持し、把持した第１ワークＷ１を第２ワークＷ２上に運搬する一連の動作を実行するように制御される。
【００５６】
以上のとおり、本実施形態では、作業の遂行に関連し、マニピュレータ３の稼働する環境ＷＳ下に存在する複数の対象物の状況及び目標が相対関係量で表現され、制御指令４１は、この相対関係量を変化させることに応じて決定される。相対関係量は、環境ＷＳに存在する複数の対象物（グリッパ３７、第１ワークＷ１、第２ワークＷ２）の間の相対的かつ物理的な関係に関する属性を示すものであり、本実施形態では、各相対座標（ｒｃ１、ｒｃ２、ｒｃ３）を含んでいる。つまり、本実施形態では、制御指令４１は、作業に直接的に関連付けられるのではなく、相対関係量の変化量に関連付けられる。これにより、作業の内容に依存せずに、相対関係量を変化させることに対してマニピュレータ３に与える時系列の制御指令４１を教示することができる。したがって、本実施形態によれば、習得される作業を遂行する能力の汎用性を高めることができる。これによって、マニピュレータ３に作業を教示するのにかかるコストを低減することができる。
【００５７】
§２  構成例
［ハードウェア構成］
＜制御装置＞
次に、図３を用いて、本実施形態に係る制御装置１のハードウェア構成の一例について説明する。図３は、本実施形態に係る制御装置１のハードウェア構成の一例を模式的に例示する。
【００５８】
図３に示されるとおり、本実施形態に係る制御装置１は、制御部１１、記憶部１２、外部インタフェース１３、入力装置１４、出力装置１５、及びドライブ１６が電気的に接続されたコンピュータである。なお、図３では、外部インタフェースを「外部Ｉ／Ｆ」と記載している。
【００５９】
制御部１１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部１２は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部１２は、制御プログラム８１、学習プログラム８２、ＣＡＤ（computer-aided design）データ１２１、マップ情報１２３、学習データ１２５、学習結果データ１２７等の各種情報を記憶する。
【００６０】
制御プログラム８１は、後述するマニピュレータ３の制御に関する情報処理（図９Ａ、図９Ｂ）を制御装置１に実行させるためのプログラムである。制御プログラム８１は、この情報処理の一連の命令を含む。学習プログラム８２は、相対関係量の系列ＲＳの決定に利用するマップ情報１２３及び制御指令４１の決定に利用する学習済みの学習モデル（後述するニューラルネットワーク５１）の構築に関する情報処理（図６、図８）を制御装置１に実行させるためのプログラムである。学習プログラム８２は、この情報処理の一連の命令を含む。ＣＡＤデータ１２１は、環境ＷＳに存在する各対象物のモデルを含む。マップ情報１２３及び学習結果データ１２７は、学習プログラム８２の実行結果として生成される。マップ情報１２３は、複数の対象物の間の相対関係量の集合を表現する配置空間であって、目標とする状態の候補となる状態における相対関係量にそれぞれ対応する複数のノードが配置された配置空間を示す。学習データ１２５は、学習モデルの機械学習に使用される。学習結果データ１２７は、機械学習により構築された学習済みの学習モデルの設定を行うためのデータである。詳細は後述する。
【００６１】
外部インタフェース１３は、例えば、ＵＳＢ（Universal Serial Bus）ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース１３の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、制御装置１は、外部インタフェース１３を介して、マニピュレータ３及びカメラＣＡに接続される。
【００６２】
カメラＣＡは、マニピュレータ３の稼働する環境ＷＳに存在する各対象物（グリッパ３７、第１ワークＷ１、第２ワークＷ２）を観察するように適宜配置される。このカメラＣＡの種類は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。カメラＣＡには、例えば、デジタルカメラ、ビデオカメラ等の公知のカメラが利用されてよい。制御装置１は、外部インタフェース１３を介して、カメラＣＡから画像データ４０を取得することができる。画像データ４０は、本発明の「観察データ」の一例である。なお、図１及び図３の例では、カメラＣＡは、マニピュレータ３と別体に設けられている。しかしながら、カメラＣＡの構成は、このような例に限定されなくてもよい。カメラＣＡは、マニピュレータ３と一体に設けられていてもよい。
【００６３】
入力装置１４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置１５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置１４及び出力装置１５を利用することで、制御装置１を操作することができる。
【００６４】
ドライブ１６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９１に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ１６の種類は、記憶媒体９１の種類に応じて適宜選択されてよい。上記制御プログラム８１、学習プログラム８２、ＣＡＤデータ１２１、及び学習データ１２５の少なくともいずれかは、この記憶媒体９１に記憶されていてもよい。
【００６５】
記憶媒体９１は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。制御装置１は、この記憶媒体９１から、上記制御プログラム８１、学習プログラム８２、ＣＡＤデータ１２１、及び学習データ１２５の少なくともいずれかを取得してもよい。
【００６６】
ここで、図３では、記憶媒体９１の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９１の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００６７】
なお、制御装置１の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部１１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ（field-programmable gate array）、ＤＳＰ（digital signal processor）等で構成されてよい。記憶部１２は、制御部１１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。外部インタフェース１３、入力装置１４、出力装置１５及びドライブ１６の少なくともいずれかは省略されてもよい。制御装置１は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、制御装置１は、提供されるサービス専用に設計された情報処理装置の他、ＰＣ（Personal Computer）等の汎用の情報処理装置、ＰＬＣ（programmable logic controller）等のコントローラ等であってよい。
【００６８】
＜マニピュレータ＞
次に、図４を用いて、本実施形態に係るマニピュレータ３のハードウェア構成の一例について説明する。図４は、本実施形態に係るマニピュレータ３のハードウェア構成の一例を模式的に例示する。
【００６９】
本実施形態に係るマニピュレータ３は、６軸の垂直多関節型の産業用ロボットであり、台座部３０及び６つの関節部３１〜３６を備えている。各関節部３１〜３６は、サーボモータ（不図示）を内蔵していることで、各軸を中心に回転可能に構成されている。第１関節部３１は、台座部３０に接続されており、先端側の部分を台座の軸周りに回転させる。第２関節部３２は、第１関節部３１に接続されており、先端側の部分を前後方向に回転させる。第３関節部３３は、リンク３９１を介して第２関節部３２に接続されており、先端側の部分を上下方向に回転させる。第４関節部３４は、リンク３９２を介して第３関節部３３に接続されており、先端側の部分をリンク３９２の軸周りに回転させる。第５関節部３５は、リンク３９３を介して第４関節部３４に接続されており、先端側の部分を上下方向に回転させる。第６関節部３６は、リンク３９４を介して第５関節部３５に接続されており、先端側の部分をリンク３９４の軸周りに回転させる。第６関節部３６の先端側には、力覚センサ３８と共にグリッパ３７が取り付けられている。
【００７０】
各関節部３１〜３６には、エンコーダ（不図示）が更に内蔵されている。エンコーダは、各関節部３１〜３６の角度（制御量）を測定可能に構成されている。エンコーダの測定データは、各関節部３１〜３６の角度の制御に利用される。また、力覚センサ３８は、グリッパ３７に作用する６軸方向の力及びモーメントを検出するように構成されている。力覚センサ３８の測定データは、グリッパ３７の把持力を調整したり、グリッパ３７に異常な力が作用しているか否かを検知したりするために利用されてよい。
【００７１】
なお、マニピュレータ３のハードウェア構成は、このような例に限定されなくてもよい。マニピュレータ３の具体的なハードウェア構成に関して、実施の形態に応じて適宜、構成要素の省略、置換及び追加が可能である。例えば、マニピュレータ３は、マニピュレータ３の制御量又はその他の属性を観測するために、エンコーダ及び力覚センサ３８以外のセンサを備えていてもよい。マニピュレータ３の軸数は、６軸に限定されなくてもよい。また、マニピュレータ３には、公知の産業用ロボットが採用されてもよい。
【００７２】
［ソフトウェア構成］
（Ａ）制御処理
次に、図５Ａを用いて、本実施形態に係る制御装置１の制御処理に関するソフトウェア構成の一例について説明する。図５Ａは、本実施形態に係る制御装置１の制御処理に関するソフトウェア構成の一例を模式的に例示する。
【００７３】
制御装置１の制御部１１は、記憶部１２に記憶された制御プログラム８１をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開された制御プログラム８１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図５Ａに示されるとおり、本実施形態に係る制御装置１は、目標設定部１０１、データ取得部１０２、関係特定部１０３、行動決定部１０４、指令決定部１０５、及び動作制御部１０６をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、制御処理に関する制御装置１の各ソフトウェアモジュールは、制御部１１（ＣＰＵ）により実現される。
【００７４】
目標設定部１０１は、最終目標ｇｎとなる複数の対象物の間の相対関係量ｒｎを設定する。最終目標ｇｎの相対関係量ｒｎは、上記図２Ｆに例示されるように、与えられた作業Ｔに応じて設定される。この最終目標ｇｎの相対関係量ｒｎは、ＣＡＤ等のシミュレータにより与えられてもよいし、オペレータの指定により与えられてもよい。
【００７５】
データ取得部１０２は、環境ＷＳに存在する複数の対象物を観察するセンサから観察データを繰り返し取得する。関係特定部１０３は、取得された観察データから、複数の対象物の間の相対関係量を算出する。本実施形態では、相対関係量は、複数の対象物の間の相対座標を含む。また、センサは、カメラＣＡを含み、観察データは、カメラＣＡにより得られた画像データ４０を含む。そのため、本実施形態では、データ取得部１０２は、カメラＣＡから画像データ４０を観察データとして繰り返し取得する。関係特定部１０３は、取得された画像データ４０から、複数の対象物の間の相対座標を含む相対関係量を算出する。
【００７６】
画像データ４０から相対座標を算出する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。本実施形態では、関係特定部１０３は、各対象物のモデルを利用して、各対象物の間の相対座標を算出する。具体的に、関係特定部１０３は、カメラＣＡにより得られた画像データ４０に対して、ＣＡＤデータ１２１により示される各対象物のモデルをマッチングする。関係特定部１０３は、このマッチングの結果に基づいて、複数の対象物の間の相対座標を算出する。
【００７７】
行動決定部１０４は、動作の制御を開始する時点ｓｔにおける相対関係量ｒ０から設定された最終目標ｇｎの相対関係量ｒｎを実現するまでの、複数の対象物の目標（ｇ１等）とする状態における相対関係量の系列ＲＳを決定する。本実施形態では、開始する時点ｓｔにおける相対関係量ｒ０は、作業の遂行に関してマニピュレータ３の動作の制御を開始する直前の時点に取得された画像データ４０から算出される。また、本実施形態では、行動決定部１０４は、マップ情報１２３を保持する。相対関係量の系列ＲＳの決定には、このマップ情報１２３が利用される。具体的には、行動決定部１０４は、マップ情報１２３により示される配置空間において、複数のノードのうちから経由するノードを選択することで、開始する時点ｓｔの状態における相対関係量ｒ０に対応するノードから最終目標ｇｎの状態における相対関係量ｒｎに対応するノードまでの経路を探索する。そして、行動決定部１０４は、探索された経路に含まれるノードに対応する相対関係量（ｒ１等）により相対関係量の系列ＲＳを生成する。
【００７８】
指令決定部１０５は、最終目標ｇｎの相対関係量ｒｎを実現するまで、カメラＣＡから取得された最新の画像データ４０から算出された現在の状態における相対関係量を、相対関係量の系列ＲＳに含まれる、現在の状態の次に遷移する目標における相対関係量に変化させるように、マニピュレータ３に与える制御指令４１を繰り返し決定する。図５Ａの例では、この繰り返しのｓ回目の処理として、現在の状態ｎｓから次の目標ｇｓの状態に遷移させる場面が例示されている。この場面では、指令決定部１０５は、最新の画像データ４０ｓから算出された現在の状態ｎｓにおける相対関係量ｐｓを、次に遷移する目標ｇｓにおける相対関係量ｒｓに変化させるように、制御指令４１ｓを決定する。
【００７９】
制御指令４１を決定する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。本実施形態では、指令決定部１０５は、学習結果データ１２７を保持することで、学習済みのニューラルネットワーク５１を含んでいる。この学習済みのニューラルネットワーク５１は、本発明の「第１の学習済みの学習モデル」の一例である。指令決定部１０５は、学習済みのニューラルネットワーク５１を利用することで、制御指令４１を決定する。具体的には、指令決定部１０５は、現在の状態ｎｓにおける相対関係量ｐｓ及び次に遷移する目標ｇｓの状態における相対関係量ｒｓをニューラルネットワーク５１に入力し、ニューラルネットワーク５１の演算処理を実行する。これにより、指令決定部１０５は、ニューラルネットワーク５１から出力される出力値を、制御指令４１ｓを決定した結果として取得する。
【００８０】
動作制御部１０６は、決定された制御指令４１をマニピュレータ３に出力する。この動作制御部１０６は、本発明の「出力部」の一例である。本実施形態では、動作制御部１０６は、この制御指令４１の出力処理として、制御指令４１に基づいて、マニピュレータ３の動作を制御する。最終目標ｇｎの相対関係量ｒｎを実現するまで、指令決定部１０５及び動作制御部１０６の処理が繰り返されることで、マニピュレータ３は、例えば、上記図２Ａ〜図２Ｆで例示されるような、与えられた作業Ｔの遂行に関する一連の動作を実行するように制御される。
【００８１】
（ニューラルネットワーク）
次に、学習モデルの一例であるニューラルネットワーク５１について説明する。図５Ａに示されるとおり、本実施形態に係るニューラルネットワーク５１は、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力側から順に、入力層５１１、中間（隠れ）層５１２、及び出力層５１３を備えている。なお、図５Ａの例では、ニューラルネットワーク５１は、１層の中間層５１２を備えており、入力層５１１の出力が中間層５１２に入力され、中間層５１２の出力が出力層５１３に入力されている。ただし、中間層５１２の数は、このような例に限られなくてもよい。ニューラルネットワーク５１は、２層以上の中間層を備えてもよい。
【００８２】
各層５１１〜５１３に含まれるニューロンの数は、実施の形態に応じて適宜選択されてよい。隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層５１１〜５１３に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、学習モデルの演算パラメータの一例である。
【００８３】
指令決定部１０５は、現在の状態ｎｓにおける相対関係量ｐｓ及び次に遷移する目標ｇｓの状態における相対関係量ｒｓを入力層５１１に入力し、ニューラルネットワーク５１の演算処理として各層５１１〜５１３に含まれる各ニューロンの発火判定を入力側から順に行う。これにより、指令決定部１０５は、制御指令４１ｓを決定した結果として、出力層５１３から出力される出力値を取得する。
【００８４】
なお、本実施形態では、このような学習済みのニューラルネットワーク５１の構成（例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、及び演算パラメータ（例えば、各ニューロン間の結合の重み、各ニューロンの閾値）を示す情報は、学習結果データ１２７に含まれている。指令決定部１０５は、学習結果データ１２７を参照して、現在の状態及び次に遷移する目標から制御指令４１を決定する処理に利用する学習済みのニューラルネットワーク５１の設定を行う。
【００８５】
（Ｂ）学習処理
次に、図５Ｂを用いて、本実施形態に係る制御装置１の学習処理に関するソフトウェア構成の一例について説明する。図５Ｂは、本実施形態に係る制御装置１の学習処理に関するソフトウェア構成の一例を模式的に例示する。
【００８６】
制御装置１の制御部１１は、記憶部１２に記憶された学習プログラム８２をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開された学習プログラム８２をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図５Ｂに示されるとおり、本実施形態に係る制御装置１は、環境情報取得部１１１、マップ作成部１１２、マップ保存処理部１１３、学習データ取得部１１４、学習処理部１１５、及び保存処理部１１６をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、学習処理に関する制御装置１の各ソフトウェアモジュールは、制御部１１（ＣＰＵ）により実現される。
【００８７】
環境情報取得部１１１は、作業Ｔを遂行する環境ＷＳに存在する各対象物に関する環境情報（例えば、ＣＡＤデータ１２１）を取得する。マップ作成部１１２は、取得された環境情報を利用して、配置空間を示すマップ情報１２３を作成する。マップ保存処理部１１３は、作成されたマップ情報１２３を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部１１内のＲＡＭ、記憶部１２、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。
【００８８】
記憶メディアは、例えば、ＣＤ、ＤＶＤ等であってよく、制御部１１は、ドライブ１６を介して記憶メディアにマップ情報１２３を格納してもよい。外部記憶装置は、例えば、ＮＡＳ（Network Attached Storage）等のデータサーバであってよい。この場合、制御装置１は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等の通信インタフェースを更に備えてよく、制御部１１は、通信インタフェースを利用して、ネットワークを介してデータサーバにマップ情報１２３を格納してもよい。また、外部記憶装置は、例えば、制御装置１に接続された外付けの記憶装置であってもよい。
【００８９】
学習データ取得部１１４は、ニューラルネットワーク５１の機械学習に利用する学習データ１２５を取得する。学習データ１２５は、例えば、第１の状態における相対関係量１２５１及び第２の状態における相対関係量１２５２と、相対関係量１２５１から相対関係量１２５２に変化させるようにマニピュレータ３の動作を制御するための制御指令１２５３との組み合わせによりそれぞれ構成される複数の学習データセット１２５０を含む。第１の状態は、訓練用の「現在の状態」に相当する。第２の状態は、訓練用の「次に遷移する状態」に相当する。そのため、相対関係量１２５１を「第１の相対関係量」と称し、相対関係量１２５２を「第２の相対関係量」と称してもよい。第１の状態における相対関係量１２５１及び第２の状態における相対関係量１２５２は、訓練データ（入力データ）として利用される。一方、制御指令１２５３は、教師データ（正解データ）として利用される。
【００９０】
学習処理部１１５は、取得された学習データ１２５を利用して、ニューラルネットワーク５１の機械学習を実施する。すなわち、学習処理部１１５は、機械学習により、相対関係量１２５１及び相対関係量１２５２の入力に対して、各対象物の間の相対関係量を相対関係量１２５１から相対関係量１２５２に変化させるようにマニピュレータ３の動作を制御するための制御指令（制御指令１２５３）を決定するようにニューラルネットワーク５１を訓練する。これにより、学習済みのニューラルネットワーク５１が構築される。保存処理部１１６は、構築された学習済みのニューラルネットワーク５１に関する情報を所定の記憶領域に保存する。
【００９１】
（Ｃ）その他
制御装置１の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、制御装置１の各ソフトウェアモジュールがいずれも汎用のＣＰＵによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。また、制御装置１のソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【００９２】
§３  動作例
次に、制御装置１の動作例について説明する。本実施形態に係る制御装置１は、学習処理として、マップ情報１２３を作成する処理及び学習済みのニューラルネットワーク５１を構築する処理の２つの処理を実行する。また、本実施形態に係る制御装置１は、マニピュレータ３の動作を制御するための処理を実行する。以下、各処理手順の一例について説明する。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００９３】
（３−１）マップ情報の作成
まず、図６及び図７Ａ〜図７Ｃを用いて、マップ情報１２３の作成に関する処理手順の一例について説明する。図６は、本実施形態に係る制御装置１によるマップ情報１２３の作成に関する処理手順の一例を示すフローチャートである。また、図７Ａ〜図７Ｃは、マップ情報１２３を作成する過程の一例を模式的に例示する。
【００９４】
（ステップＳ１０１）
ステップＳ１０１では、制御部１１は、環境情報取得部１１１として動作し、作業Ｔを遂行する環境ＷＳに存在する各対象物に関する環境情報を取得する。環境情報は、各対象物の間の相対関係量をシミュレート可能であれば、その形式及び種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。制御部１１は、例えば、環境情報としてＣＡＤデータ１２１を取得してもよい。ＣＡＤデータ１２１は、各対象物のモデル（例えば、３Ｄモデル）等の物理的な構成を示す構成情報を含む。このＣＡＤデータ１２１は、公知のソフトウェアにより生成されてよい。環境情報を取得すると、制御部１１は、次のステップＳ１０２に処理を進める。
【００９５】
（ステップＳ１０２及びステップＳ１０３）
ステップＳ１０２及びステップＳ１０３では、制御部１１は、マップ作成部１１２として動作して、配置空間の作成及び設定を行う。具体的に、ステップＳ１０２では、制御部１１は、取得された環境情報を利用して、複数の対象物（本実施形態では、グリッパ３７、第１ワークＷ１、第２ワークＷ２）の間の相対関係量の集合を表現する配置空間を作成する。次のステップＳ１０３では、作成された配置空間に自由領域及び制限領域を設定する。
【００９６】
図７Ａは、作成される配置空間ＳＰの一例を模式的に例示する。図７Ａでは、説明の便宜のため、配置空間ＳＰを２次元で表現している。しかしながら、配置空間ＳＰの次元は、相対関係量に依存するため、必ずしも２次元とは限らない。後述する図７Ｂ及び図７Ｃにおいても同様である。配置空間ＳＰに属するノード（点）は、複数の対象物の間の相対関係量に対応する。
【００９７】
各対象物は、物理的な構成を有しているため、各対象物の相対関係量として実現可能な相対関係量と実現不能な相対関係量とが存在する。例えば、上記図２Ａ等のように、グリッパ３７、第１ワークＷ１、及び第２ワークＷ２それぞれが移動可能な範囲で離れている状態は、各対象物の間の相対的な関係として取り得る状態であり、この状態のおける相対関係量は実現可能である。一方で、例えば、第１ワークＷ１及び第２ワークＷ２が互いに貫通不能であるにも関わらず、いずれか一方が他方に貫通している状態は、各対象物の間の相対的な関係として取り得ない状態であり、この状態における相対関係量は実現不能である。また、例えば、マニピュレータ３の構成に応じて、グリッパ３７が移動可能な範囲及び角度は制約される。そのため、グリッパ３７が他の対象物に対して移動不能な範囲に移動している状態は、各対象物の間の相対的な関係として取り得ない状態であり、この状態における相対関係量は実現不能である。
【００９８】
そこで、制御部１１は、相対関係量の集合を表現する配置空間ＳＰを作成した後に、ＣＡＤデータ１２１を参照して、各対象物の物理的な構成に応じて、実現可能な相対関係量に対応するノードの属する自由領域、及び実現不能な相対関係量に対応するノードの属する制限領域を設定する。図７Ａの例では、領域Ｅ１が、自由領域であり、その他の領域Ｅ２〜Ｅ４が、制限領域である。自由領域及び制限領域の設定が完了すると、制御部１１は、次のステップＳ１０４に処理を進める。
【００９９】
（ステップＳ１０４）
ステップＳ１０４では、制御部１１は、マップ作成部１１２として動作し、配置空間の自由領域内において、各対象物の間の相対的な関係として取り得る各状態における相対関係量にそれぞれ対応する複数のノードを配置する。各ノードは、例えば、目標（ｇ１等）とする状態の候補となる状態における相対関係量に対応する。
【０１００】
図７Ｂは、配置空間ＳＰの自由領域（領域Ｅ１）に各ノードＮｄを配置した場面を模式的に例示する。各ノードＮｄは、複数の対象物の間の相対的な関係の一状態に対応し、その一状態における相対関係量（本実施形態では、各相対座標ｒｃ１〜ｒｃ３）を示す。各ノードＮｄは、例えば、ランダムサンプリング等の公知の方法により設定されてもよい。また、各ノードＮｄは、例えば、入力装置１４を介したオペレータの指定により設定されてもよい。
【０１０１】
また、制御部１１は、開始する時点ｓｔの候補に対応するノード（開始点）と最終目標ｇｎの候補に対応するノード（終着点）とを設定し、設定された開始点から終着点までの経路を適宜探索してもよい。この経路探索には、公知の方法が採用されてもよい。また、この経路探索は、シミュレーションで行われてもよいし、マニピュレータ３を駆動して行われてもよい。そして、制御部１１は、この経路探索において、遷移確率の高いノード、例えば、登場頻度が閾値以上である各ノードを抽出し、抽出した各ノードをノードＮｄとして設定してもよい。
【０１０２】
設定される各ノードＮｄは、開始する時点ｓｔ及び最終目標ｇｎそれぞれの候補に対応するノードを含んでもよい。各ノードＮｄの設定が完了すると、制御部１１は、次のステップＳ１０５に処理を進める。
【０１０３】
（ステップＳ１０５）
ステップＳ１０５では、制御部１１は、マップ作成部１１２として動作し、各ノード間をエッジで連結する。
【０１０４】
図７Ｃは、各ノードＮｄ間をエッジＥｇで連結した場面を模式的に例示する。エッジＥｇは、２つのノードＮｄの間を接続し、一方のノードＮｄに対応する状態から他方のノードＮｄに対応する状態に遷移可能であることを示す。そのため、エッジＥｇは、制限領域（図７Ｃの例では、領域Ｅ２〜Ｅ４）に入らないように設定される。
【０１０５】
エッジＥｇを設定する２つのノードＮｄの組み合わせを決定する方法は、実施の形態に応じて適宜選択されてよい。例えば、最近傍法等の公知の方法に基づいて、エッジＥｇを設定する２つのノードＮｄの組み合わせが決定されてもよい。また、例えば、入力装置１４を介したオペレータの指定により、エッジＥｇを設定する２つのノードＮｄの組み合わせが決定されてもよい。これにより、エッジＥｇが設定されると、マップ情報１２３の作成が完了する。つまり、本実施形態では、マップ情報１２３は、ノードＮｄ及びエッジＥｇにより構成されるグラフ構造を有している。マップ情報１２３の作成が完了すると、制御部１１は、次のステップＳ１０６に処理を進める。
【０１０６】
（ステップＳ１０６）
ステップＳ１０６では、制御部１１は、マップ保存処理部１１３として動作し、作成されたマップ情報１２３を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部１１内のＲＡＭ、記憶部１２、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。以上により、制御部１１は、マップ情報１２３の作成に関する一連の処理を終了する。
【０１０７】
（３−２）ニューラルネットワークの機械学習
次に、図８を用いて、制御指令４１の決定処理に利用する学習済みのニューラルネットワーク５１の構築に関する処理手順の一例について説明する。図８は、本実施形態に係る制御装置１による学習済みのニューラルネットワーク５１の構築に関する処理手順の一例を示すフローチャートである。
【０１０８】
（ステップＳ２０１）
ステップＳ２０１では、制御部１１は、学習データ取得部１１４として動作し、ニューラルネットワーク５１の機械学習に利用する学習データ１２５を取得する。本実施形態では、学習データ１２５は、相対関係量１２５１及び相対関係量１２５２と制御指令１２５３との組み合わせによりそれぞれ構成される複数の学習データセット１２５０を含む。
【０１０９】
各学習データセット１２５０を取得する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、シミュレータによる仮想環境又は実環境を用意し、用意した環境下で、第１の状態及び第２の状態の組み合わせを様々な条件で与え、複数の対象物の間の相対的な関係が与えた第１の状態から第２の状態に遷移するようにマニピュレータ３を駆動する。そして、第１の状態から第２の状態に適切に遷移するように駆動した時の制御指令１２５３を、第１の状態のおける相対関係量１２５１及び第２の状態における相対関係量１２５２と組み合わせる。これにより、各学習データセット１２５０を生成することができる。
【０１１０】
各学習データセット１２５０は、コンピュータの動作により自動的に生成されてもよいし、入力装置１４を介したオペレータの操作により手動的に生成されてもよい。また、各学習データセット１２５０の生成は、制御装置１により行われてもよいし、制御装置１以外の他のコンピュータにより行われてもよい。各学習データセット１２５０を制御装置１が生成する場合、制御部１１は、自動的に又はオペレータの操作により手動的に上記一連の処理を実行することで、複数の学習データセット１２５０を含む学習データ１２５を取得する。一方、各学習データセット１２５０を他のコンピュータが生成する場合、制御部１１は、例えば、ネットワーク、記憶媒体９１等を介して、他のコンピュータにより生成された複数の学習データセット１２５０を含む学習データ１２５を取得する。
【０１１１】
取得する学習データセット１２５０の件数は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。学習データ１２５を取得すると、制御部１１は、次のステップＳ２０２に処理を進める。
【０１１２】
（ステップＳ２０２）
ステップＳ２０２では、制御部１１は、学習処理部１１５として動作し、取得された学習データ１２５を利用して、ニューラルネットワーク５１の機械学習を実施する。
【０１１３】
詳細には、まず、制御部１１は、処理対象となるニューラルネットワーク５１を用意する。用意するニューラルネットワーク５１の構成は、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部１１は、過去の機械学習を行うことで得られた学習結果データに基づいて、ニューラルネットワーク５１を用意してもよい。
【０１１４】
次に、制御部１１は、ステップＳ２０１で取得した各学習データセット１２５０に含まれる相対関係量１２５１及び相対関係量１２５２を入力データとして利用し、対応する制御指令１２５３を教師データとして利用して、ニューラルネットワーク５１の学習処理を実行する。この学習処理には、確率的勾配降下法等が用いられてよい。
【０１１５】
例えば、第１のステップでは、制御部１１は、各学習データセット１２５０について、相対関係量１２５１及び相対関係量１２５２を入力層５１１に入力し、入力側から順に各層（５１１〜５１３）に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、相対関係量１２５１から相対関係量１２５２に変化させるためにマニピュレータ３に与える制御指令を決定した結果に対応する出力値を出力層５１３から取得する。第２のステップでは、制御部１１は、取得した出力値と対応する制御指令１２５３との誤差を算出する。第３のステップでは、制御部１１は、誤差逆伝播（Back propagation）法により、算出した出力値の誤差を用いて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。第４のステップでは、制御部１１は、算出した各誤差に基づいて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
【０１１６】
制御部１１は、上記第１〜第４のステップを繰り返すことで、各学習データセット１２５０について、相対関係量１２５１及び相対関係量１２５２を入力層５１１に入力すると、対応する制御指令１２５３と一致する出力値が出力層５１３から出力されるように、ニューラルネットワーク５１の演算パラメータの値を調節する。例えば、制御部１１は、各学習データセット１２５０について、出力層５１３から得られる出力値と制御指令１２５３との誤差の和が閾値以下になるまで、上記第１〜第４のステップによる演算パラメータの値の調節を繰り返す。閾値は、実施の形態に応じて適宜設定されてよい。これにより、制御部１１は、相対関係量１２５１及び相対関係量１２５２の入力に対して、対応する制御指令１２５３と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク５１を構築することができる。この学習データ１２５を利用した機械学習が完了すると、制御部１１は、次のステップＳ２０３に処理を進める。
【０１１７】
（ステップＳ２０３）
ステップＳ２０３では、制御部１１は、保存処理部１１６として動作し、学習済みのニューラルネットワーク５１に関する情報を所定の記憶領域に保存する。本実施形態では、制御部１１は、ステップＳ２０２の機械学習により構築された学習済みのニューラルネットワーク５１の構成及び演算パラメータを示す情報を学習結果データ１２７として生成する。そして、制御部１１は、生成した学習結果データ１２７を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部１１内のＲＡＭ、記憶部１２、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。以上により、制御部１１は、学習済みのニューラルネットワーク５１の構築に関する一連の処理を終了する。
【０１１８】
（３−３）制御処理
次に、図９Ａ及び図９Ｂを用いて、マニピュレータ３の動作制御に関する処理手順の一例について説明する。図９Ａ及び図９Ｂは、本実施形態に係る制御装置１によるマニピュレータ３の動作制御に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、本発明の「制御方法」の一例である。
【０１１９】
（ステップＳ３０１及びステップＳ３０２）
ステップＳ３０１では、制御部１１は、遂行する作業Ｔの指定を受け付ける。作業Ｔの指定を受け付ける方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、制御部１１は、入力装置１４を介した作業Ｔの名称の入力により、遂行する作業Ｔの指定を受け付けてもよい。また、例えば、制御部１１は、遂行する作業Ｔの候補を示すリストを出力装置１５に出力し、オペレータに遂行する作業Ｔをリストから選択させることで、遂行する作業Ｔの指定を受け付けてもよい。
【０１２０】
次のステップＳ３０２では、制御部１１は、目標設定部１０１として動作し、指定された作業Ｔに応じて最終目標ｇｎとなる相対関係量ｒｎを設定する。この最終目標ｇｎの相対関係量ｒｎは、ＣＡＤ等のシミュレータにより与えられてもよいし、オペレータの指定により与えられてもよい。最終目標ｇｎの相対関係量を設定すると、制御部１１は、次のステップＳ３０３に処理を進める。
【０１２１】
（ステップＳ３０３及びステップＳ３０４）
ステップＳ３０３では、制御部１１は、データ取得部１０２として動作し、環境ＷＳに存在する複数の対象物を観察するセンサから観察データを取得する。次のステップＳ３０４では、制御部１１は、関係特定部１０３として動作し、取得された観察データから、複数の対象物の間の相対関係量を算出する。
【０１２２】
本実施形態では、制御部１１は、カメラＣＡから画像データ４０を取得する。そして、制御部１１は、取得された画像データ４０に対して、ＣＡＤデータ１２１により示される各対象物（グリッパ３７、第１ワークＷ１、及び第２ワークＷ２）のモデルをマッチングする。制御部１１は、このマッチングの結果に基づいて、各対象物の間の相対座標ｒｃ１〜ｒｃ３（相対関係量）を算出する。マッチングの方法及び各相対座標ｒｃ１〜ｒｃ３の導出には、公知の画像処理方法が用いられてよい。
【０１２３】
なお、このステップＳ３０３及びステップＳ３０４を処理する時点は、動作の制御を開始する直前の時点（すなわち、開始する時点ｓｔ）である。ステップＳ３０３で取得された画像データ４０はこの時点では最新である。そのため、ステップＳ３０４により算出された相対関係量は、上記開始する時点ｓｔにおける相対関係量ｒ０及び現在の状態ｎ１における相対関係量ｐ１として利用される。相対関係量の算出が完了すると、制御部１１は、次のステップＳ３０５に処理を進める。
【０１２４】
（ステップＳ３０５）
ステップＳ３０５では、制御部１１は、行動決定部１０４として動作し、動作の制御を開始する時点ｓｔにおける相対関係量ｒ０から最終目標ｇｎの相対関係量ｒｎを実現するまでの、複数の対象物の目標（ｇ１等）とする状態における相対関係量の系列ＲＳを決定する。
【０１２５】
本実施形態では、制御部１１は、マップ情報１２３を利用して、相対関係量の系列ＲＳを決定する。具体的には、制御部１１は、マップ情報１２３により示される配置空間において、複数のノードのうちから経由するノードを選択することで、開始する時点ｓｔの状態における相対関係量ｒ０に対応するノードから最終目標ｇｎの状態における相対関係量ｒｎに対応するノードまでの経路を探索する。そして、制御部１１は、探索された経路に含まれるノードに対応する相対関係量により相対関係量の系列ＲＳを生成する。
【０１２６】
図１０は、経路探索（行動計画）の結果、開始する時点ｓｔの相対関係量ｒ０に対応するノードＮｓから最終目標ｇｎの相対関係量ｒｎに対応するノードＮｇまでの経路の経由ノードとしてノードＮ１〜Ｎ５が選択された場面を模式的に例示する。なお、図１０の例では、説明の便宜上、ノードＮｓからノードＮｇまで５つのノードＮ１〜Ｎ５を経由している（すなわち、ｎが６である）が、経由するノードの数はこのような例に限定されなくてもよい。
【０１２７】
開始する時点ｓｔに対応するノードＮｓ及び最終目標ｇｎに対応するノードＮｇが既にノードＮｄとして設定されている場合には、制御部１１は、それぞれに対応するノードＮｄを各ノード（Ｎｓ、Ｎｇ）として利用する。一方、各ノード（Ｎｓ、Ｎｇ）がノードＮｄとして設定されていない場合には、制御部１１は、配置空間ＳＰ内に各ノード（Ｎｓ、Ｎｇ）を設定する。そして、制御部１１は、配置空間ＳＰに設定された複数のノードＮｄのうちから経由するノードを選択することで、ノードＮｓからノードＮｇまでの経路を探索する。経路探索には、例えば、ダイクストラ法等の公知の探索方法が用いられてよい。図１０の例では、ノードＮｓからノードＮｇまでの経路は、選択されたノードＮ１〜Ｎ５に連結されたエッジＥｇにより構成される。この場合、制御部１１は、この経路に含まれる各ノード（Ｎ１〜Ｎ５、Ｎｇ）に対応する相対関係量により相対関係量の系列ＲＳを構成する。
【０１２８】
なお、経路探索には、制約条件が課されてもよい。この場合、制御部１１は、制約条件を満たすように、ノードＮｓからノードＮｇまでの経路を探索する。制約条件の種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。制約条件は、例えば、オペレータ等に指定されたノードＮｄを経由することであってもよい。この場合、制御部１１は、指定されたノードＮｄを経由するように、ノードＮｓからノードＮｇまでの経路を探索する。
【０１２９】
また、制約条件として、例えば、各エッジＥｇに重みが設定されてよい。この重みは、経路探索において優先する項目に応じて適宜設定又は変更されてよい。例えば、優先する項目が最短経路であったと想定する。この場合には、各エッジＥｇの重みは、グリッパ３７を駆動する距離に応じて設定されてよい。また、例えば、優先する項目が、第１ワークＷ１を第２ワークＷ２から所定距離だけ離して運搬することであったと想定する。この場合、第１ワークＷ１の運搬中において、第１ワークＷ１と第２ワークＷ２との距離が所定距離以内である相対関係量に対応するノードを経由するエッジＥｇが優先されず、そうではないノードを経由するエッジＥｇが優先されるように、各エッジＥｇの重みが設定されてよい。制御部１１は、この重みを利用して、経路探索を行ってもよい。
【０１３０】
相対関係量の系列ＲＳを決定すると、制御部１１は、次のステップＳ３０６に処理を進める。
【０１３１】
（ステップＳ３０６）
ステップＳ３０６では、制御部１１は、行動決定部１０４として動作し、相対関係量の系列ＲＳの中から、現在の状態の次に遷移する目標の状態における相対関係量を特定する。現在の状態における相対関係量の各相対座標ｒｃ１〜ｒｃ３は、カメラＣＡから取得された最新の画像データ４０から算出される。次に遷移する目標は、例えば、最終目標ｇｎに向かって、現在の状態に最も近い目標である。制御部１１は、ステップＳ３０５で探索した経路をたどることで、現在の状態の次に遷移する目標の状態における相対関係量を特定することができる。
【０１３２】
例えば、ステップＳ３０６を最初に実行する段階では、ステップＳ３０３で取得された画像データ４０が最新であり、この画像データ４０から算出された各相対座標ｒｃ１〜ｒｃ３が現在の状態ｎ１における相対関係量ｐ１である。そのため、この段階では、制御部１１は、相対関係量の系列ＲＳの中から、目標ｇ１の相対関係量ｒ１を次に遷移する相対関係量として特定する。図１０の例では、現在の状態ｎ１における相対関係量ｐ１は、開始のノードＮｓに対応する。そのため、次に遷移する目標の状態における相対関係量は、開始のノードＮｓから最終のノードＮｇの方にエッジＥｇを一つ経由して到達する（すなわち、開始のノードＮｓに隣接する）ノードＮ１に対応する。
【０１３３】
次に遷移する目標の状態における相対関係量を特定すると、制御部１１は、次のステップＳ３０７に処理を進める。
【０１３４】
（ステップＳ３０７）
ステップＳ３０７では、制御部１１は、指令決定部１０５として動作し、現在の状態における相対関係量を、次に遷移する目標の状態における相対関係量に変化させるように、マニピュレータ３に与える制御指令４１を決定する。
【０１３５】
本実施形態では、制御部１１は、学習済みのニューラルネットワーク５１を利用して、制御指令４１を決定する。具体的に、制御部１１は、学習結果データ１２７を参照して、学習済みのニューラルネットワーク５１の設定を行う。続いて、制御部１１は、現在の状態における相対関係量及び次に遷移する目標の状態における相対関係量をニューラルネットワーク５１の入力層５１１に入力する。そして、制御部１１は、ニューラルネットワーク５１の演算処理として、入力側から順に各層５１１〜５１３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、制御指令４１を決定した結果に対応する出力値を出力層５１３から取得する。
【０１３６】
なお、ニューラルネットワーク５１の出力値の形式は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、ニューラルネットワーク５１の出力値は、制御指令４１に直接的に対応していてもよい。この場合、制御部１１は、ニューラルネットワーク５１の出力値をそのまま制御指令４１として取り扱うことができる。また、例えば、ニューラルネットワーク５１の出力値は、制御指令４１を決定するためのインデックス（例えば、クラス）を示してもよい。この場合、制御装置１は、出力値と制御指令とを対応付けたテーブル形式等の参照情報（不図示）を記憶部１２に保持していてもよい。制御部１１は、この参照情報に基づいて、ニューラルネットワーク５１の出力値から制御指令４１を決定することができる。制御指令４１を決定すると、制御部１１は、次のステップＳ３０８に処理を進める。
【０１３７】
（ステップＳ３０８）
ステップＳ３０８では、制御部１１は、動作制御部１０６として動作し、決定された制御指令４１をマニピュレータ３に出力する。本実施形態では、制御部１１は、制御指令４１の出力処理として、制御指令４１に基づいて、マニピュレータ３の動作を制御する。
【０１３８】
マニピュレータ３の動作を制御する方法は、制御指令４１の形式に応じて適宜選択されてよい。例えば、制御指令４１は、各関節部３１〜３６の操作量を直接的に示してもよい。各関節部３１〜３６の操作量は、例えば、トルク指令値、電圧指令値等である。この場合、制御部１１は、得られた制御指令４１をそのまま各関節部３１〜３６のサーボモータに与えることで、マニピュレータ３の動作を制御する。
【０１３９】
また、例えば、制御指令４１は、各関節部３１〜３６の制御量の目標値を示してもよい。各関節部３１〜３６の制御量は、例えば、各関節部３１〜３６の角度である。この場合、制御部１１は、各関節部３１〜３６に内蔵されたエンコーダから各関節部３１〜３６の制御量の計測値（測定データ）を取得する。エンコーダから計測値を取得するタイミングは、マニピュレータ３の動作を制御する直前であれば、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。例えば、エンコーダから計測値を取得するタイミングは、上記画像データ４０を取得するタイミングと同じであってもよい。次に、制御部１１は、制御指令４１により示される各関節部３１〜３６の制御量の目標値とエンコーダから取得した計測値との差分（偏差）から各関節部３１〜３６の操作量を算出する。操作量の算出には、ＰＩＤ（Proportional Integral Differential）制御等の従来の制御方法が用いられてよい。そして、制御部１１は、算出した各操作量を各関節部３１〜３６のサーボモータに与えることで、マニピュレータ３の動作を制御する。
【０１４０】
また、制御指令４１は、エンドエフェクタに関するものであってもよい。例えば、制御指令４１は、グリッパ３７の作業座標系の制御量の目標値を示してもよい。作業座標系の制御量は、例えば、グリッパ３７の位置、姿勢等である。この場合、制御部１１は、逆運動学に基づいて、制御指令４１により示される作業座標系の制御量の目標値から各関節部３１〜３６の関節座標系の制御量の目標値を算出する。以降の処理は、上記の例と同様であってよい。すなわち、制御部１１は、各関節部３１〜３６に内蔵されたエンコーダから各関節部３１〜３６の制御量の計測値を取得する。続いて、制御部１１は、制御指令４１により示される各関節部３１〜３６の制御量の目標値とエンコーダから取得した計測値との差分（偏差）から各関節部３１〜３６の操作量を算出する。そして、制御部１１は、算出した各操作量を各関節部３１〜３６のサーボモータに与えることで、マニピュレータ３の動作を制御する。
【０１４１】
制御指令４１に基づいてマニピュレータ３の動作を制御すると、制御部１１は、次のステップＳ３０９に処理を進める。
【０１４２】
（ステップＳ３０９及びステップＳ３１０）
ステップＳ３０９及びステップＳ３１０は、ステップＳ３０３及びステップＳ３０４と同様である。ステップＳ３０９では、制御部１１は、データ取得部１０２として動作し、カメラＣＡから画像データ４０を取得する。ステップＳ３１０では、制御部１１は、関係特定部１０３として動作し、取得された画像データ４０に対して、ＣＡＤデータ１２１により示される各対象物（グリッパ３７、第１ワークＷ１、及び第２ワークＷ２）のモデルをマッチングする。制御部１１は、このマッチングの結果に基づいて、各対象物の間の相対座標ｒｃ１〜ｒｃ３（相対関係量）を算出する。相対関係量の算出が完了すると、制御部１１は、次のステップＳ３１１に処理を進める。
【０１４３】
（ステップＳ３１１）
ステップＳ３１１では、制御部１１は、ステップＳ３０８による制御の結果、複数の対象物の間の相対関係量がステップＳ３０６で特定した目標の状態に遷移したか否かを判定する。
【０１４４】
目標の状態に遷移したか否かを判定する方法は、実施の形態に応じて適宜決定されてよい。例えば、制御部１１は、ステップＳ３１０で算出された相対関係量が、ステップＳ３０６で特定した目標の状態における相対関係量と一致するか否かを判定してもよい。この一致は、完全に一致することの他、閾値（許容誤差）による近似を含んでもよい。ステップＳ３１０で算出された相対関係量が、ステップＳ３０６で特定した目標の状態における相対関係量と一致する場合に、制御部１１は、複数の対象物の間の相対関係量が目標の状態に遷移したと判定してもよい。一方、そうではない場合に、制御部１１は、複数の対象物の間の相対関係量は目標の状態に遷移していないと判定してもよい。
【０１４５】
複数の対象物の間の相対関係量が目標の状態に遷移していないと判定した場合には、制御部１１は、ステップＳ３０７に処理を戻して、ステップＳ３０７〜Ｓ３１０の一連の処理を繰り返す。なお、この繰り返しの処理では、ステップＳ３０７に戻る前にステップＳ３０９で取得された画像データ４０が最新である。そのため、この繰り返しの処理では、制御部１１は、ステップＳ３０７に戻る前にステップＳ３１０で算出した相対関係量を現在の状態における相対関係量として取り扱う。一方、複数の対象物の間の相対関係量が目標の状態に遷移していると判定した場合には、制御部１１は、次のステップＳ３１２に処理を進める。
【０１４６】
（ステップＳ３１２）
ステップＳ３１２では、制御部１１は、最終目標ｇｎの相対関係量ｒｎを実現したか否かを判定する。ステップＳ３０６で特定された目標が最終目標ｇｎである場合には、ステップＳ３１１の判定の結果から、最終目標ｇｎの相対関係量ｒｎが実現されていることになる。そのため、この場合には、最終目標ｇｎの相対関係量ｒｎを実現したと判定し、制御部１１は、マニピュレータ３の動作制御に関する一連の処理を終了する。
【０１４７】
ステップＳ３０６で特定された目標が最終目標ｇｎ以外の目標である場合には、最終目標ｇｎの相対関係量ｒｎはまだ実現されていないことになる。この場合には、制御部１１は、ステップＳ３０６に処理を戻す。これにより、制御部１１は、最終目標ｇｎの相対関係量ｒｎを実現するまで、ステップＳ３０６〜Ｓ３１１の一連の処理を繰り返し実行する。なお、上記ステップＳ３１１と同様に、この繰り返しの処理では、ステップＳ３０６に戻る前にステップＳ３０９で取得された画像データ４０が最新である。そのため、この繰り返しの処理では、制御部１１は、ステップＳ３０６に戻る前にステップＳ３１０で算出した相対関係量を現在の状態における相対関係量として取り扱う。
【０１４８】
例えば、ステップＳ３０６〜Ｓ３１１の一連の処理をｓ回目に実行する際、ステップＳ３０６では、制御部１１は、相対関係量の系列ＲＳの中から、最新の画像データ４０ｓから算出された現在の状態ｎｓの次に遷移する目標ｇｓの状態における相対関係量ｒｓを特定する。ステップＳ３０７では、制御部１１は、現在の状態ｎｓにおける相対関係量ｐｓを、次に遷移する目標ｇｓの状態における相対関係量ｒｓに変化させるように、制御指令４１ｓを決定する。そして、ステップＳ３０８では、制御部１１は、決定された制御指令４１ｓをマニピュレータ３に出力する。最終目標ｇｎの相対関係量ｒｎを実現するまでこの一連の処理が繰り返されることで、マニピュレータ３は、例えば、図２Ａ〜図２Ｆに例示される部品運搬等の作業Ｔに関する一連の動作を実行するように制御される。
【０１４９】
［特徴］
以上のとおり、本実施形態では、マニピュレータ３の稼働する環境ＷＳ下に存在する複数の対象物（グリッパ３７、第１ワークＷ１、第２ワークＷ２）の現在の状態及び目標が、各相対座標ｒｃ１〜ｒｃ３を含む相対関係量で表現され、制御指令４１は、この相対関係量を変化させることに応じて決定される。つまり、本実施形態では、制御指令４１は、マニピュレータ３に教示する作業Ｔそのものに関連付けられるのではなく、相対関係量に変化量に関連付けられる。これにより、作業の内容に依存せずに、相対関係量を変化させることに対してマニピュレータ３に与える時系列の制御指令４１を教示することができる。
【０１５０】
図１１Ａ、図１１Ｂ及び図１２を用いて、この点について詳細に説明する。図１１Ａ及び図１１Ｂは、従来の制御方法の問題点を説明するための図である。一方、図１２は、本実施形態に係る制御方法の上記の特徴を説明するための図である。各図では、説明の便宜のために、上記図２Ａ〜図２Ｆと同様に、マニピュレータに教示する作業の一例として、グリッパ（３７、３７０）により第１ワークＷ１を第２ワークＷ２上に運搬する作業を例示している。
【０１５１】
図１１Ａに示されるとおり、作業を教示する際に、第１ワークＷ１は台Ｂ２の上に配置されており、第２ワークＷ２は、台Ｂ２と同じ高さを有する台Ｂ１の上に配置されていたと想定する。この条件の下、従来の方法により、グリッパ３７０により第１ワークＷ１を把持させ、把持させた第１ワークＷ１を第２ワークＷ２の上空の高さｈ１付近で水平移動させた後に、グリッパ３７０を下降させることで、第１ワークＷ１を第２ワークＷ２の上に配置する一連の動作をマニピュレータに教示したと想定する。
【０１５２】
この作業の教示が完了した後に、例えば、作業を行う場所を変更した等の事情により、第１ワークＷ１及び第２ワークＷ２の少なくとも一方の状態が変更されたと想定する。図１１Ｂの例では、第１ワークＷ１が、台Ｂ２よりも高さｈ２だけ低い台Ｂ３に配置された場面を例示している。
【０１５３】
従来の方法では、上記の教示により習得された時系列の制御指令は、教示対象の作業そのものに関連付けられている。そのため、マニピュレータは、上記と同様の制御指令により、第１ワークＷ１を第２ワークＷ２に運搬するよう試みる。その結果、グリッパ３７０は、台Ｂ３が台Ｂ２よりも高さｈ２だけ低くなっている分だけ、第１ワークＷ１を把持する位置が変更されてしまう。具体的には、図１１Ａの場面よりもグリッパ３７０は第１ワークＷ１の上端部側を把持し、グリッパ３７０と第１ワークＷ１との隙間Ｖが高さｈ２の分だけ拡がってしまう。
【０１５４】
したがって、高さｈ２が高さｈ１よりも大きい場合には、マニピュレータが、グリッパ３７０に把持させた第１ワークＷ１を第２ワークＷ２の上空で水平移動させようと試みた際に、第１ワークＷ１の下部が第２ワークＷ２に衝突する不具合が生じてしまう。そのため、従来の方法では、このような小さな変更が生じた際にも、新たに作業の内容を教示させなければ、マニピュレータは、その作業を適切に遂行できなくなる可能性がある。
【０１５５】
一方、本実施形態では、図１１Ａと同様にマニピュレータ３に作業を教示した場合に、習得された制御指令は、作業そのものではなく、相対関係量に変化量に関連付けられる。そのため、上記ステップＳ３０５では、第１ワークＷ１が第２ワークＷ２の上空の高さｈ１に配置される目標を含むように、相対関係量の系列ＲＳを決定することができる。そして、ステップＳ３０７では、第１ワークＷ１が第２ワークＷ２の上空の高さｈ１に配置される相対関係量を実現するよう制御指令４１を決定することができる。したがって、図１２に例示されるとおり、第１ワークＷ１が台２Ｂよりも高さｈ２だけ低い台Ｂ３に配置されることで、グリッパ３７と第１ワークＷ１との隙間Ｖが高さｈ２の分だけ拡がってしまったとしても、第１ワークＷ１を第２ワークＷ２の上空の高さｈ１付近で水平移動させるようにマニピュレータ３の動作を制御することができる。
【０１５６】
本実施形態では、このように、作業の内容に依存せずに、相対関係量を変化させることに対してマニピュレータ３に与える時系列の制御指令４１を教示することができる。したがって、本実施形態によれば、習得される作業を遂行する能力の汎用性を高めることができる。これによって、マニピュレータ３に作業を教示するのにかかるコストを低減することができる。
【０１５７】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【０１５８】
＜４．１＞
上記実施形態では、制御対象のロボット装置として、垂直多関節型のマニピュレータ３を例示している。しかしながら、ロボット装置の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ロボット装置は、例えば、産業用ロボット、自動的に移動可能な移動体等を含んでよい。産業用ロボットは、例えば、上記垂直多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等を含む。また、自動的に移動可能な移動体は、例えば、ドローン、自度運転可能に構成された車両、モバイルロボット等を含む。本発明は、対象物の操作可能なあらゆる種類のロボット装置に適用されてよい。なお、自動的に移動可能な移動体であって、ＧＰＳ（Global Positioning System）測定器を備える移動体に本発明を適用する場合に、位置に関する相対関係量（例えば、上記相対座標）の特定には、ＧＰＳ測定器により測定されたＧＰＳ情報が用いられてよい。この場合、各対象物に備えられたＧＰＳ測定器がセンサの一例であり、各ＧＰＳ測定器から得られたＧＰＳ情報が観察データの一例である。センサ及び観察データは、ロボット装置の種類に応じて適宜選択されてよい。また、上記実施形態では、マニピュレータの備えるエンドエフェクタとして、グリッパ３７を例示している。しかしながら、エンドエフェクタの種類は、グリッパに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。エンドエフェクタは、例えば、グリッパ以外に、吸引器、ドライバ等であってもよい。
【０１５９】
＜４．２＞
上記実施形態では、環境ＷＳに存在する複数の対象物を観察するセンサとして、カメラＣＡを例示している。センサから取得される観察データとして画像データ４０を例示している。また、上記実施形態では、このカメラＣＡにより取得される画像データ４０から相対関係量として各相対座標ｒｃ１〜ｒｃ３を算出している。しかしながら、センサ及び相対関係量の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。観察データは、画像データに限定されなくてよく、採用されるセンサの種類に応じて適宜選択されてよい。
【０１６０】
センサは、一般的なカメラ以外に、例えば、深度センサ、ステレオカメラ等であってもよい。また、相対関係量は、相対座標以外に、例えば、複数の対象物の間に作用する力、複数の対象物の間の状態（例えば、連結されているか否か）等であってよい。複数の対象物の間に作用する力を相対関係量として採用する場合に、複数の対象物を観察するセンサとして、例えば、上記力覚センサ３８、触覚センサ、圧力センサ、ロードセル等の力を検知可能なセンサが採用されてよい。
【０１６１】
なお、上記実施形態では、制御装置１は、カメラＣＡに接続され、カメラＣＡから直接的に観察データを取得している。しかしながら、センサから観察データを取得することは、このようなセンサから観察データを直接的に取得することに限られなくてもよく、他の装置を経由してセンサから観察データを間接的に取得することを含んでよい。上記実施形態では、制御装置１は、他の装置を経由してカメラＣＡから画像データ４０を取得してもよい。
【０１６２】
＜４．３＞
上記実施形態に係る各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、上記実施形態に係る各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１６３】
例えば、上記実施形態では、制御部１１は、ステップＳ３０１により、遂行する作業の指定を受け付けている。しかしながら、遂行する作業を与える方法は、このような例に限定されなくてもよい。例えば、遂行する作業は、予め与えられてもよい。この場合、ステップＳ３０１は省略されてもよい。
【０１６４】
また、例えば、上記実施形態では、制御部１１は、ステップＳ３０３及びステップＳ３０４により、開始する時点ｓｔにおける相対関係量ｒ０を算出している。しかしながら、開始する時点ｓｔにおける相対関係量ｒ０を与える方法は、このような例に限定されなくてもよい。例えば、相対関係量ｒ０は、予め与えられてもよいし、シミュレータ等により与えられてもよい。この場合、ステップＳ３０３及びステップＳ３０４は省略されてもよい。
【０１６５】
＜４．４＞
上記実施形態では、制御装置１は、ステップＳ３０８により、制御指令４１に基づいて、マニピュレータ３の動作を制御している。しかしながら、制御指令４１の出力処理は、このような例に限定されなくてもよい。例えば、マニピュレータ３がコントローラを備える場合には、制御指令４１の出力処理は、制御指令４１をコントローラに単に送信することであってもよい。
【０１６６】
図１３は、本変形例に係る制御装置１Ａのソフトウェア構成の一例を模式的に例示する。本変形例は、ソフトウェアモジュールにおいて動作制御部１０６が出力部１０６Ａに置き換わっている点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置１Ａのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置１と同様である。また、コントローラ１９は、ＣＰＵ等のハードウェアプロセッサ及びＲＡＭ等のメモリを備え、マニピュレータ３の動作を制御するように適宜構成される。コントローラ１９のハードウェア構成は、上記実施形態に係る制御装置１と同様であってよい。
【０１６７】
本変形例では、上記ステップＳ３０８において、制御装置１Ａの制御部１１は、出力部１０６Ａとして動作し、決定された制御指令４１をコントローラ１９に送信する。制御装置１Ａは、これ以外のステップは上記実施形態と同様に実行する。一方、制御指令４１を受信したコントローラ１９のプロセッサは、動作制御部１０８として動作し、上記実施形態に係るステップＳ３０８と同様に処理を実行する。すなわち、コントローラ１９のプロセッサは、制御指令４１に基づいて、マニピュレータ３の動作を制御する。本変形例では、コントローラ１９には従来のコントローラを利用することができる。そのため、本変形例によれば、本発明の導入コストを低減することができる。なお、本変形例では、制御装置１Ａを上位コントローラと称し、コントローラ１９を下位コントローラと称してもよい。
【０１６８】
＜４．５＞
上記実施形態では、制御装置１は、制御プログラム８１及び学習プログラム８２を保持し、制御処理及び学習処理の両方の処理を実行する。しかしながら、各処理を実行するコンピュータは別体であってもよい。特に、学習処理は、別のコンピュータに実行させてもよい。
【０１６９】
図１４Ａは、本変形例に係る学習装置２が適用される場面の一例を模式的に例示する。図１４Ｂは、本変形例に係る学習装置２のハードウェア構成の一例を模式的に例示する。本変形例は、上記ステップＳ１０１〜Ｓ１０６及びステップＳ２０１〜Ｓ２０３の処理を学習装置２に実行させる点を除き、上記実施形態と同様である。すなわち、本変形例に係る制御装置１では、学習プログラム８２が省略される。制御装置１のソフトウェア構成では、学習プログラム８２に関するソフトウェアモジュールが省略される。なお、制御装置１及び学習装置２は、ネットワーク等を介して接続されてもよいし、記憶媒体を介してデータの受け渡しが行われてもよい。
【０１７０】
図１４Ｂに示されるとおり、本変形例に係る学習装置２は、制御部２１、記憶部２２、外部インタフェース２３、入力装置２４、出力装置２５、及びドライブ２６が電気的に接続されたコンピュータである。学習装置２の制御部２１〜ドライブ２６はそれぞれ、制御装置１の制御部１１〜ドライブ１６それぞれと同様に構成されてよい。
【０１７１】
記憶部２２は、学習プログラム８２、ＣＡＤデータ１２１、マップ情報１２３、学習データ１２５、学習結果データ１２７等の各種情報を記憶する。ドライブ２６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９２に記憶されたプログラムを読み込むためのドライブ装置である。学習プログラム８２、ＣＡＤデータ１２１、及び学習データ１２５の少なくともいずれかは、記憶媒体９２に記憶されていてもよい。また、学習装置２は、記憶媒体９２から、学習プログラム８２、ＣＡＤデータ１２１、及び学習データ１２５の少なくともいずれかを取得してもよい。
【０１７２】
学習装置２の制御部２１は、記憶部２２に記憶された学習プログラム８２をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開された学習プログラム８２をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、本変形例に係る学習装置２は、上記図５Ｂに示される学習処理に関する制御装置１のソフトウェア構成と同様のソフトウェアモジュールを備えるコンピュータとして動作する。
【０１７３】
すなわち、学習装置２の制御部２１は、上記ステップＳ１０１〜Ｓ１０６の処理を実行することで、相対関係量の系列ＲＳを決定する処理（行動計画）に利用するマップ情報１２３を生成する。また、制御部２１は、上記ステップＳ２０１〜Ｓ２０３の処理を実行することで、相対関係量の変化量に応じて制御指令４１を決定する処理に利用する学習済みのニューラルネットワーク５１を構築する。
【０１７４】
学習装置２は、生成されたマップ情報１２３及び学習結果データ１２７をネットワーク、記憶媒体等を介して制御装置１に適宜引き渡す。或いは、本変形例では、学習装置２により生成されたマップ情報１２３及び学習結果データ１２７は、制御装置１に予め組み込まれてもよい。
【０１７５】
本変形例によれば、制御処理を実行するコンピュータと学習処理を実行するコンピュータとを分離することができる。これにより、各処理の高速化を図ることができる。なお、本変形例では、マップ情報１２３の作成及び学習済みのニューラルネットワーク５１の構築の両方の処理を学習装置２が実行する。しかしながら、これらの処理も別々のコンピュータで実行されてもよい。
【０１７６】
＜４．６＞
上記実施形態では、学習済みのニューラルネットワーク５１が制御指令４１を決定する処理に利用されている。しかしながら、制御指令４１を決定する処理は、このような例に限定されなくてもよい。制御指令４１を決定する処理には、学習済みの学習モデルが利用されなくてもよい。例えば、制御装置１は、制御指令４１を決定する処理に、相対関係量の変化量と制御指令との対応関係を示すテーブル形式等の参照情報を利用してもよい。この参照情報は、記憶部１２に格納されていてもよい。この場合、上記ステップＳ３０７では、制御部１１は、当該参照情報に基づいて、制御指令４１を決定してもよい。
【０１７７】
また、上記実施形態では、学習モデルとしてニューラルネットワークが利用されている。しかしながら、学習モデルは、制御指令を決定するための推論する能力を機械学習により獲得可能であれば、その種類は、ニューラルネットワークに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。機械学習の種類は、教師あり学習に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、機械学習として強化学習が採用されてもよい。この場合、学習モデルは、例えば、状態価値関数、行動価値関数等の価値関数により構成されてよい。
【０１７８】
また、上記実施形態では、学習済みのニューラルネットワーク５１には、現在の状態における相対関係量及び次に遷移する目標の状態における相対関係量が入力される。しかしながら、学習済みのニューラルネットワーク５１に入力される情報は、これらに限定されなくてもよい。例えば、ニューラルネットワーク５１は、マニピュレータ３の動作に関連し得るその他の情報の入力を更に受け付けるように構成されてもよい。
【０１７９】
図１５は、本変形例に係る制御装置１Ｂのソフトウェア構成の一例を模式的に例示する。本変形例は、マニピュレータ３が観測センサＣＢを備える点、及びニューラルネットワーク５１Ｂが観測センサＣＢにより得られる属性データ４５を更に受け付けるように構成されている点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置１Ｂのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置１と同様である。
【０１８０】
観測センサＣＢは、マニピュレータ３の属性を観測するように構成される。この観測センサＣＢは、マニピュレータ３の何らかの属性を観測可能であれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。観測センサＣＢは、例えば、近接センサ、触覚センサ、力覚センサ、エンコーダ等であってよい。観測センサＣＢには、上記力覚センサ３８又は各関節部３１〜３６に内蔵されたエンコーダが採用されてもよい。属性データ４５は、例えば、近接センサ、触覚センサ、力覚センサ、エンコーダ等の測定データ又は測定データから算出された特徴量であってよい。
【０１８１】
ニューラルネットワーク５１Ｂは、観測センサＣＢにより得られた属性データ４５の入力を更に受け付けるように構成される点を除き、上記ニューラルネットワーク５１と同様に構成される。例えば、ニューラルネットワーク５１Ｂは、属性データ４５の入力を受け付け、受け付けた属性データ４５を演算処理に組み込むために、入力層等のニューロンの数が上記ニューラルネットワーク５１よりも多くなるように設定される。この点を除き、ニューラルネットワーク５１Ｂは、上記ニューラルネットワーク５１と同様に構成されてよい。
【０１８２】
このニューラルネットワーク５１Ｂの学習処理は、利用する学習データが属性データ４５に対応するデータを訓練データとして含む点を除き、上記実施形態と同様に実行されてよい。具体的には、ステップＳ２０１では、制御装置１Ｂの制御部１１は、相対関係量１２５１、相対関係量１２５２、及び属性データと制御指令１２５３との組み合わせによりそれぞれ構成される複数の学習データセットを含む学習データを取得する。各学習データセットは、上記第１の状態（すなわち、訓練用の現在の状態）で得られる属性データを上記各学習データセット１２５０に追加することで生成することができる。
【０１８３】
ステップＳ２０２では、制御装置１Ｂの制御部１１は、この学習データを利用して、ニューラルネットワーク５１Ｂの機械学習を実施する。これにより、相対関係量１２５１、相対関係量１２５２及び属性データの入力に対して、対応する制御指令１２５３と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク５１Ｂを構築することができる。ステップＳ２０３では、制御装置１Ｂの制御部１１は、構築された学習済みのニューラルネットワーク５１Ｂの構成及び演算パラメータを示す情報を学習結果データ１２７Ｂとして生成し、生成した学習結果データ１２７Ｂを所定の記憶領域に保存する。
【０１８４】
また、本変形例に係る制御処理は、画像データ４０と共に属性データ４５を繰り返し取得する点、観測センサＣＢから取得された最新の属性データ４５を学習済みのニューラルネットワーク５１Ｂに更に入力する点を除き、上記実施形態と同様に実行されてよい。具体的には、制御装置１Ｂの制御部１１は、ステップＳ３０７の処理を実行する前に、データ取得部１０２Ｂとして動作し、観測センサＣＢから属性データ４５を更に取得する。
【０１８５】
属性データ４５を取得する時点は、制御指令により動作を制御する際であり、その制御指令を決定する直前の時点である。属性データ４５を取得するタイミングは、例えば、画像データ４０を取得するタイミングと同じであってよい。ただし、属性データ４５を取得するタイミングと画像データ４０を取得するタイミングとは必ずしも完全に一致していなければならない訳ではない。属性データ４５を取得するタイミングと画像データ４０を取得するタイミングとは異なっていてもよい。
【０１８６】
ステップＳ３０７では、制御装置１Ｂの制御部１１は、指令決定部１０５Ｂとして動作し、観測センサＣＢにより得られた最新の属性データ４５を学習済みのニューラルネットワーク５１Ｂに更に入力する。具体的には、制御部１１は、学習結果データ１２７Ｂを参照して、学習済みのニューラルネットワーク５１Ｂの設定を行う。続いて、制御部１１は、最新の画像データ４０から算出された現在の状態における相対関係量、次に遷移する目標の状態における相対関係量、及び最新の属性データ４５をニューラルネットワーク５１Ｂに入力し、ニューラルネットワーク５１Ｂの演算処理を実行する。これにより、制御部１１は、制御指令４１を決定した結果に対応する出力値をニューラルネットワーク５１Ｂから取得する。マニピュレータ３の動作制御に関するその他の処理については、上記実施形態と同様に実行されてよい。
【０１８７】
本変形例によれば、属性データ４５を更に利用することで、制御指令４１を適切に決定することができる。なお、本変形例に係る制御装置１Ｂの別形態として、上記変形例＜４．５＞と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。また、上記「センサから観察データを取得すること」と同様に、観測センサＣＢから属性データ４５を取得することは、制御装置１Ｂと観測センサＣＢとが接続され、観測センサＣＢから属性データ４５を直接的に取得すること、及び他の装置を経由して観測センサＣＢから属性データ４５を間接的に取得することを含んでよい。
【０１８８】
また、上記実施形態では、ニューラルネットワーク５１は、３層構造を有する全結合型のニューラルネットワークである。しかしながら、ニューラルネットワーク５１の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、ニューラルネットワーク５１は、ＬＳＴＭブロック等の再帰型の構造を有してもよい。
【０１８９】
図１６は、本変形例に係る制御装置１Ｃのソフトウェア構成の一例を模式的に例示する。本変形例は、ニューラルネットワーク５１Ｃの構成が上記実施形態に係るニューラルネットワーク５１と異なる点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置１Ｃのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置１と同様である。
【０１９０】
本変形例に係るニューラルネットワーク５１Ｃは、上記ニューラルネットワーク５１の中間層５１２をＬＳＴＭブロック５１５に置き換えた構成を有している。ＬＳＴＭブロック５１５は、入力ゲート及び出力ゲートを備え、情報の記憶及び出力のタイミングを学習可能に構成されたブロックである（S.Hochreiter and J.Schmidhuber, “Long short-term memory” Neural Computation, 9(8):1735-1780, November 15, 1997）。ＬＳＴＭブロック５１５は、情報の忘却のタイミングを調節する忘却ゲートを更に備えてもよい（Felix A. Gers, Jurgen Schmidhuber and Fred Cummins, "Learning to Forget: Continual Prediction with LSTM" Neural Computation, pages 2451-2471, October 2000）。ＬＳＴＭブロック５１５の構成は、実施の形態に応じて適宜設定されてよい。
【０１９１】
本変形例に係る学習処理及び制御処理は、ニューラルネットワーク５１Ｃの構成が上記実施形態とは異なる点を除き、上記実施形態と同様に実行されてよい。すなわち、制御装置１Ｃの制御部１１は、上記ステップＳ２０１〜Ｓ２０３の処理を実行することで、学習済みのニューラルネットワーク５１Ｃを構築し、学習結果データ１２７Ｃを所定の記憶領域に保存する。また、制御装置１Ｃの制御部１１は、指令決定部１０５Ｃとして動作し、学習結果データ１２７Ｃを参照して、学習済みのニューラルネットワーク５１Ｃの設定を行う。続いて、制御部１１は、最新の画像データ４０から算出された現在の状態における相対関係量及び次に遷移する目標の状態における相対関係量をニューラルネットワーク５１Ｃに入力し、ニューラルネットワーク５１Ｃの演算処理を実行する。これにより、制御部１１は、制御指令４１を決定した結果に対応する出力値をニューラルネットワーク５１Ｃから取得する。マニピュレータ３の動作制御に関するその他の処理については、上記実施形態と同様に実行されてよい。
【０１９２】
本変形例によれば、再帰型の構成を有するニューラルネットワーク５１Ｃを利用することで、相対関係量の時系列の文脈を考慮して、制御指令４１を適切に決定することができる。なお、本変形例に係る制御装置１Ｃの別形態として、上記変形例＜４．５＞と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。
【０１９３】
＜４．７＞
上記実施形態では、制御装置１は、マップ情報１２３を利用して、開始する時点ｓｔから最終目標ｇｎまでの相対関係量の系列ＲＳを決定している。しかしながら、相対関係量の系列ＲＳを決定する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、上記実施形態に係る制御指令４１の決定処理と同様に、相対関係量の系列ＲＳの決定処理にも学習済みの学習モデルが利用されてもよい。
【０１９４】
図１７Ａ及び図１７Ｂはそれぞれ、本変形例に係る制御装置１Ｄの制御処理及び学習処理それぞれに関するソフトウェア構成の一例を模式的に例示する。本変形例は、相対関係量の系列ＲＳを決定する処理に学習済みのニューラルネットワーク５２を用いる点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置１Ｄのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置１と同様である。
【０１９５】
図１７Ａに示されるとおり、本変形例に係る行動決定部１０４Ｄは、学習結果データ１２８を保持することで、学習済みのニューラルネットワーク５２を含んでいる。学習結果データ１２８は、記憶部１２に格納されていてもよい。それぞれを区別するため、学習結果データ１２７を第１学習結果データと称し、学習結果データ１２８を第２学習結果データと称してもよい。
【０１９６】
一方、図１７Ｂに示されるとおり、制御装置１Ｄは、ニューラルネットワーク５２の学習処理に関して、学習データ取得部１８１、学習処理部１８２、及び保存処理部１８３をソフトウェアモジュールとして更に備えるコンピュータとして動作する。それぞれを区別するために、学習データ取得部１１４、学習処理部１１５、及び保存処理部１１６それぞれを第１学習データ取得部、第１学習処理部、及び第１保存処理部と称し、学習データ取得部１８１、学習処理部１８２、及び保存処理部１８３それぞれを第２学習データ取得部、第２学習処理部、及び第２保存処理部と称してもよい。
【０１９７】
学習済みのニューラルネットワーク５２は、本発明の「第２の学習済みの学習モデル」の一例である。学習済みのニューラルネットワーク５２は、訓練用の最終目標における相対関係量及び訓練用の現在の状態における相対関係量の入力に対して、訓練用の現在の状態の次に遷移する目標の状態における相対関係量を決定するように訓練される。本変形例に係るニューラルネットワーク５２は、入力側から順に、入力層５２１、ＬＳＴＭブロック５２２、及び出力層５２３を備える。このニューラルネットワーク５２の構成は、上記変形例に係るニューラルネットワーク５１Ｃと同様である。
【０１９８】
このニューラルネットワーク５２の学習処理は、上記ニューラルネットワーク５１の学習処理と同様に実行されてよい。すなわち、第１のステップでは、制御装置１Ｄの制御部１１は、学習データ取得部１８１として動作し、ニューラルネットワーク５２の機械学習に利用する学習データ１７１を取得する。本変形例では、学習データ１７１は、訓練用の現在の状態における相対関係量１７１１及び訓練用の最終目標の状態における相対関係量１７１２と訓練用の現在の状態の次に遷移する目標における相対関係量１７１３との組み合わせによりそれぞれ構成される複数の学習データセット１７１０を含む。相対関係量１７１１及び相対関係量１７１２は訓練データ（入力データ）として利用され、相対関係量１７１３は教師データ（正解データ）として利用される。
【０１９９】
各学習データセット１７１０を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。上記実施形態と同様に、例えば、シミュレータによる仮想環境又は実環境を用意し、用意した環境下で、作業の遂行を開始する時点から最終目標まで様々な条件でマニピュレータ３を適宜駆動する。そして、得られる現在の状態における相対関係量１７１１及び最終目標の状態における相対関係量１７１２と現在の状態の次に遷移する目標における相対関係量１７１３とを組み合わせる。これにより、各学習データセット１７１０を生成することができる。
【０２００】
各学習データセット１７１０の生成には、上記マップ情報１２３が利用されてよい。各学習データセット１７１０は、コンピュータの動作により自動的に生成されてもよいし、入力装置１４を介したオペレータの操作により手動的に生成されてもよい。また、各学習データセット１７１０の生成は、制御装置１Ｄにより行われてもよいし、制御装置１Ｄ以外の他のコンピュータにより行われてもよい。これらの点については、上記実施形態と同様である。
【０２０１】
第２のステップでは、制御部１１は、学習処理部１８２として動作し、学習データ１７１を利用して、ニューラルネットワーク５２の機械学習を実施する。これにより、訓練用の現在の状態における相対関係量１７１１及び訓練用の最終目標の状態における相対関係量１７２２の入力に対して、対応する次に遷移する目標とする状態における相対関係量１７１３と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク５２を構築することができる。
【０２０２】
第３のステップでは、制御部１１は、保存処理部１８３として動作し、構築された学習済みのニューラルネットワーク５２の構成及び演算パラメータを示す情報を学習結果データ１２８として生成し、生成した学習結果データ１２８を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部１１内のＲＡＭ、記憶部１２、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。以上により、制御部１１は、学習済みのニューラルネットワーク５２の構築に関する一連の処理を終了する。
【０２０３】
また、本変形例に係る制御処理は、相対関係量の系列ＲＳを一度に決定するのではなく、学習済みのニューラルネットワーク５２を利用して系列ＲＳに含まれる相対関係量を順次決定する点を除き、上記実施形態と同様に実行されてよい。具体的には、制御装置１Ｄの制御部１１は、上記ステップＳ３０５及びステップＳ３０６に代えて、行動決定部１０４Ｄとして動作し、学習済みのニューラルネットワーク５２を利用して、相対関係量の系列ＲＳに含まれる次に遷移する目標の状態における相対関係量を決定する（以下、本ステップを「代替ステップ」とも称する）。
【０２０４】
すなわち、制御装置１Ｄの制御部１１は、学習結果データ１２８を参照して、学習済みのニューラルネットワーク５２の設定を行う。続いて、制御部１１は、最新の画像データ４０から算出された現在の状態における相対関係量及び最終目標ｇｎの相対関係量ｒｎを学習済みのニューラルネットワーク５２に入力し、学習済みのニューラルネットワーク５２の演算処理を実行する。これにより、制御部１１は、次に遷移する目標の状態における相対関係量を決定した結果に対応する出力値をニューラルネットワーク５２から取得する。そして、制御部１１は、ステップＳ３０７以降の処理を実行する。
【０２０５】
本変形例では、制御部１１は、本代替ステップ及びステップＳ３０７〜Ｓ３１１の処理を繰り返すことで、相対関係量の系列ＲＳを決定する。図１７Ａの例では、この繰り返しのｓ回目の処理として、最新の画像データ４０ｓから算出された現在の状態ｎｓにおける相対関係量ｐｓ及び最終目標ｇｎの相対関係量ｒｎから次の目標ｇｓの相対関係量ｒｓを導出する場面が例示されている。マニピュレータ３の動作制御に関するその他の処理については、上記実施形態と同様に実行されてよい。
【０２０６】
本変形例によれば、学習済みの学習モデルを利用することで、開始時点から最終目標までに目標とする状態を決定する精度を高めることができる。なお、本変形例に係る制御装置１Ｄの別形態として、上記変形例＜４．５＞と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。各学習処理を実行するコンピュータも別体であってよい。
【０２０７】
上記変形例では、次に遷移する目標の状態における相対関係量を決定するための推論する能力を習得させる学習モデルとしてニューラルネットワークが利用されている。しかしながら、学習モデルは、当該推論の能力を機械学習により獲得可能であれば、その種類は、ニューラルネットワークに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。機械学習の種類は、教師あり学習に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
【０２０８】
また、上記変形例では、ニューラルネットワーク５２は、ＬＳＴＭブロック５２２を含む再帰型のニューラルネットワークである。これにより、ニューラルネットワーク５２は、相対関係量の時系列の文脈を考慮して、次に遷移する目標の相対関係量を適切に決定することができる。ただし、ニューラルネットワーク５２の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、ニューラルネットワーク５２には、上記実施形態に係るニューラルネットワーク５１と同様に、多層構造を有する全結合型のニューラルネットワークが用いられてよい。
【０２０９】
また、上記変形例では、学習済みのニューラルネットワーク５２には、現在の状態のおける相対関係量及び最終目標の状態における相対関係量が入力される。しかしながら、学習済みのニューラルネットワーク５２に入力される情報は、これらに限定されなくてもよい。例えば、ニューラルネットワーク５２は、センサから取得される観察データの入力を更に受け付けるように構成されてもよい。
【０２１０】
図１８は、本変形例に係る制御装置１Ｅのソフトウェア構成の一例を模式的に例示する。本変形例は、ニューラルネットワーク５２Ｅが最新の画像データ４０を更に受け付けるように構成されている点を除き、上記図１７Ａ及び図１７Ｂの変形例と同様である。つまり、この点を除き、制御装置１Ｅのハードウェア構成及びソフトウェア構成は、上記変形例に係る制御装置１Ｄと同様である。
【０２１１】
ニューラルネットワーク５２Ｅは、カメラＣＡにより得られた最新の画像データ４０の入力を更に受け付けるように構成される点を除き、上記ニューラルネットワーク５２と同様に構成される。例えば、ニューラルネットワーク５２Ｅは、画像データ４０の入力を受け付け、受け付けた画像データ４０を演算処理に組み込むために、入力層等のニューロンの数が上記ニューラルネットワーク５２よりも多くなるように設定される。この点を除き、ニューラルネットワーク５２Ｅは、上記ニューラルネットワーク５２と同様に構成されてよい。
【０２１２】
このニューラルネットワーク５２Ｅの学習処理は、利用する学習データが画像データ４０に対応するデータを訓練データとして含む点を除き、上記変形例と同様に実行されてよい。具体的には、第１のステップでは、制御装置１Ｅの制御部１１は、訓練用の現在の状態における相対関係量１７１１、訓練用の最終目標の状態における相対関係量１７１２及び画像データと次に遷移する目標の状態における相対関係量１７１３との組み合わせによりそれぞれ構成される複数の学習データセットを含む学習データを取得する。各学習データセットは、訓練用の現在の状態で得られる画像データを上記各学習データセット１７１０に追加することで生成することができる。
【０２１３】
第２のステップでは、制御装置１Ｅの制御部１１は、この学習データを利用して、ニューラルネットワーク５２Ｅの機械学習を実施する。これにより、相対関係量１７１１、相対関係量１７１２及び画像データの入力に対して、対応する相対関係量１７１３と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク５２Ｅを構築することができる。第３のステップでは、制御装置１Ｅの制御部１１は、構築された学習済みのニューラルネットワーク５２Ｅの構成及び演算パラメータを示す情報を学習結果データ１２８Ｅとして生成し、生成した学習結果データ１２８Ｅを所定の記憶領域に保存する。
【０２１４】
また、本変形例に係る制御処理は、カメラＣＡから取得された最新の画像データ４０を学習済みのニューラルネットワーク５２Ｅに更に入力する点を除き、上記変形例と同様に実行されてよい。具体的には、代替ステップでは、制御装置１Ｅの制御部１１は、行動決定部１０４Ｅとして動作し、学習結果データ１２８Ｅを参照して、学習済みのニューラルネットワーク５２Ｅの設定を行う。続いて、制御部１１は、最新の画像データ４０、最新の画像データ４０から算出された現在の状態における相対関係量及び最終目標ｇｎの相対関係量ｒｎを学習済みのニューラルネットワーク５２Ｅに入力し、学習済みのニューラルネットワーク５２Ｅの演算処理を実行する。これにより、制御部１１は、次に遷移する目標の状態における相対関係量を決定した結果に対応する出力値をニューラルネットワーク５２Ｅから取得する。マニピュレータ３の動作制御に関するその他の処理については、上記変形例と同様に実行されてよい。
【０２１５】
本変形例によれば、画像データ４０を更に利用することで、開始時点から最終目標までに目標とする状態を決定する精度を更に高めることができる。なお、本変形例に係る制御装置１Ｅの別形態として、上記変形例＜４．５＞と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。各学習処理を実行するコンピュータも別体であってよい。
【０２１６】
＜４．８＞
上記実施形態では、制御装置１は、画像データ４０に対して各対象物のモデルをマッチングすることで、各対象物の間の相対関係量を算出している。しかしながら、観察データから相対関係量を算出する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、上記実施形態に係る制御指令４１の決定処理と同様に、観察データから相対関係量を算出する処理にも学習済みの学習モデルが利用されてもよい。
【０２１７】
図１９Ａ及び図１９Ｂはそれぞれ、本変形例に係る制御装置１Ｆの制御処理及び学習処理それぞれに関するソフトウェア構成の一例を模式的に例示する。本変形例は、相対関係量を算出する処理に学習済みのニューラルネットワーク５３を用いる点を除き、上記実施形態と同様である。つまり、この点を除き、制御装置１Ｆのハードウェア構成及びソフトウェア構成は、上記実施形態に係る制御装置１と同様である。
【０２１８】
図１９Ａに示されるとおり、本変形例に係る関係特定部Ｆは、学習結果データ１２９を保持することで、学習済みのニューラルネットワーク５３を含んでいる。学習結果データ１２９は、記憶部１２に格納されていてもよい。上記各学習結果データ（１２７、１２８）と区別するために、学習結果データ１２９を第３学習結果データと称してもよい。
【０２１９】
一方、図１９Ｂに示されるとおり、制御装置１Ｆは、ニューラルネットワーク５３の学習処理に関して、学習データ取得部１８５、学習処理部１８６、及び保存処理部１８７をソフトウェアモジュールとして更に備えるコンピュータとして動作する。上記学習データ取得部１１４、学習処理部１１５、保存処理部１１６等と区別するために、学習データ取得部１８５、学習処理部１８６、及び保存処理部１８７それぞれを第３学習データ取得部、第３学習処理部、及び第３保存処理部と称してもよい。
【０２２０】
学習済みのニューラルネットワーク５３は、本発明の「第３の学習済みの学習モデル」の一例である。学習済みのニューラルネットワーク５３は、訓練用の画像データの入力に対して、訓練用の画像データに現れる複数の対象物の間の相対関係量を算出するように訓練される。本変形例に係るニューラルネットワーク５３は、入力側から順に、入力層５３１、中間（隠れ）層５３２、及び出力層５３３を備える。このニューラルネットワーク５３の構成は、上記実施形態に係るニューラルネットワーク５１と同様である。
【０２２１】
このニューラルネットワーク５３の学習処理は、上記ニューラルネットワーク５１の学習処理と同様に実行されてよい。すなわち、第１のステップでは、制御装置１Ｆの制御部１１は、学習データ取得部１８５として動作し、ニューラルネットワーク５３の機械学習に利用する学習データ１７５を取得する。本変形例では、学習データ１７５は、各対象物のモデルを含むＣＡＤデータ１７５１及び訓練用の画像データ１７５２と相対関係量１７５３との組み合わせによりそれぞれ構成される複数の学習データセット１７５０を含む。ＣＡＤデータ１７５１及び画像データ１７５２は訓練データ（入力データ）として利用され、相対関係量１７５３は教師データ（正解データ）として利用される。
【０２２２】
各学習データセット１７５０を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、ＣＡＤデータ１７５１は、公知のソフトウェアにより生成されてよい。また、カメラを用意し、用意したカメラにより複数の対象物を様々な条件で撮影することで、画像データ１７５２を得ることができる。更に、複数の対象物の相対関係量１７５３を適宜測定する。相対関係量１７５３は、画像データ１７５２から算出されてもよい。そして、得られたＣＡＤデータ１７５１及び画像データ１７５２と相対関係量１７５３とを関連付けることで、各学習データセット１７５０を生成することができる。
【０２２３】
各学習データセット１７５０は、コンピュータの動作により自動的に生成されてもよいし、入力装置１４を介したオペレータの操作により手動的に生成されてもよい。また、各学習データセット１７５０の生成は、制御装置１Ｆにより行われてもよいし、制御装置１Ｆ以外の他のコンピュータにより行われてもよい。これらの点については、上記実施形態と同様である。
【０２２４】
第２のステップでは、制御部１１は、学習処理部１８６として動作し、学習データ１７５を利用して、ニューラルネットワーク５３の機械学習を実施する。これにより、ＣＡＤデータ１７５１及び訓練用の画像データ１７５２の入力に対して、対応する相対関係量１７５３と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク５３を構築することができる。
【０２２５】
第３のステップでは、制御部１１は、保存処理部１８７として動作し、構築された学習済みのニューラルネットワーク５３の構築及び演算パラメータを示す情報を学習結果データ１２９として生成し、生成した学習結果データ１２９を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部１１内のＲＡＭ、記憶部１２、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。以上により、制御装置１Ｆの制御部１１は、学習済みのニューラルネットワーク５３の構築に関する一連の処理を終了する。
【０２２６】
また、本変形例に係る制御処理は、学習済みのニューラルネットワーク５３を相対関係量の算出に利用する点を除き、上記実施形態と同様に実行されてよい。具体的には、ステップＳ３０４及びＳ３１０それぞれでは、制御装置１Ｆの制御部１１は、関係特定部１０３Ｆとして動作し、学習済みのニューラルネットワーク５３を利用して、カメラＣＡより得られた最新の画像データ４０から現在の状態における相対関係量を算出する。
【０２２７】
すなわち、制御装置１Ｆの制御部１１は、学習結果データ１２９を参照して、学習済みのニューラルネットワーク５３の設定を行う。続いて、制御部１１は、最新の画像データ４０及びＣＡＤデータ１２１を学習済みのニューラルネットワーク５３に入力し、学習済みのニューラルネットワーク５３の演算処理を実行する。これにより、制御部１１は、現在の状態における相対関係量を算出した結果に対応する出力値をニューラルネットワーク５３から取得する。図１９Ａでは、繰り返しのｓ回目の処理として、最新の画像データ４０ｓ及びＣＡＤデータ１２１から現在の状態ｎｓにおける相対関係量ｐｓを算出する場面が例示されている。マニピュレータ３の動作制御に関するその他の処理については、上記実施形態と同様に実行されてよい。
【０２２８】
本変形例によれば、学習済みの学習モデルを利用することで、相対関係量を算出する精度を高めることができる。なお、本変形例に係る制御装置１Ｆの別形態として、上記変形例＜４．５＞と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。各学習処理を実行するコンピュータも別体であってよい。
【０２２９】
上記変形例では、相対関係量を算出する能力を習得させる学習モデルとしてニューラルネットワークが利用されている。しかしながら、学習モデルは、当該能力を機械学習により獲得可能であれば、その種類は、ニューラルネットワークに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。機械学習の種類は、教師あり学習に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
【０２３０】
また、上記変形例では、ニューラルネットワーク５３は、３層構造を有する全結合型のニューラルネットワークである。しかしながら、ニューラルネットワーク５３の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、ニューラルネットワーク５３は、ＬＳＴＭブロック等の再帰型の構造を有してもよい。
【０２３１】
また、上記変形例では、学習済みのニューラルネットワーク５３には、最新の画像データ４０及びＣＡＤデータ１２１が入力される。しかしながら、学習済みのニューラルネットワーク５３に入力される情報は、これらに限定されなくてもよい。例えば、学習済みのニューラルネットワーク５３に入力される情報からＣＡＤデータ１２１は省略されてよい。この場合、学習データ１７５からＣＡＤデータ１７５１は省略される。また、例えば、ニューラルネットワーク５３は、マニピュレータ３の動作に関連し得るその他の情報の入力を更に受け付けるように構成されてもよい。
【０２３２】
図２０は、本変形例に係る制御装置１Ｇのソフトウェア構成の一例を模式的に例示する。本変形例は、マニピュレータ３が観測センサＣＢを備える点、及びニューラルネットワーク５３Ｇが観測センサＣＢにより得られる属性データ４５を更に受け付けるように構成されている点を除き、上記図１９Ａ及び図１９Ｂの変形例と同様である。つまり、この点を除き、制御装置１Ｇのハードウェア構成及びソフトウェア構成は、上記変形例に係る制御装置１Ｆと同様である。また、観測センサＣＢ及び属性データ４５については上記制御装置１Ｂの変形例と同様である。
【０２３３】
ニューラルネットワーク５３Ｇは、観測センサＣＢにより得られた属性データ４５の入力を更に受け付けるように構成される点を除き、上記ニューラルネットワーク５３と同様に構成される。例えば、ニューラルネットワーク５３Ｇは、属性データ４５の入力を受け付け、受け付けた属性データ４５を演算処理に組み込むために、入力層等のニューロンの数が上記ニューラルネットワーク５３よりも多くなるように設定される。この点を除き、ニューラルネットワーク５３Ｇは、上記ニューラルネットワーク５３と同様に構成されてよい。
【０２３４】
このニューラルネットワーク５３Ｇの学習処理は、利用する学習データが属性データ４５に対応するデータを訓練データとして含む点を除き、上記変形例と同様に実行されてよい。具体的には、第１のステップでは、制御装置１Ｇの制御部１１は、ＣＡＤデータ１７５１、訓練用の画像データ１７５２及び属性データと相対関係量１７５３との組み合わせによりそれぞれ構成される複数の学習データセットを含む学習データを取得する。観測センサを用意し、画像データ１７５２を得た際に観測センサにより属性データを取得する。各学習データセットは、得られた属性データを上記各学習データセット１７５０に追加することで生成することができる。
【０２３５】
第２のステップでは、制御装置１Ｇの制御部１１は、この学習データを利用して、ニューラルネットワーク５３Ｇの機械学習を実施する。これにより、ＣＡＤデータ１７５１、訓練用の画像データ１７５２及び属性データの入力に対して、対応する相対関係量１７５３と一致する出力値を出力するように訓練された学習済みのニューラルネットワーク５３Ｇを構築することができる。第３のステップでは、制御装置１Ｇの制御部１１は、構築された学習済みのニューラルネットワーク５３Ｇの構成及び演算パラメータを示す情報を学習結果データ１２９Ｇとして生成し、生成した学習結果データ１２９Ｇを所定の記憶領域に保存する。
【０２３６】
また、本変形例に係る制御処理は、画像データ４０と共に属性データ４５を繰り返し取得する点、観測センサＣＢから取得された最新の属性データ４５を学習済みのニューラルネットワーク５３Ｇに更に入力する点を除き、上記変形例と同様に実行されてよい。具体的には、制御装置１Ｇの制御部１１は、ステップＳ３０４及びＳ３１０それぞれの処理を実行する前に、データ取得部１０２Ｇとして動作し、観測センサＣＢから属性データ４５を更に取得する。属性データ４５を取得するタイミングについては、上記制御装置１Ｂの変形例と同様であってよい。
【０２３７】
ステップＳ３０４及びＳ３１０それぞれでは、制御装置１Ｇの制御部１１は、関係特定部１０３Ｇとして動作し、観測センサＣＢにより得られた最新の属性データ４５を学習済みのニューラルネットワーク５３Ｇに更に入力する。具体的には、制御装置１Ｇの制御部１１は、学習結果データ１２９Ｇを参照して、学習済みのニューラルネットワーク５３Ｇの設定を行う。続いて、制御部１１は、最新の画像データ４０、ＣＡＤデータ１２１、及び最新の属性データ４５を学習済みのニューラルネットワーク５３Ｇに入力し、学習済みのニューラルネットワーク５３Ｇの演算処理を実行する。これにより、制御部１１は、現在の状態における相対関係量を算出した結果に対応する出力値をニューラルネットワーク５３Ｇから取得する。マニピュレータ３の動作制御に関するその他の処理については、上記変形例と同様に実行されてよい。
【０２３８】
本変形例によれば、属性データ４５を更に利用することで、相対関係量を算出する精度を更に高めることができる。なお、本変形例に係る制御装置１Ｇの別形態として、上記変形例＜４．５＞と同様に、学習処理及び制御処理それぞれを実行するコンピュータは別体であってよい。各学習処理を実行するコンピュータも別体であってよい。
【符号の説明】
【０２３９】
１…制御装置、
１１…制御部、１２…記憶部、１３…外部インタフェース、
１４…入力装置、１５…出力装置、１６…ドライブ、
１０１…目標設定部、１０２…データ取得部、
１０３…関係特定部、１０４…行動決定部、
１０５…指令決定部、１０６…動作制御部、
１１１…環境情報取得部、１１２…マップ作成部、
１１３…マップ保存処理部、１１４…学習データ取得部、
１１５…学習処理部、１１６…保存処理部、
１２１…ＣＡＤデータ、１２３…マップ情報、
１２５…学習データ、１２７…学習結果データ、
８１…制御プログラム、８２…学習プログラム、
９１…記憶媒体、
３…マニピュレータ（ロボット装置）、
３０…台座部、
３１〜３６…関節部、３７…グリッパ（エンドエフェクタ）、
３８…力覚センサ、３９１〜３９４…リンク、
ＣＡ…カメラ（センサ）、
４０…画像データ（観察データ）、４１…制御指令、
５１…ニューラルネットワーク（学習モデル）、
５１１…入力層、５１２…中間（隠れ）層、５１３…出力層、
ＷＳ…環境、Ｗ１…第１ワーク、Ｗ２…第２ワーク、
ＣＯ１〜ＣＯ３…ローカル座標系、
ｒｃ１〜ｒｃ３…相対座標（相対関係量）
【図１】
2020082332.tif 000003
【図２Ａ】
2020082332.tif 000004
【図２Ｂ】
2020082332.tif 000005
【図２Ｃ】
2020082332.tif 000006
【図２Ｄ】
2020082332.tif 000007
【図２Ｅ】
2020082332.tif 000008
【図２Ｆ】
2020082332.tif 000009
【図３】
2020082332.tif 000010
【図４】
2020082332.tif 000011
【図５Ａ】
2020082332.tif 000012
【図５Ｂ】
2020082332.tif 000013
【図６】
2020082332.tif 000014
【図７Ａ】
2020082332.tif 000015
【図７Ｂ】
2020082332.tif 000016
【図７Ｃ】
2020082332.tif 000017
【図８】
2020082332.tif 000018
【図９Ａ】
2020082332.tif 000019
【図９Ｂ】
2020082332.tif 000020
【図１０】
2020082332.tif 000021
【図１１Ａ】
2020082332.tif 000022
【図１１Ｂ】
2020082332.tif 000023
【図１２】
2020082332.tif 000024
【図１３】
2020082332.tif 000025
【図１４Ａ】
2020082332.tif 000026
【図１４Ｂ】
2020082332.tif 000027
【図１５】
2020082332.tif 000028
【図１６】
2020082332.tif 000029
【図１７Ａ】
2020082332.tif 000030
【図１７Ｂ】
2020082332.tif 000031
【図１８】
2020082332.tif 000032
【図１９Ａ】
2020082332.tif 000033
【図１９Ｂ】
2020082332.tif 000034
【図２０】
2020082332.tif 000035