説明

ロボットシステム

【課題】検出精度を低下させることなく、カメラの視界が通い箱に遮蔽されず、またカメラが通い箱に干渉せずにビンピッキングを行うことができるロボットシステムを提供する。
【解決手段】 画像処理装置906は、ワークの2次元モデル109と、2次元ワーク位置検出部108と、通い箱を複数のエリアに分割し、各エリアについてエリア別視線を定義したエリアモデル106と、ピッキング対象ワークが属しているエリアに定義されたエリア別視線を出力するエリア判定部103と、ワークの3次元モデル105と、ピッキング対象ワークを撮像した画像から、3次元位置姿勢を検出する3次元ワーク位置検出部102と、ワークに対して複数の方向からのカメラの視線方向を定義した視線モデル107と、ピッキング対象ワークへアプローチする際のカメラの視線を演算する視線演算部104を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通い箱内などにバラ積みされたワークをカメラ等の視覚センサで検出し、検出したワークを取り出すロボットシステムに関する。
【背景技術】
【0002】
通い箱等の中に複数のワークがバラ積みされた状態からカメラ等の視覚センサでワークの位置を検出し、検出されたワークをロボットで取り上げる作業は、ビンピッキングとして知られている。視覚センサをロボットの手先に搭載してビンピッキングを行う場合、視覚センサが通い箱に干渉しないよう配置することや、視覚センサの視野が通い箱によって遮蔽されないよう配置することが課題となる。
視覚センサの配置に関する技術として、特許文献1が開示されている。図8に特許文献1におけるピッキング装置の概略構成例を示す。図8では、3つの異なる位置に固定されたテレビカメラ11a〜11cにより対象物体14を撮像する。得られた画像は3次元計測手段12により処理され、把持物体決定手段13により把持物体の位置・姿勢が求められる。その結果に基づき、把持手段16を移動手段15により移動して対象物体14をピックアップする。ここで、3次元計測手段12及び把持物体決定手段13は、マイクロコンピュータにて構成される。また、把持手段16はロボットハンド、移動手段15は6軸多関節ロボットで構成される。
【0003】
次に、計測精度の向上を目的としたテレビカメラ11a〜11cの配置方法を説明する。計測に適した画像とは、図9に示した物体モデルとして登録した面41を正面から撮像した画像であるので、そのような画像が得られる位置にテレビカメラ11a〜11cを配置することが望ましい。一方、図10に示すように、対象物体14が重なると、物体モデルとして登録した面41が矢印に示すように色々な方向を向く。が、例えば対象物体14のように厚みが小さい物体であれば、その向き得る範囲は予測することができる。
そこで従来の技術においては、面41の向き得る方向が、図11に示すように頂角2θの円錐状である場合、テレビカメラ11a〜11cを図11に示す61a〜61cの位置に配置する。各位置61a〜61cは円錐の頂点を中心として120度毎にθ/2の傾きで配置されている。これにより、面41をできるだけ計測に適した画像として撮像することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−94374号公報(第4、6頁、図1、図4−6)
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、特許文献1に記載されている技術をビンピッキングに適用した場合を考える。
図1は、ビンピッキングシステムの構成を表す図で、図1(a)は上面図、図1(b)は側面図である。カメラ902とハンド903は、多関節ロボット901の手先に搭載され、ロボット901の可動範囲内で移動させることができる。カメラ902は、通い箱904内にランダムに投入されたワーク905の画像を取得して画像処理装置906に出力する。画像処理装置906は、ワーク905の位置を演算し、その位置をロボットコントローラ907に出力する。ロボットコントローラ907は、演算された位置にハンド903を移動し、ハンド903は、ワーク905を把持または吸着して通い箱から取り出す。
ビンピッキングを行う際には、カメラ902が通い箱904内のワーク905の画像を取得し、画像処理装置906によって取得した画像からピッキングするワーク(対象ワーク)の位置を演算し、ロボット901によってハンド903を演算した対象ワークの位置に移動し、ワークを取り上げる。
【0006】
しかしながら図1のようなビンピッキングシステムに特許文献1に記載されている技術を適用すると次のような問題があった。
図12は、通い箱904の中のある対象ワークAを検出する様子を表す説明図である。図12では、通い箱内のワークのうち、ロボットの手前に位置する対象ワークA908をカメラ902で検出しようとしている。従来の技術によれば、「物体モデルとして登録した面を正面から撮像した画像であるので、そのような画像が得られる位置にカメラ902を配置することが望ましい」ということになるが、図12のような場合はそのような位置にカメラ902を配置すると、カメラ902の視界が通い箱904の壁に遮蔽されてしまい対象ワークA908の画像を取得できないという問題が発生する。
こうした問題に対して、従来の技術においては、図11に示したように、カメラ902の配置を120度毎でθ/2の傾きを許容するようになっているが、通い箱904による遮蔽を回避するために、θを大きくとってしまうと、検出精度が著しく低下したり、通い箱904の壁にカメラが干渉したりする問題が発生する。
【0007】
また図13は、通い箱904の中のある対象ワークBを検出する様子を表す説明図である。図13では、通い箱の底部でなおかつロボットの手前に位置する対象ワークB909をカメラ902で検出しようとしている。従来技術によれば、「物体モデルとして登録した面を正面から撮像した画像であるので、そのような画像が得られる位置にカメラ902を配置することが望ましい」が、そのような位置にカメラを配置しようとすると、カメラ902が通い箱904の壁に干渉するという問題が発生する。
以上説明したように、従来技術では、ワーク905に対してモデルを登録した際と同様の場所にカメラ902を配置させようとするため、カメラ902の視界が通い箱904の壁に遮蔽され、対象ワークA908の画像が取得できないという問題や、カメラ902が通い箱904の壁に干渉するという問題があった。一方、カメラ902の配置の許容度を大きくとってしまうと、検出精度が著しく低下するという問題があった。
本発明はこのような問題点に鑑みてなされたものであり、検出精度を低下させることなく、カメラの視界が通い箱に遮蔽されず、またカメラが通い箱に干渉せずにビンピッキングを行うことができるロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項1に記載の発明は、先端部に取り付けられたハンドにより通い箱内に積まれたワークをピッキングするロボットと、前記ロボットに搭載され、前記ワークを撮像するカメラと、前記カメラによって撮像された前記ワークの画像を入力し、前記ワークの位置姿勢を演算して出力する画像処理装置と、前記画像処理装置の出力に基づいて前記ロボットを前記ワークの位置に移動させ前記ハンドによって前記ワークをピッキングさせるロボットコントローラと、を備えたロボットシステムにおいて、前記画像処理装置は、前記ワークの2次元モデルと、前記2次元モデルを用い、複数の前記ワークを撮像した画像からピッキング対象ワークの2次元位置姿勢を検出する2次元ワーク位置検出部と、前記通い箱を複数のエリアに分割し、各エリアについてエリア別視線を定義したエリアモデルと、前記2次元ワーク位置検出部で検出した前記ピッキング対象ワークの位置が、前記エリアモデルのいずれのエリアに属しているかを判定し、前記ピッキング対象ワークが属しているエリアに定義された前記エリア別視線を出力するエリア判定部と、前記ワークの3次元モデルと、前記3次元モデルを用い、前記ピッキング対象ワークを撮像した画像から、前記ピッキング対象ワークの3次元位置姿勢を検出する3次元ワーク位置検出部と、前記ワークに対して複数の方向からの前記カメラの視線方向を定義した視線モデルと、前記視線モデルと、前記3次元ワーク位置検出部で検出した前記ピッキング対象ワークの姿勢と、前記エリア判定部で求めたエリア別視線とから前記ピッキング対象ワークへアプローチする際の前記カメラの視線を演算する視線演算部と、を備え、前記2次元ワーク位置検出部は、検出した前記ピッキング対象ワークの2次元位置姿勢を前記ロボットコントローラに出力し、 前記視線演算部は、演算した前記ピッキング対象ワークへアプローチする際の前記カメラの視線を前記ロボットコントローラに出力することを特徴とするものである。
【0009】
請求項2に記載の発明は、前記ロボットコントローラは、前記2次元ワーク位置検出部によって検出された前記ピッキングするワークの2次元位置姿勢に基づいて前記ロボットを動作させ、前記カメラを前記ピッキングするワークに接近させ、前記視線演算部によって演算された前記カメラの視線に基づいて前記ロボットを動作させ、前記カメラを前記ピッキングするワークにアプローチさせることを特徴とするものである。
【0010】
請求項3に記載の発明は、前記3次元モデルは、前記ワークに設けられた4つ以上の特徴部の位置を記憶したものであって、前記3次元ワーク位置検出部は前記ワークを撮像した画像から前記特徴部を抽出することによって前記ワークの3次元位置姿勢を検出することを特徴とするものである。
【0011】
請求項4に記載の発明は、前記エリア別視線は、そのエリアに存在するワークに対して前記ロボットがピッキングを行う際に、前記カメラの視野が前記通い箱に遮蔽されず、かつ前記カメラが前記通い箱に干渉しないように前記カメラを配置した際の前記カメラの視線方向を表すことを特徴とするものである。
【0012】
請求項5に記載の発明は、前記エリア別視線は、ロボット座標系に基づくベクトルとして定義されることを特徴とするものである。
【0013】
請求項6に記載の発明は、前記視線演算部は、前記視線モデルにて定義されたカメラの視線方向と前記エリアに設定されたエリア別視線との内積を演算することによって、前記ピッキング対象ワークのピッキングに適した前記カメラの視線を決定することを特徴とするものである。
【0014】
請求項7に記載の発明は、前記2次元ワーク位置検出部は、前記カメラによって撮像された画像と前記2次元モデルとのテンプレートマッチングによって前記ワークの2次元位置姿勢を検出することを特徴とするものである。
【0015】
請求項8に記載の発明は、前記2次元ワーク位置検出部は、テンプレートマッチングによって前記カメラによって撮像された画像から前記ワークが複数個検出された場合は、前記2次元モデルとの一致度が最も高いものを選定することを特徴とするものである。
【0016】
請求項9に記載の発明は、前記ロボットは垂直多関節ロボットであることを特徴とするものである。
【発明の効果】
【0017】
本発明によれば、エリア判定部において、ワークがどのエリアに属しているかを判定し、その判定結果と各エリアについて定義したカメラの視線方向を出力し、視線演算部において、ワークに対して視線方向を定義した視線モデルと、エリア判定部で求めたカメラの視線方向とから、エリア判定部で求めたカメラの視線方向に最も近い視線方向を視線モデルから選ぶようにしたので、カメラの視界が通い箱に遮蔽されず、カメラが通い箱に干渉する恐れがないという効果がある。
また、視線演算部で演算し出力された視線方向のそれぞれに対して3次元モデルが存在するので、3次元モデルを登録した時のワークに対するカメラ配置と近い位置にカメラを配置することができるようになり、検出精度が低下しないという効果がある。
請求項3に記載の発明によれば、1台のカメラによって取得した画像のみからワークの3次元位置姿勢を演算することができるので、ロボットの先端部に複数のカメラやレーザ光源などを設ける必要がなくなり、ロボット先端部をコンパクトにすることができ、カメラが通い箱に干渉する恐れがないという効果がある。
請求項4乃至6に記載の発明によれば、視線モデルのうち、ワークが存在するエリアに定義されたエリア別視線と最も向きの近い視線モデルを求めることにより、カメラの視界が通い箱に遮蔽されず、カメラが通い箱に干渉する恐れがないカメラの視線方向を求めることができる。
請求項7、8に記載の発明によれば、通い箱内に積まれた複数のワークからピッキングしやすいものを選定することができる。
請求項9に記載の発明によれば、カメラの姿勢を自在に変更できるため、視線演算部で求めたカメラの視線に合わせて実際のカメラの姿勢を変更することができ、カメラの視界が通い箱に遮蔽されず、カメラが通い箱に干渉する恐れがないカメラの配置を実現することができる。
【図面の簡単な説明】
【0018】
【図1】ビンピッキングを行うロボットシステムの構成を示す図である。
【図2】ロボットシステムによりビンピッキングの流れを示す図である。
【図3】本発明のロボットシステムの画像処理装置のブロック図である。
【図4】本発明のエリアモデルの概念図である。
【図5】本発明の視線モデルの概念図である。
【図6】本発明の視線演算部の動作説明図である。
【図7】ワークとカメラとの配置を表す説明図である。
【図8】従来技術におけるピッキング装置の概略構成図である。
【図9】従来技術における物体モデルを示す説明図である。
【図10】従来技術における計測対象物体の姿勢を示す説明図である。
【図11】従来技術における複数の視点の位置を示す説明図である。
【図12】対象ワークAを検出する様子を示す説明図である。
【図13】対象ワークBを検出する様子を示す説明図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態について図を参照して説明する。
【0020】
まず、背景技術でも述べた、ワークに対する適切なカメラ配置の必要性について詳しく説明する。カメラで撮像した画像から作業対象となるワークの3次元位置姿勢を得るには、複数のカメラを用いたステレオ視や、レーザなどの光をワークに照射してその様子をカメラで撮像する三角測量を行う手法が従来から用いられているが、近年、複数のカメラやレーザなどを用いることなく、1台のカメラによって取得した1つの画像のみからワークの3次元位置姿勢を演算する手法が知られてきている(例えば技報 安川電機 第71巻 第3号 通巻 第276号(2007年)P144〜148)。
この手法を用いることによりロボットの先端部に複数のカメラやレーザ光源などを設ける必要がなくなり、ロボット先端部をコンパクトにすることができる。ロボットの先端部をコンパクトにすることは、ビンピッキングなどの用途では特に有用である。
1台のカメラによって取得した画像のみからワークの3次元位置姿勢を演算する具体的な方法は本発明の本質ではないため詳細な説明は割愛するが、この手法を用いるためには、対象となるワークに4つ以上の特徴点を設定する必要があり、さらにこれらの特徴点は、カメラで撮像した際に同一直線上に存在しないという条件を満たす必要がある。
【0021】
例えば、図7に示したようなワーク501に対して、カメラ902で画像を取得する場合を考える。図7の場合、ワーク501には4つの穴502が存在する。ワーク501の上方に配置したカメラ902でワーク501の画像を取得し、画像処理装置906で4つの穴を検出し、この4つの穴を特徴点としてその位置関係を求める。ビンピッキングを行うのに先立ち、これら4つの穴の位置を物体モデルとして登録しておく。この物体モデルは後述する3次元モデルとして画像処理装置内に保存される。
図1に示したビンピッキングを行う場合は、物体モデルを登録する場合と同様にワーク905の画像をカメラ902で取得し、画像処理装置906で4つの穴を検出する。ここで検出した4つの穴の位置と、物体モデルの4つの穴の位置を比較することにより、1台のカメラ902から取得した画像からワーク905の3次元位置姿勢を演算することができる。
ビンピッキングを行う場合にワーク905を検出する際のカメラ902の配置は、物体モデルを登録した時の配置と同様にした方が、検出精度が高くなる。
物体モデルを登録した時とビンピッキングを行う時とでカメラに対するワークの配置が異なると、カメラ902から見た穴502の形状が変化するため、穴502の検出精度が低下し、その結果4つの穴の位置関係から求めるワークの3次元位置姿勢の精度が低下してしまうからである。
【実施例1】
【0022】
本実施例では、図1に示したビンピッキングを行うロボットシステムに基づいて説明する。図1において、ロボット901は、通い箱904内のワーク905の姿勢に応じてカメラ902およびハンド903の位置姿勢を自在に変更できるよう、垂直多関節型のロボットを用いている。またカメラ902は、その視線がハンド903の長軸方向と一致するようハンド903と平行にロボット先端部に取り付けられている。
【0023】
まず図2に従ってビンピッキングの大まかな手順を説明する。図2は本発明のロボットシステムによるビンピッキング作業(1回分)の流れを示す図である。
まず通い箱904全体をカメラ902の視野に捉えることができるよう、ロボットを動作させてカメラ902を通い箱904からある程度離れた適当な位置に配置する。この位置は予め教示を行いロボットコントローラ907に記憶させておくことで再現性を確保することができる(ステップ1)。またこの時のカメラの姿勢は図1のように鉛直方向としておく。
カメラの移動が完了したら、続いてカメラ902によって通い箱904内の画像を取得し、その画像を画像処理装置906に出力する(ステップ2)。
画像処理装置906では2次元の検出処理を行ってピッキングしようとするワーク(対象ワーク)の通い箱内でのおおよその位置を検出し、ロボットコントローラに出力する(ステップ3)。ロボットコントローラはカメラの姿勢を図1の状態に保ちつつ、検出されたワークの位置に基づきロボットを水平方向に動作させてカメラ902を対象ワークに近付け、ワークの詳細な画像が得られるようにする(ステップ4)。
そしてカメラ902により再度対象ワークの画像を取得し、その画像を画像処理装置906に出力する(ステップ5)。
画像処理装置906では、今度は3次元の検出処理を行って、対象ワークの詳細な3次元位置姿勢を検出し、物体モデルを登録した時のカメラ位置をロボットコントローラに出力する(ステップ6)。ロボットコントローラは再度ロボットを動作させてカメラを適切な位置に配置し(ステップ7)、ハンド903をアプローチ方向から対象ワークへと接近させ、ハンド903によりワークを把持して通い箱から取り出す(ステップ8)。
前述のようにハンド903は、ワーク905を把持したり吸着したりすることによって通い箱から取り出す。把持する場合には、ハンドとして開閉機構を備えたグリッパなどがロボット先端に設けられる。また吸着する場合には、ハンドとして吸着カップなどが設けられる。
【0024】
図3は、本発明のロボットシステムを構成する画像処理装置906の主要要素を表す図である。以下では、図3に示した画像処理装置906の各要素について説明しながら、図2で説明した手順をより詳細に説明する。
図3において画像入力部101はカメラ902で取得した画像を入力とし、その画像を適宜2次元ワーク位置検出部108や3次元ワーク位置検出部102に出力する。
まず図2のステップ2で複数のワークが写った通い箱904内の画像を取得した際には、その画像を2次元ワーク位置検出部108に出力する。
2次元ワーク位置検出部108は、予め登録されたワーク501に関する2次元モデル109を使い、入力された通い箱904内の画像から、カメラ撮像面におけるワーク905の2次元位置姿勢(2次元位置と回転角度)を検出し、エリア判定部103とロボットコントローラ907へ出力する。2次元ワーク位置検出部108からピッキングしようとするワーク905の2次元位置姿勢をロボットコントローラ907へ出力する処理が図2のステップ3に相当する。
【0025】
ここでの検出は例えば、通い箱内の画像の一部と、予め登録したモデル画像(テンプレート画像)との一致度を計算することでワークがどこに存在するかを見つけるテンプレートマッチングを利用する。この場合、2次元モデル109はワーク501に関するテンプレート画像となり、2次元ワーク位置検出部108では、入力された通い箱904内の画像(シーン画像)から、ワーク905の位置姿勢を検出する。通い箱904内に複数のワーク905が積まれている場合には、検出されるワークも複数になるが、テンプレートマッチングおいて、検出された各ワークについて2次元モデルとのマッチング程度(一致度)を表すスコアが算出されているため、最もスコアの高い1つを検出結果として抽出しピッキングしようとするワーク(対象ワーク)とすれば良い。スコアの高いワークは、カメラ902に対する傾きが2次元モデル登録時のそれと近いものとなる。
一般に2次元モデルは平面上に置かれたワークを真上から見た状態で登録されるため、カメラの視線に対して正対した状態に近いワークが、スコアの高いワークとなる。
実際には複数のワークが検出された場合は、2次元モデルとのマッチング程度(一致度)が高いものを上位から例えば10個選んでその位置を記憶しておき、最もマッチングのスコアが高いものから順にピッキングすることで、次にピッキングすべきワークを決定する際に、図2のステップ1、2の繰り返しを回避することができる。
【0026】
また、ビンピッキング作業を繰り返し、通い箱内のワーク905の数が少なくなると、最上面に位置するワークの、通い箱底面からの高さも低くなる。図2のステップ3でテンプレートマッチングを行う際にはカメラ902と最上面ワークとの距離が一定であることが望ましい。
そこで、ロボット先端のカメラ近傍に距離センサ(図示せず)を設け、ステップ1を実行する度に距離センサで通い箱内のワークまでの距離を計測し、予め定めた値になるようカメラの高さを調整するようにしたり、テンプレートマッチングを行う際にカメラ撮像面におけるワークの大きさを画像処理装置内のメモリ(図示せず)に記憶して、ステップ1を実行する度にカメラで通い箱内のワークを撮像し、記憶しておいたワークの大きさと同等になるようカメラの高さを調整するようにしたりすることによって、通い箱内のワークとカメラとの距離を適切に保つようにしてもよい。
またカメラの高さを調整せずにテンプレートマッチングの際にテンプレート画像の大きさを変化させるスケール変化対応のマッチング処理を行うようにしてもよい。
【0027】
エリア判定部103は、上方から見た通い箱904を複数のエリアに分割したエリアモデル106を使い、2次元ワーク位置検出部108で検出された対象ワークの位置が、どこのエリアに属しているかを判定し、そのエリアについて定義されたカメラ902の視線(エリア別視線)の方向を出力する。
図4に、エリアモデルの概念図を示す。図4は、通い箱904を上方から見た状態であり、通い箱904の内部を複数のエリア201に分割している。点線によって分割されているのがエリアである。図4ではエリア1からエリア8までの8つのエリアに分割しているがこれは一例に過ぎず、エリアの数や分割の仕方は図4のような形に限定されるものではない。
また、エリアモデル106では、各エリア201について、カメラ902の視線方向(エリア別視線202)も定義する。これら視線方向は、そのエリアに存在するワークに対してロボットがピッキングを行う際に、カメラ902の視野が通い箱904に遮蔽されず、かつカメラ902が通い箱904に干渉しないようにカメラ902を配置した際の、カメラ902の視線方向を表すものである。
具体的なエリア別視線の表現方法として、例えば図4のようにロボット座標系に基づくベクトルを用いることができる。例えばエリア1に定義されたエリア別視線は(1、−1)、エリア2に定義されたエリア別視線は(0、−1)のように表現できる。
【0028】
一方、2次元ワーク位置検出部108から出力された、カメラ撮像面における対象ワークの2次元位置を受けとったロボットコントローラ907は、その位置をロボットの座標系位置に変換する。そして変換されたロボット座標系に基づく位置へ向けてロボットを移動させ、カメラ902を対象ワークに接近させる(図2のステップ4に相当)。
カメラ撮像面の座標系とロボット座標系との位置関係については予めキャリブレーションが完了しているものとする。また、カメラの姿勢は通い箱904内の画像を取得した際の姿勢を維持したまま移動させる。
ロボットの移動によりカメラ902は対象ワークのほぼ真上に位置することになる。
【0029】
ロボットの移動が完了すると、ロボットコントローラ907は画像処理装置906に通知する。
この通知を受けて画像入力部101は再度カメラ902で取得した画像を入力し、その画像を3次元ワーク位置検出部102に出力する(図2のステップ5に相当)。
3次元ワーク位置検出部102は、予め登録されたワーク501に関する3次元モデル105を使い、対象ワークを含む通い箱904内の画像から対象ワークの3次元位置姿勢を検出し、視線演算部104へ出力する。
ここでの検出は、既に説明したように、1台のカメラの画像から4つの特徴点(ワーク501の場合は4つの穴)を検出し、それらの位置からワークの3次元位置姿勢を演算する手法を用いる。この場合3次元モデル105は4つの特徴点の位置関係であって、3次元ワーク位置検出部102では、対象ワークの画像から4つの特徴点(4つの穴)を検出し、3次元モデル105と比較することで、対象ワークの3次元位置姿勢を検出する。
【0030】
視線演算部104は、ワーク501に対して視線方向を定義した視線モデル107を使い、3次元ワーク位置検出部102で検出されたワーク905の姿勢と、エリア判定部103で求めたエリア別視線202の情報から、ピッキングしようとするワークに対するカメラの適切な視線を演算し出力する。
図5に、視線モデルの概念図を示す。図5(a)がワーク501を真上から見た図(上面図)、図5(b)がワーク501を斜めから見た図(斜視図)である。視線モデル107は、図5(a)の場合、ワーク501に対して8つの視線方向(視線方向1〜8)を定義している。
視線方向はカメラ902の視線に相当し、立体的に見れば図5(b)のようになる。尚、図5(b)では図を見やすくするため、視線方向1、5、7のみ表示している。視線演算部104は、この視線モデル107を、3次元ワーク位置検出部102で検出した対象ワークの姿勢に合わせて回転させ、エリア判定部103で求めたエリア別視線202と比較する。
尚、図5では、予め定義した視線方向の数を8つとしたが、視線方向の数はこれに限定されることなく、ワークの形状に応じて任意に設定することができる。
【0031】
図6に、視線演算部の動作説明図を示す。図6は、図4における通い箱の右上部にあたるエリア3を拡大表示したものである。今、エリア判定部103において、ピッキングしようとするワーク(対象ワーク)がエリア3に属していると判定され、エリア3のエリア別視線202が図6のように得られたとする。また3次元ワーク位置検出部102によって検出されたワーク905の3次元位置姿勢を用いて視線モデル107を回転させた結果、図6に示すようになったとする。
ここで視線方向1〜8の内、エリア3に設定されたエリア別視線202と最も向きが近い視線方向を特定する。
視線モデルに設定された8つの視線方向のうち、エリア別視線202と最も向きが近いものは、例えば、図6に示すようにXY平面に投影された8つの視線方向と、エリア別視線202との間で内積演算を行うことで求めることができる。
2つのベクトルの向きが近いとその内積は大きくなる。図6の8つの視線方向の各々についてエリア別視線202との間で内積を求め、その結果が最も大きいものがエリア別視線と向きが近い視線方向となる。図6の場合、視線方向3が該当することが分かる。
そして視線演算部104は、エリア別視線と最も向きの近い視線方向の番号と、図6の直交座標系に基づく視線方向3のベクトルを出力視線401としてロボットコントローラ907へ出力する。こうした過程が図2のステップ6に相当する。
【0032】
こうして選ばれた出力視線は、図6の8つの視線方向のうち、カメラ902の視野が通い箱904に遮蔽されず、またカメラ902が通い箱904に干渉しない視線方向と、向きが最も近いものとなっている。
【0033】
ロボットコントローラ907では、図5に示した視線モデルの各視線(視線方向1〜8)に対応したカメラ902の姿勢や配置が予め教示されている。
この教示データを図6の出力視線に合わせて調整することで、図6のように配置されたワークに対し、カメラ902の視野が通い箱904に遮蔽されず、またカメラ902が通い箱904に干渉しない視線方向を得ることができる。
ロボットコントローラ907では、視線演算部104から出力された視線方向の番号から対応するカメラ902の教示データを求め、その教示データを出力視線401のベクトルを用いて座標変換し、図6の状態に応じたカメラの姿勢、配置を求める。その後実際にロボットを動作させてカメラを適切な位置、姿勢に配置する。この動作が図2のステップ7に相当する。
この動作により、それまで図1のように鉛直方向を保っていたカメラの姿勢が、物体モデルを登録した時のカメラの位置・姿勢に変化する。
【0034】
以上の一連の処理によってカメラが適切に配置された後は、従来の技術と同様にカメラで対象ワークを撮像し、画像処理装置906での処理結果に基づきハンドを移動させて対象ワークを把持または吸着して通い箱から取り出す(図2のステップ8)。
【0035】
以上説明したように、本発明によれば、エリア判定部103において、ピッキングしようとするワークが通い箱のどのエリアに属しているかを判定し、その判定結果と、ワークが属しているエリアについて定義したカメラの視線方向(エリア別視線)を出力し、視線演算部104において、ワークに対して視線方向を定義した視線モデル107と、エリア判定部103で求めたカメラの視線方向(エリア別視線)とから、エリア判定部103で求めたエリア別視線に最も近い視線方向を視線モデル107から選び、カメラの向きをその視線方向に合わせるようにしたので、カメラ902の視野が通い箱904に遮蔽されず、また、カメラ902が通い箱904に干渉しないようにカメラ902が配置されるようになる。
【符号の説明】
【0036】
101 画像入力部
102 3次元ワーク位置検出部
103 エリア判定部
104 視線演算部
105 3次元モデル
106 エリアモデル
107 視線モデル
108 2次元ワーク位置検出部
109 2次元モデル
201 エリア
202 エリア別視線
301 視線方向
401 出力視線
501 ワーク
502 穴
901 ロボット
902 カメラ
903 ハンド
904 通い箱
905 ワーク
906 画像処理装置
907 ロボットコントローラ
908 対象ワークA
909 対象ワークB
11a、11b、11c テレビカメラ
12 3次元計測手段
13 把持物体決定手段
14 物体
15 移動手段
16 把持手段


