IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Preferred Networksの特許一覧

特許7512231装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム
<>
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図1
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図2
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図3
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図4
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図5
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図6
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図7
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図8
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図9
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図10
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図11
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図12
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図13
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図14
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図15
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図16
  • 特許-装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-28
(45)【発行日】2024-07-08
(54)【発明の名称】装置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20240701BHJP
【FI】
B25J13/08 A
【請求項の数】 39
(21)【出願番号】P 2021086379
(22)【出願日】2021-05-21
(65)【公開番号】P2022179118
(43)【公開日】2022-12-02
【審査請求日】2023-06-15
【新規性喪失の例外の表示】特許法第30条第2項適用 2021 IEEE International Conference on Robotics and Automation(ICRA) 2021/5/2に公開 https://ras.papercept.net/conferences/conferences/ICRA21/program/ICRA21_ContentListWeb_1.html#tuat20_02
【早期審査対象出願】
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】高橋 城志
(72)【発明者】
【氏名】コウ ウィルソン
(72)【発明者】
【氏名】ウマデシング アヴィナシュ
(72)【発明者】
【氏名】前田 新一
(72)【発明者】
【氏名】深谷 直樹
【審査官】尾形 元
(56)【参考文献】
【文献】特開2018-027581(JP,A)
【文献】特開2019-025646(JP,A)
【文献】特許第6758540(JP,B1)
【文献】特開2021-045811(JP,A)
【文献】特開2019-188516(JP,A)
【文献】国際公開第2020/261601(WO,A1)
【文献】特開2019-126876(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
食品を収容する容器内の領域の一部分である部分領域における食品の状態に関してデータを取得する取得部と、
前記部分領域の前記データに基づいて、把持装置により前記食品が前記部分領域からまとめられて1回の把持で把持される把持量を推定する推定部と、
を有する装置。
【請求項2】
前記部分領域は、所定の大きさの領域であり、
前記データは、前記所定の大きさを持つ前記部分領域の観測データである、
請求項1に記載の装置。
【請求項3】
前記推定された把持量および把持される前記食品の目標量に基づいて、前記把持装置により前記食品を前記部分領域から把持する制御を行う制御部と、
を有する、
請求項1又は2に記載の装置。
【請求項4】
前記把持量は、前記把持装置により前記部分領域からまとめられる、前記食品のまとまりとしての量である、
請求項1乃至3のいずれか1項に記載の装置。
【請求項5】
前記推定される把持量は、前記把持装置による1回の把持によって前記食品が前記部分領域からまとめられて把持される量である、
請求項1乃至4のいずれか1項に記載の装置。
【請求項6】
前記推定部は、前記部分領域の前記データに基づいて、前記把持装置により前記食品が前記部分領域から、1個ではなくまとめられて把持される把持量を推定する、
請求項1乃至5のいずれか1項に記載の装置。
【請求項7】
前記取得部は、前記部分領域の前記データを、個々の前記食品の認識を介さずに取得する、
請求項1乃至6のいずれか1項に記載の装置。
【請求項8】
前記取得部は、複数の前記部分領域の各々の前記食品の状態に関して前記データを取得し、
前記推定部は、前記複数の部分領域の各々の前記データに基づいて、前記把持装置により前記複数の部分領域の各々からまとめられて把持される前記把持量を推定する、
請求項1乃至7のいずれか1項に記載の装置。
【請求項9】
前記複数の部分領域の各々について推定された前記把持量に少なくとも基づいて、前記複数の部分領域から、前記把持装置により前記食品がまとめられて把持される部分領域を選択する選択部をさらに有する、
請求項8に記載の装置。
【請求項10】
前記推定部は、前記把持装置によって前記食品が把持される前に、前記データに基づいて前記把持量を推定する、
請求項1乃至9のいずれか1項に記載の装置。
【請求項11】
前記推定部は、前記データを入力として前記把持量を出力するように学習された学習済みの把持量推定モデルに、前記データを入力し、前記把持量を推定する、
請求項1乃至10のいずれか1項に記載の装置。
【請求項12】
前記把持量推定モデルは、前記把持装置により把持された前記食品の把持量の実測値を第1学習モデルの教師データとし、前記把持装置による前記食品の把持前における前記食品の状態に関して取得されたデータを前記第1学習モデルへの入力データとして、前記第1学習モデルを学習することにより生成される、
請求項11に記載の装置。
【請求項13】
前記データに基づいて、前記推定された把持量が前記把持装置により把持される不確実性を評価する評価部をさらに有する請求項1乃至12のいずれか1項に記載の装置。
【請求項14】
前記取得部は、前記データとは異なる種類のデータを取得し、
前記異なる種類のデータに基づいて、前記推定された把持量が前記把持装置により把持される不確実性を評価する評価部をさらに有する、
請求項1乃至12のいずれか1項に記載の装置。
【請求項15】
複数の前記部分領域の各々について前記推定部により推定および前記評価部により評価された前記把持量および前記不確実性に基づいて、当該複数の部分領域から、前記把持装置により把持される部分領域を選択する選択部をさらに有する、
請求項13または14に記載の装置。
【請求項16】
食品を収容する容器内の領域の一部分である複数の部分領域の各々の食品の状態に関してデータを取得する取得部と、
前記複数の部分領域の各々において、把持装置により前記食品がまとめられて1回の把持で把持される把持量に関する不確実性を前記データに基づいて評価する評価部と、
前記複数の部分領域の各々について評価された前記不確実性に基づいて、前記複数の部分領域から、前記食品を前記把持装置によってまとめられて1回の把持で把持する部分領域を選択する選択部と、
を有する装置。
【請求項17】
前記評価部は、前記把持装置によって前記食品が把持される前に、前記把持量に関する不確実性を前記データに基づいて評価する、
請求項13乃至16のいずれか1項に記載の装置。
【請求項18】
前記評価部は、前記食品の前記データを入力として前記不確実性を出力するように学習された学習済みの不確実性評価モデルに、前記データを入力し、前記不確実性を評価する、
請求項13乃至1のいずれか1項に記載の装置。
【請求項19】
前記不確実性評価モデルは、前記把持装置により把持された前記食品の把持量の実測値と、前記推定された把持量との差分を第2学習モデルの教師データとし、前記把持装置による前記食品の把持前における前記食品の状態に関して取得されたデータを前記第2学習モデルへの入力データとして、前記第2学習モデルを学習することにより生成される、
請求項18に記載の装置。
【請求項20】
前記不確実性評価モデルは、前記把持装置による前記食品の把持前における前記食品の状態に関して取得されたデータを所定のモデルに入力して出力された第1出力値と、当該データを第2学習モデルに入力して出力された第2出力値との差分を前記第2学習モデルの教師データとし、当該データを前記第2学習モデルへの入力データとして、前記第2学習モデルを学習することにより生成される、
請求項18に記載の装置。
【請求項21】
前記把持量は、重さで示される量である、請求項1乃至20のいずれか1項に記載の装置。
【請求項22】
前記把持量は、グラムの単位でされる量である、請求項1乃至20のいずれか1項に記載の装置。
【請求項23】
前記食品は、前記把持装置により把持される粒状の食品である、請求項1乃至22のいずれか1項に記載の装置。
【請求項24】
前記データは、前記部分領域の前記食品の表面の状態に関してのデータである、請求項1乃至23のいずれか1項に記載の装置。
【請求項25】
前記食品の表面の状態は、前記食品の表面の、見た目または凹凸を含んだ状態である、請求項24に記載の装置。
【請求項26】
前記データは、前記部分領域の前記食品の表面を観測して得られるデータである、請求項1乃至23のいずれか1項に記載の装置。
【請求項27】
前記得られるデータは、前記食品が存在している前記部分領域を撮影して得られる画像データである、
請求項26に記載の装置。
【請求項28】
前記画像データは、カラー画像データである、請求項27に記載の装置。
【請求項29】
前記画像データは、深さ画像データである、請求項27に記載の装置。
【請求項30】
前記得られるデータは、前記部分領域の前記食品の表面の凹凸に値が依存するデータである、
請求項26に記載の装置。
【請求項31】
前記凹凸に値が依存するデータは、距離データである、請求項30に記載の装置。
【請求項32】
前記把持装置は、開状態から閉状態になることで前記食品をまとめる平行グリッパである、請求項1乃至31のいずれか1項に記載の装置。
【請求項33】
請求項1乃至32のいずれか1項に記載の装置を1または複数のコンピュータで実現するためのプログラム。
【請求項34】
請求項1乃至32のいずれか1項に記載の装置の各部によって実行される方法。
【請求項35】
請求項1乃至32のいずれか1項に記載の装置と、
前記食品が存在している前記部分領域を前記部分領域の上方から観測して前記データを生成する別装置と、
を有するシステム。
【請求項36】
食品の状態に関してデータを取得し、
把持装置によりまとめられて1回の把持で把持された前記食品の把持量の実測値を学習モデルの教師データとし、前記データを前記学習モデルへの入力データとして、前記学習モデルの内部パラメータを更新することで、前記データを入力として前記把持装置により前記食品がまとめられて1回の把持で把持される前記把持量を出力するための把持量推定モデルを生成する、
モデル生成方法。
【請求項37】
食品の状態に関してデータを取得し、
前記データを学習モデルに入力して当該学習モデルから、把持装置により前記食品がまとめられて1回の把持で把持される把持量に関する不確実性の指標となる出力データを取得し、
前記データに基づいて、前記不確実性の指標となる前記出力データに対応する教師データを生成し、
前記不確実性の指標となる前記出力データと前記教師データとに基づいて、前記学習モデルの内部パラメータを更新することで、前記データを入力として前記把持装置により前記食品がまとめられて1回の把持で把持される把持量に関する不確実性の指標となる出力データを出力するための不確実性評価モデルを生成する、
モデル生成方法。
【請求項38】
請求項36または37に記載のモデル生成方法を実行するモデル学習装置。
【請求項39】
請求項36または37に記載のモデル生成方法を1または複数のコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、置、モデル生成方法、モデル学習装置、プログラム、方法、およびシステムに関する。
【背景技術】
【0002】
従来、弁当などの食品工場では、指定された目標量の食品を食品トレイから把持して、弁当箱に詰めることが行われている。このとき、詰められる食品の種類は多く、また取り扱う食品の種類が頻繁に変わる。このような背景から、大部分の食品に関しては専用機械を作ることが難しく、人手で詰め込み作業が行われている
【0003】
詰められる食品は、把持と食品の大きさとの観点から、3個、10個などと個数で管理する食品と、60g、100gなどと重さで管理する細片状の食品または粒状の食品とに分類される。細片状の食品または粒状の食品は、例えば、粒状であるために不定形であることから扱いが難しい。細片状の食品または粒状の食品を把持する把持装置は、食品の種別に応じた専用の器具を用いて定量で把持することがある。このとき、様々な食品や異なる把持量に対応するためには、設計変更などの多大な労力が必要となる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-151843号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
発明が解決しようとする課題は、把持対象に関する所望の把持量を推定または把持することにある。
【課題を解決するための手段】
【0006】
実施形態に係る装置は、取得部と、推定部と、を有する。取得部は、食品を収容する容器内の領域の一部分である部分領域における食品の状態に関してデータを取得する。推定部は、前記部分領域の前記データに基づいて、把持装置により前記食品が前記部分領域からまとめられて1回の把持で把持される把持量を推定する。
【図面の簡単な説明】
【0007】
図1図1は、実施形態に係る把持推定装置を有する把持推定システムの構成の一例を示すブロック図である。
図2図2は、実施形態に係り、把持装置の外観の一例を示す図である。
図3図3は、実施形態に係る開状態の平行グリッパの斜視図である。
図4図4は、実施形態に係る開状態の平行グリッパの正面図である。
図5図5は、実施形態に係る閉状態の平行グリッパの斜視図である。
図6図6は、実施形態に係る閉状態の平行グリッパの正面図である。
図7図7は、実施形態に係る平行グリッパに関し、異なる方向から見た斜視図である。
図8図8は、実施形態に係り、把持処理の手順の一例を示すフローチャートである。
図9図9は、実施形態に係る観測データの一例を示す図である。
図10図10は、実施形態に係り、目標量が60gである場合において、トレイの撮影範囲の一部の領域における推定量と不確実性との一例を示す図である。
図11図11は、実施形態に係る推定モデル生成処理の手順の一例を示すフローチャートである。
図12図12は、実施形態に係る評価モデル生成処理の手順の一例を示すフローチャートである。
図13図13は、実施形態に係り、RNDモデルとして実行される不確実性評価モデルの概要の一例を示す図である。
図14図14は、実施形態に係るモデル生成処理の手順の一例を示すフローチャートである。
図15図15は、実施形態に係る把持量不確実性推定モデルの概要の一例を示す図である。
図16図16は、実施形態に係り、アンサンブルモデルにより実現される把持量不確実性推定モデルの概要の一例を示す図である。
図17図17は、実施形態における各装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら、実施形態に係る把持推定装置、モデル生成方法、モデル学習装置、及びグリッパについて説明する。なお、以下に記載する実施形態の構成は、あくまで一例であって、以下の記載内容に限られるものではない。また、当該構成によってもたらされる作用及び効果も、あくまで一例であって、以下の記載内容に限られるものではない。
【0009】
図1は、把持推定装置17を有する把持推定システム1の構成の一例を示すブロック図である。図1に示すように、把持推定システム1は、把持装置11と、観測装置13と、計量装置15と、把持推定装置17とを有する。図2は、把持装置11の外観の一例を示す図である。
【0010】
把持装置11は、把持対象133を把持するエンドエフェクタ(end-effector)111と、複数のリンク113、複数のリンクのうち2つのリンクの間に設けられた関節115、および、関節115およびエンドエフェクタ111などをそれぞれ駆動する複数の駆動装置(モータなど)を備える。エンドエフェクタ111は、例えば、開閉するグリッパにより実現される。開閉グリッパ111は、例えば、食品が内包される空間を閉状態において形成する複数の面形状を有する。換言すれば、把持装置11は、閉状態において把持対象133を保持可能な空間を複数の面形状で形成する食品把持用の開閉グリッパ111を有する。なお、面形状は、剛性を有する非変形部材によって構成されてもよいし、弾性体などの変形部材により構成されてもよい。以下、説明を具体的にするために、エンドエフェクタ111を実現するグリッパは、平行グリッパ111であるものとして説明するが、1つ以上の回転軸を有して部材の回転運動によって開閉するグリッパであってもよい。複数のリンク113と複数の関節115とにより、把持装置11は、複数の自由度を有する。
【0011】
図3乃至図7は、平行グリッパ111の一例を示す図である。図3は、開状態の平行グリッパ111の斜視図を示している。図4は、開状態の平行グリッパ111の正面図を示している。また、図5は、閉状態の平行グリッパ111の斜視図を示している。図6は、閉状態の平行グリッパ111の正面図を示している。図3乃至図6における点線で示すように、例えば、平行グリッパ111の根元部分121には、力覚センサが設置されてもよい。このとき、力覚センサは、平行グリッパ111により把持された把持対象133の重さを検知する。力覚センサは、把持対象133の重さを、把持推定装置17に出力する。図7は、平行グリッパ111に関し、異なる方向から見た斜視図を示している。図7に示すように、平行グリッパ111は、複数の面形状123で形成される。これにより、図5および図6で示すように、閉状態の平行グリッパ111により、食品が内包される空間125が形成される。
【0012】
観測装置13は、例えば、各種カメラにより実現される。当該カメラは、例えば、RGB(Red、Green、Blue)カメラにより実現される。RGBカメラは、トレイ131に配置された複数の把持対象133を撮影する光学カメラである。このとき、観測データは、RGB画像に相当する。なお、RGBカメラの代わりに、単色(Monochrome:モノクロ)カメラが用いられてもよい。また、観測装置13は、上記観測データとは異なる種類の観測データを取得してもよい。このとき、観測装置13は、3次元計測カメラ(以下、D(Depth)カメラと呼ぶ)により実現される。また、観測装置13は、RGBカメラとDカメラ(以下、RGB-Dカメラと呼ぶ)とにより実現されてもよい。以下、説明を具体的にするために、観測装置13は、RGB-Dカメラにより実現されるものとする。RGB-Dカメラによる撮影範囲は、把持対象133が配置されたトレイ131の全域が含まれる範囲である。
【0013】
計量装置15は、例えば、トレイ131の下面に配置される。計量装置15は、例えば、トレイ131とトレイ131に配置された把持対象133との合計の重さを計測するスケールに相当する。計量装置15は、トレイ131の計量に伴う計量データを、把持推定装置17に出力する。計量装置15からの出力の計測データは、例えば、後述の把持量推定モデルおよび不確実性評価モデルの生成(学習)において用いられる。このため、把持量推定モデルおよび不確実性評価モデルの生成が完了すれば、計量装置15は、把持推定システム1を用いずともよい。また、平行グリッパ111に力覚センサが設けられている場合、計量装置15をトレイ131の下面に配置せずともよい。
【0014】
把持推定装置17は、コントローラ171を有する。図1に示すように、コントローラ171は、取得部173と、推定部175と、評価部177と、選択部179と、制御部181とを有する。
【0015】
取得部173は、把持対象133の観測データを取得する。観測データは、上述のように、把持対象133の画像データを含む。また、観測データは、観測データの取得位置から把持対象133の表面までの距離データを含む。すなわち、距離データは、観測データの取得位置であるDカメラの設置位置から把持対象133の表面までの距離を示すデータである。把持対象133は、例えば、コーヒー豆などの各種豆や米などの粒状の食品である。なお、取得部173は、観測データとは異なる種類の観測データを取得してもよい。具体的には、取得部173は、RGB画像およびD画像を取得する。より詳細には、取得部173は、把持対象133の分布領域における複数の部分領域各々において観測データを取得する。把持対象133の分布領域は、例えば、トレイ131において把持対象を配置可能な領域に相当する。複数の部分領域各々は、所定サイズの領域であって、RGB画像およびD画像からクロップ(Crop)された領域(切り取られた領域:パッチ)に相当する。部分領域のことを把持点と呼ぶことがある。なお、後述の各モデルを生成する場合において、取得部173は、計量データを計量装置15から取得、またはエンドエフェクタ111により把持された把持対象133の重さを力覚センサから取得する。
【0016】
推定部175は、観測データに基づいて、把持装置11により把持対象133が把持される把持量を推定する。推定された把持量のことを推定量と呼ぶ。具体的には、推定部175は、観測データにおける上記複数の部分領域各々において把持量を推定する。推定部175は、例えば、把持対象133の観測データを入力として推定量を出力するように学習された学習済みの把持量推定モデルに、観測データを入力し、把持量を推定する。より詳細には、推定部175は、観測データにおける上記複数の部分領域各々を学習済みの把持量推定モデルに入力し、複数の部分領域各々における把持量を推定する。
【0017】
把持量推定モデルは、例えば、把持装置11により把持された把持対象133の把持量の実測値を第1学習モデルの教師データとし、把持装置11による把持対象133の把持前の観測データを第1学習モデルへの入力データとして、第1学習モデルを学習することにより生成される。第1学習モデルに対する学習により把持量推定モデルを生成する手順については、後ほど説明する。
【0018】
評価部177は、観測データに基づいて、学習済みの把持量推定モデルにより推定された把持量だけが把持装置11により把持される不確実性を評価する。不確実性の指標(不確実性指標)は、例えば、推定された把持量だけを把持装置11が把持する不確実性を示す度合い(または割合)である不確実度であってよい。すなわち、不確実性指標は、実際の把持される量が推定量に近いか否かを評価するための指標である。なお、不確実性指標は、当該不確実度の代わりに、推定された把持量だけを把持装置11が把持する確かさを示す度合い(または割合)、すなわち推定された把持量を把持装置11が把持する信頼度であってもよい。
【0019】
以下、説明を簡略にするために、不確実性は、当該不確実性の度合い(不確実度)あるいは不確実性指標であると適宜読み替えてよい。また、評価部177は、観測データとは異なる種類の観測データに基づいて、推定量だけが把持装置11により把持される不確実性を評価してもよい。具体的には、評価部177は、複数の部分領域各々において、不確実性を、観測データに基づいて評価する。より詳細には、評価部177は、把持対象133の観測データを入力として不確実性指標を出力するように学習された学習済みの不確実性評価モデルに、観測データを入力し、不確実性を評価する。
【0020】
不確実性評価モデルは、把持対象133の観測データを用いた自己教師あり学習によって生成される。この自己教師あり学習は、学習モデルに観測データを入力してこのモデルの内部パラメータ(例えばニューラルネットワークにおける重みやバイアス)に基づきデータを出力し、この観測データから教師データ(正解データ)を生成し、出力データと教師データとに基づいてモデルの内部パラメータを更新する。不確実性評価モデルを生成する手順については、後ほど説明する。
【0021】
選択部179は、複数の部分領域各々について評価された不確実性に基づいて、複数の部分領域から、把持対象を把持装置11によって把持する領域を選択する。例えば、選択部179は、複数の部分領域各々に対応する推定量および不確実性と所定の条件とに基づいて、複数の部分領域から把持装置11により把持される位置(以下、把持位置と呼ぶ)を選択する。所定の条件とは、例えば、ユーザにより設定された目標となる把持量(以下、目標量と呼ぶ)に対する所定の重さの範囲(以下、所定範囲と呼ぶ)である。所定範囲とは、例えば、+0.5gから-0.5gの範囲である。所定の条件(例えば所定範囲)は、把持推定装置17におけるメモリに記憶される。この所定の条件には、所定の不確実性範囲(例えば不確実度0.1以下等)を含んでもよい。
【0022】
具体的には、選択部179は、複数の部分領域に対応する複数の推定量から、目標量を基準として、所定範囲に含まれる複数の推定量を選択する。次いで、選択部179は、選択された複数の推定量に対応する複数の不確実性のうち、最も不確実度が小さい、すなわち不確実性が最も低い推定量を特定する。選択部179は、特定された不確実性が最も低い推定量に対する部分領域を、把持装置11に把持される把持位置として選択する。なお、不確実性指標として信頼度を用いる場合、選択部179は、選択された複数の推定量に対応する複数の信頼度のうち、最も信頼度が大きい、すなわち不確実性が最も低い推定量に対する部分領域を特定する。
【0023】
なお、選択部179による把持位置の選択の方法は上記したものに限られず、選択部179は、目標量と、推定量と、その推定量の不確実性と、に基づいて、把持位置を選択すればよい。例えば、目標量と推定量との差分、および、不確実性のバランスを考慮して把持位置が選択されるようにしてもよく、選択部179は、目標量と推定量との差分が閾値以下であるが不確実性が閾値を超えるような部分領域と、目標量と推定量との差分が閾値を超えるが不確実性が閾値以下であるような部分領域とを比べた際に後者を選択してもよい。この場合、推定量が目標量を下回るときには、現在把持している把持対象を目的位置で解放した後、推定量と目標量との差分を新たな目標量とした2回目の把持を行えばよい。また、推定量が目標量を上回るときには、現在把持している把持対象の余剰量を落としてから目的位置で解放すればよい(後述)。このように、評価された把持不確実性を考慮した把持戦略のバリエーションを用意しても良い。
【0024】
制御部181は、把持装置11の動作(把持対象133の把持動作、移動動作、および解放動作)を制御する。具体的には、制御部181は、選択された把持位置で把持対象133を把持するように、把持装置11を制御する。これにより、把持装置11は、把持位置において把持対象133を把持する。制御部181は、把持された把持対象133を、予め設定された目的位置まで移動し、この目的位置で、把持対象133を解放するように、把持装置11を制御する。移動動作および解放動作の制御については、既知の制御が適宜利用であるため、説明は省略する。
【0025】
以上、把持推定システム1における構成について説明した。以下、把持推定システム1による把持動作に関する処理(以下、把持処理と呼ぶ)について説明する。図8は、把持処理の手順の一例を示すフローチャートである。
【0026】
(把持処理)
(ステップS801)
取得部173は、把持対象133に関する所定サイズの複数の部分領域それぞれについて、観測データを、観測装置13から取得する。所定サイズは、平行グリッパ111による把持可能なサイズとして、把持推定装置17におけるメモリに予め記憶される。図9は、観測データの一例を示す図である。図9に示すように、取得部173は、例えば、複数の部分領域それぞれについて、トレイ131に配置された把持対象133である粒状の食品のRGB画像とD画像とを取得する。
【0027】
(ステップS802)
推定部175は、各部分領域について、観測データを把持量推定モデルに入力し、把持装置11で掴み取る把持対象133の把持量を推定する。これにより、推定部175は、複数の部分領域に対応する複数の推定量を出力する。
【0028】
(ステップS803)
評価部177は、各部分領域について、観測データを不確実性評価モデルに入力し、その不確実性評価モデルから不確実性指標を出力する。すなわち評価部177は、把持対象133が推定量だけ掴み取られる不確実性を評価する。これにより、評価部177は、各部分領域の推定量に対する不確実性を評価する。
【0029】
(ステップS804)
選択部179は、目標量から所定範囲内(例えば±0.5g以内)の把持量が推定された領域を特定する。図10は、目標量が60gである場合において、トレイ131の撮影範囲の一部の領域における推定量と不確実性との一例を示す図である。図10における点線の丸印は、複数の推定量に対する領域を示している。また、図10における実線の四角は、選択部804により特定された複数の領域と、当該領域における不確実性とを示している。なお、目標量から所定範囲内の推定量を持つ領域が無ければ、制御部181はエラーを通知してもよいし、制御部181は把持装置111を制御してトレイ131に配置された把持対象133を把持装置111で均してから処理をステップS801に戻してもよい。
【0030】
(ステップS805)
選択部179は、特定された領域のうち、不確実性が最も低い(すなわち、不確実度が最も低い、あるいは、信頼度が最も高い)領域を選択する。図10において、不確実性が最も低い領域MRは、不確実度が0.1の領域に対応する。なお、所定の条件に所定の不確実性範囲(例えば不確実度が0.1以下)が含まれている場合には、不確実度がこの不確実性範囲内である領域が選択される。もしこの不確実性範囲に含まれる不確実性を持つ領域が無ければ、制御部181は、出力装置を介してエラーを通知してもよいし、制御部181は把持装置111を制御してトレイ131に配置された把持対象133を把持装置111で均してから処理をステップS801に戻してもよい。
【0031】
(ステップS806)
制御部181は、選択された領域から把持対象133を掴み取るように、把持装置11を制御する。これにより、把持処理は終了する。
【0032】
以上で説明した実施形態に係る把持推定装置17によれば、例えば粒状の食品である把持対象133の観測データを取得し、取得された観測データに基づいて、把持装置11により把持対象133が把持される把持量を推定する。具体的には、把持推定装置17によれば、把持対象133の観測データを入力として把持量を推定するように学習された学習済みの把持量推定モデルに、取得された観測データを入力し、把持量を推定する。これにより、本把持推定装置17によれば、ユーザが所望する把持量を、観測データから推定することができる。
【0033】
また、把持推定装置17は、観測データに基づいて、推定された把持量が把持装置11により把持される不確実性を評価する。また、把持推定装置17は、観測データとは異なる種類の観測データを取得し、取得された異なる種類の観測データに基づいて、推定された把持量が把持装置11により把持される不確実性を評価する。例えば、把持推定装置17によれば、把持対象133の観測データを入力として不確実性指標を出力するように学習された学習済みの不確実性評価モデルに、観測データを入力し、上記不確実性を評価する。また、把持推定装置17における観測データは、把持対象133の画像データまたは観測データの取得位置から把持対象133の表面までの距離データを含む。具体的には、実施形態に係る本把持推定装置17によれば、把持対象133の分布領域における複数の部分領域各々において観測データを取得し、複数の部分領域各々において上記把持量を推定し、複数の部分領域各々において上記不確実性を評価し、複数の部分領域各々に対応する上記把持量および上記不確実性と所定の条件とに基づいて、複数の部分領域から把持装置11により把持される領域を選択する。これらのことから、本把持推定装置17によれば、推定された把持量のうち不確実性の度合いが低い領域において、把持対象133に関する所望の把持量を把持することができる。
【0034】
また、本実施形態における把持推定装置17は、閉状態において把持対象133を保持可能な空間を複数の面形状123で形成する平行グリッパ111を有する。例えば、本実施形態に係る食品把持用の平行グリッパ111は、食品が内包される空間を閉状態において形成する複数の面形状123を有する。また、本実施形態に係る食品把持用の平行グリッパ111は、非変形部材によって構成され、例えば、平行グリッパで実現される。これらにより、本実施形態に係る食品把持用の平行グリッパ111によれば、様々な不定形で変形する食品を適切に把持することができる。このため、本平行グリッパ111によれば、専用の器具や定量を把持するエンドエフェクタは不要であって、設計変更などの多大な労力を削減することができる。
【0035】
以上のことから、本実施形態における把持推定装置17および食品把持用の平行グリッパ111によれば、把持対象133に関する所望の把持量を推定または把持することができる。
【0036】
以下、把持量推定モデルの生成過程と不確実性評価モデルの生成過程とについて説明する。把持量推定モデルの生成過程および不確実性評価モデルの生成過程は、それぞれ学習過程に相当する。このとき、図1に示す把持推定システム1または把持推定装置17は、モデル学習装置として機能する。まず、把持量推定モデルの生成過程について説明し、次いで、不確実性評価モデルの生成過程について位説明する。図11は、把持量推定モデルの生成処理(以下、推定モデル生成処理と呼ぶ)の手順の一例を示すフローチャートである。
【0037】
(推定モデル生成処理)
(ステップS111)
取得部173は、把持対象133に関する所定サイズの部分領域について、観測データを、観測装置13から取得する。取得部173は、部分領域の位置を、制御部181に出力する。また、取得部173は、部分領域の位置を、メモリに記憶する。
【0038】
(ステップS112)
推定部175は、部分領域に関する観測データを第1学習モデルに入力し、把持装置11で掴み取る把持対象133の把持量を、第1出力値として出力(推定)する。
【0039】
(ステップS113)
制御部181は、部分領域に対して把持対象133の把持を実行するように、把持装置11を制御する。把持装置11は、制御部181による制御のもとで、部分領域における把持対象133を把持する。
【0040】
(ステップS114)
取得部173は、計量装置15もしくは力覚センサからの出力に基づいて、把持装置11による把持量の実測値、すなわち実際の把持量を取得する。計量装置15からの出力である計量データに基づいて実測値を計算する場合、取得部173は、例えば、把持装置11による把持対象133の把持の前後における計量データを差分することで、実測値を取得する。なお、力覚センサが平行グリッパ111に搭載されている場合、取得部173は、力覚センサからの出力を重さに変換することにより、実測値を取得する。
【0041】
(ステップS115)
推定部175は、第1出力値(推定量)と実測値との差分に基づいて損失を計算する。例えば、推定部175は、当該差分を損失関数に適用することにより、損失(2乗誤差)を算出する。次いで、推定部175は、誤差逆伝播法または確率的勾配降下法などの既知の手法により、損失を低減するように第1学習モデルにおけるパラメータを更新する。
【0042】
(ステップS116)
パラメータの更新回数が所定回数であれば(ステップS116のYes)、ステップS118の処理が実行される。パラメータの更新回数が所定回数でなければ(ステップS116のNo)、ステップS117の処理が実行される。所定回数は、ユーザなどにより予め設定される。なお、本ステップにおける処理は、パラメータの更新回数と所定回数との比較に限定されない。例えば、第1学習モデルに対する学習が収束するまで、ステップS111乃至ステップS116の処理が繰り返されてもよい。第1学習モデルに対する学習の収束とは、例えば、推定量と実測値との差分が所定の値以下となる場合である。所定回数または所定の値は、把持推定装置17におけるメモリに予め記憶される。
【0043】
(ステップS117)
取得部173は、観測データにおいて、ステップS111における部分領域とは異なる他の部分領域を設定する。取得部173は、他の部分領域の位置を制御部181に出力する。
【0044】
(ステップS118)
推定部175は、第1学習モデルを、把持量推定モデルとして設定する。推定部175は、把持量推定モデルを、把持推定装置17におけるメモリに記憶する。以上により、推定モデル生成処理は終了する。
【0045】
以上に述べた実施形態に係る推定モデル生成処理によれば、把持推定装置17において用いられる把持量推定モデルは、把持装置11により把持された把持対象133の把持量の実測値を第1学習モデルの教師データとし、把持装置11による把持対象133の把持前の観測データを第1学習モデルへの入力データとして、第1学習モデルを学習することにより生成される。
【0046】
以下、不確実性評価モデルの生成過程について説明する。図12は、不確実性評価モデルの生成処理(以下、評価モデル生成処理と呼ぶ)の手順の一例を示すフローチャートである。
【0047】
(評価モデル生成処理)
(ステップS121)
取得部173は、把持対象133に関する所定サイズの部分領域について、観測データを、観測装置13から取得する。また、取得部173は、部分領域の位置を、メモリに記憶する。
【0048】
(ステップS122)
評価部177は、部分領域に関する観測データを第2学習モデルに入力し、第2出力値を出力する。続く説明から理解されるように、評価部177は、第2学習モデルとは別の基準モデル(後述の重み固定モデル、ターゲットネット)が同観測データに基づいて出力するデータ(出力値)を、第2学習モデルから出力される第2出力値として推測する。
【0049】
(ステップS123)
評価部177は、部分領域に関する観測データを重み固定モデルに入力し、第3出力値を出力する。重み固定モデルは、例えば、ニューラルネットワークモデルにおいて、重みが固定されたモデルに相当する。重み固定モデルは、基準となるニューラルネットワークモデルであって、ターゲットネット(Target Net)と称される。重み固定モデルと第2学習モデルとは、異なるニューラルネットワークのモデルであって、例えば、中間層の数などのハイパーパラメータが異なる。また、重み固定モデルと第2学習モデルとは、好適には、例えばイメージネット(Image Net)など、ニューラルネットワークモデルの構造自体が異なるモデルである。重み固定モデルに入力する観測データや重み固定モデルから得られる出力に、予め決められた範囲内の大きさの微小ノイズを人為的に加えたり、重み固定モデルから出力される値の平均や分散といった統計量が観測データと一致するように調整したりすることで、実際の観測データで得られる値とは値そのものは違っていても、観測データとの統計的な性質が似た形になるように、重み固定モデルは設定されても良い。
【0050】
(ステップS124)
評価部177は、第2出力値と第3出力値との差分を計算する。次いで、評価部177は、算出された差分と損失関数とに基づいて、損失(2乗誤差)を算出する。この差分は、不確実性評価モデルが出力する不確実性指標に相当する。
【0051】
(ステップS125)
評価部177は、誤差逆伝播法または確率的勾配降下法などの既知の手法により、損失を低減するように第2学習モデルにおけるパラメータを更新する。
【0052】
(ステップS126)
パラメータの更新回数が所定回数であれば(ステップS126のYes)、ステップS128の処理が実行される。このとき、第2学習モデルは、学習済みモデルに相当し、例えば、プレディクターネット(Predictor Net)と称される。第2学習モデルに対する学習は、自己教師あり学習に相当する。パラメータの更新回数が所定回数でなければ(ステップS126のNo)、ステップS127の処理が実行される。なお、本ステップにおける処理は、パラメータの更新回数と所定回数との比較に限定されない。例えば、第1学習モデルに対する学習が収束するまで、ステップS121乃至ステップS126の処理が繰り返されてもよい。第2学習モデルに対する学習の収束とは、例えば、第2出力値と第3出力値との差分が所定の値以下となる場合である。
【0053】
(ステップS127)
取得部173は、観測データにおいて、ステップS121における部分領域とは異なる他の部分領域を設定する。取得部173は、他の部分領域の位置を制御部181に出力する。
【0054】
(ステップS128)
評価部177は、プレディクターネットとターゲットネットとをまとめて、不確実性評価モデルとして設定する。このとき、不確実性評価モデルは、RND(Random Network Distillation)モデルに相当する。このとき、不確実性評価モデルは、入力された観測データが学習時に用いられたデータに近いかどうか、すなわち類似性の度合いを評価するモデルに相当する。評価部177は、不確実性評価モデルを、把持推定装置17におけるメモリに記憶する。このとき、不確実性評価モデルからの出力は、重み固定モデルからの出力と学習済み不確実性評価モデルからの出力との差異を示す値であって、例えば、0(差異なし)から1(差異最大)の範囲で表される。不確実性評価モデルからの出力が0の場合、不確実性の度合いは0に相当し、信頼度は最大となる。一方、不確実性評価モデルからの出力が1の場合、不確実性の度合いは最大であって、信頼度は0に相当する。以上により、評価モデル生成処理は終了する。
【0055】
図13は、RNDモデルとして実行される不確実性評価モデルの概要の一例を示す図である。図13に示すように、RNDモデルにおいて、部分領域におけるRGB画像(Cropped RGB)と部分領域におけるD画像(Cropped depth)とが、プレディクターネットとターゲットネットとにそれぞれ入力される。RNDモデルは、プレディクターネットからに出力とターゲットネットからの出力との差分を、不確実性指標(推定誤差)として出力する。
【0056】
以上に述べた実施形態に係る評価モデル生成処理によれば、把持推定装置17において用いられる不確実性評価モデルは、観測データが入力されると、当該観測データに基づいてターゲットネットが出力するデータと同じデータを出力するように、第2学習モデルを学習することにより生成される。
【0057】
上記推定モデル生成処理と評価モデル生成処理とは、それぞれ別に実行される例を説明したが、把持量推定モデルと不確実性評価モデルとは、同時に生成することも可能である。このとき、把持量推定モデルと不確実性評価モデルを合わせて、把持量不確実性推定モデルと呼ぶ(図15参照)。以下、把持量不確実性推定モデルを生成する処理(以下、モデル生成処理と呼ぶ)について説明する。図14は、モデル生成処理の手順の一例を示すフローチャートである。図14におけるステップS141、S142、S144、S145、S148、S149の処理は、図11におけるステップS111、S112、S113、S114、S116、S117の処理とそれぞれ同様なため、説明は省略する。
【0058】
(モデル生成処理)
(ステップS143)
評価部177は、部分領域に関する観測データを第3学習モデルに入力し、把持装置11で掴み取る把持対象133の推定量の誤差量を出力する。誤差量は、部分領域において実際に把持装置11により把持された把持対象133の把持量の実測値と、把持量推定モデルにより出力された推定量との差分に相当する。すなわち第3学習モデルは、部分領域に関する観測データに基づいて、当該部分領域から掴み取られる把持対象133の推定量の誤差(把持量の推定誤差)を推定する。この誤差(誤差量)は、不確実度(不確実性指標)に相当する。
【0059】
(ステップS146)
推定部175は、第1出力値(推定量)と実測値との差分(以下、第1差分と呼ぶ)を計算する。評価部177は、誤差量と第1差分との差分(以下、第2差分と呼ぶ)を計算する。
【0060】
(ステップS147)
推定部175は、例えば、第1差分を損失関数に適用することにより、第1損失(2乗誤差)を算出する。次いで、推定部175は、誤差逆伝播法または確率的勾配降下法などの既知の手法により、第1損失を低減するように第1学習モデルにおけるパラメータを更新する。評価部177は、例えば、第2差分を損失関数に適用することにより、第2損失(2乗誤差)を算出する。次いで、評価部177は、誤差逆伝播法または確率的勾配降下法などの既知の手法により、第2損失を低減するように第3学習モデルにおけるパラメータを更新する。
【0061】
(ステップS150)
推定部175は、学習済みの第1学習モデルを、把持量推定モデルとして設定する。評価部177は、学習済みの第3学習モデルを、不確実性評価モデルとして設定する。このとき、不確実性評価モデルは、把持量推定モデルによって推定された把持量の推定誤差(不確実度)を推定する誤差推定(Error Estimation)モデルに相当する。具体的には、推定部175および評価部177は、学習済みの第1学習モデルと学習済みの第3学習モデルとをまとめて、把持量不確実性推定モデルとして設定する。推定部175および評価部177は、設定された把持量不確実性推定モデルを、把持推定装置17におけるメモリに記憶する。このとき、図8に示す把持処理におけるステップS802とステップS803との処理は、次のようにまとめられることとなる。すなわち、ステップS802およびステップS803における処理は、各部分領域について、観測データを把持量不確実性推定モデルに入力することで、推定量と不確実度(不確実性指標)とが出力されることとなる。モデル生成処理における第3学習モデルに対する学習は、自己教師あり学習に相当する。
【0062】
図15は、把持量不確実性推定モデルの概要の一例を示す図である。図15に示すように、把持量不確実性推定モデルには、部分領域におけるRGB画像(Cropped RGB)と部分領域におけるD画像(Cropped depth)とが、入力される。把持量不確実性推定モデルは、推定量と不確実度(不確実性指標)とを出力する。
【0063】
なお、上述した把持量不確実性推定モデルは、第1学習モデル(把持量推定モデル)と第3学習モデル(不確実性評価モデル)といった別々もモデルを合わせたものであった。このため、次の効果が得られる。把持量推定モデルと不確実性評価モデルとを独立して学習できるため、モデルごとに別々にパラメータチューニングが可能となる。また、把持量推定モデルと不確実性評価モデルとの組み合わせを、適宜、自由に選択でき、上記の誤差推定モデルに代えてRNDモデルを組み合わせてもよいし、両モデルを組み合わせてもよい。
【0064】
しかしその一方、把持量不確実性推定モデルを1つのモデルで構成することもできる。すなわち、部分領域に関する観測データを入力すると把持量の推定量およびその推定量の誤差量を出力する1つのモデル(好適には1つのニューラルネットワークモデル)を学習し、この学習済みモデルを把持量不確実性推定モデルとして設定することもできる。1つのモデルで学習することによる効果は、学習時間の短縮化、モデルを記憶するメモリの容量の少量化、が挙げられる。このモデルの学習は、例えば次の手順で行われる。推定部175および評価部177は、観測データをモデルに入力し、把持量の推定量とその推定量の誤差量を出力する。推定部175および評価部177は、出力された推定量に関する第1損失と、出力された誤差量に関する第2損失とを、算出し、算出された第1損失と第2損失とを足し合わせて合計損失を算出する。推定部175および評価部177は、誤差逆伝播法または確率的勾配降下法などの既知の手法により、合計損失を低減するようにモデルにおけるパラメータを更新する。このように学習されたモデルが把持量不確実性推定モデルとして得られる。
【0065】
上記説明では、不確実性評価モデルは、RNDモデルまたは誤差推定モデルとして説明した。なお、不確実性評価モデルは、RNDモデルまたは誤差推定モデルに限定されず他の手法で実現することも可能である。例えば、不確実性評価モデルとしては、複数の把持量推定モデルを用いたアンサンブルにより実現されてもよい。アンサンブルによる不確実性評価モデル(以下、アンサンブルモデルと呼ぶ)とは、例えば、学習されるニューラルネットワークモデルの構造が異なっていたり、学習データが異なっていたりする複数の把持量推定モデルを用いて、各把持量推定モデルからの出力(推定量)のバラつき(分散)を不確実性指標(例えば不確実度)として用いることにある。
【0066】
図16は、アンサンブルモデルにより実現される把持量不確実性推定モデルの概要の一例を示す図である。図16に示すようにアンサンブルモデルは、複数の把持量推定モデルを有する。評価部177は、複数の把持量推定モデル各々に、部分領域におけるRGB画像(Cropped RGB)と部分領域におけるD画像(Cropped depth)とを、入力する。評価部177は、アンサンブルモデルにおける複数の把持量推定モデルからの出力(推定量)に基づいて、不確実性指標を計算する。計算される不確実性指標は、例えば、複数の推定量に基づいて正規化された標準偏差や分散に相当する。これにより、評価部177は、不確実性指標を出力する。なお、推定部175は、アンサンブルモデルにおける複数の把持量推定モデルから出力された複数の推定量の平均(平均推定量)を算出し、ステップS802における推定量として出力してもよい。
【0067】
以上に述べた実施形態に係るアンサンブルモデル生成処理によれば、把持推定装置17において用いられるアンサンブルモデルは、学習済みの複数の把持量推定モデルを用いて、各把持量推定モデルからの出力(推定量)のバラつきを、不確実性指標として用いることができる。
【0068】
本実施形態に係るモデル学習装置によれば、把持対象133の観測データを取得し、把持装置11により把持された把持対象133の把持量の実測値を第1学習モデルの教師データとし、観測データを第1学習モデルへの入力データとして、第1学習モデルを学習して、観測データを入力として把持量(推定量)を出力する把持量推定モデルを生成する。把持量推定モデルを生成する第1モデル生成部は、例えば推定部175により実現される。また、本学習装置によれば、観測データが入力されて不確実性指標を出力する学習モデルを自己教師あり学習によって学習することで、入力された観測データから、推定された把持量(推定量)だけが把持される不確実性指標を出力する不確実性評価モデルを生成する。この自己教師あり学習の教師データの一例は、「観測データを把持量推定モデルに入力して出力された把持量(推定量)と実測値との差分」または「観測データを所定のモデルに入力して出力された第1出力値と観測データを学習モデルに入力して出力された第2出力値との差分」である。不確実性評価モデルを生成する第2モデル生成部は、例えば評価部177により実現される。なお、第1モデル生成部および第2モデル生成部のいずれか一方、あるいは、両方あわせて、モデル生成部とよんでよい。なお、第1モデル生成部および第2モデル生成部は、把持推定装置17に別途設けられてもよい。また、モデル学習装置は、モデル学習に関し、把持量推定モデルと不確実性評価モデルの両方を生成する必要は必ずしもなく、何れか一方の必要なモデルを生成するようにしてもよい。
【0069】
以上のことから、本実施形態に係る把持推定装置17によれば、変形しやすく、個々の粒子の相互作用が大きく、正確なシミュレーションやモデル化が困難であって、例えば、食品の劣化、把持による損傷、湿気などの要因から同じ食品を繰り返し利用して訓練データを集めること、すなわち十分な訓練データの収集が困難な粒状の食品の把持対象133に関して、把持量推定モデルによる出力結果の信頼性が低くなったとしても、すなわち少ない学習データに起因して把持量推定モデルが不安定になったとしても、推定された把持量の不完全性に対処するために、自己教師あり学習で、推定量だけが把持される不確実性を不確実性評価モデルによりモデル化し、ユーザが指定した把持量(目標量)に近いもののうち最も信頼性の高い把持位置で、把持対象133を把持することができる。
【0070】
すなわち、本実施形態に係る把持推定装置17によれば、把持量推定モデルからの出力結果のうち最も信頼性が高い把持位置を、不確実性評価モデルからの出力に基づいて選択することができるため、従来に比べて短時間で学習用データを収集して短時間で把持量推定モデル、不確実性評価モデルおよび把持量不確実性推定モデルを学習したとしても、把持対象133に対する目標量の把持を、精度よく実現することができる。
【0071】
推定モデル生成処理、不確実性モデル生成処理およびモデル生成処理などにおける技術的思想をモデル生成方法(モデル製造方法と称されてもよい)で実現する場合、モデル生成方法は、実施形態と同様な処理手順によって、把持量推定モデルおよび不確実性評価モデルを生成する。また、当該モデル生成方法は、モデル学習装置により実行される。
【0072】
上述の通り、本実施形態によれば把持量の推定とその推定の不確実性の評価を行ってグリッパによる把持を行うことで、目標量の把持対象を把持しようとするものであるが、グリッパによって把持された実際の量が目標量を上回る場合がある。このような場合に備えて、本実施形態に係る把持推定装置17は、実際に把持された把持対象のうち余剰量をグリッパから落とすことで目標量の把持を達成するようにしてもよい。余剰量を落とす方法の一例として、閉じたグリッパを開放時間x(例えば0.5秒)だけ、隙間幅y(例えば0.5ミリ)だけ開ける方法について説明する。
【0073】
(方法1)
推定部175は、グリッパの実際の把持量p、グリッパ開放時間x、隙間幅yを入力、隙間から落ちる把持対象の量zを出力とする学習モデル(好適にはニューラルネットワークモデル)を学習し、学習モデルを把持推定装置17におけるメモリに記憶する。この学習は、入力p、x、yを学習モデルに入力して出力zを取得し、その出力zと、グリッパが実際に把持している量が把持量pであるときに開放時間xだけ隙間幅yを開けた場合にグリッパから実際に落下した把持対象の量(落下量)z’とに基づく損失を計算し、その損失に基づく誤差逆伝播法または確率的勾配降下法などの既知の手法により、損失を低減する方向に学習モデルのパラメータを更新する。そして推定部175は、メモリに記憶されたこの学習済みモデルを用いて、余剰量をグリッパから落として把持量を目標量とするためのグリッパの制御量x、yを求める。具体的には、推定部175は、(1)制御量の候補x’およびy’に値を設定し、(2)そのx’およびy’と現在の把持量pとをこの学習済モデルに入力して落下量zを推定し、この落下量zが、現在の把持量pと目標量との差分に近いか(つまりこの差分から所定範囲内(例えば±0.5g以内)か)を判定する。(3)近ければ、推定部175は、このx’とy’をグリッパの制御量として制御部181に渡す。(4)近くなければ、推定部175は、x’およびy’の一方あるいは両方に別の値を設定し、処理(2)に戻る。制御部181は、渡されたこの制御量にしたがってグリッパの開放を制御することで、グリッパから把持対象の余剰量を落として目標量の把持を達成する。
【0074】
(方法2)
方法1では学習モデルの出力zが落下量であったが、グリッパに残る把持対象の残存量であってもよい。この場合でも、方法1と同様の枠組みでモデルを学習できる。この場合、推定部175は、方法1の落下量を残存量zと読み替えて、(2)の判定において、残存量zが目標量に近いかを判定すればよい。
【0075】
(方法3)
方法1において落下量を推定するのに学習済みモデルを利用したが、把持量p、開放時間x、隙間幅y、落下量zを項目として持つテーブルを利用してもよい。この場合、テーブル中のp、x、y、zの各組の値を事前に実験的に求めたり、実験的に求めた値どうしを補間して求めたりしておけばよい。余剰量を落とす場合、推定部175は、方法1の(2)の落下量zの推定において、x’およびy’と現在の把持量pとをキーとしてテーブルを検索して落下量zを推定すればよい。あるいは、推定部175は、現在の把持量pと目標量との差分を落下量zとみなし、現在の把持量pと落下量zをキーとしてテーブルを検索して制御量xおよびyを特定し、それらxおよびyをグリッパの制御量として制御部181に渡してもよい。
【0076】
(方法4)
方法3のテーブルの落下量zに代えてグリッパに残る残存量zを項目としてもよい。この場合でも方法3と同様にテーブルを用意しておくことができる。この場合、推定部175は、方法3で説明した落下量zの推定を残存量zの推定と読み替え、判定において推定された残存量zが目標量に近いかを判定すればよい。あるいは、推定部175は、目標量を残存量zとみなし、現在の把持量pと残存量zをキーとしてテーブルを検索して制御量xおよびyを特定し、それらxおよびyをグリッパの制御量として制御部181に渡してもよい。
【0077】
以上の方法1~4についても、落下量zあるいは残存量zの不確実性を評価するようにしてもよい。この場合、所望の落下量zあるいは残存量zを得るための制御量x、yを選択する際に不確実性が小さい制御量x、yを選択すればよい。
【0078】
前述した実施形態における各装置(把持推定装置17及び/又はコントローラ171など)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)又はGPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置(把持推定装置17及び/又はコントローラ171など)の少なくとも一部の機能を実現するソフトウェアを、フレキシブルディスク、CD-ROM(Compact Disc-Read Only Memory)又はUSB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアがASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
【0079】
ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
【0080】
図17は、前述した実施形態における各装置(把持推定装置17及び/又はコントローラ171など)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ811と、主記憶装置812(メモリ)と、補助記憶装置813(メモリ)と、ネットワークインタフェース814と、デバイスインタフェース815と、を備え、これらがバス816を介して接続されたコンピュータ81として実現されてもよい。
【0081】
図17のコンピュータ81は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図17では、1台のコンピュータ81が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース814等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(把持推定装置17及び/又はコントローラ171など)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
【0082】
前述した実施形態における各装置(把持推定装置17及び/又はコントローラ171など)の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ81と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0083】
プロセッサ811は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA、又はASIC等)であってもよい。また、プロセッサ811は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ811は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ811は、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0084】
プロセッサ811は、コンピュータ81の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ811は、コンピュータ81のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ81を構成する各構成要素を制御してもよい。
【0085】
前述した実施形態における各装置(把持推定装置17及び/又はコントローラ171など)は、1又は複数のプロセッサ811により実現されてもよい。ここで、プロセッサ811は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0086】
主記憶装置812は、プロセッサ811が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置812に記憶された情報がプロセッサ811により読み出される。補助記憶装置813は、主記憶装置812以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における各装置(把持推定装置17及び/又はコントローラ171など)において各種データを保存するための記憶装置は、主記憶装置812又は補助記憶装置813により実現されてもよく、プロセッサ811に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶部105は、主記憶装置812又は補助記憶装置813により実現されてもよい。
【0087】
記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における各装置(把持推定装置17及び/又はコントローラ171など)が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ))とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0088】
ネットワークインタフェース814は、無線又は有線により、通信ネットワーク82に接続するためのインタフェースである。ネットワークインタフェース814は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース814により、通信ネットワーク82を介して接続された外部装置83aと情報のやり取りが行われてもよい。なお、通信ネットワーク82は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等の何れか、又は、それらの組み合わせであってよく、コンピュータ81と外部装置83aとの間で情報のやり取りが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
【0089】
デバイスインタフェース815は、外部装置83bと直接接続するUSB等のインタフェースである。
【0090】
外部装置83aはコンピュータ81とネットワークを介して接続されている装置である。外部装置83bはコンピュータ81と直接接続されている装置である。
【0091】
外部装置83a又は外部装置83bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、又はタッチパネル等のデバイスであり、取得した情報をコンピュータ81に与える。また、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
【0092】
また、外部装置83a又は外部装置83bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
【0093】
また、外部装置83aまた外部装置83bは、記憶装置(メモリ)であってもよい。例えば、外部装置83aはネットワークストレージ等であってもよく、外部装置83bはHDD等のストレージであってもよい。
【0094】
また、外部装置83a又は外部装置83bは、前述した実施形態における各装置(把持推定装置17及び/又はコントローラ171など)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ81は、外部装置83a又は外部装置83bの処理結果の一部又は全部を送信又は受信してもよい。例えば、外部装置83a又は外部装置83bは、前述した実施形態における把持装置11と、観測装置13と、計量装置15と、把持推定装置17などのうちの少なくとも1つであっても構わない。
【0095】
本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c、又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
【0096】
本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
【0097】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0098】
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。
【0099】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0100】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0101】
本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0102】
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は電子回路を含む装置等を含んでよい。
【0103】
本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置(メモリ)のうち個々の記憶装置(メモリ)は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。
【0104】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、数値又は数式を説明に用いている場合は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17