(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022145915
(43)【公開日】2022-10-04
(54)【発明の名称】推論方法、推論プログラム、推論装置、学習方法、学習プログラム、学習装置およびモデル生成方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20220926BHJP
【FI】
B25J13/08 A
【審査請求】有
【請求項の数】31
【出願形態】OL
(21)【出願番号】P 2022128174
(22)【出願日】2022-08-10
(62)【分割の表示】P 2020120352の分割
【原出願日】2015-11-30
(31)【優先権主張番号】P 2015152067
(32)【優先日】2015-07-31
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(71)【出願人】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】山▲崎▼ 岳
(72)【発明者】
【氏名】尾山 拓未
(72)【発明者】
【氏名】陶山 峻
(72)【発明者】
【氏名】中山 一隆
(72)【発明者】
【氏名】組谷 英俊
(72)【発明者】
【氏名】中川 浩
(72)【発明者】
【氏名】岡野原 大輔
(72)【発明者】
【氏名】奥田 遼介
(72)【発明者】
【氏名】松元 叡一
(72)【発明者】
【氏名】河合 圭悟
(57)【要約】
【課題】ワークを取り出すときのロボットの最適な動作が人間の介在無しに選択される機械学習装置,ロボットシステムおよび機械学習方法の提供を図る。
【解決手段】バラ積みされた状態を含む乱雑に置かれたワーク12毎の少なくとも三次元マップを計測する三次元計測器15の出力データを観測する状態量観測部21と,ハンド部13によってワークを取り出すロボット14の取り出し動作結果を取得する動作結果取得部26と,状態量観測部および動作結果取得部の出力を受け取ってワークの取り出し動作を学習する学習部22と,を備え,状態量観測部は,さらに,三次元計測器の出力に基づいてワーク毎の三次元位置を計算する座標計算部の出力データも観測し,学習部は,動作結果取得部の出力であるワーク取り出し成否の判定結果に基づいて報酬を計算する報酬計算部23と,ワーク取り出し動作の価値を定める価値関数を有し報酬に応じて価値関数を更新する価値関数更新部24と,を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク(12)からハンド部(13)によって前記ワーク(12)を取り出すロボット(14)の動作を学習する機械学習装置であって、
前記ワーク(12)毎の少なくとも三次元マップを計測する三次元計測器(15)の出力データを観測する状態量観測部(21,31)と、
前記ハンド部(13)によって前記ワーク(12)を取り出す前記ロボット(14)の取り出し動作の結果を取得する動作結果取得部(26,36)と、
前記状態量観測部(21,31)からの出力および前記動作結果取得部(26,36)からの出力を受け取って、前記ワーク(12)の前記取り出し動作を学習する学習部(22,32)と、を備え、
前記状態量観測部(21,31)は、さらに、前記三次元計測器(15)の出力に基づいて、前記ワーク(12)毎の三次元位置を計算する座標計算部(19)の出力データも観測し、
前記学習部(22)は、
前記動作結果取得部(26)の出力である前記ワークの取り出しの成否の判定結果に基づいて報酬を計算する報酬計算部(23)と、
前記ワーク(12)の前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する価値関数更新部(24)と、を備える、
ことを特徴とする機械学習装置。
【請求項2】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク(12)からハンド部(13)によって前記ワーク(12)を取り出すロボット(14)の動作を学習する機械学習装置であって、
前記ワーク(12)毎の少なくとも三次元マップを計測する三次元計測器(15)の出力データを観測する状態量観測部(21,31)と、
前記ハンド部(13)によって前記ワーク(12)を取り出す前記ロボット(14)の取り出し動作の結果を取得する動作結果取得部(26,36)と、
前記状態量観測部(21,31)からの出力および前記動作結果取得部(26,36)からの出力を受け取って前記ワーク(12)の前記取り出し動作を学習する学習部(22,32)と、を備え、
前記状態量観測部(21,31)は、さらに、前記三次元計測器(15)の出力に基づいて、前記ワーク(12)毎の三次元位置を計算する座標計算部(19)の出力データも観測し、
前記学習部(32)は、前記ワーク(12)の前記取り出し動作を学習する学習モデルを有し、
前記動作結果取得部(26)の出力である前記ワークの取り出しの成否の判定結果、および、前記学習モデルに基づいて誤差を計算する誤差計算部(33)と、
前記誤差に応じて前記学習モデルを更新する学習モデル更新部(34)と、を備える、
ことを特徴とする機械学習装置。
【請求項3】
さらに、
前記学習部(22,32)からの出力を参照して、前記ワーク(12)の取り出し動作を前記ロボット(14)に指令する指令データを決定する意思決定部(25,35)を備える、
ことを特徴とする請求項1または請求項2に記載の機械学習装置。
【請求項4】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク(12)からハンド部(13)によって前記ワーク(12)を取り出すロボット(14)の動作を学習する機械学習装置であって、
前記ワーク(12)毎の少なくとも三次元マップを計測する三次元計測器(15)の出力データ、および、前記三次元計測器(15)の計測パラメータを観測する状態量観測部(21,31)と、
前記ハンド部(13)によって前記ワーク(12)を取り出す前記ロボット(14)の取り出し動作の結果を取得する動作結果取得部(26,36)と、
前記状態量観測部(21,31)からの出力および前記動作結果取得部(26,36)からの出力を受け取って、前記ワーク(12)の前記取り出し動作を学習する学習部(22,32)と、を備え、
前記状態量観測部(21,31)は、さらに、前記三次元計測器(15)の出力に基づいて、前記ワーク(12)毎の三次元位置を計算する座標計算部(19)の出力データも観測し、
前記学習部(22)は、
前記動作結果取得部(26)の出力である前記ワークの取り出しの成否の判定結果に基づいて報酬を計算する報酬計算部(23)と、
前記ワーク(12)の前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する価値関数更新部(24)と、を備える、
ことを特徴とする機械学習装置。
【請求項5】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク(12)からハンド部(13)によって前記ワーク(12)を取り出すロボット(14)の動作を学習する機械学習装置であって、
前記ワーク(12)毎の少なくとも三次元マップを計測する三次元計測器(15)の出力データ、および、前記三次元計測器(15)の計測パラメータを観測する状態量観測部(21,31)と、
前記ハンド部(13)によって前記ワーク(12)を取り出す前記ロボット(14)の取り出し動作の結果を取得する動作結果取得部(26,36)と、
前記状態量観測部(21,31)からの出力および前記動作結果取得部(26,36)からの出力を受け取って、前記ワーク(12)の前記取り出し動作を学習する学習部(22,32)と、を備え、
前記状態量観測部(21,31)は、さらに、前記三次元計測器(15)の出力に基づいて、前記ワーク(12)毎の三次元位置を計算する座標計算部(19)の出力データも観測し、
前記学習部(32)は、前記ワーク(12)の前記取り出し動作を学習する学習モデルを有し、
前記動作結果取得部(26)の出力である前記ワークの取り出しの成否の判定結果、および、前記学習モデルに基づいて誤差を計算する誤差計算部(33)と、
前記誤差に応じて前記学習モデルを更新する学習モデル更新部(34)と、を備える、
ことを特徴とする機械学習装置。
【請求項6】
さらに、
前記学習部(22,32)からの出力を参照して、前記ワーク(12)の取り出し動作を前記ロボット(14)に指令する指令データ並びに前記三次元計測器(15)の前記計測パラメータを決定する意思決定部(25,35)を備える、
ことを特徴とする請求項4または請求項5に記載の機械学習装置。
【請求項7】
前記座標計算部(19)は、さらに、
前記ワーク(12)毎の姿勢を計算し、計算された前記ワーク(12)毎の三次元位置および姿勢のデータを出力する、
ことを特徴とする請求項1~請求項6のいずれか1項に記載の機械学習装置。
【請求項8】
前記動作結果取得部(26,36)は、前記三次元計測器(15)の出力データを利用する、
ことを特徴とする請求項1~請求項7のいずれか1項に記載の機械学習装置。
【請求項9】
さらに、
前記三次元計測器(15)の出力データを、前記状態量観測部(21,31)への入力前に処理する前処理部(50)を備え、
前記状態量観測部(21,31)は、前処理部(50)の出力データを受け取る、
ことを特徴とする請求項1~請求項8のいずれか1項に記載の機械学習装置。
【請求項10】
前記前処理部(50)は、前記三次元計測器(15)から出力される三次元位置データ(x,y,z)および姿勢データ(w,p,r)における前記ワーク(12)毎の方向および高さを一定に揃える、
ことを特徴とする請求項9に記載の機械学習装置。
【請求項11】
前記動作結果取得部(26,36)は、
前記ワーク(12)の取り出しの成否、前記ワーク(12)の破損状態、並びに、前記ハンド部(13)により前記ワーク(12)を把持して運搬するのに要した時間およびエネルギー、或いは、前記時間および前記エネルギーを評価したもののうちの少なくとも1つを取得する、
ことを特徴とする請求項1~請求項10のいずれか1項に記載の機械学習装置。
【請求項12】
前記機械学習装置は、
ニューラルネットワークを有する、請求項1~請求項11のいずれか1項に記載の機械学習装置。
【請求項13】
請求項1~請求項12のいずれか1項に記載の機械学習装置(20,30)を備えたロボットシステム(10,10’)であって、
前記ロボット(14)と、
前記三次元計測器(15)と、
前記ロボット(14)および前記三次元計測器(15)をそれぞれ制御する制御装置(16)と、を備える、
ことを特徴とするロボットシステム。
【請求項14】
前記ロボットシステム(10,10’)は、複数の前記ロボット(14)を備え、
前記機械学習装置(20,30)は、前記ロボット(14)毎にそれぞれ設けられ、
複数の前記ロボット(14)に設けられた複数の前記機械学習装置(20)は、通信媒体を介して相互にデータを共有または交換するようになっている、
ことを特徴とする請求項13に記載のロボットシステム。
【請求項15】
前記機械学習装置(20,30)は、クラウドサーバ上に存在する、
ことを特徴とする請求項14に記載のロボットシステム。
【請求項16】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク(12)からハンド部(13)によって前記ワーク(12)を取り出すロボット(14)の動作を学習する機械学習方法であって、
前記ワーク(12)毎の少なくとも三次元マップを計測する三次元計測器(15)の出力データを観測し、
前記ハンド部(13)によって前記ワーク(12)を取り出す前記ロボット(14)の取り出し動作の結果を取得し、
観測された前記ワーク(12)毎の少なくとも三次元マップおよび取得された前記ロボット(14)の取り出し動作の結果を受け取って前記ワーク(12)の前記取り出し動作を学習し、
前記三次元計測器(15)の出力データの観測は、さらに、前記三次元計測器(15)の出力に基づいて、前記ワーク(12)毎の三次元位置を計算した三次元位置データも観測し、
前記取り出し動作の学習は、
前記取得された前記ロボット(14)の取り出し動作の結果である前記ワークの取り出しの成否の判定結果に基づいて報酬を計算し、
前記ワーク(12)の前記取り出し動作の価値を定める価値関数を、前記報酬に応じて更新する、
ことを特徴とする機械学習方法。
【請求項17】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク(12)からハンド部(13)によって前記ワーク(12)を取り出すロボット(14)の動作を学習する機械学習方法であって、
前記ワーク(12)毎の少なくとも三次元マップを計測する三次元計測器(15)の出力データを観測し、
前記ハンド部(13)によって前記ワーク(12)を取り出す前記ロボット(14)の取り出し動作の結果を取得し、
観測された前記ワーク(12)毎の少なくとも三次元マップおよび取得された前記ロボット(14)の取り出し動作の結果を受け取って、前記ワーク(12)の前記取り出し動作を学習し、
前記三次元計測器(15)の出力データの観測は、さらに、前記三次元計測器(15)の出力に基づいて、前記ワーク(12)毎の三次元位置を計算した三次元位置データも観測し、
前記取り出し動作の学習は、
前記取得された前記ロボット(14)の取り出し動作の結果、および、前記ワーク(12)の前記取り出し動作を学習する学習モデルに基づいて誤差を計算し、
前記誤差に応じて前記学習モデルを更新する、
ことを特徴とする機械学習方法。
【請求項18】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク(12)からハンド部(13)によって前記ワーク(12)を取り出すロボット(14)の動作を学習する機械学習方法であって、
前記ワーク(12)毎の少なくとも三次元マップを計測する三次元計測器(15)の出力データ、および、前記三次元計測器(15)の計測パラメータを観測し、
前記ハンド部(13)によって前記ワーク(12)を取り出す前記ロボット(14)の取り出し動作の結果を取得し、
観測された前記ワーク(12)毎の少なくとも三次元マップおよび取得された前記ロボット(14)の取り出し動作の結果を受け取って、前記ワーク(12)の前記取り出し動作を学習し、
前記三次元計測器(15)の出力データの観測は、さらに、前記三次元計測器(15)の出力に基づいて、前記ワーク(12)毎の三次元位置を計算した三次元位置データも観測し、
前記取り出し動作の学習は、
前記取得された前記ロボット(14)の取り出し動作の結果である前記ワークの取り出しの成否の判定結果に基づいて報酬を計算し、
前記ワーク(12)の前記取り出し動作の価値を定める価値関数を、前記報酬に応じて更新する、
ことを特徴とする機械学習方法。
【請求項19】
バラ積みされた状態を含む、乱雑に置かれた複数のワーク(12)からハンド部(13)によって前記ワーク(12)を取り出すロボット(14)の動作を学習する機械学習方法であって、
前記ワーク(12)毎の少なくとも三次元マップを計測する三次元計測器(15)の出力データ、および、前記三次元計測器(15)の計測パラメータを観測し、
前記ハンド部(13)によって前記ワーク(12)を取り出す前記ロボット(14)の取り出し動作の結果を取得し、
観測された前記ワーク(12)毎の少なくとも三次元マップおよび取得された前記ロボット(14)の取り出し動作の結果を受け取って、前記ワーク(12)の前記取り出し動作を学習し、
前記三次元計測器(15)の出力データの観測は、さらに、前記三次元計測器(15)の出力に基づいて、前記ワーク(12)毎の三次元位置を計算した三次元位置データも観測し、
前記取り出し動作の学習は、
前記取得された前記ロボット(14)の取り出し動作の結果、および、前記ワーク(12)の前記取り出し動作を学習する学習モデルに基づいて誤差を計算し、
前記誤差に応じて前記学習モデルを更新する、
ことを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バラ積みされた状態を含む、乱雑に置かれたワークの取り出し動作を学習する機械学習装置、ロボットシステムおよび機械学習方法に関する。
【背景技術】
【0002】
従前より、例えば、かご状の箱にバラ積みされたワークを、ロボットのハンド部により把持して運搬するロボットシステムが知られている(例えば、特許文献1、2参照)。このようなロボットシステムにおいては、例えば、かご状の箱の上方に設置された三次元計測器を用いて複数のワークの位置情報を取得し、その位置情報に基づいてワークを1つずつロボットのハンド部によって取り出している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第5642738号公報
【特許文献2】特許第5670397号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来のロボットシステムにおいては、例えば、三次元計測器により計測された複数のワークの距離画像から、取り出すワークをどのように抽出するのか、並びに、どの位置のワークを取り出すのかを事前に設定しておく必要がある。また、ワークを取り出すとき、ロボットのハンド部をどのように動作させるのかといったことも事前にプログラミングしておく必要がある。具体的に、例えば、人間がティーチングペンダントを用いて、ロボットにワークの取り出し動作を教示するといったことが必要になる。
【0005】
そのため、複数のワークの距離画像から、取り出すワークを抽出する設定が適切でなかったり、ロボットの動作プログラムが適切に作成されないと、ロボットがワークを取り出して運搬する際の成功率が低下する。また、その成功率を高めるには、人間が試行錯誤を重ねてロボットの最適な動作を模索しながら、ワークの検出設定とロボットの動作プログラムとを改良していく必要がある。
【0006】
そこで、本発明の目的は、上述したような実情に鑑み、バラ積みされた状態を含む、乱雑に置かれたワークを取り出すときのロボットの最適な動作を人間の介在無しに学習できる機械学習装置、ロボットシステムおよび機械学習方法を提供することにある。
【課題を解決するための手段】
【0007】
本発明に係る第1実施形態の第一構成例によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、前記ワーク毎の少なくとも三次元マップを計測する三次元計測器の出力データを観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取って、前記ワークの前記取り出し動作を学習する学習部と、を備え、前記状態量観測部は、さらに、前記三次元計測器の出力に基づいて、前記ワーク毎の三次元位置を計算する座標計算部の出力データも観測し、前記学習部は、前記動作結果取得部の出力である前記ワークの取り出しの成否の判定結果に基づいて報酬を計算する報酬計算部と、前記ワークの前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する価値関数更新部と、を備える機械学習装置が提供される。本発明に係る第1実施形態の第二構成例によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、前記ワーク毎の少なくとも三次元マップを計測する三次元計測器の出力データを観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取って、前記ワークの前記取り出し動作を学習する学習部と、を備え、前記状態量観測部は、さらに、前記三次元計測器の出力に基づいて、前記ワーク毎の三次元位置を計算する座標計算部の出力データも観測し、前記学習部は、前記ワークの前記取り出し動作を学習する学習モデルを有し、前記動作結果取得部の出力である前記ワークの取り出しの成否の判定結果、および、前記学習モデルに基づいて誤差を計算する誤差計算部と、前記誤差に応じて前記学習モデルを更新する学習モデル更新部と、を備える機械学習装置が提供される。前記機械学習装置は、さらに、前記学習部からの出力を参照して、前記ワークの取り出し動作を前記ロボットに指令する指令データを決定する意思決定部を備えるのが好ましい。
【0008】
本発明に係る第2実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、前記ワーク毎の三次元マップを計測する三次元計測器の出力データを含む前記ロボットの状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記三次元計測器の計測パラメータを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する学習部と、を備える機械学習装置が提供される。前記機械学習装置は、さらに、前記学習部が学習した前記操作量を参照して、前記三次元計測器の前記計測パラメータを決定する意思決定部を備えるのが好ましい。
【0009】
前記状態量観測部は、さらに、前記三次元計測器の出力に基づいて、前記ワーク毎の三次元位置を計算する座標計算部の出力データを含む前記ロボットの状態量も観測することもできる。前記座標計算部は、さらに、前記ワーク毎の姿勢を計算し、計算された前記ワーク毎の三次元位置および姿勢のデータを出力してもよい。前記動作結果取得部は、前記三次元計測器の出力データを利用することができる。前記機械学習装置は、さらに、前記三次元計測器の出力データを、前記状態量観測部への入力前に処理する前処理部を備え、前記状態量観測部は、前処理部の出力データを前記ロボットの状態量として受け取るのが好ましい。前記前処理部は、前記三次元計測器の出力データにおける前記ワーク毎の方向および高さを一定に揃えることができる。前記動作結果取得部は、前記ワークの取り出しの成否、前記ワークの破損状態、および、取り出した前記ワークを後工程に渡すときの達成度のうちの少なくとも1つを取得することができる。
【0010】
前記学習部は、前記動作結果取得部の出力に基づいて報酬を計算する報酬計算部と、前記ワークの前記取り出し動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する価値関数更新部と、を備えることができる。前記学習部は、前記ワークの前記取り出し動作を学習する学習モデルを有し、前記動作結果取得部の出力、および、前記学習モデルの出力に基づいて誤差を計算する誤差計算部と、前記誤差に応じて前記学習モデルを更新する学習モデル更新部と、を備えることもできる。前記機械学習装置は、ニューラルネットワークを有するのが好ましい。
【0011】
本発明に係る第3実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、前記ワーク毎の三次元マップを計測する三次元計測器の出力データを含む前記ロボットの状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記ワークの前記取り出し動作を前記ロボットに指令する指令データを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する学習部と、を備える機械学習装置を備えたロボットシステムであって、前記ロボットと、前記三次元計測器と、前記ロボットおよび前記三次元計測器をそれぞれ制御する制御装置と、を備えるロボットシステムが提供される。
【0012】
本発明に係る第4実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習装置であって、前記ワーク毎の三次元マップを計測する三次元計測器の出力データを含む前記ロボットの状態量を観測する状態量観測部と、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得する動作結果取得部と、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記三次元計測器の計測パラメータを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する学習部と、を備える機械学習装置を備えたロボットシステムであって、前記ロボットと、前記三次元計測器と、前記ロボットおよび前記三次元計測器をそれぞれ制御する制御装置と、を備えるロボットシステムが提供される。
【0013】
前記ロボットシステムは、複数の前記ロボットを備え、前記機械学習装置は、前記ロボット毎にそれぞれ設けられ、複数の前記ロボットに設けられた複数の前記機械学習装置は、通信媒体を介して相互にデータを共有または交換するのが好ましい。前記機械学習装置は、クラウドサーバ上に存在してもよい。
【0014】
本発明に係る第5実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワークからハンド部によって前記ワークを取り出すロボットの動作を学習する機械学習方法であって、前記ワーク毎の三次元マップを計測する三次元計測器の出力データを含む前記ロボットの状態量を観測し、前記ハンド部によって前記ワークを取り出す前記ロボットの取り出し動作の結果を取得し、前記状態量観測部からの出力および前記動作結果取得部からの出力を受け取り、前記ワークの前記取り出し動作を前記ロボットに指令する指令データを含む操作量を、前記ロボットの前記状態量および前記取り出し動作の結果に関連付けて学習する機械学習方法が提供される。
【発明の効果】
【0015】
本発明に係る機械学習装置、ロボットシステムおよび機械学習方法によれば、バラ積みされた状態を含む、乱雑に置かれたワークを取り出すときのロボットの最適な動作を人間の介在無しに学習できるという効果を奏する。
【図面の簡単な説明】
【0016】
【
図1】
図1は、本発明の一実施形態のロボットシステムの概念的な構成を示すブロック図である。
【
図2】
図2は、ニューロンのモデルを模式的に示す図である。
【
図3】
図3は、
図2に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。
【
図4】
図4は、
図1に示す機械学習装置の動作の一例を示すフローチャートである。
【
図5】
図5は、本発明の他の実施形態のロボットシステムの概念的な構成を示すブロック図である。
【
図6】
図6は、
図5に示すロボットシステムにおける前処理部の処理の一例を説明するための図である。
【
図7】
図7は、
図1に示すロボットシステムの変形例を示すブロック図である。
【発明を実施するための形態】
【0017】
以下、本発明に係る機械学習装置、ロボットシステムおよび機械学習方法の実施例を、添付図面を参照して詳述する。ここで、各図面において、同じ部材には同じ参照符号が付されている。また、異なる図面において同じ参照符号が付されたものは同じ機能を有する構成要素であることを意味するものとする。なお、理解を容易にするために、これらの図面は縮尺を適宜変更している。
【0018】
図1は、本発明の一実施形態のロボットシステムの概念的な構成を示すブロック図である。本実施形態のロボットシステム10は、かご状の箱11にバラ積みされたワーク12を把持するハンド部13が取り付けられたロボット14と、ワーク12の表面の三次元マップを計測する三次元計測器15と、ロボット14および三次元計測器15をそれぞれ制御する制御装置16と、座標計算部19と、機械学習装置20と、を備える。
【0019】
ここで、機械学習装置20は、状態量観測部21と、動作結果取得部26と、学習部22と、意思決定部25と、を備える。なお、機械学習装置20は、後に詳述するように、ワーク12の取り出し動作をロボット14に指令する指令データ、或いは、三次元計測器15の計測パラメータといった操作量を学習して出力する。
【0020】
ロボット14は、例えば、6軸多関節型ロボットであり、ロボット14およびハンド部13のそれぞれの駆動軸は、制御装置16によって制御される。また、ロボット14は、所定の位置に設置された箱11からワーク12を1つずつ取り出して指定の場所、例えば、コンベヤまたは作業台(図示しない)まで順次移動させるために使用される。
【0021】
ところで、バラ積みされたワーク12を箱11から取り出す際、ハンド部13またはワーク12が箱11の壁と衝突もしくは接触する場合がある。あるいは、ハンド部13またはワーク12が別のワーク12に引っかかったりする場合もある。そのような場合にロボット14に掛かる過負荷を直ちに回避できるように、ハンド部13に作用する力を検出する機能が必要となる。そのため、ロボット14のアーム部の先端とハンド部13との間には、6軸の力センサ17が設けられている。また、本実施形態のロボットシステム10は、ロボット14の各関節部の駆動軸を駆動するモータ(図示しない)の電流値をもとにハンド部13に作用する力を推定する機能も備えている。
【0022】
さらに、力センサ17は、ハンド部13に作用する力を検出できるため、ハンド部13がワーク12を実際に把持しているか否かも判断することができる。つまり、ハンド部13がワーク12を把持した場合、ハンド部13にワーク12の重さが作用するため、ワーク12の取り出し動作を実施した後、力センサ17の検出値が所定の閾値を超えていれば、ハンド部13がワーク12を把持していると判断することができる。なお、ハンド部13がワーク12を把持しているか否かの判断については、例えば、三次元計測器15に使用されるカメラの撮影データや、ハンド部13に取り付けられた図示しない光電センサ等の出力により判断することもできる。また、後述の吸着式ハンドの圧力計のデータをもとに判断してもよい。
【0023】
ここで、ハンド部13は、ワーク12を保持可能であれば様々な形態を有していてもよい。例えば、ハンド部13は、2本または複数の爪部を開閉することによってワーク12を把持する形態、あるいは、ワーク12に対して吸引力を発生する電磁石または負圧発生装置を備えたものであってもよい。すなわち、
図1において、ハンド部13は、2本の爪部によりワークを把持するものとして描かれているが、これ限定されないのはいうまでもない。
【0024】
三次元計測器15は、複数のワーク12を測定するために、支持部18によって複数のワーク12の上方の所定の位置に設けられている。三次元計測器15としては、例えば、2台のカメラ(図示しない)から撮影されたワーク12の画像データを画像処理することによって、三次元位置情報を取得する三次元視覚センサを使用することができる。具体的には、三角計測法、光切断法、Time-of-flight法、Depth from Defocus法、または、これらを併用した方法などを適用することにより、三次元マップ(バラ積みされた複数のワーク12の表面の位置)が測定される。
【0025】
座標計算部19は、三次元計測器15で得られた三次元マップを入力として、バラ積みされた複数のワーク12の表面の位置を計算(測定)する。すなわち、三次元計測器15の出力を利用して、それぞれのワーク12毎の三次元位置データ(x,y,z)、あるいは、三次元位置データ(x,y,z)および姿勢データ(w,p,r)を得ることができる。ここで、状態量観測部21は、三次元計測器15からの三次元マップおよび座標計算部19からの位置データ(姿勢データ)の両方を受け取ってロボット14の状態量を観測しているが、例えば、三次元計測器15からの三次元マップだけを受け取ってロボット14の状態量を観測することもできる。また、後に
図5を参照して説明するのと同様に、前処理部50を追加し、この前処理部50により、状態量観測部21への入力前に、三次元計測器15からの三次元マップを処理(前処理)して状態量観測部21に入力することも可能である。
【0026】
なお、ロボット14と三次元計測器15との相関位置は、予めキャリブレーションにより決定されているものとする。また、本願発明の三次元計測器15には、三次元視覚センサに代えて、レーザ距離測定器を使用することもできる。つまり、三次元計測器15が設置された位置から各ワーク12の表面までの距離をレーザ走査によって計測することや、単眼カメラ、触覚センサなどの各種センサを用いることにより、バラ積みされた複数のワーク12の三次元位置データおよび姿勢(x,y,z,w,p,r)を取得してもよい。
【0027】
すなわち、本発明においては、例えば、それぞれのワーク12のデータ(x,y,z,w,p,r)を取得できれば、どのような三次元計測法を適用した三次元計測器15でも適用することができる。また、三次元計測器15が設置される態様も特に限定されるものではなく、例えば、床や壁などに固定されていてもよいし、ロボット14のアーム部等に取り付けられていてもよい。
【0028】
三次元計測器15は、制御装置16からの指令により、箱11にバラ積みされた複数のワーク12の三次元マップを取得し、座標計算部19は、その三次元マップをもとに複数のワーク12の三次元位置(姿勢)のデータを取得(計算)し、そのデータを、制御装置16と後述する機械学習装置20の状態量観測部21および動作結果取得部26とに出力するようになっている。特に、座標計算部19においては、例えば、撮影された複数のワーク12の画像データを基に、或るワーク12と別のワーク12との境界や、ワーク12と箱11との境界が推定され、ワーク12毎の三次元位置のデータが取得される。
【0029】
ワーク12毎の三次元位置のデータとは、例えば、バラ積みされた複数のワーク12の表面上の複数の点の位置から各々のワーク12の存在位置や保持可能な位置を推定することによって取得されたデータを指す。勿論、ワーク12毎の三次元位置のデータには、ワーク12の姿勢のデータが含まれてもよい。
【0030】
さらに、座標計算部19におけるワーク12毎の三次元位置および姿勢データの取得には、機械学習の手法を使用することも含まれる。例えば、後述する教師あり学習等の手法を用いた入力画像もしくはレーザ距離測定器などからの物体認識や角度推定などを適用することも可能である。
【0031】
そして、ワーク12毎の三次元位置のデータが三次元計測器15から座標計算部19を介して制御装置16に入力されると、制御装置16は、或るワーク12を箱11から取り出すハンド部13の動作を制御する。このとき、後述する機械学習装置20により得られたハンド部13の最適な位置,姿勢および取り出し方向に対応する指令値(操作量)に基づいて、ハンド部13やロボット14の各軸のモータ(図示しない)が駆動される。
【0032】
また、機械学習装置20は、三次元計測器15に使用されるカメラの撮影条件の変数(三次元計測器15の計測パラメータ:例えば、露出計を用いて撮影時に調整される露出時間、被撮影対象を照明する照明系の照度など)を学習し、制御装置16を介して、学習した計測パラメータ操作量に基づいて、三次元計測器15を制御することもできる。ここで、三次元計測器15が、計測した複数のワーク12の位置から各々のワーク12の存在位置・姿勢や保持可能な位置・姿勢を推定するのに使用する位置・姿勢推定条件の変数は、上述の三次元計測器15の出力データに含まれてもよい。
【0033】
さらに、三次元計測器15からの出力データは、
図5を参照して後に詳述する前処理部50等により、事前に処理し、その処理されたデータ(画像データ)を状態量観測部21に与えるようにすることも可能なのは前述した通りである。なお、動作結果取得部26は、例えば、三次元計測器15からの出力データ(座標計算部19の出力データ)から、ロボット14のハンド部13によりワーク12を取り出した結果を取得することができるが、それ以外に、例えば、取り出したワーク12を後工程に渡したときの達成度、並びに、取り出したワーク12の破損等の状態変化がないかどうかといった動作結果を、他の手段(例えば、後工程に設けられたカメラやセンサ等)を介して取得することもできるのはいうまでもない。以上において、状態量観測部21および動作結果取得部26は、機能的なブロックであり、1つのブロックにより両者の機能を達成するものとして捉えることもできるのは勿論である。
【0034】
次に、
図1に示される機械学習装置20について、詳述する。機械学習装置20は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習(機械学習)を行う機能を有する。機械学習の手法は様々であるが、大別すれば、例えば、「教師あり学習」、「教師なし学習」および「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習(ディープラーニング:Deep Learning)」と呼ばれる手法がある。なお、これらの機械学習(機械学習装置20)は、汎用の計算機もしくはプロセッサを用いてもよいが、GPGPU(General-Purpose computing on Graphics Processing Units)や大規模PCクラスター等を適用すると、より高速に処理することが可能である。
【0035】
まず、教師あり学習とは、ある入力と結果(ラベル)のデータの組を大量に機械学習装置20に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、すなわちその関係性を帰納的に獲得するものである。この教師あり学習を本実施形態に適用する場合、例えば、センサ入力からワーク位置を推定する部分、あるいはワーク候補に対してその取得成功確率を推定する部分などに用いることができる。例えば、後述のニューラルネットワークなどのアルゴリズムを用いて実現することが可能である。
【0036】
また、教師なし学習とは、入力データのみを大量に学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮・分類・整形などを行う装置で学習する手法である。例えば、それらのデータセットにある特徴を、似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適化するような出力の割り当てを行うことにより、出力の予測を実現することができる。
【0037】
なお、教師なし学習と教師あり学習との中間的な問題設定として、半教師あり学習と呼ばれるものもあり、これは、例えば、一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合が対応する。本実施形態においては、実際にロボットを動かさなくても取得することができるデータ(画像データやシミュレーションのデータ等)を教師なし学習で利用することにより、学習を効率的に行うことが可能となる。
【0038】
次に、強化学習について、説明する。まず、強化学習の問題設定として、次のように考える。
・ロボットは、環境の状態を観測し、行動を決定する。
・環境は、何らかの規則に従って変化し、さらに、自分の行動が、環境に変化を与えることもある。
・行動するたびに、報酬信号が帰ってくる。
・最大化したいのは、将来にわたっての(割引)報酬の合計である。
・行動が引き起こす結果を全く知らない、または、不完全にしか知らない状態から学習はスタートする。すなわち、ロボットは、実際に行動して初めて、その結果をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように、事前学習(前述の教師あり学習や、逆強化学習といった手法)した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【0039】
ここで、強化学習とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶものである。このことは、本実施形態において、例えば、ワーク12の山を崩して将来的にワーク12を取り易くする、といった、未来に影響をおよぼすような行動を獲得できることを表している。以下に、例として、Q学習の場合で説明を続けるが、Q学習に限定されるものではない。
【0040】
Q学習は、或る環境状態sの下で、行動aを選択する価値Q(s,a)を学習する方法である。つまり、或る状態sのとき、価値Q(s,a)の最も高い行動aを最適な行動として選択すればよい。しかし、最初は、状態sと行動aとの組合せについて、価値Q(s,a)の正しい値は全く分かっていない。そこで、エージェント(行動主体)は、或る状態sの下で様々な行動aを選択し、その時の行動aに対して、報酬が与えられる。それにより、エージェントは、より良い行動の選択、すなわち、正しい価値Q(s,a)を学習していく。
【0041】
さらに、行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(s,a)=E[Σ(γt)rt]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rtは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動に従って状態変化したときについてとるものとし、それは、分かっていないので、探索しながら学習することになる。このような価値Q(s,a)の更新式は、例えば、次の式(1)により表すことができる。
【0042】
【数1】
上記の式(1)において、s
tは、時刻tにおける環境の状態を表し、a
tは、時刻tにおける行動を表す。行動a
tにより、状態はs
t+1に変化する。r
t+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態s
t+1の下で、その時に分かっている最もQ値の高い行動aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
【0043】
上述した式(1)は、試行atの結果、帰ってきた報酬rt+1を元に、状態stにおける行動atの評価値Q(st,at)を更新する方法を表している。すなわち、状態sにおける行動aの評価値Q(st,at)よりも、報酬rt+1と行動aによる次の状態における最良の行動max aの評価値Q(st+1,max at+1)の合計の方が大きければ、Q(st,at)を大きくし、反対に小さければ、Q(st,at)を小さくすることを示している。つまり、或る状態における或る行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【0044】
ここで、Q(s,a)の計算機上での表現方法は、すべての状態行動ペア(s,a)に対して、その値をテーブルとして保持しておく方法と、Q(s,a)を近似するような関数を用意する方法がある。後者の方法では、前述の式(1)は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことにより、実現することができる。なお、近似関数としては、後述のニューラルネットワークを用いることができる。
【0045】
また、教師あり学習、教師なし学習の学習モデル、あるいは強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。
図2は、ニューロンのモデルを模式的に示す図であり、
図3は、
図2に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。すなわち、ニューラルネットワークは、例えば、
図2に示すようなニューロンのモデルを模した演算装置およびメモリ等で構成される。
【0046】
図2に示されるように、ニューロンは、複数の入力x(
図2では、一例として入力x1~入力x3)に対する出力(結果)yを出力するものである。各入力x(x1,x2,x3)には、この入力xに対応する重みw(w1,w2,w3)が掛けられる。これにより、ニューロンは、次の式(2)により表現される結果yを出力する。なお、入力x、結果yおよび重みwは、すべてベクトルである。また、下記の式(2)において、θは、バイアスであり、f
kは、活性化関数である。
【数2】
【0047】
図3を参照して、
図2に示すニューロンを組み合わせて構成した三層のニューラルネットワークを説明する。
図3に示されるように、ニューラルネットワークの左側から複数の入力x(ここでは、一例として、入力x1~入力x3)が入力され、右側から結果y(ここでは、一例として、結果y1~入力y3)が出力される。具体的に、入力x1,x2, x3は、3つのニューロンN11~N13の各々に対して、対応する重みが掛けられて入力される。これらの入力に掛けられる重みは、まとめてW1と標記されている。
【0048】
ニューロンN11~N13は、それぞれ、z11~z13を出力する。
図3において、これらz11~z13は、まとめて特徴ベクトルZ1と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルZ1は、重みW1と重みW2との間の特徴ベクトルである。z11~z13は、2つのニューロンN21およびN22の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてW2と標記されている。
【0049】
ニューロンN21,N22は、それぞれz21,z22を出力する。
図3において、これらz21,z22は、まとめて特徴ベクトルZ2と標記されている。この特徴ベクトルZ2は、重みW2と重みW3との間の特徴ベクトルである。z21,z22は、3つのニューロンN31~N33の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてW3と標記されている。
【0050】
最後に、ニューロンN31~N33は、それぞれ、結果y1~結果y3を出力する。ニューラルネットワークの動作には、学習モードと価値予測モードとがある。例えば、学習モードにおいて、学習データセットを用いて重みWを学習し、そのパラメータを用いて予測モードにおいて、ロボットの行動判断を行う。なお、便宜上、予測と書いたが、検出・分類・推論など多様なタスクが可能なのはいうまでもない。
【0051】
ここで、予測モードで実際にロボットを動かして得られたデータを即時学習し、次の行動に反映させる(オンライン学習)ことも、予め収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う(バッチ学習)こともできる。あるいは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【0052】
また、重みW1~W3は、誤差逆伝搬法(誤差逆転伝播法:バックプロパゲーション:Backpropagation)により学習可能なものである。なお、誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力xが入力されたときの出力yと真の出力y(教師)との差分を小さくするように、それぞれの重みを調整(学習)する手法である。
【0053】
このようなニューラルネットワークは、三層以上に、さらに層を増やすことも可能である(深層学習と称される)。また、入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することも可能である。
【0054】
そこで、本実施形態の機械学習装置20は、上述のQ学習を実施すべく、
図1に示されるように、状態量観測部21、動作結果取得部26、学習部22、および、意思決定部25を備えている。ただし、本発明に適用される機械学習方法は、Q学習に限定されないのは前述した通りである。すなわち、機械学習装置で用いることが出来る手法である「教師あり学習」、「教師なし学習」、「半教師あり学習」および「強化学習」等といった様々な手法が適用可能である。なお、これらの機械学習(機械学習装置20)は、汎用の計算機もしくはプロセッサを用いてもよいが、GPGPUや大規模PCクラスター等を適用すると、より高速に処理することが可能である。
【0055】
すなわち、本実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワーク12からハンド部13によってワーク12を取り出すロボット14の動作を学習する機械学習装置であって、ワーク12毎の三次元位置(x,y,z)、あるいは三次元位置と姿勢(x,y,z,w,p,r)を計測する三次元計測器15の出力データを含むロボット14の状態量を観測する状態量観測部21と、ハンド部13によってワーク12を取り出すロボット14の取り出し動作の結果を取得する動作結果取得部26と、状態量観測部21からの出力および動作結果取得部26からの出力を受け取り、ワーク12の取り出し動作をロボット14に指令する指令データを含む操作量を、ロボット14の状態量および取り出し動作の結果に関連付けて学習する学習部22と、を備える。
【0056】
なお、状態量観測部21が観測する状態量は、例えば、或るワーク12を箱11から取り出すときのハンド部13の位置,姿勢および取り出し方向をそれぞれ設定する状態変数が含まれてもよい。また、学習される操作量は、例えば、ワーク12を箱11から取り出す際に制御装置16からロボット14やハンド部13の各駆動軸に与えられるトルク、速度、回転位置などの指令値が含まれてもよい。
【0057】
そして、学習部22は、バラ積みされた複数のワーク12のうちの1つを取り出すとき、上記の状態変数をワーク12の取り出し動作の結果(動作結果取得部26の出力)に関連付けて学習する。つまり、制御装置16により三次元計測器15(座標計算部19)の出力データとハンド部13の指令データとをそれぞれ無作為に設定し、あるいは所定のルールに基づいて作為的に設定し、ハンド部13によるワーク12の取り出し動作を実施する。ここで、上記所定のルールとしては、例えば、バラ積みされた複数のワーク12のうち、高さ(z)方向が高いワークから順番に取り出すといったものがある。これにより、或るワークを取り出す行為に対して、三次元計測器15の出力データとハンド部13の指令データが対応する。そして、ワーク12の取り出しの成功と失敗が生じ、そのような成功と失敗が生じる都度、学習部22は、三次元計測器15の出力データとハンド部13の指令データとから構成される状態変数を評価していく。
【0058】
また、学習部22は、ワーク12を取り出すときの三次元計測器15の出力データおよびハンド部13の指令データと、ワーク12の取り出し動作の結果に対する評価とを関連付けて記憶する。なお、失敗例としては、ハンド部13がワーク12を把持できていない場合、あるいは、ワーク12を把持できたとしてもワーク12が箱11の壁と衝突もしくは接触する場合、等がある。また、このようなワーク12の取り出しの成否は、力センサ17の検出値や、三次元計測器による撮影データをもとに判断される。ここで、機械学習装置20は、例えば、制御装置16から出力されるハンド部13の指令データの一部を利用して学習を行うことも可能である。
【0059】
ここで、本実施形態の学習部22は、報酬計算部23および価値関数更新部24を備えることが好ましい。例えば、報酬計算部23は、上記の状態変数に起因するワーク12の取り出しの成否に基づいて報酬、例えば、スコアを計算する。ワーク12の取り出しの成功に対しては報酬が高くなるようにし、ワーク12の取り出しの失敗に対しては報酬が低くなるようにする。また、所定の時間内にワーク12の取り出しに成功した回数に基づいて報酬を計算してもよい。さらに、この報酬を計算するとき、例えば、ハンド部13による把持に成功や、ハンド部13による運搬の成功、ワーク12の置き動作に成功、などといったワーク12の取り出しの各段階に応じて報酬を計算してもよい。
【0060】
そして、価値関数更新部24は、ワーク12の取り出し動作の価値を定める価値関数を有していて、上記の報酬に応じて価値関数を更新する。この価値関数の更新には、上述したような価値Q(s,a)の更新式が使用される。さらに、この更新の際、行動価値テーブルを作成することが好ましい。ここでいう行動価値テーブルとは、ワーク12を取り出した時の三次元計測器15の出力データおよびハンド部13の指令データと、その時のワーク12の取り出し結果に応じて更新された価値関数(すなわち評価値)とを互いに関連付けて記録したものをいう。
【0061】
なお、この行動価値テーブルとして、前述のニューラルネットワークを用いて近似した関数を用いることも可能であり、画像データなどのように状態sの情報量が莫大であるときは特に有効である。また、上記の価値関数は1種類に限定されない。例えば、ハンド部13によるワーク12の把持の成否を評価する価値関数や、ハンド部13によりワーク12を把持して運搬するのに要した時間(サイクルタイム)を評価する価値関数が考えられる。
【0062】
さらに、上記の価値関数として、ワーク取り出し時の箱11とハンド部13またはワーク12との干渉を評価する価値関数を使用してもよい。この価値関数の更新に用いる報酬を計算するため、状態量観測部21は、ハンド部13に作用する力、例えば、力センサ17により検出される値を観測することが好ましい。そして、力センサ17により検出される力の変化量が所定の閾値を超える場合、上記の干渉が発生したと推定できるため、その場合の報酬を例えばマイナスの値とし、価値関数が定める価値が低くなるようにするのが好ましい。
【0063】
また、本実施形態によれば、三次元計測器15の計測パラメータを操作量として学習することも可能である。すなわち、本実施形態によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワーク12からハンド部13によってワーク12を取り出すロボット14の動作を学習する機械学習装置であって、ワーク12毎の三次元位置(x,y,z)、あるいは三次元位置と姿勢(x,y,z,w,p,r)を計測する三次元計測器15の出力データを含むロボット14の状態量を観測する状態量観測部21と、ハンド部13によってワーク12を取り出すロボット14の取り出し動作の結果を取得する動作結果取得部26と、状態量観測部21からの出力および動作結果取得部26からの出力を受け取り、三次元計測器15の計測パラメータを含む操作量を、ロボット14の状態量および取り出し動作の結果に関連付けて学習する学習部22と、を備える。
【0064】
さらに、本実施形態のロボットシステム10においては、ロボット14に取り付けられているハンド部13を別の形態のハンド部13に交換する自動ハンド交換装置(図示しない)が備えられていてもよい。その場合、価値関数更新部24は、形態の異なるハンド部13毎に上記の価値関数を有していて、交換後のハンド部13の価値関数を報酬に応じて更新するものであるとよい。それにより、形態の異なる複数のハンド13毎にハンド部13の最適な動作を学習できるため、価値関数のより高いハンド部13を自動ハンド交換装置に選定させることが可能となる。
【0065】
続いて、意思決定部25は、例えば、上述したように作成した行動価値テーブルを参照して、最も高い評価値に対応する、三次元計測器15の出力データおよびハンド部13の指令データを選択することが好ましい。その後、意思決定部25は、選定したハンド部13や三次元計測器15の最適なデータを制御装置16に出力する。
【0066】
そして、制御装置16は、学習部22が出力するハンド部13や三次元計測器15の最適なデータを用いて、三次元計測器15およびロボット14をそれぞれ制御してワーク12を取り出す。例えば、制御装置16は、学習部22により得られたハンド部13の最適な位置,姿勢および取り出し方向をそれぞれ設定する状態変数に基づいて、ハンド部13やロボット14の各駆動軸を動作させることが好ましい。
【0067】
なお、上述した実施形態のロボットシステム10は、
図1に示されるように1つのロボット14に対して1つの機械学習装置20を備えたものである。しかし、本発明においては、ロボット14および機械学習装置20の各々の数は1つに限定されない。例えば、ロボットシステム10は複数のロボット14を備えていて、1つ以上の機械学習装置20が各々のロボット14に対応して設けられていてもよい。そして、ロボットシステム10は、各ロボット14の機械学習装置20が取得した、三次元計測器15とハンド部13の最適な状態変数を、ネットワークなどの通信媒体によって共有または相互交換するのが好ましい。それにより、或るロボット14の稼働率が別のロボット14の稼働率より低くても、別のロボット14に備わる機械学習装置20が取得した最適な動作結果を或るロボット14の動作に利用することができる。また、複数のロボットでの学習モデルの共有、もしくは三次元計測器15の計測パラメータを含む操作量とロボット14の状態量および取り出し動作の結果を共有することにより、学習に掛かる時間を短縮することができる。
【0068】
さらに、機械学習装置20はロボット14内に在ってもロボット14外に在ってもよい。あるいは、機械学習装置20は、制御装置16内に在ってもよいし、クラウドサーバ(図示しない)に存在してもよい。
【0069】
また、ロボットシステム10が複数のロボット14を備える場合には、或るロボット14がハンド部13により把持したワーク12を運搬する間に、別のロボット14のハンド部にワーク12を取り出す作業を実施させることが可能である。そして、このようなワーク12を取り出すロボット14が切替る間の時間を利用して価値関数更新部24が価値関数を更新することもできる。さらに、機械学習装置20には、複数のハンドモデルの状態変数をもち、ワーク12の取り出し動作中に複数のハンドモデルでの取り出しシミュレーションを行い、その取り出しシミュレーションの結果に応じて、複数のハンドモデルの状態変数を、ワーク12の取り出し動作の結果に関連付けて学習することも可能である。
【0070】
なお、上述の機械学習装置20においては、ワーク12毎の三次元マップのデータを取得した際の三次元計測器15の出力データが、三次元計測器15から状態量観測部21に送信されるようになっている。そのような送信データには、異常なデータが含まれていないとは限らないので、機械学習装置20には、異常データのフィルタリング機能、すなわち三次元計測器15からのデータを状態量観測部21に入力するか否かを選択可能な機能を持たせることができる。それにより、機械学習装置20の学習部22は、三次元計測器15およびロボット14によるハンド部13の最適な動作を効率よく学習できるようになる。
【0071】
さらに、上述した機械学習装置20において、制御装置16には、学習部22からの出力データが入力されているが、その学習部22からの出力データにも、異常なデータが含まれていないとは限られないので、異常データのフィルタリング機能、すなわち、学習部22からのデータを制御装置16に出力するか否かを選択可能な機能を持たせてもよい。それにより、制御装置16は、ハンド部13の最適な動作をより安全にロボット14に実行させることが可能になる。
【0072】
なお、上述の異常データは、次のような手順により検出し得る。すなわち、入力データの確率分布を推定し、確率分布を用いて新規の入力の発生確率を導き、発生確率が一定以下ならば、典型的な挙動から大きく外れる異常なデータと見なす、という手順により異常データを検出できる。
【0073】
次に、本実施形態のロボットシステム10に備わる機械学習装置20の動作の一例を説明する。
図4は、
図1に示す機械学習装置の動作の一例を示すフローチャートである。
図4に示されるように、
図1に示す機械学習装置20において、学習動作(学習処理)が開始すると、三次元計測器15により三次元計測を実施して出力する(
図4のステップS11)。すなわち、ステップS11において、例えば、バラ積みされた状態を含む、乱雑に置かれたワーク12毎の三次元マップ(三次元計測器15の出力データ)を取得して状態量観測部21に出力するとともに、座標計算部19によりワーク12毎の三次元マップを受け取ってワーク12毎の三次元位置(x,y,z)を計算して状態量観測部21,動作結果取得部26および制御装置16に出力する。ここで、座標計算部19は、三次元計測器15の出力からワーク12毎の姿勢(w,p,r)を計算して出力してもよい。
【0074】
なお、
図5を参照して説明するように、三次元計測器15の出力(三次元マップ)は、状態量観測部21へ入力される前に処理する前処理部50を介して状態量観測部21に入力されてもよい。また、
図7を参照して説明するように、三次元計測器15の出力だけが状態量観測部21に入力されてもよく、さらに、三次元計測器15の出力だけが前処理部50を介して状態量観測部21に入力されてもよい。このように、ステップS11における三次元計測の実施および出力は、様々なものを含むことが可能である。
【0075】
具体的に、
図1の場合には、状態量観測部21は、三次元計測器15からのワーク12毎の三次元マップ、ならびに、座標計算部19からのワーク12毎の三次元位置(x,y,z)および姿勢(w,p,r)といった状態量(三次元計測器15の出力データ)を観測する。なお、動作結果取得部26は、三次元計測器15の出力データ(座標計算部19の出力データ)により、ハンド部13によってワーク12を取り出すロボット14の取り出し動作の結果を取得する。なお、動作結果取得部26は、三次元計測器の出力データ以外に、例えば、取り出したワーク12を後工程に渡したときの達成度や取り出したワーク12の破損といった取り出し動作の結果も取得することができる。
【0076】
さらに、例えば、機械学習装置20により、三次元計測器15の出力データをもとに最適な動作を決定し(
図4のステップS12)、また、制御装置16は、ハンド部13(ロボット14)の指令データ(操作量)を出力して、ワーク12の取り出し動作を実施する(
図4のステップS13)。そして、ワークの取り出し結果は、上述した動作結果取得部26により取得される(
図4のステップS14)。
【0077】
次に、動作結果取得部26からの出力により、ワーク12の取り出しの成否を判定し(
図4のステップS15)、ワーク12の取り出しに成功した場合は、プラスの報酬を設定し(
図4のステップS16)、ワーク12の取り出しに失敗した場合は、マイナスの報酬を設定し(
図4のステップS17)、そして、行動価値テーブル(価値関数)を更新する(
図4のステップS18)。
【0078】
ここで、ワーク12の取り出しの成否判定は、例えば、ワーク12の取り出し動作の後の三次元計測器15の出力データに基づいてことができる。また、ワーク12の取り出しの成否判定は、ワーク12の取り出しの成否を評価したものに限定されず、例えば、取り出したワーク12を後工程に渡したときの達成度、取り出したワーク12の破損等の状態変化がないかどうか、あるいは、ハンド部13によりワーク12を把持して運搬するのに要した時間(サイクルタイム)やエネルギー(電力量)などを評価したものであってもよい。
【0079】
なお、ワーク12の取り出しの成否判定に基づいた報酬の値の計算は、報酬計算部23により行われ、また、行動価値テーブルの更新は、価値関数更新部24により行われる。すなわち、学習部22は、ワーク12の取り出しに成功したときは、前述した価値Q(s,a)の更新式における報酬にプラスの報酬を設定し(S16)、また、ワーク12の取り出しに失敗したときは、その更新式における報酬にマイナスの報酬を設定する(S17)。そして、学習部22は、ワーク12の取り出しの都度、前述した行動価値テーブルの更新を行う(S18)。以上のステップS11~S18を繰返すことにより、学習部22は、行動価値テーブルの更新を継続(学習)することになる。
【0080】
以上において、状態量観測部21に入力されるデータは、三次元計測器15の出力データに限定されず、例えば、他のセンサの出力等のデータが含まれてもよく、さらに、制御装置16からの指令データの一部を利用することも可能である。このようにして、制御装置16は、機械学習装置20から出力された指令データ(操作量)を使って、ワーク12の取り出し動作をロボット14に実行させる。なお、機械学習装置20による学習は、ワーク12の取り出し動作に限定されるものではなく、例えば、三次元計測器15の計測パラメータであってもよいのは前述した通りである。
【0081】
以上のように、本実施形態の機械学習装置20を備えたロボットシステム10によれば、バラ積みされた状態を含む、乱雑に置かれた複数のワーク12からハンド部13によってワーク12を取り出すロボット14の動作を学習することができる。これにより、ロボットシステム10は、バラ積みされたワーク12を取り出すロボット14の最適な動作の選択を人間の介在無しに学習することが可能になる。
【0082】
図5は、本発明の他の実施形態のロボットシステムの概念的な構成を示すブロック図であり、教師あり学習を適用したロボットシステムを示すものである。
図5と、前述した
図1の比較から明らかなように、
図5に示す教師あり学習を適用したロボットシステム10’は、
図1に示すQ学習(強化学習)を適用したロボットシステム10に対して、さらに、結果(ラベル)付きデータ記録部40を備える。なお、
図5に示すロボットシステム10’は、さらに、三次元計測器15の出力データを前処理する前処理部50を備える。なお、前処理部50は、例えば、
図1に示すロボットシステム10に対しても設けることができるのはいうまでもない。
【0083】
図5に示されるように、教師あり学習を適用したロボットシステム10’における機械学習装置30は、状態量観測部31と、動作結果取得部36と、学習部32と、意思決定部35と、を備える。学習部32は、誤差計算部33と、学習モデル更新部34と、を含む。なお、本実施形態のロボットシステム10’においても、機械学習装置30は、ワーク12の取り出し動作をロボット14に指令する指令データ、或いは、三次元計測器15の計測パラメータといった操作量を学習して出力する。
【0084】
すなわち、
図5に示す教師あり学習を適用したロボットシステム10’において、誤差計算部33および学習モデル更新部34は、それぞれ、
図1に示すQ学習を適用したロボットシステム10における報酬計算部23および価値関数更新部24に対応する。なお、他の構成、例えば、三次元計測器15,制御装置16およびロボット14等の構成は、前述した
図1と同様であり、その説明は省略する。
【0085】
動作結果取得部36から出力される結果(ラベル)と学習部に実装されている学習モデルの出力との誤差が誤差計算部33で計算される。ここで、結果(ラベル)付きデータ記録部40は、例えば、ワーク12の形状やロボット14による処理が同一の場合にはロボット14に作業を行わせる所定日の前日までに得られた結果(ラベル)付きデータを保持し、その所定日に、結果(ラベル)付きデータ記録部40に保持された結果(ラベル)付きデータを誤差計算部33に提供することができる。あるいは、ロボットシステム10’の外部で行われたシミュレーション等により得られたデータ、または、他のロボットシステムの結果(ラベル)付きデータを、メモリカードや通信回線により、そのロボットシステム10’の誤差計算部33に提供することも可能である。さらに、結果(ラベル)付きデータ記録部40をフラッシュメモリ(Flash Memory)等の不揮発性メモリで構成し、結果(ラベル)付きデータ記録部(不揮発性メモリ)40を学習部32に内蔵し、その結果(ラベル)付きデータ記録部40に保持された結果(ラベル)付きデータを、そのまま学習部32で使用することもできる。
【0086】
図6は、
図5に示すロボットシステムにおける前処理部の処理の一例を説明するための図であり、
図6(a)は、箱11にバラ積みされた複数のワーク12の三次元位置(姿勢)のデータ、すなわち、三次元計測器15の出力データの一例を示し、
図6(b)~
図6(d)は、
図6(a)におけるワーク121~123に対して前処理を行った後の画像データの例を示す。
【0087】
ここで、ワーク12(121~123)としては、円柱形状の金属部品を想定し、ハンド(13)としては、2本の爪部でワークを把持するのではなく、例えば、円柱形状のワーク12の長手中央部分を負圧で吸い取る吸着パッドを想定している。そのため、例えば、ワーク12の長手中央部分の位置が分かれば、その位置に対して吸着パッド(13)を移動させて吸着することにより、ワーク12を取り出すことができるようになっている。また、
図6(a)~
図6(d)における数値は、[mm]で表され、それぞれx方向,y方向,z方向を示す。なお、z方向は、複数のワーク12がバラ積みされた箱11を、上方に設けられた三次元計測器15(例えば、2つのカメラを有する)により撮像した画像データの高さ(深さ)方向に対応する。
【0088】
図6(a)と、
図6(b)~
図6(d)の比較から明らかなように、
図5に示すロボットシステム10’における前処理部50の処理の一例としては、三次元計測器15の出力データ(三次元画像)から、注目するワーク12(例えば、3つのワーク121~123)を、回転させると共に、中心の高さが『0』となるように処理するものである。
【0089】
すなわち、三次元計測器15の出力データには、例えば、それぞれのワーク12の長手中央部分の三次元位置(x,y,z)および姿勢(w,p,r)の情報が含まれている。このとき、
図6(b),
図6(c)および
図6(d)に示されるように、注目する3つのワーク121,122,123は、それぞれ-rだけ回転させると共に、zだけ減算して、全て同じ条件に揃えるようになっている。このような前処理を行うことにより、機械学習装置30の負荷を低減することが可能になる。
【0090】
ここで、
図6(a)に示す三次元画も、三次元計測器15の出力データそのものではなく、例えば、以前より実施しているワーク12の取り出し順を規定するプログラムにより得られた画像から、選択するためのしきい値を低くしたものとなっており、この処理自体も前処理部50で行うこともできる。なお、このような前処理部50による処理としては、ワーク12の形状およびハンド13の種類等を始めとしてさまざまな条件により様々に変化し得るのはいうまでもない。
【0091】
このように、前処理部50により、状態量観測部31への入力前に処理を行った三次元計測器15の出力データ(ワーク12毎の三次元マップ)は、状態量観測部31に入力されることになる。再び、
図5を参照して、動作結果取得部36から出力される結果(ラベル)を受け取る誤差計算部33は、例えば、学習モデルとして
図3に示すニューラルネットワークの出力をyとしたとき、実際にワーク12の取り出し動作を行って成功していたときは-log(y)の誤差、失敗していたときは-log(1-y)の誤差があるとみなし、この誤差を最小化することを目標として処理を行う。なお、
図3に示すニューラルネットワークの入力としては、例えば、
図6(b)~
図6(d)に示されるような前処理を行った後の注目するワーク121~123の画像データ、並びに、それら注目するワーク121~123毎の三次元位置および姿勢(x,y,z,w,p,r)のデータを与えることになる。
【0092】
図7は、
図1に示すロボットシステムの変形例を示すブロック図である。
図7と、
図1の比較から明らかなように、
図7に示すロボットシステム10の変形例において、座標計算部19は削除され、状態量観測部21は、三次元計測器15からの三次元マップだけを受け取ってロボット14の状態量を観測するようになっている。なお、制御装置16に対して、座標計算部19に対応する構成を設けることができるのはいうまでもない。また、この
図7に示す構成は、例えば、
図5を参照して説明した教師あり学習を適用したロボットシステム10’に対しても適用することができる。すなわち、
図5に示すロボットシステム10’において、前処理部50を削除し、状態量観測部31が三次元計測器15からの三次元マップだけを受け取ってロボット14の状態量を観測することも可能である。このように、上述した各実施例は、様々な変更および変形することが可能である。
【0093】
以上、詳述したように、本実施形態によれば、バラ積みされた状態を含む、乱雑に置かれたワークを取り出すときのロボットの最適な動作を人間の介在無しに学習できる機械学習装置、ロボットシステムおよび機械学習方法を提供することが可能になる。なお、本発明における機械学習装置20,30としては、強化学習(例えば、Q学習)または教師あり学習を適用したものに限定されず、様々な機械学習のアルゴリズムを適用することが可能である。
【0094】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【0095】
10,10’ ロボットシステム
11 箱
12 ワーク
13 ハンド部
14 ロボット
15 三次元計測器
16 制御装置
17 力センサ
18 支持部
19 座標計算部
20,30 機械学習装置
21,31 状態量観測部
22,32 学習部
23 報酬計算部
24 価値関数更新部
25,35 意思決定部
26,36 動作結果取得部
33 誤差計算部
34 学習モデル更新部
40 結果(ラベル)付きデータ記録部
50 前処理部
【手続補正書】
【提出日】2022-09-08
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
少なくとも、複数の物体の形状に関する情報又は前記情報を処理した後の情報、のいずれかを含むデータを取得するステップと、
前記複数の物体に関する前記データをニューラルネットワークに入力することにより、前記複数の物体のうちのいずれかの物体を把持するための情報を推論するステップと、
を備える推論方法。
【請求項2】
前記情報を処理した後の情報は、少なくとも、前記複数の物体の位置情報、前記複数の物体の姿勢情報又は前記複数の物体の画像情報のいずれかを含む、
請求項1に記載の推論方法。
【請求項3】
前記複数の物体の形状に関する情報は、少なくとも、前記複数の物体の画像情報、前記複数の物体の三次元位置情報又は計測器から前記複数の物体の表面までの距離情報、のいずれかを含む、
請求項1又は2に記載の推論方法。
【請求項4】
前記ニューラルネットワークは、物体の把持情報に基づいて計算された報酬を用いた強化学習により学習されたものである、
請求項1乃至3のいずれか1項に記載の推論方法。
【請求項5】
前記物体の把持情報は、少なくも、前記物体の把持の成否、前記物体の把持に成功した回数、前記物体の把持および運搬に要した時間、ハンド部に作用した力、前記物体の把持後の後工程における達成度、前記物体の状態又は前記物体の把持および運搬に要したエネルギー、のいずれかを含む、
請求項4に記載の推論方法。
【請求項6】
前記物体を把持するための情報は、複数の物体の位置を変更するための情報を含む、
請求項4又は5に記載の推論方法。
【請求項7】
前記ニューラルネットワークは、前記強化学習における価値関数である、
請求項4乃至6のいずれか1項に記載の推論方法。
【請求項8】
前記価値関数は、ロボットの制御情報に関する価値を表す、
請求項7に記載の推論方法。
【請求項9】
前記ニューラルネットワークは、物体の把持に関するラベルと前記ニューラルネットワークの出力とに基づいて計算された誤差を最小化するように学習されたものである、
請求項1乃至3のいずれか1項に記載の推論方法。
【請求項10】
前記ニューラルネットワークは、少なくとも、前記物体の位置情報又は前記物体の把持の成功確率に関する情報、のいずれかを出力する、
請求項9に記載の推論方法。
【請求項11】
前記物体を把持するための情報が異常か否かを判定するステップ、を更に備える、
請求項1乃至10のいずれか1項に記載の推論方法。
【請求項12】
前記ニューラルネットワークは、シミュレーションで得られたデータを用いて学習されたものである、
請求項1乃至11のいずれか1項に記載の推論方法。
【請求項13】
前記物体を把持するための情報は、少なくとも、ロボットの制御情報、ハンド部の位置情報、前記ハンド部の姿勢情報、前記ハンド部の取り出し方向に関する情報、前記物体の位置情報、前記物体の把持の成功確率に関する情報又は計測器の制御情報、のいずれかである、
請求項1乃至12のいずれか1項に記載の推論方法。
【請求項14】
請求項1乃至13のいずれか1項に記載の推論方法を少なくとも1台のコンピュータに実行させるための推論プログラム。
【請求項15】
少なくとも1つのメモリと、
少なくとも1つのプロセッサとを備え、
前記少なくとも1つのプロセッサは、請求項1乃至13のいずれか1項に記載の推論方法を実行する、
推論装置。
【請求項16】
少なくとも、複数の物体の形状に関する情報又は前記情報を処理した後の情報、のいずれかを含むデータを取得するステップと、
前記複数の物体に関する前記データをニューラルネットワークに入力することにより、前記複数の物体のうちのいずれかの物体を把持するための情報を前記ニューラルネットワークが出力するように、前記ニューラルネットワークを学習するステップと、
を備える学習方法。
【請求項17】
前記情報を処理した後の情報は、少なくとも、前記複数の物体の位置情報、前記複数の物体の姿勢情報又は前記複数の物体の画像情報のいずれかを含む、
請求項16記載の学習方法。
【請求項18】
前記複数の物体の形状に関する情報は、少なくとも、前記複数の物体の画像情報、前記複数の物体の三次元位置情報又は計測器から前記複数の物体の表面までの距離情報、のいずれかを含む、
請求項16又は17に記載の学習方法。
【請求項19】
前記学習するステップは、物体の把持情報に基づいて計算された報酬を用いた強化学習により前記ニューラルネットワークを学習する、
請求項16乃至18のいずれか1項に記載の学習方法。
【請求項20】
前記物体の把持情報は、少なくも、前記物体の把持の成否、前記物体の把持に成功した回数、前記物体の把持および運搬に要した時間、ハンド部に作用した力、前記物体の把持後の後工程における達成度、前記物体の状態又は前記物体の把持および運搬に要したエネルギー、のいずれかを含む、
請求項19に記載の学習方法。
【請求項21】
前記物体を把持するための情報は、複数の物体の位置を変更するための情報を含む、
請求項19又は20に記載の学習方法。
【請求項22】
前記ニューラルネットワークは、前記強化学習における価値関数である、
請求項19乃至21のいずれか1項に記載の学習方法。
【請求項23】
前記価値関数は、ロボットの制御情報に関する価値を表す、
請求項22に記載の学習方法。
【請求項24】
前記学習するステップは、物体の把持に関するラベルと前記ニューラルネットワークの出力とに基づいて計算された誤差を最小化するように前記ニューラルネットワークを学習する、
請求項16乃至18のいずれか1項に記載の学習方法。
【請求項25】
前記ニューラルネットワークは、少なくとも、前記物体の位置情報又は前記物体の把持の成功確率に関する情報、のいずれかを出力する、
請求項24に記載の学習方法。
【請求項26】
前記物体を把持するための情報が異常か否かを判定するステップ、を更に備える、
請求項16乃至25のいずれか1項に記載の学習方法。
【請求項27】
シミュレーションで得られたデータを用いて前記ニューラルネットワークを学習する、
請求項16乃至26のいずれか1項に記載の学習方法。
【請求項28】
前記物体を把持するための情報は、少なくとも、ロボットの制御情報、ハンド部の位置情報、前記ハンド部の姿勢情報、前記ハンド部の取り出し方向に関する情報、前記物体の位置情報、前記物体の把持の成功確率に関する情報又は計測器の制御情報、のいずれかである、
請求項16乃至27のいずれか1項に記載の学習方法。
【請求項29】
請求項16乃至28のいずれか1項に記載の学習方法を少なくとも1台のコンピュータに実行させるための学習プログラム。
【請求項30】
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、請求項16乃至28のいずれか1項に記載の学習方法を実行する、
学習装置。
【請求項31】
請求項30に記載の学習装置を用いてニューラルネットワークを機械学習する、
モデル生成方法。