<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態に係るロボット20の一例を示す構成図である。
ロボット20は、作業台TBに配置された梱包材Pを把持する。
作業台TBとは、例えば、テーブルである。この一例において、作業台TBの上面には、梱包材Pと、カッターCと、給材容器T1と、除材容器T2が配置されている。なお、作業台TBは、テーブルに代えて、梱包材Pと、カッターCと、給材容器T1と、除材容器T2とを配置することができる物体であれば、床面や棚等の他の物体であってもよい。また、作業台TBは、複数の台、例えば、第1の台と第2の台とから構成されていてもよい。その場合、第1の台には、梱包材Pと、カッターCと、給材容器T1と、除材容器T2のうちの一部が配置され、第2の台には、他の一部が配置される。
梱包材Pは、柔軟な材質で形成され、内側に物体を梱包することができる袋状の物体である。この一例において、梱包材Pには、内側に物体が梱包されており、当該物体が梱包材Pの外側に出ないように密閉されており、形状が長方形状である場合について説明する。柔軟な材質とは、この一例において、ソフトマター等のようにロボット20の動きや重力、風の影響等で形状が変化しうる材質を示す。また、梱包材Pを形成する柔軟な材質は、この一例において、透明又は半透明な材質であるが、不透明な材質であってもよい。
すなわち、梱包材Pは、梱包材Pの外側から梱包材Pの内側に梱包された物体の収容状況を検出することが可能である。この一例において、梱包材Pを形成する柔軟な材質がビニールである場合について説明するが、これに代えて、内部が透けて見える布(メッシュ状の布等)やフィルム、生体膜等、他の材質であってもよい。なお、梱包材Pは、柔軟な材質に代えて、ロボット20の動きや重力、風の影響等で形状が変化しない材質(弾性体や剛体)であってもよい。
ここで、図2を参照して、梱包材Pについて説明する。図2は、梱包材Pの一例を示す図である。図2に示したように、梱包材Pの材質は、透明なビニールである。また、梱包材Pの内側には、上述の梱包材Pの内側に梱包された物体として、N個の対象物O1〜対象物ONが梱包されている。
以下では、説明の便宜上、対象物O1〜対象物ONを区別する必要が無い限り、まとめて対象物Oと称して説明する。対象物Oは、例えば、産業用に加工された加工品や部品等の物体であるが、他の物体であってもよい。なお、対象物Oの一部又は全部は、互いに形状や大きさ、重さ等が異なる物体であってもよく、形状や大きさ、重さ等が同じ物体であってもよい。以下では、この一例として、対象物Oはすべて、形状や大きさ、重さが同じである場合について説明する。
ロボット20は、梱包材Pを把持する際、梱包材Pの内側に梱包された対象物Oの収容状況に基づいて決定される梱包材Pの位置を把持し、予め決められた作業を行う。これにより、ロボット20は、梱包材Pの内側に梱包された対象物Oの収容状況に応じた位置を把持して作業を行うことができる。以下では、ロボット20が梱包材Pを把持する際に、梱包材Pの内側に梱包された対象物Oの収容状況に基づいて決定される梱包材Pの位置を把持する方法について詳しく説明する。また、以下では、説明の便宜上、梱包材Pの内側に梱包することを、梱包材Pに梱包すると称して説明する。
予め決められた作業とは、例えば、梱包材Pの開梱であるが、梱包材Pを箱等への収納等の他の作業であってもよい。この一例において、ロボット20が、予め決められた作業として、梱包材Pの開梱と、梱包材Pに梱包された対象物Oの給材容器T1への給材と、対象物Oが給材容器T1に給材された後の梱包材P(すなわち、空の梱包材P)の除材容器T2への除材とを行う場合について説明する。
ロボット20は、カッターCを用いて、図2に示した梱包材Pを開梱する。カッターCは、この一例において、図1に示したように支持台に刃Bが設けられている。また、カッターCは、ロボット20が梱包材Pを刃Bに押し付けることにより開梱することが可能な位置に配置されている。そして、ロボット20は、梱包材Pを刃Bに押し当てて切断することにより開梱する。
ロボット20は、梱包材Pを開梱した後、梱包材Pに梱包された対象物Oを梱包材Pの外側に出すことにより給材容器T1に給材する。すなわち、ロボット20は、梱包材Pに梱包された対象物Oを、梱包材Pの内側から給材容器T1の中に載置する。そして、ロボット20は、対象物Oを給材容器T1に給材した後の梱包材Pを除材容器T2の中に除材(廃棄、捨てる)する。なお、当該梱包材Pは、空の梱包材Pである。なお、ロボット20は、対象物Oを給材容器T1に給材した後の梱包材Pが再利用可能な梱包材であった場合、当該梱包材Pを除材容器T2の中に除材する構成に代えて、梱包材Pを再利用する構成であってもよい。
給材容器T1は、梱包材Pに梱包された対象物Oを収容する容器であり、ロボット20により梱包材Pから対象物Oを給材することが可能な位置に配置されている。除材容器T2は、対象物Oを給材容器T1に給材した後の空の梱包材Pを収容する容器であり、ロボット20により当該空の梱包材Pを除材することが可能な位置に配置されている。除材容器T2の位置は、所定の場所の一例である。
ここで、ロボット20が備える各種の機能部と、制御装置30とについて説明する。
ロボット20は、例えば、第1撮像部11と、第2撮像部12と、第3撮像部21と、第4撮像部22と、第1力センサー23−1と、第2力センサー23−2と、第1エンドエフェクターEND1と、第2エンドエフェクターEND2と、第1マニピュレーターMNP1と、第2マニピュレーターMNP2と、図示しない複数のアクチュエーターを備えた双腕ロボットである。
双腕ロボットとは、2本のアーム(腕)を有するロボットを示し、本実施形態では、第1エンドエフェクターEND1と第1マニピュレーターMNP1によって構成されるアーム(以下、第1アームと称する)と、第2エンドエフェクターEND2と第2マニピュレーターMNP2によって構成されるアーム(以下、第2アームと称する)との2本のアームを有する。
なお、ロボット20は、双腕ロボットに代えて、単腕ロボットであってもよい。単腕ロボットとは、1本のアームを有するロボットを示し、例えば、前述の第1アームと第2アームのうちいずれか一方を有するロボットを示す。
第1アームは、7軸垂直多関節型となっており、支持台と第1マニピュレーターMNP1と第1エンドエフェクターEND1とがアクチュエーターによる連携した動作によって7軸の自由度の動作を行うことができる。なお、第1アームは、6自由度(6軸)以下で動作するものであってもよく、8自由度(8軸)以上で動作するものであってもよい。また、第1エンドエフェクターEND1は、第1把持部の一例である。
第1アームが7自由度で動作する場合、第1アームは、6自由度以下で動作する場合と比較して取り得る姿勢が増えることによって、例えば、動作が滑らかになり、更に第1アームの周辺に存在する物体との干渉を容易に回避することができるようになる。また、第1アームが7自由度で動作する場合、第1アームの制御は、第1アームが8自由度以上で動作する場合と比較して計算量が少なく容易である。このような理由から、この一例では、第1アームは、7自由度で動作することが望ましい。なお、第1アームは、6自由度以下で動作する構成であってもよく、8自由度以上で動作する構成であってもよい。
第1アームが備える第1マニピュレーターMNP1、第1エンドエフェクターEND1、図示しない複数のアクチュエーターのそれぞれは、例えば、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第1アームが備える第1マニピュレーターMNP1、第1エンドエフェクターEND1、図示しない複数のアクチュエーターのそれぞれと制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続されてもよい。また、第1アームは、第1撮像部11を備える。
第1撮像部11は、例えば、集光された光を電気信号に変換する撮像素子であるCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を備えたカメラである。
第1撮像部11は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第1撮像部11と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。第1撮像部11は、図1に示したように第1アームを構成する第1マニピュレーターMNP1の一部に備えられており、第1アームの動きによって移動することが可能である。
第2アームは、7軸垂直多関節型となっており、支持台と第2マニピュレーターMNP2と第2エンドエフェクターEND2とがアクチュエーターによる連携した動作によって7軸の自由度の動作を行うことができる。第2アームは、第1アームが7自由度で動作することが望ましい理由と同様の理由により、7自由度で動作することが望ましい。なお、第2アームは、6自由度(6軸)以下で動作するものであってもよく、8自由度(8軸)以上で動作するものであってもよい。また、第2エンドエフェクターEND2は、第2把持部の一例である。
第2アームが備える第2マニピュレーターMNP2、第2エンドエフェクターEND2、図示しない複数のアクチュエーターのそれぞれは、例えば、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第2アームが備える第2マニピュレーターMNP2、第2エンドエフェクターEND2、図示しない複数のアクチュエーターのそれぞれと制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続されてもよい。また、第2アームは、第2撮像部12を備える。
第2撮像部12は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。
第2撮像部12は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第2撮像部12と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。第2撮像部12は、図1に示したように第2アームを構成する第2マニピュレーターMNP2の一部に備えられており、第2アームの動きによって移動することが可能である。
第3撮像部21は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。第3撮像部21は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第3撮像部21と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。第3撮像部21は、梱包材Pと、カッターCと、給材容器T1と、除材容器T2とが含まれる範囲を撮像可能な位置に設置されている。以下では、説明の便宜上、梱包材Pと、カッターCと、給材容器T1と、除材容器T2とが含まれる範囲を撮像範囲と称して説明する。なお、第3撮像部21は、撮像範囲の静止画像を第1撮像画像として撮像してもよく、撮像範囲の動画像を第1撮像画像として撮像してもよい。また、第3撮像部21は、撮像範囲を撮像する。
第4撮像部22は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。第4撮像部22は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第4撮像部22と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。第4撮像部22は、撮像範囲を撮像可能な位置に設置されている。なお、第4撮像部22は、撮像範囲の静止画像を第2撮像画像として撮像してもよく、撮像範囲の動画像を第2撮像画像として撮像してもよい。また、第4撮像部22は、撮像範囲を撮像する。
以下では、この一例において、第3撮像部21と第4撮像部22が撮像範囲をステレオ撮像する場合について説明する。そのため、以下では、説明の便宜上、第1撮像画像と第2撮像画像をまとめてステレオ撮像画像と称して説明する。なお、ロボット20は、第3撮像部21と第4撮像部22により撮像範囲をステレオ撮像する構成に代えて、第3撮像部21と、第4撮像部22と、第1撮像部11と、第2撮像部12とのうちの任意の2台の組み合わせにより撮像範囲をステレオ撮像する構成であってもよい。また、ロボット20は、撮像範囲を2台の撮像部によりステレオ撮像する構成に代えて、第3撮像部21と、第4撮像部22と、第1撮像部11と、第2撮像部12とのうちのいずれか1台によって撮像範囲を撮像する構成であってもよい。また、ロボット20は、撮像範囲を2台の撮像部によりステレオ撮像する構成に代えて、第3撮像部21と、第4撮像部22と、第1撮像部11と、第2撮像部12とのうちの一部又は全部によって撮像範囲を撮像する構成であってもよい。また、第3撮像部21と第4撮像部22のうちいずれか一方又は両方が、ロボット20と別体として撮像範囲を撮像可能な位置に設置される構成であってもよい。
第1力センサー23−1は、ロボット20の第1エンドエフェクターEND1と第1マニピュレーターMNP1との間に備えられている。第1力センサー23−1は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第1力センサー23−1と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続されてもよい。第1力センサー23−1は、第1エンドエフェクターEND1に作用した力やモーメントを検出する。第1力センサー23−1は、検出した力やモーメントを示す情報(以下、力センサー情報と称する)を、通信により制御装置30へ出力する。
第2力センサー23−2は、第2エンドエフェクターEND2と第2マニピュレーターMNP2との間に備えられている。第2力センサー23−2は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第2力センサー23−2と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続されてもよい。第2力センサー23−2は、第2エンドエフェクターEND2に作用した力やモーメントを検出する。第2力センサー23−2は、検出した力やモーメントを示す情報(以下、力センサー情報と称する)を、通信により制御装置30へ出力する。
第1力センサー23−1と第2力センサー23−2のうちいずれか一方又は両方により検出された力センサー情報は、制御装置30によるロボット20の力センサー情報に基づく制御に用いられる。力センサー情報に基づく制御とは、例えば、インピーダンス制御等のコンプライアンス制御を示す。なお、以下では、第1力センサー23−1と第2力センサー23−2を区別する必要が無い限り、まとめて力センサー23と称して説明する。また、力センサー情報に含まれる力の大きさやモーメントの大きさを示す値は、力センサーの出力値の一例である。
ロボット20は、さらに制御装置30を内蔵し、内蔵された制御装置30により制御される。なお、ロボット20は、制御装置30を内蔵する構成に代えて、外部に設置された制御装置30により制御される構成であってもよい。
本実施形態において、ロボット20が備える各機能部は、ロボット20に内蔵された制御装置30から制御信号を取得し、取得した制御信号に基づいた動作を行う。
制御装置30は、ロボット20に制御信号を送信することにより、ロボット20を動作させる。制御装置30は、第3撮像部21及び第4撮像部22から取得したステレオ撮像画像(すなわち、第1撮像画像及び第2撮像画像)に基づいて、梱包材Pに梱包された対象物Oの収容状況に基づいた梱包材Pの把持位置を決定する。制御装置30は、梱包材Pに梱包された対象物Oの収容状況に基づいた梱包材Pの把持位置をロボット20に把持させる。制御装置30は、梱包材Pに梱包された対象物Oの収容状況に基づいた梱包材Pの把持位置をロボット20が把持した後、ロボット20に上述の予め決められた作業を行わせる。
次に、図3を参照して、制御装置30のハードウェア構成について説明する。図3は、制御装置30のハードウェア構成の一例を示す図である。制御装置30は、例えば、CPU(Central Processing Unit)31と、記憶部32と、入力受付部33と、通信部34と、表示部35を備え、通信部34を介してロボット20と通信を行う。これらの構成要素は、バスBusを介して相互に通信可能に接続されている。CPU31は、記憶部32に格納された各種プログラムを実行する。
記憶部32は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含み、制御装置30が処理する各種情報や画像、プログラム等を格納する。なお、記憶部32は、制御装置30に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
入力受付部33は、例えば、キーボードやマウス、タッチパッド等を備えたティーチングペンダントや、その他の入力装置である。なお、入力受付部33は、タッチパネルとして表示部と一体に構成されてもよい。
通信部34は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
表示部35は、例えば、液晶ディスプレイパネル、あるいは、有機EL(ElectroLuminescence)ディスプレイパネルである。
次に、図4を参照して、制御装置30の機能構成について説明する。図4は、制御装置30の機能構成の一例を示す図である。制御装置30は、記憶部32と、入力受付部33と、表示部35と、制御部36を備える。制御部36が備える機能部のうち一部又は全部は、例えば、CPU31が、記憶部32に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
制御部36は、制御装置30の全体を制御する。制御部36は、撮像制御部40と、力センサー情報取得部41と、画像取得部42と、梱包材検出部43と、収容状況検出部44と、判定部45と、把持位置姿勢算出部46と、容器等検出部47と、ロボット制御部49を備える。
撮像制御部40は、第3撮像部21と第4撮像部22に撮像範囲をステレオ撮像させる。より具体的には、撮像制御部40は、第3撮像部21に第1撮像画像を撮像させ、第4撮像部22に第2撮像画像を撮像させる。
力センサー情報取得部41は、力センサー23により検出される力センサー情報を取得する。
画像取得部42は、第3撮像部21及び第4撮像部22からステレオ撮像画像を取得する。より具体的には、画像取得部42は、第3撮像部21が撮像した第1撮像画像を第3撮像部21から取得し、第4撮像部22が撮像した第2撮像画像を第4撮像部22から取得する。
梱包材検出部43は、例えば、画像取得部42により取得されたステレオ撮像画像に基づいて、梱包材Pの輪郭を検出する。梱包材Pの輪郭を検出するとは、この一例において、当該輪郭の形状を検出するとともに、ステレオ撮像画像上において梱包材Pの輪郭を構成する各点(例えば、画素や画素の塊等)の位置を検出することを示す。以下では、説明の便宜上、梱包材Pの輪郭の形状と、梱包材Pの輪郭を構成する各点の位置とを、まとめて梱包材Pの輪郭と称して説明する。
また、梱包材検出部43は、画像取得部42により取得されたステレオ撮像画像に基づいて、撮像部座標系における梱包材Pの位置及び姿勢を検出する。この一例において、撮像部座標系とは、第3撮像部21及び第4撮像部22に共通の座標系である。なお、第1撮像画像上における位置及び姿勢と、撮像部座標系における位置及び姿勢とは、予めキャリブレーションにより対応付けられているとする。また、第2撮像画像上における位置及び姿勢と、撮像部座標系における位置及び姿勢とは、予めキャリブレーションにより対応付けられているとする。なお、梱包材Pの位置及び姿勢を検出するとは、この一例において、梱包材Pの重心の位置及び姿勢を検出することを示すが、梱包材Pに対応付けられる他の部位の位置及び姿勢を検出することであってもよい。
また、梱包材検出部43は、例えば、画像取得部42により取得されたステレオ撮像画像に基づいて、梱包材Pの内側に梱包された対象物Oの輪郭を検出する。対象物Oの輪郭を検出するとは、この一例において、当該輪郭の形状を検出するとともに、ステレオ撮像画像上において対象物Oの輪郭を構成する各点(例えば、画素や画素の塊等)の位置を検出することを示す。以下では、説明の便宜上、対象物Oの輪郭の形状と、対象物Oの輪郭を構成する各点の位置とを、まとめて対象物Oの輪郭と称して説明する。
収容状況検出部44は、梱包材検出部43により検出された梱包材Pの輪郭と、梱包材検出部43により検出された対象物Oの輪郭とに基づいて、梱包材Pに梱包された対象物Oの収容状況を検出する。収容状況とは、この一例において、梱包材Pの内側において対象物Oが均一に収容されている(分布している)状況と、梱包材Pの内側において対象物Oがある部分領域に偏って収容されている(分布している)状況とのうちのいずれかを示す。具体的には、収容状況検出部44は、梱包材Pの輪郭内において検出された対象物Oそれぞれの輪郭が、梱包材Pの輪郭内において均一に分布しているか否かを判定することにより収容状況を検出する。
以下では、説明の便宜上、梱包材Pの内側において対象物Oが均一に収容されている(分布している)状況を、第1収容状況と称して説明する。例えば、図2に示した梱包材Pに梱包されている対象物Oの収容状況は、梱包材Pの内側において対象物Oが略均一に収容されているため、第1収容状況である。また、以下では、梱包材Pの内側において対象物Oがある領域に偏って収容されている(分布している)状況を、第2収容状況と称して説明する。すなわち、収容状況検出部44は、梱包材検出部43により検出された梱包材Pの輪郭と、梱包材検出部43により検出された対象物Oの輪郭とに基づいて、梱包材Pに梱包された対象物Oの収容状況が第1収容状況と第2収容状況とのうちいずれであるかを検出する。
判定部45は、梱包材検出部43により梱包材Pに梱包された対象物Oの輪郭が検出されたか否かを判定する。また、判定部45は、収容状況検出部44により検出された収容状況が第2収容状況であったか否かを判定する。
把持位置姿勢算出部46は、収容状況検出部44により検出された収容状況に基づいて、第1エンドエフェクターEND1に把持させる梱包材Pの部位の位置及び姿勢を算出(決定)する。この算出する第1エンドエフェクターEND1に把持させる梱包材Pの部位の位置及び姿勢は、ロボット座標系における位置及び姿勢である。また、把持位置姿勢算出部46は、収容状況検出部44により検出された収容状況に基づいて、第2エンドエフェクターEND2に把持させる梱包材Pの部位の位置及び姿勢を算出(決定)する。この算出する第2エンドエフェクターEND2に把持させる梱包材Pの部位の位置及び姿勢は、ロボット座標系における位置及び姿勢である。
なお、把持位置姿勢算出部46は、例えば、収容状況検出部44により検出された収容状況に応じた梱包材Pの部位の位置及び姿勢を、第1エンドエフェクターEND1に把持させる梱包材Pの部位の位置及び姿勢と、収容状況とが対応付けられたテーブルから選択(決定)する構成等、梱包材Pの部位の位置及び姿勢を他の方法により決定する構成であってもよい。また、把持位置姿勢算出部46は、例えば、収容状況検出部44により検出された収容状況に基づいて、第2エンドエフェクターEND2に把持させる梱包材Pの部位の位置及び姿勢を、梱包材Pの部位の位置及び姿勢と、収容状況とが対応付けられたテーブルから選択(決定)する構成等、梱包材Pの部位の位置及び姿勢を他の方法により決定する構成であってもよい。
容器等検出部47は、画像取得部42により取得されたステレオ撮像画像に基づいて、給材容器T1の位置及び姿勢を検出する。この一例において、給材容器T1の位置及び姿勢とは、ロボット座標系における給材容器T1の所定部位の位置及び姿勢を示す。給材容器T1の所定部位とは、例えば、給材容器T1の底面の中心であるが、これに代えて、他の部位であってもよい。
また、容器等検出部47は、画像取得部42により取得されたステレオ撮像画像に基づいて、除材容器T2の位置及び姿勢を検出する。この一例において、除材容器T2の位置及び姿勢とは、ロボット座標系における除材容器T2の所定部位の位置及び姿勢を示す。除材容器T2の所定部位とは、例えば、除材容器T2の底面の中心であるが、これに代えて、他の部位であってもよい。
また、容器等検出部47は、画像取得部42により取得されたステレオ撮像画像に基づいて、カッターCの刃Bの位置及び姿勢を検出する。この一例において、カッターCの刃Bの位置及び姿勢とは、ロボット座標系におけるカッターCの刃Bの所定部位の位置及び姿勢を示す。カッターCの刃Bの所定部位とは、例えば、梱包材Pを刃Bによって切断する際に梱包材Pを押し付けられる部位であるが、これに代えて、他の部位であってもよい。
ロボット制御部49は、把持位置姿勢算出部46により算出された各種の位置及び姿勢に基づいてロボット20を動作させる制御信号を生成し、生成された制御信号をロボット20に出力する。また、ロボット制御部49は、ロボット20に予め決められた作業を行わせる制御信号を生成し、生成された制御信号をロボット20に出力する。
次に、図5を参照して、制御部36がロボット20に梱包材Pを開梱させ、予め決められた作業を行わせる処理について説明する。図5は、制御部36がロボット20に梱包材Pを開梱させ、予め決められた作業を行わせる処理の流れの一例を示すフローチャートである。なお、以下では、すでに撮像範囲内に対象物Oが梱包された梱包材Pが配置されている場合について説明する。
まず、撮像制御部40は、第3撮像部21及び第4撮像部22に撮像範囲をステレオ撮像させる(ステップS80)。次に、画像取得部42は、第3撮像部21及び第4撮像部22からステレオ撮像画像(すなわち、第1撮像画像及び第2撮像画像)を取得する(ステップS90)。
次に、容器等検出部47は、ステップS90において画像取得部42が取得したステレオ撮像画像に基づいて給材容器T1の位置及び姿勢を検出する。また、容器等検出部47は、ステップS90において画像取得部42が取得したステレオ撮像画像に基づいて除材容器T2の位置及び姿勢を検出する。また、容器等検出部47は、ステップS90において画像取得部42が取得したステレオ撮像画像に基づいてカッターCの刃Bの位置及び姿勢を検出する(ステップS100)。
なお、容器等検出部47は、予め記憶部32に記憶された給材容器T1のリファレンス画像を読み込み、読み込んだ当該リファレンス画像を用いたパターンマッチング等によって給材容器T1の位置及び姿勢を検出する。また、容器等検出部47は、予め記憶部32に記憶された除材容器T2のリファレンス画像を読み込み、読み込んだ当該リファレンス画像を用いたパターンマッチング等によって除材容器T2の位置及び姿勢を検出する。また、容器等検出部47予め記憶部32に記憶されたカッターCの刃Bのリファレンス画像を読み込み、読み込んだ当該リファレンス画像を用いたパターンマッチング等によってカッターCの刃Bの位置及び姿勢を検出する。
次に、梱包材検出部43は、ステップS90において画像取得部42が取得したステレオ撮像画像に基づいて梱包材Pの輪郭を検出する。また、梱包材検出部43は、ステップS90において画像取得部42が取得したステレオ撮像画像に基づいて梱包材Pの位置及び姿勢を検出する。また、梱包材検出部43は、ステップS90において画像取得部42が取得したステレオ撮像画像に基づいて梱包材Pに梱包された対象物Oそれぞれの輪郭を検出する(ステップS110)。
なお、梱包材検出部43は、予め記憶部32に記憶された梱包材Pのリファレンス画像を読み込み、読み込んだ当該リファレンス画像を用いたパターンマッチング等によって梱包材Pの輪郭を検出し、更に梱包材Pの位置及び姿勢を検出する。また、梱包材検出部43は、予め記憶部32に記憶された対象物Oのリファレンス画像を読み込み、読み込んだ当該リファレンス画像を用いたパターンマッチング等によって対象物Oの輪郭を検出する。
次に、判定部45は、ステップS110において梱包材検出部43により梱包材Pに梱包された対象物Oそれぞれの輪郭が検出されたか否かを判定する(ステップS120)。このステップS120における判定は、換言すると、梱包材Pに梱包された対象物Oが、梱包材Pの外側から視認可能であるか否かの判定である。
梱包材検出部43により梱包材Pに梱包された対象物Oそれぞれの輪郭が検出されていない(すなわち、収容状況が検出できない)と判定した場合(ステップS120−No)、把持位置姿勢算出部46は、ステップS110において梱包材検出部43により検出された梱包材Pの位置及び姿勢に基づいて、第1持上部位の位置及び姿勢と、第2持上部位の位置及び姿勢を算出する(ステップS150)。第1持上部位とは、ステップS155の処理においてロボット20が梱包材Pを持ち上げて揺らす際、第1エンドエフェクターEND1により梱包材Pが把持される部位のことである。第2持上部位とは、ステップS155の処理においてロボット20が梱包材Pを持ち上げて揺らす際、第2エンドエフェクターEND2により梱包材Pが把持される部位のことである。
ここで、把持位置姿勢算出部46による第1持上部位の位置及び姿勢と、第2持上部位の位置及び姿勢とを算出する処理について説明する。把持位置姿勢算出部46は、予め記憶部32に記憶された梱包材Pの重心から第1持上部位までの相対的な位置及び姿勢を示す情報を読み込む。そして、把持位置姿勢算出部46は、読み込んだ当該情報と、梱包材検出部43により検出された梱包材Pの位置及び姿勢とに基づいて、ロボット座標系における第1持上部位の位置及び姿勢を算出する。なお、撮像部座標系における位置及び姿勢と、ロボット座標系における位置及び姿勢とは、予めキャリブレーションにより対応付けられているとする。
また、把持位置姿勢算出部46は、予め記憶部32に記憶された梱包材Pの重心から第2持上部位までの相対的な位置及び姿勢を示す情報を読み込む。そして、把持位置姿勢算出部46は、読み込んだ当該情報と、梱包材検出部43により検出された梱包材Pの位置及び姿勢とに基づいて、ロボット座標系における第2持上部位の位置及び姿勢を算出する。
ステップS150において把持位置姿勢算出部46によりロボット座標系における第1持上部位の位置及び姿勢と、ロボット座標系における第2持上部位の位置及び姿勢とが算出された後、ロボット制御部49は、当該第1持上部位の位置及び姿勢に基づいて第1エンドエフェクターEND1に第1持上部位を把持させ、当該第2持上部位の位置及び姿勢とに基づいて第2エンドエフェクターEND2に第2持上部位を把持させる。
そして、ロボット制御部49は、予め記憶部32に記憶された第1所定高さを示す情報を読み込み、読み込んだ第1所定高さを示す情報に基づいて、第1エンドエフェクターEND1により第1持上部位を第1所定高さまで持ち上げる。また、ロボット制御部49は、予め記憶部32に記憶された第2所定高さを示す情報を読み込み、読み込んだ第2所定高さを示す情報に基づいて、第2エンドエフェクターEND2により第2持上部位を第2所定高さまで持ち上げる。第1所定高さと第2所定高さは、同じ高さであってもよく、異なる高さであってもよい。以下では、この一例において、第1所定高さと第2所定高さとが、同じ高さの場合について説明する。第1所定高さと第2所定高さは、例えば、梱包材Pを持ち上げた際に梱包材Pが作業台TBから離れる程度の高さであるが、他の高さであってもよい。
ロボット制御部49は、第1エンドエフェクターEND1に第1持上部位を第1所定高さまで持ち上げさせ、第2エンドエフェクターEND2に第2持上部位を第2所定高さまで持ち上げさせた後、第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちいずれか一方又は両方に梱包材Pを揺すらせる(振動させる)(ステップS155)。
より具体的には、例えば、ロボット制御部49は、第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちいずれか一方又は両方を所定時間が経過するまで所定方向に沿って所定往復数だけ往復運動を行わせることにより、ロボット20に梱包材Pを揺すらせる(すなわち、振動させる)。なお、所定時間は、例えば、5秒程度であるが、他の時間であってもよい。また、所定方向は、例えば、ロボット座標系におけるx座標軸又はy座標軸に平行な方向であるが、他の方向であってもよい。また、所定往復数は、例えば、2[1/s]であるが、他の往復数であってもよい。例えば、ロボット座標系におけるz座標軸は、地面に対して垂直方向な方向に設定されているとし、ロボット座標系におけるx座標軸及びy座標軸はそれぞれ、z座標軸に対して直交する方向に設定されているとする。なお、x座標軸及びy座標軸は、互いに直交している。
ステップS155においてロボット20に梱包材Pを揺すらせることにより、梱包材Pに梱包された対象物Oの収容状況は、梱包材Pの内側において対象物Oが重力によって下方へ移動することにより、第2収容状況となる。すなわち、ロボット制御部49は、梱包材Pに梱包された対象物Oの収容状況が検出できない(収容状況が不明な)場合であっても、ロボット20に梱包材Pを揺すらせることにより収容状況を第2収容状況へと変化させる(調整する)ことができる。なお、ロボット制御部49は、梱包材Pを揺すらせず、第1エンドエフェクターEND1に第1持上部位を第1所定高さまで持ち上げさせ、第2エンドエフェクターEND2に第2持上部位を第2所定高さまで持ち上げさせることにより収容状況を第2収容状況へと変化させる構成であってもよい。しかし、ロボット制御部は、ロボット20に梱包材Pを揺すらせることにより、収容状況をより確実に第2収容状況へと変化させる(調整する)ことができる。
ロボット制御部49は、ステップS155において梱包材Pに梱包された対象物Oの収容状況を第2収容状況にした後、予め記憶部32に記憶された所定の配置位置を読み込み、読み込んだ配置位置に梱包材Pを配置する。その後、把持位置姿勢算出部46は、後述するステップS160の処理を実行する。なお、ステップS155において、ロボット制御部49は、力センサー情報取得部41から第1力センサー23−1と第2力センサー23−2とのそれぞれが検出した力センサー情報を取得し、取得した力センサー情報に基づいた制御によって第1エンドエフェクターEND1及び第2エンドエフェクターEND2を動作させる。これにより、ロボット制御部49は、第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちのいずれか一方又は両方により、意図せず梱包材Pを開梱してしまうことを抑制することができる。
一方、梱包材検出部43により梱包材Pに梱包された対象物Oそれぞれの輪郭が検出されたと判定した場合(ステップS120−Yes)、収容状況検出部44は、ステップS110において梱包材検出部43により検出された梱包材Pの輪郭と、梱包材検出部43により検出された対象物Oの輪郭とに基づいて梱包材Pに梱包された対象物Oの収容状況が第1収容状況と第2収容状況のうちのいずれであるかを検出する(ステップS130)。
次に、判定部45は、ステップS130において収容状況検出部44により検出された収容状況が第2収容状況であったか否かを判定する(ステップS140)。収容状況検出部44により検出された収容状況が第2収容状況では無かった場合(ステップS140−No)、把持位置姿勢算出部46は、ステップS150に遷移し、ロボット座標系における第1持上部位の位置及び姿勢と、ロボット座標系における第2持上部位の位置及び姿勢とを算出する。一方、収容状況検出部44により検出された収容状況が第2収容状況であった場合(ステップS140−Yes)、把持位置姿勢算出部46は、第1把持部位の位置及び姿勢と、第2把持部位の位置及び姿勢とを算出する(ステップS160)。第1把持部位とは、ステップS170の処理において第1エンドエフェクターEND1に梱包材Pを把持させる部位のことである。第2把持部位とは、ステップS170の処理において第2エンドエフェクターEND2に梱包材Pを把持させる部位のことである。
ここで、図6を参照して把持位置姿勢算出部46による第1把持部位の位置及び姿勢と、第2把持部位の位置及び姿勢とを算出する処理について説明する。図6は、対象物Oの収容状況が第2収容状況となっている梱包材Pの一例を示す図である。図6において、説明の便宜上、梱包材Pが有する4つの辺をそれぞれ、辺S1〜辺S4と称して説明する。また、図6において、対象物Oは、梱包材Pの内側のうち、辺S3側の点線ARによって囲まれた領域に集まって第2収容状況を実現している。
把持位置姿勢算出部46は、例えば、ステップS110において梱包材検出部43により検出された梱包材Pの輪郭と、梱包材検出部43により検出された対象物Oの輪郭とに基づいて、対象物Oが集まっている側の辺S3とは反対側の辺S1の中点の位置及び姿勢を検出する。そして、把持位置姿勢算出部46は、予め記憶部32に記憶された第1把持部位の位置及び姿勢を示す情報と、第2把持部位の位置及び姿勢を示す情報とを読み込む。
記憶部32に記憶された第1把持部位の位置及び姿勢は、辺S1の中点から第1把持部位までの相対的な位置及び姿勢を示す情報である。また、記憶部32に記憶された第2把持部位の位置及び姿勢は、辺S1の中点から第2把持部位までの相対的な位置及び姿勢を示す情報である。把持位置姿勢算出部46は、検出した辺S1の中点の位置及び姿勢と、記憶部32から読み込んだ第1把持部位の位置及び姿勢と、記憶部32から読み込んだ第2把持部位の位置及び姿勢とに基づいて、ロボット座標系における第1把持部位の位置及び姿勢と、ロボット座標系における第2把持部位の位置及び姿勢とを算出する。
図6において、第1把持部位を丸G1によって示し、第2把持部位を丸G2によって示した。以下では、説明の便宜上、丸G1を第1把持部位G1と称して説明し、丸G2を第2把持部位G2と称して説明する。第1把持部位G1及び第2把持部位G2は、例えば、以下の3つの条件を満たす位置である。なお、第1把持部位G1及び第2把持部位G2は、以下の3つの条件を満たす位置に代えて、他の条件を満たす位置であってもよい。
条件1)第1把持部位G1及び第2把持部位G2は、辺S1と直交する辺S2又は辺S4上に位置していること
条件2)梱包材Pを開梱する際に切断し始める箇所が第1把持部位G1と第2把持部位G2とを結ぶ直線の中点を通り、当該直線に直交する直線上に位置すること
条件3)辺S1から第1所定距離だけ離れた位置に第1把持部位G1が位置し、辺S1から第2所定距離だけ離れた位置に第2把持部位G2が位置していること
図6において、第1所定距離を距離X1で示し、第2所定距離を距離X2で示した。また、図6において、梱包材Pを開梱する際にカッターCの刃Bによって切断する箇所を、線CLによって示した。また、図6において、第1把持部位G1と第2把持部位G2とを結ぶ直線を一点鎖線LXによって示し、一点鎖線LXの中点を円CP1によって示した。また、図6において、梱包材Pを開梱する際に切断し始める箇所を円CP2によって示した。なお、図6には、距離X1<距離X2である場合を示したが、距離X1>距離X2であってもよい。以下では、説明の便宜上、第1所定距離を第1所定距離X1、第2所定距離を第2所定距離X2と称して説明する。図6に示したように、第1把持部位G1は、辺S1から第1所定距離X1だけ離れ、辺S2上に位置している。また、第2把持部位G2は、辺S1から第2所定距離X2だけ離れ、辺S2上に位置している。そして、円CP2は、一点鎖線LX上に位置している。そのため、第1把持部位G1及び第2把持部位G2は、上記の条件1〜3を満たしている。
そして、ロボット20は、梱包材Pの第1把持部位G1を第1エンドエフェクターEND1によって把持する。また、ロボット20は、梱包材Pの第2把持部位G2を第2エンドエフェクターEND2によって把持する。ロボット20は、梱包材Pを辺S2に沿った方向に辺S4から辺S2へ向かう方向に移動させて梱包材Pの円CP2が示す箇所をカッターCの刃Bに押し当てることにより、線CLに沿って梱包材Pを切断し、梱包材Pを開梱する。なお、以下では、説明の便宜上、第1把持部位G1と第2把持部位G2の間の部位であり、図6に示した点線CAによって囲まれた部位を、カッターCの刃Bを最初に押し当てる切出部位CAと称して説明する。切出部位CAは、梱包材に張力を掛けた位置の一例である。
ステップS160の処理においてロボット座標系における第1把持部位G1の位置及び姿勢と、ロボット座標系における第2把持部位G2の位置及び姿勢とを算出した後、ロボット制御部49は、算出した当該第1把持部位G1の位置及び姿勢と、算出した当該第2把持部位G2の位置及び姿勢とに基づいて、第1エンドエフェクターEND1に第1把持部位G1を把持させ、第2エンドエフェクターEND2に第2把持部位G12を把持させる(ステップS170)。なお、ステップS170において、ロボット制御部49は、力センサー情報取得部41から力センサー23が検出した力センサー情報を取得し、取得した力センサー情報に基づく制御によって第1エンドエフェクターEND1及び第2エンドエフェクターEND2を動作させる。
次に、ロボット制御部49は、第1エンドエフェクターEND1と第2エンドエフェクターEND2が互いに離れる方向に力を加えることにより、上述した切出部位CAに張力を加え、切出部位CAが弛まない状態を保持する(ステップS180)。これにより、ロボット制御部49は、梱包材P(又は梱包材Pの切出部位CA)に加わる張力が不十分なために起こる事象、例えば、梱包材Pが刃に絡まることによる梱包材Pの切断の失敗を抑制することができる。また、ステップS180において、ロボット制御部49は、力センサー情報取得部41から力センサー23が検出した力センサー情報を取得し、取得した力センサー情報に基づく制御によって切出部位CAが弛まない状態を保持する。これにより、ロボット制御部49は、第1エンドエフェクターEND1と第2エンドエフェクターEND2によって切出部位CAに過大な力を加えてしまうことにより、梱包材Pを破いてしまうことを抑制することができる。
次に、ロボット制御部49は、第1エンドエフェクターEND1と第2エンドエフェクターEND2により梱包材Pを移動させて、切出部位CAをカッターCの刃Bに押し当てることにより、線CLに沿って梱包材Pを切断して開梱する(ステップS190)。なお、ステップS190において、ロボット制御部49は、予め記憶部32に記憶された円CP2が示す箇所の位置を示す情報を読み込み、読み込んだ当該情報と、ステップS110において梱包材検出部43により検出された梱包材Pの位置及び姿勢とに基づいて、図6に示した円CP2が示す箇所のロボット座標系における位置を算出する。円CP2が示す箇所の位置を示す情報とは、梱包材Pの重心から円CPが示す箇所までの相対的な位置を示す情報である。ロボット制御部49は、算出したロボット座標系における円CPの位置と、ステップS100において容器等検出部47が検出したカッターCの刃Bの位置及び姿勢とに基づいて、ステップS190の処理を行う。
なお、ロボット制御部49は、ステップS190において梱包材Pの切断に失敗した場合、第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちいずれか一方又は両方が把持している把持位置を他の把持位置に変更し、再びステップS180からステップS190までの処理を行う構成であってもよい。例えば、ステップS190において第1エンドエフェクターEND1が第1把持部位G1を把持していることに起因して梱包材Pの切断に失敗してしまうような場合、ユーザーは、ロボット制御部49により第1エンドエフェクターEND1が把持している把持位置を第1把持部位G1から他の把持位置に変更させることができる。
また、ステップS190において第2エンドエフェクターEND2が第2把持部位G2を把持していることに起因して梱包材Pの切断に失敗してしまうような場合、ユーザーは、ロボット制御部49により第2エンドエフェクターEND2が把持している把持位置を第2把持部位G2から他の把持位置に変更させることができる。また、切断の失敗が第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちのいずれの把持位置に起因するか不明の場合、ユーザーは、ロボット制御部49により第1エンドエフェクターEND1と第2エンドエフェクターEND2のそれぞれが把持している把持位置を他の把持位置に変更させることができる。
これらにより、ロボット制御部49は、梱包材Pの切断に失敗した場合であっても、作業を中断せずに続けることができる。
次に、ロボット制御部49は、第2エンドエフェクターEND2により第2把持位置G2を把持したまま梱包材Pを給材位置に移動させる(ステップS200)。給材位置とは、この一例において、給材容器T1の底面の中心から真上に第3所定距離だけ離れた位置である。なお、給材位置は、これに代えて、例えば、給材容器T1が投入孔を有している場合、当該投入孔を示す位置であってもよく、給材容器T1に対象物Oを給材することが可能な他の位置であってもよい。ステップS200において、ロボット制御部49は、予め記憶部32に記憶された給材位置情報を読み込む。給材位置情報は、給材容器T1の所定部位(この一例において、給材容器T1の底面の中心)から給材位置までの相対的な位置を示す情報である。
ロボット制御部49は、容器等検出部47により検出された給材容器T1の所定部位の位置及び姿勢と、記憶部32から読み込まれた給材位置情報とに基づいて、第2エンドエフェクターEND2により梱包材Pを給材位置に移動させる。なお、ロボット制御部49は、第2エンドエフェクターEND2により梱包材Pを給材位置に移動させる際、第1エンドエフェクターEND1により、梱包材Pの底を支える構成であってもよい。梱包材Pの底とは、例えば、第2エンドエフェクターEND2により持ち上げられている梱包材Pのうち、対象物Oの重みで鉛直下方に垂れている部分の重心の真下を示すが、他の部分であってもよい。
そして、ロボット制御部49は、第2エンドエフェクターEND2により梱包材Pを給材位置に移動させた後、第1エンドエフェクターEND1及び第2エンドエフェクターEND2により梱包材Pの切断された箇所が下になるように梱包材Pを持ち上げ、梱包材Pの内側に収容された対象物Oを給材容器T1に給材する(出す、載置する)。なお、下とは、前述のロボット座標系におけるz座標軸に沿う方向であって、第3撮像部21及び第4撮像部22から地面を向いた方向を示す。
次に、ロボット制御部49は、第1エンドエフェクターEND1及び第2エンドエフェクターEND2により把持された梱包材Pを、除材容器T2に除材する(ステップS210)。ステップS210において、ロボット制御部49は、予め記憶部32に記憶された除材位置情報を読み込む。除材位置情報は、除材容器T2の所定部位(この一例において、除材容器T2の底面の中心)から除材位置までの相対的な位置を示す情報である。
ロボット制御部49は、容器等検出部47により検出された除材容器T2の所定部位の位置及び姿勢と、記憶部32から読み込まれた除材位置情報とに基づいて、ロボット座標系における除材位置を算出する。ロボット制御部49は、算出した除材位置に基づいて、第1エンドエフェクターEND1により把持された梱包材Pを除材位置に移動させ、除材位置において第1エンドエフェクターEND1の爪部を開かせることにより当該梱包材Pを除材容器T2に除材させる(載置する)。また、ロボット制御部49は、算出した除材位置に基づいて、第2エンドエフェクターEND2により把持された梱包材Pを除材位置に移動させ、除材位置において第2エンドエフェクターEND2の爪部を開かせることにより当該梱包材Pを除材容器T2に除材させる(載置する)。
このように、制御部36は、ステップS80からステップS210までの処理を行うことにより、梱包材Pの内側に収容された対象物Oの収容状況に基づいて決定された梱包材Pの位置(この一例において、第1把持位置及び第2把持位置)をロボット20に把持させ、ロボット20に予め決められた作業を行わせる。これにより、制御部36は、梱包材に梱包された対象物の収容状況に応じた位置をロボット20に把持させて作業を行わせることができる。
なお、図5に示したフローチャートの各処理において、第1アームと第2アームの役割が逆であってもよい。また、第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちのいずれか一方又は両方は、爪部の代わりに空気の吸い込みによって物体を吸着させる吸着部を備える構成であってもよい。第1エンドエフェクターEND1が吸着部を備える場合、第1エンドエフェクターEND1は、第1把持部位G1を把持する構成に代えて、第1把持部位G1を吸着する。また、第2エンドエフェクターEND2が吸着部を備える場合、第2エンドエフェクターEND2は、第2把持部位G2を把持する構成に代えて、第2把持部位G2を吸着する。
また、制御部36は、梱包材検出部43により検出された梱包材Pの輪郭と、梱包材検出部43により検出された対象物Oの輪郭とに基づいて、梱包材Pに梱包された対象物Oの収容状況を検出する構成に代えて、ロボット制御部49によりロボット20に梱包材Pの表面を第1エンドエフェクターEND1と第2エンドエフェクターEND2とのうちいずれか一方又は両方によってなぞることにより収容状況を検出する構成であってもよい。この場合、ロボット制御部49は、第1エンドエフェクターEND1と第2エンドエフェクターEND2とのうちいずれか一方又は両方によって、何も配置していない作業台TBの上面をなぞることにより、作業台TBの上面の高さを検出する。
そして、ロボット制御部49は、第1エンドエフェクターEND1と第2エンドエフェクターEND2とのうちいずれか一方又は両方によって、対象物Oが梱包された梱包材Pの表面を、例えば、梱包材Pの辺S1から辺S3に向かってなぞる。この際、ロボット制御部49は、力センサー情報取得部41から取得された力センサー情報に基づく制御によって、梱包材Pを移動させてしまわないように梱包材Pの表面をなぞる。また、この際、制御部36は、所定間隔だけ第1エンドエフェクターEND1と第2エンドエフェクターEND2とのうちいずれか一方又は両方が梱包材Pの表面上を移動する毎に、梱包材Pの表面の高さを検出する。制御部36は、検出した高さを、梱包材Pの表面上の位置を示す情報と対応付けた対応情報を記憶する。制御部36は、記憶した対応情報に基づいて、梱包材Pの表面上において検出された表面の高さが所定値以上の位置が、梱包材Pの表面上においてどのように分布しているかを特定し、特定した分布に基づいて、梱包材Pの内側に梱包された対象物Oの収容状況を検出する。
以上説明したように、本実施形態におけるロボット20は、梱包材Pに梱包された対象物Oの収容状況に基づいて梱包材Pを把持する。より具体的には、ロボット20は、梱包材Pに梱包された対象物Oの収容状況に基づいて決定される梱包材Pの位置(この一例において、第1把持部位G1の位置と、第2把持部位G2の位置)を把持する。これにより、ロボット20は、梱包材に梱包された対象物の収容状況に応じた位置を把持して作業を行うことができる。
また、ロボット20は、梱包材Pを把持した後、梱包材Pを切断する。ロボット20は、梱包材Pの内側から対象物Oを梱包材Pの外側に出すことができる。
また、ロボット20は、梱包材Pを切断する際、梱包材Pに張力を掛けた位置(この一例において、切出部位CA)を切断する。これにより、ロボット20は、梱包材Pに加わる張力が不十分なために起こる事象による梱包材Pの切断の失敗を抑制することができる。
また、ロボット20は、梱包材Pを切断した後、対象物Oを梱包材Pから出し、梱包材Pを所定の場所へ載置する。これにより、ロボット20は、梱包材Pを開梱して対象物Oを給材することを、開梱後の梱包材Pに干渉することなく繰り返し行うことができる。
また、ロボット20は、梱包材Pを把持し、梱包材Pを移動させて、対象物Oと梱包材Pとの位置関係を変化させる。これにより、ロボット20は、梱包材Pを移動することにより調整された収容状況に応じた位置を把持して作業を行うことができる。
また、ロボット20は、収容状況が検出できない場合、梱包材Pを移動させて、対象物Oと梱包材Pとの位置関係を変化させる。これにより、ロボット20は、梱包材Pに梱包された対象物Oの収容状況が分からない場合であっても、梱包材Pを移動することにより調整された収容状況に応じた位置を把持して作業を行うことができる。
また、ロボット20は、梱包材Pに梱包された対象物Oの収容状況に基づいて、第1エンドエフェクターEND1により梱包材Pの第1把持部位を把持し、第2エンドエフェクターEND2により梱包材Pの第2把持部位を把持する。これにより、ロボット20は、梱包材Pに梱包された対象物Oの収容状況に応じた第1把持部位を第1エンドエフェクターEND1により把持し、当該収容状況に応じた第2把持部位を第2エンドエフェクターEND2により把持して作業を行うことができる。
また、ロボット20は、梱包材Pに梱包された対象物Oの収容状況を梱包材Pの内側における少なくとも2つ以上の対象物Oの位置に基づいて決定する。これにより、ロボット20は、2つ以上の対象物Oの位置に基づいて決定された収容状況に応じた位置を把持して作業を行うことができる。
また、ロボット20は、第3撮像部21及び第4撮像部22が撮像した撮像画像に基づいて梱包材Pの内側における少なくとも2つ以上の対象物Oの位置を検出する。これにより、ロボット20は、当該撮像画像に基づいて検出された2つ以上の対象物Oの位置に基づいて決定された収容状況に応じた位置を把持して作業を行うことができる。
また、ロボット20は、梱包材Pの表面をなぞるように第1エンドエフェクターEND1と第2エンドエフェクターEND2とのうちいずれか一方又は両方を移動させ、梱包材Pの表面の高さの変化に基づいて収容状況を判定する。これにより、ロボット20は、梱包材Pの表面の高さの変化に基づいて決定された収容状況に応じた位置を把持して作業を行うことができる。
また、ロボット20は、第1エンドエフェクターEND1により梱包材Pを把持し、梱包材Pの切断に失敗した場合、第1エンドエフェクターEND1による梱包材Pの把持位置を変更する。これにより、ロボット20は、例えば、梱包材Pの切断に適していない位置を第1エンドエフェクターEND1が把持したことにより梱包材Pの切断が失敗した場合であっても、作業を中断せずに続けることができる。
また、ロボット20は、更に第2エンドエフェクターEND2により梱包材Pを把持し、梱包材Pの切断に失敗した場合、第2エンドエフェクターEND2による梱包材Pの把持位置を変更する。これにより、ロボット20は、例えば、梱包材Pの切断に適していない位置を第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちいずれか一方又は両方が把持したことにより梱包材Pの切断が失敗した場合であっても、作業を中断せずに続けることができる。
また、ロボット20は、力センサー23から取得された力センサー情報に基づいて梱包材Pを把持する。これにより、ロボット20は、梱包材Pを把持した際に、梱包材Pに対して過剰な力を加えることによって意図せずに梱包材Pを開梱してしまうことを抑制することができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、ロボット20の制御装置30)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。