(57)【要約】【課題】コンピュータ上の画像から物体を把持する位置及び姿勢を適切に決定するための学習を行う学習装置を提供する。【解決手段】  学習装置は、物体の存在する位置と、当該物体を把持している教示ツールの情報を検知する、検知手段と、前記検知手段により検知された前記教示ツールの情報を前記教示ツールの位置及び姿勢の情報へと変換し、前記物体の存在する位置情報と当該物体を把持している前記教示ツールの位置及び姿勢の情報とを紐付けたデータである教師データを生成する、教師データ生成手段と複数の層を備えるニューラルネットワークモデルで表される学習モデルであって、前記検知手段を介してターゲット物体の存在する位置が入力されると、前記ターゲット物体を把持可能な把持手段の位置及び姿勢のデータを出力する学習モデルを、前記教師データを用いて学習する、学習部と、を備える。【選択図】図１
2018205929.tif 000002
【特許請求の範囲】
【請求項１】
物体の存在する位置と、当該物体を把持している教示ツールの情報を検知する、検知手段と、
前記検知手段により検知された前記教示ツールの情報を前記教示ツールの位置及び姿勢の情報へと変換し、前記物体の存在する位置情報と当該物体を把持している前記教示ツールの位置及び姿勢の情報とを紐付けたデータである教師データを生成する、教師データ生成手段と
複数の層を備えるニューラルネットワークモデルで表される学習モデルであって、前記検知手段を介してターゲット物体の存在する位置が入力されると、前記ターゲット物体を把持可能な把持手段の位置及び姿勢のデータを出力する学習モデルを、前記教師データを用いて学習する、学習部と、
を備える学習装置。
【請求項２】
前記検知手段は、少なくとも物体の存在する位置及び前記教示ツールの位置を３次元データとして検知し、
前記教師データは、少なくとも前記教示ツールの３次元の位置情報を含む６次元以上の自由度のデータを備えるデータである、
請求項１に記載の学習装置。
【請求項３】
前記学習モデルは、畳み込みニューラルネットワークモデルである請求項２に記載の学習装置。
【請求項４】
前記学習モデルは、各層間に全結合層が存在せず、全ての層間が畳み込み演算により接続される畳み込みニューラルネットワークモデルである請求項３に記載の学習装置。
【請求項５】
前記検知手段は、物体の存在する位置及び前記教示ツールの位置を３次元データとして検知し、
前記教師データに含まれる前記教示ツールの位置は、所定の基準点に対する前記教示ツールの垂直位置及び２次元で表した水平位置の３次元で表された位置であり、
前記教師データに含まれる前記教示ツールの姿勢は、所定の基準姿勢に対する前記教示ツールのロール角、ピッチ角及びヨー角の３次元で表された姿勢であり、
前記教師データは、物体の存在する位置と、教示ツールが当該物体を把持することができる前記３次元で表された位置及び前記３次元で表された姿勢のデータである６次元データと、を備え、
前記学習モデルが出力する前記把持手段の位置及び姿勢のデータは、前記把持手段の前記３次元で表された位置及び前記３次元で表された姿勢である、
請求項２乃至請求項４のいずれかに記載の学習装置。
【請求項６】
前記教師データのうち前記６次元データとして、前記検知手段が検知した前記教示ツールに設置されたマーカの情報に基づいて取得する、教師データ生成部をさらに備える請求項５に記載の学習装置。
【請求項７】
前記学習部は、前記教示ツールが物体を把持することができる複数の位置及び姿勢の情報のうち、前記検知手段が検知した当該物体までの深度情報及び前記教示ツールの姿勢情報に基づいた複数の情報をクラスタリングした情報を教師データとして用いる請求項５に記載の学習装置。
【請求項８】
請求項５乃至請求項７のいずれかに記載の学習装置と、
前記ターゲット物体を把持する前記把持手段である、グリッパと、
前記学習部が学習した前記学習モデルに、前記検知手段により検知された前記ターゲット物体の存在する位置の情報を入力し、前記グリッパが当該ターゲット物体を把持可能な位置及び姿勢の情報を推定する、推定部と、
を備え、
前記グリッパが前記ターゲット物体を把持可能な位置及び姿勢の情報を推定する、推定装置。
【請求項９】
前記推定部が推定した前記グリッパが前記ターゲット物体を把持可能な位置及び姿勢の情報を、画像として出力する、出力部、
をさらに備える請求項８に記載の推定装置。
【請求項１０】
前記出力部が出力する画像は、
前記グリッパが前記ターゲット物体を把持可能な２次元位置情報であって、前記検知手段の検知面に対して平行な平面における位置を示す２次元位置情報を示す画像と、
前記グリッパが前記ターゲット物体を把持可能な３次元姿勢情報及び前記検知手段の検知面に対して垂直方向である深度情報を示す画像と、
の２つの画像を備える画像である請求項９に記載の推定装置。
【請求項１１】
請求項８乃至請求項１０のいずれかに記載の推定装置と、
前記所定の基準点及び前記所定の基準姿勢に対する前記推定部が推定した前記位置及び姿勢の情報に基づいた位置及び姿勢へと前記グリッパを制御し、前記グリッパに前記ターゲット物体を把持させる、制御部と、
を備える把持システム。
【請求項１２】
検知手段が、物体の存在する位置と、当該物体を把持している教示ツールの情報を検知するステップと、
教師データ生成手段が、前記検知手段により検知された前記教示ツールの存在する位置情報を前記教示ツールの位置及び姿勢の情報へと変換し、前記物体の存在する位置情報と当該物体を把持している前記教示ツールの位置及び姿勢の情報とを紐付けたデータである教師データを生成するステップと、
学習部が、複数の層を備えるニューラルネットワークモデルで表される学習モデルであって、前記検知手段を介してターゲット物体の存在する位置が入力されると、前記ターゲット物体を把持可能な把持手段の位置及び姿勢のデータを出力する学習モデルを、前記教師データを用いて学習するステップと、
を備える学習方法。
【請求項１３】
検知手段が検知した、物体の存在する位置と、当該物体を把持している教示ツールの情報に基づいて、教師データ生成手段が生成した前記物体の存在する位置情報と、当該物体を把持している前記教示ツールの位置及び姿勢の情報と、を紐付けたデータである教師データに基づいて、学習手段により学習された複数の層を備えるニューラルネットワークモデルで表される学習モデルであって、
前記検知手段を介してターゲット物体の存在する位置が入力されると、前記複数の層間において学習結果に基づいた演算を行い、前記ターゲット物体を把持可能な把持手段の位置及び姿勢のデータを出力するようにコンピュータを機能させる学習モデル。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法、学習モデル、検出装置及び把持システムに関する。
【背景技術】
【０００２】
現在、様々な用途についてロボットを用いた自動化がされており、それぞれの用途に応じて広く研究開発が行われている。ロボットに付属したアームを用いて物体を把持する研究も広く行われている。ロボットのグリッパ部分で物体を把持するためには、ロボットのグリッパの位置及び向きを、物体の検知装置、例えば、ＲＧＢ−Ｄカメラを用いて検知された物体の位置から決定する必要がある。このグリッパの位置及び向きを推定する手法として、他分野でも広く用いられているニューラルネットワークやディープラーニングを利用する手法が開発されている。
【０００３】
しかしながら、従来の手法では、高次元の把持姿勢を求めること、特に、コンピュータ上の画像においてアノテーションすることが難しい情報を予測することが困難である。ＣＡＤを用いて３次元物体を認識する手法もあるが、ＣＡＤモデルが必要となる上、物体を認識した後に把持姿勢を決定しなければならず、経済的及び時間的コストが高い。さらに、従来の手法においては、グリッパが直上から物体を把持する以外の把持方法を学習している例が見受けられない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６―１３２０８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、本発明は、コンピュータ上の画像から物体を把持する位置及び姿勢を適切に決定するための学習を行う学習装置を提供する。
【課題を解決するための手段】
【０００６】
物体の存在する位置と、当該物体を把持している教示ツールの情報を検知する、検知手段と、
前記検知手段により検知された前記教示ツールの情報を前記教示ツールの位置及び姿勢の情報へと変換し、前記物体の存在する位置情報と当該物体を把持している前記教示ツールの位置及び姿勢の情報とを紐付けたデータである教師データを生成する、教師データ生成手段と
複数の層を備えるニューラルネットワークモデルで表される学習モデルであって、前記検知手段を介してターゲット物体の存在する位置が入力されると、前記ターゲット物体を把持可能な把持手段の位置及び姿勢のデータを出力する学習モデルを、前記教師データを用いて学習する、学習部と、
を備える学習装置。
【発明の効果】
【０００７】
本発明に係る学習装置によれば、コンピュータ上の画像から物体を把持する位置及び姿勢を適切に決定するための学習を行うことが可能となる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係る把持システムの概略を示す図。
【図２】一実施形態に係るコンピュータの機能を示すブロック図。
【図３】一実施形態に係る教師データ取得のための教示ツールを模式的に示す図。
【図４】一実施形態に係る学習モデルの層を示す図。
【図５】一実施形態に係る学習フェーズの処理を示すフローチャート。
【図６】一実施形態に係る推定フェーズの処理を示すフローチャート。
【図７】一実施形態に係るターゲット物体並びに推定された把持位置及び姿勢の例を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明の実施形態についてより詳しく説明する。本実施形態は、本発明を限定するものではない。なお、各図において同等の機能を有する構成要素には同一の符号を付し、同一の構成要素の詳しい説明は繰り返さない。
【００１０】
本実施形態に係る学習装置は、例えば、ロボットに付属された又はロボットの構成要素であるグリッパによりターゲットとなる物体（以下、ターゲット物体と記載する）を把持する場合において、ターゲット物体をキャプチャするように備えられたカメラにより撮影された画像を利用し、物体を把持することが可能なグリッパの位置及び向きの情報を出力するモデルを学習しようとするものである。
【００１１】
図１は、本実施形態に係る学習装置により学習された学習モデルを用いたロボットによる物体の把持システムである。この図１に示すように、把持システム１は、コンピュータ１０と、コントローラ１２と、ロボット１４と、グリッパ１６と、カメラ１８と、を備える。
【００１２】
コンピュータ１０は、コントローラ１２、グリッパ１６及びカメラ１８に接続され、把持システム１全体の制御を行うコンピュータであり、例えば、ＣＰＵ（Central Processing Unit）、各種メモリ及びユーザインターフェースを有する。このコンピュータ１０内に、学習装置により学習された学習モデルが格納されている。学習装置は、コンピュータ１０内に搭載されていてもよい。また、学習をするため及び学習モデルに実測値を当てはめるための演算を行うＧＰＵ（Graphical Processing Unit）等のアクセラレータを搭載していてもよい。
【００１３】
コントローラ１２は、コンピュータ１０からの信号を受信し、ロボット１４を制御するための信号をロボット１４へと送信する制御装置である。コンピュータ１０から受信した信号をコントローラ１２は、ロボット１４を制御するための信号へと変換し、ロボット１４に動作をさせるための信号を送信する。
【００１４】
なお、このコントローラ１２は、コンピュータ１０内で信号の変換等を行う場合には省略可能である。さらには、コンピュータ１０及びコントローラ１２がロボット１４に搭載されているものとしてもよい。すなわち、コンピュータ１０、コントローラ１２及びロボット１４をまとめて一体のロボットとして構成してもよい。資源やコスト等その他の要因に基づいて、これらの構成は可変である。
【００１５】
ロボット１４は、物体を把持するグリッパ１６を支持する筐体である。本実施形態の説明においては、ロボット１４を主にグリッパ１６の支持筐体として説明するが、これには限られず、他の機能を有し、他の用途に用いるものであってもよい。
【００１６】
グリッパ１６は、コンピュータ１０からの把持可能な位置及び姿勢の情報を受信し、ターゲット物体を把持するための装置（把持手段）であり、例えば、３本の可動な爪部を備える把持装置である。爪部は、例えば、１又は複数の関節を有し、それぞれの関節ごとに操作できるように制御可能となっている。グリッパ１６は、コンピュータ１０、コントローラ１２又はロボット１４により制御される。すなわち、グリッパ１６は、制御部により制御される。ターゲット物体を把持する場合には、コンピュータ１０から受信した位置及び姿勢の情報に基づいて制御される。
【００１７】
なお、グリッパ１６の構成としては爪タイプだけではなく、スライドタイプやレバータイプであってもよいし、爪の本数も３本には限られず、２本又は４本以上であってもよい。このグリッパ１６は、例えば、アーム（図示しない）を介してロボット１４と物理的又は電気的に接続されていてもよい。
【００１８】
また、グリッパ１６は、コンピュータ１０と接続されていなくてもよい。この場合、グリッパ１６は、コントローラ１２及びロボット１４を介してターゲット物体を把持するための位置及び姿勢（３次元的な方向）の情報を取得するようにしてもよい。
【００１９】
以下の説明において、グリッパ１６の位置とは、グリッパ１６の基準点に対する位置であるとする。グリッパ１６の基準点とは、グリッパ１６に位置情報を与えた場合に、把持システム１内においてグリッパ１６の位置を一意的に決定できるようにするための点である。例えば、３本の爪を有するグリッパである場合、これらの爪の初期位置（例えば、最も伸びている状態の位置）における爪の先の中心点（重心でもよい）をグリッパ１６の基準点としてもよいし、これらの爪が設置されている点をグリッパ１６の基準点としてもよい。または、ロボット１４のアームとグリッパ１６とが接続されている点をグリッパ１６の基準点としてもよいし、これらには限られない。
【００２０】
さらに、グリッパ１６の位置を調整するには、ロボット１４のアームの動作により調整する場合があるが、以下の説明においては、グリッパ１６の位置及び姿勢の制御は、グリッパ１６の位置又は姿勢の制御及びロボット１４のアームの動作の制御を含む概念であるとする。
【００２１】
カメラ１８は、コンピュータ１０と接続され、物体の画像を所定の位置及び方向から捕捉するためのキャプチャ装置である。このカメラ１８は、例えば、物体を鉛直方向から撮影するＲＧＢ−Ｄカメラであり、所定の点を基準（以下、カメラ１８の基準点と記載する）としたカメラ１８の撮像面に対して水平な位置（ｘ，ｙ）における物体のＲＧＢ値と、物体の各位置（ｘ，ｙ）におけるカメラ１８の撮像面に対して垂直な位置ｚ（深度）とを捕捉する。
【００２２】
カメラ１８は、このように、物体が存在する位置（ｘ，ｙ，ｚ）が捕捉可能な装置であれば、ＲＧＢ−Ｄカメラには限られず、他の物体の３次元の位置を検知できるような検知装置であってもよい。例えば、２方向又は３方向から物体を捕捉するように複数のカメラを備え、物体の３次元の位置を捕捉できるような装置であってもよい。また、可視光を撮影するためのカメラではなく、物体を３次元で計測できるその他の検知装置であってもよい。
【００２３】
なお、図１においてカメラ１８は、コンピュータ１０とのみ接続されているものであるが、これには限られない。例えば、コンピュータ１０に搭載されているものであってもよいし、ロボット１４等に設置又は搭載されているものであってもよい。この場合、カメラ１８は、直接コンピュータ１０と接続されていてもよいし、ロボット１４等を介してコンピュータ１０と接続されていてもよい。
【００２４】
カメラ１８の基準点は、例えば、カメラ１８の位置又はグリッパ１６の初期位置とすることもできる。これには限られず、計測された物体において一意的に位置（ｘ，ｙ，ｚ）を決定できる点をカメラ１８の基準点としてもよい。この場合、原則的に、カメラ１８は、把持システム１内において固定された位置にある。すなわち、教師データを撮影するシステムと、ターゲット物体を撮影するシステムは、同じシステムであることが望ましい。
【００２５】
または、カメラ１８は、例えば、ロボット１４のアームにグリッパ１６とともに接続されていたり、グリッパ１６に取り付けられていたりしてもよい。併せて、カメラ１８の基準点を、グリッパ１６の基準点と同じとすることもできるし、別途把持システム１において一意的にカメラ１８で撮影した物体の各点の位置が決定できる座標系となるように基準点を設定してもよい。この場合、例えば、把持システム1内における物体の存在する位置は、カメラ１８の基準点に対するカメラ１８の位置と、カメラ１８により撮影された画像中における物体の各位置の座標に基づき算出されるものとしてもよい。
【００２６】
なお、グリッパ１６の基準点と、カメラ１８の基準点は同じ点であるとしてもよく、この場合、把持システム１内における３次元座標を同じ座標系において扱うことが可能となる。また、グリッパ１６等の姿勢は、これらの３次元座標系において、例えば、ｘ−ｙ平面上でｘ軸と平行である姿勢を基準であるとしてもよい。このように、グリッパ１６等の位置及び姿勢は、把持システム１内で一意的に決定できるものであればどのようなものであってもよい。
【００２７】
教師データを生成する画像を撮影するシステムと、ターゲット物体を把持するシステムは異なっていてもよいが、ターゲット物体を把持するシステムにおいて、例えば、カメラ１８と物体までの距離、及び、カメラ１８の基準点とグリッパ１６の基準点との相対的な位置関係が、教師データを生成する画像を撮影するシステムと同等であることが望ましい。それ以外の場合であっても、入力されたターゲット物体の画像における座標及び出力するグリッパ１６の位置及び姿勢情報の補正を行うことにより本実施形態を適用することは可能である。
【００２８】
カメラ１８が把持システム１内において固定されている場合、一例として、カメラ１８は、物体が設置される面の７０ｃｍ×５０ｃｍの広さの平面が撮影されるように当該平面から鉛直方向に７５ｃｍ離れた位置に設置される。これは一例であり、他の設置方法を除外するものではない。
【００２９】
図２は、コンピュータ１０の機能を示すブロック図の一例である。この図２に示すように、コンピュータ１０は、例えば、入力部１００と、教師データ生成部１０２と、学習部１０４と、推定部１０６と、出力部１０８とを備える。さらに、教師データを格納する教師データ格納部１１０と、教師データに基づいて学習した学習モデルを格納する学習モデル格納部１１２とを備える。ＣＰＵ等の構成については、図示しない。図中の実線は学習フェーズにおけるデータの流れを示し、破線は把持情報の推定フェーズにおけるデータの流れを示す。
【００３０】
入力部１００を介して、コンピュータ１０へデータ等が入力される。入力されるデータは、学習フェーズであれば、教師データとなるカメラ１８において撮影された物体を把持する図３に示される教示ツール２の画像である。推定フェーズであれば、把持する目的となるターゲット物体の画像である。また、図示しないユーザインターフェースを介して、学習する旨のリクエストや把持情報の推定をするためのリクエストが入力される。
【００３１】
教師データ生成部１０２は、入力部１００を介してコンピュータ１０に教示ツール２の画像が入力された場合に、入力された画像データを変換し教師データを生成する。入力された画像から教師データに備えられる３次元位置及び３次元姿勢への変換の詳細については、後述する。
【００３２】
学習部１０４は、教師データ格納部１１０に格納されている教師データを用いて把持情報の推定のための学習モデルを生成する。学習部１０４は、ユーザからのリクエストに基づいてこの教師データ格納部１１０に格納されているデータに基づいて学習モデルを生成し、生成された学習モデルを学習モデル格納部１１２へと格納する。なお、学習部１０４は、学習中であるステータス状態や、学習が終了したという情報を出力部１０８に出力するようにしてもよい。
【００３３】
推定部１０６は、ターゲット物体を把持するための位置及び姿勢の情報を学習モデルに基づいて推定する。例えば、入力部１００を介して把持情報を推定するようなリクエストを受信すると、推定部１０６は、学習モデル格納部１１２に格納されている学習モデルに基づいて、入力されたターゲット物体の画像についてグリッパ１６が当該ターゲット物体を把持することが可能である位置（３次元位置）及び姿勢（３次元方向）の情報を推定する。推定された情報は、例えば、出力部１０８に表示するようにしてもよいし、出力部１０８を介してロボット１４あるいはグリッパ１６へと送信されてもよい。
【００３４】
なお、推定部１０６が推定した情報を新たな教師データとしてフィードバックすることもできる。一点鎖線で示された矢印のように、推定部１０６において推定された情報と、実際にグリッパ１６がターゲット物体を把持できたか否かの情報又はユーザが情報を確認してターゲット物体が把持可能であるかどうかを予測した結果を教師データとして、教師データ格納部１１０へと出力してもよい。
【００３５】
図２においては、学習部１０４と推定部１０６が同じコンピュータ１０内にあるとして説明したが、これには限られない。すなわち、共通した学習モデル格納部１１２に基づいて、別々のコンピュータ内に学習部１０４と推定部１０６が備えられていてもよい。さらに、教師データ格納部１１０及び学習モデル格納部１１２は、コンピュータ１０内に備えられていなくてもよく、例えば、ネットワークを介したデータベースサーバ等を備え当該データベースサーバ内に備えられていてもよい。
【００３６】
図２に示すような構成である場合、コンピュータ１０は、グリッパ１６がターゲット物体を把持可能な位置及び姿勢情報を取得するための学習モデルを最適化する学習装置であるとともに、当該学習モデルに基づいてグリッパ１６がターゲット物体を把持可能な位置及び姿勢情報を推定する推定装置でもある。
【００３７】
図３は、本実施形態に係る学習モデルを作成するために用いる教示ツール２の例を示す図である。教示ツール２は、教示ツール本体２０と、マーカ２２とを備える。
【００３８】
教示ツール本体２０は、教師データを作成する際に人間が操作するツールであり、この教示ツール本体２０により物体を把持することにより、物体を把持することが可能な教示ツール２の位置及び姿勢を教師データとして蓄積することが可能となる。
【００３９】
マーカ２２は、教示ツール本体２０に固定されているマーカである。カメラ１８により撮影された教示ツール２の位置は、教示ツール本体２０の位置を抽出することにより求めることが可能であるが、教示ツール２の姿勢は教示ツール本体２０の画像を取得するだけでは抽出することが困難であることが多い。
【００４０】
そこで、マーカ２２を教示ツール本体２０へと固定することにより、画像からマーカ２２を検出し、マーカ２２の３次元空間における位置（ｘ，ｙ，ｚ）又は姿勢（Ｒ，Ｐ，Ｙ）を推定することにより、教示ツール２の姿勢を推定することが可能となる。なお、図３においてマーカ２２は、３つの異なるものから構成されているが、これには限られず、読み取りの精度を確保できるものであれば１つ又は２つのマーカにより構成されるものであってもよい。精度を高めるために、教示ツール本体２０の長手方向及び短手方向の２本のベクトルを基底とした方向を検出するようにしてもよい。
【００４１】
また、マーカ２２を用いることには限られず、例えば、３軸センサ、６軸センサ、光、電波、音波等を用いて教示ツール２の位置又は姿勢を抽出するようにしてもよい。さらに、上記では教師データとして把持可能なデータを取得するものとしたが、これには限られず、教示ツール２を用いて把持できないデータをも収集するようにしてもよい。このようにすることにより、ポジティブデータのみならずネガティブデータを用いた学習を行うことも可能となる。
【００４２】
教示ツール基準点２４は、教示ツール２の位置及び姿勢の基準となる点である。教示ツール２の３次元の位置（ｘ，ｙ，ｚ）は、この教示ツール基準点２４の位置を基準として計測される。例えば、教示ツール２の位置は、教師データ生成部１０２がマーカ２２の位置に基づいて、教示ツール基準点２４の位置を求めることにより決定される。より単純には、教示ツール２の２つの端点の中心の位置を教示ツール２の位置（ｘ，ｙ）としてもよい。位置ｚについては、カメラ１８がＲＧＢ−Ｄカメラである場合には、その計測結果から求めるものとしてもよい。
【００４３】
なお、教示ツール２の位置は、把持システム１内で一意的に決定できるように表現されるものであればよい。例えば、上述したグリッパ１６の基準点に対する教示ツール基準点２４の位置を相対的に表したものでもよいし、カメラ１８の基準点に対する教示ツール基準点２４の位置を相対的に表したものでもよい。
【００４４】
教示ツール２の姿勢は、マーカ２２を読み取ることにより検出される。すなわち、教示ツール基準点２４を中心に教示ツール本体２０の長手方向を基準として、ロール角Ｒ、ピッチ角Ｐ及びヨー角Ｙとして姿勢（Ｒ，Ｐ，Ｙ）が検出される。例えば、教示ツール本体２０の長手方向に対して短手方向がどれだけ傾いているか（Ｒ）、長手方向が水平方向からどれだけ傾いているか（Ｐ）、長手方向と短手方向が水平面状でどれだけ回転しているか（Ｙ）により検出される。この際、教師データ生成部１０２により、例えば、水平面上の所定の姿勢で設置された状態の教示ツール２の３次元方向を基準とし、透視変換行列を求めることによりマーカ２２の各方向への傾きを算出することにより、カメラ１８が撮影した教示ツール２の画像の情報が姿勢情報へと変換される。
【００４５】
次に、各フェーズにおける動作について説明する。まず、グリッパ１６がターゲット物体を把持できる位置及び姿勢の情報を推定するための学習モデルについて説明する。
【００４６】
図４は、本実施形態における学習モデルの一例を示す図である。この図４に示すように、学習モデルは、ＦＣＮ（Fully Convolutional Network）により構成される。ＦＣＮとは、畳み込みネットワーク（以下ＣＮＮ：Convolutional Neural Networkと記載する）の一種であり、全ての層間の演算が畳み込み演算で行われる学習のことを言う。すなわち、プーリング層及び全結合となる層間が存在しないネットワークである。ＦＣＮを利用することにより、構成が複雑でなく、計算コストが低いネットワークを構成することが可能となる。なお、学習モデルは、ＦＣＮに限られず、他のネットワークを利用してもよい。
【００４７】
この学習モデルは、入力画像として、２００×２００ピクセルのＲＧＢの３枚の画像と、デプスマップの１枚の画像が入力されると、把持可能であると予測された位置マップ（ＰＬＭ：Predicted Location Map）と、姿勢・深度マップ（ＰＣＭ：Predicted Configuration Map）が出力される。ＰＬＭ及びＰＣＭは、カメラ１８で撮影されたピクセルごとに把持可能か否かを示す情報である。
【００４８】
より具体的には、ＰＬＭは、２次元位置（ｘ，ｙ）にグリッパ１６が存在する場合にターゲット物体を把持できる可能性があるか否かを示すマップである。例えば、ＰＬＭの各ピクセルは、そのピクセルに対応する位置（ｘ，ｙ）にグリッパ１６が存在すればターゲット物体が把持可能である場合には１に近い値、そうでない場合には０．５に近い値又は０．５以下の値であるようなマップである。後述するように、出力されるＰＬＭ及びＰＣＭのデータは、シグモイド関数を介して（０，１）の領域になるためである。
【００４９】
ＰＣＭは、深度及び姿勢（ｚ，Ｒ，Ｐ，Ｙ）にグリッパ１６を操作すればターゲット物体を把持できる可能性があるという深度及び姿勢の４次元の情報を２次元位置（ｘ，ｙ）にマッピングしたものである。このＰＣＭは、具体的には、以下のように生成される。ｍず、カメラ１８において検知されたデータのうち、実際に把持可能な当該４次元の情報を、例えば、３００通りにクラスタリングし、教師データとして準備する。ＰＣＭは、推定されたグリッパ１６の深度及び姿勢の４次元の情報をこのクラスタリングされた教師データを参照することにより、教師データ毎、すなわちクラスタリングされた各々の深度及び姿勢で実際に把持できる可能性がある２次元位置（ｘ，ｙ）をマッピングしたものである。
【００５０】
ターゲット物体に対してグリッパ１６が当該ターゲット物体を把持できる可能性のある当該４次元の情報は、ほぼ無限通りあるため、これらを緩和するために深度及び姿勢の組合せを上記の３００通りにクラスタリングした結果を用いる。このクラスタリングには、一例として、ｋ−ｍｅａｎｓ法が用いられるが、他の一般的なクラスタリング手法を用いてもよい。なお、本実施形態においては、物体を把持できない場合の教師データを含めて、３０１通りの教師データを使用することによりＰＣＭを生成する。
【００５１】
図４における各層についての説明をする。各層の上方に記載しているＳ１又はＳ２は、当該層への畳み込み時におけるストライドを表す。Ｓ１であれば、ストライドが１であることを示し、Ｓ２であれば、ストライドが２であることを示す。ここでは、一例として、Ｓ１で表される層には、３×３のコンボリューションカーネルを用い、Ｓ２で表される層には、４×４のコンボリューションカーネルを用いる。各層の下方に記載している１６、３２、６４、３０２の数字は、各層のチャネル数を示す。
【００５２】
一番左の層は、入力層であり、２００×２００（ピクセル）×４（チャネル）の物体が撮影されたデータが入力される。次の層（以下、入力層及び出力層を除き、左から順に、第１層、第２層、・・・とする。）は、この入力層に入力された４チャネルのデータと３×３サイズのカーネルとを畳み込み演算し、１６チャネルの同じサイズのデータを生成する。すなわち、第１層は、２００×２００×１６の層となる。畳み込み時のパディングは、１とする。Ｃｈａｉｎｅｒ（登録商標）の擬似コードで表すと、
layer1 = chainer.functions.Convolution2d(4, 16, 3, stride=1, pad=1)(input)
としたものである。
【００５３】
より具体的には、入力画像の各チャネルに対して１６通りの３×３サイズのカーネルを用いて畳み込み演算を行い１６チャネルの第１層のデータを生成する。すなわち、１つのカーネルのセットとしてＲ（Red）、Ｇ（Green）、Ｂ（Blue）、Ｄ（Depth）画像用のカーネルが存在し、入力画像の各チャネルに対してそれぞれのチャネルに対応するカーネルを畳み込み積分する。そして、畳み込み積分した結果を１つの画像として合成する。
【００５４】
合成は、例えば、所定の重み付けにより各チャネルの画像を荷重加算することにより実行される。重み付けの係数を各カーネルに含むこともでき、この場合、各チャネルを対応するカーネルで畳み込んだ後に、各チャネルの出力を加算することにより出力のチャネルが生成される。１６通りのこのようなカーネルのセットを入力画像に適用することにより、４チャネルから１６チャネルへの変換が行われる。
【００５５】
さらに、最終層（第１１層）を除く全ての層において、畳み込み演算後に、バッチ正規化を行い、活性化関数としてＲｅＬＵ（Rectified Linear Unit）を適用する。ここで、バッチ正規化とは、各チャネルの平均が０、分散が１となるように正規化をする処理を示す。ＲｅＬＵとは、データ中の負値を０とする変換を示す。擬似コードで表すと、
layer1 = chainer.functions.relu(chainer.functions.BatchNormalization(layer1))
としたものである。
【００５６】
第２層は、第１層と４×４サイズのカーネルとを畳み込み演算し、チャネル数を３２とした、１００×１００×３２のデータの層である。同様に擬似コードで表すと、
layer2 = chainer.functions.Convolution2d(16, 32, 4, stride=2, pad=1)(layer1)
としたものである。ダウンサンプリングは、２５×２５×６４の第６層まで、３×３サイズのカーネルによるストライド１の畳み込み（サイズ変更なし）と、４×４サイズのカーネルによるストライド２の畳み込み（ダウンサンプリング）とを交互に行うことにより実行される。さらに、上記と同様に、
layer2 = chainer.functions.relu(chainer.functions.BatchNormalization(layer2))
として正規化及び活性化を行う。
【００５７】
その後、アップサンプリングの過程に移行する。アップサンプリングは、ダウンサンプリングの逆の操作を行うことにより実行される。例えば、第７層は、
layer7 = chainer.functions.Deconvolution2d(64, 64, 4, stride=2, pad=1)(layer6)
と表される。そして、２００×２００×１６のサイズである第１１層まで、ダウンサンプリングと逆の操作を行うことにより、アップサンプリングが実行される。アップサンプリングの過程においても同様に正規化及び活性化が実行され、例えば、
layer7 = chainer.functions.relu(chainer.functions.BatchNormalization(layer7))
と表される。
【００５８】
最終層では、上記の活性化の代わりに、シグモイド関数を用いて活性化を行う。そして、ターゲット物体が把持可能である位置及び姿勢の情報をクラスタリングした結果を教師データとして入力しておくことにより、最終層において得られた結果をターゲット物体が把持可能な６次元の位置及び姿勢情報（ｘ，ｙ，ｚ，Ｒ，Ｐ，Ｙ）をネットワークが推定し、出力層へと出力する。例えば、ＰＬＭとして２００×２００×１の（ｘ，ｙ）データが出力され、ＰＣＭとして把持可能な２００×２００×３００のデータ及び把持不可能な２００×２００×１のデータとを合わせた計２００×２００×３０１の（ｚ，Ｒ，Ｐ，Ｙ）データが出力される。
【００５９】
最終層においてＰＣＭは、例えば、図４の最下段に示されるような画像として出力される。この画像は、クラスタリングされた各教師データに対して、当該教師データが示す深度及び姿勢において、ターゲット物体が把持可能である２次元位置（ｘ，ｙ）を示すマッピングデータである。各教師データに対するマッピングデータに対して、例えば、それぞれ別の色により彩色したものを１枚のＰＣＭを示す画像として合成して出力してもよい。これらの画像を１枚の画像に合成する場合、各位置（ｘ，ｙ）に対して、最も高い出力値を有するクラスタを示す色で彩色してもよい。一方、ＰＬＭは、１チャネルの出力であるので、例えば、最終層から出力された値をグレースケールや他の彩色によるスケール方法により画像に変換して出力してもよい。
【００６０】
なお、上記の学習モデルは、一例として示したものであり、他のネットワークによる学習及び最適化を行ってもよい。例えば、一般的なＣＮＮのように、プーリング層や全結合層を含むネットワークによる学習を行ってもよい。
【００６１】
次に、当該学習モデルを生成する学習フェーズについて説明する。図５は、本実施形態における学習処理を示すフローチャートである。
【００６２】
まず、カメラ１８により撮影された物体及び教示ツール２の画像データを収集する（ステップＳ１０）。この画像データは、カメラ１８を介し、教示ツール２を用いて複数の物体のそれぞれいついて、把持可能な複数の位置及び姿勢を入力することにより取得する。教師データへの変換用の画像データとして、複数の物体のそれぞれについて、複数の把持位置及び把持姿勢を入力する。取得された教師データは、入力部１００を介して教師データ生成部１０２へと入力される。
【００６３】
一例として、物体の数が７である場合、各物体を１２の任意の位置及び任意の姿勢に配置し、各配置に対して１００の把持可能な位置及び姿勢を設定すると、各物体に対して１２×１００＝１２００通りの画像データが収集され、全体としてとして、７×１２×１００＝８４００通りの画像データが収集される。
【００６４】
次に、取得された各画像データについて、教師データへの変換処理を行う（ステップＳ１１）。教師データ生成部１０２は、入力された画像データを変換し、教師データを生成する。生成された教師データは、教師データ格納部１１０へと格納される。また、例えば、上記のように大量のデータを取得した場合、出力されるターゲット物体を把持可能な位置及び姿勢の情報は、ほぼ無限通りとなってしまう。そこで、教師データ生成部１０２は、教示ツール２が物体を把持可能な位置（ｚ）及び姿勢（Ｒ，Ｐ，Ｙ）の４次元の情報をｋ−ｍｅａｎｓ等のクラスタリング手法を用いて、例えば、３００通りの把持可能な位置及び姿勢の情報へと分類する。これらのクラスタリングの結果も、教師データ格納部１１０に格納されてもよい。
【００６５】
１セットの教師データは、４次元（例えば、Ｒ，Ｇ，Ｂ，Ｄ）の物体の画像と、６次元（例えば、ｘ，ｙ，ｚ，Ｒ，Ｐ，Ｙ）の当該物体を把持可能な位置及び姿勢の情報と、が紐付けられたデータを備えるデータである。すなわち、複数の物体に対して、それぞれ複数セットの上記の教師データを備えるデータが教師データ格納部１１０に格納される。
【００６６】
次に、学習を行う（ステップＳ１２）。学習の最適化には、例えば、Ａｄａｍ（Adaptive Moment Estimation）を用いる。Ａｄａｍを用いる場合の学習パラメータとして、α＝０．０００４、バッチサイズを８０等としてもよい。なお、学習の最適化手法は、Ａｄａｍには限られず、ＮＡＧ、Ａｄａｇｒａｄ、ＲＭＳｐｒｏｐ、Ａｄａｄｅｌｔａ等、他の最適化手法を用いてもよい。また、学習する際の初期値を求めるために事前学習をしてもよい。事前学習は、例えば、ＶＧＧ１６モデルを用いて実行されてもよい。
【００６７】
また、オーバーフィッティングを抑制するために、Label-preserving transformationの手法により、人工的にデータを生成してもよい。この手法は、例えば、把持可能であるとラベリングされたデータに対して、局所的に変更を加えた人工的なデータを作成し、当該データも把持可能な位置及び姿勢の情報であると仮定する手法である。
【００６８】
例えば、グリッパ１６の位置及び姿勢が近い２つの教師データがある場合、これらのデータの中間にある位置及び姿勢の情報は、把持可能である位置及び姿勢の情報であると仮定して、新たな教師データを生成する。このようにすることにより、例えば、上述した８４００通りのデータを３倍ほどに増強してもよい。このようにサンプルを補強することにより、例えば、ある位置及び姿勢の情報において把持可能であるが、当該位置及び姿勢の情報からロール角のみを微少にずらした場合に把持不可能であるように判定されるようなオーバーフィッティングを起こす可能性を抑制することが可能となる。
【００６９】
学習においては、例えば、以下の評価関数を用いて学習モデルの最適化を行う。具体的には、下記の評価関数を用いて教師あり学習を行い、例えば、各層間において畳み込みに使用されるカーネルの最適化を行う。なお、下記において、出力される画像は上述したようにシグモイド関数の出力となるので、出力画像の画素値が０及び１になることはない。
【００７０】
ＰＬＭの評価関数として
【数１】
2018205929.tif 000003
ここで、ａは、倍率、ｎは、学習データの総数、Ｗ／Ｈは、それぞれ学習に用いる画像の幅／高さ、ｔは、ターゲットとなるＰＬＭ、ｙは、出力を示す。倍率ａは、例えば、２００である。
【００７１】
ＰＣＭの評価関数として
【数２】
2018205929.tif 000004
ここで、Ｃは、クラス数、Ｓｋは、ｔｋ（ｉ，ｊ）＝１となるピクセルの総数、ｕは、ターゲットとなるＰＣＭ、ｙは、出力を示す。
【００７２】
学習は、ＰＣＭの評価関数とＰＬＭの評価関数とで表される評価関数Ｌ＝ＬＰＬＭ＋λＬＰＣＭを用いてバックプロパゲーションにより学習モデルを最適化することにより実行される。ここで、λは、例えば、２００である。このような学習を行うことにより、例えば、畳み込みを行う各カーネルを最適化する。なお、評価関数は、ＰＬＭ及びＰＣＭを評価可能な関数であればよく、上記のものには限られない。また、学習フェーズにおいて、教師データを２グループに分け、クロスバリデーションを行ってもよい。学習された学習モデルは、学習モデル格納部１１２へと格納される。
【００７３】
上記のような学習を行うことにより、図４に示す学習モデルが生成される。次に、ターゲット物体の画像が撮影された場合における把持可能位置及び姿勢の情報の推定フェーズについて説明する。図６は、本実施形態における推定処理を示すフローチャートである。
【００７４】
まず、推定部１０６は、入力部１００を介してカメラ１８により撮影されたターゲット物体の画像を取得する（ステップＳ２０）。この画像は、カメラ１８がＲＧＢ−Ｄカメラである場合、平面上に示されたＲ、Ｇ、Ｂの各色の成分の画像と、撮影された画像中におけるそれぞれの深度を示す画像とが取得される。
【００７５】
次に、推定部１０６は、学習モデル格納部１１２に格納されている学習モデルにステップＳ２０で取得された画像を入力画像として入力し、当該ターゲット物体を把持することが可能なグリッパ１６の位置及び姿勢を示すＰＬＭ及びＰＣＭを取得する（ステップＳ２１）。カメラ１８により取得されたターゲット物体の画像は、図４に示す一番左の入力層に入力される。画像が入力された畳み込みネットワークを備える学習モデルにより、当該ターゲット物体に対するＰＣＭとＰＬＭが出力される。
【００７６】
なお、ＰＣＭとＰＬＭの出力は、図４に示すように画像として出力部１０８を介して出力するようにしてもよい。ＰＬＭの画像は、グリッパ１６がターゲット物体を把持できる可能性が高いグリッパ１６の位置を点の集合として出力する。ＰＣＭは、各点におけるグリッパの深度（カメラ１８からの鉛直方向の距離）及び姿勢の４次元データ（ｚ，Ｒ，Ｐ，Ｙ）を３００通りにクラスタリングした結果と照合し、画像として出力される。例えば、上述したように、画像上において、それぞれのクラスが異なる色として出力される。
【００７７】
次に、推定部１０６は、学習モデルにより出力された把持可能なグリッパ１６の深度及び姿勢のデータからスコアの高い情報を選択し、出力部１０８を介して当該情報を出力する（ステップＳ２２）。スコアとして、例えば、出力されたＰＬＭ及びＰＣＭのマップ自体を参照する。
【００７８】
次に、出力部１０８を介してコンピュータ１０から把持可能な位置及び姿勢の情報を受信したグリッパ１６を操作することにより、ロボット１４は、グリッパ１６を用いてターゲット物体を把持することができる（ステップＳ２３）。
【００７９】
図７（ａ）は、ターゲット物体の一例である。この図７（ａ）に示すように、ターゲット物体は、例えば、ボトルである。図７（ｂ）及び図７（ｃ）は、上述した学習モデルにより推定されたターゲット物体の把持位置及び姿勢を示す図である。これらの図においては、７種類の教師データ用の物体を用いて学習モデルを最適化し、教師データ用の物体として用いられなかったターゲット物体を当該学習モデルに適用した例である。
【００８０】
図７（ｂ）は、ターゲット物体を把持する位置及び姿勢を上面から示したものであり、図７（ｃ）は、図７（ｂ）のＡ−Ａ’断面図である。これら図７（ｂ）及び図７（ｃ）において、実線は、最もスコアが高い把持可能な位置及び姿勢の情報に基づいて、グリッパ１６の位置及び姿勢を示すものであり、続いて、破線、一点鎖線の順でスコアが高いものを示す。
【００８１】
最もスコアの高い把持可能な位置及び姿勢の情報に基づいた位置及び姿勢であるとき、グリッパ１６は、ターゲット物体を把持することが可能であることがこれらの図から読み取ることができる。すなわち、図７（ｂ）に示す水平方向及び図７（ｃ）に示す鉛直方向の位置にグリッパ１６が位置しており、それぞれの図において、ターゲット物体を挟むようにグリッパ１６の姿勢が設定されていることを読み取ることができる。破線、一点鎖線についても同様に、ターゲット物体が把持可能であることを読み取ることができる。
【００８２】
なお、図７（ｂ）及び図７（ｃ）に示される例においては、スコアとして、まず、ＰＬＭの出力値が最も高い点（ｘ，ｙ）を抽出し、当該点（ｘ，ｙ）におけるＰＣＭのスコアが高い順に３つの把持可能な位置及び姿勢の情報を図示している。把持可能な位置及び姿勢の抽出は、これには限られず、ＰＬＭとＰＣＭの出力値とを所定の評価関数により評価することにより抽出するようにしてもよい。例えば、単純にＰＬＭ及びＰＣＭの出力値の積が最も高い位置及び姿勢を出力するようにしてもよいし、所定の重み付けによるＰＬＭ及びＰＣＭの加重平均の値が最も高い位置及び姿勢を出力するようにしてもよい。
【００８３】
以上のように、本実施形態によれば、多次元、例えば、６次元の教師データに基づき最適化した学習モデルを用いることにより、自由度の高い、言い換えると、多次元の自由度に適応した把持可能な位置及び姿勢の情報を推定することが可能となる。上述した実施形態においては、６次元であるとしたが、例えば、グリッパ１６の爪の関節における曲がり具合や、爪同士の距離等、他のパラメータに基づいた教師データを用いることにより、より高次元の自由度に対しても把持可能な状態を示す情報を推定可能である。このように自由度を高次元とすることにより、様々な形状の把持手段を利用する場合においても、本実施形態に係る学習方法を採用することが可能となる。
【００８４】
例えば、グリッパ１６の関節の動きを学習し、把持可能な情報として出力させる場合、教示ツールをグリッパ１６の形状に合わせて変形してもよい。例えば、教示ツールの爪部分において１又は複数の関節を有するようにし、関節の動きをもカメラ１８により撮影し、教師データとすることも可能である。別の例として、グリッパ１６の爪同士の距離を限定したい場合、教示ツールの爪同士の距離をグリッパ１６の爪同士の距離と同等にするようにしてもよい。また、グリッパ１６の姿勢の自由度が、例えば、２であるような場合、これらの爪同士の距離や、爪の長さ等の別の自由度を追加し６次元以上の自由度として学習し、把持可能データを出力するようにしてもよい。このように、本実施形態における学習装置は、６次元以上の自由度の学習を行い、データの推定をすることを可能とする。
【００８５】
教師データの作成手法としては、上述した実施形態のようにグリッパ１６とは異なる形状の教示ツール２を用いてもよいし、別の例として、グリッパ１６と同じ形状の教示ツールを用いることもできる。この場合、教示ツール２とグリッパ１６との形状の誤差を無くす、又は、小さくすることが可能となり、教師データにおいて教示ツール２では把持できるが、実際のグリッパ１６では把持できないといった問題を回避することが可能となる。このようなグリッパ１６と同形状の教示ツールを用いる場合、人間がロボット１４を実際にロボット１４の操作系統を用いて操作することにより教師データを収集するようにしてもよい。
【００８６】
さらには、協働ロボットのように、人間が外部から物理的な力を与えることにより変形可能なロボットを用いて、教示ツールとしてのグリッパ１６を実際に物体が把持できる位置及び姿勢まで動かし、当該位置及び姿勢の状態を教師データとするようにしてもよい。この場合、教示ツールであるグリッパ１６の位置及び姿勢は、上述した実施形態と同様に、カメラ１８で撮影されたものに基づいて取得するようにしてもよい。また、ロボット１４を介してグリッパ１６の位置及び姿勢の情報が取得できる場合には、カメラ１８でグリッパ１６の撮影をすることのみならず、カメラ１８は物体の撮影を行い、把持可能な位置及び姿勢の情報は、ロボット１４を介して取得し、当該物体の画像情報と把持可能な位置及び姿勢の情報とを紐付けて教師データとするようにしてもよい。
【００８７】
さらにまた、教師データを取得する場合に、実際の物体を把持するのではなく、物体の情報をカメラ１８で取り込み、ＶＲ（Virtual Reality）技術やＡＲ（Augmented Reality）技術を用いて物体を仮想的又は拡張的に定義し、人間が教示ツール２又はグリッパ１６を操作し、当該仮想的物体又は当該拡張的な物体を把持できる位置及び姿勢の情報を取得するようにしてもよい。このようにすることにより、教師データを取得するための教示用の慣用構築のコストの削減を可能とするとともに、同一の物体の状況に複数人が教示を行うことを容易にすることから、主観による教示の偏りを抑制することができる。
【００８８】
さらに、本実施形態においては、学習モデルにより推定された位置及び姿勢の情報を画像として出力することにより、カメラ１８により撮影されたターゲット物体について自動的に把持可能な位置及び姿勢の情報を推定した後に、ユーザが出力された候補から容易に把持可能である位置及び姿勢の情報を選択することが可能となる。
【００８９】
また、本実施形態においては、ＦＣＮに基づいた学習モデルであるので、高速に演算を行うことが可能であり、特に学習フェーズにおいての時間的なコストを削減することが可能となる。これは、例えば、推定された位置及び姿勢の情報に対して実際に把持可能であったか否かを新たな教師データとする場合などにおいても有効である。
【００９０】
本実施形態に係る把持システム１は、例えば、物流倉庫における商品のピッキングや、工場におけるピッキング等、大量及びまたは多品種の物体をピッキングする際に用いられてもよい。また、例えば、クリーンルーム内における物体のピッキング等、ユーザが物体に近づくことが困難な場合又はユーザが物体に近づくことが望まれない場合において、遠隔操作をする際に用いられてもよい。さらに、ロボット１４が道具を使用して作業をする場合において、当該道具を把持するために応用されてもよい。
【００９１】
なお、上述した実施形態の説明において、垂直、水平、鉛直等の方向を示す単語を用いたが、これらは把持システム１内において相対的に決定できる方向であればどのように定義してもよい。例えば、カメラ１８を把持システム１内において重力に対して水平な方向を撮影するようにしてもよく、この場合、一例として、ｘ軸をカメラ１８の撮影面に平行であり且つ重力方向に対して水平な軸と定義し、ｙ軸を撮影面に平行であり且つｘ軸と垂直な軸と定義し、ｚ軸をカメラ１８の撮影面と垂直な軸と定義してもよい。さらには、把持システム１内における３次元の位置が一意的に決定できる一次独立な軸であれば、各軸は、厳密な意味で直交している必要も無い。
【００９２】
座標系についても、実装するシチュエーションに合わせて直交座標系に限られず、他の座標系、例えば、円柱座標系等を用いることもできる。姿勢についても同様であり、把持システム１内において一意的に決定できるものであれば、上述したＲ，Ｐ，Ｙには限られず、例えば、オイラー角、又は、偏角や方向余弦を用いて表されるものであってもよい。このように、３次元位置及び３次元姿勢により一意的に教示ツール２及びグリッパ１６の位置及び姿勢が決定できるものであればどのようなものでもよく、システムの設計において使用しやすいものを選択することが可能である。
【００９３】
上記の全ての記載において、把持システム１の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりＣＰＵ等が実施をしてもよい。ソフトウェアで構成される場合には、把持システム１及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、ＦＰＧＡ（Field-Programmable Gate Array）等の回路に実装され、ハードウェアが実行するものであってもよい。学習モデルの生成や、学習モデルに入力をした後の処理は、例えば、ＧＰＵ等のアクセラレータを使用して行ってもよい。
【００９４】
また、本実施形態に係る学習モデルは、人工知能ソフトウェアの一部であるプログラムモジュールとして利用することが可能である。すなわち、コンピュータ１０のＣＰＵが学習モデル格納部１１２に格納されているモデルに基づいて、畳み込みネットワークの入力層に入力されたカメラ１８により撮影された画像データに対して演算を行い、当該畳み込みネットワークの出力層から結果を出力するように動作する。
【００９５】
上記の全ての記載に基づいて、本発明の追加、効果又は種々の変形を当業者であれば想到できるかもしれないが、本発明の態様は、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。
【符号の説明】
【００９６】
１：把持システム
１０：コンピュータ
１０２：教師データ生成部
１０４：学習部
１０６：推定部
１４：ロボット
１６：グリッパ
１８：カメラ
２：教示ツール
【図１】
2018205929.tif 000005
【図２】
2018205929.tif 000006
【図３】
2018205929.tif 000007
【図４】
2018205929.tif 000008
【図５】
2018205929.tif 000009
【図６】
2018205929.tif 000010
【図７】
2018205929.tif 000011