JP2021030359A - 制御装置、制御方法、及び制御プログラム - Google Patents

制御装置、制御方法、及び制御プログラム Download PDF

Info

Publication number
JP2021030359A
JP2021030359A JP2019152395A JP2019152395A JP2021030359A JP 2021030359 A JP2021030359 A JP 2021030359A JP 2019152395 A JP2019152395 A JP 2019152395A JP 2019152395 A JP2019152395 A JP 2019152395A JP 2021030359 A JP2021030359 A JP 2021030359A
Authority
JP
Japan
Prior art keywords
work
end effector
hand
coordinates
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019152395A
Other languages
English (en)
Inventor
洋平 大川
Yohei Okawa
洋平 大川
剣之介 林
Kennosuke Hayashi
剣之介 林
義也 柴田
Yoshiya Shibata
義也 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2019152395A priority Critical patent/JP2021030359A/ja
Priority to PCT/JP2020/027953 priority patent/WO2021033471A1/ja
Publication of JP2021030359A publication Critical patent/JP2021030359A/ja
Pending legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

【課題】マニピュレータの動作を生成又は教示するコストを低減するための技術を提供する。【解決手段】本発明の一側面に係る制御装置は、エンドエフェクタがワークを保持していない場合、エンドエフェクタの注目点を手先に設定し、各関節の第1変換式群を用いた順運動学計算により、各関節の角度の現在値から設定された手先の座標の現在値を算出する。一方、制御装置は、エンドエフェクタがワークを保持している場合、ワークの注目点を手先に設定し、エンドエフェクタからワークに座標系を変換する第2変換式を第1変換式群に掛けることで得られる第2変換式群を用いた順運動学計算により、各関節の角度の現在値から設定された手先の座標の現在値を算出する。【選択図】図9

Description

