(57)【要約】【課題】  ロボットの操作対象物に設定された第１のマーカーに基づいて、操作対象物の位置情報を特定できるロボット制御システム等の提供。【解決手段】  ロボット制御システム１０は、撮像部２０から得られる画像情報に基づいて画像処理を行う処理部１１０と、処理部１１０の処理結果に基づいてロボット３０の制御を行う制御部１２０と、を含む。処理部１１０は、ロボット３０の操作対象物に設定された第１のマーカーに設定された画像構成要素が、Ｎ回対称性を有する場合に、画像情報に基づいて、第１のマーカーの認識処理を行い、操作対象物のＮ個の候補位置情報を求め、操作対象物の認識処理の結果に基づいて、Ｎ個の候補位置情報の中から操作対象物の位置情報を特定する。制御部１２０は、操作対象物の位置情報に応じてロボット３０を制御する。【選択図】      図２
2013010160.tif 000002
【特許請求の範囲】
【請求項１】
撮像部から得られる画像情報に基づいて画像処理を行う処理部と、
前記処理部の処理結果に基づいてロボットの制御を行う制御部と、
を含み、
前記処理部は、
前記ロボットの操作対象物に設定された第１のマーカーに設定された画像構成要素が、Ｎ回対称性（Ｎは２以上の整数）を有する場合に、前記画像情報に基づいて、前記第１のマーカーの認識処理を行い、前記操作対象物のＮ個の候補位置情報を求め、前記操作対象物の認識処理の結果に基づいて、前記Ｎ個の候補位置情報の中から前記操作対象物の位置情報を特定し、
前記制御部は、
特定された前記操作対象物の前記位置情報に応じて前記ロボットを制御することを特徴とするロボット制御システム。
【請求項２】
請求項１において、
前記処理部は、
前記操作対象物の前記認識処理として、前記操作対象物の輪郭抽出処理を行って、輪郭情報を求め、前記Ｎ個の候補位置情報と前記輪郭情報とに基づいて、前記操作対象物の前記位置情報を特定することを特徴とするロボット制御システム。
【請求項３】
請求項２において、
前記処理部は、
前記輪郭情報により表される前記操作対象物の輪郭線と、前記操作対象物の前記Ｎ個の候補位置情報から推定した推定輪郭線との距離情報を求め、前記距離情報に基づいて、前記操作対象物の前記位置情報を特定することを特徴とするロボット制御システム。
【請求項４】
請求項３において、
前記処理部は、
前記推定輪郭線の辺に第１の基準点を設定し、前記第１の基準点から前記輪郭線の辺を含む直線へ下ろした垂線と前記輪郭線の辺を含む直線との交点を第２の基準点に設定し、前記第１の基準点と前記第２の基準点との距離を、前記輪郭線と前記推定輪郭線との前記距離情報として求めることを特徴とするロボット制御システム。
【請求項５】
請求項２乃至４のいずれかにおいて、
前記処理部は、
前記Ｎ個の候補位置情報の中から特定された前記操作対象物の前記位置情報と、前記操作対象物の前記認識処理により求められた前記輪郭情報とに基づいて、前記画像情報により表される撮像画像内で発生しているオクルージョンを検出して、オクルージョン情報を特定し、
前記制御部は、
前記オクルージョン情報に基づいて、前記ロボットを制御することを特徴とするロボット制御システム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記処理部は、
前記ロボットの前記操作対象物に設定された前記第１のマーカーに設定された前記画像構成要素が、Ｎ回対称性を有する場合に、前記画像情報に基づいて、前記第１のマーカーの前記認識処理を行い、前記第１のマーカーの回転対称情報を求め、前記回転対称情報に基づき前記操作対象物の前記Ｎ個の候補位置情報を求めることを特徴とするロボット制御システム。
【請求項７】
請求項６において、
前記処理部は、
前記画像構成要素の面積重心を求め、前記面積重心を中心に前記第１のマーカー画像を回転させ、回転させた前記第１のマーカー画像と回転前の前記第１のマーカー画像との差分情報を求め、前記差分情報に基づき前記回転対称情報を求めることを特徴とするロボット制御システム。
【請求項８】
請求項７において、
前記処理部は、
前記第１のマーカー画像を所定の角度だけ回転させた場合における回転後の前記第１のマーカー画像と回転前の前記第１のマーカー画像との輝度の差の総和である総輝度差を求め、前記総輝度差の履歴を前記差分情報として求めることを特徴とするロボット制御システム。
【請求項９】
請求項８において、
前記処理部は、
前記総輝度差の履歴において前記総輝度差が所定の閾値以下となる回数に基づいて、前記回転対称情報を求めることを特徴とするロボット制御システム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記操作対象物は、
ワークが配置される複数の区画を有するパレットであり、
前記処理部は、
前記Ｎ個の候補位置情報の中から特定された前記操作対象物の前記位置情報に基づいて、前記パレットの区画位置情報を求め、
前記制御部は、
前記区画位置情報に基づいて、前記ロボットの制御を行うことを特徴とするロボット制御システム。
【請求項１１】
請求項１０において、
前記処理部は、
前記第１のマーカーの前記画像構成要素の内側に設定され、前記ロボットの制御情報が埋め込まれたマーカーである第２のマーカーの認識処理を、前記画像情報に基づいて行い、前記第２のマーカーの前記認識処理の結果に基づいて、前記制御情報に含まれる前記区画位置情報を求めることを特徴とするロボット制御システム。
【請求項１２】
請求項１乃至１１において、
前記処理部は、
前記第１のマーカー内の画像パターンについて膨張収縮処理を行い、前記第１のマーカーの内側に埋め込まれた情報を消去することを特徴とするロボット制御システム。
【請求項１３】
請求項１乃至１２のいずれかに記載のロボット制御システムを含むことを特徴とするロボットシステム。
【請求項１４】
撮像部からの画像情報を検出し、
前記画像情報に基づいて、ロボットの操作対象物に設定された第１のマーカーの認識処理を行い
前記第１のマーカーに設定された画像構成要素がＮ回対称性（Ｎは２以上の整数）を有する場合に、前記操作対象物のＮ個の候補位置情報を求め、
前記操作対象物の認識処理の結果に基づいて、前記Ｎ個の候補位置情報の中から前記操作対象物の位置情報を特定することを特徴とするマーカー処理方法。
【請求項１５】
請求項１４において、
前記操作対象物の前記認識処理として、前記操作対象物の輪郭抽出処理を行って、輪郭情報を求め、
前記Ｎ個の候補位置情報と前記輪郭情報とに基づいて、前記操作対象物の前記位置情報を特定することを特徴とするマーカー処理方法。
【請求項１６】
請求項１４又は１５において、
前記画像情報に基づいて、前記第１のマーカーの前記認識処理を行い、
前記第１のマーカーに設定された前記画像構成要素がＮ回対称性を有する場合に、前記第１のマーカーの回転対称情報を求め、
前記回転対称情報に基づき前記操作対象物の前記Ｎ個の候補位置情報を求めることを特徴とするマーカー処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御システム、ロボットシステム及びマーカー処理方法等に関係する。
【背景技術】
【０００２】
近年、生産現場において、作業の自動化を図るために、産業用ロボットを用いてワークをピッキングしたり、パレタイズをする手法が用いられている。産業用ロボットを用いてパレタイズ等を行う場合には、産業用ロボットがパレットの位置や向きを認識する必要がある。そのための手法として、パレットやパレットの区画内に設けられた突起や切り欠けなどの物理的形状や、パレットに貼付したマーカーなどを認識して、物理的形状やマーカーの認識処理結果に基づいて、パレットの位置や向きを特定する手法がある。他にも、ワークそのものをマーカーとして用いて、ワークやパレットの区画の位置や向きを認識する手法が考案されており、特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−３２２５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述した手法には以下のような問題点がある。
【０００５】
まず、パレットやパレットの区画内に設けられた突起や切り欠けなどの物理的形状の認識処理を行うことにより、パレットの位置や向きを判別する手法は、あらかじめパレット毎に突起や切り欠けなどの物理的な形状を設ける必要があり、準備コストが大きいという問題点がある。さらに、あらかじめ設けられた物理的形状からは、あらかじめ決められた情報しか読み取ることができないという問題点もある。パレットにマーカーをあらかじめ貼付しておく場合も同様である。
【０００６】
また、特許文献１に記載されているワーク自体をマーカーとして用いる手法には、ワークが例えば３次元形状のような複雑な形状である場合に、マーカーとしてのワークの検出が難しくなるという問題点がある。
【０００７】
本発明の幾つかの態様によれば、ロボットの操作対象物に設定された第１のマーカーに基づいて、操作対象物の位置情報を特定できるロボット制御システム、ロボットシステム及びマーカー処理方法等を提供できる。
【０００８】
また、本発明の幾つかの態様によれば、Ｎ回対称性を有する第１のマーカーに基づいて、第１のマーカーの設定位置や向きのずれを許容しつつ、操作対象物の位置情報を特定できるロボット制御システム、ロボットシステム及びマーカー処理方法等を提供できる。
【課題を解決するための手段】
【０００９】
本発明の一態様は、撮像部から得られる画像情報に基づいて画像処理を行う処理部と、前記処理部の処理結果に基づいてロボットの制御を行う制御部と、を含み、前記処理部は、前記ロボットの操作対象物に設定された第１のマーカーに設定された画像構成要素が、Ｎ回対称性（Ｎは２以上の整数）を有する場合に、前記画像情報に基づいて、前記第１のマーカーの認識処理を行い、前記操作対象物のＮ個の候補位置情報を求め、前記操作対象物の認識処理の結果に基づいて、前記Ｎ個の候補位置情報の中から前記操作対象物の位置情報を特定し、前記制御部は、特定された前記操作対象物の前記位置情報に応じて前記ロボットを制御することを特徴とするロボット制御システムに関係する。
【００１０】
本発明の一態様では、撮像部から得られる画像情報に基づいて、ロボットの操作対象物に設定された第１のマーカーの認識処理を行う。そして、第１のマーカーの認識処理の結果に基づいて、操作対象物のＮ個の候補位置情報を求め、操作対象物の認識処理の結果に基づいて、Ｎ個の候補位置情報の中から操作対象物の位置情報を特定する。その結果として、操作対象物の位置情報に応じてロボットを制御することが可能となる。
【００１１】
また、本発明の一態様では、前記処理部は、前記操作対象物の前記認識処理として、前記操作対象物の輪郭抽出処理を行って、輪郭情報を求め、前記Ｎ個の候補位置情報と前記輪郭情報とに基づいて、前記操作対象物の前記位置情報を特定してもよい。
【００１２】
これにより、Ｎ個の候補位置情報の中から、操作対象物の実際の位置情報を特定する場合に、撮像画像により表される操作対象物の輪郭を表す情報である輪郭情報を用いること等が可能になる。その結果、操作対象物の輪郭以外の部分の情報を用いる場合に比べて、実際の操作対象物の位置情報の特定処理を単純化し、処理負荷を軽減すること等が可能となる。
【００１３】
また、本発明の一態様では、前記処理部は、前記輪郭情報により表される前記操作対象物の輪郭線と、前記操作対象物の前記Ｎ個の候補位置情報から推定した推定輪郭線との距離情報を求め、前記距離情報に基づいて、前記操作対象物の前記位置情報を特定してもよい。
【００１４】
これにより、輪郭線と推定輪郭線との距離情報に基づいて、実際の操作対象物の位置情報を特定すること等が可能になる。輪郭線間の距離情報のみを用いるため、位置情報特定処理を単純化し、処理負荷を軽減し、さらには処理実行時に使用するメモリー量を抑制すること等が可能になる。
【００１５】
また、本発明の一態様では、前記処理部は、前記推定輪郭線の辺に第１の基準点を設定し、前記第１の基準点から前記輪郭線の辺を含む直線へ下ろした垂線と前記輪郭線の辺を含む直線との交点を第２の基準点に設定し、前記第１の基準点と前記第２の基準点との距離を、前記輪郭線と前記推定輪郭線との前記距離情報として求めてもよい。
【００１６】
これにより、第１の基準点と第２の基準点間の距離に基づき、実際の操作対象物の位置情報を特定すること等が可能になる。２点間の距離を算出するため、位置情報特定処理をさらに単純化し、さらに処理負荷を軽減し、さらに使用メモリー量を抑制すること等が可能になる。
【００１７】
また、本発明の一態様では、前記処理部は、前記Ｎ個の候補位置情報の中から特定された前記操作対象物の前記位置情報と、前記操作対象物の前記認識処理により求められた前記輪郭情報とに基づいて、前記画像情報により表される撮像画像内で発生しているオクルージョンを検出し、オクルージョン情報を特定し、前記制御部は、前記オクルージョン情報に基づいて、前記ロボットを制御してもよい。
【００１８】
これにより、オクルージョンが発生している場合でも、オクルージョン情報に基づいてロボットを制御し、オクルージョンを解消すること等が可能になる。その結果として、ロボットを作業者の期待通りに制御すること等が可能になる。
【００１９】
また、本発明の一態様では、前記処理部は、前記ロボットの前記操作対象物に設定された前記第１のマーカーに設定された前記画像構成要素が、Ｎ回対称性を有する場合に、前記画像情報に基づいて、前記第１のマーカーの前記認識処理を行い、前記第１のマーカーの回転対称情報を求め、前記回転対称情報に基づき前記操作対象物の前記Ｎ個の候補位置情報を求めてもよい。
【００２０】
これにより、第１のマーカーの回転対称情報が既知でない場合においても、第１のマーカーの回転対称情報を求め、回転対称情報に基づき、操作対象物のＮ個の候補位置情報を求めること等が可能になる。回転対称情報が分かれば、無限に考えられる候補位置情報をＮ個まで容易に絞り込むことが可能である点において優位である。
【００２１】
また、本発明の一態様では、前記処理部は、前記画像構成要素の面積重心を求め、前記面積重心を中心に前記第１のマーカー画像を回転させ、回転させた前記第１のマーカー画像と回転前の前記第１のマーカー画像との差分情報を求め、前記差分情報に基づき前記回転対称情報を求めてもよい。
【００２２】
これにより、第１のマーカーを回転させ、回転前の第１のマーカーと回転させた第１のマーカーとの差分情報を求め、差分情報に基づき回転対称情報を求めること等が可能になる。その結果、例えば、画像比較処理を用いて、回転対称情報を求めること等が可能になる。
【００２３】
また、本発明の一態様では、前記処理部は、前記第１のマーカー画像を所定の角度だけ回転させた場合における回転後の前記第１のマーカー画像と回転前の前記第１のマーカー画像との輝度の差の総和である総輝度差を求め、前記総輝度差の履歴を前記差分情報として求めてもよい。
【００２４】
これにより、差分情報として求められた総輝度差の履歴に基づいて、回転対称情報を求めること等が可能になる。総輝度差の履歴を用いるため、画像比較処理等を行う場合に比べて、処理負荷や使用メモリーを抑制すること等が可能となる。
【００２５】
また、本発明の一態様では、前記処理部は、前記総輝度差の履歴において前記総輝度差が所定の閾値以下となる回数に基づいて、前記回転対称情報を求めてもよい。
【００２６】
これにより、総輝度差の履歴に基づいて回転対称情報を求める処理を単純化すること等が可能になる。
【００２７】
また、本発明の一態様では、前記操作対象物は、ワークが配置される複数の区画を有するパレットであり、前記処理部は、前記Ｎ個の候補位置情報の中から特定された前記操作対象物の前記位置情報に基づいて、前記パレットの区画位置情報を求め、前記制御部は、前記区画位置情報に基づいて、前記ロボットの制御を行ってもよい。
【００２８】
これにより、操作対象物の位置情報に基づいて、パレットの区画位置情報を求め、区画位置情報に基づいて、ロボットの制御を行うこと等が可能になる。その結果、ロボットの各部をパレットの区画位置に対してより正確に移動させること等が可能になる。
【００２９】
また、本発明の一態様では、前記処理部は、前記第１のマーカーの前記画像構成要素の内側に設定され、前記ロボットの制御情報が埋め込まれたマーカーである第２のマーカーの認識処理を、前記画像情報に基づいて行い、前記第２のマーカーの前記認識処理の結果に基づいて、前記制御情報に含まれる前記区画位置情報を求めてもよい。
【００３０】
これにより、第２のマーカーの認識処理に基づいて、第２のマーカーに埋め込まれたロボットの制御情報を取得すること等が可能となり、制御情報に含まれるパレットの区画位置情報を求め、区画位置情報に基づいて、ロボットの制御を行うこと等が可能になる。
【００３１】
また、本発明の一態様では、前記処理部は、前記第１のマーカー内の画像パターンについて膨張収縮処理を行い、前記第１のマーカーの内側に埋め込まれた情報を消去してもよい。
【００３２】
これにより、第１のマーカーの回転対称情報を求める処理において、第１のマーカー内の画像パターンが原因で、１回転させるまでに回転前と回転後の第１のマーカーが一致せず、正しい回転対称情報を求められなくなることを防ぐこと等が可能となる。
【００３３】
また、本発明の他の態様は、前記ロボット制御システムを含むロボットシステムに関係する。
【００３４】
また、本発明の他の態様では、撮像部からの画像情報を検出し、前記画像情報に基づいて、ロボットの操作対象物に設定された第１のマーカーの認識処理を行い、前記第１のマーカーに設定された画像構成要素がＮ回対称性（Ｎは２以上の整数）を有する場合に、前記操作対象物のＮ個の候補位置情報を求め、前記操作対象物の認識処理の結果に基づいて、前記Ｎ個の候補位置情報の中から前記操作対象物の位置情報を特定することを特徴とするマーカー処理方法に関係する。
【００３５】
これにより、ロボット制御システムとロボットシステム以外の他のシステムにおいて、第１のマーカーの認識処理の結果に基づいて、操作対象物のＮ個の候補位置情報を求め、操作対象物の認識処理の結果に基づいて、Ｎ個の候補位置情報の中から操作対象物の位置情報を特定すること等が可能になる。
【００３６】
また、本発明の他の態様では、前記操作対象物の前記認識処理として、前記操作対象物の輪郭抽出処理を行って、輪郭情報を求め、前記Ｎ個の候補位置情報と前記輪郭情報とに基づいて、前記操作対象物の前記位置情報を特定してもよい。
【００３７】
これにより、ロボット制御システムとロボットシステム以外の他のシステムにおいても、Ｎ個の候補位置情報の中から、操作対象物の実際の位置情報を特定する場合に、撮像画像により表される操作対象物の輪郭を表す情報である輪郭情報を用いること等が可能になる。
【００３８】
また、本発明の他の態様では、前記画像情報に基づいて、前記第１のマーカーの前記認識処理を行い、前記第１のマーカーに設定された前記画像構成要素がＮ回対称性を有する場合に、前記第１のマーカーの回転対称情報を求め、前記回転対称情報に基づき前記操作対象物の前記Ｎ個の候補位置情報を求めてもよい。
【００３９】
これにより、ロボット制御システムとロボットシステム以外の他のシステムにおいても、第１のマーカーの回転対称情報が既知でない場合に、第１のマーカーの回転対称情報を求め、回転対称情報に基づき、操作対象物のＮ個の候補位置情報を求めること等が可能になる。
【図面の簡単な説明】
【００４０】
【図１】本実施形態のシステム構成例。
【図２】本実施形態の詳細なシステム構成例。
【図３】図３（Ａ）、図３（Ｂ）は、マーカーと画像構成要素の説明図。
【図４】図４（Ａ）、図４（Ｂ）は、Ｎ回対称性を有する画像構成要素の説明図。
【図５】図５（Ａ）、図５（Ｂ）は、Ｎ個の候補位置情報と位置情報を求める手法の説明図。
【図６】図６（Ａ）、図６（Ｂ）は、輪郭情報に基づき位置情報を求める手法の説明図。
【図７】距離情報に基づき位置情報を求める手法の説明図。
【図８】基準点を設定することにより輪郭線と推定輪郭線との距離を求める手法の説明図。
【図９】オクルージョンを検出する手法の説明図。
【図１０】差分情報を求める手法の説明図。
【図１１】総輝度差により差分情報を求める手法の説明図。
【図１２】図１２（Ａ）、図１２（Ｂ）は、位置情報に基づき区画位置情報を求める手法の説明図。
【図１３】図１３（Ａ）、図１３（Ｂ）は、第２のマーカーに埋め込まれた制御情報に基づき区画位置情報を求める手法の説明図。
【図１４】図１４（Ａ）、図１４（Ｂ）は、膨張収縮処理により第１のマーカーに埋め込まれた情報を消去する手法の説明図。
【図１５】本実施形態においてパレタイズ処理の流れを説明するフローチャート。
【図１６】回転対称情報に基づき操作対象物の位置情報を求める手法のフローチャート。
【図１７】本実施形態においてデパレタイズ処理の流れを説明するフローチャート。
【発明を実施するための形態】
【００４１】
以下、本実施形態について説明する。まず、本実施形態の概要を説明し、次にシステム構成例を説明する。その後に、本実施形態の特徴について説明する。そして最後に、フローチャートを用いて本実施形態の処理の流れについて説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４２】
１．概要
近年、生産現場において、作業の自動化を図るために、産業用ロボットを用いてワークをピッキングしたり、パレタイズをする手法が用いられている。本実施形態では、図１のように作業者７０とロボット３０が協業するような場合を想定している。作業者７０の作業が完了すると、作業者７０はロボット３０にパレット５０やワーク４０を渡して、ロボット３０が次の作業を実施する。
【００４３】
このように産業用ロボットを用いてパレタイズ等を行う場合には、産業用ロボットがパレットの位置や向き（またはこれらと代替できるような情報）を認識する必要がある。そのための手法として、パレットやパレットの区画内に設けられた突起や切り欠けなどの物理的形状や、パレットに貼付したマーカーなどを認識し、その認識結果に基づいて、パレットの位置や向きを特定する手法がある。
【００４４】
しかし、このような手法は、あらかじめパレット毎に突起や切り欠けなどの物理的な形状を設ける必要があり、準備コストが大きいという問題点がある。さらに、あらかじめ設けられた物理的形状からは、あらかじめ決められた情報しか読み取ることができないという問題点もある。パレットにマーカーをあらかじめ貼付しておく場合も同様である。
【００４５】
上記の手法の他にも、ワークそのものをマーカーとして用いて、ワークやパレットの区画の位置や向きを認識する手法が考案されている。現実的にはワークによってロボットの作業が変わったり、使用するパレットやパレットの区画が変わることが多いため、この手法はワークに対応する情報を得られる点において有効である。
【００４６】
しかし、この手法には、ワークが例えば３次元形状のような複雑な形状である場合に、マーカーとしてのワークの検出が難しくなるという問題点がある。
【００４７】
以上より、ロボットを制御してパレタイズ等を行う場合には、以下のような２つの課題の克服が期待されている。第１の課題は、ワークやパレットの種類若しくは作業状況等に応じて、操作対象物に関する情報をロボット制御システムが取得することができるようになることである。そして、第２の課題は、３次元形状のような複雑な形状のワークを用いる場合であっても、操作対象物の位置や向きに関する情報をロボット制御システムが検出することができるようになることである。
【００４８】
第１の課題については、状況に応じたマーカーを作業者が逐一パレットに貼付する手法が考えられる。また、第２の課題については、ワークをマーカーとしては用いず、２次元形状として認識することができる他のマーカーを用いる手法が考えられる。
【００４９】
すなわち、あらかじめマーカー等をパレットに設定しておくのではなく、作業者が逐一パレットにマーカーを貼付して、作業者がマーカーを貼る位置や向きを調整したり、異なる情報が埋め込まれた複数種類のマーカーを用いることにより、ワークやパレットの種類または作業状況等に応じた情報をパレットに付与することが可能となる。
【００５０】
このようにして操作対象物にマーカーを設定してロボットを制御する場合には、操作対象物に設定されたマーカーの位置と向きを判別する必要がある。マーカーがあらかじめ決まった位置や向きに設定されているのではないという点が従来と異なる。そこで、本実施形態では、後述する手法により、ロボットの操作対象物に設定されたマーカーの認識処理を行い、マーカーの認識処理結果に基づき、操作対象物の候補位置情報を求める。そして、候補位置情報の中から操作対象物の位置情報を特定し、操作対象物の位置情報に基づき、ロボットを制御する。これにより、第１の課題と第２の課題を解決することが可能となる。
【００５１】
２．システム構成例
２．１  ロボットシステムの構成例
本実施形態に係るロボットシステムの構成例を図１に示す。ロボットシステムは、ロボット制御システム１０と、撮像部２０と、ロボット３０とを含む。ただし、ロボットシステムは図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。また、本実施形態では、作業者７０とロボット３０とが協業するような場面を想定している。
【００５２】
ロボット制御システム１０は、撮像部２０により得られる撮像画像に基づいて、制御信号を生成し、制御信号に基づいてロボット３０を制御する。ロボット制御システムの詳細は後述する。なお、本実施形態のロボット制御システム１０の一部又は全部の機能は、例えばＰＣ等の情報処理装置などにより実現される。但し、ロボット制御システム１０の一部又は全部の機能を、撮像部２０やロボット３０により実現したり、情報処理装置とは異なる電子機器により実現してもよい。また、本実施形態のロボット制御システム１０の一部又は全部の機能は、情報処理装置もしくは撮像部２０、ロボット３０と通信により接続されたサーバにより実現してもよい。
【００５３】
撮像部（カメラ）２０は、作業スペースを撮影する。この撮像部２０は、例えばＣＣＤ、ＣＭＯＳセンサー等の撮像素子と光学系を含む。また画像処理用等に用いられるデバイス（プロセッサー）を含むことができる。撮像部２０は、ロボット３０やワーク４０、パレット５０が位置し得る作業スペースを撮影することができる位置に配置される。例えば、撮像部２０は、ワーク４０やパレット５０の直上に配置されてもよいし（固定カメラ）、ロボット３０のアーム３２０やハンド３３０もしくは図１に示すようにロボット３０の胴体正面等に取り付けられてもよい（可動カメラ）。また、撮像部２０は、一台で作業スペース全体又は一部を撮影してもよいし、複数台によって、作業スペースの全体又は一部を撮影してもよい。そして、撮像部２０は、撮像された画像情報をロボット制御システム１０等に出力する。また、撮像部２０を用いることにより、ワーク４０やパレット５０、マーカー６０の位置や姿勢等に関する情報を検出できればよいため、撮像部２０による撮像画像の取得以外の手法、例えばレーザー等を用いた３次元スキャン等を用いてもよい。
【００５４】
なお、本実施形態においては、撮像された画像情報をそのままロボット制御システム１０に出力するものとするが、これに限定されるものではない。例えば、ロボット制御システム１０の処理部の一部を撮像部２０に持たせてもよい。その場合、撮像画像に対して画像処理が施された後の情報が出力されることになる。
【００５５】
ロボット３０は、アーム３２０及びハンド３３０を有し、ロボット制御システム１０からの制御信号に従い処理を行う。ロボット３０は、例えばワーク４０のピッキングやパレタイズなどの処理を行う。図１においては、ロボット３０は双腕であるが、これに限定されない。
【００５６】
ここで、アーム３２０とは、ロボット３０のパーツであって、一つ以上の関節を含む可動パーツのことをいう。また、アーム３２０のエンドポイントとは、アーム３２０の先端部分のポイントであって、ロボット３０のハンド３３０以外の他の部分と接続されていない部分のことをいう。さらに、ハンド３３０とは、ワーク４０を把持したり、ワーク４０に加工を施すためにアーム３２０のエンドポイントに取り付ける部品のことをいう。なお、アームのエンドポイントの位置は、ハンドの位置としてもよい。
【００５７】
また、ロボット３０の操作対象物としては、ワーク４０やパレット５０などを想定できる。本実施形態においては、作業者７０によってパレット５０にマーカー６０が貼付（広義には設定）されている。ただし、マーカー６０はあらかじめパレット５０に設定されていてもよい。
【００５８】
ここで、マーカー６０とは、目印として利用することができる文字、図形、記号、模様もしくは立体的形状もしくはこれらの結合又はこれらと色彩との結合を形成する有体物で、物体に固定可能なものである。例えば、シールやステッカー、ラベル等である。なお、マーカーの形状や、色彩、模様等がどのようなものであるかは問わないが、他の領域と区別しやすいもの、例えば赤色一色からなる画像やシールなどが望ましい。
【００５９】
２．２  ロボット制御システムの構成例
次に、本実施形態のロボット制御システム及びこれを含むロボットシステムの詳細な構成例を図２に示す。
【００６０】
ロボット制御システム１０は、処理部１１０と、制御部１２０と、記憶部１３０と、Ｉ／Ｆ部（入力部）１４０と、を含む。なお、ロボット制御システム１０は、図２の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００６１】
次に各部で行われる処理について説明する。
【００６２】
処理部１１０は、記憶部１３０からのデータや、Ｉ／Ｆ部１４０において受信した撮像部２０或いはロボット３０からの情報等に基づいて種々の処理を行う。この処理部１１０の機能は、各種プロセッサー（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムなどにより実現できる。
【００６３】
さらに、処理部１１０は、回転対称情報特定部１１２と、位置情報特定部１１４と、を含む。なお、処理部１１０は図２の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００６４】
回転対称情報特定部１１２は、第１のマーカーの回転対称情報を特定する。位置情報特定部１１４は、操作対象物の位置情報を特定する。なお、ここでは回転対称情報特定部１１２と位置情報特定部１１４は、ロボット制御システム１０の処理部１１０に設けられるものとしたがこれに限定されるものではない。回転対称情報特定部１１２と位置情報特定部１１４は、撮像部２０やロボット３０等に内蔵されてもよい。
【００６５】
制御部１２０は、処理部１１０の処理結果に基づいて、ロボット３０を制御する。
【００６６】
記憶部１３０は、データベースを記憶したり、処理部１１０等のワーク領域となるもので、その機能はＲＡＭ等のメモリーやＨＤＤ（ハードディスクドライブ）などにより実現できる。
【００６７】
Ｉ／Ｆ部１４０は、ロボット制御システム１０に対して作業者７０からの入力等を行ったり、撮像部２０やロボット３０からの情報を受け付けるためのインターフェースである。Ｉ／Ｆ部１４０は、作業者７０からの入力を受け付ける入力部として、スイッチやボタン、キーボード或いはマウス等から構成されてもよい。
【００６８】
また、ロボット制御システム１０を含むロボットシステムの例としては、撮像部２０や、ロボット３０等を含むロボットシステム等が挙げられる。
【００６９】
撮像部２０については上述の通りである。ロボット３０は、アーム３２０及びハンド３３０の他に制御部３１０を含む。制御部３１０は、ロボット制御システム１０からの情報を受け付けロボット３０の各部（アーム３２０及びハンド３３０等）の制御を行う。
【００７０】
３．本実施形態の手法
以上の本実施形態では、撮像部２０から得られる画像情報に基づいて画像処理を行う処理部１１０と、処理部１１０の処理結果に基づいてロボット３０の制御を行う制御部１２０と、を含む。処理部１１０は、画像情報に基づいて、第１のマーカーの認識処理を行い、操作対象物の候補位置情報を求める。さらに、処理部１１０は、操作対象物の認識処理の結果に基づいて、候補位置情報の中から操作対象物の位置情報を特定する。そして、制御部１２０は、特定された操作対象物の位置情報に応じてロボット３０を制御する。
【００７１】
まず本実施形態では、撮像部２０から得られる画像情報に基づいて、ロボット３０の操作対象物に設定された第１のマーカーの認識処理を行う。
【００７２】
ここで、撮像部２０から得られる画像情報とは、撮像部２０により作業スペースを撮像した際に得られる画像である撮像画像を表す情報、又は撮像画像から求めることができる情報のことをいう。画像情報は、撮像画像そのものであってもよい。
【００７３】
また、認識処理とは、画像情報により表される撮像画像内に映る第１のマーカーやパレット等の認識対象物を、認識対象物以外の環境物と区別して、特定することをいう。言い換えると、認識処理とは、画像情報により表される撮像画像内に映る認識対象物を判別し、ラベリングすることをいう。また、認識処理において、認識対象物の撮像画像内での位置を特定してもよい。
【００７４】
さらに、第１のマーカーとは、前述したマーカーの一つであり、ロボットの操作対象物の候補位置を絞り込むために用いられるマーカーのことをいう。
【００７５】
ここで、操作対象物の候補位置とは、判明している情報に基づいて操作対象物の位置を特定する場合に、操作対象物が存在する可能性があると判断することができる位置のことをいう。また、操作対象物の候補位置を表す情報のことを候補位置情報と呼ぶ。
【００７６】
次に本実施形態では、第１のマーカーの認識処理の結果に基づいて、操作対象物の候補位置情報を求める。候補位置情報の具体的な求め方としては、後述するような方法がある。
【００７７】
そして本実施形態では、操作対象物の認識処理の結果に基づいて、候補位置情報の中から操作対象物の位置情報を特定する。操作対象物の位置情報の具体的な求め方としては、後述するような方法がある。
【００７８】
ここで、位置情報とは、実際に操作対象物が存在すると判断された位置を表す情報である。
【００７９】
以上のようにして、位置情報を求め、位置情報に応じてロボット３０を制御することが可能となる。また、操作対象物の製造時等にあらかじめ操作対象物に物理的な形状やマーカー等を設定しておく必要がないため、準備コストを削減することが可能となる。
【００８０】
上記のように、位置情報を求める場合、設定された第１のマーカーによっては、無限の候補位置情報が求められ、位置情報を特定できない場合がある。
【００８１】
そこで、処理部１１０は、ロボット３０の操作対象物に設定された第１のマーカーに設定された画像構成要素が、Ｎ回対称性（Ｎは２以上の整数）を有する場合に、画像情報に基づいて、第１のマーカーの認識処理を行い、操作対象物のＮ個の候補位置情報を求める。さらに、処理部１１０は、操作対象物の認識処理の結果に基づいて、Ｎ個の候補位置情報の中から操作対象物の位置情報を特定する。
【００８２】
ここで、画像構成要素とは、第１のマーカーにあらかじめ設定された所定の領域であり、第１のマーカーの一部分であってもよく、第１のマーカーの全ての領域であってもよい。
【００８３】
例えば、図３（Ａ）と図３（Ｂ）に第１のマーカーと第１のマーカーの画像構成要素の一例を示す。図３（Ａ）は、第１のマーカーＭＫ１と第１のマーカーの画像構成要素ＩＭＦ１が一致している例を示している。また、図３（Ｂ）は、第１のマーカーＭＫ２と第１のマーカーの画像構成要素ＩＭＦ２が一致しておらず、画像構成要素ＩＭＦ２が第１のマーカーＭＫ２の一部の領域として設定されている例を示している。
【００８４】
また、Ｎ回対称性とは、所定の点（２次元図形の場合）または所定の軸を中心として（３次元図形の場合）、図形を（３６０／Ｎ）°回転させると、回転前の図形と回転後の図形が一致する性質のことをいう。なお、Ｎは２以上の正の整数であり、便宜的にＮを回転対称値と呼ぶこととする。
【００８５】
例えば、Ｎ回対称性を有する画像構成要素の一例を図４（Ａ）と図４（Ｂ）に示す。図４（Ａ）に示す第１のマーカーＭＫ１には、画像構成要素ＩＭＦ１が設定されている。画像構成要素ＩＭＦ１は長方形であり、１８０°回転させると、回転前のＩＭＦ１と一致するため、２回対称性を有する画像構成要素である。同様にして、図４（Ｂ）に示す第１のマーカーＭＫ２には、画像構成要素ＩＭＦ２が設定されている。画像構成要素ＩＭＦ２は正六角形であり、６０°回転させると、回転前のＩＭＦ２と一致するため、６回対称性を有する画像構成要素である。
【００８６】
また、図５（Ａ）と図５（Ｂ）に、Ｎ個の候補位置情報とＮ個の候補位置情報から位置情報を求める場合の具体例を示す。図５（Ａ）は、図４（Ａ）に示す２回対称性を有する画像構成要素が設定されたマーカーＭＫ１を用いる場合である。上述の通り、ＭＫ１の画像構成要素は１８０°回転させた時に、回転前の画像構成要素と一致する。したがって、図５（Ａ）のように、パレットの右下にマーカーを貼付することをあらかじめ定めておけば、候補位置ＰＣ１と、ＰＣ１と１８０°逆向きにパレットが置かれている場合の候補位置ＰＣ２の２つにパレットの候補位置を絞り込むことができる。候補位置情報は、この時のＰＣ１とＰＣ２を表す情報として求められる。例えば、候補位置情報は、ＰＣ１とＰＣ２の頂点の座標位置等である。そして、画像情報に基づき、パレットの撮像画像ＩＭＰ１を求め、求めた候補位置との位置を比較する。この場合には、パレットの撮像画像ＩＭＰ１はＰＣ１とほぼ一致しているため、実際にパレットが存在する位置はＰＣ１であるとして、ＰＣ１を表す位置情報を求める。
【００８７】
同様に、図５（Ｂ）は、図４（Ｂ）に示す６回対称性を有する画像構成要素が設定されたマーカーＭＫ２を用いる場合である。上述の通り、ＭＫ２の画像構成要素は６０°回転させた時に、回転前の画像構成要素と一致する。したがって、図５（Ｂ）のように、パレットの右下にマーカーを貼付することをあらかじめ定めておけば、候補位置ＰＣ１０からＭＫ２を中心に６０°の整数倍だけパレットを回転させた位置であるＰＣ１０〜ＰＣ１５の６つにパレットの候補位置を絞り込むことができる。そして、画像情報に基づき、パレットの撮像画像ＩＭＰ２を求め、求めた候補位置との位置を比較する。この場合には、パレットの撮像画像ＩＭＰ２はＰＣ１０とほぼ一致しているため、実際にパレットが存在する位置はＰＣ１０であるとして、ＰＣ１０を表す位置情報を求める。
【００８８】
以上のようにして、候補位置情報をＮ個に限定し、位置情報を特定すること等が可能となる。
【００８９】
また、撮像部により作業スペースを撮像した結果、後述する図９に示す場合のように、操作対象物の撮像画像ＩＭＰにおいてオクルージョンＯＣが発生している場合がある。
【００９０】
ここで、オクルージョンとは、ロボットのアーム等の手前にある障害物に遮られて、本来の撮像対象である奥の物体が見えなくなっている状態のことをいう。また、本実施形態では、撮像部の視野範囲の外に物体が存在しているため、物体が見えなくなっている状態も同様に、オクルージョンとして扱う。図９では、ＯＣの部分でオクルージョンが発生している。
【００９１】
オクルージョンが発生している場合には、撮像画像ＩＭＰに操作対象物の一部の領域しか映されておらず、場合によっては操作対象物のほとんどの部分が映されていないこともある。このような場合には、撮像画像ＩＭＰのみに基づいて、操作対象物の位置や向きを特定することはできない。
【００９２】
しかし、本実施形態では、オクルージョンが発生している場合であっても、第１のマーカーを認識することさえできれば、第１のマーカーの認識処理の結果に基づいて、Ｎ個の候補位置情報を特定することが可能となる。そして、このような場合であっても、Ｎ個の候補位置情報に基づいて、操作対象物の位置情報を特定し、ロボットを制御することが可能となる。
【００９３】
上記のように、位置情報を求める場合、撮像画像に映る操作対象物が複雑な形状をしている等の理由で、候補位置情報の中から位置情報を特定する処理の負荷が大きくなる場合がある。この場合、候補位置と操作対象物の輪郭だけを比較することができれば、処理負荷の軽減が期待できる。
【００９４】
そこで、処理部１１０は、操作対象物の認識処理として、操作対象物の輪郭抽出処理を行って、輪郭情報を求め、Ｎ個の候補位置情報と輪郭情報とに基づいて、操作対象物の位置情報を特定してもよい。
【００９５】
ここで、輪郭抽出処理とは、画像情報により表される撮像画像上に映る操作対象物などの物体の輪郭を抽出し、輪郭情報を特定する処理のことをいう。輪郭抽出処理の一手法として、ハフ（Hough）変換がある。ハフ変換を用いる場合には、所定の長さ以上の直線のみを輪郭として抽出するように、パラメータを設定する。
【００９６】
また、輪郭情報とは、物体の輪郭を表す情報である。輪郭情報は、例えば、輪郭の始点と終点の撮像画像上での座標位置や、ベクトルとその大きさ等であるが、これに限定されない。
【００９７】
例えば、図６（Ａ）、図６（Ｂ）に、輪郭情報を求め、輪郭情報に基づき、操作対象物の位置情報を特定する例を示す。図６（Ａ）に、図５（Ａ）の操作対象物の撮像画像ＩＭＰ１の輪郭情報を求め、輪郭情報により表される輪郭ＰＯＬ１を示す。図６（Ａ）の場合には、輪郭ＰＯＬ１と各候補位置とを比較し、候補位置ＰＣ１を実際にパレットが存在する位置として特定する。図６（Ｂ）の場合も同様に、輪郭ＰＯＬ２に基づいて、候補位置の中からパレットが存在する位置としてＰＣ１０を特定する。具体的な比較方法には後述するようなものがある。
【００９８】
図６（Ａ）、図６（Ｂ）のどちらの場合にも、図５（Ａ）、図５（Ｂ）に見られるパレットの区画等を考慮する必要がないため、候補位置を表す辺と区画を構成する辺との比較処理などを行う必要がなくなる。
【００９９】
その結果、操作対象物の輪郭以外の部分の情報も用いる場合に比べて、実際の操作対象物の位置情報の特定処理を単純化し、処理負荷を軽減すること等が可能となる。また、上述した手法と同様に、オクルージョンが発生している場合でも、操作対象物の正確な位置情報を特定すること等が可能である。
【０１００】
ここで、Ｎ個の候補位置情報の中から位置情報を特定する前述した手法としては、下記のような手法が考えられる。
【０１０１】
処理部１１０は、輪郭情報により表される操作対象物の輪郭線（撮像輪郭線）と、操作対象物のＮ個の候補位置情報から推定した推定輪郭線との距離情報を求め、距離情報に基づいて、操作対象物の位置情報を特定してもよい。
【０１０２】
ここで、輪郭線（撮像輪郭線）とは、輪郭情報により表される操作対象物の輪郭線である。また、推定輪郭線とは、仮に操作対象物の候補位置情報により表される候補位置に操作対象物が位置しているとした場合における操作対象物の輪郭線である。
【０１０３】
具体的には、図７のようにパレットに第１のマーカーＭＫが貼付されているような場合には、パレットを表す撮像画像ＩＭＰの輪郭線が輪郭線ＰＯＬとなる。そして、第１のマーカーＭＫから特定できる２つの候補位置の輪郭線が、推定輪郭線ＥＯＬ１、ＥＯＬ２である。
【０１０４】
さらに、距離情報とは、点または線若しくは所定の領域から、もう一つの点または線若しくは所定の領域までの距離を表す情報のことをいう。後述するように、少なくとも一方が点以外である場合には、線もしくは所定の領域内から代表点を特定して、２点間の距離を求める方法がある。他にも、線と線の距離を求める場合などには、２つの線の距離情報として、線と線によって囲まれる領域の面積を求める方法がある。
【０１０５】
これにより、輪郭線と推定輪郭線との距離情報に基づいて、実際の操作対象物の位置情報を特定すること等が可能になる。輪郭線間の距離情報のみを用いるため、位置情報特定処理を単純化し、処理負荷を軽減し、さらには処理実行時に使用するメモリー量を抑制すること等が可能になる。
【０１０６】
また、本実施形態では、距離情報により表される距離が０となる場合に、輪郭線と推定輪郭線とが一致していると判断し、距離が０の推定輪郭線に対応する候補位置情報を位置情報として特定する。しかし、本実施形態では、距離情報により表される距離が０となる場合にのみ、位置情報を特定するのではない。距離情報により表される距離が０ではない場合には、輪郭線との距離が最も短い推定輪郭線に対応する候補位置情報を特定し、対応する距離情報によって、候補位置情報を補正することにより、実際に操作対象物が存在する正確な位置を表す位置情報を特定する。
【０１０７】
したがって、本実施形態によれば、操作対象物に第１のマーカーがずれて設定されている場合でも、第１のマーカーのずれを許容して、操作対象物の正確な位置情報を特定すること等が可能となる。また、これまでに述べた手法と同様に、オクルージョンが発生している場合でも、操作対象物の正確な位置情報を特定すること等が可能である。
【０１０８】
ここで、輪郭線と推定輪郭線との距離情報を求める前述した手法としては、下記のような手法が考えられる。
【０１０９】
処理部１１０は、推定輪郭線の辺に第１の基準点を設定し、第１の基準点から輪郭線の辺を含む直線へ下ろした垂線と輪郭線の辺を含む直線との交点を第２の基準点に設定し、第１の基準点と第２の基準点との距離を、輪郭線と推定輪郭線との距離情報として求めてもよい。
【０１１０】
ここで、第１の基準点とは、推定輪郭線の辺に設けた所定の点のことをいう。
【０１１１】
一方、第２の基準点とは、第１の基準点から輪郭線の辺を含む直線へ下ろした垂線と輪郭線の辺を含む直線との交点のことをいう。
【０１１２】
例えば、図７で示した輪郭線ＰＯＬと推定輪郭線ＥＯＬ１、ＥＯＬ２について、２つの輪郭線間の距離情報を求める様子の一部を図８に示す。
【０１１３】
初めに、ＰＯＬとＥＯＬ１間の距離を求める。まず、推定輪郭線ＥＯＬ１を構成する一辺の中点を第１の基準点ＦＳＰ１として設定する。ただし、本例では上記のように第１の基準点ＦＳＰ１を設定したが、第１の基準点は推定輪郭線の辺の中点であるとは限らない。次に、第１の基準点ＦＳＰ１から、輪郭線ＰＯＬの辺を含む直線ＥＴＬへ、垂線ＰＬ１を下ろし、ＰＬ１とＥＴＬの交点を第２の基準点ＳＳＰ１として設定する。そして、第１の基準点ＦＳＰ１と第２の基準点ＳＳＰ１との距離であるＬＤ１を求める。
【０１１４】
次に、ＰＯＬとＥＯＬ２間の距離を求める。まず、推定輪郭線ＥＯＬ２を構成する一辺の中点を第１の基準点ＦＳＰ２として設定する。次に、第１の基準点ＦＳＰ２から、輪郭線ＰＯＬの辺を含む直線ＥＴＬへ、垂線ＰＬ２を下ろし、ＰＬ２とＥＴＬの交点を第２の基準点ＳＳＰ２として設定する。そして、第１の基準点ＦＳＰ２と第２の基準点ＳＳＰ２との距離であるＬＤ２を求める。
【０１１５】
本例では、このようにして求めた２点間の距離ＬＤ１とＬＤ２を比較し、ＬＤ１の方が短いと判断されるため、推定輪郭線ＥＯＬ１の方が輪郭線ＰＯＬに近いと判断される。そして、推定輪郭線ＥＯＬ１に対応する候補位置情報を、距離ＬＤ１を用いて実際の操作対象物の正しい位置を表す情報に補正し、操作対象物の位置情報として特定する。なお、本例では、輪郭線ＰＯＬの一辺と、推定輪郭線ＥＯＬ１、ＥＯＬ２の一辺の距離のみを用いたが、全ての辺の間で距離を算出して、どちらの推定輪郭線が輪郭線により近いかを判断してもよい。
【０１１６】
このようにして、第１の基準点と第２の基準点間の距離に基づき、実際の操作対象物の位置情報を特定すること等が可能になる。２点間の距離を算出するため、位置情報特定処理をさらに単純化し、さらに処理負荷を軽減し、さらに使用メモリー量を抑制すること等が可能になる。また、これまでに述べた手法と同様に、オクルージョンを問題とせず、第１のマーカーのずれを許容すること等が可能である。
【０１１７】
しかし、撮像画像内でオクルージョンが発生しており、操作対象物のほとんどの部分が映っていない場合には、候補位置情報の中から位置情報を特定することはできたとしても、輪郭線間の距離情報に基づき候補位置情報を補正できない場合がある。このような場合には、第１のマーカーの設定位置や向きによるずれが、位置情報に反映されてしまい、ロボットを作業者の意図通りに制御することができない。
【０１１８】
そこで、処理部１１０は、Ｎ個の候補位置情報の中から特定された操作対象物の位置情報と、操作対象物の認識処理により求められた輪郭情報とに基づいて、画像情報により表される撮像画像内で発生しているオクルージョンを検出して、オクルージョン情報を特定してもよい。そして、制御部１２０は、オクルージョン情報に基づいて、ロボット３０を制御してもよい。
【０１１９】
ここで、オクルージョン情報とは、オクルージョンが発生している領域を表す情報である。例えば、オクルージョン情報は、オクルージョンが発生している部分の撮像画像内での座標位置などである。
【０１２０】
具体例として、操作対象物の撮像画像ＩＭＰにおいて、ＯＣの部分でオクルージョンが発生している様子を図９に示す。図９では、操作対象物の輪郭線ＰＯＬは、本来の操作対象物の輪郭と異なっている。そのため、図８に示すような方法で、輪郭線と推定輪郭線の距離情報を算出する場合に、図９のように「輪郭線ＰＯＬの辺を含む直線」であるＥＴＬを基準とする場合などには、本来の距離との誤差が大きくなってしまう。具体的には、まず輪郭線ＰＯＬと推定輪郭線ＥＯＬ１を比較して、第１の基準点ＦＳＰ１と第２の基準点ＳＳＰ１間の距離としてＬＤ１が求められる。同様に、輪郭線ＰＯＬと推定輪郭線ＥＯＬ２を比較して、第１の基準点ＦＳＰ２と第２の基準点ＳＳＰ２間の距離としてＬＤ２が求められる。そして、ＬＤ１とＬＤ２を比較すると、ＬＤ２の方が短いため、推定輪郭線ＥＯＬ２に対応する候補位置情報を操作対象物の位置情報として特定されてしまう。本来ならば、推定輪郭線ＥＯＬ１が選ばれるべきである。そこで、本実施形態では、ロボットのアーム等がオクルージョンの原因となっている場合に、ロボットを制御し、オクルージョンを解消する。そして、改めて、図８に示すような手法で操作対象物の位置情報を特定する。
【０１２１】
これにより、オクルージョンが発生している場合でも、オクルージョン情報に基づいてロボットを制御し、オクルージョンを解消すること等が可能になる。その結果として、ロボットを作業者の期待通りに制御すること等が可能になる。
【０１２２】
ここまで、第１のマーカーに設定されている画像構成要素の回転対称値が既知である場合を考えてきたが、第１のマーカーに設定されている画像構成要素の回転対称値が既知ではない場合も当然考えられる。
【０１２３】
そこで、処理部１１０は、ロボット３０の操作対象物に設定された第１のマーカーに設定された画像構成要素が、Ｎ回対称性を有する場合に、画像情報に基づいて、第１のマーカーの認識処理を行い、第１のマーカーの回転対称情報を求め、回転対称情報に基づき操作対象物のＮ個の候補位置情報を求めてもよい。
【０１２４】
ここで、回転対称情報とは、第１のマーカーに設定された画像構成要素の回転対称値を表す情報のことをいう。回転対称値の定義は上述した通りである。回転対称情報は、回転対称値そのものであってもよく、回転対称値を求めるために用いられる情報であってもよい。回転対称情報の求め方には後述するような手法がある。
【０１２５】
これにより、第１のマーカーの回転対称情報が既知でない場合においても、第１のマーカーの回転対称情報を求め、回転対称情報に基づき、操作対象物のＮ個の候補位置情報を求めること等が可能になる。回転対称情報が分かれば、無限に考えられる候補位置情報をＮ個まで容易に絞り込むことが可能である点において優位である。
【０１２６】
ここで、回転対称情報を求める手法として、以下に示すような手法がある。
【０１２７】
処理部１１０は、画像構成要素の面積重心を求め、面積重心を中心に第１のマーカー画像を回転させ、回転させた第１のマーカー画像と回転前の第１のマーカー画像との差分情報を求め、差分情報に基づき回転対称情報を求めてもよい。
【０１２８】
ここで、面積重心とは、物体の所定の領域において、単位面積当たりの質量が均一である場合に、各単位面積領域にはたらく重力の合力の作用点、言い換えれば質量の中心点のことをいう。例えば、三角形の場合には、２つの中線の交点が面積重心となる。図１０の場合には、ＡＣＰが面積重心である。
【０１２９】
また、差分情報とは、２つの画像間の差異を表す情報である。差分情報の例としては、後述する輝度差などがある。差分情報は、図１０のように第１のマーカー画像を面積重心ＡＣＰを中心として回転させ、回転前の第１のマーカー画像ＢＲＭＫと回転させた第１のマーカー画像ＡＲＭＫを比較することにより得られる。
【０１３０】
これにより、第１のマーカー画像を回転させ、回転前の第１のマーカー画像と回転させた第１のマーカー画像との差分情報を求め、差分情報に基づき回転対称情報を求めること等が可能になる。その結果、例えば、画像比較処理を用いて、回転対称情報を求めること等が可能になる。
【０１３１】
ここで、差分情報を求める手法の一つとして、輝度差を用いる手法がある。
【０１３２】
処理部１１０は、第１のマーカー画像を所定の角度だけ回転させた場合における回転後の第１のマーカー画像と回転前の第１のマーカー画像との輝度の差の総和である総輝度差を求め、総輝度差の履歴を差分情報として求めてもよい。
【０１３３】
ここで、総輝度差の履歴とは、第１のマーカー画像を回転させている間、２つの画像間において対応する各画素の輝度差の総和（総輝度差）を記録した情報、または第１のマーカー画像を回転させている間の総輝度差から求められる情報のことをいう。具体例については後述する。
【０１３４】
これにより、差分情報として求められた総輝度差の履歴に基づいて、回転対称情報を求めること等が可能になる。総輝度差の履歴を用いるため、画像比較処理等を行う場合に比べて、処理負荷や使用メモリーを抑制すること等が可能となる。
【０１３５】
また、処理部１１０は、総輝度差の履歴において総輝度差が所定の閾値以下となる回数に基づいて、回転対称情報を求めてもよい。
【０１３６】
所定の閾値とは、総輝度差に基づいて、回転前の第１のマーカー画像と回転させた第１のマーカー画像とが一致しているか否かを判断する基準となる値である。また、第１の閾値は、あらかじめ設定されるものでも良いし、処理部１１０等によって算出されるものであっても良い。
【０１３７】
具体例を図１１に占めす。図１１は、図１０に示す正五角形である第１のマーカー画像を３６０°回転させた時の総輝度差の履歴を示している。図１１によれば、総輝度差は、所定の閾値Ｔｈを５回下回っている。したがって、本例では、回転対称値Ｎ＝５とする回転対称情報を求めることができる。
【０１３８】
また、第１のマーカー画像を回転させる角度は３６０°である必要はない。例えば、図１１の場合には、総輝度差が所定の閾値を上回ってから、総輝度差が所定の閾値以下となる角度まで、第１のマーカー画像を回転させればよい。この場合には、総輝度差が所定の閾値を上回った後に回転させた角度で３６０°を除算することにより、回転対称値が求められる。
【０１３９】
これにより、総輝度差の履歴に基づいて回転対称情報を求める処理を単純化すること等が可能になる。
【０１４０】
また、ワークが配置される複数の区画を有するパレットが操作対象物である場合に、処理部１１０は、Ｎ個の候補位置情報の中から特定された操作対象物の位置情報に基づいて、パレットの区画位置情報を求めてもよい。そして、制御部１２０は、区画位置情報に基づいて、ロボット３０の制御を行ってもよい。
【０１４１】
ここで、区画位置情報とは、パレットの区画に関する情報であり、例えば、パレットの外枠に対する各区画の位置を表す情報などを指す。具体例については後述する。
【０１４２】
具体例として、パレットの位置情報に基づいて、パレットの区画位置情報を求める様子を図１２（Ａ）、図１２（Ｂ）に示す。まず、第１のマーカーＭＫ１の認識処理を行い、第１のマーカーＭＫ１が図１２（Ａ）のような位置にあると分かった場合には、パレットの候補位置としてＰＣ１、ＰＣ２が特定できる。次に、図１２（Ｂ）のように、操作対象物の認識処理を行い、認識処理結果に基づき、候補位置ＰＣ１が正しいパレットの位置であると判断する。最後に、正しいと推定したパレットの位置ＰＣ１内において、区画ＤＶの探索処理を行い、パレットの区画位置情報を求める。
【０１４３】
これにより、操作対象物の位置情報に基づいて、パレットの区画位置情報を求め、区画位置情報に基づいて、ロボットの制御を行うこと等が可能になる。その結果、ロボットの各部をパレットの区画位置に対してより正確に移動させること等が可能になる。
【０１４４】
また、処理部１１０は、第１のマーカーの画像構成要素の内側に設定され、ロボット３０の制御情報が埋め込まれたマーカーである第２のマーカーの認識処理を、画像情報に基づいて行い、第２のマーカーの認識処理の結果に基づいて、制御情報に含まれる区画位置情報を求めてもよい。
【０１４５】
ここで、第２のマーカーとは、前述したマーカーの一つであり、第２のマーカーを構成する文字、図形、記号、模様もしくは立体的形状もしくはこれらの結合又はこれらと色彩との結合が、ロボットを制御する際に用いられる制御情報を表しているマーカーのことをいう。
【０１４６】
図１３（Ａ）と図１３（Ｂ）は、第２のマーカーに埋め込まれた制御情報に含まれる区画位置情報の一例である。図１３（Ａ）は、制御情報に含まれる区画位置情報の一例をまとめた表である。なお、図１３（Ａ）の表に記載された未使用区画とは、区画の形状等に起因して使用することができない区画を表す。
【０１４７】
また、図１３（Ｂ）は、図１３（Ａ）に記載した区画位置情報を撮像画像内のパレットに照らし合わせた様子である。図１３（Ｂ）のＭＫ２は、第１のマーカーＭＫ１の画像構成要素の内側に設定された第２のマーカーを示している。本例では、第２のマーカーＭＫ２の白色と黒色の配色パターンによって、制御情報を表しており、ＭＫ２の配色パターンの認識処理を行うことにより、制御情報を取得することが可能である。配色パターンと制御情報の対応関係はあらかじめ定めておく。
【０１４８】
これにより、第２のマーカーの認識処理に基づいて、第２のマーカーに埋め込まれたロボットの制御情報を取得すること等が可能となり、制御情報に含まれるパレットの区画位置情報を求め、区画位置情報に基づいて、ロボットの制御を行うこと等が可能になる。
【０１４９】
また、第１のマーカーの回転対称情報を求める処理において、第１のマーカー内の画像パターンが原因で、１回転させるまでに回転前と回転後の第１のマーカーが一致せず、正しい回転対称情報が求められない場合がある。
【０１５０】
そこで、処理部１１０は、第１のマーカー内の画像パターンについて膨張収縮処理を行い、第１のマーカーの内側に埋め込まれた情報を消去してもよい。
【０１５１】
ここで、膨張処理とは、二値化された白黒の画像において、注目画素の周辺に１画素でも白い画素がある場合には、他の画素も白に置き換える処理をいう。一方、収縮処理とは、膨張処理とは逆に、注目画素の周辺に１画素でも黒い画素がある場合には、他の画素も黒に置き換える処理をいう。
【０１５２】
例えば、図１４（Ａ）に示すような第１のマーカーＢＥＭＫ内の画像パターンＩＭＰＴについて収縮処理を行うと、図１４（Ｂ）に示すような第１のマーカーＡＥＭＫとなり、第１のマーカー内の画像パターンが黒一色となる。
【０１５３】
これにより、第１のマーカーの回転対称情報を求める処理において、第１のマーカー内の画像パターンが原因で、１回転させるまでに回転前と回転後の第１のマーカーが一致せず、正しい回転対称情報を求められなくなることを防ぐこと等が可能となる。
【０１５４】
４．処理の詳細
以下では、図１５〜図１７のフローチャートを用いて、本実施形態の処理の流れについて説明する。
【０１５５】
４．１  パレタイズ処理の詳細
初めに、図１５を用いて、パレタイズ処理の流れについて説明する。まず、作業者がパレットにマーカーを貼付する（Ｓ１）。この際、作業者はパレットの向きと、パレット内の所定の位置に合わせて、マーカーを貼付する。例えば、パレットの上方向とマーカーの所定の方向とが一致するようにマーカーを貼ることを定めておく。同様に、パレット内の所定の位置をマーカー貼付位置としてあらかじめ定めておく。但し、作業者がマーカーを所定の位置と向きに誤差なく貼付することは不可能であるため、マーカーが貼付されている位置と向きに誤差があっても問題はない。
【０１５６】
次に、マーカーが貼付されたパレットを作業者が作業スペースに配置する（Ｓ２）。本実施形態では、図１のように作業者とロボットが協業するような場合を想定しているため、作業者の作業が完了した段階で、ロボットの作業スペース内にパレットを配置する。この時、作業者はパレットの位置や向きに注意を払う必要はない。
【０１５７】
そして、ロボット制御システムは、撮像部から得られた画像情報に基づいて、マーカーを検出し（Ｓ３）、マーカーが見つかったか否かを判断する（Ｓ４）。マーカーが見つかった場合には、パレット位置算出処理を行う（Ｓ５）。パレット位置算出の詳細については後述する。一方、マーカーが見つからなかった場合には、全ての処理を終了する。
【０１５８】
次に、パレット位置算出処理の結果に基づき、パレット内の区画［１、１］に対応する位置へロボットのハンドを移動させ、区画［１、１］をロボットの処理対象とする（Ｓ６）。そして、ロボットの処理対象となる区画内に既にワークが存在するか否かを判断する（Ｓ７）。ロボットの処理対象となる区画内にワークが存在しない場合には、ワークのパレタイズ処理を行う（Ｓ８）。そして、パレタイズ処理を実施した後、またはロボットの処理対象となる区画内に既にワークが存在する場合には、全区画についてパレタイズ処理を行ったか否かを判断する（Ｓ９）。全区画についてパレタイズ処理を行っていないと判断する場合には、次の区画に対応する位置にロボットのハンドを移動させる（Ｓ１０）。一方、全区画についてパレタイズ処理を行ったと判断する場合には、全ての処理を終了する。
【０１５９】
４．１．１  パレットの位置算出処理の詳細
次に、図１６を用いて、図１５におけるパレット位置算出処理（Ｓ５）の詳細について説明する。
【０１６０】
まず、撮像部から得られた画像情報に基づき、画像情報により表される第１のマーカーを二値化する（Ｓ２０）。次に、二値化した第１のマーカー内部の画像パターンについて、膨張収縮処理を行い、第１のマーカーの内側に埋め込まれた情報を消去する（Ｓ２１）。そして、膨張収縮処理後の第１のマーカーに基づいて、第１のマーカーの画像構成要素の面積重心を算出する（Ｓ２２）
次に、求めた面積重心を中心として、第１のマーカーを回転させ、回転前の第１のマーカーと回転させた第１のマーカーとの輝度差の総和を、第１のマーカーを１回転させる間記録し、総輝度差の履歴を算出する（Ｓ２３）。そして、求めた総輝度差の履歴に基づき、総輝度差が所定の閾値を下回る回数を回転対称値とする回転対称情報を算出する（Ｓ２４）
次に、算出した回転対称情報に基づいて、パレットの候補位置情報を求める（Ｓ２５）。この場合には、回転対称値と同じ数の候補位置情報を求めることができる。
【０１６１】
ここで、撮像部からの画像情報に基づいて、パレットの輪郭情報を特定し（Ｓ２６）、パレットの輪郭情報に基づいて、輪郭線を求める。同様に、各候補位置情報に基づいて、推定輪郭線を求める。そして、求めた輪郭線と推定輪郭線との距離情報を算出し（Ｓ２７）、求めた距離情報のうち、最も値が小さくなる推定輪郭線を特定する。最後に、特定した推定輪郭線により表される候補位置がパレットの位置であるとして、パレットの位置情報を求める（Ｓ２８）。この際に、特定したパレットの位置情報を、輪郭線と推定輪郭線との距離情報により補正して、より正確な位置情報を求めてもよい。
【０１６２】
また、第１のマーカーから特定したパレットの位置情報をさらに補完するために、第２のマーカーから制御情報を読み取る（Ｓ２９）。そして、制御情報に含まれるパレットの区画に関する情報である区画位置情報を特定する（Ｓ３０）。以上が、パレットの位置算出処理である。
【０１６３】
４．２  デパレタイズ処理の詳細
最後に、図１７を用いて、デパレタイズ処理の流れについて説明する。デパレタイズ処理の流れはパレタイズ処理の流れとほぼ同様である（Ｓ４１~Ｓ４６、Ｓ４９、Ｓ５０）。また、パレット位置算出処理も、図１６と同様である。
【０１６４】
デパレタイズ処理は、パレタイズ処理とＳ４７、Ｓ４８の処理が異なっている。区画［１、１］にロボットのハンドを移動させ、ロボットの処理対象となる区画を認識した後は、処理対象である区画内にワークが存在している否かを判断する（Ｓ４７）。処理対象である区画内にワークが存在していると判断する場合には、デパレタイズ処理を行い、区画内からワークを取り出す（Ｓ４８）。一方、処理対象である区画内にワークが存在していないと判断する場合には、デパレタイズ処理は行わない。以降は、図１５の場合と同様である。
【０１６５】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またロボット制御システムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１６６】
１０  ロボット制御システム、２０  撮像部、３０  ロボット、４０  ワーク、
５０  パレット、６０  マーカー、７０  作業者、
１１０  処理部、１１２  回転対称情報特定部、１１４  位置情報特定部、
１２０  制御部、１３０  記憶部、１４０  Ｉ／Ｆ部（入力部）、
３１０  制御部、３２０  アーム、３３０  ハンド
【図１】
2013010160.tif 000003
【図２】
2013010160.tif 000004
【図３】
2013010160.tif 000005
【図４】
2013010160.tif 000006
【図５】
2013010160.tif 000007
【図６】
2013010160.tif 000008
【図７】
2013010160.tif 000009
【図８】
2013010160.tif 000010
【図９】
2013010160.tif 000011
【図１０】
2013010160.tif 000012
【図１１】
2013010160.tif 000013
【図１２】
2013010160.tif 000014
【図１３】
2013010160.tif 000015
【図１４】
2013010160.tif 000016
【図１５】
2013010160.tif 000017
【図１６】
2013010160.tif 000018
【図１７】
2013010160.tif 000019