ロボット制御装置、物品取り出しシステム、プログラムおよびロボットの制御方法
【課題】 互いに重なり合わないように置かれた複数の物品が完全には分離されていない場合であっても、3次元情報を再取得することなく多関節ロボットを用いて取り出す。
【解決手段】 互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出する認識処理部と、複数の物品からなる第1物品群の重心の水平位置を第1重心位置として算出し、第1物品群のうち第1重心位置から最も離れた物品を取り出し対象の物品として選択する選択部と、第1物品群のうち取り出し対象の物品を中心とする領域に含まれる物品からなる第2物品群の重心の水平位置を第2重心位置として算出し、第2重心位置から取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出する移動方向算出部と、取り出し対象の物品を水平移動方向に所定移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部と、を有する。
【解決手段】 互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出する認識処理部と、複数の物品からなる第1物品群の重心の水平位置を第1重心位置として算出し、第1物品群のうち第1重心位置から最も離れた物品を取り出し対象の物品として選択する選択部と、第1物品群のうち取り出し対象の物品を中心とする領域に含まれる物品からなる第2物品群の重心の水平位置を第2重心位置として算出し、第2重心位置から取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出する移動方向算出部と、取り出し対象の物品を水平移動方向に所定移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御装置、物品取り出しシステム、プログラム、およびロボットの制御方法に関する。
【背景技術】
【0002】
近年、工場の製造ラインなどにおいて様々な産業用ロボットが用いられている。特に、(垂直)多関節ロボットは、人間の腕に近い構造をしているため、種々の作業を人間に代わって行うことができる。
例えば、特許文献1では、乱雑に重なり合って置かれた(バラ積みされた)複数の物品(ワーク)から多関節ロボットを用いて1つずつ取り出す(ピッキングする)ことができる物品取り出し装置(バラ積みピッキング装置)が開示されている。このようなピッキング装置は、ワークの認識処理プログラムや多関節ロボットの制御プログラムなどによって様々なワークに対応することができる。そのため、ワークごとに対応するパーツフィーダを用いる場合に比べて、限られたスペースで多種のワークを扱う製造ラインなどに好適である。
【0003】
また、特許文献1のピッキング装置では、1つのワークを取り出した後、まず画像データ(2次元情報)のみを取得し、取り出し前後の画像データを比較することによって、位置および姿勢の変化が許容範囲内のワークの有無を判断している。そして、このような判断をすることによって、時間がかかる距離データ(3次元情報)の取得の回数を減らし、ピッキング時間を短縮している。
一方、例えば特許文献2に開示されているホッパ装置(ワーク分離装置)を用いることによって、ワークを取り出すための多関節ロボットの制御の容易化を図ることもできる。すなわち、ホッパ装置を用いて互いに重なり合わないようにワーク同士を分離することによって、1つのワークの取り出し前後で他のワークの位置および姿勢が変化しないようにすることができる。したがって、3次元情報を再取得することなく、各ワークを垂直方向にそのまま取り出すことができるようになる。
このようにして、多関節ロボットを用いて、複数のワークから1つずつ取り出すことができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−120141号公報
【特許文献2】特開平10−29720号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1のピッキング装置では、ワークを取り出す度に2次元情報を再取得している。さらに、許容範囲内のワークが存在しない場合には、3次元情報を再取得する必要がある。しかしながら、例えば図13に示すように、カメラエリアにおいてワーク9の2次元情報や3次元情報の取得を行った後、コンベア装置5を用いてワーク9を搬送し、ピッキングエリアにおいてワーク9の取り出しを行う場合には、情報を再取得することができない。そのため、カメラエリアとピッキングエリアとが異なる製造ラインなどには、特許文献1のピッキング装置を適用することができない。
【0006】
また、ホッパ装置を用いる場合であっても、ワーク同士を完全には分離することができず、互いに隣接している場合がある。この場合、ワークを垂直方向にそのまま取り出すと、隣接している他のワークの位置および姿勢を変化させてしまう可能性がある。
さらに、例えば図13に示すように、ワーク9が凹凸を有する形状である場合には、ワーク9同士が互いに重なり合っていなくても、垂直方向からは重なって見える場合もある。この場合、AないしEの符号を付けたワーク9(以下、ワークAないしEと称する)のうち、ワークC以外を垂直方向にそのまま取り出すと、他のワークと干渉して位置および姿勢を変化させてしまう。
そのため、ワーク同士が完全には分離されていない場合には、1つのワークの取り出し前後で他のワークの位置および姿勢が変化し、特許文献1のピッキング装置の場合と同様に、3次元情報の再取得が必要となる場合もある。
【課題を解決するための手段】
【0007】
前述した課題を解決する主たる本発明は、互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出する認識処理部と、前記複数の物品からなる第1の物品群の重心の水平位置を第1の重心位置として算出し、前記第1の物品群のうち前記第1の重心位置から最も離れた物品を取り出し対象の物品として選択する選択部と、前記第1の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第2の物品群の重心の水平位置を第2の重心位置として算出し、前記第2の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出する移動方向算出部と、前記取り出し対象の物品を前記水平移動方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部と、を有することを特徴とするロボット制御装置である。
【0008】
本発明の他の特徴については、添付図面及び本明細書の記載により明らかとなる。
【発明の効果】
【0009】
本発明によれば、互いに重なり合わないように置かれた複数の物品が完全には分離されていない場合であっても、3次元情報を再取得することなく多関節ロボットを用いて取り出すことができる。
【図面の簡単な説明】
【0010】
【図1】本発明の一実施形態におけるロボット制御装置の構成を示すブロック図である。
【図2】本発明の一実施形態におけるロボット制御装置を備えた物品取り出しシステム全体の構成の概略を示すブロック図である。
【図3】認識処理部11、選択部13、移動方向算出部14、および制御部15の機能をコンピュータに実現させるためのプログラムの動作を説明するフローチャートである。
【図4】ピッキングエリアに搬送されたワークの配置の一例を示す図である。
【図5】図4に示したワークの配置からワーク全体の重心位置CGを算出し、取り出し対象のワークWSを選択する方法を説明する図である。
【図6】ワークW1の近傍ワーク群の重心位置CLを算出する方法を説明する図である。
【図7】ワークW1の水平移動方向DPを算出する方法を説明する図である。
【図8】ワークW1を取り出した後、ワーク全体の重心位置CGを算出し、取り出し対象のワークWSを選択する方法を説明する図である。
【図9】ワークW4の近傍ワーク群の重心位置CLを算出する方法を説明する図である。
【図10】ワークW4の水平移動方向DPを算出する方法を説明する図である。
【図11】認識処理部11、選択部13、移動方向算出部14、および制御部15の機能をコンピュータに実現させるための他のプログラムの動作を説明するフローチャートである。
【図12】ピッキングエリアに搬送されたワークを複数のワーク群として扱う場合の配置の一例を示す図である。
【図13】垂直方向にそのまま取り出すと干渉が発生するワークの配置の一例を示す図である。
【発明を実施するための形態】
【0011】
本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。
【0012】
===物品取り出しシステム全体の構成の概略===
以下、図2を参照して、後述する本発明の一実施形態におけるロボット制御装置を備えた物品取り出しシステム全体の構成の概略について説明する。
図2に示されている物品取り出しシステムは、ロボット制御装置1、ステレオカメラ2、多関節ロボット3、ホッパ装置4、およびコンベア装置5を含んで構成されている。なお、図2において、コンベア装置5の搬送方向は右方向であり、図2以外の図においても同様である。
【0013】
ステレオカメラ2は、コンベア装置5の相対的に上流側(図2において左側)に位置するカメラエリアの上方に配置されている。また、ステレオカメラ2から出力される3次元情報IMGは、ロボット制御装置1に入力されている。さらに、ロボット制御装置1から出力される制御信号CNTは、多関節ロボット3に入力されている。
多関節ロボット3は、先端部にチャック部31を備えている。また、多関節ロボット3は、コンベア装置5の相対的に下流側(図2において右側)に位置するピッキングエリアにチャック部31を移動させることができるように配置されている。
【0014】
なお、カメラエリアは、サイズがピッキングエリアと同一であるか、またはピッキングエリアより大きい。また、カメラエリアとピッキングエリアとは、一部が重複するように、または少なくとも互いに隣接するように配置されている。図2においては、両エリアは、同一サイズであり、互いに隣接するように配置されている。
ホッパ装置4は、コンベア装置5の最上流側に配置されている。また、ホッパ装置4からは、ワーク9がコンベア装置5に排出されている。
【0015】
===物品取り出しシステム全体の動作の概略===
以下、物品取り出しシステム全体の動作の概略について説明する。
ホッパ装置4は、コンベア装置5の搬送動作に同期して、ワーク9を互いに重なり合わないように順次コンベア装置5に排出する。また、コンベア装置5は、ワーク9を搬送し、所定の長さ分だけ搬送するごとに一旦停止する。なお、当該所定の長さは、ワーク9がカメラエリアに搬送されて停止した後、ピッキングエリアに搬送されて停止するように設定される。前述したように、カメラエリアとピッキングエリアとが同一サイズであり、互いに隣接するように配置されている場合には、当該所定の長さは、各エリアの搬送方向の長さとなる。
一方、ロボット制御装置1、ステレオカメラ2、および多関節ロボット3は、上記コンベア装置5の停止中に動作する。
【0016】
ステレオカメラ2は、3次元情報取得装置に相当し、カメラエリアにあるワーク9を撮影し、3次元情報IMGを出力する。また、ロボット制御装置1は、現在ピッキングエリアにあるワーク9のカメラエリアにおける撮影時、すなわち、前回のコンベア装置5の停止中に取得された3次元情報IMGに基づいて制御信号CNTを出力する。そして、多関節ロボット3は、制御信号CNTに応じて制御され、ピッキングエリアにあるワーク9をチャック部31によって把持して1つずつ取り出す。
【0017】
このようにして、カメラエリアにおいて取得した3次元情報IMGに基づいて多関節ロボット3を制御し、ピッキングエリアに搬送されたワーク9を1つずつ取り出すことができる。また、ピッキングエリアにあるワーク9がすべて取り出されると、コンベア装置5は、再び所定の長さ分だけワーク9を搬送する。なお、ステレオカメラ2の代わりに、例えば特許文献1のピッキング装置と同様に、カメラおよびレーザスキャナを用いて3次元情報を取得してもよい。
【0018】
===ロボット制御装置の構成===
以下、図1を参照して、本発明の一実施形態におけるロボット制御装置の構成について説明する。なお、以下の説明においては、各ワークをWk(kは自然数)の符号を付けて表すこととする。
図1に示されているロボット制御装置1は、認識処理部11、記憶部12、選択部13、移動方向算出部14、および制御部15を含んで構成されている。
【0019】
認識処理部11には、3次元情報IMGが入力され、認識処理部11から出力される位置・姿勢情報T[Wk]は、記憶部12に入力されている。また、選択部13には、記憶部12から出力される重心位置Ckが入力され、選択部13からは、重心位置CGおよび選択ワークWSが出力されている。さらに、移動方向算出部14には、重心位置Ck、重心位置CG、および選択ワークWSが入力され、移動方向算出部14からは、水平移動方向DPが出力されている。そして、制御部15には、選択ワークWS、水平移動方向DP、および記憶部12から出力される位置・姿勢情報T[WS]が入力され、制御部15からは、制御信号CNTが出力されている。
【0020】
===ロボット制御装置の動作===
以下、図3ないし図10を適宜参照して、本実施形態におけるロボット制御装置の動作について説明する。なお、以下においては、一例として、カメラエリアにおいて8個のワークW1ないしW8の3次元情報IMGが取得されてロボット制御装置1に入力されるとともに、当該ワークW1ないしW8がピッキングエリアに搬送された場合について説明する。
【0021】
ロボット制御装置1のうち、認識処理部11、選択部13、移動方向算出部14、および制御部15の機能は、例えば、記憶部12を備えるコンピュータによって実現することができる。図3は、認識処理部11、選択部13、移動方向算出部14、および制御部15に相当する機能をコンピュータに実現させるためのプログラムの動作を示している。
【0022】
ワークW1ないしW8全体の3次元情報IMGが入力され、プログラムの処理が開始されると(S11)、まず、位置・姿勢認識処理を行い、各ワークの位置・姿勢情報T[Wk](1≦k≦8)を算出する(S12)。具体的には、例えば、3次元(画像)情報IMGからエッジを抽出し、1つのワークの3次元情報(3D−CADデータなど)とのマッチングを行うことによって、各ワークを認識して位置・姿勢情報T[Wk]を算出する。したがって、当該S12の処理は、認識処理部11に相当する機能を実現する。なお、位置・姿勢情報T[Wk]は、記憶部12に記憶され、適宜読み出される。
【0023】
ここで、ピッキングエリアに搬送されたワークW1ないしW8の配置の一例を図4に示す。図4において、重心位置C1ないしC8は、それぞれワークW1ないしW8の重心の水平位置を示している。なお、位置・姿勢情報T[Wk]が各ワークの位置として、その重心の位置を示している場合には、位置・姿勢情報T[Wk]から垂直位置を省略して重心位置Ckを直接求めることができる。また、それ以外の場合には、位置・姿勢情報T[Wk]が示す各ワークの位置を原点とする相対座標を用いて、重心位置Ckを算出することができる。以下、当該配置からワークを取り出す場合の動作について説明する。
【0024】
まず、1つ目のワークを取り出す場合、n=1としてS13からS18までのループ処理を行う。当該ループ処理においては、まず、ワークW1ないしW8全体(第1の物品群)の重心の水平位置を重心位置CG(第1の重心位置)として算出する(S13)。具体的には、例えば、各ワークの重心位置Ckの平均を重心位置CGとして算出することができる。また、例えば、3次元(画像)情報IMGからワークW1ないしW8の平面図(水平面への正射影)を求め、当該平面図の重心を重心位置CGとして算出してもよい。
【0025】
さらに、図5に示すように、ワークW1ないしW8のうち重心位置CGから最も離れたワークを取り出し対象(選択ワークWS)として選択する(S14)。したがって、S13およびS14の処理は、選択部13に相当する機能を実現する。なお、図5においては、ワークW1が選択ワークWSとして選択され、選択ワークWS(ワークW1)の重心位置C1をCSと表している。
【0026】
次に、選択ワークWSを中心とする領域を近傍エリアとして設定し、ワークW1ないしW8のうち当該近傍エリアに含まれるワークからなる近傍ワーク群(第2の物品群)の重心の水平位置を重心位置CL(第2の重心位置)として算出する(S15)。具体的には、例えば図6に示すように、選択ワークWS(ワークW1)からワーク1つ分以内の領域を近傍エリアとして設定し、ワークW1、W2、およびW4の重心位置Ckの平均を重心位置CLとして算出することができる。
【0027】
さらに、図7に示すように、重心位置CLから重心位置CSに向かう方向を水平移動方向DPとして算出する(S16)。したがって、S15およびS16の処理は、移動方向算出部14に相当する機能を実現する。
【0028】
最後に、選択ワークWSの位置・姿勢情報T[WS]および水平移動方向DPに基づいて制御信号CNTを出力し、選択ワークWSを水平移動方向DPに所定の移動量だけ移動させてから(S17)、垂直方向に取り出すように多関節ロボット3を制御する(S18)。したがって、S17およびS18の処理は、制御部15に相当する機能を実現する。なお、図7においては、所定の移動量をワーク1つ分としている。
【0029】
以上のように、ロボット制御装置1は、重心位置CGから最も離れた(最外周に位置する)ワークW1を1つ目の取り出し対象(選択ワークWS)として選択し、当該ワークW1を水平移動方向DPにワーク1つ分だけ水平移動させてから垂直方向に取り出す。ここで、近傍ワーク群の重心位置CLから選択ワークWSの重心位置CSに向かう方向を水平移動方向DPとすることによって、水平移動時における他のワークとの干渉を防止している。また、水平移動方向DPにワーク1つ分だけ水平移動させてから垂直方向に取り出すことによって、垂直移動時における他のワークとの干渉を防止している。
【0030】
なお、ワークの配置および近傍エリアの設定によっては、選択ワークWSのみが近傍エリアに含まれ、重心位置CLから重心位置CSに向かう水平移動方向DPを算出することができない場合もあり得る。この場合、水平移動させずに垂直方向に取り出しても他のワークと干渉することはない。よって、例えば、水平移動方向DPを算出せず、水平方向に移動させずに垂直方向に取り出す。勿論、選択ワークWS以外のワークを少なくとも1つ含むように近傍エリアを設定し、水平移動方向DPを算出してもよい。また、選択ワークWSから水平移動時の移動量以上の半径を持つ円領域を近傍エリアとして設定することによって、水平移動方向DPを算出することができない場合に、選択ワークWSをいずれの方向に水平移動させても他のワークとの干渉は発生しないため、所定の水平移動方向DPを設定してもよい。
【0031】
さらに、水平移動時の移動量は、ワークの形状によらずワーク1つ分で十分であるが、ワーク1つ分以下とすることもできる。例えば、図13に示したワーク9の場合には、ワーク1/2個分だけ水平移動させることによって、干渉を防止することができる。
【0032】
1つ目のワークW1を取り出した後には、n=2としてS13からS18までのループ処理を行う。当該ループ処理においては、まず、取り出されたワークW1を除いた、ワークW2ないしW8全体(第1の物品群)の重心の水平位置を重心位置CG(第1の重心位置)として算出する(S13)。したがって、ワークW2ないしW8の重心位置Ckの平均を重心位置CGとして算出することができる。また、ワークW1ないしW8の平面図においてワークW1の部分をマスクし、当該マスクされた平面図の重心を重心位置CGとして算出してもよい。
【0033】
さらに、図8に示すように、ワークW2ないしW8のうち重心位置CGから最も離れたワークを取り出し対象(選択ワークWS)として選択する(S14)。なお、図8においては、ワークW4が選択ワークWSとして選択され、選択ワークWS(ワークW4)の重心位置C4をCSと表している。
【0034】
次に、選択ワークWSを中心とする領域を近傍エリアとして設定し、ワークW2ないしW8のうち当該近傍エリアに含まれるワークからなる近傍ワーク群(第2の物品群)の重心の水平位置を重心位置CL(第2の重心位置)として算出する(S15)。具体的には、例えば図9に示すように、選択ワークWS(ワークW4)からワーク1つ分以内の領域を近傍エリアとして設定し、ワークW4およびW2の重心位置Ckの平均を重心位置CLとして算出することができる。さらに、図10に示すように、重心位置CLから重心位置CSに向かう方向を水平移動方向DPとして算出する(S16)。
【0035】
最後に、選択ワークWSの位置・姿勢情報T[WS]および水平移動方向DPに基づいて制御信号CNTを出力し、選択ワークWSを水平移動方向DPに所定の移動量だけ移動させてから(S17)、垂直方向に取り出すように多関節ロボット3を制御する(S18)。
【0036】
以下同様に、ロボット制御装置1は、選択ワークWSを取り出す度に、当該取り出されたワークを除いて重心位置CGを算出するとともに次の選択ワークWSを選択する。そして、S13からS18までのループ処理を8回行うことによって、ワークW1ないしW8をすべて取り出すことができ、処理を終了する(S19)。
【0037】
このようにして、互いに重なり合わないようにホッパ装置4から排出され、ピッキングエリアに搬送されたワークW1ないしW8が完全には分離されていない場合であっても、他のワークと干渉しないように1つずつ取り出すことができる。したがって、3次元情報IMGを再取得することなく、多関節ロボット3を用いてピッキングエリアからすべてのワークを取り出すことができる。
【0038】
===ロボット制御装置の他のプログラム===
上記実施形態では、ロボット制御装置1の機能は、記憶部12を備えるコンピュータによって実現されているが、これに限定されるものではない。ロボット制御装置1のうち、制御部15には、公知の実装方法を用いることができるため、記憶部12および制御部15を備えるコンピュータに、図3のS17およびS18の処理を行わないプログラムを搭載してもよい。
【0039】
上記実施形態では、ロボット制御装置1は、ワークW1ないしW8から1つずつ選択ワークWSを選択して、その都度当該選択ワークWSを取り出しているが、これに限定されるものではない。
【0040】
例えば図11に示すように、図3のS13ないしS16に相当するループ処理を8回行った後に、多関節ロボット3の制御を行うプログラムを搭載してもよい。この場合、まず、n番目(1≦n≦8)の選択ワークWSnの選択およびそれに対応する水平移動方向DPnの算出を行い(ループ処理1)、次に、選択ワークWSnの順序でそれぞれ水平移動方向DPnに水平移動させてから垂直方向に取り出す(ループ処理2)。このようなプログラムとすることによって、予め行われた選択ワークWSnの選択および水平移動方向DPnの算出の結果を確認したうえで、選択ワークWSnの取り出しを開始することもできる。また、図11のループ処理1および2を並列に処理してもよい。
【0041】
なお、ループ処理1では、S23において既に水平移動方向を算出したワークを除いた残りのワークの位置・姿勢情報T[Wk]を用いて処理を行う。さらに、S24においても既に水平移動方向を算出されたワークを除いた残りのワークの位置・姿勢情報T[Wk]を用いて処理を行う。
【0042】
上記実施形態では、ピッキングエリアに搬送されたワーク全体を1つのワーク群(第1の物品群)として処理しているが、これに限定されるものではない。
【0043】
例えば図12に示すように、ピッキングエリアに搬送されたワークが比較的分散している場合には、互いに水平移動時の移動量以上離れた3つのワーク群G1ないしG3(第1の物品群)として処理することもできる。この場合、図3または図13に示した処理をワーク群ごとに行い、1つのワーク群に含まれるすべてのワークを取り出して処理を終了した後、次のワーク群の処理に移行する。このようにピッキングエリアに搬送されたワークを複数のワーク群として扱い、ワーク群ごとに処理することによって、特に、多関節ロボット3が複数のチャック部を備える場合に、次の選択ワークWSまでの移動距離を短くすることができる。なお、図13のワーク群G2のようにワーク群に1つのワークしか含まれなかった場合には、水平移動させずに垂直方向にワークを取り出しても他のワークと干渉は起こさない。よって、ワーク群に1つのワークしか含まない場合には、当該ワーク群については、水平移動方向DPを算出せず、ワークを水平移動させずに垂直方向に移動して取り出すことができる。
【0044】
前述したように、ロボット制御装置1において、ワーク全体の重心位置CGから最も離れたワークを選択ワークWSとして選択し、近傍ワーク群の重心位置CLから選択ワークWSの重心位置CSに向かう方向を水平移動方向DPとして算出し、選択ワークWSを水平移動方向DPに所定の移動量だけ移動させてから垂直方向に取り出すことによって、互いに重なり合わないように置かれたワークが完全には分離されていない場合であっても、他のワークと干渉しないように取り出すことができる。したがって、ピッキングエリアに搬送されたワークは、3次元情報IMGを再取得することなく、多関節ロボット3を用いて1つずつ取り出すことができる。
【0045】
また、選択ワークWSを取り出す度に、当該取り出されたワークを除いて重心位置CGを算出するとともに次の選択ワークWSを選択することによって、多関節ロボット3を用いてピッキングエリアからすべてのワークを取り出すことができる。
【0046】
また、予め選択ワークWSnの選択およびそれに対応する水平移動方向DPnの算出を行い、選択ワークWSnの順序でそれぞれ水平移動方向DPnに水平移動させてから垂直方向に取り出すことによって、選択ワークWSnの選択および水平移動方向DPnの算出の結果を確認したうえで、選択ワークWSnの取り出しを開始することもできる。
【0047】
また、ピッキングエリアに搬送されたワークを複数のワーク群として扱い、1つのワーク群に含まれるすべてのワークを取り出した後、次のワーク群の処理に移行することによって、特に、多関節ロボット3が複数のチャック部を備える場合に、次の選択ワークWSまでの移動距離を短くすることができる。
【0048】
また、各ワークの重心位置Ckの平均をワーク全体の重心位置CGとして算出することによって、選択ワークWSを取り出す度に、当該取り出されたワークを除いた各ワークの重心位置Ckから重心位置CGを算出することができる。
【0049】
また、3次元(画像)情報IMGからワーク全体の平面図を求め、当該平面図の重心を重心位置CGとして算出することによって、選択ワークWSを取り出す度に、ワーク全体の平面図において取り出されたワークの部分をマスクし、当該マスクされた平面図から重心位置CGを算出することができる。
【0050】
また、図2に示した物品取り出しシステムにおいて、ホッパ装置4からワーク9を互いに重なり合わないように順次コンベア装置5に排出し、カメラエリアにおいて取得した3次元情報IMGに基づいて多関節ロボット3を制御することによって、ピッキングエリアに搬送されたワーク9を1つずつ取り出すことができる。
【0051】
また、ロボット制御装置1の少なくとも認識処理部11、選択部13、および移動方向算出部14に相当する機能をコンピュータに実現させるためのプログラムにおいて、カメラエリアにおいて取得されたワーク全体の3次元情報IMGに基づいて各ワークを認識して位置・姿勢情報T[Wk]を算出することによって、位置・姿勢情報T[Wk]に基づいて選択ワークWSを選択するとともに水平移動方向DPの算出することができる。
【0052】
また、ワーク全体の重心位置CGを算出し、重心位置CGから最も離れたワークを選択ワークWSとして選択し、近傍ワーク群の重心位置CLを算出し、重心位置CLから選択ワークWSの重心位置CSに向かう方向を水平移動方向DPとして算出し、選択ワークWSを水平移動方向DPに所定の移動量だけ移動させてから垂直方向に取り出すことによって、互いに重なり合わないように置かれたワークが完全には分離されていない場合であっても、ピッキングエリアに搬送されたワークは、3次元情報IMGを再取得することなく、多関節ロボット3を用いて1つずつ取り出すことができる。
【0053】
なお、上記実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物も含まれる。
【符号の説明】
【0054】
1 ロボット制御装置
2 ステレオカメラ(3次元情報取得装置)
3 多関節ロボット
4 ホッパ装置(ワーク分離装置)
5 コンベア装置
9 ワーク
11 認識処理部
12 記憶部
13 選択部
14 移動方向算出部
15 制御部
31 チャック部
W1〜W8 ワーク
【技術分野】
【0001】
本発明は、ロボット制御装置、物品取り出しシステム、プログラム、およびロボットの制御方法に関する。
【背景技術】
【0002】
近年、工場の製造ラインなどにおいて様々な産業用ロボットが用いられている。特に、(垂直)多関節ロボットは、人間の腕に近い構造をしているため、種々の作業を人間に代わって行うことができる。
例えば、特許文献1では、乱雑に重なり合って置かれた(バラ積みされた)複数の物品(ワーク)から多関節ロボットを用いて1つずつ取り出す(ピッキングする)ことができる物品取り出し装置(バラ積みピッキング装置)が開示されている。このようなピッキング装置は、ワークの認識処理プログラムや多関節ロボットの制御プログラムなどによって様々なワークに対応することができる。そのため、ワークごとに対応するパーツフィーダを用いる場合に比べて、限られたスペースで多種のワークを扱う製造ラインなどに好適である。
【0003】
また、特許文献1のピッキング装置では、1つのワークを取り出した後、まず画像データ(2次元情報)のみを取得し、取り出し前後の画像データを比較することによって、位置および姿勢の変化が許容範囲内のワークの有無を判断している。そして、このような判断をすることによって、時間がかかる距離データ(3次元情報)の取得の回数を減らし、ピッキング時間を短縮している。
一方、例えば特許文献2に開示されているホッパ装置(ワーク分離装置)を用いることによって、ワークを取り出すための多関節ロボットの制御の容易化を図ることもできる。すなわち、ホッパ装置を用いて互いに重なり合わないようにワーク同士を分離することによって、1つのワークの取り出し前後で他のワークの位置および姿勢が変化しないようにすることができる。したがって、3次元情報を再取得することなく、各ワークを垂直方向にそのまま取り出すことができるようになる。
このようにして、多関節ロボットを用いて、複数のワークから1つずつ取り出すことができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−120141号公報
【特許文献2】特開平10−29720号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1のピッキング装置では、ワークを取り出す度に2次元情報を再取得している。さらに、許容範囲内のワークが存在しない場合には、3次元情報を再取得する必要がある。しかしながら、例えば図13に示すように、カメラエリアにおいてワーク9の2次元情報や3次元情報の取得を行った後、コンベア装置5を用いてワーク9を搬送し、ピッキングエリアにおいてワーク9の取り出しを行う場合には、情報を再取得することができない。そのため、カメラエリアとピッキングエリアとが異なる製造ラインなどには、特許文献1のピッキング装置を適用することができない。
【0006】
また、ホッパ装置を用いる場合であっても、ワーク同士を完全には分離することができず、互いに隣接している場合がある。この場合、ワークを垂直方向にそのまま取り出すと、隣接している他のワークの位置および姿勢を変化させてしまう可能性がある。
さらに、例えば図13に示すように、ワーク9が凹凸を有する形状である場合には、ワーク9同士が互いに重なり合っていなくても、垂直方向からは重なって見える場合もある。この場合、AないしEの符号を付けたワーク9(以下、ワークAないしEと称する)のうち、ワークC以外を垂直方向にそのまま取り出すと、他のワークと干渉して位置および姿勢を変化させてしまう。
そのため、ワーク同士が完全には分離されていない場合には、1つのワークの取り出し前後で他のワークの位置および姿勢が変化し、特許文献1のピッキング装置の場合と同様に、3次元情報の再取得が必要となる場合もある。
【課題を解決するための手段】
【0007】
前述した課題を解決する主たる本発明は、互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出する認識処理部と、前記複数の物品からなる第1の物品群の重心の水平位置を第1の重心位置として算出し、前記第1の物品群のうち前記第1の重心位置から最も離れた物品を取り出し対象の物品として選択する選択部と、前記第1の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第2の物品群の重心の水平位置を第2の重心位置として算出し、前記第2の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出する移動方向算出部と、前記取り出し対象の物品を前記水平移動方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部と、を有することを特徴とするロボット制御装置である。
【0008】
本発明の他の特徴については、添付図面及び本明細書の記載により明らかとなる。
【発明の効果】
【0009】
本発明によれば、互いに重なり合わないように置かれた複数の物品が完全には分離されていない場合であっても、3次元情報を再取得することなく多関節ロボットを用いて取り出すことができる。
【図面の簡単な説明】
【0010】
【図1】本発明の一実施形態におけるロボット制御装置の構成を示すブロック図である。
【図2】本発明の一実施形態におけるロボット制御装置を備えた物品取り出しシステム全体の構成の概略を示すブロック図である。
【図3】認識処理部11、選択部13、移動方向算出部14、および制御部15の機能をコンピュータに実現させるためのプログラムの動作を説明するフローチャートである。
【図4】ピッキングエリアに搬送されたワークの配置の一例を示す図である。
【図5】図4に示したワークの配置からワーク全体の重心位置CGを算出し、取り出し対象のワークWSを選択する方法を説明する図である。
【図6】ワークW1の近傍ワーク群の重心位置CLを算出する方法を説明する図である。
【図7】ワークW1の水平移動方向DPを算出する方法を説明する図である。
【図8】ワークW1を取り出した後、ワーク全体の重心位置CGを算出し、取り出し対象のワークWSを選択する方法を説明する図である。
【図9】ワークW4の近傍ワーク群の重心位置CLを算出する方法を説明する図である。
【図10】ワークW4の水平移動方向DPを算出する方法を説明する図である。
【図11】認識処理部11、選択部13、移動方向算出部14、および制御部15の機能をコンピュータに実現させるための他のプログラムの動作を説明するフローチャートである。
【図12】ピッキングエリアに搬送されたワークを複数のワーク群として扱う場合の配置の一例を示す図である。
【図13】垂直方向にそのまま取り出すと干渉が発生するワークの配置の一例を示す図である。
【発明を実施するための形態】
【0011】
本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。
【0012】
===物品取り出しシステム全体の構成の概略===
以下、図2を参照して、後述する本発明の一実施形態におけるロボット制御装置を備えた物品取り出しシステム全体の構成の概略について説明する。
図2に示されている物品取り出しシステムは、ロボット制御装置1、ステレオカメラ2、多関節ロボット3、ホッパ装置4、およびコンベア装置5を含んで構成されている。なお、図2において、コンベア装置5の搬送方向は右方向であり、図2以外の図においても同様である。
【0013】
ステレオカメラ2は、コンベア装置5の相対的に上流側(図2において左側)に位置するカメラエリアの上方に配置されている。また、ステレオカメラ2から出力される3次元情報IMGは、ロボット制御装置1に入力されている。さらに、ロボット制御装置1から出力される制御信号CNTは、多関節ロボット3に入力されている。
多関節ロボット3は、先端部にチャック部31を備えている。また、多関節ロボット3は、コンベア装置5の相対的に下流側(図2において右側)に位置するピッキングエリアにチャック部31を移動させることができるように配置されている。
【0014】
なお、カメラエリアは、サイズがピッキングエリアと同一であるか、またはピッキングエリアより大きい。また、カメラエリアとピッキングエリアとは、一部が重複するように、または少なくとも互いに隣接するように配置されている。図2においては、両エリアは、同一サイズであり、互いに隣接するように配置されている。
ホッパ装置4は、コンベア装置5の最上流側に配置されている。また、ホッパ装置4からは、ワーク9がコンベア装置5に排出されている。
【0015】
===物品取り出しシステム全体の動作の概略===
以下、物品取り出しシステム全体の動作の概略について説明する。
ホッパ装置4は、コンベア装置5の搬送動作に同期して、ワーク9を互いに重なり合わないように順次コンベア装置5に排出する。また、コンベア装置5は、ワーク9を搬送し、所定の長さ分だけ搬送するごとに一旦停止する。なお、当該所定の長さは、ワーク9がカメラエリアに搬送されて停止した後、ピッキングエリアに搬送されて停止するように設定される。前述したように、カメラエリアとピッキングエリアとが同一サイズであり、互いに隣接するように配置されている場合には、当該所定の長さは、各エリアの搬送方向の長さとなる。
一方、ロボット制御装置1、ステレオカメラ2、および多関節ロボット3は、上記コンベア装置5の停止中に動作する。
【0016】
ステレオカメラ2は、3次元情報取得装置に相当し、カメラエリアにあるワーク9を撮影し、3次元情報IMGを出力する。また、ロボット制御装置1は、現在ピッキングエリアにあるワーク9のカメラエリアにおける撮影時、すなわち、前回のコンベア装置5の停止中に取得された3次元情報IMGに基づいて制御信号CNTを出力する。そして、多関節ロボット3は、制御信号CNTに応じて制御され、ピッキングエリアにあるワーク9をチャック部31によって把持して1つずつ取り出す。
【0017】
このようにして、カメラエリアにおいて取得した3次元情報IMGに基づいて多関節ロボット3を制御し、ピッキングエリアに搬送されたワーク9を1つずつ取り出すことができる。また、ピッキングエリアにあるワーク9がすべて取り出されると、コンベア装置5は、再び所定の長さ分だけワーク9を搬送する。なお、ステレオカメラ2の代わりに、例えば特許文献1のピッキング装置と同様に、カメラおよびレーザスキャナを用いて3次元情報を取得してもよい。
【0018】
===ロボット制御装置の構成===
以下、図1を参照して、本発明の一実施形態におけるロボット制御装置の構成について説明する。なお、以下の説明においては、各ワークをWk(kは自然数)の符号を付けて表すこととする。
図1に示されているロボット制御装置1は、認識処理部11、記憶部12、選択部13、移動方向算出部14、および制御部15を含んで構成されている。
【0019】
認識処理部11には、3次元情報IMGが入力され、認識処理部11から出力される位置・姿勢情報T[Wk]は、記憶部12に入力されている。また、選択部13には、記憶部12から出力される重心位置Ckが入力され、選択部13からは、重心位置CGおよび選択ワークWSが出力されている。さらに、移動方向算出部14には、重心位置Ck、重心位置CG、および選択ワークWSが入力され、移動方向算出部14からは、水平移動方向DPが出力されている。そして、制御部15には、選択ワークWS、水平移動方向DP、および記憶部12から出力される位置・姿勢情報T[WS]が入力され、制御部15からは、制御信号CNTが出力されている。
【0020】
===ロボット制御装置の動作===
以下、図3ないし図10を適宜参照して、本実施形態におけるロボット制御装置の動作について説明する。なお、以下においては、一例として、カメラエリアにおいて8個のワークW1ないしW8の3次元情報IMGが取得されてロボット制御装置1に入力されるとともに、当該ワークW1ないしW8がピッキングエリアに搬送された場合について説明する。
【0021】
ロボット制御装置1のうち、認識処理部11、選択部13、移動方向算出部14、および制御部15の機能は、例えば、記憶部12を備えるコンピュータによって実現することができる。図3は、認識処理部11、選択部13、移動方向算出部14、および制御部15に相当する機能をコンピュータに実現させるためのプログラムの動作を示している。
【0022】
ワークW1ないしW8全体の3次元情報IMGが入力され、プログラムの処理が開始されると(S11)、まず、位置・姿勢認識処理を行い、各ワークの位置・姿勢情報T[Wk](1≦k≦8)を算出する(S12)。具体的には、例えば、3次元(画像)情報IMGからエッジを抽出し、1つのワークの3次元情報(3D−CADデータなど)とのマッチングを行うことによって、各ワークを認識して位置・姿勢情報T[Wk]を算出する。したがって、当該S12の処理は、認識処理部11に相当する機能を実現する。なお、位置・姿勢情報T[Wk]は、記憶部12に記憶され、適宜読み出される。
【0023】
ここで、ピッキングエリアに搬送されたワークW1ないしW8の配置の一例を図4に示す。図4において、重心位置C1ないしC8は、それぞれワークW1ないしW8の重心の水平位置を示している。なお、位置・姿勢情報T[Wk]が各ワークの位置として、その重心の位置を示している場合には、位置・姿勢情報T[Wk]から垂直位置を省略して重心位置Ckを直接求めることができる。また、それ以外の場合には、位置・姿勢情報T[Wk]が示す各ワークの位置を原点とする相対座標を用いて、重心位置Ckを算出することができる。以下、当該配置からワークを取り出す場合の動作について説明する。
【0024】
まず、1つ目のワークを取り出す場合、n=1としてS13からS18までのループ処理を行う。当該ループ処理においては、まず、ワークW1ないしW8全体(第1の物品群)の重心の水平位置を重心位置CG(第1の重心位置)として算出する(S13)。具体的には、例えば、各ワークの重心位置Ckの平均を重心位置CGとして算出することができる。また、例えば、3次元(画像)情報IMGからワークW1ないしW8の平面図(水平面への正射影)を求め、当該平面図の重心を重心位置CGとして算出してもよい。
【0025】
さらに、図5に示すように、ワークW1ないしW8のうち重心位置CGから最も離れたワークを取り出し対象(選択ワークWS)として選択する(S14)。したがって、S13およびS14の処理は、選択部13に相当する機能を実現する。なお、図5においては、ワークW1が選択ワークWSとして選択され、選択ワークWS(ワークW1)の重心位置C1をCSと表している。
【0026】
次に、選択ワークWSを中心とする領域を近傍エリアとして設定し、ワークW1ないしW8のうち当該近傍エリアに含まれるワークからなる近傍ワーク群(第2の物品群)の重心の水平位置を重心位置CL(第2の重心位置)として算出する(S15)。具体的には、例えば図6に示すように、選択ワークWS(ワークW1)からワーク1つ分以内の領域を近傍エリアとして設定し、ワークW1、W2、およびW4の重心位置Ckの平均を重心位置CLとして算出することができる。
【0027】
さらに、図7に示すように、重心位置CLから重心位置CSに向かう方向を水平移動方向DPとして算出する(S16)。したがって、S15およびS16の処理は、移動方向算出部14に相当する機能を実現する。
【0028】
最後に、選択ワークWSの位置・姿勢情報T[WS]および水平移動方向DPに基づいて制御信号CNTを出力し、選択ワークWSを水平移動方向DPに所定の移動量だけ移動させてから(S17)、垂直方向に取り出すように多関節ロボット3を制御する(S18)。したがって、S17およびS18の処理は、制御部15に相当する機能を実現する。なお、図7においては、所定の移動量をワーク1つ分としている。
【0029】
以上のように、ロボット制御装置1は、重心位置CGから最も離れた(最外周に位置する)ワークW1を1つ目の取り出し対象(選択ワークWS)として選択し、当該ワークW1を水平移動方向DPにワーク1つ分だけ水平移動させてから垂直方向に取り出す。ここで、近傍ワーク群の重心位置CLから選択ワークWSの重心位置CSに向かう方向を水平移動方向DPとすることによって、水平移動時における他のワークとの干渉を防止している。また、水平移動方向DPにワーク1つ分だけ水平移動させてから垂直方向に取り出すことによって、垂直移動時における他のワークとの干渉を防止している。
【0030】
なお、ワークの配置および近傍エリアの設定によっては、選択ワークWSのみが近傍エリアに含まれ、重心位置CLから重心位置CSに向かう水平移動方向DPを算出することができない場合もあり得る。この場合、水平移動させずに垂直方向に取り出しても他のワークと干渉することはない。よって、例えば、水平移動方向DPを算出せず、水平方向に移動させずに垂直方向に取り出す。勿論、選択ワークWS以外のワークを少なくとも1つ含むように近傍エリアを設定し、水平移動方向DPを算出してもよい。また、選択ワークWSから水平移動時の移動量以上の半径を持つ円領域を近傍エリアとして設定することによって、水平移動方向DPを算出することができない場合に、選択ワークWSをいずれの方向に水平移動させても他のワークとの干渉は発生しないため、所定の水平移動方向DPを設定してもよい。
【0031】
さらに、水平移動時の移動量は、ワークの形状によらずワーク1つ分で十分であるが、ワーク1つ分以下とすることもできる。例えば、図13に示したワーク9の場合には、ワーク1/2個分だけ水平移動させることによって、干渉を防止することができる。
【0032】
1つ目のワークW1を取り出した後には、n=2としてS13からS18までのループ処理を行う。当該ループ処理においては、まず、取り出されたワークW1を除いた、ワークW2ないしW8全体(第1の物品群)の重心の水平位置を重心位置CG(第1の重心位置)として算出する(S13)。したがって、ワークW2ないしW8の重心位置Ckの平均を重心位置CGとして算出することができる。また、ワークW1ないしW8の平面図においてワークW1の部分をマスクし、当該マスクされた平面図の重心を重心位置CGとして算出してもよい。
【0033】
さらに、図8に示すように、ワークW2ないしW8のうち重心位置CGから最も離れたワークを取り出し対象(選択ワークWS)として選択する(S14)。なお、図8においては、ワークW4が選択ワークWSとして選択され、選択ワークWS(ワークW4)の重心位置C4をCSと表している。
【0034】
次に、選択ワークWSを中心とする領域を近傍エリアとして設定し、ワークW2ないしW8のうち当該近傍エリアに含まれるワークからなる近傍ワーク群(第2の物品群)の重心の水平位置を重心位置CL(第2の重心位置)として算出する(S15)。具体的には、例えば図9に示すように、選択ワークWS(ワークW4)からワーク1つ分以内の領域を近傍エリアとして設定し、ワークW4およびW2の重心位置Ckの平均を重心位置CLとして算出することができる。さらに、図10に示すように、重心位置CLから重心位置CSに向かう方向を水平移動方向DPとして算出する(S16)。
【0035】
最後に、選択ワークWSの位置・姿勢情報T[WS]および水平移動方向DPに基づいて制御信号CNTを出力し、選択ワークWSを水平移動方向DPに所定の移動量だけ移動させてから(S17)、垂直方向に取り出すように多関節ロボット3を制御する(S18)。
【0036】
以下同様に、ロボット制御装置1は、選択ワークWSを取り出す度に、当該取り出されたワークを除いて重心位置CGを算出するとともに次の選択ワークWSを選択する。そして、S13からS18までのループ処理を8回行うことによって、ワークW1ないしW8をすべて取り出すことができ、処理を終了する(S19)。
【0037】
このようにして、互いに重なり合わないようにホッパ装置4から排出され、ピッキングエリアに搬送されたワークW1ないしW8が完全には分離されていない場合であっても、他のワークと干渉しないように1つずつ取り出すことができる。したがって、3次元情報IMGを再取得することなく、多関節ロボット3を用いてピッキングエリアからすべてのワークを取り出すことができる。
【0038】
===ロボット制御装置の他のプログラム===
上記実施形態では、ロボット制御装置1の機能は、記憶部12を備えるコンピュータによって実現されているが、これに限定されるものではない。ロボット制御装置1のうち、制御部15には、公知の実装方法を用いることができるため、記憶部12および制御部15を備えるコンピュータに、図3のS17およびS18の処理を行わないプログラムを搭載してもよい。
【0039】
上記実施形態では、ロボット制御装置1は、ワークW1ないしW8から1つずつ選択ワークWSを選択して、その都度当該選択ワークWSを取り出しているが、これに限定されるものではない。
【0040】
例えば図11に示すように、図3のS13ないしS16に相当するループ処理を8回行った後に、多関節ロボット3の制御を行うプログラムを搭載してもよい。この場合、まず、n番目(1≦n≦8)の選択ワークWSnの選択およびそれに対応する水平移動方向DPnの算出を行い(ループ処理1)、次に、選択ワークWSnの順序でそれぞれ水平移動方向DPnに水平移動させてから垂直方向に取り出す(ループ処理2)。このようなプログラムとすることによって、予め行われた選択ワークWSnの選択および水平移動方向DPnの算出の結果を確認したうえで、選択ワークWSnの取り出しを開始することもできる。また、図11のループ処理1および2を並列に処理してもよい。
【0041】
なお、ループ処理1では、S23において既に水平移動方向を算出したワークを除いた残りのワークの位置・姿勢情報T[Wk]を用いて処理を行う。さらに、S24においても既に水平移動方向を算出されたワークを除いた残りのワークの位置・姿勢情報T[Wk]を用いて処理を行う。
【0042】
上記実施形態では、ピッキングエリアに搬送されたワーク全体を1つのワーク群(第1の物品群)として処理しているが、これに限定されるものではない。
【0043】
例えば図12に示すように、ピッキングエリアに搬送されたワークが比較的分散している場合には、互いに水平移動時の移動量以上離れた3つのワーク群G1ないしG3(第1の物品群)として処理することもできる。この場合、図3または図13に示した処理をワーク群ごとに行い、1つのワーク群に含まれるすべてのワークを取り出して処理を終了した後、次のワーク群の処理に移行する。このようにピッキングエリアに搬送されたワークを複数のワーク群として扱い、ワーク群ごとに処理することによって、特に、多関節ロボット3が複数のチャック部を備える場合に、次の選択ワークWSまでの移動距離を短くすることができる。なお、図13のワーク群G2のようにワーク群に1つのワークしか含まれなかった場合には、水平移動させずに垂直方向にワークを取り出しても他のワークと干渉は起こさない。よって、ワーク群に1つのワークしか含まない場合には、当該ワーク群については、水平移動方向DPを算出せず、ワークを水平移動させずに垂直方向に移動して取り出すことができる。
【0044】
前述したように、ロボット制御装置1において、ワーク全体の重心位置CGから最も離れたワークを選択ワークWSとして選択し、近傍ワーク群の重心位置CLから選択ワークWSの重心位置CSに向かう方向を水平移動方向DPとして算出し、選択ワークWSを水平移動方向DPに所定の移動量だけ移動させてから垂直方向に取り出すことによって、互いに重なり合わないように置かれたワークが完全には分離されていない場合であっても、他のワークと干渉しないように取り出すことができる。したがって、ピッキングエリアに搬送されたワークは、3次元情報IMGを再取得することなく、多関節ロボット3を用いて1つずつ取り出すことができる。
【0045】
また、選択ワークWSを取り出す度に、当該取り出されたワークを除いて重心位置CGを算出するとともに次の選択ワークWSを選択することによって、多関節ロボット3を用いてピッキングエリアからすべてのワークを取り出すことができる。
【0046】
また、予め選択ワークWSnの選択およびそれに対応する水平移動方向DPnの算出を行い、選択ワークWSnの順序でそれぞれ水平移動方向DPnに水平移動させてから垂直方向に取り出すことによって、選択ワークWSnの選択および水平移動方向DPnの算出の結果を確認したうえで、選択ワークWSnの取り出しを開始することもできる。
【0047】
また、ピッキングエリアに搬送されたワークを複数のワーク群として扱い、1つのワーク群に含まれるすべてのワークを取り出した後、次のワーク群の処理に移行することによって、特に、多関節ロボット3が複数のチャック部を備える場合に、次の選択ワークWSまでの移動距離を短くすることができる。
【0048】
また、各ワークの重心位置Ckの平均をワーク全体の重心位置CGとして算出することによって、選択ワークWSを取り出す度に、当該取り出されたワークを除いた各ワークの重心位置Ckから重心位置CGを算出することができる。
【0049】
また、3次元(画像)情報IMGからワーク全体の平面図を求め、当該平面図の重心を重心位置CGとして算出することによって、選択ワークWSを取り出す度に、ワーク全体の平面図において取り出されたワークの部分をマスクし、当該マスクされた平面図から重心位置CGを算出することができる。
【0050】
また、図2に示した物品取り出しシステムにおいて、ホッパ装置4からワーク9を互いに重なり合わないように順次コンベア装置5に排出し、カメラエリアにおいて取得した3次元情報IMGに基づいて多関節ロボット3を制御することによって、ピッキングエリアに搬送されたワーク9を1つずつ取り出すことができる。
【0051】
また、ロボット制御装置1の少なくとも認識処理部11、選択部13、および移動方向算出部14に相当する機能をコンピュータに実現させるためのプログラムにおいて、カメラエリアにおいて取得されたワーク全体の3次元情報IMGに基づいて各ワークを認識して位置・姿勢情報T[Wk]を算出することによって、位置・姿勢情報T[Wk]に基づいて選択ワークWSを選択するとともに水平移動方向DPの算出することができる。
【0052】
また、ワーク全体の重心位置CGを算出し、重心位置CGから最も離れたワークを選択ワークWSとして選択し、近傍ワーク群の重心位置CLを算出し、重心位置CLから選択ワークWSの重心位置CSに向かう方向を水平移動方向DPとして算出し、選択ワークWSを水平移動方向DPに所定の移動量だけ移動させてから垂直方向に取り出すことによって、互いに重なり合わないように置かれたワークが完全には分離されていない場合であっても、ピッキングエリアに搬送されたワークは、3次元情報IMGを再取得することなく、多関節ロボット3を用いて1つずつ取り出すことができる。
【0053】
なお、上記実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物も含まれる。
【符号の説明】
【0054】
1 ロボット制御装置
2 ステレオカメラ(3次元情報取得装置)
3 多関節ロボット
4 ホッパ装置(ワーク分離装置)
5 コンベア装置
9 ワーク
11 認識処理部
12 記憶部
13 選択部
14 移動方向算出部
15 制御部
31 チャック部
W1〜W8 ワーク
【特許請求の範囲】
【請求項1】
互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出する認識処理部と、
前記複数の物品からなる第1の物品群の重心の水平位置を第1の重心位置として算出し、前記第1の物品群のうち前記第1の重心位置から最も離れた物品を取り出し対象の物品として選択する選択部と、
前記第1の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第2の物品群の重心の水平位置を第2の重心位置として算出し、前記第2の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出する移動方向算出部と、
前記取り出し対象の物品を前記水平移動方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部と、
を有することを特徴とするロボット制御装置。
【請求項2】
前記選択部は、前記多関節ロボットが前記取り出し対象の物品を取り出す度に当該取り出された物品を前記第1の物品群から除いて、前記第1の重心位置を算出するとともに前記取り出し対象の物品を選択することを特徴とする請求項1に記載のロボット制御装置。
【請求項3】
前記選択部は、前記移動方向算出部が前記水平移動方向を算出する度に前記取り出し対象の物品を前記第1の物品群から除いて、前記第1の重心位置を算出するとともに次の取り出し対象の物品を選択し、
前記移動方向算出部は、既に前記水平移動方向が算出された物品が除かれた前記第1の物品群から、前記第2の重心位置を算出するとともに前記取り出し対象の物品と対応付けて前記水平移動方向を算出し、
前記制御部は、前記選択部が選択した順序で、前記取り出し対象の物品を当該取り出し対象の物品と対応付けられた前記水平移動方向に前記所定の移動量だけ移動させてから垂直方向に取り出すように前記多関節ロボットを制御することを特徴とする請求項1に記載のロボット制御装置。
【請求項4】
前記選択部は、前記複数の物品からなる、互いに前記所定の移動量以上離れた複数の前記第1の物品群から1つを順次選択し、選択されている第1の物品群について、すべての物品が除かれるまで前記第1の重心位置を算出するとともに前記取り出し対象の物品を選択することを特徴とする請求項2または請求項3に記載のロボット制御装置。
【請求項5】
前記選択部は、前記第1の物品群に含まれる物品のそれぞれの重心の水平位置の平均を前記第1の重心位置として算出することを特徴とする請求項1ないし請求項4の何れかに記載のロボット制御装置。
【請求項6】
前記選択部は、前記第1の物品群の水平面への正射影の重心を前記第1の重心位置として算出することを特徴とする請求項1ないし請求項4の何れかに記載のロボット制御装置。
【請求項7】
請求項1ないし請求項6の何れかに記載のロボット制御装置と、
前記複数の物品を搬送するコンベア装置と、
前記複数の物品を互いに重なり合わないように前記コンベア装置に排出するホッパ装置と、
前記コンベア装置に置かれた前記複数の物品の3次元情報を取得する3次元情報取得装置と、
前記制御部の制御によって前記複数の物品を取り出す前記多関節ロボットと、
を備え、
前記認識処理部は、前記3次元情報に基づいて前記複数の物品の位置および姿勢を算出することを特徴とする物品取り出しシステム。
【請求項8】
互いに重なり合わないように置かれた複数の物品のうち、取り出し対象の物品を水平方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部を備え、前記複数の物品の3次元情報が入力されるコンピュータに、
前記3次元情報に基づいて前記複数の物品をそれぞれ認識して位置および姿勢を算出する機能と、
前記複数の物品からなる第1の物品群の重心の水平位置を第1の重心位置として算出する機能と、
前記第1の物品群のうち前記第1の重心位置から最も離れた物品を前記取り出し対象の物品として選択する機能と、
前記第1の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第2の物品群の重心の水平位置を第2の重心位置として算出する機能と、
前記第2の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出し、前記制御部に入力する機能と、
を実現させるためのプログラム。
【請求項9】
互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出し、
前記複数の物品からなる第1の物品群の重心の水平位置を第1の重心位置として算出し、
前記第1の物品群のうち前記第1の重心位置から最も離れた物品を取り出し対象の物品として選択し、
前記第1の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第2の物品群の重心の水平位置を第2の重心位置として算出し、
前記第2の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出し、
前記取り出し対象の物品を前記水平移動方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御することを特徴とするロボットの制御方法。
【請求項1】
互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出する認識処理部と、
前記複数の物品からなる第1の物品群の重心の水平位置を第1の重心位置として算出し、前記第1の物品群のうち前記第1の重心位置から最も離れた物品を取り出し対象の物品として選択する選択部と、
前記第1の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第2の物品群の重心の水平位置を第2の重心位置として算出し、前記第2の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出する移動方向算出部と、
前記取り出し対象の物品を前記水平移動方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部と、
を有することを特徴とするロボット制御装置。
【請求項2】
前記選択部は、前記多関節ロボットが前記取り出し対象の物品を取り出す度に当該取り出された物品を前記第1の物品群から除いて、前記第1の重心位置を算出するとともに前記取り出し対象の物品を選択することを特徴とする請求項1に記載のロボット制御装置。
【請求項3】
前記選択部は、前記移動方向算出部が前記水平移動方向を算出する度に前記取り出し対象の物品を前記第1の物品群から除いて、前記第1の重心位置を算出するとともに次の取り出し対象の物品を選択し、
前記移動方向算出部は、既に前記水平移動方向が算出された物品が除かれた前記第1の物品群から、前記第2の重心位置を算出するとともに前記取り出し対象の物品と対応付けて前記水平移動方向を算出し、
前記制御部は、前記選択部が選択した順序で、前記取り出し対象の物品を当該取り出し対象の物品と対応付けられた前記水平移動方向に前記所定の移動量だけ移動させてから垂直方向に取り出すように前記多関節ロボットを制御することを特徴とする請求項1に記載のロボット制御装置。
【請求項4】
前記選択部は、前記複数の物品からなる、互いに前記所定の移動量以上離れた複数の前記第1の物品群から1つを順次選択し、選択されている第1の物品群について、すべての物品が除かれるまで前記第1の重心位置を算出するとともに前記取り出し対象の物品を選択することを特徴とする請求項2または請求項3に記載のロボット制御装置。
【請求項5】
前記選択部は、前記第1の物品群に含まれる物品のそれぞれの重心の水平位置の平均を前記第1の重心位置として算出することを特徴とする請求項1ないし請求項4の何れかに記載のロボット制御装置。
【請求項6】
前記選択部は、前記第1の物品群の水平面への正射影の重心を前記第1の重心位置として算出することを特徴とする請求項1ないし請求項4の何れかに記載のロボット制御装置。
【請求項7】
請求項1ないし請求項6の何れかに記載のロボット制御装置と、
前記複数の物品を搬送するコンベア装置と、
前記複数の物品を互いに重なり合わないように前記コンベア装置に排出するホッパ装置と、
前記コンベア装置に置かれた前記複数の物品の3次元情報を取得する3次元情報取得装置と、
前記制御部の制御によって前記複数の物品を取り出す前記多関節ロボットと、
を備え、
前記認識処理部は、前記3次元情報に基づいて前記複数の物品の位置および姿勢を算出することを特徴とする物品取り出しシステム。
【請求項8】
互いに重なり合わないように置かれた複数の物品のうち、取り出し対象の物品を水平方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御する制御部を備え、前記複数の物品の3次元情報が入力されるコンピュータに、
前記3次元情報に基づいて前記複数の物品をそれぞれ認識して位置および姿勢を算出する機能と、
前記複数の物品からなる第1の物品群の重心の水平位置を第1の重心位置として算出する機能と、
前記第1の物品群のうち前記第1の重心位置から最も離れた物品を前記取り出し対象の物品として選択する機能と、
前記第1の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第2の物品群の重心の水平位置を第2の重心位置として算出する機能と、
前記第2の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出し、前記制御部に入力する機能と、
を実現させるためのプログラム。
【請求項9】
互いに重なり合わないように置かれた複数の物品をそれぞれ認識して位置および姿勢を算出し、
前記複数の物品からなる第1の物品群の重心の水平位置を第1の重心位置として算出し、
前記第1の物品群のうち前記第1の重心位置から最も離れた物品を取り出し対象の物品として選択し、
前記第1の物品群のうち前記取り出し対象の物品を中心とする領域に含まれる物品からなる第2の物品群の重心の水平位置を第2の重心位置として算出し、
前記第2の重心位置から前記取り出し対象の物品の重心の水平位置に向かう方向を水平移動方向として算出し、
前記取り出し対象の物品を前記水平移動方向に所定の移動量だけ移動させてから垂直方向に取り出すように多関節ロボットを制御することを特徴とするロボットの制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−55995(P2012−55995A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−200165(P2010−200165)
【出願日】平成22年9月7日(2010.9.7)
【出願人】(000005234)富士電機株式会社 (3,146)
【Fターム(参考)】
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願日】平成22年9月7日(2010.9.7)
【出願人】(000005234)富士電機株式会社 (3,146)
【Fターム(参考)】
[ Back to top ]