本発明は、制御装置、制御方法、及び制御プログラムに関する。
製品を生産する生産ラインでは、様々なタイプのマニピュレータが利用されている。マニピュレータの機構、エンドエフェクタ、ワーク等の構成要素は、遂行するタスク等に応じて多くのバリエーションを有しており、それらすべてに対応したマニピュレータの動作手順を人手で作成して、マニピュレータに対象のタスクを教示するのは困難である。そのため、従来、機構、エンドエフェクタ、ワーク等の構成要素の種類を決定した後、マニピュレータを人手で動かして、実行させる一連の動作における姿勢をレコードしながら、遂行するタスクを直接的にティーチングする方法が採用されている。
しかしながら、この方法では、機構、エンドエフェクタ、ワーク等の構成要素が変更される度に、遂行するタスクをマニピュレータに教示することになる。したがって、遂行するタスクをマニピュレータに教示するのにあまりにコストがかかってしまう。そこで、近年、遂行するタスクをマニピュレータに習得させる方法の効率化が研究されている。例えば、特許文献1では、シール等の柔軟物を把持しているハンドの移動速度を、ハンド及び柔軟物の間の相対速度に基づいて決定する制御方法が提案されている。この制御方法によれば、ハンドの移動する動作の作り込み又は教示する作業の少なくとも一部を自動化することができる。そのため、マニピュレータの動作を生成又は教示するコストを低減することができる。
特開2015−174172号公報
本件発明者らは、上記のようなロボット装置の従来の制御方法には、次のような問題点があることを見出した。マニピュレータに遂行させるタスクの種類は様々である。マニピュレータに複数の異なるタスクを遂行させる場合がある。また、複数の異なるタスクが組み合わされて一連のタスクが形成される場合もある。例えば、ワークを他のワークに組み付けるタスクを想定する。この場合、マニピュレータには、エンドエフェクタによりワークを保持するタスク及び保持したワークを他のワークまで運搬するタスクを遂行させることになる。
上記特許文献1で提案される制御方法が、柔軟物を既に把持しているハンドの動作を対象としているとおり、従来、マニピュレータの動作はタスク毎に個別に作り込み又は教示されている。つまり、上記の例では、ワークを保持するタスク及び保持したワークを他のワークまで運搬するタスクそれぞれの動作を別々に生成又は教示される。そのため、個々に生成又は教示されたマニピュレータの動作は汎用性に乏しかった。更には、エンドエフェクタによりワークを運搬するタスクの動作を生成又は教示する際には、エンドエフェクタに対するワークの位置関係を固定していた。そのため、異なる位置関係毎にマニピュレータの動作を生成又は教示していた。これらに起因して、マニピュレータの動作を生成又は教示するコストは依然として高いという問題点があった。
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、マニピュレータの動作を生成又は教示するコストを低減するための技術を提供することである。
本発明は、上述した課題を解決するために、以下の構成を採用する。
すなわち、本発明の一側面に係る制御装置は、1つ以上のリンク、1つ以上の関節、及びエンドエフェクタを備えるマニピュレータの動作を制御するための制御装置であって、前記エンドエフェクタに対するワークの状態を観測するセンサからセンシングデータを取得するデータ取得部と、取得されたセンシングデータに基づいて、前記エンドエフェクタが前記ワークを保持しているか否かを判定する保持判定部と、前記マニピュレータの手先の座標の現在値を算出する座標算出部であって、前記エンドエフェクタが前記ワークを保持していないと判定された場合、前記エンドエフェクタの注目点を前記手先に設定し、前記各関節の第1変換式により導出される第1変換式群を変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出し、前記エンドエフェクタが前記ワークを保持していると判定された場合、前記ワークの注目点を前記手先に設定し、前記エンドエフェクタの前記注目点の座標系から前記ワークの前記注目点の座標系に変換するための第2変換式を前記第1変換式群に掛けることで、第2変換式群を算出し、算出された第2変換式群を前記変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出する、座標算出部と、前記変換関数の逆関数を用いた逆運動学計算により、算出された前記手先の座標の現在値及び目標値の差分から前記各関節の角度の変化量を算出する角度算出部と、算出された前記各関節の角度の変化量に基づいて、前記各関節に対する指令値を決定する指令決定部と、決定された指令値により前記各関節を駆動する駆動部と、を備える。
当該構成に係る制御装置では、エンドエフェクタがワークを保持していない場合、エンドエフェクタが手先に設定され、順運動学計算には、各関節の第1変換式により導出される第1変換式群が変換関数として用いられる。一方、エンドエフェクタがワークを保持している場合、ワークが手先に設定され、順運動学計算に用いる変換関数が拡張される。具体的には、順運動学計算には、エンドエフェクタからワークに座標系を変換するための第2変換式を第1変換式群に掛けることで得られる第2変換式群が変換関数として用いられる。すなわち、エンドエフェクタがワークを保持した時に、エンドエフェクタからワークに運動学の基準点を変更する。
これにより、エンドエフェクタがワークを保持していない場合とワークを保持している場合とで、各関節の角度を手先座標に変換する順運動学計算、及び手先座標を各関節の角度に変換する逆運動学計算をほぼ同様に処理することができる。すなわち、エンドエフェクタによりワークを保持するタスク及びエンドエフェクタにより保持されたワークを運搬するタスクをそれぞれ「マニピュレータの手先を移動する」という共通のタスクとして取り扱うことができる。したがって、当該構成によれば、エンドエフェクタがワークを保持していない場合とワークを保持している場合とを区別することなく汎用的かつ統一的に制御処理を規定することができる。そのため、制御処理を単純化することができ、これによって、マニピュレータの動作を生成又は教示するコストを低減することができる。
なお、マニピュレータの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。マニピュレータは、例えば、垂直多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等を含んでよい。エンドエフェクタ及びワークの種類は、特に限定されなくてもよく、タスクの種類等に応じて適宜選択されてよい。タスクは、少なくとも工程の一部にマニピュレータの手先の移動を伴うものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。マニピュレータに遂行させるタスクは、例えば、エンドエフェクタによりワークを保持し、保持したワークを他のワークに組み付けることであってよい。この場合、エンドエフェクタは、例えば、グリッパ、吸引器、ドライバ等であってよい。ワークは、例えば、コネクタ、ペグ等であってよい。他のワークは、例えば、ソケット、ホール等であってよい。タスクの遂行は、実空間又は仮想空間内で実行されてよい。
エンドエフェクタに対するワークの状態を観測するセンサの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。センサには、例えば、カメラ、触覚センサ、力覚センサ、近接センサ、トルクセンサ、圧力センサ等が用いられてよい。タスクを遂行する環境を観測するため、例えば、各関節の角度を測定するエンコーダ等の上記以外のセンサが更に用いられてよい。また、各変換式は、各座標系の変換が可能であれば、その形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各変換式には、例えば、同次変換行列が用いられてよい。
上記一側面に係る制御装置において、前記第2変換式は、取得された前記センシングデータから導出されてよい。当該構成によれば、エンドエフェクタにおけるワークの保持状態が変動しても、その変動が反映された第2変換式を得ることができる。そのため、エンドエフェクタにおけるワークの保持状態が変動し得る場合でも、ワークの座標の現在値、すなわち、マニピュレータの手先座標の現在値を適切に算出することができる。
上記一側面に係る制御装置は、前記マニピュレータの現在のタスク状態を取得する状態取得部であって、タスク状態は、前記マニピュレータの前記手先及び目標物の間の位置関係により規定される、状態取得部と、最終目標のタスク状態に近付くように、取得された前記現在のタスク状態に対して次に遷移する目標のタスク状態を決定する行動決定部と、次に遷移する前記目標のタスク状態から前記手先の座標の前記目標値を算出する目標算出部と、を更に備えてもよい。前記角度算出部は、前記変換関数の逆関数を用いた逆運動学計算により、算出された前記現在値及び算出された前記目標値の差分から前記各関節の角度の変化量を算出してもよい。
従来の制御方法では、遂行するタスクに対して、マニピュレータに与える時系列の制御指令を直接的に関連付けていた。そのため、タスクを遂行する環境及び対象物の少なくとも一方が少しでも変化した場合に、学習結果がその変化に対応することができず、そのタスクを適切に遂行できなくなる可能性があった。これに対して、当該構成では、マニピュレータに与えられる制御指令の系列は、タスクに直接的に関連付けられるのではなく、手先及び目標物の間の位置関係(タスク状態)の変化量に関連付けられる。すなわち、タスクの内容に依存せずに、位置関係の変化量に対して、時系列の制御指令を生成又は教示することができる。したがって、当該構成によれば、習得されるタスクを遂行する能力の汎用性を高めることができ、これによって、マニピュレータにタスクを教示するのにかかるコストを低減することができる。
なお、「最終目標」は、終着点(ゴール)であり、タスクの遂行を完了した時点に実現され、与えられたタスクに応じて設定される。「目標」は、最終目標を含み、タスクの遂行を達成するために適宜設定されてよい。設定される目標の数は、1つであってもよいし(この場合、最終目標だけが設定される)、複数であってもよい。最終目標以外の目標は、開始点から終着点に到達するまでに経由する経由点である。そのため、最終目標を単に「目標(ゴール)」と称し、最終目標以外の目標を「下位目標(サブゴール)」と称してもよい。下位目標は、「経由点」と称してもよい。
上記一側面に係る制御装置において、前記手先及び前記目標物の間の前記位置関係は、相対座標により表現されてよい。相対座標は、手先及び目標物の一方から他方を見たときの座標である。手先及び目標物のうちのいずれを相対座標の基準に選択してよい。当該構成によれば、手先及び目標物の間の物理的かつ相対的な位置関係を適切かつ端的に表現することができる。ただし、位置関係の表現方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。手先及び目標物の間の位置関係は、例えば、各々の絶対座標により表現されてもよい。なお、位置関係を表現する「座標」は、位置及び姿勢の少なくとも一方を含んでよい。3次元空間上では、位置は、前後、左右、及び上下の3つの軸により表現されてよく、姿勢は、各軸の回転(ロール、ピッチ、ヨー)で表現されてよい。
上記一側面に係る制御装置において、前記目標物は、前記マニピュレータが前記ワークを保持していない場合、前記ワークであってよく、前記マニピュレータが前記ワークを保持している場合、前記ワークの組み付け先の対象物であってよい。当該構成によれば、エンドエフェクタによりワークを保持し、保持したワークを他のワークに組み付ける一連のタスクをマニピュレータに教示する場面で、対応する動作を生成又は教示するコストを低減することができる。
上記各形態に係る制御装置の別の態様として、本発明の一側面は、以上の制御装置の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
例えば、本発明の一側面に係る制御方法は、1つ以上のリンク、1つ以上の関節、及びエンドエフェクタを備えるマニピュレータの動作を制御するための情報処理方法であって、コンピュータが、前記エンドエフェクタに対するワークの状態を観測するセンサからセンシングデータを取得するステップと、取得されたセンシングデータに基づいて、前記エンドエフェクタが前記ワークを保持しているか否かを判定するステップと、前記マニピュレータの手先の座標の現在値を算出するステップであって、前記エンドエフェクタが前記ワークを保持していないと判定された場合、前記エンドエフェクタの注目点を前記手先に設定し、前記各関節の第1変換式により導出される第1変換式群を変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出し、前記エンドエフェクタが前記ワークを保持していると判定された場合、前記ワークの注目点を前記手先に設定し、前記エンドエフェクタの前記注目点の座標系から前記ワークの前記注目点の座標系に変換するための第2変換式を前記第1変換式群に掛けることで、第2変換式群を算出し、算出された第2変換式群を前記変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出する、ステップと、前記変換関数の逆関数を用いた逆運動学計算により、算出された前記手先の座標の現在値及び目標値の差分から前記各関節の角度の変化量を算出するステップと、算出された前記各関節の角度の変化量に基づいて、前記各関節に対する指令値を決定するステップと、決定された指令値により前記各関節を駆動するステップと、を実行する、情報処理方法であってよい。
また、例えば、本発明の一側面に係る制御プログラムは、1つ以上のリンク、1つ以上の関節、及びエンドエフェクタを備えるマニピュレータの動作を制御するためのプログラムであって、コンピュータに、前記エンドエフェクタに対するワークの状態を観測するセンサからセンシングデータを取得するステップと、取得されたセンシングデータに基づいて、前記エンドエフェクタが前記ワークを保持しているか否かを判定するステップと、前記マニピュレータの手先の座標の現在値を算出するステップであって、前記エンドエフェクタが前記ワークを保持していないと判定された場合、前記エンドエフェクタの注目点を前記手先に設定し、前記各関節の第1変換式により導出される第1変換式群を変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出し、前記エンドエフェクタが前記ワークを保持していると判定された場合、前記ワークの注目点を前記手先に設定し、前記エンドエフェクタの前記注目点の座標系から前記ワークの前記注目点の座標系に変換するための第2変換式を前記第1変換式群に掛けることで、第2変換式群を算出し、算出された第2変換式群を前記変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出する、ステップと、前記変換関数の逆関数を用いた逆運動学計算により、算出された前記手先の座標の現在値及び目標値の差分から前記各関節の角度の変化量を算出するステップと、算出された前記各関節の角度の変化量に基づいて、前記各関節に対する指令値を決定するステップと、決定された指令値により前記各関節を駆動するステップと、を実行させるための、プログラムであってよい。
本発明によれば、マニピュレータの動作を生成又は教示するコストを低減することができる。
図1は、本発明が適用される場面の一例を模式的に例示する。 図2Aは、実施の形態に係る2つの対象物の間の位置関係の一例を模式的に例示する。 図2Bは、実施の形態に係る2つの対象物の間の位置関係の一例を模式的に例示する。 図3は、実施の形態に係る第1モデル生成装置のハードウェア構成の一例を模式的に例示する。 図4は、実施の形態に係る第2モデル生成装置のハードウェア構成の一例を模式的に例示する。 図5は、実施の形態に係る制御装置のハードウェア構成の一例を模式的に例示する。 図6は、実施の形態に係るマニピュレータの一例を模式的に例示する。 図7は、実施の形態に係る第1モデル生成装置のソフトウェア構成の一例を模式的に例示する。 図8は、実施の形態に係る第2モデル生成装置のソフトウェア構成の一例を模式的に例示する。 図9は、実施の形態に係る制御装置のソフトウェア構成の一例を模式的に例示する。 図10は、実施の形態に係る第1モデル生成装置の処理手順の一例を例示する。 図11は、実施の形態に係る第2モデル生成装置の処理手順の一例を例示する。 図12Aは、実施の形態に係るタスク空間の一例を模式的に例示する。 図12Bは、実施の形態に係るタスク空間の一例を模式的に例示する。 図12Cは、実施の形態に係るタスク空間の一例を模式的に例示する。 図13は、実施の形態に係る推論モデルの構成及び生成方法の一例を模式的に例示する。 図14は、実施の形態に係る推論モデルの構成及び生成方法の一例を模式的に例示する。 図15Aは、実施の形態に係る学習データの一例を模式的に例示する。 図15Bは、実施の形態に係る推論モデルの構成の一例を模式的に例示する。 図16Aは、実施の形態に係る制御装置の処理手順の一例を例示する。 図16Bは、実施の形態に係る制御装置の処理手順の一例を例示する。 図17は、実施の形態に係る各要素の計算過程の一例を例示する。 図18は、実施の形態に係る各対象物の位置関係を模式的に例示する。 図19Aは、エンドエフェクタがワークを保持していない時における各関節と手先との関係の一例を模式的に示す。 図19Bは、エンドエフェクタがワークを保持している時における各関節と手先との関係の一例を模式的に示す。 図20は、2つの対象物が接触するか否かを示す値を座標点毎に保持する形態の一例を模式的に例示する。 図21は、変形例に係る制御装置による目標決定に関するサブルーチンの処理手順の一例を例示する。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本発明の適用場面の一例を模式的に例示する。図1に示されるとおり、本実施形態に係る制御システム100は、第1モデル生成装置1、第2モデル生成装置2、及び制御装置3を備えている。第1モデル生成装置1、第2モデル生成装置2、及び制御装置3は、ネットワークを介して互いに接続されてよい。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
<第1モデル生成装置>
本実施形態に係る第1モデル生成装置1は、対象の位置関係において2つの対象物が互いに接触するか否かを判定するための判定モデル50を生成するように構成されたコンピュータである。具体的には、本実施形態に係る第1モデル生成装置1は、2つの対象物の間の位置関係を示す訓練データ122及び当該位置関係において2つの対象物が互いに接触するか否かを示す正解データ123の組み合わせによりそれぞれ構成される複数の学習データセット121を取得する。
本実施形態では、2つの対象物の間の位置関係は、相対座標により表現される。相対座標は、一方の対象物から他方の対象物を見たときの座標である。2つの対象物のうちのいずれを相対座標の基準に選択してよい。「座標」は、位置及び姿勢の少なくとも一方を含んでよい。3次元空間上では、位置は、前後、左右、及び上下の3つの軸により表現されてよく、姿勢は、各軸の回転(ロール、ピッチ、ヨー)で表現されてよい。本実施形態では、相対座標は、3次元の相対位置及び3次元の相対姿勢の6次元で表現されてよい。なお、相対座標の次元数は、6次元に限られなくてよく、適宜削減されてよい。
そして、本実施形態に係る第1モデル生成装置1は、取得された複数の学習データセット121を使用して、判定モデル50の機械学習を実施する。機械学習を実施することは、各学習データセット121について、訓練データ122の入力に対して、対応する正解データ123に適合する出力値を出力するように判定モデル50を訓練することにより構成される。この機械学習により、対象の位置関係において2つの対象物が互いに接触するか否かを判定する能力を習得した学習済みの判定モデル50を構築することができる。
本実施形態では、学習済みの判定モデル50は、エンドエフェクタTを備えるマニピュレータ4、ワークW、及び他のワークGが存在する空間で、ワークW及びエンドエフェクタTの間で接触が生じるか否か、並びにワークW及び他のワークGの間で接触が生じるか否かを判定するのに利用される。エンドエフェクタT、ワークW、及び他のワークGは、「対象物」の一例である。エンドエフェクタT、ワークW、及び他のワークGの種類はそれぞれ、特に限定されなくてもよく、タスクに応じて適宜選択されてよい。エンドエフェクタTは、例えば、グリッパ、吸引器、ドライバ等であってよい。ワークWは、例えば、コネクタ、ペグ等であってよい。他のワークGは、例えば、ソケット、ホール等であってよい。他のワークGは、ワークWの組付け先の対象物の一例である。エンドエフェクタTによりワークWを保持することは、例えば、グリッパによりワークを把持すること、吸引器によりワークを吸引保持すること、ドライバの先端にワークを保持すること等であってよい。
より詳細には、本実施形態に係るマニピュレータ4は、一例として、エンドエフェクタTによりワークWを保持し、保持したワークWを他のワークGに組み付けるタスクを遂行する。このタスクは、エンドエフェクタTによりワークWを保持する第1タスク及び保持されたワークWを他のワークGに運搬する第2タスクの2つに分けることができる。エンドエフェクタTを移動させて、ワークWを保持する第1タスクを遂行する場面で、学習済みの判定モデル50は、ワークW及びエンドエフェクタTの間で無用な接触が生じるか否かを判定するのに利用される。また、ワークWを保持した後、エンドエフェクタTを移動させて、保持されたワークWを他のワークGに運搬する第2タスクを遂行する場面で、学習済みの判定モデル50は、ワークW及び他のワークGの間で無用な接触が生じるか否かを判定するのに利用される。
つまり、本実施形態では、学習済みの判定モデル50により接触が生じるか否かを判定する2つの対象物のうちの少なくともいずれかは、マニピュレータ4の動作により移動する対象である。2つの対象物のうちのいずれか一方のみが、マニピュレータ4の動作により移動する対象であってもよいし、或いは、2つの対象物のうちの両方が、マニピュレータ4の動作により移動する対象であってもよい。ただし、第1モデル生成装置1の適用対象は、このような例に限定されなくてもよい。第1モデル生成装置1は、2つの対象物の接触を判定するあらゆる場面に適用されてよい。
なお、上記のように、接触するか否かを判定する対象が複数存在する場合、それぞれ異なる対象物の間で接触が生じるか否かを判定する複数の学習済みの判定モデル50が用意されてもよい。或いは、学習済みの判定モデル50は、例えば、対象物の種類、対象物の識別子等の対象物の条件を示す情報の入力を更に受け付け、入力された条件に対応する2つの対象物の間で接触が生じるか否かを判定するように構成されてもよい。いずれの方法が採用されてもよい。以下では、説明の便宜のため、学習済みの判定モデル50の判定対象を区別せずに説明する。
<第2モデル生成装置>
本実施形態に係る第2モデル生成装置2は、マニピュレータ4の動作を制御する際に、マニピュレータ4に与える目標のタスク状態を決定するための推論モデル55を生成するように構成されたコンピュータである。本実施形態に係るマニピュレータ4は、第1対象物及び第2対象物の存在する環境下で、第2対象物に対して第1対象物を移動するタスクを遂行することができる。上記第1タスク及び第2タスクは、「第2対象物に対して第1対象物を移動するタスク」の一例である。第1タスクを遂行する場面では、エンドエフェクタTが第1対象物の一例であり、ワークWが第2対象物の一例である。また、第2タスクを遂行する場面では、ワークWが第1対象物の一例であり、他のワークGが第2対象物の一例である。本実施形態では、タスク状態は、第1対象物及び第2対象物(すなわち、2つの対象物)の間の位置関係により規定される。
ここで、図2A及び図2Bを更に用いて、第1対象物及び第2対象物の間の位置関係によりタスク状態を規定する方法の具体例について説明する。図2Aは、上記第1タスクを遂行する場面におけるエンドエフェクタT及びワークWの間の位置関係の一例を模式的に例示する。図2Bは、上記第2タスクを遂行する場面におけるワークW及び他のワークGの間の位置関係の一例を模式的に例示する。上記のとおり、本実施形態では、2つの対象物の間の位置関係は、相対座標により表現される。
本実施形態では、図2Aに示されるとおり、第1タスクを遂行する場面等のように、エンドエフェクタTがワークWを保持していない間は、エンドエフェクタTの注目点T0がマニピュレータ4の手先として取り扱われる。第1タスクでは、ワークWが、エンドエフェクタTの移動の目標物である。エンドエフェクタTとワークWとの間の位置関係は、エンドエフェクタTに対するワークWの相対座標RC1により表現される。相対座標RC1は、エンドエフェクタTの注目点T0を原点とするローカル座標系CTから見た、ワークWの注目点W0を原点とするローカル座標系CWを表す。本実施形態では、第1タスクを遂行する場面におけるマニピュレータ4のタスク状態は、この相対座標RC1により規定される。
一方、図2Bに示されるとおり、第2タスクを遂行する場面等のように、エンドエフェクタTがワークWを保持している間、ワークWの注目点W0がマニピュレータ4の手先として取り扱われる。第2タスクでは、他のワークGが、エンドエフェクタTの移動の目標物である。他のワークGは、ワークWの組み付け先の対象物の一例である。ワークWと他のワークGとの間の位置関係は、ワークWに対する他のワークGの相対座標RC2により表現される。相対座標RC2は、ワークWの注目点W0を原点とするローカル座標系CWから見た、他のワークGの注目点G0を原点とするローカル座標系CGを表す。本実施形態では、第2タスクを遂行する場面におけるマニピュレータ4のタスク状態は、この相対座標RC2により規定される。
すなわち、本実施形態では、第1タスク及び第2タスクを遂行する両方の場面で、タスク状態は、マニピュレータ4の手先及び目標物の間の位置関係(本実施形態では、相対座標)により規定される。マニピュレータ4の手先が第1対象物に相当し、目標物が第2対象物に相当する。これにより、第1タスク及び第2タスクを共に、マニピュレータ4の手先を目標物に対して移動するタスクとして捉えることができる。
なお、各注目点(T0、W0、G0)は任意に設定されてよい。また、相対座標の与え方は、上記のような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、相対座標RC1は、ワークWの注目点W0を原点とするローカル座標系CWから見た、エンドエフェクタTの注目点T0を原点とするローカル座標系CTを表す等のように、各相対座標(RC1、RC2)の関係は反転されてもよい。また、手先を移動することは、目標物に手先を近付けることに限られなくてもよく、実施の形態に応じて適宜決定されてよい。手先を移動することは、例えば、目標物から手先を遠ざけること、目標物を基準にして所定の位置に手先を移動すること等であってよい。
本実施形態に係る第2モデル生成装置2は、第1対象物及び第2対象物の対象のタスク状態を示す情報を学習済みの判定モデル50に与えることで、対象のタスク状態において第1対象物及び第2対象物が互いに接触するか否かを判定する。本実施形態に係る第2モデル生成装置2は、この学習済みの判定モデル50による判定の結果を利用して、第1対象物が第2対象物に接触しないように、次に遷移する目標のタスク状態を決定するように構成された推論モデル55を生成する。
<制御装置>
本実施形態に係る制御装置3は、マニピュレータ4の動作を制御するように構成されたコンピュータである。具体的には、まず、本実施形態に係る制御装置3は、エンドエフェクタTに対するワークWの状態を観測するセンサからセンシングデータを取得する。本実施形態では、エンドエフェクタTに対するワークWの状態を観測するセンサを含む3種類のセンサが用いられる。タスクを遂行する環境を観測する視覚系のセンサとしてカメラS1が用いられる。マニピュレータ4の各関節の角度を測定するためにエンコーダS2が用いられる。エンドエフェクタTによるワークWの保持状態を測定するために触覚センサS3が用いられる。本実施形態に係る制御装置3は、センシングデータを各センサ(カメラS1、エンコーダS2、触覚センサS3)から取得する。
次に、本実施形態に係る制御装置3は、取得されたセンシングデータに基づいて、エンドエフェクタTがワークWを保持しているか否かを判定する。本実施形態に係る制御装置3は、エンドエフェクタTがワークWと保持していないと判定した場合、エンドエフェクタTの注目点T0をマニピュレータ4の手先に設定する。そして、本実施形態に係る制御装置3は、各関節の第1変換式により導出される第1変換式群を変換関数として用いた順運動学計算により、各関節の角度の現在値から設定された手先の座標(以下、「手先座標」とも記載する)の現在値を算出する。
一方、本実施形態に係る制御装置3は、エンドエフェクタTがワークWと保持していると判定した場合、ワークWの注目点W0をマニピュレータ4の手先に設定する。本実施形態に係る制御装置3は、エンドエフェクタTの注目点T0の座標系からワークWの注目点W0の座標系に変換するための第2変換式を第1変換式群に掛けることにより、第2変換式群を算出する。そして、本実施形態に係る制御装置3は、算出された第2変換式群を変換関数として用いた順運動学計算により、各関節の角度の現在値から設定された手先座標の現在値を算出する。
本実施形態に係る制御装置3は、上記変換関数の逆関数を用いた逆運動学計算により、算出された手先座標の現在値及び目標値の差分から各関節の角度の変化量を算出する。本実施形態に係る制御装置3は、算出された各関節の角度の変化量に基づいて、各関節に対する指令値を決定する。そして、本実施形態に係る制御装置3は、決定された指令値により各関節を駆動する。これにより、本実施形態に係る制御装置3は、マニピュレータ4の動作を制御する。
なお、手先座標の目標値を決定する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。本実施形態では、手先座標の目標を決定するのに、上記推論モデル55を利用することができる。すなわち、本実施形態に係る制御装置3は、マニピュレータ4の現在のタスク状態を取得する。上記のとおり、タスク状態は、マニピュレータ4の手先及び目標物の間の位置関係により規定される。本実施形態に係る制御装置3は、上記推論モデル55を利用して、最終目標のタスク状態に近付くように、取得された現在のタスク状態に対して次に遷移する目標のタスク状態を決定する。そして、本実施形態に係る制御装置3は、次に遷移する目標のタスク状態から手先座標の目標値を算出する。これにより、本実施形態では、タスクを遂行する過程で、手先座標の目標値を適切に決定することができる。
<作用効果>
以上のとおり、本実施形態に係る制御装置3では、エンドエフェクタTがワークWを保持していない場合、エンドエフェクタTが手先に設定され、順運動学計算には、各関数の第1変換式により導出される第1変換式群が変換関数として用いられる。一方、エンドエフェクタTがワークWを保持している場合、ワークWが手先に設定され、順運動学計算に用いる変換関数が拡張される。具体的には、順運動学計算には、エンドエフェクタからワークに座標系を変換するための第2変換式を第1変換式群に掛けることで得られる第2変換式群が変換関数として用いられる。すなわち、エンドエフェクタTがワークWを保持した時に、エンドエフェクタTからワークWに運動学の基準点を変更する。
これにより、エンドエフェクタTがワークWを保持していない場合とワークWを保持している場合とで、各関節の角度を手先座標に変換する順運動学計算、及び手先座標を各関節の角度に変換する逆運動学計算をほぼ同様に処理することができる。すなわち、エンドエフェクタTによりワークWを保持する第1タスク及びエンドエフェクタTにより保持されたワークWを運搬する第2タスクをそれぞれ「マニピュレータ4の手先を移動する」という共通のタスクとして取り扱うことができる。したがって、本実施形態によれば、エンドエフェクタTがワークWを保持していない場合とワークWを保持している場合とを区別することなく汎用的かつ統一的に制御処理を規定することができる。そのため、制御処理を単純化することができ、これによって、マニピュレータ4の動作を生成又は教示するコストを低減することができる。
また、マニピュレータの従来の制御方法では、遂行するタスクに対して、マニピュレータに与える時系列の制御指令を直接的に関連付けていた。すなわち、従来の制御方法では、遂行するタスクを制御指令の系列により直接的に記述していた。そのため、タスクを遂行する環境及び対象物の少なくとも一方が少しでも変化した場合に、学習結果がその変化に対応することができず、そのタスクを適切に遂行できなくなる可能性があった。
例えば、エンドエフェクタによりワークを保持するタスクをマニピュレータに教示する場面を想定する。この場合に、ワークが対象の地点に正確に配置されていれば、マニピュレータは、学習結果に基づいて、エンドエフェクタによりワークを保持することができる。一方、ワークの姿勢が学習時とは異なっていたり、ワークが学習時と異なる位置に配置されたりした場合には、エンドエフェクタによりワークを保持する座標が変化する。これにより、マニピュレータがこの場面で遂行すべきタスクの内容が実質的に変化してしまう。そのため、学習結果により得た制御指令の系列では、マニピュレータは、エンドエフェクタによりワークを適切に保持できない可能性がある。
このように、従来の制御方法では、タスクを遂行する環境及び対象物の少なくとも一方が少しでも変化した場合に、学習結果がその変化に対応できず、そのタスクを新たに学習させなければ、マニピュレータが、そのタスクを適切に遂行できない可能性があるという問題点があった。これに起因して、マニピュレータを汎用的に動作させるためには、同じタスクでも異なる状態毎に制御指令を学習させることになり、マニピュレータにタスクを教示するのにかかるコストが依然として高かった。
これに対して、本実施形態では、マニピュレータ4により実行するタスクの状態が、エンドエフェクタT、ワークW、他のワークG等の対象物間の相対的な関係、具体的には、対象物間の位置関係により表現される。これにより、マニピュレータ4に与えられる制御指令は、タスクに直接的に関連付けられるのではなく、対象物間の相対的な位置関係の変化量に関連付けられる。すなわち、タスクの内容に依存せずに、対象物の相対的な位置関係を変化させることに対して、マニピュレータ4に与える時系列の制御指令を生成又は教示することができる。例えば、上記の例では、ワークの座標が変化しても、エンドエフェクタとワークとの間の位置関係を把握する際に、そのワークの座標の変化が考慮される。そのため、マニピュレータは、学習結果に基づいて、ワークを適切に保持することができる。したがって、本実施形態によれば、習得されるタスクを遂行する能力の汎用性を高めることができ、これによって、マニピュレータ4にタスクを教示するのにかかるコストを低減することができる。
更に、本実施形態に係る第1モデル生成装置1は、機械学習により、対象の位置関係において2つの対象物が接触するか否かを判定するための判定モデル50を生成する。機械学習により生成された学習済みの判定モデル50によれば、対象の位置関係(本実施形態では、相対座標)が連続値で与えられても、判定モデル50のデータ量の大きな増加を伴うことなく、その位置関係で2つの対象物が互いに接触するか否かを判定することができる。そのため、本実施形態によれば、2つの対象物が接触する境界を表現する情報のデータ量を大幅に低減することができる。
§2 構成例
[ハードウェア構成]
<第1モデル生成装置>
次に、図3を用いて、本実施形態に係る第1モデル生成装置1のハードウェア構成の一例について説明する。図3は、本実施形態に係る第1モデル生成装置1のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る第1モデル生成装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、図3では、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、モデル生成プログラム81、CAD(computer-aided design)データ120、複数の学習データセット121、学習結果データ125等の各種情報を記憶する。
モデル生成プログラム81は、判定モデル50の機械学習に関する後述の情報処理(図10)を第1モデル生成装置1に実行させるためのプログラムである。モデル生成プログラム81は、当該情報処理の一連の命令を含む。CADデータ120は、各対象物(エンドエフェクタT、ワークW、他のワークG)のモデル(例えば、3次元モデル)等の幾何学的な構成を示す構成情報を含む。CADデータ120は、公知のソフトウェアにより生成されてよい。複数の学習データセット121は、判定モデル50の機械学習に使用される。学習結果データ125は、機械学習により生成された学習済みの判定モデル50に関する情報を示す。学習結果データ125は、モデル生成プログラム81を実行した結果として得られる。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。第1モデル生成装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、第2モデル生成装置2、制御装置3)と行うことができる。
外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。第1モデル生成装置1は、実空間において対象物が接触するか否かを判定するために、外部インタフェース14を介して、マニピュレータ4及びカメラS1と接続されてもよい。
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置15及び出力装置16を利用することで、第1モデル生成装置1を操作することができる。
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ17の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記モデル生成プログラム81、CADデータ120、及び複数の学習データセット121の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。第1モデル生成装置1は、この記憶媒体91から、上記モデル生成プログラム81、CADデータ120、及び複数の学習データセット121の少なくともいずれかを取得してもよい。
ここで、図3では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、第1モデル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。第1モデル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、第1モデル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
<第2モデル生成装置>
次に、図4を用いて、本実施形態に係る第2モデル生成装置2のハードウェア構成の一例について説明する。図4は、本実施形態に係る第2モデル生成装置2のハードウェア構成の一例を模式的に例示する。
図4に示されるとおり、本実施形態に係る第2モデル生成装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。なお、図4では、図3と同様に、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
第2モデル生成装置2の制御部21〜ドライブ27はそれぞれ、上記第1モデル生成装置1の制御部11〜ドライブ17それぞれと同様に構成されてよい。すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、モデル生成プログラム82、CADデータ220、学習結果データ125、学習データ223、推論モデルデータ225等の各種情報を記憶する。
モデル生成プログラム82は、目標のタスク状態を推論するための推論モデル55の生成に関する後述の情報処理(図11)を第2モデル生成装置2に実行させるためのプログラムである。モデル生成プログラム82は、当該情報処理の一連の命令を含む。CADデータ220は、上記CADデータ120と同様に、各対象物(エンドエフェクタT、ワークW、他のワークG)のモデル等の幾何学的な構成を示す構成情報を含む。学習結果データ125は、学習済みの判定モデル50の設定に利用される。学習データ223は、推論モデル55の生成に使用される。推論モデルデータ225は、生成された推論モデル55に関する情報を示す。推論モデルデータ225は、モデル生成プログラム82を実行した結果として得られる。詳細は後述する。
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。第2モデル生成装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、第1モデル生成装置1、制御装置3)と行うことができる。
外部インタフェース24は、例えば、USBポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース24の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。第2モデル生成装置2は、実空間においてタスク状態を再現するために、外部インタフェース24を介して、マニピュレータ4及びカメラS1と接続されてもよい。
入力装置25は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置26は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置25及び出力装置26を利用することで、第2モデル生成装置2を操作することができる。
ドライブ27は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。記憶媒体92の種類は、上記記憶媒体91と同様に、ディスク型であってもよいし、或いはディスク型以外であってもよい。上記モデル生成プログラム82、CADデータ220、学習結果データ125、及び学習データ223のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、第2モデル生成装置2は、記憶媒体92から、上記モデル生成プログラム82、CADデータ220、学習結果データ125、及び学習データ223のうちの少なくともいずれかを取得してもよい。
なお、第2モデル生成装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27の少なくともいずれかは省略されてもよい。第2モデル生成装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、第2モデル生成装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
<制御装置>
次に、図5を用いて、本実施形態に係る制御装置3のハードウェア構成の一例について説明する。図5は、本実施形態に係る制御装置3のハードウェア構成の一例を模式的に例示する。
図5に示されるとおり、本実施形態に係る制御装置3は、制御部31、記憶部32、通信インタフェース33、外部インタフェース34、入力装置35、出力装置36、及びドライブ37が電気的に接続されたコンピュータである。なお、図5では、図3及び図4と同様に、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
制御装置3の制御部31〜ドライブ37はそれぞれ、上記第1モデル生成装置1の制御部11〜ドライブ17それぞれと同様に構成されてよい。すなわち、制御部31は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部32は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部32は、制御プログラム83、CADデータ320、ロボットデータ321、推論モデルデータ225等の各種情報を記憶する。
制御プログラム83は、マニピュレータ4の動作の制御に関する後述の情報処理(図16A及び図16B)を制御装置3に実行させるためのプログラムである。制御プログラム83は、当該情報処理の一連の命令を含む。CADデータ320は、上記CADデータ120と同様に、各対象物(エンドエフェクタT、ワークW、他のワークG)のモデル等の幾何学的な構成を示す構成情報を含む。ロボットデータ321は、各関節のパラメータ等のマニピュレータ4の構成を示す構成情報を含む。推論モデルデータ225は、生成された推論モデル55の設定に利用される。詳細は後述する。
通信インタフェース33は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。制御装置3は、この通信インタフェース33を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、第1モデル生成装置1、第2モデル生成装置2)と行うことができる。
外部インタフェース34は、例えば、USBポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース34の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。制御装置3は、外部インタフェース34を介して、カメラS1及びマニピュレータ4と接続されてよい。本実施形態では、マニピュレータ4は、各関節の角度を測定するエンコーダS2、及びエンドエフェクタTに作用する力を測定する触覚センサS3を備える。
カメラS1、エンコーダS2、及び触覚センサS3それぞれの種類は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラS1は、例えば、RGB画像を取得するよう構成された一般的なデジタルカメラ、深度画像を取得するように構成された深度カメラ、赤外線量を画像化するように構成された赤外線カメラ等であってよい。触覚センサS3は、例えば、タクタイルセンサ等であってよい。
制御装置3は、外部インタフェース34を介して、各センサ(カメラS1、各エンコーダS2、触覚センサS3)からセンシングデータ322(画像データ、角度データ、圧力分布データ)を取得することができる。なお、カメラS1及びマニピュレータ4との接続方法は、このような例に限定されなくてもよい。例えば、カメラS1及びマニピュレータ4が通信インタフェースを備える場合、制御装置3は、通信インタフェース33を介して、カメラS1及びマニピュレータ4に接続されてもよい。
入力装置35は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置36は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置35及び出力装置36を利用することで、制御装置3を操作することができる。
ドライブ37は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体93に記憶されたプログラムを読み込むためのドライブ装置である。記憶媒体93の種類は、上記記憶媒体91と同様に、ディスク型であってもよいし、或いはディスク型以外であってもよい。上記制御プログラム83、CADデータ320、ロボットデータ321、及び推論モデルデータ225のうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、制御装置3は、記憶媒体93から、上記制御プログラム83、CADデータ320、ロボットデータ321、及び推論モデルデータ225のうちの少なくともいずれかを取得してもよい。
なお、制御装置3の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部31は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部32は、制御部31に含まれるRAM及びROMにより構成されてもよい。通信インタフェース33、外部インタフェース34、入力装置35、出力装置36、及びドライブ37の少なくともいずれかは省略されてもよい。制御装置3は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、制御装置3は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、PLC(programmable logic controller)等であってもよい。
<マニピュレータ>
次に、図6を用いて、本実施形態に係るマニピュレータ4のハードウェア構成の一例について説明する。図6は、本実施形態に係るマニピュレータ4のハードウェア構成の一例を模式的に例示する。
本実施形態に係るマニピュレータ4は、6軸の垂直多関節型の産業用ロボットであり、台座部40及び6つの関節部41〜46を備えている。各関節部41〜46は、サーボモータ(不図示)を内蔵していることで、各軸を中心に回転可能に構成されている。第1関節部41は、台座部40に接続されており、先端側の部分を台座の軸周りに回転させる。第2関節部42は、第1関節部41に接続されており、先端側の部分を前後方向に回転させる。第3関節部43は、リンク491を介して第2関節部42に接続されており、先端側の部分を上下方向に回転させる。第4関節部44は、リンク492を介して第3関節部43に接続されており、先端側の部分をリンク492の軸周りに回転させる。第5関節部45は、リンク493を介して第4関節部44に接続されており、先端側の部分を上下方向に回転させる。第6関節部46は、リンク494を介して第5関節部45に接続されており、先端側の部分をリンク494の軸周りに回転させる。第6関節部46の先端側には、触覚センサS3と共にエンドエフェクタTが取り付けられている。
各関節部41〜46には、エンコーダS2が更に内蔵されている。各エンコーダS2は、各関節部41〜46の角度(制御量)を測定するように構成される。各エンコーダS2の測定データ(角度データ)は、各関節部41〜46の角度の制御に利用することができる。また、触覚センサS3は、エンドエフェクタTに作用する力を検出するように構成される。触覚センサS3の測定データ(圧力分布データ)は、エンドエフェクタTに保持されたワークWの位置及び姿勢を推定したり、エンドエフェクタTに異常な力が作用しているか否かを検知したりするために利用されてよい。
なお、マニピュレータ4のハードウェア構成は、このような例に限定されなくてもよい。マニピュレータ4の具体的なハードウェア構成に関して、実施の形態に応じて適宜、構成要素の省略、置換及び追加が可能である。例えば、マニピュレータ4は、制御量又はその他の属性を観測するために、エンコーダS2及び触覚センサS3以外のセンサを備えてもよい。例えば、マニピュレータ4は、トルクセンサを更に備えてもよい。この場合、マニピュレータ4は、エンドエフェクタTに作用する力をトルクセンサにより測定し、トルクセンサの測定値に基づいて、エンドエフェクタTに過剰な力が作用しないように制御されてよい。また、マニピュレータ4の軸数は、6軸に限られなくてもよい。マニピュレータ4には、公知の産業用ロボットが採用されてよい。
[ソフトウェア構成]
<第1モデル生成装置>
次に、図7を用いて、本実施形態に係る第1モデル生成装置1のソフトウェア構成の一例について説明する。図7は、本実施形態に係る第1モデル生成装置1のソフトウェア構成の一例を模式的に例示する。
第1モデル生成装置1の制御部11は、記憶部12に記憶されたモデル生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたモデル生成プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図7に示されるとおり、本実施形態に係る第1モデル生成装置1は、データ取得部111、機械学習部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、第1モデル生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
データ取得部111は、複数の学習データセット121を取得する。各学習データセット121は、2つの対象物の間の位置関係を示す訓練データ122及び当該位置関係において2つの対象物が互いに接触するか否かを示す正解データ123の組み合わせにより構成される。訓練データ122は、機械学習の入力データとして利用される。正解データ123は、機械学習の教師信号(ラベル)として利用される。訓練データ122及び正解データ123の形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、訓練データ122には、2つの対象物の間の相対座標がそのまま利用されてもよいし、或いは、相対座標を特徴量に変換することで得られた値が利用されてもよい。CADデータ120により、対象の位置関係において対象の2つの対象物が互いに接触するか否かを判定することができる。そのため、CADデータ120を利用することで、各学習データセット121を生成することができる。
機械学習部112は、取得された複数の学習データセット121を使用して、判定モデル50の機械学習を実施する。機械学習を実施することは、各学習データセット121について、訓練データ122の入力に対して、対応する正解データ123に適合する出力値を出力するように判定モデル50を訓練することにより構成される。この機械学習により、2つの対象物が互いに接触するか否かを判定する能力を習得した学習済みの判定モデル50を構築することができる。保存処理部113は、構築された学習済みの判定モデル50に関する情報を学習結果データ125として生成し、生成された学習結果データ125を所定の記憶領域に保存する。
(判定モデルの構成)
次に、判定モデル50の構成の一例について説明する。本実施形態に係る判定モデル50は、深層学習に用いられる多層構造のニューラルネットワークにより構成される。図7の例では、判定モデル50は、3層構造の全結合型ニューラルネットワークにより構成されている。判定モデル50は、入力層501、中間(隠れ)層502、及び出力層503を備えている。ただし、判定モデル50の構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、判定モデル50の備える中間層の数は、1つに限られなくてもよく、2つ以上であってもよい。或いは、中間層502は、省略されてもよい。
各層501〜503に含まれるニューロン(ノード)の数は、実施の形態に応じて適宜決定されてよい。例えば、入力層501のニューロンの数は、2つの対象物の間の位置関係を表現する相対座標の次元数に応じて決定されてよい。また、出力層503のニューロンの数は、2つの対象物が互いに接触するか否かを表現する方法に応じて決定されてよい。例えば、2つの対象物が互いに接触するか否かを1つの数値で表現する(例えば、[0、1]の範囲の数値で表現する)場合、出力層503のニューロンの数は1つであってよい。また、例えば、接触する確率を示す第1の数値及び接触していない確率を示す第2の数値の2つの数値により2つの対象物が互いに接触するか否かを表現する場合、出力層503のニューロンの数は2つであってよい。
隣接する層のニューロン同士は適宜結合される。本実施形態では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、各ニューロンの結合関係は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。各結合には、重み(結合荷重)が設定されている。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてもよい。この場合、各入力と各重みとの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各層501〜503に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、判定モデル50の演算パラメータの一例である。
本実施形態では、機械学習部112は、複数の学習データセット121を使用して、上記ニューラルネットワークにより構成された判定モデル50の機械学習を実施する。具体的に、機械学習部112は、判定モデル50の演算パラメータの値を調整することで、各学習データセット121について、訓練データ122を入力層501に入力すると、正解データ123に適合する出力値が出力層503から出力されるように判定モデル50の演算パラメータを訓練する。これにより、機械学習部112は、2つの対象物が互いに接触するか否かを判定する能力を習得した学習済みの判定モデル50を生成することができる。
保存処理部113は、構築された学習済みの判定モデル50の構造及び演算パラメータを示す情報を学習結果データ125として生成する。そして、保存処理部113は、生成された学習結果データ125を所定の記憶領域に保存する。なお、学習結果データ125の内容は、学習済みの判定モデル50を再生可能であれば、このような例に限定されなくてもよい。例えば、各装置間で判定モデル50の構造が共通化されている場合、学習結果データ125において判定モデル50の構造を示す情報は省略されてよい。
<第2モデル生成装置>
次に、図8を用いて、本実施形態に係る第2モデル生成装置2のソフトウェア構成の一例について説明する。図8は、本実施形態に係る第2モデル生成装置2のソフトウェア構成の一例を模式的に例示する。
第2モデル生成装置2の制御部21は、記憶部22に記憶されたモデル生成プログラム82をRAMに展開する。そして、制御部21は、RAMに展開されたモデル生成プログラム82に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図8に示されるとおり、本実施形態に係る第2モデル生成装置2は、接触判定部211、データ収集部212、モデル生成部213、及び保存処理部214をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、上記第1モデル生成装置1と同様に、第2モデル生成装置2の各ソフトウェアモジュールは、制御部21(CPU)により実現される。
接触判定部211は、学習結果データ125を保持することで、学習済みの判定モデル50を備えている。接触判定部211は、学習結果データ125を参照して、学習済みの判定モデル50の設定を行う。学習済みの判定モデル50は、上記機械学習により、第1対象物及び第2対象物が互いに接触するか否かを判定する能力を習得している。接触判定部211は、第1対象物及び第2対象物の対象のタスク状態を示す情報を学習済みの判定モデル50に与えることで、対象のタスク状態において第1対象物及び第2対象物が互いに接触するか否かを判定する。
データ収集部212及びモデル生成部213は、学習済みの判定モデル50による判定の結果を利用して、第1対象物が第2対象物に接触しないように、最終目標のタスク状態及び現在のタスク状態から次に遷移する目標のタスク状態を決定するように構成された推論モデル55を生成する。すなわち、データ収集部212は、学習済みの判定モデル50による判定の結果を利用して、推論モデル55の生成に使用する学習データ223を収集する。学習データ223の収集には、CADデータ220が更に利用されてよい。モデル生成部213は、収集された学習データ223を使用して、推論モデル55を生成する。学習データ223及び推論モデル55の詳細は後述する。保存処理部214は、生成された推論モデル55に関する情報を推論モデルデータ225として生成し、生成された推論モデルデータ225を所定の記憶領域に保存する。
<制御装置>
次に、図9を用いて、本実施形態に係る制御装置3のソフトウェア構成の一例について説明する。図9は、本実施形態に係る制御装置3のソフトウェア構成の一例を模式的に例示する。
制御装置3の制御部31は、記憶部32に記憶された制御プログラム83をRAMに展開する。そして、制御部31は、RAMに展開された制御プログラム83に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図9に示されるとおり、本実施形態に係る制御装置3は、目標設定部310、データ取得部311、保持判定部312、座標算出部313、状態取得部314、行動決定部315、目標算出部316、角度算出部317、指令決定部318、及び駆動部319をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、上記第1モデル生成装置1と同様に、制御装置3の各ソフトウェアモジュールは、制御部31(CPU)により実現される。
目標設定部310は、遂行するタスクに応じて、最終目標のタスク状態を設定する。本実施形態では、タスク状態は、遂行するタスクにおける第1対象物及び第2対象物、より詳細には、マニピュレータ4の手先及び目標物の間の位置関係により規定される。本実施形態では、位置関係は、上記相対座標により表現される。「最終目標」は、終着点(ゴール)であり、タスクの遂行を完了した時点に実現される。
目標物は、遂行するタスクに応じて適宜設定されてよい。一例として、マニピュレータ4(エンドエフェクタT)がワークWを保持していない場合、目標物は、ワークWであってよい。一方、マニピュレータ4(エンドエフェクタT)がワークWを保持している場合、目標物は、ワークWの組み付け先の対象物(本実施形態では、他のワークG)であってよい。
データ取得部311は、エンドエフェクタTに対するワークWの状態を観測するセンサからセンシングデータを取得する。本実施形態では、データ取得部311は、タスクを遂行する環境を観測する各センサ(カメラS1、エンコーダS2、触覚センサS3)からセンシングデータ322を取得する。カメラS1及び触覚センサS3は、エンドエフェクタTに対するワークWの状態を観測するセンサの一例である。保持判定部312は、取得されたセンシングデータ322に基づいて、エンドエフェクタTがワークWを保持しているか否かを判定する。
座標算出部313は、マニピュレータ4の手先座標の現在値を算出する。座標算出部313は、エンドエフェクタTがワークWと保持していないと判定された場合、エンドエフェクタTの注目点T0をマニピュレータ4の手先に設定する。そして、座標算出部313は、各関節の第1変換式により導出される第1変換式群を変換関数として用いた順運動学計算により、各関節の角度の現在値から設定された手先座標の現在値を算出する。
一方、座標算出部313は、エンドエフェクタTがワークWと保持していると判定された場合、ワークWの注目点W0をマニピュレータ4の手先に設定する。座標算出部313は、エンドエフェクタTの注目点T0の座標系からワークWの注目点W0の座標系に変換するための第2変換式を第1変換式群に掛けることにより、第2変換式群を算出する。そして、座標算出部313は、算出された第2変換式群を変換関数として用いた順運動学計算により、各関節の角度の現在値から設定された手先座標の現在値を算出する。
状態取得部314は、マニピュレータ4の現在のタスク状態を示す情報を取得する。「現在」は、マニピュレータ4の動作を制御する時点であって、マニピュレータ4に与える制御指令を決定する直前の時点である。
行動決定部315は、最終目標のタスク状態に近付くように、取得された情報により示される現在のタスク状態に対して、次に遷移する目標のタスク状態を決定する。「目標」は、最終目標を含み、タスクの遂行を達成するために適宜設定されてよい。最終目標までに設定される目標の数は、1つであってもよいし(この場合、最終目標だけが設定される)、複数であってもよい。最終目標以外の目標は、タスクの開始点から終着点に到達するまでに経由する経由点である。そのため、最終目標を単に「目標(ゴール)」と称し、最終目標以外の目標を「下位目標(サブゴール)」と称してもよい。下位目標は、「経由点」と称してもよい。「次に遷移する目標」は、現在のタスク状態から次に目指すタスク状態(最終目標以外の目標であれば暫定的なタスク状態)であり、例えば、最終目標に向かって、現在のタスク状態に最も近い目標である。
本実施形態では、行動決定部315は、推論モデルデータ225を保持することで、生成された推論モデル55を備えている。行動決定部315は、生成された推論モデル55を利用して、最終目標のタスク状態及び現在のタスク状態から次に遷移する目標のタスク状態を決定する。
目標算出部316は、次に遷移する目標のタスク状態から手先座標の目標値を算出する。角度算出部317は、上記変換関数の逆関数を用いた逆運動学計算により、算出された手先座標の現在値及び目標値の差分から各関節の角度の変化量を算出する。指令決定部318は、算出された各関節の角度の変化量に基づいて、各関節に対する指令値を決定する。駆動部319は、決定された指令値により各関節を駆動する。これらの処理により、本実施形態に係る制御装置3は、マニピュレータ4の動作を制御する。
<その他>
第1モデル生成装置1、第2モデル生成装置2及び制御装置3の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、第1モデル生成装置1、第2モデル生成装置2及び制御装置3の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、第1モデル生成装置1、第2モデル生成装置2及び制御装置3それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[第1モデル生成装置]
次に、図10を用いて、第1モデル生成装置1の動作例について説明する。図10は、本実施形態に係る第1モデル生成装置1による判定モデル50の機械学習に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、判定モデル50を生成するためのモデル生成方法の一例である。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、判定モデル50の機械学習に使用する複数の学習データセット121を取得する。各学習データセット121は、2つの対象物の間の位置関係を示す訓練データ122及び当該位置関係において2つの対象物が互いに接触するか否かを示す正解データ123の組み合わせにより構成される。
各学習データセット121を生成する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、CADデータ120を利用して、仮想空間上で、2つの対象物を様々な位置関係に配置する。本実施形態では、位置関係は、相対座標により表現される。また、本実施形態では、2つの対象物のうちの少なくともいずれかは、マニピュレータ4の動作により移動する対象である。上記第1タスクを遂行する場面を想定する場合、エンドエフェクタT及びワークWがそれぞれ各対象物の一例である。また、上記第2タスクを遂行する場面を想定する場合、エンドエフェクタTにより保持されたワークW及び他のワークGがそれぞれ各対象物の一例である。2つの対象物のうちの一方がマニピュレータ4の手先であり、他方が目標物である。各対象物の配置は、オペレータにより指定されてもよいし、ランダムに決定されてもよい。或いは、一方の対象物の位置を固定し、他方の対象物を規則に従って位置を変更することで、様々な位置関係が実現されてもよい。他方の対象物の配置を与える規則は適宜設定されてよい。これにより、各位置関係における相対座標を各学習データセット121の訓練データ122として取得することができる。また、CADデータ120には、各対象物のモデルが含まれている。そのため、CADデータ120により、対象の位置関係において対象の2つの対象物が互いに接触するか否かを判定することができる。CADデータ120を利用して、各位置関係において2つの対象物が互いに接触するか否かを判定した結果を正解データ123として対応する訓練データ122に関連付ける。これにより、各学習データセット121を生成することができる。なお、各学習データセット121を生成する方法は、このような例に限定されなくてもよい。実空間上において、各対象物の実物を利用することで、各学習データセット121が生成されてもよい。
各学習データセット121は、コンピュータの動作により自動的に生成されてもよいし、少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、各学習データセット121の生成は、第1モデル生成装置1により行われてもよいし、第1モデル生成装置1以外の他のコンピュータにより行われてもよい。各学習データセット121を第1モデル生成装置1が生成する場合、制御部11は、自動的又はオペレータの入力装置15を介した操作により手動的に上記一連の処理を実行することで、複数の学習データセット121を取得する。一方、各学習データセット121を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の学習データセット121を取得する。この場合、CADデータ120は第1モデル生成装置1から省略されてもよい。一部の学習データセット121が第1モデル生成装置1により生成され、その他の学習データセット121が1又は複数の他のコンピュータにより生成されてもよい。
取得される学習データセット121の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数の学習データセット121を取得すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、機械学習部112として動作し、取得された複数の学習データセット121を使用して、判定モデル50の機械学習を実施する。本実施形態では、制御部11は、機械学習により、各学習データセット121について、訓練データ122を入力層501に入力すると、対応する正解データ123に適合する出力値が出力層503から出力されるように判定モデル50を訓練する。これにより、制御部11は、対象の位置関係において2つの対象物が互いに接触するか否かを判定する能力を習得した学習済みの判定モデル50を構築する。
機械学習の処理手順は、実施の形態に応じて適宜決定されてよい。一例として、制御部11は、まず、処理対象となる判定モデル50を用意する。用意する判定モデル50の構造(例えば、層の数、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習を行うことで得られた学習結果データに基づいて、判定モデル50を用意してもよい。
次に、制御部11は、各学習データセット121に含まれる訓練データ122を入力データとして利用し、正解データ123を教師信号として利用して、判定モデル50(ニューラルネットワーク)の学習処理を実行する。この学習処理には、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
例えば、第1のステップでは、制御部11は、各学習データセット121について、訓練データ122を判定モデル50に入力し、判定モデル50の演算処理を実行する。すなわち、制御部11は、訓練データ122を入力層501に入力し、入力側から順に各層501〜503に含まれる各ニューロンの発火判定を行う(すなわち、順伝播の演算を行う)。この演算処理により、制御部11は、判定モデル50の出力層503から、訓練データ122により示される位置関係において2つの対象物が接触するか否かを判定した結果に対応する出力値を取得する。
第2のステップでは、制御部11は、出力層503から取得された出力値と正解データ123との誤差(損失)を損失関数に基づいて算出する。損失関数は、学習モデルの出力と正解との差分(すなわち、相違の程度)を評価する関数であり、出力層503から取得された出力値と正解データ123との差分値が大きいほど、損失関数により算出される誤差の値は大きくなる。誤差の計算に利用する損失関数の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
第3のステップでは、制御部11は、誤差逆伝播(Back propagation)法により、算出された出力値の誤差の勾配を用いて、判定モデル50の各演算パラメータ(各ニューロン間の結合の重み、各ニューロンの閾値等)の値の誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、判定モデル50の演算パラメータの値を更新する。演算パラメータの値を更新する程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
制御部11は、上記第1〜第4のステップを繰り返すことで、各学習データセット121について、出力層503から出力される出力値と正解データ123との誤差の和が小さくなるように、判定モデル50の演算パラメータの値を調整する。例えば、制御部11は、当該誤差の和が閾値以下になるまで、上記第1〜第4のステップの処理を繰り返してもよい。閾値は、実施の形態に応じて適宜設定されてよい。この機械学習の結果により、制御部11は、各学習データセット121について、訓練データ122を入力層501に入力すると、対応する正解データ123に適合する出力値を出力層503から出力するように訓練された学習済みの判定モデル50を構築することができる。この「適合する」ことは、閾値等により許容可能な差異が、出力層503の出力値と教師信号(正解データ123)との間に生じることを含んでもよい。判定モデル50の機械学習が完了すると、制御部11は、次のステップS103に処理を進める。
(ステップS103)
ステップS103では、制御部11は、保存処理部113として動作し、機械学習により構築された学習済みの判定モデル50に関する情報を学習結果データ125として所定の記憶領域に保存する。本実施形態では、制御部11は、ステップS102により構築された学習済みの判定モデル50の構造及び演算パラメータを示す情報を学習結果データ125として生成する。そして、制御部11は、生成された学習結果データ125を所定の記憶領域に保存する。
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ17を介して記憶メディアに学習結果データ125を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、第1モデル生成装置1に接続された外付けの記憶装置であってもよい。
これにより、学習結果データ125の保存が完了すると、制御部11は、学習済みの判定モデル50の生成に関する一連の処理を終了する。
なお、生成された学習結果データ125は、任意のタイミングで第2モデル生成装置2に提供されてよい。例えば、制御部11は、ステップS103の処理として又はステップS103の処理とは別に、学習結果データ125を第2モデル生成装置2に転送してもよい。第2モデル生成装置2は、この転送を受信することで、学習結果データ125を取得してもよい。また、例えば、第2モデル生成装置2は、通信インタフェース23を利用して、第1モデル生成装置1又はデータサーバにネットワークを介してアクセスすることで、学習結果データ125を取得してもよい。また、例えば、第2モデル生成装置2は、記憶媒体92を介して、学習結果データ125を取得してもよい。また、例えば、学習結果データ125は、第2モデル生成装置2に予め組み込まれてもよい。
更に、制御部11は、上記ステップS101〜ステップS103の処理を定期又は不定期に繰り返すことで、学習結果データ125を更新又は新たに生成してもよい。この繰り返しの際には、複数の学習データセット121の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した又は新たに生成した学習結果データ125を学習処理の実行毎に第2モデル生成装置2に提供することで、第2モデル生成装置2の保持する学習結果データ125を更新してもよい。
[第2モデル生成装置]
次に、図11を用いて、第2モデル生成装置2による推論モデル55の生成に関する動作例について説明する。図11は、本実施形態に係る第2モデル生成装置2による推論モデル55の生成に関する処理手順の一例を示すフローチャートである。なお、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS201)
ステップS201では、制御部21は、マニピュレータ4の遂行するタスクに関して、最終目標のタスク状態の指定を受け付ける。タスク状態は、第1対象物及び第2対象物、より詳細には、マニピュレータ4の手先及び目標物の間の位置関係により表現される。本実施形態では、位置関係は、相対座標により表現される。
最終のタスク状態における相対座標を指定する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、最終のタスク状態における相対座標は、入力装置25を介したオペレータの入力により直接的に指定されてもよい。また、例えば、オペレータの入力により、遂行するタスクが選択され、選択されたタスクに応じて、最終のタスク状態における相対座標が指定されてもよい。また、例えば、CADデータ220を利用して、仮想空間上で各対象物のモデルを最終目標の位置関係に配置することで、最終目標における相対座標が指定されてもよい。各対象物のモデルの配置は、シミュレータにより自動的に行われてもよいし、オペレータの入力により手動的に行われてもよい。最終目標のタスク状態が指定されると、制御部21は、次のステップS202に処理を進める。
(ステップS202〜ステップS204)
ステップS202では、制御部21は、任意のタスク状態を開始点に設定する。開始点に設定されるタスク状態は、タスクの遂行を開始する時点におけるタスク状態に相当する。開始点となるタスク状態は、ランダムに設定されてもよいし、或いは、オペレータの入力により指定されてもよい。オペレータによる開始点の指定方法は、上記最終目標の指定方法と同様であってよい。また、開始点となるタスク状態は、任意のアルゴリズムにより決定されてよい。一例として、各対象物の実物を実空間に配置し、カメラにより各対象物を撮影することで、各対象物の写る画像データを取得してもよい。そして、得られた画像データに対して画像処理(例えば、CADデータ220によるマッチング)を行うことで、開始点となるタスク状態が決定されてもよい。その他、開始点となるタスク状態は、CADデータ220を利用して適宜決定されてもよい。
ステップS203では、制御部21は、接触判定部211として動作し、学習済みの判定モデル50を利用して、開始点に設定されたタスク状態において2つの対象物が互いに接触するか否かを判定する。具体的には、制御部21は、学習結果データ125を参照して、学習済みの判定モデル50の設定を行う。続いて、制御部21は、ステップS202で設定されたタスク状態の相対座標を学習済みの判定モデル50の入力層501に入力する。そして、制御部21は、学習済みの判定モデル50の演算処理として、入力側から順に各層501〜503に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、開始点に設定されたタスク状態において2つの対象物が互いに接触するか否かを判定した結果に対応する出力値を学習済みの判定モデル50の出力層503から取得する。
ステップS204では、制御部21は、ステップS203の判定結果に基づいて、処理の分岐先を決定する。ステップS203において、開始点に設定されたタスク状態において2つの対象物が互いに接触すると判定された場合、制御部21は、ステップS202に処理を戻し、開始点のタスク状態を再度設定する。一方、開始点に設定されたタスク状態において2つの対象物が互いに接触しないと判定された場合、制御部21は、設定された開始点のタスク状態をマニピュレータ4の現在のタスク状態として認定し、次のステップS205に処理を進める。
図12Aは、タスク空間SPにおいて、上記ステップS201〜ステップS204の処理により開始点及び最終目標のタスク状態が設定された場面の一例を模式的に例示する。タスク空間SPは、タスク状態を規定する相対座標の集合を表現する。タスク空間SPを示す情報は、第2モデル生成装置2に保持されていてもよいし、保持されていなくてもよい。タスク空間SPに属する各ノード(点)は、2つの対象物の間の相対座標に対応する。図12Aの例では、ノードNsが、開始点のタスク状態における相対座標に対応し、ノードNgが、最終目標のタスク状態における相対座標に対応する。本実施形態では、タスク空間SPにおける2つの対象物が接触するか否かの境界面(接触境界面)は、学習済みの判定モデル50による判定結果に基づいて導出される。
(ステップS205〜ステップS207)
ステップS205では、制御部21は、最終目標のタスク状態に近付くように、現在のタスク状態に対して次に遷移する目標のタスク状態を決定する。
目標のタスク状態を決定する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、目標のタスク状態における相対座標は、オペレータの入力により決定されてもよい。開始点となるタスク状態の設定と同様に、目標のタスク状態における相対座標は、任意のアルゴリズムにより決定されてもよいし、CADデータ220を利用して適宜決定されてもよい。また、例えば、制御部21は、開始点のタスク状態における相対座標をランダムに変更することで、目標のタスク状態における相対座標を決定してもよい。また、例えば、制御部21は、タスク空間SP内で、ノードNgに近付くように、ノードNsから所定距離だけ離れたノードを選択してもよい。制御部21は、選択されたノードに対応するタスク状態を目標のタスク状態として取得してもよい。また、例えば、後述する強化学習により推論モデル55を生成する場合には、強化学習の過程における推論モデル55を利用して、目標のタスク状態が決定されてよい。
また、例えば、目標のタスク状態の決定には、パスプランニング等の公知の方法が採用されてよい。一例として、制御部21は、タスク空間SPにおいて、目標のタスク状態の候補となるノードを設定してもよい。ノードの設定は、ランダムサンプリング等の方法で自動的に行われてもよいし、オペレータの入力により手動的に行われてもよい。一部のノードの設定が自動的に行われ、残りのノードの設定が手動的に行われてもよい。目標のタスク状態の候補となるノードの設定が行われた後、制御部21は、遷移可能なノードの組み合わせを適宜選択してよい。遷移可能なノードの組み合わせを選択する方法には、例えば、最近傍法等が採用されてよい。タスク空間SP内において、遷移可能なノードの組み合わせは、ノードを連結するエッジにより表現されてよい。次に、制御部21は、開始点のノードNsから最終目標のノードNgまでの経路を探索する。経路探索の方法には、ダイクストラ法等が採用されてよい。制御部21は、探索により得られた経路に含まれるノードに対応するタスク状態を目標のタスク状態として取得してもよい。
ステップS206では、制御部21は、接触判定部211として動作し、学習済みの判定モデル50を利用して、決定された目標のタスク状態において2つの対象物が互いに接触するか否かを判定する。開始点のタスク状態から目標のタスク状態に判定の対象が置き換わる点を除き、制御部21は、上記ステップS203と同様に、ステップS206の処理を実行してよい。すなわち、制御部21は、目標のタスク状態の相対座標を学習済みの判定モデル50に入力し、学習済みの判定モデル50の演算処理を実行する。これにより、制御部21は、目標のタスク状態において2つの対象物が互いに接触するか否かを判定した結果に対応する出力値を学習済みの判定モデル50から取得する。
ステップS207では、制御部21は、ステップS206の判定結果に基づいて、処理の分岐先を決定する。ステップS206において、目標のタスク状態において2つの対象物が互いに接触すると判定された場合、制御部21は、ステップS205に処理を戻し、目標のタスク状態を再度決定する。一方、目標のタスク状態において2つの対象物が互いに接触しないと判定された場合、制御部21は、次のステップS208に処理を進める。
なお、ステップS207における分岐先は、このような例に限定されなくてもよい。例えば、目標のタスク状態において2つの対象物が互いに接触すると判定された場合、制御部21は、ステップS202に処理を戻し、開始点の設定から処理をやり直してもよい。また、例えば、目標のタスク状態を複数回決定した後に、最後に決定された目標のタスク状態において2つの対象物が互いに接触すると判定された場合、制御部21は、ステップS205に処理を戻し、次に遷移する目標のタスク状態の決定を開始点から再度行ってもよい。接触までに決定された目標のタスク状態の系列は、最終目標のタスク状態まで到達不能な失敗事例として収集されてもよい。
図12Bは、タスク空間SPにおいて、上記ステップS205〜ステップS207の処理により、目標のタスク状態が決定された場面の一例を模式的に例示する。図12Bの例では、ノードN1が、開始点のタスク状態(ノードNs)の次に遷移する目標のタスク状態として決定されたタスク状態における相対座標に対応する。なお、図12Bの例では、ステップS205において、1回の遷移分の目標のタスク状態が決定されたことを想定している。ただし、ステップS205において決定する目標のタスク状態の数は、1つに限られなくてもよい。ステップS205では、制御部21は、最終目標のタスク状態に向けて、複数回の遷移分の目標のタスク状態(目標のタスク状態の系列)を決定してもよい。
(ステップS208)
ステップS208では、制御部21は、ステップS205により決定された目標のタスク状態にマニピュレータ4の現在のタスク状態を遷移させる。そして、制御部21は、マニピュレータ4のタスク状態が最終目標のタスク状態に到達したか否か、すなわち、遷移先のタスク状態が最終目標のタスク状態であるか否かを判定する。タスク状態の遷移は、シミュレーションにより仮想空間上で行われてよい。最終目標のタスク状態に到達したと判定した場合、制御部21は、次のステップS209に処理を進める。一方、最終目標のタスク状態に到達していないと判定した場合、制御部21は、ステップS205に処理を戻し、更なる目標のタスク状態を決定する。
図12Cは、タスク空間SPにおいて、上記ステップS208までの処理により、開始点のタスク状態から最終目標のタスク状態までの遷移するタスク状態の系列が決定された場面の一例を模式的に例示する。各ノードN1〜N4が、開始点のノードNsから最終目標のノードNgに到達するまでに、目標のタスク状態として決定されたタスク状態における相対座標に対応する。ノードN(k+1)は、ノードN(k)の次に遷移する目標のタスク状態を示す(kは、1〜3)。図12Cに例示されるとおり、ステップS208までの処理により、制御部21は、開始点から最終目標までに遷移する目標のタスク状態の系列を得ることができる。
(ステップS209)
ステップS209では、制御部21は、ステップS202〜ステップS208の処理を繰り返すか否かを判定する。処理を繰り返す基準は、実施の形態に応じて適宜決定されてよい。
例えば、処理を繰り返す規定回数が設定されていてもよい。規定回数は、例えば、設定値により与えられてもよいし、オペレータの指定により与えられてもよい。この場合、制御部21は、ステップS202〜ステップS208の処理を実行した回数が規定回数に到達したか否かを判定する。実行回数が規定回数に到達していないと判定した場合、制御部21は、ステップS202に処理を戻し、ステップS202〜ステップS208の処理を繰り返す。一方、実行回数が規定回数に到達していると判定した場合には、制御部21は、次のステップS210に処理を進める。
また、例えば、制御部21は、処理を繰り返すか否かをオペレータに問い合わせてもよい。この場合、制御部21は、オペレータの回答に応じて、ステップS202〜ステップS208の処理を繰り返すか否かを判定する。オペレータが処理を繰り返すと回答した場合、制御部21は、ステップS202に処理を戻し、ステップS202〜ステップS208の処理を繰り返す。一方、オペレータが処理を繰り返さないと回答した場合、制御部21は、次のステップS210に処理を進める。
ステップS209までの処理により、図12Cに例示される開始点から最終目標までに遷移する目標のタスク状態の1つ以上の系列を得ることができる。制御部21は、データ収集部212として動作し、この開始点から最終目標までに遷移する目標のタスク状態の1つ以上の系列を収集する。そして、制御部21は、収集された系列により学習データ223を生成する。制御部21は、収集された系列をそのまま学習データ223として取得してもよいし、収集された系列に対して何らかの情報処理を実行することで学習データ223を生成してもよい。学習データ223の構成は、推論モデル55を生成する方法に応じて適宜決定されてよい。学習データ223の構成については後述する。
(ステップS210及びステップS211)
ステップS210では、制御部21は、モデル生成部213として動作する。すなわち、制御部21は、学習済みの判定モデル50による判定の結果を利用して得られた学習データ223を使用して、第1対象物が第2対象物に接触しないように、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論するための推論モデル55を生成する。推論モデル55を生成する方法については後述する。
ステップS211では、制御部21は、保存処理部214として動作する。すなわち、制御部21は、生成された推論モデル55に関する情報を推論モデルデータ225として生成し、生成された推論モデルデータ225を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部21内のRAM、記憶部22、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部21は、ドライブ27を介して記憶メディアに推論モデルデータ225を格納してもよい。外部記憶装置は、例えば、NAS等のデータサーバであってよい。この場合、制御部21は、通信インタフェース23を利用して、ネットワークを介してデータサーバに推論モデルデータ225を格納してもよい。また、外部記憶装置は、例えば、第2モデル生成装置2に接続された外付けの記憶装置であってもよい。
これにより、推論モデルデータ225の保存が完了すると、制御部21は、推論モデル55の生成に関する一連の処理を終了する。
なお、生成された推論モデルデータ225は、任意のタイミングで制御装置3に提供されてよい。例えば、制御部21は、ステップS211の処理として又はステップS211の処理とは別に、推論モデルデータ225を制御装置3に転送してもよい。制御装置3は、この転送を受信することで、推論モデルデータ225を取得してもよい。また、例えば、制御装置3は、通信インタフェース33を利用して、第2モデル生成装置2又はデータサーバにネットワークを介してアクセスすることで、推論モデルデータ225を取得してもよい。また、例えば、制御装置3は、記憶媒体93を介して、推論モデルデータ225を取得してもよい。また、例えば、推論モデルデータ225は、制御装置3に予め組み込まれてもよい。
更に、制御部21は、上記ステップS201〜ステップS211の処理を定期又は不定期に繰り返すことで、推論モデルデータ225を更新又は新たに生成してもよい。この繰り返しの際には、学習データ223の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部21は、更新した又は新たに生成した推論モデルデータ225を学習処理の実行毎に制御装置3に提供することで、制御装置3の保持する推論モデルデータ225を更新してもよい。
<推論モデルの生成方法>
次に、上記ステップS210における推論モデル55の生成方法の具体例について説明する。本実施形態では、制御部21は、以下の2つの方法のうちの少なくともいずれかの方法により、推論モデル55を生成することができる。
(1)第1の方法
第1の方法では、制御部21は、機械学習を実施することで、推論モデル55を生成する。この場合、推論モデル55は、機械学習モデルにより構成される。機械学習モデルの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。推論モデル55は、例えば、関数式、データテーブル等により表現されてよい。関数式で表現される場合、推論モデル55は、例えば、ニューラルネットワーク、サポートベクタマシン、回帰モデル、決定木等により構成されてよい。また、機械学習の方法も、特に限定されなくてもよく、推論モデル55の構成に応じて適宜選択されてよい。推論モデル55の機械学習の方法には、例えば、教師あり学習、強化学習等が採用されてよい。以下、推論モデル55を構成する機械学習モデル及び機械学習の方法それぞれの2つの例について説明する。
(1−1)第1の例
図13は、推論モデル55を構成する機械学習モデル及び機械学習の方法の第1の例を模式的に示す。第1の例では、推論モデル55にニューラルネットワーク、機械学習の方法に教師あり学習を採用する。なお、図13の例では、説明の便宜上、推論モデル55、学習データ223、及び推論モデルデータ225それぞれの一例を、推論モデル551、学習データ2231、及び推論モデルデータ2251と表記する。
(1−1−1)推論モデルの構成例
第1の例では、推論モデル551は、3層構造の再帰型ニューラルネットワークにより構成されている。具体的に、推論モデル551は、入力層N51、LSTM(長期短期記憶:Long short-term memory)ブロックN52、及び出力層N53を備えている。LSTMブロックN52は、中間層に対応する。
LSTMブロックN52は、入力ゲート及び出力ゲートを備え、情報の記憶及び出力のタイミングを学習可能に構成されたブロックである(S.Hochreiter and J.Schmidhuber, “Long short-term memory” Neural Computation, 9(8):1735-1780, November 15, 1997)。LSTMブロックN52は、情報の忘却のタイミングを調節する忘却ゲートを更に備えてもよい(Felix A. Gers, Jurgen Schmidhuber and Fred Cummins, "Learning to Forget: Continual Prediction with LSTM" Neural Computation, pages 2451-2471, October 2000)。LSTMブロックN52の構成は、実施の形態に応じて適宜設定されてよい。
なお、推論モデル551の構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。推論モデル551は、異なる構造の再帰型ニューラルネットワークにより構成されてもよい。或いは、推論モデル551は、再帰型ではなく、上記判定モデル50と同様に全結合型ニューラルネットワーク、又は畳み込みニューラルネットワークにより構成されてもよい。或いは、推論モデル551は、複数種類のニューラルネットワークの組み合わせにより構成されてもよい。また、推論モデル551の備える中間層の数は、1つに限られなくてもよく、2つ以上であってもよい。或いは、中間層は、省略されてもよい。その他、推論モデル551の構成は、上記判定モデル50と同様であってよい。
(1−1−2)学習データの構成例
推論モデル551の教師あり学習に利用される学習データ2231は、訓練データ(入力データ)及び正解データ(教師信号)の組み合わせを含む複数の学習データセットL30により構成される。訓練データは、訓練用の現在のタスク状態L31における相対座標及び訓練用の最終目標のタスク状態L32における相対座標により構成されてよい。正解データは、訓練用の目標のタスク状態L33における相対座標により構成されてよい。なお、訓練データ及び正解データの形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、訓練データには、相対座標がそのまま利用されてもよいし、或いは、相対座標を特徴量に変換することで得られた値が利用されてもよい。
制御部21は、ステップS209までの処理により得られた目標のタスク状態の1つ以上の系列から各学習データセットL30を生成することができる。例えば、ノードNgにより示される最終目標のタスク状態を、訓練用の最終目標のタスク状態L32として利用することができる。また、制御部21は、ノードNsにより示される開始点のタスク状態を訓練用の現在のタスク状態L31に設定した場合、対応する正解データにおける訓練用の目標のタスク状態L33に、ノードN1により示されるタスク状態を設定してよい。同様に、制御部21は、ノードN(k)により示されるタスク状態を訓練用の現在のタスク状態L31に設定した場合、対応する正解データにおける訓練用の目標のタスク状態L33に、ノードN(k+1)により示されるタスク状態を設定してよい。制御部21は、ノードN4により示されるタスク状態を訓練用の現在のタスク状態L31に設定した場合、対応する正解データにおける訓練用の目標のタスク状態L33に、ノードNgにより示される最終目標のタスク状態を設定してよい。これにより、得られた目標のタスク状態の1つ以上の系列から各学習データセットL30を生成することができる。
(1−1−3)ステップS210について
上記ステップS210では、制御部21は、取得された複数の学習データセットL30を使用して、推論モデル551の機械学習(教師あり学習)を実施する。第1の例では、制御部21は、機械学習により、各学習データセットL30について、訓練データを入力層N51に入力すると、正解データに適合する出力値を出力層N53から出力するように推論モデル551を訓練する。これにより、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル551を生成することができる。
推論モデル551の機械学習の方法は、上記判定モデル50の機械学習の方法と同様であってよい。すなわち、第1のステップでは、制御部21は、各学習データセットL30について、推論モデル551の入力層N51に訓練データを入力し、推論モデル551の演算処理を実行する。これにより、制御部21は、現在のタスク状態に対して次に遷移する目標のタスク状態を推論した結果に対応する出力値を推論モデル551の出力層L53から取得する。第2のステップでは、制御部21は、出力層L53の出力値と正解データとの誤差を損失関数に基づいて算出する。
続いて、第3のステップでは、制御部21は、誤差逆伝播法により、算出された出力値の誤差の勾配を用いて、推論モデル551の各演算パラメータの値の誤差を算出する。制御部21は、算出された誤差の勾配を用いて、推論モデル551の各演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値等)の値の誤差を算出する。第4のステップでは、制御部21は、算出された各誤差に基づいて、推論モデル551の演算パラメータの値を更新する。更新の程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
制御部21は、上記第1〜第4のステップを繰り返すことで、各学習データセットL30について、出力層N53から出力される出力値と正解データとの誤差の和が小さくなるように、推論モデル551の演算パラメータの値を調整する。例えば、制御部21は、誤差の和が閾値以下になるまで、上記第1〜第4のステップの処理を繰り返してもよい。閾値は、実施の形態に応じて適宜設定されてよい。或いは、制御部21は、上記第1〜第4のステップを所定回数繰り返してもよい。調整を繰り返す回数は、例えば、プログラム内の設定値で指定されてもよいし、オペレータの入力により指定されてもよい。
この機械学習(教師あり学習)の結果により、制御部21は、各学習データセットL30について、訓練データを入力層N51に入力すると、対応する正解データに適合する出力値を出力層N53から出力するように訓練された学習済みの推論モデル551を構築することができる。すなわち、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル551を構築することができる。
ステップS211では、制御部21は、教師あり学習により構築された学習済みの推論モデル551の構造及び演算パラメータを示す情報を推論モデルデータ2251として生成する。そして、制御部21は、生成された推論モデルデータ2251を所定の記憶領域に保存する。なお、推論モデルデータ2251の内容は、学習済みの推論モデル551を再生可能であれば、このような例に限定されなくてもよい。例えば、各装置間で推論モデル551の構造が共通化されている場合、推論モデルデータ2251において推論モデル551の構造を示す情報は省略されてよい。
(1−1−4)その他
なお、機械学習の方法に教師あり学習を採用する場合、推論モデル551の構成は、ニューラルネットワークに限られなくてよい。ニューラルネットワーク以外の機械学習モデルが推論モデル551として採用されてもよい。推論モデル551を構成する機械学習モデルには、例えば、サポートベクタマシン、回帰モデル、決定木等が採用されてもよい。教師あり学習の方法は、上記の例に限定されなくてよく、機械学習モデルの構成に応じて適宜選択されてよい。
(1−2)第2の例
図14は、推論モデル55を構成する機械学習モデル及び機械学習の方法の第2の例を模式的に示す。第2の例では、機械学習の方法に強化学習を採用する。なお、図14の例では、説明の便宜上、推論モデル55、学習データ223、及び推論モデルデータ225それぞれの一例を、推論モデル552、学習データ2232、及び推論モデルデータ2252と表記する。
(1−2−1)推論モデルの構成例
第2の例では、推論モデル552には、価値ベース、方策ベース、又はその両方が採用されてよい。価値ベースを採用する場合、推論モデル552は、例えば、状態価値関数、行動価値関数(Q関数)等の価値関数により構成されてよい。状態価値関数は、与えられた状態の価値を出力するように構成される。行動価値関数は、与えられた状態に対して各行動の価値を出力するように構成される。方策ベースを採用する場合、推論モデル552は、例えば、方策関数により構成されてよい。方策関数は、与えられた状態に対して各行動を選択する確率を出力するように構成される。両方を採用する場合、推論モデル552は、例えば、価値関数(Critic)及び方策関数(Actor)により構成されてよい。各関数は、例えば、データテーブル、関数式等により表現されてよい。関数式により表現する場合、各関数は、ニューラルネットワーク、線形関数、決定木等により構成されてよい。なお、中間(隠れ)層が複数存在する多層構造のニューラルネットワークにより各関数を構成することで、深層強化学習が実施されてよい。
(1−2−2)学習データの構成例
強化学習では、基本的に、方策に従って行動することで、学習の環境と相互作用するエージェントが仮定される。エージェントの実体は、例えば、CPUである。推論モデル552は、上記の構成により、行動を決定する方策として動作する。エージェントは、与えられた学習の環境内で、強化する行動に関する状態を観測する。本実施形態では、観測対象となる状態は、相対座標により規定されるタスク状態であり、実行される行動は、現在のタスク状態から目標のタスク状態への遷移である。方策は、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を決定(推論)するように構成される。
エージェントは、観測された現在のタスク状態(入力データ)を推論モデル552に与えて、次に遷移する目標のタスク状態を推論してよい。エージェントは、この推論の結果に基づいて、目標のタスク状態を決定してもよい。或いは、目標のタスク状態は、ランダムに決定されてよい。これにより、エージェントは、採用する行動を決定することができる。決定された目標のタスク状態に遷移する行動をエージェントが実行すると、観測されるタスク状態は次のタスク状態に遷移する。場合によって、エージェントは、学習の環境から即時報酬を得ることができる。
この行動の決定及び実行の試行錯誤を繰り返しながら、エージェントは、即時報酬の総和(すなわち、価値)を最大化するように、推論モデル552を更新する。これにより、最適な行動、すなわち、高い価値の取得を期待可能な行動が強化され、そのような行動の選択を可能にする方策(学習済みの推論モデル552)を得ることができる。
したがって、強化学習では、学習データ2232は、この試行錯誤により得られる状態遷移データであって、実行された行動により現在のタスク状態から次のタスク状態に遷移し、場合によって即時報酬が得られるという状態遷移を示す状態遷移データにより構成される。1件の状態遷移データは、1エピソード全ての状態遷移の軌跡を示すデータにより構成されてもよいし、或いは、所定回数(1回以上)分の状態遷移を示すデータにより構成されてもよい。上記ステップS202〜ステップS209の処理過程において、制御部21は、訓練中の推論モデル552を利用して、上記試行錯誤を実行することで、上記状態遷移データを取得することができる。
また、状態遷移に応じて即時報酬を算出するのには報酬関数が用いられてよい。報酬関数は、データテーブル、関数式、又はルールにより表現されてよい。関数式により表現する場合、報酬関数は、ニューラルネットワーク、線形関数、決定木等により構成されてよい。報酬関数は、オペレータ等により、手動的に設定されてもよい。
或いは、報酬関数は、遷移する対象のタスク状態において第1対象物及び第2対象物が互いに接触するか否かを上記学習済みの判定モデル50により判定した結果、並びに当該対象のタスク状態及び最終目標のタスク状態の間の距離に応じて即時報酬を与えるように設定されてよい。具体的には、即時報酬は、第1対象物及び第2対象物が互いに接触せず、かつ対象のタスク状態及び最終目標のタスク状態の間の距離が短いほど多く設定され、第1対象物及び第2対象物が互いに接触する、又は当該距離が長いほど少なく設定されてよい。以下の式1は、このように即時報酬を与える報酬関数の一例を例示する。
cは、方策により決定された目標のタスク状態を示す。sgは、最終目標のタスク状態を示す。F(sc)は、タスク状態scにおいて第1対象物及び第2対象物が互いに接触するか否かを学習済みの判定モデル50により判定した結果を示す。互いに接触すると判定された場合、F(sc)の値は小さくなり(例えば、0)、互いに接触しないと判定された場合に、F(sc)の値は大きくなる(例えば、1)ように設定されてよい。学習済みの判定モデル50の出力値が当該設定に対応している場合には、学習済みの判定モデル50の出力値がそのままF(sc)として使用されてもよい。
或いは、報酬関数は、エキスパートにより得られた事例データから逆強化学習により推定されてよい。事例データは、エキスパートによる実演(の軌跡)を示すデータにより構成されてよい。本実施形態では、事例データは、例えば、任意の開始点のタスク状態から最終目標のタスク状態に到達するように第1対象物を実際に移動した経路を示すデータにより構成されてよい。事例データを生成する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。事例データは、例えば、エキスパートによる実演の軌跡をセンサ等により記録することにより生成されてよい。
逆強化学習の方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。逆強化学習には、例えば、最大エントロピー原理による方法、相対エントロピーの最小化による方法、敵対的生成ネットワークを利用した方法(例えば、Justin Fu, et al., "Learning Robust Rewards with Adversarial Inverse Reinforcement Learning", arXiv:1710.11248, 2018)等が用いられてよい。逆強化学習により報酬関数を得る場合、学習データ2232は、逆強化学習に利用する事例データを更に備えてよい。
(1−2−3)ステップS210について
上記ステップS210では、制御部21は、得られた状態遷移データに基づいて、価値を最大化するように推論モデル552の演算パラメータの値を更新する。推論モデル552の演算パラメータの値を調整する方法は、推論モデル552の構成に応じて適宜選択されてよい。例えば、推論モデル552がニューラルネットワークにより構成される場合、推論モデル552の演算パラメータの値は、誤差逆伝播法等により、上記第1の例と同様の方法で調整されてよい。
制御部21は、得られる価値(の期待値)が最大化されるように(例えば、更新量が閾値以下になるまで)、推論モデル552の演算パラメータの値を調整する。すなわち、推論モデル552を訓練することは、所定の条件(例えば、更新量が閾値以下になること)を満たすまで報酬が多く得られるように推論モデル552を構成する演算パラメータの値の修正を繰り返すことを含む。これにより、制御部21は、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル552を生成することができる。
なお、制御部21は、ステップS202〜ステップS209の処理により学習データ2232を収集し終えた後に、上記推論モデル552の演算パラメータの値の調整を実行してもよい。或いは、制御部21は、ステップS202〜ステップS210の処理を繰り返しながら、上記推論モデル552の演算パラメータの値の調整を実行してもよい。
推論モデル552が価値ベースで構成される場合、上記強化学習の方法には、TD(temporal difference)法、TD(λ)法、モンテカルロ法、動的計画法等が用いられてよい。試行錯誤における行動の決定は、オンポリシであってもよいし、オフポリシであってもよい。具体例として、強化学習の方法には、Q学習、Sarsa等が用いられてよい。試行錯誤の際には、確率εでランダムな行動を採用してもよい(ε−グリーディ法)。
また、推論モデル552が方策ベースで構成される場合、上記強化学習の方法には、方策勾配法、TRPO(trust region policy optimization)、PPO(proximal policy optimization)等が用いられてよい。この場合、制御部21は、得られる価値が増加する方向に方策関数の演算パラメータの勾配を算出し、算出された勾配に基づいて、方策関数の演算パラメータの値を更新する。方策関数の勾配の算出には、例えば、REINFORCEアルゴリズム等が用いられてよい。
また、推論モデル55が両方で構成される場合、上記強化学習の方法には、Actor Critic法、A2C(Advantage Actor Critic)、A3C(Asynchronous Advantage Actor Critic)等が用いられてよい。
更に、逆強化学習を実施する場合には、上記強化学習の処理を実行する前に、制御部21は、事例データを更に取得する。事例データは、第2モデル生成装置2により生成されてもよいし、他のコンピュータにより生成されてもよい。他のコンピュータにより生成される場合、制御部21は、ネットワーク、記憶媒体92等を介して、他のコンピュータにより生成された事例データを取得してもよい。次に、制御部21は、取得された事例データを利用して、逆強化学習を実行することで、報酬関数を設定する。そして、制御部21は、逆強化学習により設定された報酬関数を利用して、上記強化学習の処理を実行する。これにより、制御部21は、逆強化学習により設定された報酬関数を利用して、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル552を生成することができる。
ステップS211では、制御部21は、強化学習により構築された学習済みの推論モデル552を示す情報を推論モデルデータ2252として生成する。学習済みの推論モデル552を示す情報には、例えば、データテーブルの各項目の値、関数式の係数の値等の演算パラメータを示す情報が含まれてよい。そして、制御部21は、生成された推論モデルデータ2252を所定の記憶領域に保存する。第2の例によれば、第1対象物及び第2対象物の無用な接触を避けると共に、マニピュレータ4のタスク状態が最終目標のタスク状態に早く到達するように目標のタスク状態を決定可能な推論モデル55を生成することができる。
(1−3)小括
本実施形態では、機械学習モデルにより推論モデル55を構成する場合、推論モデル55の構成には、上記2つの例の少なくともいずれかが採用されてもよい。制御部21は、上記2つの機械学習の方法の少なくともいずれかを採用することで、第1対象物が第2対象物に接触しないように、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル55を生成することができる。よって、第1の方法によれば、タスクの遂行に利用可能な推論モデル55を適切に生成することができる。
(2)第2の方法
図15Aは、第2の方法における学習データ223の一例を模式的に例示する。図15Bは、第2の方法における推論モデル55の構成の一例を模式的に例示する。第2の方法では、推論モデル55は、タスク状態の集合を表現するタスク空間SP内の各座標のポテンシャルを規定するポテンシャル場により構成される。なお、図15A及び図15Bでは、説明の便宜上、推論モデル55、学習データ223、及び推論モデルデータ225それぞれの一例を、推論モデル553、学習データ2233、及び推論モデルデータ2253と表記する。
制御部21は、上記ステップS202〜ステップS209の処理により、タスク空間SP内で、学習済みの判定モデル50を利用して、第1対象物が第2対象物に接触しないように、パスプランニングを実施する。これにより、図15Aに例示されるとおり、制御部21は、それぞれ開始点(ノードNs)として与えられた複数のタスク状態それぞれから最終目標のタスク状態までの経路Hbを示す学習データ2233を生成することができる。各開始点(ノードNs)は、ランダムに与えられてよい。
上記ステップS210では、制御部21は、生成された学習データ2233により示される各経路Hbの通過する頻度に応じて、各座標のポテンシャルを設定することで、ポテンシャル場を生成する。ポテンシャル場を導出する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。制御部21は、は、例えば、カーネル密度推定、混合ガウスモデル(GMM:Gaussian Mixture Model)を用いた推定により、学習データ3233からポテンシャル場を導出してもよい。これにより、図15Bに例示されるポテンシャル場(推論モデル553)を得ることができる。
ポテンシャル場における各座標のポテンシャルは、最終目標に到達することに対する、各座標における第1対象物及び第2対象物の位置関係の評価値を示す。すなわち、ポテンシャルが高いほど、その座標における位置関係が最終目標に到達する可能性が高いことを示し、ポテンシャルが低いほど、その座標における位置関係が最終目標に到達する可能性が低いことを示す。そのため、ポテンシャルの勾配の高い方に遷移することで、開始点となる任意のタスク状態から最終目標のタスク状態に適切に到達することができる。よって、第2の方法によれば、タスクの遂行に利用可能な推論モデル55を適切に生成することができる。
ステップS211では、制御部21は、生成されたポテンシャル場を示す情報を推論モデルデータ2253として生成する。ポテンシャル場は、データテーブル、関数式等により表現されてよい。そして、制御部21は、生成された推論モデルデータ2253を所定の記憶領域に保存する。
(3)小括
本実施形態では、推論モデル55を生成する方法として、上記2つの方法のうちの少なくともいずれかが採用されてよい。制御部21は、上記2つの方法のうちの少なくともいずれかを採用することで、第1対象物が第2対象物に接触しないように、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論するように構成された推論モデル55を生成することができる。
なお、第1対象物が第2対象物に接触しないように目標のタスク状態を推論することは、第1対象物及び第2対象物の間で意図しない接触が生じるのを避けて目標のタスク状態を決定することであり、例えば、エンドエフェクタTがワークWを保持する等の第1対象物が第2対象物に適正に接触するタスク状態を目標のタスク状態として決定することを含んでもよい。すなわち、避ける対象となる「接触する」状態は、例えば、第1対象物及び第2対象物の間で過度な力が作用する、第1対象物及び第2対象物の一方が他方に正しい姿勢で組付けられる以外の状態で接触する等の不適正に接触する状態である。したがって、「第1対象物が第2対象物に接触しない」ことは、「第1対象物が第2対象物に不適正な状態で接触するのを避ける」ことに置き換えられてよい。
[制御装置]
次に、図16A、図16B及び図17を用いて、本実施形態に係る制御装置3のマニピュレータ4の動作制御に関する動作例について説明する。図16A及び図16Bは、本実施形態に係る制御装置3によるマニピュレータ4の動作制御に関する処理手順の一例を示すフローチャートである。図17は、動作制御の過程における各要素の計算処理のフローの一例を示す。以下で説明する処理手順は、本発明の「制御方法」の一例である。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。なお、以下で説明するマニピュレータ4の動作の制御は、実空間上で実施されてもよいし、或いは仮想空間上で実施されてもよい。
(ステップS301及びステップS302)
ステップS301では、制御部31は、遂行するタスクの指定を受け付ける。タスクの指定を受け付ける方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、入力装置35を介したタスクの名称の入力により、遂行するタスクの指定を受け付けてもよい。また、例えば、制御部31は、遂行するタスクの候補を示すリストを出力装置36に出力し、オペレータに遂行するタスクをリストから選択させることで、遂行するタスクの指定を受け付けてもよい。
本実施形態では、制御部31は、第1対象物及び第2対象物の存在する環境下で、第2対象物に対して第1対象物を移動するタスクの遂行を受け付ける。具体的には、マニピュレータ4を駆動して、エンドエフェクタTによりワークWを保持し、保持したワークWを他のワークGに組み付ける一連の作業が、指定されるタスクの一例である。本実施形態では、ワークWを保持しに行く第1タスクの過程では、エンドエフェクタTの注目点T0がマニピュレータ4の手先として取り扱われ、ワークWが、手先の移動の目標物である。一方、ワークWを保持した後、ワークWを他のワークGに組み付ける第2タスクの過程では、エンドエフェクタTに保持されたワークWの注目点W0がマニピュレータ4の手先として取り扱われ、ワークWの組付け先である他のワークWが、手先の移動の目標物である。各タスクでは、マニピュレータ4の手先が第1対象物に相当し、目標物が第2対象物に相当する。
ステップS302では、制御部31は、目標設定部310として動作し、指定されたタスクに応じて最終目標のタスク状態sgを設定する。上記のとおり、本実施形態では、タスク状態は、マニピュレータ4の手先及び目標物の間の位置関係により規定される。また、位置関係は、相対座標により表現される。最終目標のタスク状態sgにおける相対座標は、CAD等のシミュレータにより与えられてもよいし、オペレータの指定により与えられてもよい。最終目標のタスク状態sgにおける相対座標は、上記ステップS201と同様の方法により設定されてよい。最終目標のタスク状態sgを設定すると、制御部31は、次のステップS303に処理を進める。
(ステップS303)
ステップS303では、制御部31は、データ取得部311として動作し、タスクを遂行する環境を観測する各センサからセンシングデータ322を取得する。
本実施形態では、タスクを遂行する環境を観測する視覚系のセンサとしてカメラS1が用いられている。また、マニピュレータ4は、各関節(関節部41〜46)の角度を測定するエンコーダS2及びエンドエフェクタTに作用する力を測定する触覚センサS3を備えている。そのため、制御部31は、センシングデータ322として、タスクを遂行する環境の写る画像データをカメラS1から取得することができる。また、制御部31は、センシングデータ322として、マニピュレータ4における各関節の角度の現在値q(j)(すなわち、現在の測定値)を各エンコーダS2から取得することができる。なお、以下では、説明の便宜のため、「現在」等のタイミングを特に区別する場合に(j)等のタイミングを表す符号を付し、そうではない場合には当該符号を省略する。更に、制御部31は、センシングデータ322として、エンドエフェクタTに作用する力の測定データを触覚センサS3から取得することができる。制御部31は、各センサ(カメラS1、エンコーダS2、触覚センサS3)からセンシングデータ322を直接的に取得してもよいし、或いは、例えば、他のコンピュータを経由する等して、センシングデータ322を間接的に取得してもよい。カメラS1及び触覚センサS3はそれぞれ、エンドエフェクタTに対するワークWの状態を観測するセンサの一例である。センシングデータ322を取得すると、制御部31は、次のステップS304に処理を進める。
(ステップS304)
ステップS304では、制御部31は、保持判定部312として動作し、取得されたセンシングデータ322に基づいて、エンドエフェクタTがワークWを保持しているか否かを判定する。判定方法は、特に限定されなくてもよく、センシングデータ322に応じて適宜決定されてよい。
例えば、本実施形態では、センシングデータ322として、タスクの環境が写る画像データをカメラS1から取得することができる。そこで、制御部31は、CADデータ320を利用して、取得された画像データに対してエンドエフェクタT及びワークWのモデルをマッチングしてもよい。そして、制御部31は、当該マッチングの結果により特定されたエンドエフェクタT及びワークWの位置関係に基づいて、エンドエフェクタTがワークWを保持しているか否かを判定してもよい。マッチングの方法には、公知の画像処理方法が用いられてよい。
また、例えば、本実施形態では、センシングデータ322として、エンドエフェクタTに作用する力の測定データを取得することができる。そこで、制御部31は、測定データにより表れる力の分布に基づいて、エンドエフェクタTがワークWを保持しているか否かを判定してもよい。エンドエフェクタTがワークWを保持していると認められる力がエンドエフェクタTに作用していると測定データから推定される場合、制御部31は、エンドエフェクタTがワークWを保持していると判定してもよい。一方、そうではない場合、制御部31は、エンドエフェクタTはワークWを保持していないと判定してもよい。
センシングデータ322に基づいて、エンドエフェクタTがワークWを保持しているか否かの判定が完了すると、制御部31は、次のステップS305に処理を進める。
(ステップS305)
ステップS305では、制御部31は、ステップS304の判定の結果に基づいて、マニピュレータ4の動作モードを設定する。具体的には、エンドエフェクタTがワークWを保持していないと判定した場合、制御部31は、エンドエフェクタTの注目点T0をマニピュレータ4の手先に設定し、エンドエフェクタTによりワークWを保持する第1タスクを遂行するモードに動作モードを設定する。一方、エンドエフェクタTがワークWを保持していると判定した場合、制御部31は、ワークWの注目点W0をマニピュレータ4の手先に設定し、エンドエフェクタTにより保持されたワークWを他のワークGに組み付ける第2タスクを遂行するモードに動作モードを設定する。動作モードの設定が完了すると、制御部31は、次のステップS306に処理を進める。
(ステップS306)
ステップS306では、制御部31は、状態取得部314として動作し、マニピュレータ4の現在のタスク状態s(j)を取得する。
上記のとおり、本実施形態では、エンドエフェクタTがワークWを保持していない場合、タスク状態sは、エンドエフェクタTに対するワークWの相対座標により規定される。一方、エンドエフェクタTがワークWを保持している場合、タスク状態sは、ワークWに対する他のワークGの相対座標により規定される。本実施形態では、制御部31は、CADデータ320を利用して、カメラS1により得られた画像データに対して各対象物をマッチングする。制御部31は、このマッチングの結果から、現在のタスク状態s(j)を取得することができる。
ここで、図18を更に用いて、現在のタスク状態s(j)を取得する方法の一例について説明する。図18は、各対象物の位置関係の一例を模式的に例示する。図18の例では、マニピュレータ4の台座部40に観測空間の原点が設定されている。ただし、原点の位置は、このような例に限定されなくてもよく、実施の形態に応じて決定されてよい。原点に対するカメラS1の同次座標(TC)は、以下の式2により表現することができる。
rcは、原点の座標系からカメラS1の座標系を見た回転成分を示し、trcは、平行移動成分を示す。以下では、説明の便宜上、原点の同次座標(TR)は、以下の式3を満たすようにカメラS1がキャリブレーションされていると想定する。
Iは、単位行列を示す。図18の例では、原点に対するエンドエフェクタTの注目点T0の相対座標がエンドエフェクタTの座標(Tt)である。原点に対するワークWの注目点W0の相対座標がワークWの座標(Tw)である。原点に対する他のワークGの注目点G0の相対座標が他のワークGの座標(Tg)である。制御部31は、CADデータ320を利用して、画像データに対して各対象物のモデルをマッチングすることで、各座標(Tt、Tw、Tg)の値を得ることができる。
エンドエフェクタTがワークWを保持していない場合には、タスク状態sとエンドエフェクタT及びワークWの各座標(Tt、Tw)との関係は、上記式4により表現することができる。そのため、制御部31は、マッチングの結果により得られたエンドエフェクタT及びワークWの各座標の現在値(Tt(j)、Tw(j))を上記式4に代入し、上記式4の演算処理を実行することで、現在のタスク状態s(j)を算出することができる。
一方、エンドエフェクタTがワークWを保持している場合には、タスク状態sとワークW及び他のワークGの各座標(Tw、Tg)との関係は、上記式5により表現することができる。そのため、制御部31は、マッチングの結果により得られたワークW及び他のワークGの各座標の現在値(Tw(j)、Tg(j))を上記式5に代入し、上記式5の演算処理を実行することで、現在のタスク状態s(j)を算出することができる。なお、各座標(Tt、Tw、Tg)の表現は、適宜選択されてよい。各座標(Tt、Tw、Tg)の表現には、例えば、同次座標系が用いられてよい。以下についても同様である。
カメラS1がキャリブレーションされていない場合、制御部31は、カメラS1により得られる画像データ内で原点の座標(TR)を更に算出してもよい。原点の検出には、マーカ等の目印が用いられてよい。すなわち、画像データ内で目印をマッチングすることで、原点の座標(TR)が算出されてよい。制御部31は、算出された原点の座標(TR)を上記各演算に適用することで、現在のタスク状態s(j)を算出することができる。以降のステップで、CADデータ320によるマッチングを実行するケースも同様に処理されてよい。
現在のタスク状態s(j)を取得すると、制御部31は、次のステップS307に処理を進める。なお、ステップS306の処理を実行するタイミングは、このような例に限定されなくてもよい。ステップS306の処理は、後述するステップS308を実行する前の任意のタイミングで実行されてよい。例えば、上記ステップS304でもCADデータ320によるマッチングを行う場合、当該ステップS306の処理は、上記ステップS304の処理と共に実行されてよい。
(ステップS307)
ステップS307では、制御部31は、座標算出部313として動作し、取得されたセンシングデータ322からマニピュレータ4の手先の座標の現在値x(j)を算出する。手先座標の現在値x(j)の算出には、カメラS1、各エンコーダS2、及び触覚センサS3の少なくともいずれかにより得られるセンシングデータ322が利用されてよい。本実施形態では、制御部31は、以下の順運動学計算により、手先座標の現在値x(j)を算出することができる。
(1)順運動学計算による手先座標の算出
図17に示されるとおり、この方法では、制御部31は、順運動学計算により、各エンコーダS2により得られる関節空間におけるマニピュレータ4の各関節の角度の現在値q(j)から、観測空間におけるマニピュレータ4の手先の座標の現在値x(j)を導出する。以下、エンドエフェクタTがワークWを保持していない場合とワークWを保持している場合とに分けて説明する。
(1−1)ワークWを保持していない場合
エンドエフェクタTがワークWを保持していない場合、エンドエフェクタTの注目点T0が手先に設定されている。この場合、制御部31は、各関節の第1同次変換行列により導出される第1変換行列群(φ)を変換関数として用いた順運動学計算により、各関節の角度の現在値q(j)から設定された手先座標の現在値x(j)を算出する。
具体的には、順運動学により、エンドエフェクタTの注目点T0の座標(xt)と各関節の角度(q)との関係は、上記式6により表現することができる。角度(q)は、関節数に応じた次元数を有する変数である。また、各関節の第1同次変換行列(m-1m)と第1変換行列群(φ)との関係は、上記式7により与えられる(mは、0〜n。nは、関節数)。第1同次変換行列は、対象の関節よりも手元側の座標系から見た対象の関節の座標系の相対座標を表し、手元側の座標系から対象の関節の座標系に座標を変換するのに利用される。
各関節の第1同次変換行列のパラメータの値は、各関節の角度を除いて既知であり、本実施形態では、ロボットデータ321に含まれている。当該パラメータは、DH(Denavit-Hartenberg)記法、修正DH記法等の公知の方法で設定されてよい。制御部31は、ロボットデータ321を参照することで、上記式7に示される第1変換行列群(φ)を導出する。そして、制御部31は、上記式6のとおり、導出された第1変換行列群(φ)に各関節の角度の現在値q(j)を代入し、第1変換行列群(φ)の演算処理を実行する。この順運動学計算の結果により、制御部31は、エンドエフェクタT(の注目点T0)の座標の現在値xt(j)を算出することができる。制御部31は、算出された現在値xt(j)を手先座標の現在値x(j)として取得する。
(1−2)ワークWを保持している場合
一方、エンドエフェクタTがワークWを保持している場合、ワークWの注目点W0が手先に設定されている。この場合、まず、制御部31は、エンドエフェクタTの注目点T0の座標系からワークWの注目点W0の座標系に座標を変換するための第2同次変換行列(tw)を取得する。
第2同次変換行列(tw)を取得する方法は、特に限られなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、エンドエフェクタTにワークWが保持されると、エンドエフェクタTに対するワークWの位置及び姿勢が一定になるケースが存在する。そこで、第2同次変換行列(tw)は、定数で与えられてもよい。
或いは、制御部31は、ステップS303において取得されたセンシングデータ322から第2同次変換行列(tw)を導出してもよい。導出方法の一例として、制御部31は、CADデータ320を利用して、カメラS1により得られた画像データに対してエンドエフェクタT及びワークWのモデルをマッチングしてもよい。制御部31は、このマッチングの結果により、エンドエフェクタTの座標(Tt)及びワークWの座標(Tw)を得ることができる。上記と同様に、カメラS1がキャリブレーションされていると想定すると、制御部31は、以下の式8により、エンドエフェクタTの座標(Tt)及びワークWの座標(Tw)から第2同次変換行列(tw)を算出することができる。
CADデータ320によるマッチングは、上記順運動学計算により算出されるエンドエフェクタTの注目点T0の座標(xt)付近で実施されてもよい。このマッチング及び上記順運動学計算がそれぞれ正確である場合、マッチングにより得られるエンドエフェクタTの座標(Tt)は、順運動学計算により算出される座標(xt)と一致する。そこで、制御部31は、順運動学計算により算出される座標(xt)を座標(Tt)として利用してもよい。これにより、制御部31は、第2同次変換行列(tw)を導出することができる。なお、上記ステップS306の上記式4の演算処理でも同様に、マッチングにより得られたエンドエフェクタTの座標の現在値(Tt(j))の代わりに、順運動学計算により算出された座標の現在値(xt(j))が用いられてよい。
また、導出方法の他の例として、触覚センサS3により測定されるエンドエフェクタTに作用する力の分布は、エンドエフェクタTに対するワークWの位置及び姿勢に依存し得る。そこで、制御部31は、触覚センサS3により得られた測定データに基づいて、エンドエフェクタTに対するワークWの相対座標(相対位置及び相対姿勢)を推定してもよい。制御部31は、この推定の結果から第2同次変換行列(tw)を導出することができる。
なお、センシングデータ322から第2同次変換行列(tw)を導出する方法は、上記の解析的な方法に限られなくてもよい。第2同次変換行列(tw)の導出には、例えば、判定モデル50、推論モデル551等と同様に、機械学習により、センシングデータ322から第2同次変換行列(tw)を推定する能力を習得した学習済みの機械学習モデルが利用されてもよい。この場合、制御部31は、取得されたセンシングデータ322を学習済みの機械学習モデルに与えて、学習済みの機械学習モデルの演算処理を実行する。これにより、制御部31は、第2同次変換行列(tw)を推定した結果に対応する出力値を学習済みの機械学習モデルから取得することができる。
次に、制御部31は、得られた第2同次変換行列(tw)を第1変換行列群(φ)に掛けることで、第2変換行列群(φ(q)・tw)を算出する。第2変換行列群は、以下の式9により表現することができる。なお、第1同次変換行列は、第1変換式の一例であり、第2同次変換行列は、第2変換式の一例である。第1変換行列群(φ)は、第1変換式群の一例であり、第2変換行列群(φ(q)・tw)は、第2変換式群の一例である。各変換式の形式は、手先座標の演算に利用可能であれば、特に限定されなくてもよい。例えば、各変換式は、同次座標系以外の形式の変換行列で表現されてもよいし、或いは、行列以外の形式の数式で表現されてもよい。
制御部31は、算出された第2変換行列群を変換関数として用いた順運動学計算により、各関節の角度の現在値q(j)から設定された手先座標の現在値x(j)を算出する。すなわち、制御部31は、第2変換行列群(φ(q)・tw)に各関節の角度の現在値q(j)を代入し、第2変換行列群(φ(q)・tw)の演算処理を実行する。この順運動学計算の結果により、制御部31は、ワークW(の注目点W0)の座標の現在値を算出することができる。制御部31は、算出されたワークWの座標の現在値を手先座標の現在値x(j)として取得する。
なお、上記において、第2同次変換行列(tw)をセンシングデータ322から導出することにより、エンドエフェクタTにおけるワークWの保持状態が変動しても、その変動が反映された第2同次変換行列(tw)を取得することができる。これにより、エンドエフェクタTにおけるワークWの保持状態が変動し得る場合でも、ワークWの座標の現在値、すなわち、マニピュレータ4の手先座標の現在値を適切に算出することができる。
(2)他の方法
制御部31は、上記順運動学計算による方法以外の方法で、マニピュレータ4の手先座標の現在値x(j)を算出してもよい。一例として、制御部31は、CADデータ320を利用して、カメラS1により得られた画像データに対して各対象物のモデルをマッチングすることで、マニピュレータ4の手先の座標の現在値x(j)を導出することができる。この場合、制御部31は、上記ステップS306によりタスク空間で取得された現在のタスク状態s(j)から、マニピュレータ4の手先の座標の現在値x(j)を導出してもよい。
図18に示される各対象物の位置関係に基づいて、エンドエフェクタTがワークWを保持していない場合におけるタスク状態s及び手先の座標xの間の関係は、上記式10により表現することができる。この場合には、タスク空間から観測空間への変換関数(ψ)は、ワークWの座標(Tw)により与えられる。制御部31は、上記ステップS306により取得された現在のタスク状態s(j)及びマッチングにより得られたワークWの座標の現在値(Tw(j))を式10に代入し、上記式10の演算処理を実行することで、マニピュレータ4の手先の座標の現在値x(j)を算出することができる。
同様に、エンドエフェクタTがワークWを保持している場合におけるタスク状態s及び手先の座標xの間の関係は、上記式11により表現することができる。この場合には、タスク空間から観測空間への変換関数(ψ)は、他のワークGの座標(Tg)により与えられる。制御部31は、上記ステップS306により取得された現在のタスク状態s(j)及びマッチングにより得られた他のワークGの座標の現在値(Tg(j))を式11に代入し、上記式11の演算処理を実行することで、マニピュレータ4の手先の座標の現在値x(j)を算出することができる。
なお、CADデータ320を用いたマッチングによりマニピュレータ4の手先の座標の現在値x(j)を導出する方法はこのような例に限定されなくてもよい。エンドエフェクタTがワークWを保持していない場合、制御部31は、上記マッチングにより、エンドエフェクタTの座標の現在値(Tt(j))を算出し、算出された現在値(Tt(j))を手先の座標の現在値x(j)として取得してもよい。同様に、エンドエフェクタTがワークWを保持している場合、制御部31は、上記マッチングにより、ワークWの座標の現在値(Tw(j))を算出し、算出された現在値(Tw(j))を手先の座標の現在値x(j)として取得してもよい。すなわち、制御部31は、上記マッチングにより、マニピュレータ4の手先の座標の現在値x(j)を直接的に導出してもよい。
(3)小括
本実施形態では、制御部31は、上記2つの方法のうちの少なくともいずれかにより、マニピュレータ4の手先の座標の現在値x(j)を算出することができる。マニピュレータ4の手先の座標の現在値x(j)を算出すると、制御部31は、次のステップS308に処理を進める。なお、ステップS307の処理を実行するタイミングは、このような例に限定されなくてもよい。ステップS307の処理は、後述するステップS310の処理を実行する前の任意のタイミングで実行されてよい。例えば、ステップS307の処理は、上記ステップS306よりも前に実行されてよい。また、例えば、CADデータ320を用いたマッチングを行うケースでは、ステップS307の処理は、上記ステップS306又はステップS304の処理と共に実行されてよい。
(ステップS308)
ステップS308では、制御部31は、行動決定部315として動作し、最終目標のタスク状態sgに近付くように、取得された現在のタスク状態s(j)に対して次に遷移する目標のタスク状態ss(j)を決定する。本実施形態では、制御部31は、推論モデルデータ225を参照し、上記ステップS210の処理により生成された推論モデル55を利用して、現在のタスク状態s(j)に対して次に遷移する目標のタスク状態ss(j)を決定する。
次に遷移する目標のタスク状態ss(j)を推論するための推論モデル55の演算処理は、当該推論モデル55の構成に応じて適宜実行されてよい。推論モデル55が上記第1の方法により生成されており、推論モデル55が関数式により構成される場合、制御部31は、現在のタスク状態s(j)及び最終目標のタスク状態sgを関数式に代入し、当該関数式の演算処理を実行する。推論モデル55がニューラルネットワークにより構成される場合、制御部31は、現在のタスク状態s(j)及び最終目標のタスク状態sgを入力層に入力し、入力側から順に各層に含まれる各ニューロンの発火判定を行う。推論モデル55がデータテーブルにより構成される場合、制御部31は、現在のタスク状態s(j)及び最終目標のタスク状態sgをデータテーブルに照合する。これにより、制御部31は、推論モデル55の出力として、次に遷移する目標のタスク状態ss(j)を推論した結果を取得する。制御部31は、この推論結果により、次に遷移する目標のタスク状態ss(j)を決定することができる。
また、推論モデル55が上記第2の方法により生成される、すなわち、推論モデル55がポテンシャル場により構成される場合、制御部31は、生成されたポテンシャル場における、現在のタスク状態s(j)に対応する座標に設定されたポテンシャルの値を参照する。そして、制御部31は、現在のタスク状態s(j)に対応する座標に設定されたポテンシャルの勾配に応じて、次に遷移する目標のタスク状態ss(j)を決定する。具体的には、制御部31は、ポテンシャルの勾配の高い方に遷移する(例えば、勾配の最も高い方に所定の距離分だけ遷移する)ように目標のタスク状態ss(j)を決定する。
決定する目標のタスク状態の数は、1つに限られなくてもよい。ステップS308では、制御部31は、決定した目標のタスク状態を現在のタスク状態として用いて、更に次に遷移する目標のタスク状態を決定してもよい。制御部31は、この処理を繰り返すことで、目標のタスク状態を複数回決定してもよい。次に遷移する目標のタスク状態ss(j)を決定すると、制御部31は、次のステップS309に処理を進める。
(ステップS309)
ステップS309では、制御部31は、目標算出部316として動作し、決定された目標のタスク状態ss(j)から手先の座標の目標値xs(j)を算出する。図17に示されるとおり、制御部31は、上記変換関数(ψ)を利用することで、タスク空間における目標のタスク状態ss(j)を観測空間における手先の座標の目標値xs(j)に変換することができる。
すなわち、エンドエフェクタTがワークWを保持していない場合におけるタスク空間から観測空間への変換関数(ψ)は、上記式10により与えられる。制御部31は、決定された目標のタスク状態ss(j)を上記式10に代入し、上記式10の演算処理を実行することで、手先の座標の目標値xs(j)を算出することができる。一方、エンドエフェクタTがワークWを保持している場合におけるタスク空間から観測空間への変換関数(ψ)は、上記式11により与えられる。制御部31は、決定された目標のタスク状態ss(j)を上記式11に代入し、上記式11の演算処理を実行することで、手先の座標の目標値xs(j)を算出することができる。手先の座標の目標値xs(j)を算出すると、制御部31は、次のステップS310に処理を進める。
(ステップS310)
ステップS310では、制御部31は、角度算出部317として動作し、手先座標の現在値x(j)及び手先座標の目標値xs(j)から手先座標の変化量(Δx(j))を決定する。具体的には、図17に示されるとおり、制御部31は、手先座標の現在値(x(j))及び目標値(xs(j))の偏差に基づいて手先座標の変化量(Δx(j))を決定する。例えば、手先座標の現在値及び目標値の偏差(xs−x)と変化量(Δx)との関係は、以下の式12により与えられてよい。なお、手先座標の変化量(Δx)は、手先座標の現在値及び目標値の差分の一例である。
αは任意の係数である。例えば、αの値は、1以下でかつ0を超える範囲内で適宜決定されてよい。αは省略されてよい。制御部31は、ステップS307及びステップS309により得られた手先座標の現在値x(j)及び手先座標の目標値xs(j)を上記式12に代入し、上記式12の演算処理を実行することで、手先座標の変化量(Δx(j))を決定することができる。手先座標の変化量(Δx(j))を決定すると、制御部31は、次のステップS311に処理を進める。
(ステップS311)
ステップS311では、制御部31は、角度算出部317として動作し、上記順運動学計算における変換関数の逆関数を用いた逆運動学計算により、決定された手先座標の変化量(Δx(j))から各関節の角度の変化量(Δq(j))を算出する。具体的には、手先座標の変化量(Δx)と各関節の角度の変化量(Δq)とは、以下の式13により表現することができる。
Jは、上記順運動学計算における変換関数から導出されるヤコビ行列である。jiは、i番目の関節の行列成分を示し、Δqiは、i番目の関節の変化量を示す。
ここで、図19A及び図19Bを更に用いて、ヤコビ行列の計算方法の一例について説明する。図19Aは、エンドエフェクタTがワークWを保持していない時における各関節と手先との関係の一例を模式的に例示する。図19Bは、エンドエフェクタTがワークWを保持している時における各関節と手先との関係の一例を模式的に例示する。
図19Aに示されるとおり、エンドエフェクタTがワークWを保持していない時には、ヤコビ行列の各関節の成分は、各関節とエンドエフェクタTとの位置関係に基づいて算出される。例えば、制御部31は、以下の式14により、各関節の成分を算出することができる。一方、図19Bに示されるとおり、エンドエフェクタTがワークWを保持しているときには、ヤコビ行列の各関節の成分は、各関節とワークWとの位置関係に基づいて算出される。例えば、制御部31は、以下の式15により、各関節の成分を算出することができる。
iは、i番目の関節の同次座標における回転軸の成分を示し、aiは、i番目の関節の同次座標における平行移動成分を示す。zi及びaiは、i番目の関節の第1同次変換行列から抽出される。atは、エンドエフェクタTの同次座標における平行移動成分を示す。awは、ワークWの同次座標における平行移動成分を示す。atは、エンドエフェクタTの座標(Tt)から抽出される。awは、ワークWの座標(Tw)から抽出される。ヤコビ行列の各成分jiは、各関節の第1同次変換行列の微分成分を示す。
制御部31は、上記式14及び式15に従って、動作モードに応じてヤコビ行列を算出する。なお、本実施形態では、エンドエフェクタTがワークWを保持していない場合とエンドエフェクタTがワークWを保持している場合との間で、ヤコビ行列の各成分において、エンドエフェクタTの成分(at)及びワークWの成分(aw)が入れ替わるに過ぎない。そのため、制御部31は、単純な計算処理により、それぞれの場合におけるヤコビ行列を算出することができる。
次に、制御部31は、算出されたヤコビ行列の逆行列(J-1)を算出する。制御部31は、算出された逆行列(J-1)を用いて、逆運動学計算を実行する。具体的には、各変化量(Δx、Δq)と逆行列(J-1)との関係は、上記式13から以下の式16のとおり導出される。
制御部31は、算出された逆行列(J-1)及び手先座標の変化量(Δx(j))を式16に代入し、上記式16の演算処理を実行することで、各関節の角度の変化量(Δq(j))を算出することができる。各関節の角度の変化量(Δq(j))を算出すると、制御部31は、次のステップS312に処理を進める。
(ステップS312)
ステップS312では、制御部31は、指令決定部318として動作し、算出された各関節の角度の変化量に基づいて、各関節に対する指令値を決定する。指令値を決定する方法には、例えば、PID(Proportional-Integral-Differential)制御、PI制御等の公知の方法が採用されてよい。各関節に対する指令値は、マニピュレータ4に与える制御指令の一例である。本実施形態では、制御部31は、ステップS309〜ステップS312の処理により、マニピュレータ4のタスク状態を現在のタスク状態s(j)から目標のタスク状態ss(j)に変化させるように、マニピュレータ4に与える制御指令を決定することができる。制御指令を決定すると、制御部31は、次のステップS313に処理を進める。
(ステップS313)
ステップS313では、制御部31は、駆動部319として動作し、決定された制御指令をマニピュレータ4に与えることで、マニピュレータ4を駆動する。本実施形態では、制御部31は、決定された各指令値により、マニピュレータ4の各関節を駆動する。なお、駆動方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、マニピュレータ4の各関節を直接的に駆動してもよい。或いは、マニピュレータ4は、コントローラ(不図示)を備えてもよい。この場合、制御部31は、各関節に対する指令値をコントローラに与えることで、マニピュレータ4の各関節を間接的に駆動してもよい。決定された制御指令に従って、マニピュレータ4を駆動すると、制御部31は、次のステップS314に処理を進める。
(ステップS314〜ステップS316)
ステップS314〜ステップS316の処理は、サイクルが(j)から(j+1)に進んでいる点を除き、上記ステップS303、ステップS306及びステップS307の処理と同様である。すなわち、ステップS314では、制御部31は、各センサからセンシングデータ322を取得する。ステップS315では、制御部31は、状態取得部314として動作し、マニピュレータ4の現在のタスク状態s(j+1)を取得する。ステップS316では、制御部31は、座標算出部313として動作し、取得されたセンシングデータ322からマニピュレータ4の手先の座標の現在値x(j+1)を算出する。手先座標の現在値x(j+1)を算出すると、制御部31は、次のステップS317に処理を進める。
(ステップS317)
ステップS317では、制御部31は、ステップS313による駆動の結果、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したか否かを判定する。
判定方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、図17に示されるとおり、駆動後の各関節の角度(q(j+1))と駆動前の各関節の角度(q(j))との関係は、以下の式17により表現することができる。
そこで、制御部31は、ステップS314において各エンコーダS2により得られた各関節の角度の値が、駆動前に各エンコーダS2により得られた各関節の角度の値(q(j))及びステップS311において算出された変化量(Δq(j))の和と一致するか否かを判定してもよい。駆動後の各関節の角度が駆動前の各関節の角度及び算出された変化量の和(q(j)+Δq(j))と一致する場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したと判定してもよい。一方、そうではない場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移していないと判定してもよい。
また、例えば、順運動学計算における変換関数と同様に、変換関数(ψ)に関しても、ヤコビ行列Jψが導出されてよい。ヤコビ行列Jψは変換関数(ψ)の微分成分を示す。導出されたヤコビ行列Jψから逆行列(Jψ -1)が算出されてよい。手先座標の変化量(Δx)及びタスク状態の変化量(Δs)と逆行列(Jψ -1)との関係は、以下の式18により表現することができる。
制御部31は、算出された逆行列(Jψ -1)及び手先座標の変化量(Δx(j))を式18に代入し、上記式18の演算処理を実行することで、タスク状態の変化量(Δs(j))を算出することができる。駆動後のタスク状態s(j+1)と駆動前のタスク状態s(j)との関係との関係は、上記式17と同様に、以下の式19により表現することができる。
そこで、制御部31は、ステップS315により駆動後に得られた現在のタスク状態が、ステップS306により駆動前に得られた現在のタスク状態s(j)及び上記により算出された変化量(Δs(j))の和と一致するか否かを判定してもよい。駆動後に得られた現在のタスク状態が、駆動前に得られた現在のタスク状態及び算出された変化量の和(s(j)+Δs(j))と一致する場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したと判定してもよい。一方、そうではない場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移していないと判定してもよい。なお、本実施形態では、タスク空間は2つの対象物間の相対座標で規定されるため、タスク空間及び観測空間は互いに共通の次元で表現可能である。そのため、場合によっては、式18の逆行列(Jψ -1)は、単位行列に置き換えられ、手先座標の変化量(Δx)がそのままタスク状態の変化量(Δs)として取り扱われてもよい。一例として、他のワークGから見たワークWの相対座標によりタスク状態を規定した場合、式18の逆行列(Jψ -1)は、単位行列に置き換えられてよい。
或いは、制御部31は、ステップS315により得られた現在のタスク状態がステップS308により決定された目標のタスク状態ss(j)と一致するか否かを判定してもよい。得られた現在のタスク状態が目標のタスク状態ss(j)と一致する場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したと判定してもよい。一方、そうではない場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移していないと判定してもよい。
また、例えば、駆動後の手先座標の現在値(x(j+1))と駆動前の手先座標の現在値(x(j))との関係は、上記式17と同様に、以下の式20により表現することができる。
そこで、制御部31は、ステップS316により算出された駆動後の手先座標の現在値が、ステップS307により算出された駆動前の手先座標の現在値(x(j))とステップS310により決定された変化量(Δx(j))の和と一致するか否かを判定してもよい。駆動後の手先座標の現在値が駆動前の手先座標の現在値及び算出された変化量の和(x(j)+Δx(j))と一致する場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したと判定してもよい。一方、そうではない場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移していないと判定してもよい。
或いは、制御部31は、ステップS316により算出された手先座標の現在値が、ステップS309により算出された手先座標の目標値(xs(j))と一致するか否かを判定してもよい。駆動後の手先座標の現在値が駆動前に算出された手先座標の目標値(xs(j))と一致する場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したと判定してもよい。一方、そうではない場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移していないと判定してもよい。
以上のいずれかの方法により、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したか否かを判定することができる。なお、以上の各判定において「一致すること」は、両者の値が完全に一致することの他、両者の値の差分が閾値(許容誤差)以下であることを含んでよい。マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したと判定した場合、制御部31は、次のステップS318に処理を進める。一方、そうではない場合、制御部31は、ステップS310に戻って、マニピュレータ4の駆動を再度実行する。このとき、制御部31は、ステップS316で算出された手先座標の現在値を現在値x(j)として利用して、ステップS310以降の処理を実行してもよい。
(ステップS318)
ステップS318では、制御部31は、最終目標のタスク状態sgを実現することができたか否かを判定する。
判定方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、ステップS315により得られた現在のタスク状態s(j+1)が最終目標のタスク状態sgと一致するか否かを判定してもよい。現在のタスク状態s(j+1)が最終目標のタスク状態sgと一致する場合、制御部31は、最終目標のタスク状態sgを実現することができたと判定する。一方、そうではない場合、制御部31は、最終目標のタスク状態sgを実現することができていないと判定する。上記と同様に、当該判定における「一致すること」も、両者の値が完全に一致することの他、両者の値の差分が閾値(許容誤差)以下であることを含んでよい。
最終目標のタスク状態sgを実現することができたと判定した場合、制御部31は、マニピュレータ4の動作制御に関する一連の処理を終了する。一方、最終目標のタスク状態sgを実現することができていないと判定した場合、制御部31は、ステップS308に処理を戻す。そして、制御部31は、ステップS315及びステップS316の結果を利用して、ステップS308〜ステップS313の処理を再度実行する。制御部31は、上記一連の処理を繰り返すことで、最終目標のタスク状態sgを実現する。これにより、本実施形態に係る制御装置3は、指定されたタスクを遂行するようにマニピュレータ4の動作を制御することができる。
なお、最終目標のタスク状態sgを実現することができていないと判定した場合の分岐先は、上記ステップS308に限られなくてもよい。例えば、複数のタスクにより構成される一連のタスクをマニピュレータ4に遂行させる場合に、最終目標のタスク状態sgには、最後に遂行されるタスクにおける最終目標のタスク状態が設定されてよい。本実施形態では、エンドエフェクタTによりワークWを保持し、保持したワークWを他のワークGに組み付けるタスクを遂行する場合に、最終目標のタスク状態sgには、ワークWを他のワークGに組み付けた状態が採用されてよい。この場合に、一連のタスクの遂行は、最初のタスクの開始点から開始されてよい。これに応じて、最終目標のタスク状態sgを実現することができていないと判定した場合の分岐先は、上記ステップS308ではなく、上記ステップS303であってよい。これにより、制御部31は、ステップS304及びステップS305の処理により、動作モードを確認しながら、マニピュレータ4を駆動することができる。その結果、各タスクの切り替えをスムーズに行いながら、一連のタスクを遂行することができる。本実施形態では、エンドエフェクタTによりワークWを保持した際に、ワークWを他のワークGに運搬するタスクに動作モードをスムーズに切り替えることができる。
[特徴]
以上のとおり、本実施形態では、上記ステップS307及びステップS316において、マニピュレータ4の手先座標を算出する方法として順運動学計算による方法を採用することができる。この方法では、エンドエフェクタTがワークWを保持していない場合、エンドエフェクタTが手先に設定され、順運動学計算には、各関節(関節部41〜46)の第1同次変換行列により導出される第1変換行列群(φ)が変換関数として用いられる。一方、エンドエフェクタTがワークWを保持している場合、ワークWが手先に設定され、順運動学計算に用いる変換関数が拡張される。具体的には、順運動学計算には、エンドエフェクタTの座標系からワークWの座標系に座標を変換するための第2同次変換行列(tw)を第1変換行列群(φ)に掛けることで得られる第2変換行列群(φ(q)・tw)が変換関数として用いられる。すなわち、本実施形態では、エンドエフェクタTによりワークWを保持した時に、エンドエフェクタTからワークWに運動学の基準点を変更する。
これにより、エンドエフェクタTがワークWを保持していない場合とワークWを保持している場合とで、ステップS307及びステップS316の順運動学計算、並びにステップS311の逆運動学計算をほぼ同様に処理することができる。つまり、エンドエフェクタTによりワークWを保持する第1タスク及びエンドエフェクタTにより保持されたワークWを他のワークGに組み付ける第2タスクを「マニピュレータ4の手先を目標物に対して移動する」共通のタスクとして取り扱うことができる。したがって、本実施形態によれば、エンドエフェクタTがワークWを保持していない場合とエンドエフェクタTがワークWを保持している場合とを区別することなく汎用的かつ統一的に制御処理を規定することができる。そのため、制御処理を単純化することができ、これによって、マニピュレータ4の動作を生成又は教示するコストを低減することができる。上記実施形態では、ワークWをエンドエフェクタTにより保持し、保持したワークWを他のワークGに組み付ける一連の動作を生成又は教示するコストを低減することができる。
また、本実施形態では、マニピュレータ4により実行するタスクの状態が、エンドエフェクタT(エンドエフェクタ)、ワークW、他のワークG等の対象物間の相対的な位置関係により表現される。これにより、制御指令は、タスクに直接的に関連付けられるのではなく、対象物間の相対的な位置関係の変化量に関連付けられる。すなわち、タスクの内容に依存せずに、対象物の相対的な位置関係を変化させることに対してマニピュレータ4に与える時系列の制御指令を生成又は教示することができる。例えば、ワークWの座標が変化しても、上記ステップS306及びステップS315において、エンドエフェクタTとワークWとの間の位置関係(タスク状態)を把握する際に、そのワークWの座標の変化が考慮される。そのため、マニピュレータ4は、学習結果に基づいて、エンドエフェクタTによりワークWを適切に保持することができる。したがって、本実施形態によれば、習得されるタスクを遂行する能力の汎用性を高めることができ、これによって、マニピュレータ4にタスクを教示するのにかかるコストを低減することができる。
また、本実施形態では、対象物間の位置関係は、相対座標により表現される。これにより、2つの対象物の間の位置関係を適切かつ端的に表現することができる。そのため、2つの対象物の間の位置関係(制御の場面では、タスク状態)を把握し易くすることができる。
また、本実施形態に係る第1モデル生成装置1は、上記ステップS101及びステップS102の処理により、機械学習を実施することで、対象の位置関係において2つの対象物が接触するか否かを判定するための判定モデル50を生成する。機械学習により生成された学習済みの判定モデル50によれば、対象の位置関係が連続値で与えられても、判定モデル50のデータ量の大きな増加を伴うことなく、その位置関係で2つの対象物が互いに接触するか否かを判定することができる。したがって、本実施形態によれば、2つの対象物が接触する境界を表現する情報のデータ量を大幅に低減することができる。
ここで、図20を更に用いて、この作用効果の具体例について説明する。図20は、2つの対象物が互いに接触するか否かを示す値を座標点毎に保持する形態の一例を模式的に例示する。白丸が、その座標に対応する位置関係において2つの対象物が互いに接触しないことを示し、黒丸が、その座標に対応する位置関係において2つの対象物が互いに接触することを示す。図20では、2次元により各座標点を表現しているが、上記6次元の相対座標の空間では、各座標点は、6次元で表現される。この場合、空間の解像度(分解能)を上げると、6乗のオーダでデータ量が増加してしまう。例えば、実空間での運用に利用可能な解像度で座標点を設定すると、当該情報のデータ量は、簡単に、ギガバイト単位になり得る。
これに対して、本実施形態では、対象の位置関係において2つの対象物が互いに接触するか否かを示す情報を学習済みの判定モデル50により保持する。この学習済みの判定モデル50の演算パラメータの数は、相対座標の次元数に依存し得るものの、この演算パラメータの数を増やすことなく、連続値を取り扱うことができる。そのため、例えば、後述するとおり、3層構造のニューラルネットワークにより判定モデル50を構成した場合には、学習済みの判定モデル50のデータ量を数メガバイト程度に抑えることができる。そのため、本実施形態によれば、2つの対象物が接触する境界を表現する情報のデータ量を大幅に低減することができる。
また、本実施形態では、マニピュレータ4の手先及び目標物が、学習済みの判定モデル50により接触が生じるか否かを判定する2つの対象物である。そのため、マニピュレータ4の動作を規定する場面で、2つの対象物が接触する境界を表現する情報のデータ量を大幅に低減することができる。第2モデル生成装置2では、RAM、ROM、及び記憶部22の容量が比較的に小さくても、学習済みの判定モデル50を利用することができ、これによって、目標物に手先が無用に接触しないように目標のタスク状態を決定するための推論モデル55を生成することができる。
また、本実施形態に係る第2モデル生成装置2は、ステップS201〜ステップS210の処理により、学習済みの判定モデル50を利用して、第1対象物が第2対象物に接触しないように目標のタスク状態を決定するための推論モデル55を生成する。本実施形態に係る制御装置3は、ステップS308において、生成された推論モデル55を利用して、目標のタスク状態を決定する。これにより、本実施形態に係る制御装置3は、学習済みの判定モデル50の演算処理を伴わなくても、第1対象物が第2対象物に接触しない、すなわち、マニピュレータ4の手先が目標物に無用に接触しないように目標のタスク状態を決定することができる。そのため、マニピュレータ4の動作制御の演算コストを低減することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態では、エンドエフェクタT、ワークW、及び他のワークGそれぞれが対象物の一例である。ただし、接触するか否かを判定する対象となる対象物は、このような例に限定されなくてもよい。対象物は、実空間又は仮想空間内で取り扱い可能なあらゆる種類の物体を含んでもよい。対象物は、上記エンドエフェクタT、ワークW、及び他のワークGの他、例えば、障害物等のマニピュレータの動作に関連し得る物体であってもよい。
なお、1つの対象物は、1つの物体で構成されてもよいし、或いは複数の物体により構成されてもよい。3つ以上の物体が存在する場合、判定モデル50は、複数の物体を1つの対象物とみなし、複数の物体と他の物体との間で接触が生じるか否かを判定するように構成されてもよい。或いは、判定モデル50は、個々の物体を1つの対象物とみなして、それぞれの物体間で接触が生じるか否かを判定するように構成されてもよい。
また、上記実施形態では、2つの対象物のうちの少なくともいずれかはマニピュレータの動作により移動する対象である。マニピュレータの動作により移動する対象物は、例えば、エンドエフェクタ等のマニピュレータの構成要素であってもよいし、マニピュレータ自身であってもよいし、例えば、エンドエフェクタにより保持されたワーク等のマニピュレータの構成要素以外の物体であってもよい。ただし、対象物の種類は、このような例に限定されなくてもよい。2つの対象物は共に、マニピュレータの動作により移動する対象以外の物体であってもよい。
また、上記実施形態では、マニピュレータ4は、垂直多関節型ロボットである。しかしながら、マニピュレータ4は、順運動学及び逆運動学の計算の対象となり得るように、1つ以上のリンク、1つ以上の関節、及びエンドエフェクタを備えていれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。マニピュレータ4は、上記垂直多関節ロボットの他、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等を含んでよい。
また、上記実施形態では、エンドエフェクタTによりワークWを保持する作業及び保持されたワークWを他のワークGに組み付ける作業それぞれがマニピュレータの遂行するタスクの一例である。タスクは、少なくとも工程の一部にマニピュレータの手先の移動を伴うものであれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。タスクは、上記ワークWの保持、及びワークWの運搬の他、例えば、部品嵌合、ネジ回し等であってよい。タスクは、例えば、ワークの保持、ワークの解放等の単純な仕事であってもよい。タスクは、例えば、対象のワークを保持し、指定の座標(位置及び姿勢)に対象のワークを配置すること等の対象のワークの座標を変更することであってよい。タスクは、例えば、エンドエフェクタとしてスプレーを用いて、指定の相対座標から当該スプレーによりワークに塗料を噴霧することであってよい。また、タスクは、例えば、エンドエフェクタに取り付けられたカメラを指定の座標に配置することであってもよい。タスクは、予め与えられてもよいし、オペレータの指定により与えられてもよい。
また、上記実施形態では、タスクを遂行する環境を観測するセンサとして、カメラS1、エンコーダS2、触覚センサS3が用いられている。カメラS1及び触覚センサS3が、エンドエフェクタTに対するワークWの状態を観測するセンサの一例である。しかしながら、利用可能なセンサの種類は、このような例に限定されなくてもよい。センサには、カメラ、エンコーダ、及び触覚センサの他、例えば、近接センサ、力覚センサ、トルクセンサ、圧力センサ等が用いられてよい。近接センサは、エンドエフェクタTの周囲を観測可能な範囲に配置され、エンドエフェクタTに近接する物体の有無を観測するのに利用されてよい。また、力覚センサ、トルクセンサ及び圧力センサは、上記触覚センサS3と同様に、エンドエフェクタTに作用する力を測定可能な範囲に配置され、エンドエフェクタTに作用する力を観測するのに利用されてよい。近接センサ、力覚センサ、トルクセンサ及び圧力センサの少なくともいずれかは、エンドエフェクタTに対するワークWの状態を観測するセンサとして利用されてよい。なお、カメラS1は、マニピュレータ4又は他のロボット装置により、任意に移動可能に構成されてよい。この場合、カメラS1の座標は、適宜キャリブレーションされてよい。これにより、カメラS1により観測する範囲を任意に制御することができる。
<4.2>
上記実施形態では、第2モデル生成装置2において、推論モデル55を生成する際に、学習済みの判定モデル50を利用している。しかしながら、学習済みの判定モデル50の利用形態は、このような例に限定されなくてもよい。上記実施形態に係る制御装置3が、マニピュレータ4の動作を制御する際に、学習済みの判定モデル50を利用してもよい。この場合、学習結果データ125は、上記と同様に、任意のタイミングで制御装置3に提供されてよい。また、制御装置3は、ソフトウェアモジュールとして接触判定部を更に備えるように構成される。
図21は、本変形例に係る目標のタスク状態の決定に関するサブルーチンの処理手順の一例を例示する。上記ステップS308の目標のタスク状態を決定する処理は、図21に例示されるサブルーチンの処理に置き換えられてもよい。
ステップS501では、制御部31は、行動決定部315として動作し、最終目標のタスク状態に近付くように、取得された現在のタスク状態に対して次に遷移する目標のタスク状態を決定する。ステップS501は、上記ステップS308と同様に処理されてよい。
ステップS502では、制御部31は、、接触判定部として動作し、学習済みの判定モデル50を利用して、決定された目標のタスク状態において2つの対象物が互いに接触するか否かを判定する。ステップS502は、上記ステップS203及びステップS206と同様に処理されてよい。
ステップS503では、制御部31は、ステップS502の判定結果に基づいて、処理の分岐先を決定する。ステップS502において、目標のタスク状態において2つの対象物が互いに接触すると判定された場合、制御部31は、ステップS501に処理を戻し、目標のタスク状態を再度決定する。一方、目標のタスク状態において2つの対象物が互いに接触しないと判定された場合、制御部31は、次のステップS309の処理を実行する。これにより、制御装置3は、マニピュレータ4の動作を制御する際に、学習済みの判定モデル50を利用して、マニピュレータ4の手先が目標物に無用に接触しないように、マニピュレータ4の動作を決定することができる。
<4.3>
上記実施形態では、制御装置3は、上記ステップS308において、推論モデル55を利用して、目標のタスク状態を決定している。しかしながら、目標のタスク状態を決定する方法は、このような例に限定されなくてもよい。目標のタスク状態の決定には、推論モデル55が利用されなくてもよい。例えば、上記ステップS308では、上記ステップS205と同様に、目標のタスク状態が決定されてよい。一例として、制御部31は、パスプランニング等の公知の方法により、目標のタスク状態を決定してもよい。また、例えば、目標のタスク状態の系列は予め与えられてもよい。この場合、上記ステップS308では、制御部31は、当該系列を示すデータを参照することで、次に遷移する目標のタスク状態を決定してもよい。上記ステップS501も同様である。
また、上記実施形態において、推論モデル55の生成(ステップS201〜ステップS211)は、省略されてよい。或いは、上記実施形態において、制御装置3が、第2モデル生成装置2の各構成を包含してもよい。これにより、制御装置3が、上記推論モデル55を生成する一連の処理(ステップS201〜ステップS211)を更に実行するように構成されてよい。これらの場合、制御システム100から第2モデル生成装置2が省略されてもよい。
また、上記実施形態では、学習データ223を収集するのに、学習済みの判定モデル50の判定結果が利用されている。しかしながら、学習データ223の収集は、このような例に限定されなくてもよい。例えば、各対象物の実物を利用する等して、学習済みの判定モデル50を利用せずに、学習データ223が収集されてよい。これにより、推論モデル55は、学習済みの判定モデル50を利用せずに生成されてよい。
また、上記実施形態において、ステップS201〜ステップS209までの学習データ223の収集に関する処理は、他のコンピュータにより行われてもよい。この場合、上記実施形態に係る第2モデル生成装置2は、他のコンピュータにより生成された学習データ223を取得し、取得された学習データ223を使用して、ステップS210及びステップS211を実行してもよい。
<4.4>
上記実施形態では、2つの対象物の間の位置関係は相対座標により表現される。しかしながら、位置関係を表現する方法は、このような例に限定されなくてもよい。例えば、2つの対象物それぞれの絶対座標により位置関係が表現されてもよい。この場合、各絶対座標を相対座標に変換され、上記各情報処理が実行されてもよい。
<4.5>
また、上記実施形態では、制御装置3は、ステップS309において、目標のタスク状態から手先座標の目標値を算出している。しかしながら、手先座標の目標値を取得する方法は、このような例に限定されなくてもよい。手先座標の目標値は、最終目標のタスク状態に近付くように適宜決定されてよい。
例えば、手先座標の目標値は、手先座標の現在値及び最終目標のタスク状態における手先座標の値から直接的に決定されてよい。一例として、手先座標の目標値の決定には、データテーブル等の参照データが利用されてよい。この場合、制御部31は、手先座標の現在値及び最終目標のタスク状態における手先座標の値を参照データに対して照合することで、参照データから手先座標の目標値を取得することができる。その他の例として、例えば、制御部31は、最近傍法等により、手先座標の現在値から最終目標のタスク状態における手先座標の値まで最短距離で到達するように手先座標の目標値を決定してもよい。更にその他の例として、例えば、判定モデル50、推論モデル551等と同様に、機械学習により、手先座標の現在値及び最終目標のタスク状態における手先座標の値から手先座標の目標値を決定する能力を習得した学習済みの機械学習モデルが利用されてもよい。この場合、制御部31は、手先座標の現在値及び最終目標のタスク状態における手先座標の値を学習済みの機械学習モデルに与えて、学習済みの機械学習モデルの演算処理を実行する。これにより、制御部31は、手先座標の目標値を決定した結果に対応する出力値を学習済みの機械学習モデルから取得することができる。
この場合、ステップS306、ステップS308、ステップS309、及びステップS315が、制御装置3の処理手順から省略されてよい。また、状態取得部314、行動決定部315、及び目標算出部316が、制御装置3のソフトウェア構成から省略されてよい。
また、上記実施形態において、例えば、最終目標のタスク状態が予め設定されている場合等、最終目標のタスク状態が他の方法により設定される場合には、制御装置3の処理手順からステップS301及びステップS302の処理は省略されてよい。この場合、制御装置3のソフトウェア構成から目標設定部310は省略されてよい。
また、上記実施形態において、制御システム100から第1モデル生成装置1が省略されてよい。この場合、2つの対象物が互いに接触するか否かを示す情報を学習済みの判定モデル50以外の方法で保持する形態が採用されてもよい。例えば、2つの対象物が互いに接触するか否かを示す値を座標点毎に保持する形態が採用されてもよい。
<4.6>
上記実施形態では、判定モデル50は、全結合型ニューラルネットワークにより構成されている。しかしながら、判定モデル50を構成するニューラルネットワークの種類は、このような例に限定されなくてもよい。判定モデル50は、全結合型ニューラルネットワークの他、例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等により構成されてもよい。また、判定モデル50は、複数種類のニューラルネットワークの組み合わせにより構成されてもよい。
また、判定モデル50を構成する機械学習モデルの種類は、ニューラルネットワークに限られなくてもよく、実施の形態に応じて適宜選択されてよい。判定モデル50には、ニューラルネットワークの他、例えば、サポートベクタマシン、回帰モデル、決定木等の機械学習モデルが採用されてよい。2つの対象物が互いに接触するか否かは、実空間又は仮想空間を対象に判定されてよい。
上記実施形態において、推論モデル55は、マニピュレータ4の遂行するタスクの種類毎に用意されてよい。すなわち、それぞれ異なるタスクにおける目標のタスク状態を推論するよう訓練された複数の推論モデル55が用意されてよい。この場合、制御装置3の制御部31は、上記ステップS305で設定した動作モードに応じて、用意された複数の推論モデル55の中から推論に利用する推論モデル55を選択してもよい。これにより、制御部31は、動作モードに応じて、推論モデル55を切り替えてもよい。或いは、推論モデル55は、例えば、対象物の種類、対象物の識別子、タスクの識別子、タスクの種類等のタスクの条件を示す情報の入力を更に受け付け、入力された条件に対応するタスクにおける目標のタスク状態を推論するように構成されてもよい。この場合、制御部31は、次に遷移する目標のタスク状態を決定する際に、上記ステップS305で設定した動作モードを示す情報を推論モデル55に更に入力して、上記ステップS308の演算処理を実行してもよい。
また、上記実施形態において、判定モデル50及び推論モデル55に対する入力及び出力の形式は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、判定モデル50は、タスク状態を示す情報以外の情報の入力を更に受け付けるように構成されてもよい。同様に、推論モデル55は、現在のタスク状態及び最終目標のタスク状態以外の情報の入力を更に受け付けるように構成されてもよい。最終目標のタスク状態が一定である場合、推論モデル55の入力から最終目標のタスク状態を示す情報は省略されてよい。判定モデル50及び推論モデル55の出力形式は、識別及び回帰のいずれであってもよい。
1…第1モデル生成装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
91…記憶媒体、81…モデル生成プログラム、
111…データ取得部、112…機械学習部、
113…保存処理部、
120…CADデータ、
121…学習データセット、
122…訓練データ、123…正解データ、
125…学習結果データ、
2…第1モデル生成装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
92…記憶媒体、82…モデル生成プログラム、
211…接触判定部、212…データ収集部、
213…モデル生成部、214…保存処理部、
220…CADデータ、223…学習データ、
225…推論モデルデータ、
3…制御装置、
31…制御部、32…記憶部、33…通信インタフェース、
34…外部インタフェース、
35…入力装置、36…出力装置、37…ドライブ、
93…記憶媒体、83…制御プログラム、
310…目標設定部、311…データ取得部、
312…保持判定部、313…座標算出部、
314…状態取得部、315…行動決定部、
316…目標算出部、317…角度算出部、
318…指令決定部、319…駆動部、
320…CADデータ、321…ロボットデータ、
322…センシングデータ、
4…マニピュレータ、
40…台座部、
41〜46…関節部、491〜494…リンク、
T…エンドエフェクタ、
T0…注目点、CT…ローカル座標系、
W…ワーク、
W0…注目点、CW…ローカル座標系、
G…他のワーク、CG…ローカル座標系、
RC1・RC2…相対座標、
S1…カメラ、S2…エンコーダ、S3…触覚センサ、
50…判定モデル、
501…入力層、502…中間(隠れ)層、
503…出力層、
55…推論モデル