【特許請求の範囲】
【請求項1】
先端部に取り付けられたハンドにより通い箱内に積まれたワークをピッキングするロボットと、
前記ロボットに搭載され、前記ワークを撮像するカメラと、
前記カメラによって撮像された前記ワークの画像を入力し、前記ワークの位置姿勢を演算して出力する画像処理装置と、
前記画像処理装置の出力に基づいて前記ロボットを前記ワークの位置に移動させ前記ハンドによって前記ワークをピッキングさせるロボットコントローラと、
を備えたロボットシステムにおいて、
前記画像処理装置は、
前記ワークの2次元モデルと、
前記2次元モデルを用い、複数の前記ワークを撮像した画像からピッキング対象ワークの2次元位置姿勢を検出する2次元ワーク位置検出部と、
前記通い箱を複数のエリアに分割し、各エリアについてエリア別視線を定義したエリアモデルと、
前記2次元ワーク位置検出部で検出した前記ピッキング対象ワークの位置が、前記エリアモデルのいずれのエリアに属しているかを判定し、前記ピッキング対象ワークが属しているエリアに定義された前記エリア別視線を出力するエリア判定部と、
前記ワークの3次元モデルと、
前記3次元モデルを用い、前記ピッキング対象ワークを撮像した画像から、前記ピッキング対象ワークの3次元位置姿勢を検出する3次元ワーク位置検出部と、
前記ワークに対して複数の方向からの前記カメラの視線方向を定義した視線モデルと、
前記視線モデルと、前記3次元ワーク位置検出部で検出した前記ピッキング対象ワークの姿勢と、前記エリア判定部で求めたエリア別視線とから前記ピッキング対象ワークへアプローチする際の前記カメラの視線を演算する視線演算部と、
を備え、
前記2次元ワーク位置検出部は、検出した前記ピッキング対象ワークの2次元位置姿勢を前記ロボットコントローラに出力し、
前記視線演算部は、演算した前記ピッキング対象ワークへアプローチする際の前記カメラの視線を前記ロボットコントローラに出力することを特徴とするロボットシステム。
【請求項2】
前記ロボットコントローラは、前記2次元ワーク位置検出部によって検出された前記ピッキングするワークの2次元位置姿勢に基づいて前記ロボットを動作させ、前記カメラを前記ピッキングするワークに接近させ、前記視線演算部によって演算された前記カメラの視線に基づいて前記ロボットを動作させ、前記カメラを前記ピッキングするワークにアプローチさせることを特徴とする請求項1に記載のロボットシステム。
【請求項3】
前記3次元モデルは、前記ワークに設けられた4つ以上の特徴部の位置を記憶したものであって、前記3次元ワーク位置検出部は前記ワークを撮像した画像から前記特徴部を抽出することによって前記ワークの3次元位置姿勢を検出することを特徴とする請求項1に記載のロボットシステム。
【請求項4】
前記エリア別視線は、そのエリアに存在するワークに対して前記ロボットがピッキングを行う際に、前記カメラの視野が前記通い箱に遮蔽されず、かつ前記カメラが前記通い箱に干渉しないように前記カメラを配置した際の前記カメラの視線方向を表すことを特徴とする請求項1に記載のロボットシステム。
【請求項5】
前記エリア別視線は、ロボット座標系に基づくベクトルとして定義されることを特徴とする請求項1に記載のロボットシステム。
【請求項6】
前記視線演算部は、前記視線モデルにて定義されたカメラの視線方向と前記エリアに設定されたエリア別視線との内積を演算することによって、前記ピッキング対象ワークのピッキングに適した前記カメラの視線を決定することを特徴とする請求項1に記載のロボットシステム。
【請求項7】
前記2次元ワーク位置検出部は、前記カメラによって撮像された画像と前記2次元モデルとのテンプレートマッチングによって前記ワークの2次元位置姿勢を検出することを特徴とする請求項1に記載のロボットシステム。
【請求項8】
前記2次元ワーク位置検出部は、テンプレートマッチングによって前記カメラによって撮像された画像から前記ワークが複数個検出された場合は、前記2次元モデルとの一致度が最も高いものを選定することを特徴とする請求項7に記載のロボットシステム。
【請求項9】
前記ロボットは垂直多関節ロボットであることを特徴とする請求項1に記載のロボットシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2011−83882(P2011−83882A)
【公開日】平成23年4月28日(2011.4.28)
【国際特許分類】
【出願番号】特願2009−240753(P2009−240753)
【出願日】平成21年10月19日(2009.10.19)
【出願人】(000006622)株式会社安川電機 (2,482)
【Fターム(参考)】