(57)【特許請求の範囲】
【請求項１】
互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出する認識処理部と、
前記複数の物品からなる第１の物品群の重心の水平位置を第１の重心位置として算出し、前記第１の物品群のうち前記第１の重心位置から最も離れた物品を取り出し対象の物品として選択する選択部と、
前記第１の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第２の物品群の重心の水平位置を第２の重心位置として算出し、前記第２の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出する移動方向算出部と、
前記取り出し対象の物品を前記水平移動方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部と、
を有することを特徴とするロボット制御装置。
【請求項２】
前記選択部は、前記多関節ロボットが前記取り出し対象の物品を取り出す度に当該取り出された物品を前記第１の物品群から除いて、前記第１の重心位置を算出するとともに前記取り出し対象の物品を選択することを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記選択部は、前記移動方向算出部が前記水平移動方向を算出する度に前記取り出し対象の物品を前記第１の物品群から除いて、前記第１の重心位置を算出するとともに次の取り出し対象の物品を選択し、
前記移動方向算出部は、既に前記水平移動方向が算出された物品が除かれた前記第１の物品群から、前記第２の重心位置を算出するとともに前記取り出し対象の物品と対応付けて前記水平移動方向を算出し、
前記制御部は、前記選択部が選択した順序で、前記取り出し対象の物品を当該取り出し対象の物品と対応付けられた前記水平移動方向に前記所定の移動量だけ移動させてから垂直方向に取り出すように前記多関節ロボットを制御することを特徴とする請求項１に記載のロボット制御装置。
【請求項４】
前記選択部は、前記複数の物品からなる、互いに前記所定の移動量以上離れた複数の前記第１の物品群から１つを順次選択し、選択されている第１の物品群について、すべての物品が除かれるまで前記第１の重心位置を算出するとともに前記取り出し対象の物品を選択することを特徴とする請求項２または請求項３に記載のロボット制御装置。
【請求項５】
前記選択部は、前記第１の物品群に含まれる物品のそれぞれの重心の水平位置の平均を前記第１の重心位置として算出することを特徴とする請求項１ないし請求項４の何れかに記載のロボット制御装置。
【請求項６】
前記選択部は、前記第１の物品群の水平面への正射影の重心を前記第１の重心位置として算出することを特徴とする請求項１ないし請求項４の何れかに記載のロボット制御装置。
【請求項７】
請求項１ないし請求項６の何れかに記載のロボット制御装置と、
前記複数の物品を搬送するコンベア装置と、
前記複数の物品を互いに重なり合わないように前記コンベア装置に排出するホッパ装置と、
前記コンベア装置に置かれた前記複数の物品の３次元情報を取得する３次元情報取得装置と、
前記制御部の制御によって前記複数の物品を取り出す前記多関節ロボットと、
を備え、
前記認識処理部は、前記３次元情報に基づいて前記複数の物品の位置および姿勢を算出することを特徴とする物品取り出しシステム。
【請求項８】
互いに重なり合わないように置かれた複数の物品のうち、取り出し対象の物品を水平方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部を備え、前記複数の物品の３次元情報が入力されるコンピュータに、
前記３次元情報に基づいて前記複数の物品をそれぞれ認識して位置および姿勢を算出する機能と、
前記複数の物品からなる第１の物品群の重心の水平位置を第１の重心位置として算出する機能と、
前記第１の物品群のうち前記第１の重心位置から最も離れた物品を前記取り出し対象の物品として選択する機能と、
前記第１の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第２の物品群の重心の水平位置を第２の重心位置として算出する機能と、
前記第２の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出し、前記制御部に入力する機能と、
を実現させるためのプログラム。
【請求項９】
互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出し、
前記複数の物品からなる第１の物品群の重心の水平位置を第１の重心位置として算出し、
前記第１の物品群のうち前記第１の重心位置から最も離れた物品を取り出し対象の物品として選択し、
前記第１の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第２の物品群の重心の水平位置を第２の重心位置として算出し、
前記第２の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出し、
前記取り出し対象の物品を前記水平移動方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御することを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、物品取り出しシステム、プログラム、およびロボットの制御方法に関する。
【背景技術】
【０００２】
近年、工場の製造ラインなどにおいて様々な産業用ロボットが用いられている。特に、（垂直）多関節ロボットは、人間の腕に近い構造をしているため、種々の作業を人間に代わって行うことができる。  
例えば、特許文献１では、乱雑に重なり合って置かれた（バラ積みされた）複数の物品（ワーク）から多関節ロボットを用いて１つずつ取り出す（ピッキングする）ことができる物品取り出し装置（バラ積みピッキング装置）が開示されている。このようなピッキング装置は、ワークの認識処理プログラムや多関節ロボットの制御プログラムなどによって様々なワークに対応することができる。そのため、ワークごとに対応するパーツフィーダを用いる場合に比べて、限られたスペースで多種のワークを扱う製造ラインなどに好適である。
【０００３】
また、特許文献１のピッキング装置では、１つのワークを取り出した後、まず画像データ（２次元情報）のみを取得し、取り出し前後の画像データを比較することによって、位置および姿勢の変化が許容範囲内のワークの有無を判断している。そして、このような判断をすることによって、時間がかかる距離データ（３次元情報）の取得の回数を減らし、ピッキング時間を短縮している。  
一方、例えば特許文献２に開示されているホッパ装置（ワーク分離装置）を用いることによって、ワークを取り出すための多関節ロボットの制御の容易化を図ることもできる。すなわち、ホッパ装置を用いて互いに重なり合わないようにワーク同士を分離することによって、１つのワークの取り出し前後で他のワークの位置および姿勢が変化しないようにすることができる。したがって、３次元情報を再取得することなく、各ワークを垂直方向にそのまま取り出すことができるようになる。  
このようにして、多関節ロボットを用いて、複数のワークから１つずつ取り出すことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１２０１４１号公報
【特許文献２】特開平１０−２９７２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のピッキング装置では、ワークを取り出す度に２次元情報を再取得している。さらに、許容範囲内のワークが存在しない場合には、３次元情報を再取得する必要がある。しかしながら、例えば図１３に示すように、カメラエリアにおいてワーク９の２次元情報や３次元情報の取得を行った後、コンベア装置５を用いてワーク９を搬送し、ピッキングエリアにおいてワーク９の取り出しを行う場合には、情報を再取得することができない。そのため、カメラエリアとピッキングエリアとが異なる製造ラインなどには、特許文献１のピッキング装置を適用することができない。
【０００６】
また、ホッパ装置を用いる場合であっても、ワーク同士を完全には分離することができず、互いに隣接している場合がある。この場合、ワークを垂直方向にそのまま取り出すと、隣接している他のワークの位置および姿勢を変化させてしまう可能性がある。  
さらに、例えば図１３に示すように、ワーク９が凹凸を有する形状である場合には、ワーク９同士が互いに重なり合っていなくても、垂直方向からは重なって見える場合もある。この場合、ＡないしＥの符号を付けたワーク９（以下、ワークＡないしＥと称する）のうち、ワークＣ以外を垂直方向にそのまま取り出すと、他のワークと干渉して位置および姿勢を変化させてしまう。  
そのため、ワーク同士が完全には分離されていない場合には、１つのワークの取り出し前後で他のワークの位置および姿勢が変化し、特許文献１のピッキング装置の場合と同様に、３次元情報の再取得が必要となる場合もある。
【課題を解決するための手段】
【０００７】
前述した課題を解決する主たる本発明は、互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出する認識処理部と、前記複数の物品からなる第１の物品群の重心の水平位置を第１の重心位置として算出し、前記第１の物品群のうち前記第１の重心位置から最も離れた物品を取り出し対象の物品として選択する選択部と、前記第１の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第２の物品群の重心の水平位置を第２の重心位置として算出し、前記第２の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出する移動方向算出部と、前記取り出し対象の物品を前記水平移動方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部と、を有することを特徴とするロボット制御装置である。
【０００８】
本発明の他の特徴については、添付図面及び本明細書の記載により明らかとなる。
【発明の効果】
【０００９】
本発明によれば、互いに重なり合わないように置かれた複数の物品が完全には分離されていない場合であっても、３次元情報を再取得することなく多関節ロボットを用いて取り出すことができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態におけるロボット制御装置の構成を示すブロック図である。
【図２】本発明の一実施形態におけるロボット制御装置を備えた物品取り出しシステム全体の構成の概略を示すブロック図である。
【図３】認識処理部１１、選択部１３、移動方向算出部１４、および制御部１５の機能をコンピュータに実現させるためのプログラムの動作を説明するフローチャートである。
【図４】ピッキングエリアに搬送されたワークの配置の一例を示す図である。
【図５】図４に示したワークの配置からワーク全体の重心位置ＣＧを算出し、取り出し対象のワークＷＳを選択する方法を説明する図である。
【図６】ワークＷ１の近傍ワーク群の重心位置ＣＬを算出する方法を説明する図である。
【図７】ワークＷ１の水平移動方向ＤＰを算出する方法を説明する図である。
【図８】ワークＷ１を取り出した後、ワーク全体の重心位置ＣＧを算出し、取り出し対象のワークＷＳを選択する方法を説明する図である。
【図９】ワークＷ４の近傍ワーク群の重心位置ＣＬを算出する方法を説明する図である。
【図１０】ワークＷ４の水平移動方向ＤＰを算出する方法を説明する図である。
【図１１】認識処理部１１、選択部１３、移動方向算出部１４、および制御部１５の機能をコンピュータに実現させるための他のプログラムの動作を説明するフローチャートである。
【図１２】ピッキングエリアに搬送されたワークを複数のワーク群として扱う場合の配置の一例を示す図である。
【図１３】垂直方向にそのまま取り出すと干渉が発生するワークの配置の一例を示す図である。
【発明を実施するための形態】
【００１１】
本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。
【００１２】
＝＝＝物品取り出しシステム全体の構成の概略＝＝＝
以下、図２を参照して、後述する本発明の一実施形態におけるロボット制御装置を備えた物品取り出しシステム全体の構成の概略について説明する。  
図２に示されている物品取り出しシステムは、ロボット制御装置１、ステレオカメラ２、多関節ロボット３、ホッパ装置４、およびコンベア装置５を含んで構成されている。なお、図２において、コンベア装置５の搬送方向は右方向であり、図２以外の図においても同様である。
【００１３】
ステレオカメラ２は、コンベア装置５の相対的に上流側（図２において左側）に位置するカメラエリアの上方に配置されている。また、ステレオカメラ２から出力される３次元情報ＩＭＧは、ロボット制御装置１に入力されている。さらに、ロボット制御装置１から出力される制御信号ＣＮＴは、多関節ロボット３に入力されている。  
多関節ロボット３は、先端部にチャック部３１を備えている。また、多関節ロボット３は、コンベア装置５の相対的に下流側（図２において右側）に位置するピッキングエリアにチャック部３１を移動させることができるように配置されている。
【００１４】
なお、カメラエリアは、サイズがピッキングエリアと同一であるか、またはピッキングエリアより大きい。また、カメラエリアとピッキングエリアとは、一部が重複するように、または少なくとも互いに隣接するように配置されている。図２においては、両エリアは、同一サイズであり、互いに隣接するように配置されている。  
ホッパ装置４は、コンベア装置５の最上流側に配置されている。また、ホッパ装置４からは、ワーク９がコンベア装置５に排出されている。
【００１５】
＝＝＝物品取り出しシステム全体の動作の概略＝＝＝
以下、物品取り出しシステム全体の動作の概略について説明する。  
ホッパ装置４は、コンベア装置５の搬送動作に同期して、ワーク９を互いに重なり合わないように順次コンベア装置５に排出する。また、コンベア装置５は、ワーク９を搬送し、所定の長さ分だけ搬送するごとに一旦停止する。なお、当該所定の長さは、ワーク９がカメラエリアに搬送されて停止した後、ピッキングエリアに搬送されて停止するように設定される。前述したように、カメラエリアとピッキングエリアとが同一サイズであり、互いに隣接するように配置されている場合には、当該所定の長さは、各エリアの搬送方向の長さとなる。  
一方、ロボット制御装置１、ステレオカメラ２、および多関節ロボット３は、上記コンベア装置５の停止中に動作する。
【００１６】
ステレオカメラ２は、３次元情報取得装置に相当し、カメラエリアにあるワーク９を撮影し、３次元情報ＩＭＧを出力する。また、ロボット制御装置１は、現在ピッキングエリアにあるワーク９のカメラエリアにおける撮影時、すなわち、前回のコンベア装置５の停止中に取得された３次元情報ＩＭＧに基づいて制御信号ＣＮＴを出力する。そして、多関節ロボット３は、制御信号ＣＮＴに応じて制御され、ピッキングエリアにあるワーク９をチャック部３１によって把持して１つずつ取り出す。
【００１７】
このようにして、カメラエリアにおいて取得した３次元情報ＩＭＧに基づいて多関節ロボット３を制御し、ピッキングエリアに搬送されたワーク９を１つずつ取り出すことができる。また、ピッキングエリアにあるワーク９がすべて取り出されると、コンベア装置５は、再び所定の長さ分だけワーク９を搬送する。なお、ステレオカメラ２の代わりに、例えば特許文献１のピッキング装置と同様に、カメラおよびレーザスキャナを用いて３次元情報を取得してもよい。
【００１８】
＝＝＝ロボット制御装置の構成＝＝＝
以下、図１を参照して、本発明の一実施形態におけるロボット制御装置の構成について説明する。なお、以下の説明においては、各ワークをＷｋ（ｋは自然数）の符号を付けて表すこととする。  
図１に示されているロボット制御装置１は、認識処理部１１、記憶部１２、選択部１３、移動方向算出部１４、および制御部１５を含んで構成されている。
【００１９】
認識処理部１１には、３次元情報ＩＭＧが入力され、認識処理部１１から出力される位置・姿勢情報Ｔ［Ｗｋ］は、記憶部１２に入力されている。また、選択部１３には、記憶部１２から出力される重心位置Ｃｋが入力され、選択部１３からは、重心位置ＣＧおよび選択ワークＷＳが出力されている。さらに、移動方向算出部１４には、重心位置Ｃｋ、重心位置ＣＧ、および選択ワークＷＳが入力され、移動方向算出部１４からは、水平移動方向ＤＰが出力されている。そして、制御部１５には、選択ワークＷＳ、水平移動方向ＤＰ、および記憶部１２から出力される位置・姿勢情報Ｔ［ＷＳ］が入力され、制御部１５からは、制御信号ＣＮＴが出力されている。
【００２０】
＝＝＝ロボット制御装置の動作＝＝＝
以下、図３ないし図１０を適宜参照して、本実施形態におけるロボット制御装置の動作について説明する。なお、以下においては、一例として、カメラエリアにおいて８個のワークＷ１ないしＷ８の３次元情報ＩＭＧが取得されてロボット制御装置１に入力されるとともに、当該ワークＷ１ないしＷ８がピッキングエリアに搬送された場合について説明する。
【００２１】
ロボット制御装置１のうち、認識処理部１１、選択部１３、移動方向算出部１４、および制御部１５の機能は、例えば、記憶部１２を備えるコンピュータによって実現することができる。図３は、認識処理部１１、選択部１３、移動方向算出部１４、および制御部１５に相当する機能をコンピュータに実現させるためのプログラムの動作を示している。
【００２２】
ワークＷ１ないしＷ８全体の３次元情報ＩＭＧが入力され、プログラムの処理が開始されると（Ｓ１１）、まず、位置・姿勢認識処理を行い、各ワークの位置・姿勢情報Ｔ［Ｗｋ］（１≦ｋ≦８）を算出する（Ｓ１２）。具体的には、例えば、３次元（画像）情報ＩＭＧからエッジを抽出し、１つのワークの３次元情報（３Ｄ−ＣＡＤデータなど）とのマッチングを行うことによって、各ワークを認識して位置・姿勢情報Ｔ［Ｗｋ］を算出する。したがって、当該Ｓ１２の処理は、認識処理部１１に相当する機能を実現する。なお、位置・姿勢情報Ｔ［Ｗｋ］は、記憶部１２に記憶され、適宜読み出される。
【００２３】
ここで、ピッキングエリアに搬送されたワークＷ１ないしＷ８の配置の一例を図４に示す。図４において、重心位置Ｃ１ないしＣ８は、それぞれワークＷ１ないしＷ８の重心の水平位置を示している。なお、位置・姿勢情報Ｔ［Ｗｋ］が各ワークの位置として、その重心の位置を示している場合には、位置・姿勢情報Ｔ［Ｗｋ］から垂直位置を省略して重心位置Ｃｋを直接求めることができる。また、それ以外の場合には、位置・姿勢情報Ｔ［Ｗｋ］が示す各ワークの位置を原点とする相対座標を用いて、重心位置Ｃｋを算出することができる。以下、当該配置からワークを取り出す場合の動作について説明する。
【００２４】
まず、１つ目のワークを取り出す場合、ｎ＝１としてＳ１３からＳ１８までのループ処理を行う。当該ループ処理においては、まず、ワークＷ１ないしＷ８全体（第１の物品群）の重心の水平位置を重心位置ＣＧ（第１の重心位置）として算出する（Ｓ１３）。具体的には、例えば、各ワークの重心位置Ｃｋの平均を重心位置ＣＧとして算出することができる。また、例えば、３次元（画像）情報ＩＭＧからワークＷ１ないしＷ８の平面図（水平面への正射影）を求め、当該平面図の重心を重心位置ＣＧとして算出してもよい。
【００２５】
さらに、図５に示すように、ワークＷ１ないしＷ８のうち重心位置ＣＧから最も離れたワークを取り出し対象（選択ワークＷＳ）として選択する（Ｓ１４）。したがって、Ｓ１３およびＳ１４の処理は、選択部１３に相当する機能を実現する。なお、図５においては、ワークＷ１が選択ワークＷＳとして選択され、選択ワークＷＳ（ワークＷ１）の重心位置Ｃ１をＣＳと表している。
【００２６】
次に、選択ワークＷＳを中心とする領域を近傍エリアとして設定し、ワークＷ１ないしＷ８のうち当該近傍エリアに含まれるワークからなる近傍ワーク群（第２の物品群）の重心の水平位置を重心位置ＣＬ（第２の重心位置）として算出する（Ｓ１５）。具体的には、例えば図６に示すように、選択ワークＷＳ（ワークＷ１）からワーク１つ分以内の領域を近傍エリアとして設定し、ワークＷ１、Ｗ２、およびＷ４の重心位置Ｃｋの平均を重心位置ＣＬとして算出することができる。
【００２７】
さらに、図７に示すように、重心位置ＣＬから重心位置ＣＳに向かう方向を水平移動方向ＤＰとして算出する（Ｓ１６）。したがって、Ｓ１５およびＳ１６の処理は、移動方向算出部１４に相当する機能を実現する。
【００２８】
最後に、選択ワークＷＳの位置・姿勢情報Ｔ［ＷＳ］および水平移動方向ＤＰに基づいて制御信号ＣＮＴを出力し、選択ワークＷＳを水平移動方向ＤＰに所定の移動量だけ移動させてから（Ｓ１７）、垂直方向に取り出すように多関節ロボット３を制御する（Ｓ１８）。したがって、Ｓ１７およびＳ１８の処理は、制御部１５に相当する機能を実現する。なお、図７においては、所定の移動量をワーク１つ分としている。
【００２９】
以上のように、ロボット制御装置１は、重心位置ＣＧから最も離れた（最外周に位置する）ワークＷ１を１つ目の取り出し対象（選択ワークＷＳ）として選択し、当該ワークＷ１を水平移動方向ＤＰにワーク１つ分だけ水平移動させてから垂直方向に取り出す。ここで、近傍ワーク群の重心位置ＣＬから選択ワークＷＳの重心位置ＣＳに向かう方向を水平移動方向ＤＰとすることによって、水平移動時における他のワークとの干渉を防止している。また、水平移動方向ＤＰにワーク１つ分だけ水平移動させてから垂直方向に取り出すことによって、垂直移動時における他のワークとの干渉を防止している。
【００３０】
なお、ワークの配置および近傍エリアの設定によっては、選択ワークＷＳのみが近傍エリアに含まれ、重心位置ＣＬから重心位置ＣＳに向かう水平移動方向ＤＰを算出することができない場合もあり得る。この場合、水平移動させずに垂直方向に取り出しても他のワークと干渉することはない。よって、例えば、水平移動方向ＤＰを算出せず、水平方向に移動させずに垂直方向に取り出す。勿論、選択ワークＷＳ以外のワークを少なくとも１つ含むように近傍エリアを設定し、水平移動方向ＤＰを算出してもよい。また、選択ワークＷＳから水平移動時の移動量以上の半径を持つ円領域を近傍エリアとして設定することによって、水平移動方向ＤＰを算出することができない場合に、選択ワークＷＳをいずれの方向に水平移動させても他のワークとの干渉は発生しないため、所定の水平移動方向ＤＰを設定してもよい。
【００３１】
さらに、水平移動時の移動量は、ワークの形状によらずワーク１つ分で十分であるが、ワーク１つ分以下とすることもできる。例えば、図１３に示したワーク９の場合には、ワーク１／２個分だけ水平移動させることによって、干渉を防止することができる。
【００３２】
１つ目のワークＷ１を取り出した後には、ｎ＝２としてＳ１３からＳ１８までのループ処理を行う。当該ループ処理においては、まず、取り出されたワークＷ１を除いた、ワークＷ２ないしＷ８全体（第１の物品群）の重心の水平位置を重心位置ＣＧ（第１の重心位置）として算出する（Ｓ１３）。したがって、ワークＷ２ないしＷ８の重心位置Ｃｋの平均を重心位置ＣＧとして算出することができる。また、ワークＷ１ないしＷ８の平面図においてワークＷ１の部分をマスクし、当該マスクされた平面図の重心を重心位置ＣＧとして算出してもよい。
【００３３】
さらに、図８に示すように、ワークＷ２ないしＷ８のうち重心位置ＣＧから最も離れたワークを取り出し対象（選択ワークＷＳ）として選択する（Ｓ１４）。なお、図８においては、ワークＷ４が選択ワークＷＳとして選択され、選択ワークＷＳ（ワークＷ４）の重心位置Ｃ４をＣＳと表している。
【００３４】
次に、選択ワークＷＳを中心とする領域を近傍エリアとして設定し、ワークＷ２ないしＷ８のうち当該近傍エリアに含まれるワークからなる近傍ワーク群（第２の物品群）の重心の水平位置を重心位置ＣＬ（第２の重心位置）として算出する（Ｓ１５）。具体的には、例えば図９に示すように、選択ワークＷＳ（ワークＷ４）からワーク１つ分以内の領域を近傍エリアとして設定し、ワークＷ４およびＷ２の重心位置Ｃｋの平均を重心位置ＣＬとして算出することができる。さらに、図１０に示すように、重心位置ＣＬから重心位置ＣＳに向かう方向を水平移動方向ＤＰとして算出する（Ｓ１６）。
【００３５】
最後に、選択ワークＷＳの位置・姿勢情報Ｔ［ＷＳ］および水平移動方向ＤＰに基づいて制御信号ＣＮＴを出力し、選択ワークＷＳを水平移動方向ＤＰに所定の移動量だけ移動させてから（Ｓ１７）、垂直方向に取り出すように多関節ロボット３を制御する（Ｓ１８）。
【００３６】
以下同様に、ロボット制御装置１は、選択ワークＷＳを取り出す度に、当該取り出されたワークを除いて重心位置ＣＧを算出するとともに次の選択ワークＷＳを選択する。そして、Ｓ１３からＳ１８までのループ処理を８回行うことによって、ワークＷ１ないしＷ８をすべて取り出すことができ、処理を終了する（Ｓ１９）。
【００３７】
このようにして、互いに重なり合わないようにホッパ装置４から排出され、ピッキングエリアに搬送されたワークＷ１ないしＷ８が完全には分離されていない場合であっても、他のワークと干渉しないように１つずつ取り出すことができる。したがって、３次元情報ＩＭＧを再取得することなく、多関節ロボット３を用いてピッキングエリアからすべてのワークを取り出すことができる。
【００３８】
＝＝＝ロボット制御装置の他のプログラム＝＝＝
上記実施形態では、ロボット制御装置１の機能は、記憶部１２を備えるコンピュータによって実現されているが、これに限定されるものではない。ロボット制御装置１のうち、制御部１５には、公知の実装方法を用いることができるため、記憶部１２および制御部１５を備えるコンピュータに、図３のＳ１７およびＳ１８の処理を行わないプログラムを搭載してもよい。
【００３９】
上記実施形態では、ロボット制御装置１は、ワークＷ１ないしＷ８から１つずつ選択ワークＷＳを選択して、その都度当該選択ワークＷＳを取り出しているが、これに限定されるものではない。
【００４０】
例えば図１１に示すように、図３のＳ１３ないしＳ１６に相当するループ処理を８回行った後に、多関節ロボット３の制御を行うプログラムを搭載してもよい。この場合、まず、ｎ番目（１≦ｎ≦８）の選択ワークＷＳｎの選択およびそれに対応する水平移動方向ＤＰｎの算出を行い（ループ処理１）、次に、選択ワークＷＳｎの順序でそれぞれ水平移動方向ＤＰｎに水平移動させてから垂直方向に取り出す（ループ処理２）。このようなプログラムとすることによって、予め行われた選択ワークＷＳｎの選択および水平移動方向ＤＰｎの算出の結果を確認したうえで、選択ワークＷＳｎの取り出しを開始することもできる。また、図１１のループ処理１および２を並列に処理してもよい。
【００４１】
なお、ループ処理１では、Ｓ２３において既に水平移動方向を算出したワークを除いた残りのワークの位置・姿勢情報Ｔ［Ｗｋ］を用いて処理を行う。さらに、Ｓ２４においても既に水平移動方向を算出されたワークを除いた残りのワークの位置・姿勢情報Ｔ［Ｗｋ］を用いて処理を行う。
【００４２】
上記実施形態では、ピッキングエリアに搬送されたワーク全体を１つのワーク群（第１の物品群）として処理しているが、これに限定されるものではない。
【００４３】
例えば図１２に示すように、ピッキングエリアに搬送されたワークが比較的分散している場合には、互いに水平移動時の移動量以上離れた３つのワーク群Ｇ１ないしＧ３（第１の物品群）として処理することもできる。この場合、図３または図１３に示した処理をワーク群ごとに行い、１つのワーク群に含まれるすべてのワークを取り出して処理を終了した後、次のワーク群の処理に移行する。このようにピッキングエリアに搬送されたワークを複数のワーク群として扱い、ワーク群ごとに処理することによって、特に、多関節ロボット３が複数のチャック部を備える場合に、次の選択ワークＷＳまでの移動距離を短くすることができる。なお、図１３のワーク群Ｇ２のようにワーク群に１つのワークしか含まれなかった場合には、水平移動させずに垂直方向にワークを取り出しても他のワークと干渉は起こさない。よって、ワーク群に１つのワークしか含まない場合には、当該ワーク群については、水平移動方向ＤＰを算出せず、ワークを水平移動させずに垂直方向に移動して取り出すことができる。
【００４４】
前述したように、ロボット制御装置１において、ワーク全体の重心位置ＣＧから最も離れたワークを選択ワークＷＳとして選択し、近傍ワーク群の重心位置ＣＬから選択ワークＷＳの重心位置ＣＳに向かう方向を水平移動方向ＤＰとして算出し、選択ワークＷＳを水平移動方向ＤＰに所定の移動量だけ移動させてから垂直方向に取り出すことによって、互いに重なり合わないように置かれたワークが完全には分離されていない場合であっても、他のワークと干渉しないように取り出すことができる。したがって、ピッキングエリアに搬送されたワークは、３次元情報ＩＭＧを再取得することなく、多関節ロボット３を用いて１つずつ取り出すことができる。
【００４５】
また、選択ワークＷＳを取り出す度に、当該取り出されたワークを除いて重心位置ＣＧを算出するとともに次の選択ワークＷＳを選択することによって、多関節ロボット３を用いてピッキングエリアからすべてのワークを取り出すことができる。
【００４６】
また、予め選択ワークＷＳｎの選択およびそれに対応する水平移動方向ＤＰｎの算出を行い、選択ワークＷＳｎの順序でそれぞれ水平移動方向ＤＰｎに水平移動させてから垂直方向に取り出すことによって、選択ワークＷＳｎの選択および水平移動方向ＤＰｎの算出の結果を確認したうえで、選択ワークＷＳｎの取り出しを開始することもできる。
【００４７】
また、ピッキングエリアに搬送されたワークを複数のワーク群として扱い、１つのワーク群に含まれるすべてのワークを取り出した後、次のワーク群の処理に移行することによって、特に、多関節ロボット３が複数のチャック部を備える場合に、次の選択ワークＷＳまでの移動距離を短くすることができる。
【００４８】
また、各ワークの重心位置Ｃｋの平均をワーク全体の重心位置ＣＧとして算出することによって、選択ワークＷＳを取り出す度に、当該取り出されたワークを除いた各ワークの重心位置Ｃｋから重心位置ＣＧを算出することができる。
【００４９】
また、３次元（画像）情報ＩＭＧからワーク全体の平面図を求め、当該平面図の重心を重心位置ＣＧとして算出することによって、選択ワークＷＳを取り出す度に、ワーク全体の平面図において取り出されたワークの部分をマスクし、当該マスクされた平面図から重心位置ＣＧを算出することができる。
【００５０】
また、図２に示した物品取り出しシステムにおいて、ホッパ装置４からワーク９を互いに重なり合わないように順次コンベア装置５に排出し、カメラエリアにおいて取得した３次元情報ＩＭＧに基づいて多関節ロボット３を制御することによって、ピッキングエリアに搬送されたワーク９を１つずつ取り出すことができる。
【００５１】
また、ロボット制御装置１の少なくとも認識処理部１１、選択部１３、および移動方向算出部１４に相当する機能をコンピュータに実現させるためのプログラムにおいて、カメラエリアにおいて取得されたワーク全体の３次元情報ＩＭＧに基づいて各ワークを認識して位置・姿勢情報Ｔ［Ｗｋ］を算出することによって、位置・姿勢情報Ｔ［Ｗｋ］に基づいて選択ワークＷＳを選択するとともに水平移動方向ＤＰの算出することができる。
【００５２】
また、ワーク全体の重心位置ＣＧを算出し、重心位置ＣＧから最も離れたワークを選択ワークＷＳとして選択し、近傍ワーク群の重心位置ＣＬを算出し、重心位置ＣＬから選択ワークＷＳの重心位置ＣＳに向かう方向を水平移動方向ＤＰとして算出し、選択ワークＷＳを水平移動方向ＤＰに所定の移動量だけ移動させてから垂直方向に取り出すことによって、互いに重なり合わないように置かれたワークが完全には分離されていない場合であっても、ピッキングエリアに搬送されたワークは、３次元情報ＩＭＧを再取得することなく、多関節ロボット３を用いて１つずつ取り出すことができる。
【００５３】
なお、上記実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物も含まれる。
【符号の説明】
【００５４】
１          ロボット制御装置
２          ステレオカメラ（３次元情報取得装置）
３          多関節ロボット
４          ホッパ装置（ワーク分離装置）
５          コンベア装置
９          ワーク
１１        認識処理部
１２        記憶部
１３        選択部
１４        移動方向算出部
１５        制御部
３１        チャック部
Ｗ１〜Ｗ８  ワーク
【図１】
0005659640.tif 000002
【図２】
0005659640.tif 000003
【図３】
0005659640.tif 000004
【図４】
0005659640.tif 000005
【図５】
0005659640.tif 000006
【図６】
0005659640.tif 000007
【図７】
0005659640.tif 000008
【図８】
0005659640.tif 000009
【図９】
0005659640.tif 000010
【図１０】
0005659640.tif 000011
【図１１】
0005659640.tif 000012
【図１２】
0005659640.tif 000013
【図１３】
0005659640.tif 000014