Claims (7)

  1. 1つ以上のリンク、1つ以上の関節、及びエンドエフェクタを備えるマニピュレータの動作を制御するための制御装置であって、
    前記エンドエフェクタに対するワークの状態を観測するセンサからセンシングデータを取得するデータ取得部と、
    取得されたセンシングデータに基づいて、前記エンドエフェクタが前記ワークを保持しているか否かを判定する判定部と、
    前記マニピュレータの手先の座標の現在値を算出する座標算出部であって、
    前記エンドエフェクタが前記ワークを保持していないと判定された場合、前記エンドエフェクタの注目点を前記手先に設定し、前記各関節の第1変換式により導出される第1変換式群を変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出し、
    前記エンドエフェクタが前記ワークを保持していると判定された場合、前記ワークの注目点を前記手先に設定し、前記エンドエフェクタの前記注目点の座標系から前記ワークの前記注目点の座標系に変換するための第2変換式を前記第1変換式群に掛けることで、第2変換式群を算出し、算出された第2変換式群を前記変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出する、
    座標算出部と、
    前記変換関数の逆関数を用いた逆運動学計算により、算出された前記手先の座標の現在値及び目標値の差分から前記各関節の角度の変化量を算出する角度算出部と、
    算出された前記各関節の角度の変化量に基づいて、前記各関節に対する指令値を決定する指令決定部と、
    決定された指令値により前記各関節を駆動する駆動部と、
    を備える、
    制御装置。
  2. 前記第2変換式は、取得された前記センシングデータから導出される、
    請求項1に記載の制御装置。
  3. 前記マニピュレータの現在のタスク状態を取得する状態取得部であって、タスク状態は、前記マニピュレータの前記手先及び目標物の間の位置関係により規定される、状態取得部と、
    最終目標のタスク状態に近付くように、取得された前記現在のタスク状態に対して次に遷移する目標のタスク状態を決定する行動決定部と、
    次に遷移する前記目標のタスク状態から前記手先の座標の前記目標値を算出する目標算出部と、
    を更に備え、
    前記角度算出部は、前記変換関数の逆関数を用いた逆運動学計算により、算出された前記現在値及び算出された前記目標値の差分から前記各関節の角度の変化量を算出する、
    請求項1又は2に記載の制御装置。
  4. 前記手先及び前記目標物の間の前記位置関係は、相対座標により表現される、
    請求項3に記載の制御装置。
  5. 前記目標物は、
    前記マニピュレータが前記ワークを保持していない場合、前記ワークであり、
    前記マニピュレータが前記ワークを保持している場合、前記ワークの組み付け先の対象物である、
    請求項3又は4に記載の制御装置。
  6. 1つ以上のリンク、1つ以上の関節、及びエンドエフェクタを備えるマニピュレータの動作を制御するための制御方法であって、
    コンピュータが、
    前記エンドエフェクタに対するワークの状態を観測するセンサからセンシングデータを取得するステップと、
    取得されたセンシングデータに基づいて、前記エンドエフェクタが前記ワークを保持しているか否かを判定するステップと、
    前記マニピュレータの手先の座標の現在値を算出するステップであって、
    前記エンドエフェクタが前記ワークを保持していないと判定された場合、前記エンドエフェクタの注目点を前記手先に設定し、前記各関節の第1変換式により導出される第1変換式群を変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出し、
    前記エンドエフェクタが前記ワークを保持していると判定された場合、前記ワークの注目点を前記手先に設定し、前記エンドエフェクタの前記注目点の座標系から前記ワークの前記注目点の座標系に変換するための第2変換式を前記第1変換式群に掛けることで、第2変換式群を算出し、算出された第2変換式群を前記変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出する、
    ステップと、
    前記変換関数の逆関数を用いた逆運動学計算により、算出された前記手先の座標の現在値及び目標値の差分から前記各関節の角度の変化量を算出するステップと、
    算出された前記各関節の角度の変化量に基づいて、前記各関節に対する指令値を決定するステップと、
    決定された指令値により前記各関節を駆動するステップと、
    を実行する、
    制御方法。
  7. 1つ以上のリンク、1つ以上の関節、及びエンドエフェクタを備えるマニピュレータの動作を制御するための制御プログラムであって、
    コンピュータに、
    前記エンドエフェクタに対するワークの状態を観測するセンサからセンシングデータを取得するステップと、
    取得されたセンシングデータに基づいて、前記エンドエフェクタが前記ワークを保持しているか否かを判定するステップと、
    前記マニピュレータの手先の座標の現在値を算出するステップであって、
    前記エンドエフェクタが前記ワークを保持していないと判定された場合、前記エンドエフェクタの注目点を前記手先に設定し、前記各関節の第1変換式により導出される第1変換式群を変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出し、
    前記エンドエフェクタが前記ワークを保持していると判定された場合、前記ワークの注目点を前記手先に設定し、前記エンドエフェクタの前記注目点の座標系から前記ワークの前記注目点の座標系に変換するための第2変換式を前記第1変換式群に掛けることで、第2変換式群を算出し、算出された第2変換式群を前記変換関数として用いた順運動学計算により、前記各関節の角度の現在値から設定された前記手先の座標の現在値を算出する、
    ステップと、
    前記変換関数の逆関数を用いた逆運動学計算により、算出された前記手先の座標の現在値及び目標値の差分から前記各関節の角度の変化量を算出するステップと、
    算出された前記各関節の角度の変化量に基づいて、前記各関節に対する指令値を決定するステップと、
    決定された指令値により前記各関節を駆動するステップと、
    を実行させるための、
    制御プログラム。
