(57)【要約】【課題】把持対象となる物体の誤検出を抑制することができるロボットを提供すること。【解決手段】複数の物体のうちの少なくとも１つの物体を把持するハンドと、ハンドを動作させる制御部と、を含み、制御部は、複数の物体を撮像した撮像画像から検出した第１物体の位置と、第１物体の位置を検出する前にハンドが把持した１つ以上の第２物体の位置とを用いて、ハンドに第１物体を把持させるか否かを決定する、ロボットである。【選択図】図２
2015157343.tif 000002
【特許請求の範囲】
【請求項１】
複数の物体のうちの少なくとも１つの物体を把持するハンドと、
前記ハンドを動作させる制御部と、
を含み、
前記制御部は、
前記複数の物体を撮像した撮像画像から検出した第１物体の位置と、前記第１物体の位置を検出する前に前記ハンドが把持した１つ以上の第２物体の位置とを用いて、前記ハンドに前記第１物体を把持させるか否かを決定する、
ロボット。
【請求項２】
前記制御部は、前記第１物体の位置を前記第１物体の形状に基づく第１領域によって表し、前記１つ以上の第２物体の位置を前記１つ以上の第２物体の形状に基づく第２領域によって表す、
請求項１に記載のロボット。
【請求項３】
前記制御部は、前記第２領域と重なりを持たない前記第１領域に対応づけられた前記第１物体を前記ハンドに把持させる、
請求項２に記載のロボット。
【請求項４】
前記制御部は、前記撮像画像から前記第２領域を除去した後、前記第１領域の位置を検出することで、前記ハンドに前記第１物体を把持させるか否かを決定する、
請求項２に記載のロボット。
【請求項５】
前記制御部は、前記第１物体の輪郭に外接または内接する領域を前記第１領域として決定し、前記１つ以上の第２物体の輪郭に外接または内接する領域を前記第２領域として決定する、
請求項２から４のうちいずれか一項に記載のロボット。
【請求項６】
前記制御部は、前記第１物体の中心軸上における所定位置を中心とする所定の大きさの領域を前記第１領域として決定し、前記１つ以上の第２物体の中心軸上における所定位置を中心とする所定の大きさの領域を前記第２領域として決定する、
請求項２から４のうちいずれか一項に記載のロボット。
【請求項７】
複数の物体を撮像する撮像部と、
前記複数の物体のうちの少なくとも１つの物体を把持するロボットと、
前記ロボットを動作させる制御部と、を含み、
前記制御部は、
前記撮像部が前記複数の物体を撮像した撮像画像から検出した第１物体の位置と、前記第１物体の位置を検出する前に前記ロボットが把持した１つ以上の第２物体の位置とを用いて、前記ロボットに前記第１物体を把持させるか否かを決定する、
ロボットシステム。
【請求項８】
複数の物体のうちの少なくとも１つの物体を把持するロボットを動作させる制御装置であって、
前記複数の物体を撮像した撮像画像を受け付ける画像受付部と、
前記ロボットを動作させる処理部と、を含み、
前記処理部は、
前記画像受付部が受け付けた前記撮像画像から検出した第１物体の位置と、前記第１物体の位置を検出する前に前記ロボットが把持した１つ以上の第２物体の位置とを用いて、前記ロボットに前記第１物体を把持させるか否かを決定する、
制御装置。
【請求項９】
複数の物体のうちの少なくとも１つの物体を把持するロボットを動作させる制御方法であって、
前記複数の物体を撮像することと、
前記複数の物体を撮像した撮像画像から検出した第１物体の位置と、前記第１物体の位置を検出する前に前記ロボットが把持した１つ以上の第２物体の位置とを用いて、前記ロボットに前記第１物体を把持させるか否かを決定することと、
を含む制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、ロボットシステム、制御装置、および制御方法に関する。
【背景技術】
【０００２】
産業用ロボットによって作業が行われる際に、産業用ロボットが扱う対象となる物体の位置は、ロボットの制御装置側で把握されている必要がある。物体の位置を把握するために、例えば、ステレオカメラにより物体を撮像することで、物体の位置および姿勢を表す三次元情報を取得する方法の研究・開発が行われている。
【０００３】
これに関連し、物体を容器中に検出した際、物体がロボットにより把持できない状態であるか否かを判定し、物体がロボットにより把持できない状態であった場合、把持可能になるまで容器を揺することで容器中の物体の位置を再配置させるビンピッキング方法が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−０６２３７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の方法では、物体の位置および姿勢を誤検出してしまう場合があった。また、この誤検出に対する対処法が提案されていなかった。
【０００６】
そこで本発明は、上記従来技術の問題に鑑みてなされたものであり、把持対象となる物体の誤検出を抑制することができるロボット、ロボットシステム、制御装置、および制御方法を提供する。
【課題を解決するための手段】
【０００７】
本発明の一態様は、複数の物体のうちの少なくとも１つの物体を把持するハンドと、前記ハンドを動作させる制御部と、を含み、前記制御部は、前記複数の物体を撮像した撮像画像から検出した第１物体の位置と、前記第１物体の位置を検出する前に前記ハンドが把持した１つ以上の第２物体の位置とを用いて、前記ハンドに前記第１物体を把持させるか否かを決定する、ロボットである。
この構成により、ロボットは、複数の物体を撮像した撮像画像から検出した第１物体の位置と、第１物体の位置を検出する前にハンドが把持した１つ以上の第２物体の位置とを用いて、ハンドに第１物体を把持させるか否かを決定する。このため、ロボットは、把持対象となる物体の誤検出を抑制することができる。
【０００８】
また、本発明の一態様は、ロボットにおいて、前記制御部は、前記第１物体の位置を前記第１物体の形状に基づく第１領域によって表し、前記１つ以上の第２物体の位置を前記１つ以上の第２物体の形状に基づく第２領域によって表す、構成が用いられてもよい。
この構成により、ロボットは、第１物体の位置を第１物体の形状に基づく第１領域によって表し、１つ以上の第２物体の位置を１つ以上の第２物体の形状に基づく第２領域によって表す。このため、ロボットは、第１物体の位置と第２物体の位置の完全な一致に基づいてハンドに第１物体を把持させるか否かを決定する場合に比べて、第１領域と第２領域が重なりを持つことによって第１物体と第２物体の位置が一致していることを表すことができ、より確実に第１物体の誤検出を抑制することができる。
【０００９】
また、本発明の一態様は、ロボットにおいて、前記制御部は、前記第２領域と重なりを持たない前記第１領域に対応づけられた前記第１物体を前記ハンドに把持させる、構成が用いられてもよい。
この構成により、ロボットは、第２領域と重なりを持たない第１領域に対応づけられた第１物体を前記ハンドに把持させる。このため、ロボットは、第２領域と重なりを持つ第１領域に対応付けられた第１物体をハンドに把持させる場合に比べて、より確実に第１物体の誤検出を抑制することができる。
【００１０】
また、本発明の一態様は、ロボットにおいて、前記制御部は、前記撮像画像から前記第２領域を除去した後、前記第１領域の位置を検出することで、前記ハンドに前記第１物体を把持させるか否かを決定する、構成が用いられてもよい。
この構成により、ロボットは、撮像画像から第２領域を除去した後、第１領域の位置を検出することで、ハンドに第１物体を把持させるか否かを決定する。このため、ロボットは、すでに過去に第２物体を拾い上げた第２領域から、過去に拾い上げているためすでに存在しない第２物体を、光の加減や撮像画像の撮像状態等によって第２領域の中から再び検出してしまう誤検出を防止することができる。
【００１１】
また、本発明の一態様は、ロボットにおいて、前記制御部は、前記第１物体の輪郭に外接または内接する領域を前記第１領域として決定し、前記１つ以上の第２物体の輪郭に外接または内接する領域を前記第２領域として決定する、構成が用いられてもよい。
この構成により、ロボットは、第１物体の輪郭に外接または内接する領域を第１領域として決定し、１つ以上の第２物体の輪郭に外接または内接する領域を第２領域として決定する。このため、ロボットは、誤検出を低減するために物体を検出しない範囲を第１物体や第２物体の大きさと比べて過剰に大きくすることを抑えながら誤検出を低減することができ、より広い範囲の物体を検出することができる。
【００１２】
また、本発明の一態様は、ロボットにおいて、前記制御部は、前記第１物体の中心軸上における所定位置を中心とする所定の大きさの領域を前記第１領域として決定し、前記１つ以上の第２物体の中心軸上における所定位置を中心とする所定の大きさの領域を前記第２領域として決定する、構成が用いられてもよい。
この構成により、ロボットは、第１物体の中心軸上における所定位置を中心とする所定の大きさの領域を第１領域として決定し、１つ以上の第２物体の中心軸上における所定位置を中心とする所定の大きさの領域を第２領域として決定する。このため、ロボットは、第１物体の形状が複雑であっても、ＳＴＬ（Standard  Triangulated  Language）による三角ポリゴンを利用した第１領域の決定と比べて計算量が少なく、より速く簡易に第１領域を決定することができ、その結果、誤検出を抑制することができる。
【００１３】
また、本発明の一態様は、複数の物体を撮像する撮像部と、前記複数の物体のうちの少なくとも１つの物体を把持するロボットと、前記ロボットを動作させる制御部と、を含み、前記制御部は、前記撮像部が前記複数の物体を撮像した撮像画像から検出した第１物体の位置と、前記第１物体の位置を検出する前に前記ロボットが把持した１つ以上の第２物体の位置とを用いて、前記ロボットに前記第１物体を把持させるか否かを決定する、ロボットシステムである。
この構成により、ロボットシステムは、撮像部が複数の物体を撮像した撮像画像から検出した第１物体の位置と、第１物体の位置を検出する前にロボットが把持した１つ以上の第２物体の位置とを用いて、ロボットに第１物体を把持させるか否かを決定する。このため、ロボットシステムは、把持対象となる物体の誤検出を抑制することができる。
【００１４】
また、本発明の一態様は、複数の物体のうちの少なくとも１つの物体を把持するロボットを動作させる制御装置であって、前記複数の物体を撮像した撮像画像を受け付ける画像受付部と、前記ロボットを動作させる処理部と、を含み、前記処理部は、前記画像受付部が受け付けた前記撮像画像から検出した第１物体の位置と、前記第１物体の位置を検出する前に前記ロボットが把持した１つ以上の第２物体の位置とを用いて、前記ロボットに前記第１物体を把持させるか否かを決定する、制御装置である。
この構成により、制御装置は、撮像画像から検出した第１物体の位置と、第１物体の位置を検出する前にロボットが把持した１つ以上の第２物体の位置とを用いて、ロボットに第１物体を把持させるか否かを決定する。このため、ロボットシステムは、把持対象となる物体の誤検出を抑制することができる。
【００１５】
また、本発明の一態様は、複数の物体のうちの少なくとも１つの物体を把持するロボットを動作させる制御方法であって、前記複数の物体を撮像することと、前記複数の物体を撮像した撮像画像から検出した第１物体の位置と、前記第１物体の位置を検出する前に前記ロボットが把持した１つ以上の第２物体の位置とを用いて、前記ロボットに前記第１物体を把持させるか否かを決定することと、を含む制御方法である。
この構成により、制御方法は、複数の物体を撮像し、複数の物体を撮像した撮像画像から検出した第１物体の位置と、第１物体の位置を検出する前にロボットが把持した１つ以上の第２物体の位置とを用いて、ロボットに第１物体を把持させるか否かを決定する。このため、制御方法は、把持対象となる物体の誤検出を抑制することができる。
【００１６】
以上により、ロボット、ロボットシステム、制御装置、および制御方法は、複数の物体を撮像した撮像画像から検出した第１物体の位置と、第１物体の位置を検出する前にハンドが把持した１つ以上の第２物体の位置とを用いて、ハンドに第１物体を把持させるか否かを決定する。このため、ロボット、ロボットシステム、制御装置、および制御方法は、把持対象となる物体の誤検出を抑制することができる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態に係るロボットシステム１の一例を示す構成図である。
【図２】制御部４１の機能構成の一例を示す図である。
【図３】所定の作業を行うように、制御部４１がロボット１１を制御するための処理の流れの一例を示すフローチャートである。
【図４】撮像画像上において検出された把持候補と、把持候補に対応付けられた対象領域の一例を示す図である。
【図５】本発明の第１の実施形態の変形例１に係るロボット６０１の概略的な構成を示す図である。
【図６】本発明の第１の実施形態の変形例２に係るロボットシステム７０１の概略的な構成を示す図である。
【発明を実施するための形態】
【００１８】
＜第１の実施形態＞
以下、本発明の第１の実施形態について、図面を参照して説明する。図１は、第１の実施形態に係るロボットシステム１の一例を示す構成図である。ロボットシステム１は、ロボット１１と、撮像部１２を具備する。
【００１９】
ロボット１１は、把持対象８２を把持可能な爪部を備えるハンド２１（エンドエフェクター）と、把持センサー３１と、１本のマニピュレーター（アーム）と、図示しない複数のアクチュエーターを備えた単腕ロボットである。把持対象８２とは、本実施形態において複数のネジであるが、ロボット１１のハンド２１によって把持可能な物体であれば、他の物体であってもよい。本実施形態の説明では、図１において、個々のネジを区別する必要が無い場合、把持対象８２は、複数のネジを示すものとする。なお、ロボットシステム１は、単腕ロボットを具備する構成に代えて、双腕ロボットを具備する構成であってもよい。ロボットシステム１が双腕ロボットを具備する構成の実施例については、第１の実施形態の変形例１で説明する。
【００２０】
ロボット１１の腕は、６軸垂直多関節型となっており、支持台とマニピュレーターとハンド２１がアクチュエーターによる連携した動作よって６軸の自由度の動作を行うことができる。なお、ロボット１１の腕は、５自由度（５軸）以下で動作する構成であってもよく、７自由度（７軸）以上で動作する構成であってもよい。以下では、ハンド２１およびマニピュレーターを備えた腕によって行われるロボット１１の動作について説明する。
【００２１】
ロボット１１は、例えばケーブルによって制御部４１と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、ロボット１１と制御部４１とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続されてもよい。また、ロボットシステム１では、ロボット１１は、図１に示したように制御部４１が内蔵された構成とするが、この構成に代えて、制御部４１がロボット１１の外部に設置されている構成であってもよい。
【００２２】
把持センサー３１は、例えば、赤外線を送信する送信部と赤外線を受信する受信部とで構成される赤外線センサー等であり、ハンド２１が備える爪部の間に物体（把持対象８２）が挟まれたことを、送信部と受信部の間において赤外線が遮断されたことによって検出する。
【００２３】
把持センサー３１は、赤外線が遮断された場合、把持センサー値として１を制御部４１に出力する。把持センサー３１は、赤外線センサーを用いる構成に代えて、ハンド２１が把持対象８２を把持したことを検出することができるセンサーであれば、力センサーや他のセンサーを用いる構成であってもよい。また、把持センサー３１は、赤外線が遮断された場合、把持センサー値として０等の１以外の数値を制御部４１に出力してもよい。また、把持センサー３１は、赤外線が遮断された場合、前記の値である１とは異なる赤外線が遮断されたことを示す情報を制御部４１に出力してもよい。
【００２４】
ロボット１１は、撮像部１２により撮像された撮像画像に基づいた制御信号を制御部４１から取得し、取得した制御信号に基づいて、把持対象８２に対して所定の作業を行う。所定の作業とは、例えば、ビン８１の中に無作為に配置された把持対象８２を拾い上げ、所定の位置に置いていく作業である。ビン８１とは、例えば、トレー等の整理箱であるが、これに代えて、把持対象８２を無作為に配置することができれば、テーブルや床面等であってもよい。
【００２５】
所定の位置とは、ビン８１とは異なるところに設定された把持対象８２を置く場所である。なお、図１において、図が煩雑になるのを防ぐため、把持対象８２がビン８１の上で重なりが無いように示しているが、ビン８１の上で把持対象８２が重なっていてもよく、重なっていなくてもよい。
【００２６】
撮像部１２は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。また、撮像部１２は、２台のカメラによって構成されるステレオカメラであるが、例えば、３台以上のカメラによって構成されてもよく、１台のカメラにより二次元画像を撮像する構成であってもよい。
【００２７】
撮像部１２は、ケーブルによって制御部４１と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、撮像部１２と制御部４１とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。撮像部１２は、ビン８１の中に無作為に配置された把持対象８２が含まれる範囲を撮像可能な位置に設置されている。
【００２８】
制御部４１は、撮像部１２により撮像された撮像画像に基づいて、ロボット１１が所定の作業を行うように制御する。この所定の作業を行わせる際、制御部４１は、把持対象８２を拾い上げた付近の領域であって、拾い上げた把持対象８２に対応付けられた領域を対象領域として記憶し、次の把持対象８２を検出する時にその領域と重なっている把持対象８２を検出する対象から除外する。その結果、制御部４１は、把持可能な把持対象８２の誤検出を抑制することができる。
【００２９】
より具体的には、制御部４１は、所定の作業によって把持対象８２が拾い上げられた後、拾い上げられた把持対象８２に対応付けられた対象領域であって、撮像画像上の領域に、光の加減や撮像状態等に依って存在しないはずの把持対象８２が存在しているとして誤検出してしまうことを抑制することができる。以下では、説明の便宜上、過去に拾い上げられた把持対象８２のうちの１つを把持対象Ｙと称し、これから拾い上げる予定の把持対象８２のうちの１つを把持対象Ｘと称する。
【００３０】
次に、図２を参照して、制御部４１の機能構成について説明する。図２は、制御部４１の機能構成の一例を示す図である。制御部４１は、ロボット動作処理部１０１と、画像受付部１０２と、把持センサー値受付部１０３と、記憶部１０４と、入力部１０５と、出力部１０６を備える。また、ロボット動作処理部１０１は、画像処理部１１１と、ロボット動作制御部１１２を備える。
画像処理部１１１は、候補検出部１２１と、候補除外部１２２と、把持成功情報記憶制御部１２３を備える。画像処理部１１１は、画像受付部１０２から撮像部１２により撮像された撮像画像を取得する。
【００３１】
候補検出部１２１は、画像処理部１１１が取得した撮像画像に基づいて、撮像画像上から少なくとも１つ以上の把持対象８２を検出し、検出された把持対象８２の位置および姿勢を算出する。そして、候補検出部１２１は、検出された把持対象８２に対象領域を対応付ける。対象領域とは、撮像画像上における領域であって、検出されたそれぞれの把持対象８２の形状や中心軸等に基づいて設定される領域である。以下では、説明の便宜上、候補検出部１２１により検出された把持対象８２を把持候補と称する。また、把持候補となった把持対象Ｘを把持候補Ｘと称し、把持候補となった把持対象Ｙを把持候補Ｙと称する。また、説明の便宜上、他のアルファベットを用いる場合もある。なお、把持対象Ｘは、第１物体の一例であり、把持対象Ｙは、第２物体の一例である。
【００３２】
候補除外部１２２は、候補検出部１２１により把持候補が検出された後、記憶部１０４に記憶された把持成功情報を読み込む。把持成功情報とは、把持対象Ｙに設定されていた対象領域ＹＡを示す情報を含む情報である。候補除外部１２２は、候補検出部１２１により検出された把持候補から、読み込んだ把持成功情報に含まれる対象領域ＹＡと一部または全部が重なる対象領域ＸＡが対応付けられた把持対象Ｘを、把持候補の中から除外する。そして、候補除外部１２２は、除外されずに残った把持候補の位置および姿勢をロボット動作制御部１１２に出力する。なお、除外されずに残った把持候補の位置および姿勢をロボット動作制御部１１２に出力することは、候補除外部１２２が行う構成に代えて、候補検出部１２１が行う構成であってもよい。なお、対象領域ＸＡは、第１領域の一例であり、対象領域ＹＡは、第２領域の一例である。
【００３３】
把持成功情報記憶制御部１２３は、把持成功判定部１３３からハンド２１による把持候補Ｙの拾い上げが成功したことを示す情報と、拾い上げられた把持候補Ｙの位置および姿勢を示す情報とを取得すると、候補検出部１２１により把持候補Ｙに対応付けられた対象領域ＹＡを把持成功情報として記憶部１０４に記憶させる。なお、把持成功情報記憶制御部１２３は、把持候補Ｙに対応付けられた対象領域ＹＡを示す情報を記憶部１０４に記憶させる際、把持に成功した時間や、把持候補Ｙの輪郭（形状）を示す情報等を対応付けて記憶させてもよい。
【００３４】
ロボット動作制御部１１２は、対象選択部１３１と、対象把持制御部１３２と、把持成功判定部１３３を備える。
対象選択部１３１は、候補除外部１２２から把持候補の位置および姿勢を取得する。そして、対象選択部１３１は、取得した把持候補の位置および姿勢の中から、最も把持しやすい把持候補Ａの位置および候補を選択する。
【００３５】
対象把持制御部１３２は、対象選択部１３１により選択された把持候補Ａの位置および姿勢に基づいて、ハンド２１によって把持候補Ａを把持して拾い上げるようにロボット１１を制御する。そして、対象把持制御部１３２は、ハンド２１により把持された把持候補Ａを、所定の位置に置くようにロボット１１を制御する。
【００３６】
把持成功判定部１３３は、把持センサー値受付部１０３から把持センサー値を取得し、取得した把持センサー値が１であった場合、ハンド２１による把持候補Ａの把持が成功したと判定する。なお、把持成功判定部１３３は、把持センサー値が１以外の値であった場合、把持に成功していないと判定する。把持成功判定部１３３は、ハンド２１による把持候補Ａの把持が成功したと判定した場合、ハンド２１による把持候補Ａの拾い上げが成功したことを示す情報と、拾い上げられた把持候補Ａの位置および姿勢を示す情報とを、画像処理部１１１に出力する。
【００３７】
画像受付部１０２は、撮像部１２により撮像された撮像画像を受け付けて取得し、取得した撮像画像をロボット動作処理部１０１に出力する。
把持センサー値受付部１０３は、把持センサー３１から把持センサー値を受け付けて取得し、取得した把持センサー値をロボット動作処理部１０１に出力する。
【００３８】
記憶部１０４は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）などを含み、制御部４１が処理する情報であって、把持成功情報を含む各種情報や、画像、プログラム等を格納する。なお、記憶部１０４は、制御部４１に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
【００３９】
入力部１０５は、例えば、キーボードやマウス、タッチパッド、その他の入力装置である。なお、入力部１０５は、出力部１０６の表面に設置されることで、タッチパネルとして構成されてもよい。
出力部１０６は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００４０】
以下、図３を参照して、所定の作業を行うように、制御部４１がロボット１１を制御するための処理について説明する。図３は、所定の作業を行うように、制御部４１がロボット１１を制御するための処理の流れの一例を示すフローチャートである。制御部４１は、以下で説明するステップＳ１〜Ｓ７の処理を繰り返し行うことで、ロボット１１が複数の把持対象８２に対して所定の作業を行うように制御する。なお、制御部４１は、所定の条件を満たした時、ステップＳ１〜Ｓ７の処理の繰り返しを終了する。所定の条件とは、検出される把持候補がなくなることや、所定個数の把持候補に対して所定の作業を行うこと等である。また、制御部４１は、ステップＳ１〜Ｓ７の処理の繰り返しを終了した場合、記憶部１０４に記憶させた把持成功情報を削除して所定の作業の履歴をリセットする。
【００４１】
まず、画像受付部１０２は、撮像部１２により撮像された撮像画像を受け付けて取得する（ステップＳ１）。そして、画像受付部１０２は、取得した撮像画像をロボット動作処理部１０１の画像処理部１１１に出力する。
次に、画像処理部１１１の候補検出部１２１は、画像受付部１０２から取得した撮像画像に基づいて把持候補を検出する（ステップＳ２）。そして、候補検出部１２１は、把持候補の位置および姿勢を算出する。
【００４２】
ここで、候補検出部１２１が把持候補の位置および姿勢を算出するための処理について説明する。候補検出部１２１は、予め記憶されているＣＡＤ（Computer  Aided  Design）画像とのパターンマッチングによって、把持対象８２の輪郭および中心軸を検出し、検出された中心軸の中心位置および傾き（把持候補の位置および姿勢）を算出する。なお、候補検出部１２１は、パターンマッチングに代えて、例えば、撮像画像から三次元点群を検出し、検出された三次元点群に基づいて把持候補の位置および姿勢を算出する構成としてもよい。
【００４３】
また、候補検出部１２１は、検出された把持候補Ｘの輪郭に基づいて、把持候補Ｘに対して対象領域ＸＡを対応付ける。ここで、候補検出部１２１が把持候補Ｘに対象領域ＸＡを対応付けるための処理について説明する。候補検出部１２１は、三角ポリゴンを用いたＳＴＬによって六面体を設定し、検出された輪郭に外接するように前記の六面体を撮像画像上に射影し、射影された領域を対象領域ＸＡとして設定する。なお、対象領域ＸＡとしては、外接する円や楕円でもよいし、他の形状の領域でもよい。また、対象領域ＸＡは、輪郭に外接する領域に代えて、内接する領域や、把持候補Ｘの中心位置または中心軸上の所定位置を中心とした円や楕円等であってもよい。
【００４４】
ここで、図４を参照して、候補検出部１２１により検出された把持候補と、把持候補に対応付けられた対象領域について説明する。図４は、撮像画像上において検出された把持候補と、把持候補に対応付けられた対象領域の一例を示す図である。図４では、説明の便宜上、検出された把持候補同士の重なりが無いように描かれているが、実際には重なっていてもよく、重なっていなくてもよい。また、図４では、８個の把持候補が検出されているが、配置される把持候補の数は、８個を超えてもよく、８個未満でもよい。説明の便宜上、個々の把持候補を、把持候補２０１−１〜把持候補２０１−８として区別し、前記の把持候補Ｘが把持候補２０１−１であるとする。
【００４５】
候補検出部１２１は、上述したパターンマッチングによって、把持候補２０１−１〜把持候補２０１−８の８個の把持候補を検出する。そして、候補検出部１２１は、把持候補２０１−１〜把持候補２０１−８の８個の把持候補のそれぞれに対して、位置および姿勢を算出する。また、候補検出部１２１は、把持候補２０１−１〜把持候補２０１−８の８個の把持候補のそれぞれに対して、上述のＳＴＬによって設定された対象領域を対応付ける。図４では、点線領域２１１によって把持候補２０１−１、すなわち把持候補Ｘに対応付けられた対象領域ＸＡを示す。
【００４６】
次に、候補除外部１２２は、記憶部１０４に記憶された把持成功情報を読み込み、読み込んだ把持成功情報に含まれる対象領域ＹＡと一部または全部が重なる対象領域が対応付けられた把持対象を、把持候補から除外する（ステップＳ３）。より具体的には、候補除外部１２２は、前記の把持候補Ｘに対応付けられた対象領域ＸＡが、把持成功情報に含まれる対象領域ＹＡと一部または全部が重なっていた場合、把持候補Ｘを把持候補から除外し、把持成功情報に含まれる対象領域ＹＡと一部または全部が重なっていなかった場合、把持候補Ｘを把持候補のまま保持する。候補除外部１２２は、除外されずに残った把持候補の位置および姿勢をロボット動作制御部１１２に出力する。
【００４７】
次に、対象選択部１３１は、取得した把持候補の位置および姿勢に基づいて、最も把持しやすい把持候補Ａを選択する（ステップＳ４）。より具体的には、対象選択部１３１は、例えば、ハンド２１から最も距離が近い把持候補であって、ハンド２１で把持する際に他の把持候補にハンド２１が接触しない状態の把持候補を、最も把持しやすい把持候補Ａとして選択する。
【００４８】
次に、対象把持制御部１３２は、対象選択部１３１により選択された最も把持しやすい把持候補Ａに対して、ロボット１１に所定の作業を行わせる（ステップＳ５）。次に、把持成功判定部１３３は、ステップＳ５で対象把持制御部１３２によりロボット１１が行った所定の作業において、ハンド２１による把持候補Ａの把持が成功したか否かを判定する（ステップＳ６）。
【００４９】
把持成功判定部１３３がハンド２１による把持候補Ａの把持が成功したと判定した場合（ステップＳ６−Ｙｅｓ）、把持成功情報記憶制御部１２３は、ハンド２１による把持に成功した把持候補Ａに対応付けられた対象領域ＡＡを示す情報を記憶部１０４に記憶させる（ステップＳ７）。一方、把持成功判定部１３３がハンド２１による把持候補Ａの把持が成功していないと判定した場合（ステップＳ６−Ｎｏ）、制御部４１は、ステップＳ１〜Ｓ８の一連の処理を終了する。
【００５０】
なお、制御部４１は、過去に把持対象Ｙを拾い上げた時の対象領域ＹＡを示す情報を記憶し、次の把持対象を撮像画像上から検出して拾い上げる時、記憶した対象領域ＹＡと重なりを持つ対象領域ＸＡに対応付けられた把持対象Ｘを把持候補から除外する構成に代えて、過去に拾い上げた把持対象Ｙの位置および姿勢を記憶し、次の把持対象を撮像画像上から検出する時に、前記の位置および姿勢の把持対象を検出する対象から除外する構成であってもよい。
【００５１】
また、制御部４１は、過去に把持対象Ｙを拾い上げた時の対象領域ＹＡを示す情報を記憶し、次の把持対象を撮像画像上から検出して拾い上げる時、記憶した対象領域ＹＡと重なりを持つ対象領域ＸＡに対応付けられた把持対象Ｘを除外する構成に代えて、過去に把持対象Ｙを拾い上げた時の対象領域ＹＡを示す情報を記憶し、撮像画像上から対象領域ＹＡを除去し、対象領域ＹＡに含まれる把持対象Ｘを検出できないようにする構成としてもよい。その結果、制御部４１は、すでに過去に把持対象Ｙを拾い上げた対象領域ＹＡから、過去に拾い上げているためすでに存在しない把持対象Ｙを、光の加減や撮像画像の撮像状態等によって対象領域ＹＡの中から再び検出してしまう誤検出を防止することができる。
【００５２】
また、上記の実施形態において、把持対象Ｙは、過去に拾い上げられた把持対象８２のうちの１つであるとして説明したが、これに限られない。例えば、２つ以上の異なる把持対象８２が過去に拾い上げられた場合、これら２つ以上の把持対象８２のうちの１つが把持対象Ｙとされる態様ばかりでなく、これら２つ以上の把持対象８２のうちの全部または一部（ここでは、２つ以上とする）が把持対象Ｙとされる態様が用いられてもよい。制御部４１は、過去に拾い上げられた２つ以上の把持対象８２のうちの１つを把持対象Ｙとする場合、例えば、過去に拾い上げられた把持対象８２のうちの最新の把持対象８２を把持対象Ｙとする。また、制御部４１は、過去に拾い上げられた把持対象８２のうちの一部（２つ以上）を把持対象Ｙとする場合、例えば、過去に拾い上げられた把持対象８２のうちの所定の個数を把持対象Ｙとする。また、制御部４１は、過去に拾い上げられた把持対象８２のうちの一部（２つ以上）を把持対象Ｙとする場合、例えば、過去に拾い上げられた把持対象８２のうちの最新から過去所定数分を把持対象Ｙとする。なお、過去に拾い上げられた２つ以上の把持対象８２のうちから１つ又は一部（２つ以上）の把持対象Ｙを選択する態様としては、ここで例示した態様に限られず、他の態様が用いられてもよい。また、制御部４１は、２つ以上の過去に拾い上げられた把持対象８２を把持対象Ｙとする場合、次の把持対象を撮像画像上から検出して拾い上げる時、２つ以上の把持対象Ｙのそれぞれの対象領域ＹＡの内の一部又は全部と重なりを持つ対象領域ＸＡに対応付けられた把持対象Ｘを除外する。
【００５３】
以上説明したように、第１の実施形態に係るロボットシステム１のロボット１１は、複数の把持対象８２を撮像した撮像画像から検出した把持候補Ｘの位置と、把持候補Ｘの位置を検出する前にハンド２１が把持した把持候補Ｙの位置とを用いて、ハンド２１に把持候補Ｘを把持させるか否かを決定する。このため、ロボット１１は、把持対象となる物体の誤検出を抑制することができる。
【００５４】
また、ロボット１１は、把持候補Ｘの位置を把持候補Ｘの形状に基づく対象領域ＸＡによって表し、把持候補Ｘの位置を検出する前にハンド２１が把持した把持候補Ｙの位置を把持候補Ｙの形状に基づく対象領域ＹＡによって表す。このため、ロボット１１は、把持候補Ｘの位置と把持候補Ｙの位置の完全な一致に基づいてハンド２１に把持候補Ｘを把持させるか否かを決定する場合に比べて、把持領域ＸＡと把持領域ＹＡが重なりを持つことによって把持対象Ｙと把持対象Ｘの位置が一致していることを表すことができ、より確実に把持対象となる物体の誤検出を抑制することができる。
【００５５】
また、ロボット１１は、把持対象Ｙの対象領域ＹＡと重なりを持たない対象領域ＸＡに対応付けられた把持対象Ｘをハンド２１に把持させる。このため、ロボット１１は、把持対象ＹＡと重なりを持つ対象領域ＸＡに対応付けられた把持対象Ｘをハンド２１に把持させる場合に比べて、より確実に把持対象となる物体の誤検出を抑制することができる。
【００５６】
また、ロボット１１は、撮像画像から把持対象Ｙの対象領域ＹＡを除去した後、把持対象Ｘの位置を検出することで、ハンド２１に把持対象Ｘを把持させるか否かを決定する。このため、ロボット１１は、すでに過去に把持対象Ｙを拾い上げた対象領域ＹＡから、過去に拾い上げているためすでに存在しない把持対象Ｙを、光の加減や撮像画像の撮像状態等によって対象領域ＹＡの中から再び検出してしまう誤検出を防止することができる。
【００５７】
また、ロボット１１は、把持対象Ｘの輪郭に外接または内接する領域を把持対象Ｘの対象領域ＸＡとして決定し、把持対象Ｙの輪郭に外接または内接する領域を把持対象Ｙの対象領域ＹＡとして決定する。このため、ロボット１１は、誤検出を低減するために把持候補を検出しない範囲を把持対象Ｘや把持対象Ｙの大きさと比べて過剰に大きくすることを抑えながら誤検出を低減することができ、より広い範囲の物体を検出することができる。
【００５８】
また、ロボット１１は、把持対象Ｘの中心軸上における所定位置を中心とする所定の大きさの領域を把持対象Ｘの対象領域ＸＡとして決定し、把持対象Ｙの中心軸上における所定位置を中心とする所定の大きさの領域を把持対象Ｙの対象領域ＹＡとして決定する。このため、ロボット１１は、ＳＴＬによる三角ポリゴンを利用した第１領域の決定と比べて計算量が少なく、より速く簡易に第１領域を決定することができ、その結果、誤検出を抑制することができる。
【００５９】
＜第１の実施形態の変形例１＞
以下、本発明の第１の実施形態の変形例１について、図面を参照して説明する。第１の実施形態の変形例１のロボット６０１は、単腕ロボットであるロボット１１と撮像部１２と制御部４１とを具備するロボットシステム１の構成部が一体として構成された双腕ロボットであり、撮像部６６１と制御部６７１とを内蔵する。なお、第１の実施形態の変形例１では、第１の実施形態と同様な構成部には、同じ符号を付してある。
【００６０】
図５は、本発明の第１の実施形態の変形例１に係るロボット６０１の概略的な構成を示す図である。
ロボット６０１は、格納部６１１と、胴体部分６１２〜６１４と、左側のマニピュレーター６２１、ハンド６３１および把持センサー６４１と、右側のマニピュレーター６２２、ハンド６３２および把持センサー６４２と、左側の車輪６５１と、右側の車輪６５２と、撮像部６６１と、制御部６７１を備える。
【００６１】
ロボット６０１は、それぞれ腕（アーム）を構成する２本のマニピュレーター６２１、６２２を備える双腕ロボットである。ロボット６０１は、撮像部６６１および制御部６７１と一体に構成されており、制御部６７１から入力された制御信号により動作が制御される。また、ロボット６０１は、自己の状態等を示す信号を、制御部６７１に出力してもよい。
【００６２】
格納部６１１の上面には、胴体部材６１２、胴体部材６１３、胴体部材６１４が順に上側に取り付けられており、最も上部の胴体部材６１４の左側に左腕を構成するマニピュレーター６２１が取り付けられており、当該胴体部材６１４の右側に右腕を構成するマニピュレーター６２２が取り付けられており、格納部６１１の底面の左側に車輪６５１が取り付けられており、格納部６１１の底面の右側に車輪６５２が取り付けられており、格納部６１１の上面にカメラ６６１が取り付けられている。
【００６３】
なお、ロボット６０１は、人手により外力を加えることで、または、装置により自動的に、左側の車輪６５１および右側の車輪６５２を回転させて、移動させることが可能である。
格納部６１１には、制御部６７１が格納されている。
マニピュレーター６２１、６２２は、それぞれ、例えば、垂直多関節ロボットの一種であり、ロボットアームとして機能する。それぞれのマニピュレーター６２１、６２２は、その先端にハンド６３１、６３２および把持センサー６４１、６４２を備える。
【００６４】
なお、図５の例では、撮像部６６１を格納部６１１の上面に備えたが、他の構成例として、撮像部６６１は、他の任意の場所に備えられてもよく、例えば、ロボットにおける他の任意の場所に備えられてもよく、または、ロボット以外の場所として、床面、天井、壁面などに固定されて備えられてもよい。
また、撮像部６６１は、例えば、人手により外力を加えることで、または、装置により自動的に、撮像方向や撮像角度などを変化させることが可能な構成であってもよい。
【００６５】
制御部６７１は、左腕のマニピュレーター６２１（およびハンド６３１、把持センサー６４１）と、右腕のマニピュレーター６２２（およびハンド６３２、把持センサー６４２）を制御する。制御部６７１とそれぞれのマニピュレーター６２１、６３１とは、例えば、有線または無線の回線を介して、制御信号などを伝送することが可能に接続される。
なお、制御部６７１は、例えば、左腕のマニピュレーター６２１（およびハンド６３１、把持センサー６４１）と、右腕のマニピュレーター６２２（およびハンド６３２、把持センサー６４２）とを、同時に関連付けて制御してもよく、または、左腕のマニピュレーター６２１（およびハンド６３１、把持センサー６４１）と、右腕のマニピュレーター６２２（およびハンド６３２、把持センサー６４２）とを、それぞれ別個に制御してもよい。
【００６６】
制御部６７１は、図１に示される制御部４１と同様な機能を備えるが、ロボット１１に行わせた所定の作業を、ロボット６０１の左腕と右腕のうち一方または両方を用いてロボット６０１に行わせてもよい。
【００６７】
＜第１の実施形態の変形例２＞
図６は、本発明の第１の実施形態の変形例２に係るロボットシステム７０１の概略的な構成を示す図である。
ロボットシステム７０１は、ロボット７１１と、撮像部７１２と、制御部７１３と、撮像部７１２と制御部７１３を接続して通信可能にする回線７１４と、ロボット７１１と制御部７１３を接続して通信可能にする回線７１５を備える。ロボット７１１は、１本のマニピュレーター（アーム）を備える単腕のロボットであり、マニピュレーターの先端部に取り付けられたハンド（ロボットのハンド）７２１を備える。制御部７１３は、図１に示される制御部４１と同様な機能を備える。
図６には、ビン８１の上に配置された複数の把持対象８２を示してある。なお、ビン８１および把持対象８２は、図１に示されるものと同様であり、図１と同一の符号を用いてある。
【００６８】
ここで、図１に示されるロボットシステム１と比べて、図６に示されるロボットシステム７０１では、ロボット７１１と制御部７１３（図１に示される制御部４１に対応するもの）とが別体で構成されている。制御部７１３は、回線７１４を介してカメラ７１２との間で通信する機能や、回線７１５を介してロボット７１１との間で通信する機能を備える。
【００６９】
図６の例のように、ロボット７１１と制御部７１３とが別体で構成されるロボットシステム７０１においても、これらが一体で構成されるロボットシステム（例えば、図１に示されるロボットシステム１や、図５に示されるロボット６０１を含むロボットシステム）と同様な効果を得ることができる。
なお、図５に示されるロボット６０１についても、他の構成例として、ロボット６０１の制御部６７１以外の部分と、制御部６７１とが別体で構成されてもよい。
【００７０】
なお、以上に説明した装置（例えば、制御部４１、６７１や制御部７１３など）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７１】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００７２】
１、７０１  ロボットシステム、１１、６０１、７１１  ロボット、１２、６６１、７１２  撮像部、２１、６３１、６３２、７２１  ハンド、３１、６４１、６４２、７３１  把持センサー、４１、６７１、７１３  制御部、８１  ビン、８２、２０１−１〜２０１−８  把持対象、１０１  ロボット動作処理部、１０２  画像受付部、１０３  把持センサー値受付部、１０４  記憶部、１０５  入力部、１０６  出力部、１１１画像処理部、１１２  ロボット動作制御部、１２１  候補検出部、１２２  候補除外部、１２３  把持成功情報記憶制御部、１３１  対象選択部、１３２  対象把持制御部、１３３  把持成功判定部、２１１  対象領域、６１１  格納部、６１２〜６１４  胴体部分、６２１、６２２  マニピュレーター、６５１、６５２  車輪、７１４、７１５  回線
【図１】
2015157343.tif 000003
【図２】
2015157343.tif 000004
【図３】
2015157343.tif 000005
【図４】
2015157343.tif 000006
【図５】
2015157343.tif 000007
【図６】
2015157343.tif 000008