説明

ロボット制御システム、ロボットシステム及びマーカー処理方法

【課題】 ロボットの操作対象物に設定された第1のマーカーに基づいて、操作対象物の位置情報を特定できるロボット制御システム等の提供。
【解決手段】 ロボット制御システム10は、撮像部20から得られる画像情報に基づいて画像処理を行う処理部110と、処理部110の処理結果に基づいてロボット30の制御を行う制御部120と、を含む。処理部110は、ロボット30の操作対象物に設定された第1のマーカーに設定された画像構成要素が、N回対称性を有する場合に、画像情報に基づいて、第1のマーカーの認識処理を行い、操作対象物のN個の候補位置情報を求め、操作対象物の認識処理の結果に基づいて、N個の候補位置情報の中から操作対象物の位置情報を特定する。制御部120は、操作対象物の位置情報に応じてロボット30を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御システム、ロボットシステム及びマーカー処理方法等に関係する。
【背景技術】
【0002】
近年、生産現場において、作業の自動化を図るために、産業用ロボットを用いてワークをピッキングしたり、パレタイズをする手法が用いられている。産業用ロボットを用いてパレタイズ等を行う場合には、産業用ロボットがパレットの位置や向きを認識する必要がある。そのための手法として、パレットやパレットの区画内に設けられた突起や切り欠けなどの物理的形状や、パレットに貼付したマーカーなどを認識して、物理的形状やマーカーの認識処理結果に基づいて、パレットの位置や向きを特定する手法がある。他にも、ワークそのものをマーカーとして用いて、ワークやパレットの区画の位置や向きを認識する手法が考案されており、特許文献1に記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−32258号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
前述した手法には以下のような問題点がある。
【0005】
まず、パレットやパレットの区画内に設けられた突起や切り欠けなどの物理的形状の認識処理を行うことにより、パレットの位置や向きを判別する手法は、あらかじめパレット毎に突起や切り欠けなどの物理的な形状を設ける必要があり、準備コストが大きいという問題点がある。さらに、あらかじめ設けられた物理的形状からは、あらかじめ決められた情報しか読み取ることができないという問題点もある。パレットにマーカーをあらかじめ貼付しておく場合も同様である。
【0006】
また、特許文献1に記載されているワーク自体をマーカーとして用いる手法には、ワークが例えば3次元形状のような複雑な形状である場合に、マーカーとしてのワークの検出が難しくなるという問題点がある。
【0007】
本発明の幾つかの態様によれば、ロボットの操作対象物に設定された第1のマーカーに基づいて、操作対象物の位置情報を特定できるロボット制御システム、ロボットシステム及びマーカー処理方法等を提供できる。
【0008】
また、本発明の幾つかの態様によれば、N回対称性を有する第1のマーカーに基づいて、第1のマーカーの設定位置や向きのずれを許容しつつ、操作対象物の位置情報を特定できるロボット制御システム、ロボットシステム及びマーカー処理方法等を提供できる。
【課題を解決するための手段】
【0009】
本発明の一態様は、撮像部から得られる画像情報に基づいて画像処理を行う処理部と、前記処理部の処理結果に基づいてロボットの制御を行う制御部と、を含み、前記処理部は、前記ロボットの操作対象物に設定された第1のマーカーに設定された画像構成要素が、N回対称性(Nは2以上の整数)を有する場合に、前記画像情報に基づいて、前記第1のマーカーの認識処理を行い、前記操作対象物のN個の候補位置情報を求め、前記操作対象物の認識処理の結果に基づいて、前記N個の候補位置情報の中から前記操作対象物の位置情報を特定し、前記制御部は、特定された前記操作対象物の前記位置情報に応じて前記ロボットを制御することを特徴とするロボット制御システムに関係する。
【0010】
本発明の一態様では、撮像部から得られる画像情報に基づいて、ロボットの操作対象物に設定された第1のマーカーの認識処理を行う。そして、第1のマーカーの認識処理の結果に基づいて、操作対象物のN個の候補位置情報を求め、操作対象物の認識処理の結果に基づいて、N個の候補位置情報の中から操作対象物の位置情報を特定する。その結果として、操作対象物の位置情報に応じてロボットを制御することが可能となる。
【0011】
また、本発明の一態様では、前記処理部は、前記操作対象物の前記認識処理として、前記操作対象物の輪郭抽出処理を行って、輪郭情報を求め、前記N個の候補位置情報と前記輪郭情報とに基づいて、前記操作対象物の前記位置情報を特定してもよい。
【0012】
これにより、N個の候補位置情報の中から、操作対象物の実際の位置情報を特定する場合に、撮像画像により表される操作対象物の輪郭を表す情報である輪郭情報を用いること等が可能になる。その結果、操作対象物の輪郭以外の部分の情報を用いる場合に比べて、実際の操作対象物の位置情報の特定処理を単純化し、処理負荷を軽減すること等が可能となる。
【0013】
また、本発明の一態様では、前記処理部は、前記輪郭情報により表される前記操作対象物の輪郭線と、前記操作対象物の前記N個の候補位置情報から推定した推定輪郭線との距離情報を求め、前記距離情報に基づいて、前記操作対象物の前記位置情報を特定してもよい。
【0014】
これにより、輪郭線と推定輪郭線との距離情報に基づいて、実際の操作対象物の位置情報を特定すること等が可能になる。輪郭線間の距離情報のみを用いるため、位置情報特定処理を単純化し、処理負荷を軽減し、さらには処理実行時に使用するメモリー量を抑制すること等が可能になる。
【0015】
また、本発明の一態様では、前記処理部は、前記推定輪郭線の辺に第1の基準点を設定し、前記第1の基準点から前記輪郭線の辺を含む直線へ下ろした垂線と前記輪郭線の辺を含む直線との交点を第2の基準点に設定し、前記第1の基準点と前記第2の基準点との距離を、前記輪郭線と前記推定輪郭線との前記距離情報として求めてもよい。
【0016】
これにより、第1の基準点と第2の基準点間の距離に基づき、実際の操作対象物の位置情報を特定すること等が可能になる。2点間の距離を算出するため、位置情報特定処理をさらに単純化し、さらに処理負荷を軽減し、さらに使用メモリー量を抑制すること等が可能になる。
【0017】
また、本発明の一態様では、前記処理部は、前記N個の候補位置情報の中から特定された前記操作対象物の前記位置情報と、前記操作対象物の前記認識処理により求められた前記輪郭情報とに基づいて、前記画像情報により表される撮像画像内で発生しているオクルージョンを検出し、オクルージョン情報を特定し、前記制御部は、前記オクルージョン情報に基づいて、前記ロボットを制御してもよい。
【0018】
これにより、オクルージョンが発生している場合でも、オクルージョン情報に基づいてロボットを制御し、オクルージョンを解消すること等が可能になる。その結果として、ロボットを作業者の期待通りに制御すること等が可能になる。
【0019】
また、本発明の一態様では、前記処理部は、前記ロボットの前記操作対象物に設定された前記第1のマーカーに設定された前記画像構成要素が、N回対称性を有する場合に、前記画像情報に基づいて、前記第1のマーカーの前記認識処理を行い、前記第1のマーカーの回転対称情報を求め、前記回転対称情報に基づき前記操作対象物の前記N個の候補位置情報を求めてもよい。
【0020】
これにより、第1のマーカーの回転対称情報が既知でない場合においても、第1のマーカーの回転対称情報を求め、回転対称情報に基づき、操作対象物のN個の候補位置情報を求めること等が可能になる。回転対称情報が分かれば、無限に考えられる候補位置情報をN個まで容易に絞り込むことが可能である点において優位である。
【0021】
また、本発明の一態様では、前記処理部は、前記画像構成要素の面積重心を求め、前記面積重心を中心に前記第1のマーカー画像を回転させ、回転させた前記第1のマーカー画像と回転前の前記第1のマーカー画像との差分情報を求め、前記差分情報に基づき前記回転対称情報を求めてもよい。
【0022】
これにより、第1のマーカーを回転させ、回転前の第1のマーカーと回転させた第1のマーカーとの差分情報を求め、差分情報に基づき回転対称情報を求めること等が可能になる。その結果、例えば、画像比較処理を用いて、回転対称情報を求めること等が可能になる。
【0023】
また、本発明の一態様では、前記処理部は、前記第1のマーカー画像を所定の角度だけ回転させた場合における回転後の前記第1のマーカー画像と回転前の前記第1のマーカー画像との輝度の差の総和である総輝度差を求め、前記総輝度差の履歴を前記差分情報として求めてもよい。
【0024】
これにより、差分情報として求められた総輝度差の履歴に基づいて、回転対称情報を求めること等が可能になる。総輝度差の履歴を用いるため、画像比較処理等を行う場合に比べて、処理負荷や使用メモリーを抑制すること等が可能となる。
【0025】
また、本発明の一態様では、前記処理部は、前記総輝度差の履歴において前記総輝度差が所定の閾値以下となる回数に基づいて、前記回転対称情報を求めてもよい。
【0026】
これにより、総輝度差の履歴に基づいて回転対称情報を求める処理を単純化すること等が可能になる。
【0027】
また、本発明の一態様では、前記操作対象物は、ワークが配置される複数の区画を有するパレットであり、前記処理部は、前記N個の候補位置情報の中から特定された前記操作対象物の前記位置情報に基づいて、前記パレットの区画位置情報を求め、前記制御部は、前記区画位置情報に基づいて、前記ロボットの制御を行ってもよい。
【0028】
これにより、操作対象物の位置情報に基づいて、パレットの区画位置情報を求め、区画位置情報に基づいて、ロボットの制御を行うこと等が可能になる。その結果、ロボットの各部をパレットの区画位置に対してより正確に移動させること等が可能になる。
【0029】
また、本発明の一態様では、前記処理部は、前記第1のマーカーの前記画像構成要素の内側に設定され、前記ロボットの制御情報が埋め込まれたマーカーである第2のマーカーの認識処理を、前記画像情報に基づいて行い、前記第2のマーカーの前記認識処理の結果に基づいて、前記制御情報に含まれる前記区画位置情報を求めてもよい。
【0030】
これにより、第2のマーカーの認識処理に基づいて、第2のマーカーに埋め込まれたロボットの制御情報を取得すること等が可能となり、制御情報に含まれるパレットの区画位置情報を求め、区画位置情報に基づいて、ロボットの制御を行うこと等が可能になる。
【0031】
また、本発明の一態様では、前記処理部は、前記第1のマーカー内の画像パターンについて膨張収縮処理を行い、前記第1のマーカーの内側に埋め込まれた情報を消去してもよい。
【0032】
これにより、第1のマーカーの回転対称情報を求める処理において、第1のマーカー内の画像パターンが原因で、1回転させるまでに回転前と回転後の第1のマーカーが一致せず、正しい回転対称情報を求められなくなることを防ぐこと等が可能となる。
【0033】
また、本発明の他の態様は、前記ロボット制御システムを含むロボットシステムに関係する。
【0034】
また、本発明の他の態様では、撮像部からの画像情報を検出し、前記画像情報に基づいて、ロボットの操作対象物に設定された第1のマーカーの認識処理を行い、前記第1のマーカーに設定された画像構成要素がN回対称性(Nは2以上の整数)を有する場合に、前記操作対象物のN個の候補位置情報を求め、前記操作対象物の認識処理の結果に基づいて、前記N個の候補位置情報の中から前記操作対象物の位置情報を特定することを特徴とするマーカー処理方法に関係する。
【0035】
これにより、ロボット制御システムとロボットシステム以外の他のシステムにおいて、第1のマーカーの認識処理の結果に基づいて、操作対象物のN個の候補位置情報を求め、操作対象物の認識処理の結果に基づいて、N個の候補位置情報の中から操作対象物の位置情報を特定すること等が可能になる。
【0036】
また、本発明の他の態様では、前記操作対象物の前記認識処理として、前記操作対象物の輪郭抽出処理を行って、輪郭情報を求め、前記N個の候補位置情報と前記輪郭情報とに基づいて、前記操作対象物の前記位置情報を特定してもよい。
【0037】
これにより、ロボット制御システムとロボットシステム以外の他のシステムにおいても、N個の候補位置情報の中から、操作対象物の実際の位置情報を特定する場合に、撮像画像により表される操作対象物の輪郭を表す情報である輪郭情報を用いること等が可能になる。
【0038】
また、本発明の他の態様では、前記画像情報に基づいて、前記第1のマーカーの前記認識処理を行い、前記第1のマーカーに設定された前記画像構成要素がN回対称性を有する場合に、前記第1のマーカーの回転対称情報を求め、前記回転対称情報に基づき前記操作対象物の前記N個の候補位置情報を求めてもよい。
【0039】
これにより、ロボット制御システムとロボットシステム以外の他のシステムにおいても、第1のマーカーの回転対称情報が既知でない場合に、第1のマーカーの回転対称情報を求め、回転対称情報に基づき、操作対象物のN個の候補位置情報を求めること等が可能になる。
【図面の簡単な説明】
【0040】
【図1】本実施形態のシステム構成例。
【図2】本実施形態の詳細なシステム構成例。
【図3】図3(A)、図3(B)は、マーカーと画像構成要素の説明図。
【図4】図4(A)、図4(B)は、N回対称性を有する画像構成要素の説明図。
【図5】図5(A)、図5(B)は、N個の候補位置情報と位置情報を求める手法の説明図。
【図6】図6(A)、図6(B)は、輪郭情報に基づき位置情報を求める手法の説明図。
【図7】距離情報に基づき位置情報を求める手法の説明図。
【図8】基準点を設定することにより輪郭線と推定輪郭線との距離を求める手法の説明図。
【図9】オクルージョンを検出する手法の説明図。
【図10】差分情報を求める手法の説明図。
【図11】総輝度差により差分情報を求める手法の説明図。
【図12】図12(A)、図12(B)は、位置情報に基づき区画位置情報を求める手法の説明図。
【図13】図13(A)、図13(B)は、第2のマーカーに埋め込まれた制御情報に基づき区画位置情報を求める手法の説明図。
【図14】図14(A)、図14(B)は、膨張収縮処理により第1のマーカーに埋め込まれた情報を消去する手法の説明図。
【図15】本実施形態においてパレタイズ処理の流れを説明するフローチャート。
【図16】回転対称情報に基づき操作対象物の位置情報を求める手法のフローチャート。
【図17】本実施形態においてデパレタイズ処理の流れを説明するフローチャート。
【発明を実施するための形態】
【0041】
以下、本実施形態について説明する。まず、本実施形態の概要を説明し、次にシステム構成例を説明する。その後に、本実施形態の特徴について説明する。そして最後に、フローチャートを用いて本実施形態の処理の流れについて説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0042】
1.概要
近年、生産現場において、作業の自動化を図るために、産業用ロボットを用いてワークをピッキングしたり、パレタイズをする手法が用いられている。本実施形態では、図1のように作業者70とロボット30が協業するような場合を想定している。作業者70の作業が完了すると、作業者70はロボット30にパレット50やワーク40を渡して、ロボット30が次の作業を実施する。
【0043】
このように産業用ロボットを用いてパレタイズ等を行う場合には、産業用ロボットがパレットの位置や向き(またはこれらと代替できるような情報)を認識する必要がある。そのための手法として、パレットやパレットの区画内に設けられた突起や切り欠けなどの物理的形状や、パレットに貼付したマーカーなどを認識し、その認識結果に基づいて、パレットの位置や向きを特定する手法がある。
【0044】
しかし、このような手法は、あらかじめパレット毎に突起や切り欠けなどの物理的な形状を設ける必要があり、準備コストが大きいという問題点がある。さらに、あらかじめ設けられた物理的形状からは、あらかじめ決められた情報しか読み取ることができないという問題点もある。パレットにマーカーをあらかじめ貼付しておく場合も同様である。
【0045】
上記の手法の他にも、ワークそのものをマーカーとして用いて、ワークやパレットの区画の位置や向きを認識する手法が考案されている。現実的にはワークによってロボットの作業が変わったり、使用するパレットやパレットの区画が変わることが多いため、この手法はワークに対応する情報を得られる点において有効である。
【0046】
しかし、この手法には、ワークが例えば3次元形状のような複雑な形状である場合に、マーカーとしてのワークの検出が難しくなるという問題点がある。
【0047】
以上より、ロボットを制御してパレタイズ等を行う場合には、以下のような2つの課題の克服が期待されている。第1の課題は、ワークやパレットの種類若しくは作業状況等に応じて、操作対象物に関する情報をロボット制御システムが取得することができるようになることである。そして、第2の課題は、3次元形状のような複雑な形状のワークを用いる場合であっても、操作対象物の位置や向きに関する情報をロボット制御システムが検出することができるようになることである。
【0048】
第1の課題については、状況に応じたマーカーを作業者が逐一パレットに貼付する手法が考えられる。また、第2の課題については、ワークをマーカーとしては用いず、2次元形状として認識することができる他のマーカーを用いる手法が考えられる。
【0049】
すなわち、あらかじめマーカー等をパレットに設定しておくのではなく、作業者が逐一パレットにマーカーを貼付して、作業者がマーカーを貼る位置や向きを調整したり、異なる情報が埋め込まれた複数種類のマーカーを用いることにより、ワークやパレットの種類または作業状況等に応じた情報をパレットに付与することが可能となる。
【0050】
このようにして操作対象物にマーカーを設定してロボットを制御する場合には、操作対象物に設定されたマーカーの位置と向きを判別する必要がある。マーカーがあらかじめ決まった位置や向きに設定されているのではないという点が従来と異なる。そこで、本実施形態では、後述する手法により、ロボットの操作対象物に設定されたマーカーの認識処理を行い、マーカーの認識処理結果に基づき、操作対象物の候補位置情報を求める。そして、候補位置情報の中から操作対象物の位置情報を特定し、操作対象物の位置情報に基づき、ロボットを制御する。これにより、第1の課題と第2の課題を解決することが可能となる。
【0051】
2.システム構成例
2.1 ロボットシステムの構成例
本実施形態に係るロボットシステムの構成例を図1に示す。ロボットシステムは、ロボット制御システム10と、撮像部20と、ロボット30とを含む。ただし、ロボットシステムは図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。また、本実施形態では、作業者70とロボット30とが協業するような場面を想定している。
【0052】
ロボット制御システム10は、撮像部20により得られる撮像画像に基づいて、制御信号を生成し、制御信号に基づいてロボット30を制御する。ロボット制御システムの詳細は後述する。なお、本実施形態のロボット制御システム10の一部又は全部の機能は、例えばPC等の情報処理装置などにより実現される。但し、ロボット制御システム10の一部又は全部の機能を、撮像部20やロボット30により実現したり、情報処理装置とは異なる電子機器により実現してもよい。また、本実施形態のロボット制御システム10の一部又は全部の機能は、情報処理装置もしくは撮像部20、ロボット30と通信により接続されたサーバにより実現してもよい。
【0053】
撮像部(カメラ)20は、作業スペースを撮影する。この撮像部20は、例えばCCD、CMOSセンサー等の撮像素子と光学系を含む。また画像処理用等に用いられるデバイス(プロセッサー)を含むことができる。撮像部20は、ロボット30やワーク40、パレット50が位置し得る作業スペースを撮影することができる位置に配置される。例えば、撮像部20は、ワーク40やパレット50の直上に配置されてもよいし(固定カメラ)、ロボット30のアーム320やハンド330もしくは図1に示すようにロボット30の胴体正面等に取り付けられてもよい(可動カメラ)。また、撮像部20は、一台で作業スペース全体又は一部を撮影してもよいし、複数台によって、作業スペースの全体又は一部を撮影してもよい。そして、撮像部20は、撮像された画像情報をロボット制御システム10等に出力する。また、撮像部20を用いることにより、ワーク40やパレット50、マーカー60の位置や姿勢等に関する情報を検出できればよいため、撮像部20による撮像画像の取得以外の手法、例えばレーザー等を用いた3次元スキャン等を用いてもよい。
【0054】
なお、本実施形態においては、撮像された画像情報をそのままロボット制御システム10に出力するものとするが、これに限定されるものではない。例えば、ロボット制御システム10の処理部の一部を撮像部20に持たせてもよい。その場合、撮像画像に対して画像処理が施された後の情報が出力されることになる。
【0055】
ロボット30は、アーム320及びハンド330を有し、ロボット制御システム10からの制御信号に従い処理を行う。ロボット30は、例えばワーク40のピッキングやパレタイズなどの処理を行う。図1においては、ロボット30は双腕であるが、これに限定されない。
【0056】
ここで、アーム320とは、ロボット30のパーツであって、一つ以上の関節を含む可動パーツのことをいう。また、アーム320のエンドポイントとは、アーム320の先端部分のポイントであって、ロボット30のハンド330以外の他の部分と接続されていない部分のことをいう。さらに、ハンド330とは、ワーク40を把持したり、ワーク40に加工を施すためにアーム320のエンドポイントに取り付ける部品のことをいう。なお、アームのエンドポイントの位置は、ハンドの位置としてもよい。
【0057】
また、ロボット30の操作対象物としては、ワーク40やパレット50などを想定できる。本実施形態においては、作業者70によってパレット50にマーカー60が貼付(広義には設定)されている。ただし、マーカー60はあらかじめパレット50に設定されていてもよい。
【0058】
ここで、マーカー60とは、目印として利用することができる文字、図形、記号、模様もしくは立体的形状もしくはこれらの結合又はこれらと色彩との結合を形成する有体物で、物体に固定可能なものである。例えば、シールやステッカー、ラベル等である。なお、マーカーの形状や、色彩、模様等がどのようなものであるかは問わないが、他の領域と区別しやすいもの、例えば赤色一色からなる画像やシールなどが望ましい。
【0059】
2.2 ロボット制御システムの構成例
次に、本実施形態のロボット制御システム及びこれを含むロボットシステムの詳細な構成例を図2に示す。
【0060】
ロボット制御システム10は、処理部110と、制御部120と、記憶部130と、I/F部(入力部)140と、を含む。なお、ロボット制御システム10は、図2の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0061】
次に各部で行われる処理について説明する。
【0062】
処理部110は、記憶部130からのデータや、I/F部140において受信した撮像部20或いはロボット30からの情報等に基づいて種々の処理を行う。この処理部110の機能は、各種プロセッサー(CPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムなどにより実現できる。
【0063】
さらに、処理部110は、回転対称情報特定部112と、位置情報特定部114と、を含む。なお、処理部110は図2の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0064】
回転対称情報特定部112は、第1のマーカーの回転対称情報を特定する。位置情報特定部114は、操作対象物の位置情報を特定する。なお、ここでは回転対称情報特定部112と位置情報特定部114は、ロボット制御システム10の処理部110に設けられるものとしたがこれに限定されるものではない。回転対称情報特定部112と位置情報特定部114は、撮像部20やロボット30等に内蔵されてもよい。
【0065】
制御部120は、処理部110の処理結果に基づいて、ロボット30を制御する。
【0066】
記憶部130は、データベースを記憶したり、処理部110等のワーク領域となるもので、その機能はRAM等のメモリーやHDD(ハードディスクドライブ)などにより実現できる。
【0067】
I/F部140は、ロボット制御システム10に対して作業者70からの入力等を行ったり、撮像部20やロボット30からの情報を受け付けるためのインターフェースである。I/F部140は、作業者70からの入力を受け付ける入力部として、スイッチやボタン、キーボード或いはマウス等から構成されてもよい。
【0068】
また、ロボット制御システム10を含むロボットシステムの例としては、撮像部20や、ロボット30等を含むロボットシステム等が挙げられる。
【0069】
撮像部20については上述の通りである。ロボット30は、アーム320及びハンド330の他に制御部310を含む。制御部310は、ロボット制御システム10からの情報を受け付けロボット30の各部(アーム320及びハンド330等)の制御を行う。
【0070】
3.本実施形態の手法
以上の本実施形態では、撮像部20から得られる画像情報に基づいて画像処理を行う処理部110と、処理部110の処理結果に基づいてロボット30の制御を行う制御部120と、を含む。処理部110は、画像情報に基づいて、第1のマーカーの認識処理を行い、操作対象物の候補位置情報を求める。さらに、処理部110は、操作対象物の認識処理の結果に基づいて、候補位置情報の中から操作対象物の位置情報を特定する。そして、制御部120は、特定された操作対象物の位置情報に応じてロボット30を制御する。
【0071】
まず本実施形態では、撮像部20から得られる画像情報に基づいて、ロボット30の操作対象物に設定された第1のマーカーの認識処理を行う。
【0072】
ここで、撮像部20から得られる画像情報とは、撮像部20により作業スペースを撮像した際に得られる画像である撮像画像を表す情報、又は撮像画像から求めることができる情報のことをいう。画像情報は、撮像画像そのものであってもよい。
【0073】
また、認識処理とは、画像情報により表される撮像画像内に映る第1のマーカーやパレット等の認識対象物を、認識対象物以外の環境物と区別して、特定することをいう。言い換えると、認識処理とは、画像情報により表される撮像画像内に映る認識対象物を判別し、ラベリングすることをいう。また、認識処理において、認識対象物の撮像画像内での位置を特定してもよい。
【0074】
さらに、第1のマーカーとは、前述したマーカーの一つであり、ロボットの操作対象物の候補位置を絞り込むために用いられるマーカーのことをいう。
【0075】
ここで、操作対象物の候補位置とは、判明している情報に基づいて操作対象物の位置を特定する場合に、操作対象物が存在する可能性があると判断することができる位置のことをいう。また、操作対象物の候補位置を表す情報のことを候補位置情報と呼ぶ。
【0076】
次に本実施形態では、第1のマーカーの認識処理の結果に基づいて、操作対象物の候補位置情報を求める。候補位置情報の具体的な求め方としては、後述するような方法がある。
【0077】
そして本実施形態では、操作対象物の認識処理の結果に基づいて、候補位置情報の中から操作対象物の位置情報を特定する。操作対象物の位置情報の具体的な求め方としては、後述するような方法がある。
【0078】
ここで、位置情報とは、実際に操作対象物が存在すると判断された位置を表す情報である。
【0079】
以上のようにして、位置情報を求め、位置情報に応じてロボット30を制御することが可能となる。また、操作対象物の製造時等にあらかじめ操作対象物に物理的な形状やマーカー等を設定しておく必要がないため、準備コストを削減することが可能となる。
【0080】
上記のように、位置情報を求める場合、設定された第1のマーカーによっては、無限の候補位置情報が求められ、位置情報を特定できない場合がある。
【0081】
そこで、処理部110は、ロボット30の操作対象物に設定された第1のマーカーに設定された画像構成要素が、N回対称性(Nは2以上の整数)を有する場合に、画像情報に基づいて、第1のマーカーの認識処理を行い、操作対象物のN個の候補位置情報を求める。さらに、処理部110は、操作対象物の認識処理の結果に基づいて、N個の候補位置情報の中から操作対象物の位置情報を特定する。
【0082】
ここで、画像構成要素とは、第1のマーカーにあらかじめ設定された所定の領域であり、第1のマーカーの一部分であってもよく、第1のマーカーの全ての領域であってもよい。
【0083】
例えば、図3(A)と図3(B)に第1のマーカーと第1のマーカーの画像構成要素の一例を示す。図3(A)は、第1のマーカーMK1と第1のマーカーの画像構成要素IMF1が一致している例を示している。また、図3(B)は、第1のマーカーMK2と第1のマーカーの画像構成要素IMF2が一致しておらず、画像構成要素IMF2が第1のマーカーMK2の一部の領域として設定されている例を示している。
【0084】
また、N回対称性とは、所定の点(2次元図形の場合)または所定の軸を中心として(3次元図形の場合)、図形を(360/N)°回転させると、回転前の図形と回転後の図形が一致する性質のことをいう。なお、Nは2以上の正の整数であり、便宜的にNを回転対称値と呼ぶこととする。
【0085】
例えば、N回対称性を有する画像構成要素の一例を図4(A)と図4(B)に示す。図4(A)に示す第1のマーカーMK1には、画像構成要素IMF1が設定されている。画像構成要素IMF1は長方形であり、180°回転させると、回転前のIMF1と一致するため、2回対称性を有する画像構成要素である。同様にして、図4(B)に示す第1のマーカーMK2には、画像構成要素IMF2が設定されている。画像構成要素IMF2は正六角形であり、60°回転させると、回転前のIMF2と一致するため、6回対称性を有する画像構成要素である。
【0086】
また、図5(A)と図5(B)に、N個の候補位置情報とN個の候補位置情報から位置情報を求める場合の具体例を示す。図5(A)は、図4(A)に示す2回対称性を有する画像構成要素が設定されたマーカーMK1を用いる場合である。上述の通り、MK1の画像構成要素は180°回転させた時に、回転前の画像構成要素と一致する。したがって、図5(A)のように、パレットの右下にマーカーを貼付することをあらかじめ定めておけば、候補位置PC1と、PC1と180°逆向きにパレットが置かれている場合の候補位置PC2の2つにパレットの候補位置を絞り込むことができる。候補位置情報は、この時のPC1とPC2を表す情報として求められる。例えば、候補位置情報は、PC1とPC2の頂点の座標位置等である。そして、画像情報に基づき、パレットの撮像画像IMP1を求め、求めた候補位置との位置を比較する。この場合には、パレットの撮像画像IMP1はPC1とほぼ一致しているため、実際にパレットが存在する位置はPC1であるとして、PC1を表す位置情報を求める。
【0087】
同様に、図5(B)は、図4(B)に示す6回対称性を有する画像構成要素が設定されたマーカーMK2を用いる場合である。上述の通り、MK2の画像構成要素は60°回転させた時に、回転前の画像構成要素と一致する。したがって、図5(B)のように、パレットの右下にマーカーを貼付することをあらかじめ定めておけば、候補位置PC10からMK2を中心に60°の整数倍だけパレットを回転させた位置であるPC10〜PC15の6つにパレットの候補位置を絞り込むことができる。そして、画像情報に基づき、パレットの撮像画像IMP2を求め、求めた候補位置との位置を比較する。この場合には、パレットの撮像画像IMP2はPC10とほぼ一致しているため、実際にパレットが存在する位置はPC10であるとして、PC10を表す位置情報を求める。
【0088】
以上のようにして、候補位置情報をN個に限定し、位置情報を特定すること等が可能となる。
【0089】
また、撮像部により作業スペースを撮像した結果、後述する図9に示す場合のように、操作対象物の撮像画像IMPにおいてオクルージョンOCが発生している場合がある。
【0090】
ここで、オクルージョンとは、ロボットのアーム等の手前にある障害物に遮られて、本来の撮像対象である奥の物体が見えなくなっている状態のことをいう。また、本実施形態では、撮像部の視野範囲の外に物体が存在しているため、物体が見えなくなっている状態も同様に、オクルージョンとして扱う。図9では、OCの部分でオクルージョンが発生している。
【0091】
オクルージョンが発生している場合には、撮像画像IMPに操作対象物の一部の領域しか映されておらず、場合によっては操作対象物のほとんどの部分が映されていないこともある。このような場合には、撮像画像IMPのみに基づいて、操作対象物の位置や向きを特定することはできない。
【0092】
しかし、本実施形態では、オクルージョンが発生している場合であっても、第1のマーカーを認識することさえできれば、第1のマーカーの認識処理の結果に基づいて、N個の候補位置情報を特定することが可能となる。そして、このような場合であっても、N個の候補位置情報に基づいて、操作対象物の位置情報を特定し、ロボットを制御することが可能となる。
【0093】
上記のように、位置情報を求める場合、撮像画像に映る操作対象物が複雑な形状をしている等の理由で、候補位置情報の中から位置情報を特定する処理の負荷が大きくなる場合がある。この場合、候補位置と操作対象物の輪郭だけを比較することができれば、処理負荷の軽減が期待できる。
【0094】
そこで、処理部110は、操作対象物の認識処理として、操作対象物の輪郭抽出処理を行って、輪郭情報を求め、N個の候補位置情報と輪郭情報とに基づいて、操作対象物の位置情報を特定してもよい。
【0095】
ここで、輪郭抽出処理とは、画像情報により表される撮像画像上に映る操作対象物などの物体の輪郭を抽出し、輪郭情報を特定する処理のことをいう。輪郭抽出処理の一手法として、ハフ(Hough)変換がある。ハフ変換を用いる場合には、所定の長さ以上の直線のみを輪郭として抽出するように、パラメータを設定する。
【0096】
また、輪郭情報とは、物体の輪郭を表す情報である。輪郭情報は、例えば、輪郭の始点と終点の撮像画像上での座標位置や、ベクトルとその大きさ等であるが、これに限定されない。
【0097】
例えば、図6(A)、図6(B)に、輪郭情報を求め、輪郭情報に基づき、操作対象物の位置情報を特定する例を示す。図6(A)に、図5(A)の操作対象物の撮像画像IMP1の輪郭情報を求め、輪郭情報により表される輪郭POL1を示す。図6(A)の場合には、輪郭POL1と各候補位置とを比較し、候補位置PC1を実際にパレットが存在する位置として特定する。図6(B)の場合も同様に、輪郭POL2に基づいて、候補位置の中からパレットが存在する位置としてPC10を特定する。具体的な比較方法には後述するようなものがある。
【0098】
図6(A)、図6(B)のどちらの場合にも、図5(A)、図5(B)に見られるパレットの区画等を考慮する必要がないため、候補位置を表す辺と区画を構成する辺との比較処理などを行う必要がなくなる。
【0099】
その結果、操作対象物の輪郭以外の部分の情報も用いる場合に比べて、実際の操作対象物の位置情報の特定処理を単純化し、処理負荷を軽減すること等が可能となる。また、上述した手法と同様に、オクルージョンが発生している場合でも、操作対象物の正確な位置情報を特定すること等が可能である。
【0100】
ここで、N個の候補位置情報の中から位置情報を特定する前述した手法としては、下記のような手法が考えられる。
【0101】
処理部110は、輪郭情報により表される操作対象物の輪郭線(撮像輪郭線)と、操作対象物のN個の候補位置情報から推定した推定輪郭線との距離情報を求め、距離情報に基づいて、操作対象物の位置情報を特定してもよい。
【0102】
ここで、輪郭線(撮像輪郭線)とは、輪郭情報により表される操作対象物の輪郭線である。また、推定輪郭線とは、仮に操作対象物の候補位置情報により表される候補位置に操作対象物が位置しているとした場合における操作対象物の輪郭線である。
【0103】
具体的には、図7のようにパレットに第1のマーカーMKが貼付されているような場合には、パレットを表す撮像画像IMPの輪郭線が輪郭線POLとなる。そして、第1のマーカーMKから特定できる2つの候補位置の輪郭線が、推定輪郭線EOL1、EOL2である。
【0104】
さらに、距離情報とは、点または線若しくは所定の領域から、もう一つの点または線若しくは所定の領域までの距離を表す情報のことをいう。後述するように、少なくとも一方が点以外である場合には、線もしくは所定の領域内から代表点を特定して、2点間の距離を求める方法がある。他にも、線と線の距離を求める場合などには、2つの線の距離情報として、線と線によって囲まれる領域の面積を求める方法がある。
【0105】
これにより、輪郭線と推定輪郭線との距離情報に基づいて、実際の操作対象物の位置情報を特定すること等が可能になる。輪郭線間の距離情報のみを用いるため、位置情報特定処理を単純化し、処理負荷を軽減し、さらには処理実行時に使用するメモリー量を抑制すること等が可能になる。
【0106】
また、本実施形態では、距離情報により表される距離が0となる場合に、輪郭線と推定輪郭線とが一致していると判断し、距離が0の推定輪郭線に対応する候補位置情報を位置情報として特定する。しかし、本実施形態では、距離情報により表される距離が0となる場合にのみ、位置情報を特定するのではない。距離情報により表される距離が0ではない場合には、輪郭線との距離が最も短い推定輪郭線に対応する候補位置情報を特定し、対応する距離情報によって、候補位置情報を補正することにより、実際に操作対象物が存在する正確な位置を表す位置情報を特定する。
【0107】
したがって、本実施形態によれば、操作対象物に第1のマーカーがずれて設定されている場合でも、第1のマーカーのずれを許容して、操作対象物の正確な位置情報を特定すること等が可能となる。また、これまでに述べた手法と同様に、オクルージョンが発生している場合でも、操作対象物の正確な位置情報を特定すること等が可能である。
【0108】
ここで、輪郭線と推定輪郭線との距離情報を求める前述した手法としては、下記のような手法が考えられる。
【0109】
処理部110は、推定輪郭線の辺に第1の基準点を設定し、第1の基準点から輪郭線の辺を含む直線へ下ろした垂線と輪郭線の辺を含む直線との交点を第2の基準点に設定し、第1の基準点と第2の基準点との距離を、輪郭線と推定輪郭線との距離情報として求めてもよい。
【0110】
ここで、第1の基準点とは、推定輪郭線の辺に設けた所定の点のことをいう。
【0111】
一方、第2の基準点とは、第1の基準点から輪郭線の辺を含む直線へ下ろした垂線と輪郭線の辺を含む直線との交点のことをいう。
【0112】
例えば、図7で示した輪郭線POLと推定輪郭線EOL1、EOL2について、2つの輪郭線間の距離情報を求める様子の一部を図8に示す。
【0113】
初めに、POLとEOL1間の距離を求める。まず、推定輪郭線EOL1を構成する一辺の中点を第1の基準点FSP1として設定する。ただし、本例では上記のように第1の基準点FSP1を設定したが、第1の基準点は推定輪郭線の辺の中点であるとは限らない。次に、第1の基準点FSP1から、輪郭線POLの辺を含む直線ETLへ、垂線PL1を下ろし、PL1とETLの交点を第2の基準点SSP1として設定する。そして、第1の基準点FSP1と第2の基準点SSP1との距離であるLD1を求める。
【0114】
次に、POLとEOL2間の距離を求める。まず、推定輪郭線EOL2を構成する一辺の中点を第1の基準点FSP2として設定する。次に、第1の基準点FSP2から、輪郭線POLの辺を含む直線ETLへ、垂線PL2を下ろし、PL2とETLの交点を第2の基準点SSP2として設定する。そして、第1の基準点FSP2と第2の基準点SSP2との距離であるLD2を求める。
【0115】
本例では、このようにして求めた2点間の距離LD1とLD2を比較し、LD1の方が短いと判断されるため、推定輪郭線EOL1の方が輪郭線POLに近いと判断される。そして、推定輪郭線EOL1に対応する候補位置情報を、距離LD1を用いて実際の操作対象物の正しい位置を表す情報に補正し、操作対象物の位置情報として特定する。なお、本例では、輪郭線POLの一辺と、推定輪郭線EOL1、EOL2の一辺の距離のみを用いたが、全ての辺の間で距離を算出して、どちらの推定輪郭線が輪郭線により近いかを判断してもよい。
【0116】
このようにして、第1の基準点と第2の基準点間の距離に基づき、実際の操作対象物の位置情報を特定すること等が可能になる。2点間の距離を算出するため、位置情報特定処理をさらに単純化し、さらに処理負荷を軽減し、さらに使用メモリー量を抑制すること等が可能になる。また、これまでに述べた手法と同様に、オクルージョンを問題とせず、第1のマーカーのずれを許容すること等が可能である。
【0117】
しかし、撮像画像内でオクルージョンが発生しており、操作対象物のほとんどの部分が映っていない場合には、候補位置情報の中から位置情報を特定することはできたとしても、輪郭線間の距離情報に基づき候補位置情報を補正できない場合がある。このような場合には、第1のマーカーの設定位置や向きによるずれが、位置情報に反映されてしまい、ロボットを作業者の意図通りに制御することができない。
【0118】
そこで、処理部110は、N個の候補位置情報の中から特定された操作対象物の位置情報と、操作対象物の認識処理により求められた輪郭情報とに基づいて、画像情報により表される撮像画像内で発生しているオクルージョンを検出して、オクルージョン情報を特定してもよい。そして、制御部120は、オクルージョン情報に基づいて、ロボット30を制御してもよい。
【0119】
ここで、オクルージョン情報とは、オクルージョンが発生している領域を表す情報である。例えば、オクルージョン情報は、オクルージョンが発生している部分の撮像画像内での座標位置などである。
【0120】
具体例として、操作対象物の撮像画像IMPにおいて、OCの部分でオクルージョンが発生している様子を図9に示す。図9では、操作対象物の輪郭線POLは、本来の操作対象物の輪郭と異なっている。そのため、図8に示すような方法で、輪郭線と推定輪郭線の距離情報を算出する場合に、図9のように「輪郭線POLの辺を含む直線」であるETLを基準とする場合などには、本来の距離との誤差が大きくなってしまう。具体的には、まず輪郭線POLと推定輪郭線EOL1を比較して、第1の基準点FSP1と第2の基準点SSP1間の距離としてLD1が求められる。同様に、輪郭線POLと推定輪郭線EOL2を比較して、第1の基準点FSP2と第2の基準点SSP2間の距離としてLD2が求められる。そして、LD1とLD2を比較すると、LD2の方が短いため、推定輪郭線EOL2に対応する候補位置情報を操作対象物の位置情報として特定されてしまう。本来ならば、推定輪郭線EOL1が選ばれるべきである。そこで、本実施形態では、ロボットのアーム等がオクルージョンの原因となっている場合に、ロボットを制御し、オクルージョンを解消する。そして、改めて、図8に示すような手法で操作対象物の位置情報を特定する。
【0121】
これにより、オクルージョンが発生している場合でも、オクルージョン情報に基づいてロボットを制御し、オクルージョンを解消すること等が可能になる。その結果として、ロボットを作業者の期待通りに制御すること等が可能になる。
【0122】
ここまで、第1のマーカーに設定されている画像構成要素の回転対称値が既知である場合を考えてきたが、第1のマーカーに設定されている画像構成要素の回転対称値が既知ではない場合も当然考えられる。
【0123】
そこで、処理部110は、ロボット30の操作対象物に設定された第1のマーカーに設定された画像構成要素が、N回対称性を有する場合に、画像情報に基づいて、第1のマーカーの認識処理を行い、第1のマーカーの回転対称情報を求め、回転対称情報に基づき操作対象物のN個の候補位置情報を求めてもよい。
【0124】
ここで、回転対称情報とは、第1のマーカーに設定された画像構成要素の回転対称値を表す情報のことをいう。回転対称値の定義は上述した通りである。回転対称情報は、回転対称値そのものであってもよく、回転対称値を求めるために用いられる情報であってもよい。回転対称情報の求め方には後述するような手法がある。
【0125】
これにより、第1のマーカーの回転対称情報が既知でない場合においても、第1のマーカーの回転対称情報を求め、回転対称情報に基づき、操作対象物のN個の候補位置情報を求めること等が可能になる。回転対称情報が分かれば、無限に考えられる候補位置情報をN個まで容易に絞り込むことが可能である点において優位である。
【0126】
ここで、回転対称情報を求める手法として、以下に示すような手法がある。
【0127】
処理部110は、画像構成要素の面積重心を求め、面積重心を中心に第1のマーカー画像を回転させ、回転させた第1のマーカー画像と回転前の第1のマーカー画像との差分情報を求め、差分情報に基づき回転対称情報を求めてもよい。
【0128】
ここで、面積重心とは、物体の所定の領域において、単位面積当たりの質量が均一である場合に、各単位面積領域にはたらく重力の合力の作用点、言い換えれば質量の中心点のことをいう。例えば、三角形の場合には、2つの中線の交点が面積重心となる。図10の場合には、ACPが面積重心である。
【0129】
また、差分情報とは、2つの画像間の差異を表す情報である。差分情報の例としては、後述する輝度差などがある。差分情報は、図10のように第1のマーカー画像を面積重心ACPを中心として回転させ、回転前の第1のマーカー画像BRMKと回転させた第1のマーカー画像ARMKを比較することにより得られる。
【0130】
これにより、第1のマーカー画像を回転させ、回転前の第1のマーカー画像と回転させた第1のマーカー画像との差分情報を求め、差分情報に基づき回転対称情報を求めること等が可能になる。その結果、例えば、画像比較処理を用いて、回転対称情報を求めること等が可能になる。
【0131】
ここで、差分情報を求める手法の一つとして、輝度差を用いる手法がある。
【0132】
処理部110は、第1のマーカー画像を所定の角度だけ回転させた場合における回転後の第1のマーカー画像と回転前の第1のマーカー画像との輝度の差の総和である総輝度差を求め、総輝度差の履歴を差分情報として求めてもよい。
【0133】
ここで、総輝度差の履歴とは、第1のマーカー画像を回転させている間、2つの画像間において対応する各画素の輝度差の総和(総輝度差)を記録した情報、または第1のマーカー画像を回転させている間の総輝度差から求められる情報のことをいう。具体例については後述する。
【0134】
これにより、差分情報として求められた総輝度差の履歴に基づいて、回転対称情報を求めること等が可能になる。総輝度差の履歴を用いるため、画像比較処理等を行う場合に比べて、処理負荷や使用メモリーを抑制すること等が可能となる。
【0135】
また、処理部110は、総輝度差の履歴において総輝度差が所定の閾値以下となる回数に基づいて、回転対称情報を求めてもよい。
【0136】
所定の閾値とは、総輝度差に基づいて、回転前の第1のマーカー画像と回転させた第1のマーカー画像とが一致しているか否かを判断する基準となる値である。また、第1の閾値は、あらかじめ設定されるものでも良いし、処理部110等によって算出されるものであっても良い。
【0137】
具体例を図11に占めす。図11は、図10に示す正五角形である第1のマーカー画像を360°回転させた時の総輝度差の履歴を示している。図11によれば、総輝度差は、所定の閾値Thを5回下回っている。したがって、本例では、回転対称値N=5とする回転対称情報を求めることができる。
【0138】
また、第1のマーカー画像を回転させる角度は360°である必要はない。例えば、図11の場合には、総輝度差が所定の閾値を上回ってから、総輝度差が所定の閾値以下となる角度まで、第1のマーカー画像を回転させればよい。この場合には、総輝度差が所定の閾値を上回った後に回転させた角度で360°を除算することにより、回転対称値が求められる。
【0139】
これにより、総輝度差の履歴に基づいて回転対称情報を求める処理を単純化すること等が可能になる。
【0140】
また、ワークが配置される複数の区画を有するパレットが操作対象物である場合に、処理部110は、N個の候補位置情報の中から特定された操作対象物の位置情報に基づいて、パレットの区画位置情報を求めてもよい。そして、制御部120は、区画位置情報に基づいて、ロボット30の制御を行ってもよい。
【0141】
ここで、区画位置情報とは、パレットの区画に関する情報であり、例えば、パレットの外枠に対する各区画の位置を表す情報などを指す。具体例については後述する。
【0142】
具体例として、パレットの位置情報に基づいて、パレットの区画位置情報を求める様子を図12(A)、図12(B)に示す。まず、第1のマーカーMK1の認識処理を行い、第1のマーカーMK1が図12(A)のような位置にあると分かった場合には、パレットの候補位置としてPC1、PC2が特定できる。次に、図12(B)のように、操作対象物の認識処理を行い、認識処理結果に基づき、候補位置PC1が正しいパレットの位置であると判断する。最後に、正しいと推定したパレットの位置PC1内において、区画DVの探索処理を行い、パレットの区画位置情報を求める。
【0143】
これにより、操作対象物の位置情報に基づいて、パレットの区画位置情報を求め、区画位置情報に基づいて、ロボットの制御を行うこと等が可能になる。その結果、ロボットの各部をパレットの区画位置に対してより正確に移動させること等が可能になる。
【0144】
また、処理部110は、第1のマーカーの画像構成要素の内側に設定され、ロボット30の制御情報が埋め込まれたマーカーである第2のマーカーの認識処理を、画像情報に基づいて行い、第2のマーカーの認識処理の結果に基づいて、制御情報に含まれる区画位置情報を求めてもよい。
【0145】
ここで、第2のマーカーとは、前述したマーカーの一つであり、第2のマーカーを構成する文字、図形、記号、模様もしくは立体的形状もしくはこれらの結合又はこれらと色彩との結合が、ロボットを制御する際に用いられる制御情報を表しているマーカーのことをいう。
【0146】
図13(A)と図13(B)は、第2のマーカーに埋め込まれた制御情報に含まれる区画位置情報の一例である。図13(A)は、制御情報に含まれる区画位置情報の一例をまとめた表である。なお、図13(A)の表に記載された未使用区画とは、区画の形状等に起因して使用することができない区画を表す。
【0147】
また、図13(B)は、図13(A)に記載した区画位置情報を撮像画像内のパレットに照らし合わせた様子である。図13(B)のMK2は、第1のマーカーMK1の画像構成要素の内側に設定された第2のマーカーを示している。本例では、第2のマーカーMK2の白色と黒色の配色パターンによって、制御情報を表しており、MK2の配色パターンの認識処理を行うことにより、制御情報を取得することが可能である。配色パターンと制御情報の対応関係はあらかじめ定めておく。
【0148】
これにより、第2のマーカーの認識処理に基づいて、第2のマーカーに埋め込まれたロボットの制御情報を取得すること等が可能となり、制御情報に含まれるパレットの区画位置情報を求め、区画位置情報に基づいて、ロボットの制御を行うこと等が可能になる。
【0149】
また、第1のマーカーの回転対称情報を求める処理において、第1のマーカー内の画像パターンが原因で、1回転させるまでに回転前と回転後の第1のマーカーが一致せず、正しい回転対称情報が求められない場合がある。
【0150】
そこで、処理部110は、第1のマーカー内の画像パターンについて膨張収縮処理を行い、第1のマーカーの内側に埋め込まれた情報を消去してもよい。
【0151】
ここで、膨張処理とは、二値化された白黒の画像において、注目画素の周辺に1画素でも白い画素がある場合には、他の画素も白に置き換える処理をいう。一方、収縮処理とは、膨張処理とは逆に、注目画素の周辺に1画素でも黒い画素がある場合には、他の画素も黒に置き換える処理をいう。
【0152】
例えば、図14(A)に示すような第1のマーカーBEMK内の画像パターンIMPTについて収縮処理を行うと、図14(B)に示すような第1のマーカーAEMKとなり、第1のマーカー内の画像パターンが黒一色となる。
【0153】
これにより、第1のマーカーの回転対称情報を求める処理において、第1のマーカー内の画像パターンが原因で、1回転させるまでに回転前と回転後の第1のマーカーが一致せず、正しい回転対称情報を求められなくなることを防ぐこと等が可能となる。
【0154】
4.処理の詳細
以下では、図15〜図17のフローチャートを用いて、本実施形態の処理の流れについて説明する。
【0155】
4.1 パレタイズ処理の詳細
初めに、図15を用いて、パレタイズ処理の流れについて説明する。まず、作業者がパレットにマーカーを貼付する(S1)。この際、作業者はパレットの向きと、パレット内の所定の位置に合わせて、マーカーを貼付する。例えば、パレットの上方向とマーカーの所定の方向とが一致するようにマーカーを貼ることを定めておく。同様に、パレット内の所定の位置をマーカー貼付位置としてあらかじめ定めておく。但し、作業者がマーカーを所定の位置と向きに誤差なく貼付することは不可能であるため、マーカーが貼付されている位置と向きに誤差があっても問題はない。
【0156】
次に、マーカーが貼付されたパレットを作業者が作業スペースに配置する(S2)。本実施形態では、図1のように作業者とロボットが協業するような場合を想定しているため、作業者の作業が完了した段階で、ロボットの作業スペース内にパレットを配置する。この時、作業者はパレットの位置や向きに注意を払う必要はない。
【0157】
そして、ロボット制御システムは、撮像部から得られた画像情報に基づいて、マーカーを検出し(S3)、マーカーが見つかったか否かを判断する(S4)。マーカーが見つかった場合には、パレット位置算出処理を行う(S5)。パレット位置算出の詳細については後述する。一方、マーカーが見つからなかった場合には、全ての処理を終了する。
【0158】
次に、パレット位置算出処理の結果に基づき、パレット内の区画[1、1]に対応する位置へロボットのハンドを移動させ、区画[1、1]をロボットの処理対象とする(S6)。そして、ロボットの処理対象となる区画内に既にワークが存在するか否かを判断する(S7)。ロボットの処理対象となる区画内にワークが存在しない場合には、ワークのパレタイズ処理を行う(S8)。そして、パレタイズ処理を実施した後、またはロボットの処理対象となる区画内に既にワークが存在する場合には、全区画についてパレタイズ処理を行ったか否かを判断する(S9)。全区画についてパレタイズ処理を行っていないと判断する場合には、次の区画に対応する位置にロボットのハンドを移動させる(S10)。一方、全区画についてパレタイズ処理を行ったと判断する場合には、全ての処理を終了する。
【0159】
4.1.1 パレットの位置算出処理の詳細
次に、図16を用いて、図15におけるパレット位置算出処理(S5)の詳細について説明する。
【0160】
まず、撮像部から得られた画像情報に基づき、画像情報により表される第1のマーカーを二値化する(S20)。次に、二値化した第1のマーカー内部の画像パターンについて、膨張収縮処理を行い、第1のマーカーの内側に埋め込まれた情報を消去する(S21)。そして、膨張収縮処理後の第1のマーカーに基づいて、第1のマーカーの画像構成要素の面積重心を算出する(S22)
次に、求めた面積重心を中心として、第1のマーカーを回転させ、回転前の第1のマーカーと回転させた第1のマーカーとの輝度差の総和を、第1のマーカーを1回転させる間記録し、総輝度差の履歴を算出する(S23)。そして、求めた総輝度差の履歴に基づき、総輝度差が所定の閾値を下回る回数を回転対称値とする回転対称情報を算出する(S24)
次に、算出した回転対称情報に基づいて、パレットの候補位置情報を求める(S25)。この場合には、回転対称値と同じ数の候補位置情報を求めることができる。
【0161】
ここで、撮像部からの画像情報に基づいて、パレットの輪郭情報を特定し(S26)、パレットの輪郭情報に基づいて、輪郭線を求める。同様に、各候補位置情報に基づいて、推定輪郭線を求める。そして、求めた輪郭線と推定輪郭線との距離情報を算出し(S27)、求めた距離情報のうち、最も値が小さくなる推定輪郭線を特定する。最後に、特定した推定輪郭線により表される候補位置がパレットの位置であるとして、パレットの位置情報を求める(S28)。この際に、特定したパレットの位置情報を、輪郭線と推定輪郭線との距離情報により補正して、より正確な位置情報を求めてもよい。
【0162】
また、第1のマーカーから特定したパレットの位置情報をさらに補完するために、第2のマーカーから制御情報を読み取る(S29)。そして、制御情報に含まれるパレットの区画に関する情報である区画位置情報を特定する(S30)。以上が、パレットの位置算出処理である。
【0163】
4.2 デパレタイズ処理の詳細
最後に、図17を用いて、デパレタイズ処理の流れについて説明する。デパレタイズ処理の流れはパレタイズ処理の流れとほぼ同様である(S41~S46、S49、S50)。また、パレット位置算出処理も、図16と同様である。
【0164】
デパレタイズ処理は、パレタイズ処理とS47、S48の処理が異なっている。区画[1、1]にロボットのハンドを移動させ、ロボットの処理対象となる区画を認識した後は、処理対象である区画内にワークが存在している否かを判断する(S47)。処理対象である区画内にワークが存在していると判断する場合には、デパレタイズ処理を行い、区画内からワークを取り出す(S48)。一方、処理対象である区画内にワークが存在していないと判断する場合には、デパレタイズ処理は行わない。以降は、図15の場合と同様である。
【0165】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またロボット制御システムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【0166】
10 ロボット制御システム、20 撮像部、30 ロボット、40 ワーク、
50 パレット、60 マーカー、70 作業者、
110 処理部、112 回転対称情報特定部、114 位置情報特定部、
120 制御部、130 記憶部、140 I/F部(入力部)、
310 制御部、320 アーム、330 ハンド

【特許請求の範囲】
【請求項1】
撮像部から得られる画像情報に基づいて画像処理を行う処理部と、
前記処理部の処理結果に基づいてロボットの制御を行う制御部と、
を含み、
前記処理部は、
前記ロボットの操作対象物に設定された第1のマーカーに設定された画像構成要素が、N回対称性(Nは2以上の整数)を有する場合に、前記画像情報に基づいて、前記第1のマーカーの認識処理を行い、前記操作対象物のN個の候補位置情報を求め、前記操作対象物の認識処理の結果に基づいて、前記N個の候補位置情報の中から前記操作対象物の位置情報を特定し、
前記制御部は、
特定された前記操作対象物の前記位置情報に応じて前記ロボットを制御することを特徴とするロボット制御システム。
【請求項2】
請求項1において、
前記処理部は、
前記操作対象物の前記認識処理として、前記操作対象物の輪郭抽出処理を行って、輪郭情報を求め、前記N個の候補位置情報と前記輪郭情報とに基づいて、前記操作対象物の前記位置情報を特定することを特徴とするロボット制御システム。
【請求項3】
請求項2において、
前記処理部は、
前記輪郭情報により表される前記操作対象物の輪郭線と、前記操作対象物の前記N個の候補位置情報から推定した推定輪郭線との距離情報を求め、前記距離情報に基づいて、前記操作対象物の前記位置情報を特定することを特徴とするロボット制御システム。
【請求項4】
請求項3において、
前記処理部は、
前記推定輪郭線の辺に第1の基準点を設定し、前記第1の基準点から前記輪郭線の辺を含む直線へ下ろした垂線と前記輪郭線の辺を含む直線との交点を第2の基準点に設定し、前記第1の基準点と前記第2の基準点との距離を、前記輪郭線と前記推定輪郭線との前記距離情報として求めることを特徴とするロボット制御システム。
【請求項5】
請求項2乃至4のいずれかにおいて、
前記処理部は、
前記N個の候補位置情報の中から特定された前記操作対象物の前記位置情報と、前記操作対象物の前記認識処理により求められた前記輪郭情報とに基づいて、前記画像情報により表される撮像画像内で発生しているオクルージョンを検出して、オクルージョン情報を特定し、
前記制御部は、
前記オクルージョン情報に基づいて、前記ロボットを制御することを特徴とするロボット制御システム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記処理部は、
前記ロボットの前記操作対象物に設定された前記第1のマーカーに設定された前記画像構成要素が、N回対称性を有する場合に、前記画像情報に基づいて、前記第1のマーカーの前記認識処理を行い、前記第1のマーカーの回転対称情報を求め、前記回転対称情報に基づき前記操作対象物の前記N個の候補位置情報を求めることを特徴とするロボット制御システム。
【請求項7】
請求項6において、
前記処理部は、
前記画像構成要素の面積重心を求め、前記面積重心を中心に前記第1のマーカー画像を回転させ、回転させた前記第1のマーカー画像と回転前の前記第1のマーカー画像との差分情報を求め、前記差分情報に基づき前記回転対称情報を求めることを特徴とするロボット制御システム。
【請求項8】
請求項7において、
前記処理部は、
前記第1のマーカー画像を所定の角度だけ回転させた場合における回転後の前記第1のマーカー画像と回転前の前記第1のマーカー画像との輝度の差の総和である総輝度差を求め、前記総輝度差の履歴を前記差分情報として求めることを特徴とするロボット制御システム。
【請求項9】
請求項8において、
前記処理部は、
前記総輝度差の履歴において前記総輝度差が所定の閾値以下となる回数に基づいて、前記回転対称情報を求めることを特徴とするロボット制御システム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記操作対象物は、
ワークが配置される複数の区画を有するパレットであり、
前記処理部は、
前記N個の候補位置情報の中から特定された前記操作対象物の前記位置情報に基づいて、前記パレットの区画位置情報を求め、
前記制御部は、
前記区画位置情報に基づいて、前記ロボットの制御を行うことを特徴とするロボット制御システム。
【請求項11】
請求項10において、
前記処理部は、
前記第1のマーカーの前記画像構成要素の内側に設定され、前記ロボットの制御情報が埋め込まれたマーカーである第2のマーカーの認識処理を、前記画像情報に基づいて行い、前記第2のマーカーの前記認識処理の結果に基づいて、前記制御情報に含まれる前記区画位置情報を求めることを特徴とするロボット制御システム。
【請求項12】
請求項1乃至11において、
前記処理部は、
前記第1のマーカー内の画像パターンについて膨張収縮処理を行い、前記第1のマーカーの内側に埋め込まれた情報を消去することを特徴とするロボット制御システム。
【請求項13】
請求項1乃至12のいずれかに記載のロボット制御システムを含むことを特徴とするロボットシステム。
【請求項14】
撮像部からの画像情報を検出し、
前記画像情報に基づいて、ロボットの操作対象物に設定された第1のマーカーの認識処理を行い
前記第1のマーカーに設定された画像構成要素がN回対称性(Nは2以上の整数)を有する場合に、前記操作対象物のN個の候補位置情報を求め、
前記操作対象物の認識処理の結果に基づいて、前記N個の候補位置情報の中から前記操作対象物の位置情報を特定することを特徴とするマーカー処理方法。
【請求項15】
請求項14において、
前記操作対象物の前記認識処理として、前記操作対象物の輪郭抽出処理を行って、輪郭情報を求め、
前記N個の候補位置情報と前記輪郭情報とに基づいて、前記操作対象物の前記位置情報を特定することを特徴とするマーカー処理方法。
【請求項16】
請求項14又は15において、
前記画像情報に基づいて、前記第1のマーカーの前記認識処理を行い、
前記第1のマーカーに設定された前記画像構成要素がN回対称性を有する場合に、前記第1のマーカーの回転対称情報を求め、
前記回転対称情報に基づき前記操作対象物の前記N個の候補位置情報を求めることを特徴とするマーカー処理方法。

【図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

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2013−10160(P2013−10160A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−143838(P2011−143838)
【出願日】平成23年6月29日(2011.6.29)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】