JP2019152395A 2019-08-22 2019-08-22 制御装置、制御方法、及び制御プログラム Pending JP2021030359A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019152395A JP2021030359A (ja) 2019-08-22 2019-08-22 制御装置、制御方法、及び制御プログラム
PCT/JP2020/027953 WO2021033471A1 (ja) 2019-08-22 2020-07-17 制御装置、制御方法、及び制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019152395A JP2021030359A (ja) 2019-08-22 2019-08-22 制御装置、制御方法、及び制御プログラム

Publications (1)

Publication Number Publication Date
JP2021030359A true JP2021030359A (ja) 2021-03-01

Family

ID=74661073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019152395A Pending JP2021030359A (ja) 2019-08-22 2019-08-22 制御装置、制御方法、及び制御プログラム

Country Status (2)

Country Link
JP (1) JP2021030359A (ja)
WO (1) WO2021033471A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023110601A (ja) * 2022-01-28 2023-08-09 オムロン株式会社 動作経路生成装置、方法、及びプログラム
CN115416018B (zh) * 2022-08-17 2024-03-15 雅客智慧(北京)科技有限公司 末端执行器形变补偿方法、装置、电子设备和存储介质
CN117504170A (zh) * 2023-12-13 2024-02-06 诺克(广州)医疗设备技术有限公司 一种体表复模方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998017444A1 (fr) * 1996-10-24 1998-04-30 Fanuc Ltd Systeme de robot de commande de forces a capteur optique pour travail d'insertion
JPWO2009001550A1 (ja) * 2007-06-27 2010-08-26 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、及びプログラム
JP2011131300A (ja) * 2009-12-22 2011-07-07 Canon Inc ロボットシステム、その制御装置及び方法
JP2012200805A (ja) * 2011-03-24 2012-10-22 Canon Inc ロボット制御装置、ロボット制御方法、プログラム及び記録媒体
JP2013132731A (ja) * 2011-12-27 2013-07-08 Seiko Epson Corp ロボット制御システム、ロボットシステム及びロボット制御方法
JP2017030059A (ja) * 2015-07-29 2017-02-09 セイコーエプソン株式会社 ロボット制御装置、ロボットおよびロボットシステム
JP2017030106A (ja) * 2015-08-03 2017-02-09 株式会社東芝 ロボット制御装置およびロボットシステム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998017444A1 (fr) * 1996-10-24 1998-04-30 Fanuc Ltd Systeme de robot de commande de forces a capteur optique pour travail d'insertion
JPWO2009001550A1 (ja) * 2007-06-27 2010-08-26 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、及びプログラム
JP2011131300A (ja) * 2009-12-22 2011-07-07 Canon Inc ロボットシステム、その制御装置及び方法
JP2012200805A (ja) * 2011-03-24 2012-10-22 Canon Inc ロボット制御装置、ロボット制御方法、プログラム及び記録媒体
JP2013132731A (ja) * 2011-12-27 2013-07-08 Seiko Epson Corp ロボット制御システム、ロボットシステム及びロボット制御方法
JP2017030059A (ja) * 2015-07-29 2017-02-09 セイコーエプソン株式会社 ロボット制御装置、ロボットおよびロボットシステム
JP2017030106A (ja) * 2015-08-03 2017-02-09 株式会社東芝 ロボット制御装置およびロボットシステム

