(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-26
(45)【発行日】2023-02-03
(54)【発明の名称】制御装置、把持システム、方法、およびプログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20230127BHJP
【FI】
B25J13/08 A
(21)【出願番号】P 2020124576
(22)【出願日】2020-07-21
【審査請求日】2022-10-27
【早期審査対象出願】
(73)【特許権者】
【識別番号】517255566
【氏名又は名称】株式会社エクサウィザーズ
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】サヒリ モハッメド
(72)【発明者】
【氏名】浅谷 学嗣
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2009-172685(JP,A)
【文献】特開2019-188516(JP,A)
【文献】特開2019-093461(JP,A)
【文献】特開2020-082217(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
物体を被写体として含む画像を取得する取得部と、
前記画像を入力とする推測モデルを用いて、前記物体の複数の把持候補位置を推測する推測部と、
前記複数の把持候補位置を参照して、把持装置に前記物体を把持させる把持位置を決定する決定部と
を備え
、
前記推測モデルから出力される情報は、前記複数の把持候補位置の各々を特定する前記画像上の領域を示す情報を含み、
前記決定部は、前記複数の把持候補位置の各々について、前記画像上の領域と、前記画像上で前記物体を示す物体領域との関係性に応じた評価値を算出し、算出した評価値を参照して前記把持位置を決定する、制御装置。
【請求項2】
物体を被写体として含む画像を取得する取得部と、
前記画像を入力とする推測モデルを用いて、前記物体の複数の把持候補位置を推測する推測部と、
前記複数の把持候補位置を参照して、把持装置に前記物体を把持させる把持位置を決定する決定部と、
を備え
、
前記推測モデルから出力される情報は、前記複数の把持候補位置の各々を特定する前記画像上の領域を示す情報を含み、
前記決定部は、前記複数の把持候補位置の各々を、前記画像上の領域と、前記画像上で前記物体を示す物体領域との関係性に応じて修正し、修正後の前記複数の把持候補位置を参照して、前記把持位置を決定する、制御装置。
【請求項3】
前記関係性は、前記画像上の領域の面積と当該領域において前記物体領域が占める部分領域の面積との関係、前記画像上の領域が沿う第1方向と前記部分領域が沿う第2方向との関係、および前記画像上の領域の中心と前記部分領域の中心との関係、のうち一部または全部を含む、
請求項
1または2に記載の制御装置。
【請求項4】
前記推測モデルから出力される情報は、前記複数の把持候補位置の各々に関する把持成功確率を含み、
前記決定部は、前記把持成功確率を参照して前記把持位置を決定する、
請求項1から
3の何れか1項に記載の制御装置。
【請求項5】
請求項1から
4の何れか1項に記載の制御装置と、
前記画像を撮像する撮像装置と、
前記把持装置と、を備えた把持システムであって、
前記制御装置は、前記決定部が決定した把持位置において前記物体を把持するよう前記把持装置を制御する制御部をさらに備える、把持システム。
【請求項6】
前記推測モデルを、機械学習により生成する学習装置、をさらに備えている、請求項
5に記載の把持システム。
【請求項7】
1または複数のコンピュータが実行する方法であって、
物体を被写体として含む画像を取得するステップと、
前記画像を入力とする推測モデルを用いて、前記物体の複数の把持候補位置を推測するステップと、
前記複数の把持候補位置を参照して、把持装置に前記物体を把持させる把持位置を決定するステップと、を含
み、
前記推測モデルから出力される情報は、前記複数の把持候補位置の各々を特定する前記画像上の領域を示す情報を含み、
前記決定するステップは、前記複数の把持候補位置の各々について、前記画像上の領域と、前記画像上で前記物体を示す物体領域との関係性に応じた評価値を算出し、算出した評価値を参照して前記把持位置を決定する、方法。
【請求項8】
1または複数のコンピュータが実行する方法であって、
物体を被写体として含む画像を取得するステップと、
前記画像を入力とする推測モデルを用いて、前記物体の複数の把持候補位置を推測するステップと、
前記複数の把持候補位置を参照して、把持装置に前記物体を把持させる把持位置を決定するステップと、を含
み、
前記推測モデルから出力される情報は、前記複数の把持候補位置の各々を特定する前記画像上の領域を示す情報を含み、
前記決定するステップは、前記複数の把持候補位置の各々を、前記画像上の領域と、前記画像上で前記物体を示す物体領域との関係性に応じて修正し、修正後の前記複数の把持候補位置を参照して、前記把持位置を決定する、方法。
【請求項9】
請求項1から
4の何れか1項に記載の制御装置として1または複数のコンピュータを機能させるためのプログラムであって、上記各部として1または複数のコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体において把持装置に把持させる部分を決定する技術に関する。
【背景技術】
【0002】
物体において把持装置に把持させる部分を決定する技術が知られている。例えば、特許文献1に記載された技術は、物体を撮像した画像から物体の輪郭線を検出し、輪郭線を所定量外側にオフセットさせたオフセット線に基づいて、把持装置に把持させる把持位置を決定する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-82217号公報(2020年6月4日公開)
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載された技術は、物体において把持装置に把持させる把持位置をさらに精度よく決定するよう改善する余地がある。
【0005】
本発明の一態様は、物体において把持装置に把持させる把持位置を精度よく決定する技術を実現することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明の一態様に係る制御装置は、物体を被写体として含む画像を取得する取得部と、前記画像を入力とする推測モデルを用いて、前記物体の複数の把持候補位置を推測する推測部と、前記複数の把持候補位置を参照して、把持装置に前記物体を把持させる把持位置を決定する決定部と、を備えている。
【0007】
本発明の一態様に係る制御装置は、コンピュータによって実現してもよく、この場合には、コンピュータを前記制御装置が備える各部(ソフトウェア要素)として動作させることにより前記制御装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【0008】
本発明の一態様によれば、物体において把持装置に把持させる把持位置を精度よく決定する技術を実現することができる。
【図面の簡単な説明】
【0009】
【
図1】本発明の一実施形態に係る把持システムの概略を示すブロック図である。
【
図2】本発明の一実施形態に係る把持システムを構成する各装置の機能的な構成を示すブロック図である。
【
図3】本発明の一実施形態に係る把持システムが実行する処理の流れを示すフローチャートである。
【
図4】把持対象物を選択する処理の具体例を説明する図である。
【
図5】推測モデルに入力される画像の具体例を説明する図である。
【
図6】推測モデルの構成例を模式的に示す図である。
【
図7】バウンディングボックスを説明する模式図である。
【
図8】本発明の一実施形態に係る把持システムが推測モデルを生成する処理の流れを示すフローチャートである。
【
図9】教師データとして用いられる画像の一例を示す模式図である。
【
図10】把持位置を決定する処理の詳細な流れを示すフローチャートである。
【
図11】把持位置を決定する処理の変形例を示すフローチャートである。
【
図12】バウンディングボックスと物体領域との関係性を説明する模式図である。
【
図13】把持位置を決定する処理の他の変形例を示すフローチャートである。
【
図14】把持候補位置を修正する処理の具体例を説明する図である。
【
図15】本発明の一実施形態に係る把持システムを構成する各装置の物理的構成を例示したブロック図である。
【発明を実施するための形態】
【0010】
〔実施形態〕
以下、本発明の一実施形態に係る把持システム1について説明する。
【0011】
<把持システム1の概要>
図1は、本発明の一実施形態に係る把持システム1の概略を示すブロック図である。
図1に示すように、把持システム1は、制御装置10と、学習装置20と、ロボットアーム30と、撮像装置40とを含む。把持システム1は、載置台wの上に載置された物体(obj1、またはobj2)を把持するようロボットアーム30を制御するシステムである。
【0012】
制御装置10は、学習装置20、ロボットアーム30、および撮像装置40と、それぞれ通信可能に接続される。ロボットアーム30は、本発明における把持装置の一例である。例えば、制御装置10と各装置とは、ネットワークを介して接続される。この場合、ネットワークは、有線LAN(Local Area Network)、無線LAN、インターネット、公衆回線網、モバイルデータ通信網、またはこれらの組み合わせである。
【0013】
なお、
図1に示す例では、制御装置10および学習装置20は、ネットワークを介して通信可能に接続された物理的に異なる装置であるが、これは本実施形態を限定するものではない。例えば、制御装置10および学習装置20は、物理的に1つのコンピュータによって一体に形成されていてもよい。また、
図1に示す例では、制御装置10およびロボットアーム30は、ネットワークを介して通信可能に接続された物理的に異なる装置であるが、これは本実施形態を限定するものではない。例えば、制御装置10は、ロボットアーム30に内蔵されていてもよい。また、
図1に示す例では、ロボットアーム30および撮像装置40は、物理的に連結された異なる装置であるが、これは本実施形態を限定するものではない。例えば、撮像装置40は、ロボットアーム30に内蔵されていてもよい。
【0014】
また、
図1に示す例では、把持システム1が、ロボットアーム30および撮像装置40を1つずつ含んでいるが、これは本実施形態を限定するものではない。把持システム1は、複数のロボットアーム30および複数の撮像装置40を含んでいてもよい。また、
図1に示す例では、1つのロボットアーム30に対して1つの撮像装置40が設けられているが、これは本実施形態を限定するものではない。把持システム1において、1つのロボットアーム30に対応して複数の撮像装置40が設けられていてもよいし、複数のロボットアーム30に対応して1つの撮像装置40が設けられていてもよい。
【0015】
把持システム1において、制御装置10は、物体を被写体として含む画像を取得し、取得した画像を入力とする推測モデルを用いて、当該物体の複数の把持候補位置を推測する。また、制御装置10は、推測した複数の把持候補位置を参照して、ロボットアーム30に物体を把持させる把持位置を決定する。
【0016】
(物体を被写体として含む画像)
物体を被写体として含む画像とは、物体が撮像されることにより生成された画像である。本実施形態において、当該画像は、少なくとも1つの物体を被写体として含む。例えば、撮像装置40が物体obj1を撮像した画像、物体obj2を撮像した画像、および物体obj1、obj2の両方を撮像した画像は、それぞれ、物体を被写体として含む画像の一例である。
【0017】
(把持候補位置、および把持位置)
把持候補位置とは、ロボットアーム30に物体を把持させる把持位置の候補である。把持位置とは、現実空間に存在する物体において、当該物体をロボットアーム30に把持させる把持部分の現実空間における位置である。本実施形態では、把持位置および把持候補位置は、画像上の領域によって特定される。換言すると、当該画像上の領域は、把持部分の現実空間における位置を画像上において示す領域である。画像上の領域の詳細については後述する。
【0018】
<把持システム1の効果>
把持システム1によれば、推測モデルを用いて推測した複数の把持候補位置を参照して把持位置を決定するので、物体において把持装置に把持させる把持位置を精度よく決定することができる。
【0019】
<把持システム1の機能的な構成>
続いて、把持システム1を構成する各装置の機能的な構成について説明する。
図2は、各装置の機能的な構成を示すブロック図である。
【0020】
(制御装置10の機能的な構成)
図2に示すように、制御装置10は、制御部11と、記憶部12とを含む。制御部11は、取得部111と、推測部112と、決定部113とを含む。
【0021】
取得部111は、物体を被写体として含む画像を取得する。
【0022】
推測部112は、推測モデル221を用いて、物体の複数の把持候補位置を推測する。本実施形態では、推測モデル221は、学習装置20によってあらかじめ生成され、学習装置20に記憶されている。推測部112は、学習装置20に画像を送信することにより、当該画像を入力として推測モデル221から出力される情報を、学習装置20から受信する。推測モデル221の詳細については後述する。
【0023】
決定部113は、複数の把持候補位置を参照して、ロボットアーム30に把持させる把持位置を決定する。
【0024】
記憶部12は、制御部11が参照する各種データを記憶する。
【0025】
(学習装置20の機能的な構成)
図2に示すように、学習装置20は、制御部21と、記憶部22とを含む。制御部21は、学習部211を含む。
【0026】
学習部211は、物体を被写体として含む画像を入力とする推測モデル221であって、物体の複数の把持候補位置を推測するために用いる推測モデル221を、機械学習により生成する。推測モデル221の詳細については後述する。学習部211は、制御装置10から画像を受信すると、当該画像を推測モデル221に入力し、推測モデル221から出力される情報を、制御装置10に対して送信する。
【0027】
記憶部22は、制御部21が参照する各種データを記憶する。また、記憶部22は、学習部211が生成した推測モデル221を記憶する。
【0028】
(ロボットアーム30の構成)
ロボットアーム30は、制御装置10の制御に基づいて、物体を把持する把持動作を実行する。具体的には、
図1および
図2に示すように、ロボットアーム30は、複数の回転軸を有する多関節ロボットであり、台座部31と、ベース部32と、アーム部33と、ハンド部34とを含む。
【0029】
台座部31は、ロボットアーム30の設置面に設置される。設置面とは、例えば、床であるが、これに限られない。台座部31は、制御装置10の制御に基づいて設置面を移動可能であり得る。例えば、台座部31は、設置面に接する車輪を有していてもよい。
【0030】
ベース部32は、台座部31に対し、旋回可能に連結される。
【0031】
アーム部33は、複数のアームを含む。各アームの基端部は、ベース部32または他のアームの先端部に対して、定められた軸まわりに回転可能に連結される。また、アーム部33の先端にはハンド部34が、定められた軸まわりに回転可能に接続される。また、アーム部33の先端付近には、撮像装置40が連結される。
【0032】
ハンド部34は、一対の指部34a、34bを含む。ハンド部34は、制御部11の制御に基づいて、指部34a、34bを互いに離れるように開く動作と、互いに接近するよう閉じる動作とを行う。上述したロボットアーム30の把持動作は、ハンド部34の開閉により実現される。
【0033】
ロボットアーム30は、制御部11の制御に基づいて、台座部31の移動、ベース部32の旋回、および各アームの回転の一部または全部を実行することにより、ハンド部34を所望の位置に移動する。
【0034】
(撮像装置40の構成)
撮像装置40は、制御装置10の制御に基づいて、載置台wの上に載置された物体obj1およびobj2の一部または全部を撮像した画像を生成する。例えば、撮像装置40の撮像方向および画角は、載置台wの上を撮像範囲とするよう、制御装置10の制御に基づいて変更される。
【0035】
<把持システム1の処理>
以上のように構成された把持システム1が実行する処理の流れについて、
図3を参照して説明する。
図3は、把持システム1が実行する処理の流れを示すフローチャートである。
【0036】
(ステップS101)
ステップS101において、制御装置10の取得部111は、物体を被写体として含む画像を取得する。例えば、取得部111は、撮像装置40から、載置台w上を撮像した画像を取得する。
図4に示す画像G101は、当該ステップにおいて取得された画像の一例である。画像G101は、載置台w上に載置された物体obj1およびobj2を被写体として含んでいる。
【0037】
(ステップS102)
ステップS102において、制御部11は、取得部111によって取得された画像から、1または複数の物体を検出する。画像に被写体として含まれる物体を検出する手法には、公知の手法を適用可能である。
図4に示す画像G102は、制御部11によって検出された物体を模式的に示している。この例では、制御部11は、画像G102において、物体obj1を含む領域R1、および物体obj2を含む領域R2を検出している。
【0038】
(ステップS103)
ステップS103において、制御部11は、画像から検出した1または複数の物体のうち、把持対象の物体を選択する。把持対象の物体を選択する条件は、予め定められている。例えば、制御部11は、画像において占める面積に関する条件(例えば、最も大きい)を満たす物体を、把持対象として選択してもよい。また、例えば、制御部11は、画像における位置に関する条件(例えば、中央に最も近い、右下に最も近い、等)を満たす物体を、把持対象として選択してもよい。
図4に示す画像G103は、把持対象として選択された物体を模式的に示している。この例では、画像における位置が右下に最も近いとの条件が適用されている。つまり、領域R1および領域R2のうち、領域R1が画像の右下に最も近い。そこで、制御部11は、領域R1に含まれる物体obj1を把持対象として選択している。ただし、把持対象の物体を選択する条件は、これらに限られない。
【0039】
(ステップS104)
ステップS104において、制御部11は、把持対象として選択した物体に応じて、当該物体の把持開始位置までの経路を生成する。具体的には、制御部11は、当該物体の現実空間における位置に応じて、把持開始位置を決定する。把持開始位置は、把持動作開始時の現実空間におけるロボットアーム30の位置である。また、制御部11は、ロボットアーム30の現実空間における現在位置から把持開始位置までの経路を生成する。把持開始位置までの経路を生成する手法には、公知の技術を適用可能である。
【0040】
(ステップS105)
ステップS105において、制御部11は、ロボットアーム30を、決定した経路にしたがって移動させるよう制御する。
【0041】
(ステップS106)
ステップS106において、取得部111は、推測モデル221に入力する画像を、撮像装置40から取得する。推測モデル221に入力する画像は、把持対象として選択した物体を含む画像である。具体的には、取得部111は、撮像範囲に選択した物体を含むように、撮像装置40の撮像方向および画角の一方または両方を制御する。例えば、撮影方向および画角は、撮像範囲に、選択した物体が含まれるとともに選択しなかった物体が含まれないよう制御されることが好ましい。ただし、これは、本実施形態を限定するものではない。例えば、選択した物体と選択しなかった物体とが近接している場合等では、撮像範囲に、選択した物体とともに選択しなかった物体が含まれていてもよい。また、制御部11は、当該撮像範囲を撮像するよう撮像装置40を制御する。また、取得部111は、撮像装置40から、当該撮像範囲を撮像した画像を取得する。
【0042】
図5は、当該ステップにおいて取得される、推測モデル221に入力する画像の一例を示す図である。
図5に示す画像G104は、ステップS103で選択した物体obj1を被写体として含み、選択しなかった物体obj2を被写体として含まない。
【0043】
(ステップS107)
ステップS107において、推測部112は、推測モデル221を用いて、画像に被写体として含まれる物体の複数の把持候補位置を推測する。具体的には、推測部112は、ステップS106で取得した画像を、学習装置20に送信する。学習装置20は、受信した画像を推測モデル221に入力し、推測モデル221から出力される情報を、制御装置10に送信する。制御装置10は、受信した情報が示す複数の把持候補位置を、推測した把持候補位置として取得する。
【0044】
(推測モデル221)
ここで、推測モデル221の詳細について説明する。推測モデル221は、物体を被写体として含む画像を入力として、当該物体における複数の把持候補位置の各々を少なくとも示す情報を出力するよう、機械学習により生成された学習済みのモデルである。推測モデル221から出力される情報は、複数の把持候補位置の各々を特定する画像上の領域を示す情報を含む。
【0045】
本実施形態では、推測モデル221は、CNN(Convolutional Neural Network、畳み込みニューラルネットワーク)である。
図6は、推測モデル221の構成例を模式的に示す図である。
【0046】
図6に示すように、推測モデル221は、入力層L0と、畳み込み層L1~L5と、全結合層L6~L8とを含む。全結合層L8は出力層であり、3つのサブレイヤL8-1~L8-3を含む。
【0047】
物体obj1を被写体として含む画像Gは、入力層L0に入力される。画像Gに被写体として含まれる物体obj1は、把持対象として選択された物体obj1である。画像Gは、把持対象として選択されなかった物体obj2を含まない。
【0048】
図6に示すように、サブレイヤL8-1から出力される出力情報g1は、把持候補位置CP1を示す情報と、把持成功確率p1を示す情報とを含む。サブレイヤL8-2から出力される出力情報g2は、把持候補位置CP2を示す情報と、把持成功確率p2を示す情報とを含む。サブレイヤL8-3から出力される出力情報g3は、把持候補位置CP3を示す情報と、把持成功確率p3を示す情報とを含む。把持候補位置CP1~CP3は、それぞれ、異なる位置を示す。ただし、これらを特に区別する必要がない場合には、単に出力情報g、把持候補位置CP、および把持成功確率pとも記載する。出力層L8におけるサブレイヤL8-1~L8-3の個数は、推測モデル221を用いて推測される把持候補位置CPの個数に対応している。
図6に示す例では、当該個数が3であるが、これは、本実施形態を限定するものではない。サブレイヤの個数、すなわち、推測される把持候補位置CPの個数は、2であってもよいし、4以上であってもよい。
【0049】
(把持候補位置、バウンディングボックス)
把持候補位置CPは、画像G上の領域によって特定される。本実施形態では、把持候補位置CPを特定する領域の形状は、矩形である。当該矩形領域を、以降、バウンディングボックスとも記載する。
【0050】
ここで、推測モデル221から出力される出力情報gは、次式(1)によって表される。
【0051】
g={x,y,θ,h,w,p}・・・(1)
式(1)に含まれる6つのパラメータのうち5つx,y,θ,h,およびwは、バウンディングボックスを表している。当該6つのパラメータのうち他の1つpは、当該バウンディングボックスが示す把持候補位置CPにおける把持成功確率を示す。把持成功確率pとは、当該把持候補位置CPにおいてロボットアーム30に把持動作を実行させた場合に物体obj1の把持に成功する確率である。
【0052】
図7は、バウンディングボックスを説明する模式図である。
図7に示すバウンディングボックスBBは、中心Cの座標(x,y)、傾きθ、短辺の長さh、および長辺の長さwによって特定される。ここでは、傾きθは、x軸に対する長辺の傾きを示している。ただし、傾きθは、画像Gに規定されるその他の軸を基準として表されたものであってもよい。
【0053】
バウンディングボックスBBの2つの短辺は、把持動作の開始前に指部34aおよび34bを配置する位置を示す。具体的には、2つの短辺のうち辺b1は、指部34aを配置する範囲を示す。辺b2は、指部34bを配置する範囲を示す。
【0054】
バウンディングボックスBBの長辺の長さwは、上述した配置位置に配置された指部34aおよび34b間の距離を表している。つまり、バウンディングボックスBBは、長辺が長いほど、把持動作の開始前にハンド部34を大きく開く必要があることを表す。
【0055】
(ステップS108)
ステップS108において、決定部113は、複数の把持候補位置CPを参照して、ロボットアーム30に物体を把持させる把持位置を決定する。決定した把持位置は、上述したバウンディングボックスBBで表される。当該ステップの詳細については後述する。
【0056】
(ステップS109)
ステップS109において、制御部11は、決定した把持位置において物体を把持するようロボットアーム30を制御する。具体的には、制御部11は、決定した把持位置にハンド部34を配置し、ロボットアーム30に把持動作を実行させる。
【0057】
例えば、
図7に示すバウンディングボックスBBが、決定した把持位置を表しているとする。この場合、制御部11は、バウンディングボックスBBの2つの短辺に対応する現実空間の配置位置を算出する。また、制御部11は、バウンディングボックスBBの長辺の長さwに対応する現実空間の距離を算出する。次に、制御部11は、指部34aおよび34bを、算出した距離だけ開くとともに算出した配置位置に配置するよう制御する。その後、制御部11は、ロボットアーム30を制御して把持動作を実行させる。具体的には、制御部11は、指部34aおよび34bを閉じるようハンド部34を制御することにより、ロボットアーム30に物体を把持させる。
【0058】
<推測モデル221の生成処理>
次に、ステップS107で用いる推測モデル221を生成する生成処理について説明する。
図8は、推測モデル221を生成する処理の詳細な流れを示すフローチャートである。
【0059】
(ステップS201)
ステップS201において、学習装置20の学習部211は、教師データとして用いる1または複数の画像を取得する。各画像は、物体を被写体として含む。また、各画像には、複数の把持候補位置CPおよびその把持成功確率pをそれぞれ示す情報が関連付けられている。
【0060】
また、学習部211は、取得した各画像に事前処理を施してから、教師データとして用いる。また、学習部211は、取得した各画像にデータオーギュメンテーション処理を施すことにより、教師データとして用いる画像の数を増加させる。
【0061】
(事前処理)
例えば、取得された各画像がRGB形式であるとする。この場合、学習部211は、(i)各画像に対して、グレースケール形式に変換する事前処理を行ってもよい。また、学習部211は、(ii)各画像に対して、エッジを検出する事前処理を行ってもよい。また、学習部211は、各画像に対して、(i)、(ii)を組み合わせた事前処理を行ってもよい。なお、学習部211は、事前処理を行うことなく、(iii)元のRGB形式の各画像を教師データとして用いてもよい。
【0062】
一例として、学習部211は、RGB形式からGGG形式に変換した各画像を教師データとして用いてもよい。ここで、GGG形式とは、3つのチャンネル(G、G、およびG)の各々にグレースケール画像を格納した形式である。各チャンネルが表すグレースケール画像は、同一のRGB形式の画像から生成された、互いに異なるグレースケール画像である。例えば、あるチャンネルが示すグレースケール画像は、他のチャンネルが示すグレースケール画像の明度を変更したものであってもよい。また、各チャンネルが示すグレースケール画像は、元のRGB形式の画像に対して、互いに異なるグレースケール変換処理を施すことにより生成されたものであってもよい。
【0063】
また、他の例として、学習部211は、RGB形式からCCG形式に変換した各画像を教師データとして用いてもよい。ここで、CCG形式とは、3つのチャンネルのうち2つのチャンネルの各々にエッジ画像を格納し、他の1つのチャンネル(G)にグレースケール画像を格納した形式である。例えば、2つのチャンネル(C、およびC)の各々が示すエッジ画像は、元のRGB形式の画像に対して、互いに異なるエッジ検出処理を施すことにより生成されたものであってもよい。
【0064】
(データオーギュメンテーション)
図9は、教師データとして用いられる画像の一例を示す模式図である。
図9において、画像G2~G8は、画像G1に対してデータオーギュメンテーション処理を施して生成した画像である。
【0065】
ここで、画像G1は、学習部211が取得した画像(例えば、RGB形式)、または、上述した事前処理を施した画像(例えば、GGG形式、またはGGG形式)である。画像G1は、物体obj2を被写体として含む。また、画像G1には、5つの把持候補位置CPを示すバウンディングボックスBB11~BB15が関連付けられている。また、図示はしていないが、各バウンディングボックスBB1~BB15には、それぞれ、把持成功確率pが関連付けられている。
【0066】
具体的には、画像G2は、画像G1を水平反転させることにより生成された画像である。画像G2に対して関連付けられるバウンディングボックスBB21~BB25は、画像G1上に示されたバウンディングボックスBB11~BB15を同様に水平反転させることにより生成される。
【0067】
また、画像G3は、画像G1を垂直反転させることにより生成された画像である。画像G3に対して関連付けられるバウンディングボックスBB31~BB35は、画像G1上に示されたバウンディングボックスBB11~BB15を同様に垂直反転させることにより生成される。
【0068】
また、画像G4は、画像G1を回転させることにより生成された画像である。画像G4に対して関連付けられるバウンディングボックスBB41~BB45は、画像G1上に示されたバウンディングボックスBB11~BB15を同様に回転させることにより生成される。
【0069】
また、画像G5は、画像G1を移動させることにより生成された画像である。画像G5に対して関連付けられるバウンディングボックスBB51~BB55は、画像G1上に示されたバウンディングボックスBB11~BB15を同様に移動させることにより生成される。
【0070】
また、画像G6は、画像G1を拡大することにより生成された画像である。画像G6に対して関連付けられるバウンディングボックスBB61~BB65は、画像G1上に示されたバウンディングボックスBB11~BB15を同様に拡大することにより生成される。
【0071】
また、画像G7は、画像G1を縮小することにより生成された画像である。画像G7に対して関連付けられるバウンディングボックスBB71~BB75は、画像G1上に示されたバウンディングボックスBB11~BB15を同様に縮小することにより生成される。
【0072】
また、画像G8は、画像G1から切り出すことにより生成された画像である。画像G8に対して関連付けられるバウンディングボックスBB81~BB85は、画像G1上に示されたバウンディングボックスBB11~BB15から同様に切り出すことにより生成される。
【0073】
学習部211は、このように、取得した画像G1に対して事前処理およびデータオーギュメンテーション処理を施した画像G1~G8を、教師データとして用いる。
【0074】
(ステップS202)
図6のステップS202において、学習部211は、各画像について、関連付けられた複数の把持候補位置CPのうち所定数を正解として選択する。所定数は、推測モデル221から出力する把持候補位置CPの個数であり、ここでは、3である。また、所定数の把持候補位置CPを選択する手法は、ここでは、ランダムであるとするが、その他の手法により所定数の把持候補位置CPを選択してもよい。
図9の例では、学習部211は、各画像Gi(i=1、2、・・・、8)について、バウンディングボックスBBi1~BBi5のうちランダムに3つを正解として選択する。
【0075】
(ステップS203)
ステップS203において、学習部211は、ステップS202で選択した複数の把持候補位置CPを正解として、推測モデル221を学習させる。具体的には、学習部211は、画像G1~G8をそれぞれ入力として、正解として選択した3つのバウンディングボックスBBおよびその把持成功確率pを出力するよう、推測モデル221を学習させる。
【0076】
(ステップS204)
ステップS204において、学習部211は、学習を終了するか否かを判断する。ステップS204でNoと判断された場合、学習部211は、ステップS202からの処理を繰り返す。例えば、ステップS204では、繰り返し回数が閾値を超えたか否かに基づいて、学習を終了するか否かを判断してもよい。また、ステップS204では、入力装置を介して入力されるユーザの指示に基づいて、学習を終了するか否かを判断してもよい。
【0077】
ここで、繰り返し処理においてステップS202でランダムに選択される所定数の把持候補位置CPは、前回のステップS202で選択された所定数の把持候補位置CPとは異なる可能性が高い。したがって、学習装置20は、同一の画像について正解となる把持候補位置CPの組み合わせを変えながら学習を繰り返すことができ、推測モデル221の推測精度を向上させることができる。
【0078】
<把持位置の決定処理>
次に、ステップS108における把持位置の決定処理の詳細について説明する。
図10は、把持位置の決定処理の詳細な流れを示すフローチャートである。
【0079】
(ステップS301)
ステップS301において、推測部112は、複数の把持候補位置CPの各々に関する把持成功確率pを取得する。具体的には、推測部112は、ステップS107において推測モデル221から出力された出力情報gを参照し、当該出力情報gに含まれる把持成功確率pを取得すればよい。
【0080】
(ステップS302)
ステップS302において、決定部113は、把持成功確率pを参照して把持位置を決定する。例えば、決定部113は、把持成功確率pが最大の把持候補位置CPを、把持位置として決定する。
【0081】
以上のように、本実施形態に係る把持システム1は、推測モデル221を用いて複数の把持候補位置CPおよび各位置の把持成功確率pを推測し、そのうち、把持成功確率pが最大の把持候補位置CPを把持位置として決定する。これにより、把持システム1は、物体においてロボットアーム30に把持させる把持位置として、把持に成功する可能性がより高い把持位置を決定することができる。
【0082】
〔変形例2〕
上述した実施形態に係る把持システム1は、決定部113による把持位置の決定処理を、以下の通り変形することが可能である。
【0083】
決定部113は、複数の把持候補位置CPの各々について、当該把持候補位置CPを特定する画像上の領域(バウンディングボックスBB)と、画像上で物体を示す物体領域との関係性に応じた評価値を算出する。また、決定部113は、算出した評価値を参照して把持位置を決定する。ここで、バウンディングボックスBBと物体領域との関係性とは、(i)バウンディングボックスBBの面積と、当該バウンディングボックスBBにおいて物体領域が占める部分領域の面積との関係、(ii)バウンディングボックスBBが沿う第1方向と、上述した部分領域が沿う第2方向との関係、および(iii)バウンディングボックスBBの中心と、上述した部分領域の中心との関係、のうち一部または全部を含む。これらの関係性の詳細については後述する。
【0084】
本変形例に係る把持システム1では、
図2のステップS108における把持位置の決定処理が、以下のように変形される。
図11は、本変形例における把持位置の決定処理の詳細な流れを示すフローチャートである。制御装置10の決定部113は、ステップS107で得られた複数の把持候補位置CPの各々について、ステップS401~S405の処理を実行する。
【0085】
(ステップS401)
ステップS401において、決定部113は、当該把持候補位置CPを特定するバウンディングボックスBBと上述した部分領域との関係を表す情報を求める。具体的には、決定部113は、当該関係を表す情報として、面積比α2を算出する。
【0086】
図12は、バウンディングボックスBBと物体領域AAとの関係性を説明するための模式図である。
図12において、面積比α2は、バウンディングボックスBBの面積に対する部分領域Aの面積の割合である。部分領域Aは、物体領域AA(太線で囲まれた領域)のうち、バウンディングボックスBBに含まれる部分である。決定部113は、バウンディングボックスBBにおける部分領域Aを検出し、面積比α2を算出する。面積比α2は、次式(2)によって算出される。
【0087】
α2=[部分領域Aの面積]/[w*h]・・・(2)
式(2)において、「/」は除算を表し、「*」は乗算を表す。w、hは、バウンディングボックスBBの長辺および短辺の長さである。式(2)により算出される面積比α2がとりうる範囲は、0以上1以下である。
【0088】
ここで、上述した面積比α2は、当該バウンディングボックスBBが特定する把持候補位置CPを評価する指標となる。具体的には、面積比α2は、把持動作速度に影響を与える。
【0089】
例えば、面積比α2が小さいほど、把持動作速度が遅くなると考えられる。ここで、把持動作速度とは、指部34a、34bが閉じる動作を開始してから物体表面に接触するまでの時間の長さである。面積比α2が小さいほど、バウンディングボックスBBの少なくとも一方の短辺から部分領域Aの境界線までの距離が長くなり、指部34a、34bの少なくとも一方が物体表面に接触するまでの時間が長くなる。
【0090】
したがって、面積比α2が大きいほど、把持動作速度が向上するため、把持候補位置CPの評価が高くなる。
【0091】
(ステップS402)
ステップS402において、決定部113は、当該把持候補位置CPを特定するバウンディングボックスBBについて、バウンディングボックスBBが沿う第1方向と部分領域Aが沿う第2方向との関係を表す情報を求める。具体的には、決定部113は、当該関係を表す情報として、把持角度α3を算出する。
図12に示す例では、把持角度α3は、第1方向d1と第2方向d2とがなす角度である。把持角度α3は、次式(3)により算出される。
【0092】
【数1】
ここで、「・」は内積を表す。また、「|d1|」は、第1方向d1(ベクトルd1)の大きさを表し、「|d2|」は、第2方向d2(ベクトルd2)の大きさを表す。
【0093】
把持角度α3を算出するため、決定部113は、第1方向d1として、バウンディングボックスBBの長辺が沿う方向を検出する。第1方向d1は、ロボットアーム30が把持動作を行う方向(ここでは、ハンド部34の指部34a、34bの開閉方向)に相当する。また、決定部113は、第2方向d2として、部分領域Aが沿う方向を検出する。第2方向d2は、把持候補位置CPにおける物体の軸方向に相当する。第2方向d2を検出する手法としては、画像を用いて物体の軸方向を検出する公知の技術を採用可能である。なお、第1方向d1および第2方向d2は、上述したα3が0以上π/2以下となるように検出されるものとする。
【0094】
ここで、上述した把持角度α3は、当該バウンディングボックスBBが特定する把持候補位置CPを評価する指標となる。例えば、当該把持角度α3がπ/2に近いほど、ハンド部34の開閉方向と物体objの軸方向とが直交に近くなり、把持が容易になると考えられる。また、把持角度α3が0に近いほど、ハンド部34の開閉方向と物体objの軸方向とが並行に近くなり、把持が難しくなると考えられる。したがって、把持角度α3が大きいほど、把持候補位置CPの評価が高くなる。
【0095】
(ステップS403)
ステップS403において、決定部113は、当該把持候補位置CPを特定するバウンディングボックスBBについて、当該バウンディングボックスBBの中心と部分領域Aの中心との関係を表す情報を求める。具体的には、決定部113は、これらの中心間の関係を表す情報として、中心距離α4を求める。
図12に示す例では、中心距離α4は、バウンディングボックスBBの中心C1と部分領域Aの中心C2との距離である。中心距離α4は、次式(4)によって算出される。
【0096】
【数2】
ここで、
図12に示すように、x1,y1は中心C1の座標であり、x2,y2は中心C2の座標である。式(4)によって算出される中心距離α4がとりうる範囲は、0以上である。
【0097】
決定部113は、中心C1の座標(x1,y1)として、当該バウンディングボックスBBを示す6つのパラメータに含まれるパラメータx,yの値を取得する。また、決定部113は、中心C2の座標(x2,y2)として、物体objの重心に相当する画像G上の座標を検出する。重心に相当する座標を検出する手法としては、画像を用いて物体の重心を検出する公知の技術を採用可能である。
【0098】
ここで、中心距離α4は、当該バウンディングボックスBBが特定する把持候補位置CPを評価する指標となる。例えば、中心距離α4が0に近いほど、指部34a、34bを開いた状態のハンド部34の中心付近に物体が存在する可能性が高い。このため、把持が容易になると考えられる。したがって、中心距離α4が小さいほど、把持候補位置CPの評価が高くなる。
【0099】
(ステップS404)
ステップS404において、決定部113は、当該把持候補位置CPを特定するバウンディングボックスBBについて把持成功確率α1を取得する。決定部113は、ステップS107において推測モデル221から出力される出力情報gを参照して、把持成功確率pを取得すればよい。
【0100】
(ステップS405)
ステップS405において、決定部113は、当該把持候補位置CPを評価する評価値αを算出する。評価値αは、次式(5)によって算出される。
【0101】
α=w1*α1+w2*α2+w3*α3+w4*α4・・・(5)
ここで、w1、w2、w3、w4は、重み付け係数である。また、「*」は乗算を表す。ここでは、本実施形態では、評価値は大きいほど評価が高い、すなわち、大きいほど把持が容易であるとする。この場合、把持成功確率α1は大きいほど評価が高いため、係数w1は正である。また、面積比α2は大きいほど評価が高いため、係数w2は正である。また、把持角度α3は大きい(π/2に近い)ほど評価が高いため、係数w3は正である。また、中心距離α4は小さい(0に近い)ほど評価が高いため、係数w4は負である。なお、評価値を算出する計算式は、上述した式(5)に限定されない。
【0102】
各把持候補位置CPについてステップS401~S405の処理が完了すると、次のステップS406の処理が実行される。
【0103】
(ステップS406)
ステップS406において、決定部113は、評価値αを参照して把持位置を決定する。例えば、決定部113は、評価値αが最大の把持候補位置CPを、把持位置として決定する。
【0104】
以上のように、本変形例に係る把持システム1は、推測モデル221を用いて複数の把持候補位置CPを推測してそれぞれの評価値を算出し、そのうち、評価値が最大の把持候補位置CPを把持位置として決定する。これにより、把持システム1は、物体においてロボットアーム30に把持させる把持位置として、評価がより高い把持位置を決定することができる。
【0105】
〔変形例3〕
上述した実施形態に係る把持システム1は、決定部113による把持位置の決定処理を、以下の通り変形することが可能である。
【0106】
決定部113は、複数の把持候補位置CPの各々を、当該把持候補位置CPを特定する画像上の領域(バウンディングボックスBB)と、画像上で物体を示す物体領域AAとの関係性に応じて修正する。また、決定部113は、修正後の複数の把持候補位置CPを参照して、把持位置を決定する。ここで、バウンディングボックスBBと物体領域AAとの関係性については、変形例2において
図12を参照して説明した通りである。
【0107】
本変形例に係る把持システム1では、
図2のステップS108における把持位置の決定処理が、以下のように変形される。
【0108】
図13は、本変形例における把持位置の決定処理の詳細な流れを示すフローチャートである。また、
図14は、当該決定処理の各ステップにおける処理の具体例を説明する図である。なお、以下の説明では、「把持候補位置CPを修正する」ことを、単に「バウンディングボックスBBを修正する」、とも記載する。
【0109】
(ステップS501)
図13に示すステップS501において、制御装置10の決定部113は、ステップS107で得られた複数の把持候補位置CPのうち、面積比α2が所定範囲外の把持候補位置CPを除外する。これにより、決定部113は、推測モデル221から得られた複数の把持候補位置CPのうちノイズの可能性が高いものを除去する。
【0110】
ここで、面積比α2は、把持候補位置CPが、推測モデル221が出力したノイズであるか否かを判断する指標ともなる。例えば、面積比α2が1に近い場合、指部34a、34bの配置位置が物体の表面に近いため、ハンド部34と物体とが干渉する可能性があり、物体を把持できない可能性が高い。また、例えば、面積比α2が0に近い場合、ハンド部34により把持される部分が小さすぎるため、物体を把持できない可能性が高い。換言すると、面積比α2が1または0に近い把持候補位置CPは、推測モデル221から出力されたノイズであるとみなすことができる。
【0111】
具体的には、決定部113は、各把持候補位置CPを特定するバウンディングボックスBBについて、変形例2のステップS401と同様に動作して面積比α2を算出する。また、決定部113は、面積比α2が次式(6)を満たさないバウンディングボックスBBを除外する。
【0112】
r1≦α2≦r2(ただし、0<r1<r2<1)・・・(6)
式(6)において、r1およびr2は、所定範囲の下限および上限を示す定数である。下限r1の一例として、0.2が考えられる。また、上限r2の一例として、0.8が考えられる。ただし、r1およびr2は、上述した値に限られない。
【0113】
当該ステップの処理の一例を、
図14を参照して説明する。
図14に示す画像G11には、ステップS107において推測された複数の把持候補位置CPを特定するバウンディングボックスBB1~BB8が図示されている。なお、
図14に示す例では、推測モデル221は、8つの把持候補位置CPを示す情報を出力するよう学習されている。
【0114】
ここで、バウンディングボックスBB1には、物体obj1を示す物体領域AAが含まれていないため、面積比α2として0が算出される。また、バウンディングボックスBB2は、物体obj1を示す物体領域AAに包含されているため、面積比α2として1が算出される。したがって、当該ステップにおいて、決定部113は、バウンディングボックスBB1およびBB2を除外する。
図14に示す画像G12は、ステップS501で除外されずに残った6つのバウンディングボックスBB3~BB8を示している。
【0115】
前述したように、面積比α2が1または0に近い場合、そのような把持候補位置CPは、推測モデル221から出力されたノイズの可能性がある。したがって、当該ステップの処理により、ノイズの可能性が高い把持候補位置CPが除外される。
【0116】
(ステップS502)
図13に示すステップS502において、決定部113は、ステップS501で残った1または複数の把持候補位置CPのうち、所定値以上となるよう把持候補位置CPの把持角度α3を修正する。具体的には、決定部113は、各把持候補位置CPを特定するバウンディングボックスBB3~BB8について、変形例2のステップS402と同様に動作して把持角度α3を算出する。また、決定部113は、把持角度α3が次式(7)を満たさないバウンディングボックスBBについて、その第1方向d1を修正することにより把持角度α3を修正する。
【0117】
α3≦θ1(ただし、0<θ1<π/2)・・・(7)
θ1は、把持角度α3を修正するか否かを判定するための閾値であり、例えば、π/4である。ただし、θ1の値は、これに限られない。
【0118】
当該ステップの処理の一例を、
図14を参照して説明する。
図14に示す画像G12において、バウンディングボックスBB7は、把持角度α3がθ1(π/4)より小さいとする。そこで、決定部113は、バウンディングボックスBB7が沿う第1方向d1を、把持角度α3がθ1以上となるよう修正する。
図14に示す画像G13は、当該ステップの処理後のバウンディングボックスBB3~BB8を示している。画像G13では、バウンディングボックスBB7の把持角度α3が、θ1(π/4)以上であるπ/2に修正されている。
【0119】
前述したように、把持角度α3がπ/2に近いほど把持が容易になり、0に近いほど把持が難しくなると考えられる。したがって、当該ステップの処理により、把持角度α3が適切でない把持候補位置CPについて、当該把持角度α3が改善される。
【0120】
(ステップS503)
図13に示すステップS503において、決定部113は、ステップS502の処理後の各把持候補位置CPについて、所定値以上となるよう面積比α2を修正する。具体的には、決定部113は、各把持候補位置CPを特定するバウンディングボックスBB3~BB8について、変形例2のステップS401と同様に動作して面積比α2を算出する。また、決定部113は、面積比α2が次式(8)を満たさないバウンディングボックスBBを縮小することにより、面積比α2を修正する。
【0121】
α2≧r3(ただし、r1<r3<r2)・・・(8)
r3は、面積比α2を修正するか否かを判定するための閾値であり、例えば、0.5である。ただし、r3の値は、これに限られない。
【0122】
当該ステップの処理の一例を、
図14を参照して説明する。
図14に示す画像G13において、6つのバウンディングボックスBB3~BB8の各面積比α2は、全て所定値r3未満であるとする。この場合、決定部113は、バウンディングボックスBB3~BB8をそれぞれ縮小して、面積比α2がr3以上となるようにする。ここでは、決定部113は、バウンディングボックスBB3~BB8各々について、短辺および長辺を縮小している。なお、決定部113は、短辺および長辺を縮小する際に、アスペクト比を維持してもよいし、維持しなくてもよい。また、決定部113は、バウンディングボックスBB3~BB8各々または何れかについて、短辺および長辺の一方を縮小し、他方を拡縮しなくてもよい。また、バウンディングボックスBB3~BB8の各々を縮小する基準点は、中心C1であってもよいし、それ以外の点であってもよい。
図14に示す画像G14は、当該ステップの処理後のバウンディングボックスBB3~BB8を示している。画像G14では、バウンディングボックスBB3~BB8の長辺および短辺の長さが、画像G12における長さより縮小され、それぞれ面積比α2が所定値r3以上となっている。
【0123】
前述したように、面積比α2が小さいと、把持動作速度が遅くなる。したがって、当該ステップの処理により、修正された把持候補位置CPにおいて、把持動作速度が改善される。
【0124】
(ステップS504)
ステップS504において、決定部113は、ステップS503の処理後の各把持候補位置CPについて、把持角度α3を修正する。具体的には、決定部113は、バウンディングボックスBB3~BB8がそれぞれ沿う第1方向d1を修正し、把持角度α3を全て最適値(例えば、π/2)にする。これにより、全ての把持候補位置CPについて、把持角度α3が最適化される。
【0125】
なお、決定部113は、ステップS502の処理を省略してもよい。この場合、決定部113は、ステップS504の処理を、ステップS503の処理の前に実行してもよい。
【0126】
(ステップS505)
ステップS505において、決定部113は、修正後の複数の把持候補位置CPのうち、それぞれの把持成功確率pを参照して何れかを把持位置として決定する。なお、決定部113は、ステップS107において推測モデル221から出力される出力情報gを参照して、把持成功確率pを取得すればよい。具体的には、決定部113は、ステップS501~S504の処理が施されたバウンディングボックスBB3~BB8のうち、把持成功確率pが最大のものを選択する。
【0127】
以上のように、本変形例に係る把持システム1は、推測モデル221を用いて複数の把持候補位置CPを推測してそれぞれを修正し、修正した複数の把持候補位置CPのうち把持成功確率pが最大の把持候補位置CPを把持位置として決定する。これにより、把持システム1は、物体においてロボットアーム30に把持させる把持位置として、把持成功確率pがより高く、かつ、より容易に把持可能な把持位置を決定することができる。
【0128】
〔その他の変形例〕
なお、上述した実施形態および各変形例において、ステップS108における把持位置の決定処理では、把持成功確率pまたは評価値αが最大の把持候補位置CPを、把持位置として決定する例について説明した。ただし、決定部113は、把持成功確率pまたは評価値αが必ずしも最大の把持候補位置CPを把持位置として決定しなくてもよい。例えば、決定部113は、把持成功確率pまたは評価値αが閾値以上の把持候補位置CPのうち何れかを把持位置として選択してもよい。
【0129】
また、上述した実施形態および各変形例において、推測モデル221が、CNNによって生成された学習済みモデルである例について説明した。ただし、推測モデル221は、その他の深層学習アルゴリズムによって生成されてもよい。例えば、推測モデル221を生成するアルゴリズムは、例えば、RNN:Recurrent Neural Network、GAN:Generative Adversarial Network等であってもよいが、これらに限られない。
【0130】
〔把持システム1の物理的構成〕
図15は、把持システム1を構成する各装置の物理的構成を例示したブロック図である。
【0131】
(制御装置10の物理的構成)
制御装置10は、
図15に示すように、バス110と、プロセッサ101と、主メモリ102と、補助メモリ103と、通信インタフェース104と、入出力インタフェース105とを備えたコンピュータによって構成可能である。プロセッサ101、主メモリ102、補助メモリ103、通信インタフェース104、および入出力インタフェース105は、バス110を介して互いに接続されている。入出力インタフェース105には、入力装置106および出力装置107が接続されている。
【0132】
プロセッサ101としては、例えば、CPU(Central Processing Unit)、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、またはこれらの組み合わせ等が用いられる。
【0133】
主メモリ102としては、例えば、半導体RAM(random access memory)等が用いられる。
【0134】
補助メモリ103としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、またはこれらの組み合わせ等が用いられる。補助メモリ103には、上述した制御装置10の動作をプロセッサ101に実行させるためのプログラムが格納されている。プロセッサ101は、補助メモリ103に格納されたプログラムを主メモリ102上に展開し、展開したプログラムに含まれる各命令を実行する。
【0135】
通信インタフェース104は、ネットワークに接続するインタフェースである。通信インタフェース104は、当該ネットワークを介して学習装置20、ロボットアーム30、および撮像装置40のそれぞれとの通信を行う。
【0136】
入出力インタフェース105としては、例えば、USB(Universal Serial Bus)インタフェース、赤外線やBluetooth(登録商標)等の近距離通信インタフェース、またはこれらの組み合わせが用いられる。
【0137】
入力装置106としては、例えば、キーボード、マウス、タッチパッド、マイク、又はこれらの組み合わせ等が用いられる。出力装置107としては、例えば、ディスプレイ、プリンタ、スピーカ、又はこれらの組み合わせが用いられる。
【0138】
この例で、プロセッサ101および通信インタフェース104は、制御部11を実現するハードウェア要素の一例である。また、主メモリ102および補助メモリ103は、記憶部12を実現するハードウェア要素の一例である。
【0139】
(学習装置20の物理的構成)
学習装置20は、
図15に示すように、バス210と、プロセッサ201と、主メモリ202と、補助メモリ203と、通信インタフェース204とを備えたコンピュータによって構成可能である。プロセッサ201、主メモリ202、補助メモリ203、および通信インタフェース204は、バス210を介して互いに接続されている。
【0140】
プロセッサ201としては、例えば、CPU(Central Processing Unit)、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、GPU(Graphics Processing Unit)またはこれらの組み合わせ等が用いられる。
【0141】
主メモリ202としては、例えば、半導体RAM(random access memory)等が用いられる。
【0142】
補助メモリ203としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、またはこれらの組み合わせ等が用いられる。補助メモリ203には、上述した学習装置20の動作をプロセッサ201に実行させるためのプログラムが格納されている。プロセッサ201は、補助メモリ203に格納されたプログラムを主メモリ202上に展開し、展開したプログラムに含まれる各命令を実行する。
【0143】
通信インタフェース204は、ネットワークに接続するインタフェースである。通信インタフェース204は、当該ネットワークを介して制御装置10との通信を行う。
【0144】
この例で、プロセッサ201および通信インタフェース204は、制御部21を実現するハードウェア要素の一例である。また、主メモリ202および補助メモリ203は、記憶部22を実現するハードウェア要素の一例である。
【0145】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【0146】
〔まとめ〕
本発明の一態様に係る制御装置は、物体を被写体として含む画像を取得する取得部と、前記画像を入力とする推測モデルを用いて、前記物体の複数の把持候補位置を推測する推測部と、前記複数の把持候補位置を参照して、把持装置に前記物体を把持させる把持位置を決定する決定部と、を備えている。
【0147】
上記構成により、推測モデルを用いて推測した複数の把持候補位置を参照して把持位置を決定するので、把持位置を精度よく決定することができる。
【0148】
上述した一態様に係る制御装置において、前記推測モデルから出力される情報は、前記複数の把持候補位置の各々を特定する前記画像上の領域を示す情報を含み、前記決定部は、前記複数の把持候補位置の各々について、前記画像上の領域と、前記画像上で前記物体を示す物体領域との関係性に応じた評価値を算出し、算出した評価値を参照して前記把持位置を決定する、ことが好ましい。
【0149】
上記構成により、各把持候補位置と物体との関係性が反映された評価値を参照するので、把持位置をより精度よく決定することができる。
【0150】
上述した一態様に係る制御装置において、前記推測モデルから出力される情報は、前記複数の把持候補位置の各々を特定する前記画像上の領域を示す情報を含み、前記決定部は、前記複数の把持候補位置の各々を、前記画像上の領域と、前記画像上で前記物体を示す物体領域との関係性に応じて修正し、修正後の前記複数の把持候補位置を参照して、前記把持位置を決定する、ことが好ましい。
【0151】
上記構成により、物体との関係性に応じて修正した各把持候補位置を参照するので、把持位置をより精度よく決定することができる。
【0152】
上述した一態様に係る制御装置において、前記関係性は、前記画像上の領域の面積と当該領域において前記物体領域が占める部分領域の面積との関係、前記画像上の領域が沿う第1方向と前記部分領域が沿う第2方向との関係、および前記画像上の領域の中心と前記部分領域の中心との関係、のうち一部または全部を含む、ことが好ましい。
【0153】
上記構成において、画像上の領域と部分領域との関係が適切でない場合、当該把持候補位置は、把持が難しい把持位置を示している可能性がある。また、第1方向および第2方向の関係が適切でない場合、当該把持候補位置は、把持が難しい把持角度を示している可能性がある。また、画像上の領域の中心と物体領域の中心との関係が適切でない場合、当該把持候補位置は、把持が難しい把持位置を示している可能性がある。したがって、上記構成により、より確実に把持を維持できる把持位置を決定することが可能となる。
【0154】
上述した一態様に係る制御装置において、前記推測モデルから出力される情報は、前記複数の把持候補位置の各々に関する把持成功確率を含み、前記決定部は、前記把持成功確率を参照して前記把持位置を決定する、ことが好ましい。
【0155】
上記構成により、把持成功確率を参照するので、把持位置をより精度よく決定することができる。
【0156】
本発明の一態様に係る把持システムは、上述した制御装置と、前記画像を撮像する撮像装置と、前記把持装置と、を備え、制御装置は、前記決定部が決定した把持位置において前記物体を把持するよう前記把持装置を制御する制御部をさらに備える。
【0157】
上記構成により、把持装置に物体をより確実に把持させることができる。
【0158】
上述した本発明の一態様に係る把持システムは、前記推測モデルを、機械学習により生成する学習装置、をさらに備えている。
【0159】
上記構成により、把持位置をより精度よく決定するための推測モデルを生成することができる。
【0160】
本発明の一態様に係る方法は、1または複数のコンピュータが実行する方法であって、物体を被写体として含む画像を取得するステップと、前記画像を入力とする推測モデルを用いて、前記物体の複数の把持候補位置を推測するステップと、前記複数の把持候補位置を参照して、把持装置に前記物体を把持させる把持位置を決定するステップと、を含む。
【0161】
上記構成により、上述した制御装置と同様の効果を奏する。
【0162】
本発明の一態様に係るプログラムは、上述した制御装置として1または複数のコンピュータを機能させるためのプログラムであって、上記各部として1または複数のコンピュータを機能させる。
【0163】
上記構成により、上述した制御装置と同様の効果を奏する。
【0164】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0165】
1 把持システム
10 制御装置
20 学習装置
11、21 制御部
12、22 記憶部
111 取得部
112 推測部
113 決定部
211 学習部
221 推測モデル
30 ロボットアーム
40 撮像装置
101、201 プロセッサ
102、202 主メモリ
103、203 補助メモリ
104、204 通信インタフェース
105 入出力インタフェース
106 入力装置
107 出力装置
110、210 バス