Also Published As

Publication number Publication date
WO2021033471A1 (ja) 2021-02-25

Similar Documents

Publication Publication Date Title
WO2021033486A1 (ja) モデル生成装置、モデル生成方法、制御装置及び制御方法
WO2021033471A1 (ja) 制御装置、制御方法、及び制御プログラム
JP5210883B2 (ja) 物理的な多関節システムの部位の動作を制御する、コンピュータを使用する方法、物理的な多関節システムの部位の動作を制御するシステム、人間とは別体の物理的多関節システムに前記人間の動作を追従させる、コンピュータを用いた方法、人間とは別体の物理的多関節システムによって前記人間の動作を追従させるシステム、及び、ソースシステムとは別体の物理的多関節システムの部位の動きを制御する、コンピュータを用いた方法
JP5210884B2 (ja) 物理的多関節システムの姿勢を制御するコンピュータを用いた方法および多関節システムを位置決めするシステム
US11745355B2 (en) Control device, control method, and non-transitory computer-readable storage medium
Khalil et al. Dexterous robotic manipulation of deformable objects with multi-sensory feedback-a review
JP5225720B2 (ja) ロボットのモーションの発生及び制御のための装置ならびに方法
Meeussen et al. Contact-state segmentation using particle filters for programming by human demonstration in compliant-motion tasks
Laschi et al. Learning-based control strategies for soft robots: Theory, achievements, and future challenges
Waltersson et al. Planning and control for cable-routing with dual-arm robot
JP7263987B2 (ja) 制御装置、制御方法、及び制御プログラム
Chalasani et al. A computational framework for complementary situational awareness (csa) in surgical assistant robots
WO2021033472A1 (ja) 制御装置、制御方法、及び制御プログラム
Cursi et al. Task accuracy enhancement for a surgical macro-micro manipulator with probabilistic neural networks and uncertainty minimization
JP2014065098A (ja) ロボット装置及び多関節ロボットの軌道シミュレーション装置並びに軌道生成方法
Li et al. Versatile interaction control and haptic identification in humans and robots
Almaghout et al. Robotic co-manipulation of deformable linear objects for large deformation tasks
Bouzid et al. Investigating feed-forward back-propagation neural network with different hyperparameters for inverse kinematics of a 2-DoF robotic manipulator: A comparative study
Geng et al. Synergy-based affordance learning for robotic grasping
Nambiar et al. Automation of unstructured production environment by applying reinforcement learning
Falahi et al. Using orthogonal basis functions and template matching to learn whiteboard cleaning task by imitation
WO2022044615A1 (ja) 学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム
Khandekara et al. Fusion of human arm synergy and artificial neural network for programming of a robot by demonstration
Farooq et al. Evolution of neural controllers for simulated and real quadruped robots
Aydogmus et al. Implementation of singularity-free inverse kinematics for humanoid robotic arm using Bayesian optimized deep neural network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230310

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230606