<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態に係る梱包システム1の一例を示す構成図である。梱包システム1は、梱包装置20と、グラビティーコンベアーGCと、ベルトコンベアーBCを備える。また、梱包装置20は、制御装置30を内蔵する。
図1において、グラビティーコンベアーGCには、最大でN個の梱包物Cが載置可能である。Nは、1以上の整数である。また、この一例において、グラビティーコンベアーGCには、梱包物Cが所定個数未満になった場合、ユーザーや他のロボットによって梱包物Cが供給される。なお、所定個数は、1以上の整数であれば、如何なる個数でも構わない。グラビティーコンベアーGCは、グラビティーコンベアーGCに載置されている1以上の梱包物Cを重力によって1つずつ所定の第1供給位置に供給する(運ぶ)。
第1供給位置に供給するとは、梱包物Cの所定部位の位置が第1供給位置と一致するように梱包物Cを移動させることを示す。梱包物Cの所定部位とは、例えば、梱包物Cの底面の中心であるが、梱包物Cの他の部位であってもよい。梱包物Cの底面とは、梱包物Cが載置されている場合に載置面と接面する面を示す。なお、第1供給位置は、梱包物Cの所定部位の位置が第1供給位置と一致した場合に、梱包装置20によって梱包物Cを保持することが可能な位置であればどこの位置であってもよい。
梱包物Cとは、例えば、産業用に加工された加工品や部品等の物体であるが、他の物体であってもよい。この一例において、梱包物Cは、立方体形状の物体によって表すが、他の形状であってもよい。なお、この一例において、1以上の梱包物Cのそれぞれが、互いに形状や大きさが同一である場合について説明するが、これに代えて、互いに形状や大きさが異なる場合であってもよい。また、この一例において、梱包物Cは、グラビティーコンベアーGCにより1つずつ第1供給位置に供給される構成に代えて、ベルトコンベアーにより供給されてもよく、他の方法によって供給されてもよく、バラ積みされていてもよい。
また、図1において、ベルトコンベアーBCのベルト上には、M個の箱体B1〜BMが載置されている。Mは、1以上の整数である。以下では、説明の便宜上、箱体B1〜BMを区別する必要が無い限り、まとめて箱体Bと称して説明する。また、以下では、ベルトコンベアーBCのベルトを、単にベルトと称して説明する。例えば、M個の箱体Bのそれぞれは、ベルト上に設定されている複数の所定の載置位置毎に載置されている。ベルト上に設定されている所定の載置位置に箱体Bが載置されているとは、箱体Bの所定部位の位置が、当該載置位置と一致するように載置されていることを示す。
しかし、箱体Bのそれぞれは、ベルト上の当該載置位置に固定されているわけではない。すなわち、箱体Bのそれぞれは、ベルト(載置面)上の複数の所定の載置位置毎に動かないように固定されているわけではなく、単に載置されているだけであり、箱体Bの所定部位の位置が所定の載置位置からずれる場合がある。この一例において、以下では、箱体Bの所定部位の位置が所定の載置位置からずれている場合について説明する。
なお、箱体Bの所定部位とは、例えば、箱体Bの底面の中心であるが、箱体Bの他の部位であってもよい。また、この一例において、箱体Bの所定部位の位置と所定の載置位置とのずれは、最も大きくずれた場合であっても、ベルト上に設定された所定の載置位置に対して梱包物Cの所定部位の位置を一致させるように梱包物Cを配置した際に、梱包物Cが箱体Bの内側に含まれる程度のずれである場合について説明する。
ベルトコンベアーBCは、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB(Universal Serial Bus)等の規格によって行われる。なお、ベルトコンベアーBCと制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。ベルトコンベアーBCは、制御装置30からの制御信号に基づいてベルトコンベアーBCに載置されている箱体Bを、ベルトを駆動することによって1つずつ所定の第2供給位置に供給する(運ぶ)。
箱体Bを第2供給位置に供給するとは、ベルト上に設定された所定の載置位置が第2供給位置と一致するようにベルトを駆動することにより、当該載置位置に載置された箱体Bを当該載置位置とともに(すなわち、ベルトとともに)移動させることを示す。
しかし、上述したように、箱体Bは、ベルト上の当該載置位置に固定されているわけではない。そのため、箱体BがベルトコンベアーBCにより第2供給位置に供給された場合、箱体Bの所定部位の位置は、ベルト上で箱体Bが所定の載置位置からずれてしまうことにより、第2供給位置と一致せずにずれる場合がある。なお、第2供給位置は、箱体Bが第2供給位置に供給された場合に、梱包装置20によって梱包物Cを箱体Bに収納することが可能な位置であればどこの位置であってもよい。
箱体Bとは、例えば、折り畳まれた状態の段ボール(梱包材の一例)から組み立てられた段ボール箱であるが、梱包物Cを梱包可能な他の容器であってもよい。また、箱体Bは、梱包物CをQ個梱包することが可能な形状・大きさの段ボール箱である。Qは、1以上の整数である。以下では、この一例として、Qが4の場合について説明する。また、この一例において、箱体Bは、ベルトコンベアーBCにより1つずつ第2供給位置に供給される構成に代えて、グラビティーコンベアーにより供給されてもよく、他の方法によって供給されてもよく、バラ積みされていてもよい。
梱包システム1は、梱包装置20により箱体Bに梱包物Cを梱包する。また、梱包システム1は、梱包装置20により1つの箱体Bに対してQ個の梱包物Cを梱包する。Qは、1以上の整数である。梱包システム1は、第1供給位置に供給された梱包物Cを梱包装置20に保持させる。梱包物Cを梱包装置20が保持するとは、この一例において、梱包物Cを、梱包装置20が備える1以上のアームによって持ち上げて移動させることが可能な状態にすることを示す。
梱包システム1は、梱包装置20により保持された梱包物Cを、第2供給位置に供給された箱体Bに梱包する。梱包物Cを箱体Bに梱包するとは、この一例において、箱体B内の所定の収納位置に梱包物Cを収納(配置)することを示す。以下では、梱包物Cを箱体Bに梱包することを、梱包物Cを箱体Bに収納すると称して説明する。
ここで、箱体Bには、Q個の所定の収納位置が決められている。この一例において、梱包物Cの形状が直方体形状であるため、所定の収納位置は、梱包物Cを箱体B内に縦方向i個、横方向j個整列するように決められている。以下では、説明の便宜上、箱体B内におけるi列j行目の梱包物の位置を収納位置(i,j)と称して説明する。なお、i,jは、1以上の整数である。また、I×J=Qである。ここで、Iは、iの最大値を示す。また、Jは、jの最大値を示す。以下では、一例として、Q=4であり、且つI=2、J=2の場合について説明する。
すなわち、梱包システム1は、4個の梱包物Cのそれぞれを箱体B内の所定の収納位置に収納する。以下では、説明の便宜上、4個の梱包物Cのそれぞれが箱体B内の所定の収納位置に収納された状態の箱体Bを、梱包済の箱体Bと称して説明する。梱包システム1は、箱体Bに4個の梱包物Cを収納した後、梱包済の箱体BをベルトコンベアーBCにより次の作業工程が行われる場所へと運ぶとともに、次の箱体Bを第2供給位置に供給する。そして、梱包システム1は、当該箱体Bに次の4個の梱包物Cを収納する。なお、この一例において、梱包システム1は、箱体Bに梱包物Cを1つずつ梱包する場合について説明するが、2以上の梱包物Cの集まりを保持し、保持した当該集まり毎に箱体Bへ梱包物Cを梱包する構成であってもよい。
4個の梱包物Cを箱体Bに梱包する際、梱包システム1の梱包装置20は、箱体Bの第1部位に第1エンドエフェクターによって力を加えることにより箱体Bを動かし、箱体Bの第2部位に第2エンドエフェクターを接触させ、箱体Bの位置決めをする。ここで、第1エンドエフェクターと第2エンドエフェクターはそれぞれ、力センサーを備える。従って、梱包装置20は、力センサーの出力値に基づく制御によって第1エンドエフェクターと第2エンドエフェクターを動作させ、箱体Bの位置決めをする。この一例において、箱体Bの位置決めとは、ロボット座標系における箱体Bの所定部位の位置を検出(算出、特定)することを示す。
これにより、梱包システム1は、載置面に固定されていない箱体Bに対しても精度よく梱包物Cを収納することができる。換言すると、梱包システム1は、箱体Bの所定部位の位置が、ベルト上に設定された所定の載置位置からずれていた場合であっても、箱体Bに対して精度よく梱包物Cを収納することができる。
以下では、この梱包システム1による梱包物Cの箱体Bへの梱包方法について詳しく説明する。
ここで、梱包システム1が備える梱包装置20について説明する。
梱包装置20は、例えば、第1撮像部11と、第2撮像部12と、第3撮像部21と、第4撮像部22と、第1力センサー23−1と、第2力センサー23−2と、第1エンドエフェクターEND1と、第2エンドエフェクターEND2と、第1マニピュレーターMNP1と、第2マニピュレーターMNP2と、図示しない複数のアクチュエーターを備え、制御装置30を内蔵した双腕ロボットである。
双腕ロボットとは、2本のアーム(腕)を有するロボットを示し、本実施形態では、第1エンドエフェクターEND1と第1マニピュレーターMNP1によって構成されるアーム(以下、第1アームと称する)と、第2エンドエフェクターEND2と第2マニピュレーターMNP2によって構成されるアーム(以下、第2アームと称する)との2本のアームを有する。第1エンドエフェクターEND1は、第1のエンドエフェクターの一例である。第2エンドエフェクターEND2は、第2のエンドエフェクターの一例である。
なお、梱包装置20は、双腕ロボットに代えて、単腕ロボットであってもよい。単腕ロボットとは、1本のアームを有するロボットを示し、例えば、前述の第1アームと第2アームのうちいずれか一方を有するロボットを示す。
第1アームは、7軸垂直多関節型となっており、支持台と第1マニピュレーターMNP1と第1エンドエフェクターEND1とがアクチュエーターによる連携した動作によって7軸の自由度の動作を行うことができる。なお、第1アームは、6自由度(6軸)以下で動作するものであってもよく、8自由度(8軸)以上で動作するものであってもよい。第1アームは、第1アーム部の一例である。また、第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アームは、6自由度(6軸)以下で動作するものであってもよく、8自由度(8軸)以上で動作するものであってもよい。第2アームは、第2アーム部の一例である。また、第2アームは、第2撮像部12を備える。
第2撮像部12は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。
第2撮像部12は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第2撮像部12と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。第2撮像部12は、図1に示したように第2アームを構成する第2マニピュレーターMNP2の一部に備えられており、第2アームの動きによって移動することが可能である。
ここで、この一例のように梱包装置20が双腕ロボットの場合、第1アームの一部又は全部と、第2アームの一部又は全部とは、可動部の一例である。第1アームの一部又は全部とは、第1アームを構成する第1エンドエフェクターEND1と第1マニピュレーターMNP1のうちの一部又は全部を示す。また、第2アームの一部又は全部とは、第2アームを構成する第2エンドエフェクターEND2と第2マニピュレーターMNP2のうちの一部又は全部を示す。なお、梱包装置が単腕ロボットの場合、単腕ロボットが備える第1アーム又は第2アームのいずれかの一部又は全部が可動部の一例である。
第3撮像部21は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。第3撮像部21は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第2撮像部12と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
第4撮像部22は、例えば、集光された光を電気信号に変換する撮像素子であるCCDやCMOS等を備えたカメラである。第4撮像部22は、ケーブルによって制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、第4撮像部22と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
なお、本実施形態において、梱包装置20は、第1撮像部11、第2撮像部12、第3撮像部21、第4撮像部22の一部又は全部を備えない構成であってもよい。また、梱包装置20が第1撮像部11、第2撮像部12、第3撮像部21、第4撮像部22の一部又は全部を備える場合、第1撮像部11、第2撮像部12、第3撮像部21、第4撮像部22の一部又は全部は、梱包装置20と別体として設けられてもよい。
第1力センサー23−1は、第1エンドエフェクターEND1と第1マニピュレーターMNP1との間に備えられている。第1力センサー23−1は、第1エンドエフェクターEND1に作用した力やモーメントを検出する。第1力センサー23−1は、検出した力やモーメントを示す情報(以下、力センサー情報と称する)を、通信により制御装置30へ出力する。なお、第1力センサー23−1は、トルクセンサー等の第1エンドエフェクターEND1に加わる力やモーメントを検出する他のセンサーであってもよい。第1力センサー23−1は、力検出部の一例である。
第2力センサー23−2は、第2エンドエフェクターEND2と第2マニピュレーターMNP2との間に備えられている。第2力センサー23−2は、第2エンドエフェクターEND2に作用した力やモーメントを検出する。第2力センサー23−2は、検出した力やモーメントを示す情報(以下、力センサー情報と称する)を、通信により制御装置30へ出力する。なお、第2力センサー23−2は、トルクセンサー等の第2エンドエフェクターEND2に加わる力やモーメントを検出する他のセンサーであってもよい。第2力センサー23−2は、力検出部の一例である。
第1力センサー23−1と第2力センサー23−2のうちいずれか一方又は両方により検出された力センサー情報は、制御装置30による梱包装置20の力センサー情報に基づく制御に用いられる。力センサー情報に基づく制御とは、例えば、インピーダンス制御等のコンプライアンス制御を示す。なお、以下では、第1力センサー23−1と第2力センサー23−2を区別する必要が無い限り、まとめて力センサー23と称して説明する。また、力センサー情報に含まれる力の大きさやモーメントの大きさを示す値は、力センサーの出力値の一例である。
梱包装置20は、内蔵された制御装置30により制御される。なお、梱包装置20は、制御装置30を内蔵する構成に代えて、外部に設置された制御装置30により制御される構成であってもよい。
梱包装置20が備える第1撮像部11、第2撮像部12、第3撮像部21、第4撮像部22、第1力センサー23−1、第2力センサー23−2、第1エンドエフェクターEND1、第2エンドエフェクターEND2、第1マニピュレーターMNP1、第2マニピュレーターMNP2、図示しない複数のアクチュエーターのそれぞれ(以下、梱包装置20が備える各機能部と称する)は、例えば、梱包装置20に内蔵されている制御装置30とケーブルによって通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、梱包装置20が備える各機能部と制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続されてもよい。本実施形態において、梱包装置20が備える各機能部は、梱包装置20に内蔵された制御装置30から制御信号を取得し、取得した制御信号に基づいた動作を行う。
制御装置30は、梱包装置20に制御信号を送信することにより、梱包装置20を動作させる。制御装置30は、梱包装置20を動作させることにより、梱包物Cを箱体Bに収納させる。また、制御装置30は、ベルトコンベアーBCに制御信号を送信することにより、ベルトコンベアーBCを動作させる。制御装置30は、ベルトコンベアーBCを動作させることにより、箱体Bを第2供給位置まで供給する。なお、制御装置30は、ベルトコンベアーBCを動作させる構成に代えて、ベルトコンベアーBCを動作させない構成であってもよい。この場合、ベルトコンベアーBCは、他の制御装置により動作させられてもよく、作業員等のユーザーによって動作させられてもよい。
次に、図2を参照して、制御装置30のハードウェア構成について説明する。図2は、制御装置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)ディスプレイパネルである。
次に、図3を参照して、制御装置30の機能構成について説明する。図3は、制御装置30の機能構成の一例を示す図である。制御装置30は、記憶部32と、入力受付部33と、表示部35と、制御部36を備える。
制御部36は、制御装置30の全体を制御する。制御部36は、位置情報読込部41と、位置検出部42と、位置算出部43と、力センサー情報取得部44と、梱包装置制御部45と、計数部46と、判定部47と、ベルトコンベアー制御部48を備える。制御部36が備える機能部のうち一部又は全部は、例えば、CPU31が、記憶部32に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
位置情報読込部41は、予め記憶部32に記憶された各種の位置情報を読み込む。各種の位置情報とは、図5に示したフローチャートにおいて説明する情報であり、例えば、前述した第1供給位置を示す情報や第2供給位置を示す情報、収納位置(1,1)〜収納位置(I,J)のそれぞれを示す情報等を含む。
位置検出部42は、力センサー23から取得される力センサー情報に基づいて、第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちいずれか一方又は両方のロボット座標系における位置を検出する。この一例において、第1エンドエフェクターEND1のロボット座標系における位置とは、第1エンドエフェクターEND1のTCP(Tool Center Point)のロボット座標系における位置を示す。また、第2エンドエフェクターEND2のロボット座標系における位置とは、第2エンドエフェクターEND2のTCPのロボット座標系における位置を示す。
位置算出部43は、図5に示したフローチャートにおいて箱体Bの位置決めを行う位置決め動作を梱包装置20に行わせるために必要な各種の位置を算出する。
力センサー情報取得部44は、力センサー23により検出される力センサー情報を取得する。
梱包装置制御部45は、位置算出部43により算出された各種の位置を示す情報に基づいて梱包装置20を動作させる。また、梱包装置制御部45は、力センサー情報取得部44が取得した力センサー情報に基づく制御により梱包装置20を動作させる。
計数部46は、梱包装置20により作成された梱包済の箱体Bの数をカウントする。
判定部47は、計数部46がカウントした梱包済の箱体Bの数が所定数に達したか否かを判定する。所定数とは、例えば、10であるが、他の数であってもよい。また、判定部47は、図5に示したフローチャートにおいて説明する各種の判定を行う。
ベルトコンベアー制御部48は、ベルトコンベアーBCを動作させ、箱体Bを第2供給位置まで供給させる。また、ベルトコンベアー制御部48は、ベルトコンベアーBCを動作させ、梱包済の箱体Bを次の作業工程が行われる場所へ供給する。
次に、図4を参照して、制御装置30の制御部36が梱包装置20に梱包済の箱体Bを所定数だけ作成させる処理について説明する。図4は、制御装置30の制御部36が梱包装置20に梱包済の箱体Bを所定数だけ作成させる処理の流れの一例を示すフローチャートである。なお、以下では、計数部46によってカウントされる梱包済の箱体Bのカウント数は、ステップS100の処理が行われる前に0に初期化されているとして説明する。
まず、ベルトコンベアー制御部48は、ベルトコンベアーBCのベルトを駆動させ、箱体Bを第2供給位置まで供給する(ステップS100)。
次に、制御部36は、制御部36が備える各機能部により梱包処理を行い、4個の梱包物CをステップS100において供給された箱体Bに収納する(ステップS110)。そして、計数部46は、梱包済の箱体Bのカウント数を1だけ増やす。次に、判定部47は、計数部46によりカウントされた梱包済の箱体Bの数が所定数に達したか否かを判定する(ステップS120)。計数部46によってカウントされた梱包済の箱体Bのカウント数が所定数に達していないと判定部47が判定した場合(ステップS120−No)、ベルトコンベアー制御部48は、ステップS100に遷移し、次の箱体Bを第2供給位置に供給する。一方、計数部46によってカウントされた梱包済の箱体Bのカウント数が所定数に達したと判定部47が判定した場合(ステップS120−Yes)、制御部36は、処理を終了する。
次に、図5を参照して、図4に示したステップS110において制御部36により行われる梱包処理について説明する。図5は、図4に示したステップS110において制御部36により行われる梱包処理の流れの一例を示すフローチャートである。
この一例において、図5に示したフローチャートの処理によって行われる梱包装置20の動作は、ある箱体Bに収納する梱包物Cの収納順によって異なる。より具体的には、梱包装置20の動作は、ある箱体Bに収納する梱包物Cのうち、最初に収納する梱包物Cを当該箱体Bに梱包する動作と、最初と最後以外に収納する梱包物Cを当該箱体Bに梱包する動作と、最後に収納する梱包物Cを当該箱体Bに梱包する動作とが異なる。
そこで、以下では、最初に収納する梱包物Cを当該箱体Bに梱包する動作と、最初と最後以外に収納する梱包物Cを当該箱体Bに梱包する動作と、最後に収納する梱包物Cを当該箱体Bに梱包する動作とを、図5に示したフローチャートを参照して順に説明する。
なお、以下では、説明の便宜上、図4に示したステップS110において梱包装置20が梱包物Cを収納する箱体Bを、対象箱体と称して説明する。また、以下では、対象箱体に収納する梱包物Cの収納順を、変数rによって表す。すなわち、変数r=1の場合、梱包装置20は、対象箱体に収納する梱包物Cのうち、最初に収納する梱包物Cを対象箱体に梱包する動作を行う。また、変数r=2〜Q−1の場合、梱包装置20は、対象箱体に収納する梱包物Cのうち、最初と最後以外に収納する梱包物Cを対象箱体に梱包する動作を行う。変数r=Qの場合、梱包装置20は、対象箱体に収納する梱包物Cのうち、最後に収納する梱包物Cを対象箱体に梱包する動作を行う。
<動作例1:最初に収納する梱包物Cを対象箱体に梱包する動作について>
以下では、予め記憶部32に記憶された梱包関連情報を制御部36が読み込み済である場合について説明する。梱包関連情報は、梱包物Cと箱体Bの形状や大きさを表す情報や、第1エンドエフェクターEND1及び第2エンドエフェクターEND2の形状や大きさを表す情報である。また、以下では、予め記憶部32に記憶された第2供給位置を示す情報を制御部36が記憶部32から読み込み済である場合について説明する。ここで、第2供給位置は、ロボット座標系において表される。
まず、制御部36は、変数rを生成する。また、制御部36は、1〜Qまでの数字を若い数字から順に1つずつ選択する。制御部36は、選択した値を変数rに代入する。そして、制御部36は、変数rに代入した値毎にステップS210からステップS330までの処理を繰り返し行う(ステップS200)。動作例1において、制御部36は、変数rに1を代入する。
次に、位置情報読込部41は、予め記憶部32に記憶された第1供給位置を示す情報を記憶部32から読み込む。ここで、第1供給位置は、ロボット座標系において表される。梱包装置制御部45は、読み込んだ第1供給位置を示す情報と、梱包関連情報とに基づいて、グラビティーコンベアーGCにより第1供給位置に供給された梱包物Cを梱包装置20に保持させる(ステップS210)。また、梱包装置制御部45は、力センサー情報取得部44が取得した力センサー情報に基づく制御によって第1エンドエフェクターEND1と第2エンドエフェクターEND2に梱包物Cを保持させる。
なお、以下では、説明の便宜上、第1エンドエフェクターEND1と第2エンドエフェクターEND2を、まとめて両エンドエフェクターと称して説明する。また、両エンドエフェクターに梱包物Cを保持させるとは、例えば、梱包物Cを、第1エンドエフェクターEND1が備える爪部と第2エンドエフェクターEND2が備える爪部により挟み込み、持ち上げて移動させることができる状態にさせることを示す。
次に、判定部47は、変数rに代入されている値がQ(この一例において4)であるか否かを判定する(ステップS220)。
変数rに代入されている値がQであると判定部47が判定した場合(ステップS220−Yes)、梱包装置制御部45は、処理をステップS330に進める。
一方、変数rに代入されている値がQではないと判定部47が判定した場合(ステップS220−No)、梱包装置制御部45は、処理をステップS230に進める。
動作例1におけるステップS220では、判定部47は、変数r=1であるため、変数rに代入されている値がQではないと判定する。このため、動作例1では、判定部47がステップS220において変数rに代入されている値がQではないと判定した場合についてのみ説明する。
変数rに代入された値がQではないと判定部47が判定した場合、位置情報読込部41は、予め記憶部32に記憶された行列数対応情報を読み込む。行列数対応情報は、変数rに代入される値に応じた列数i及び行数jが対応付けられた情報である。この一例において、rに対応付けられた列数i及び行数jは、以下に示す通りである。
r=1 <−(対応)―> (i,j)=(1,1)
r=2 <−(対応)―> (i,j)=(2,1)
r=3 <−(対応)―> (i,j)=(1,2)
r=4 <−(対応)―> (i,j)=(2,2)
位置情報読込部41は、読み込んだ行列数対応情報から、現在の変数rに代入されている値に応じた列数i及び行数jを抽出する。位置情報読込部41は、抽出した列数i及び行数jに基づいて、予め記憶部32に記憶された配置位置(i,j)を示す情報を記憶部32から読み込む。配置位置(i,j)とは、梱包物Cを対象箱体内の収納位置(i,j)に収納する前の事前準備として仮に配置する位置である。また、配置位置(i,j)は、例えば、何らかの位置から配置位置(i,j)までの相対的な位置として表される。位置算出部43は、位置情報読込部41が読み込んだ配置位置(i,j)を示す情報に基づいて、ロボット座標系における配置位置(i,j)を算出する(ステップS230)。
動作例1におけるステップS230では、位置情報読込部41は、行列数対応情報から(i,j)=(1,1)となる列数及び行数を抽出する。位置情報読込部41は、抽出した(i,j)=(1,1)となる列数及び行数に基づいて、配置位置(1,1)を示す情報を記憶部32から読み込む。配置位置(1,1)は、第2供給位置から配置位置(1,1)までの相対的な位置として表される。すなわち、位置算出部43は、読み込んだ配置位置(1,1)を示す情報と、予め記憶部32から読み込んだ第2供給位置を示す情報とに基づいて、ロボット座標系における配置位置(1,1)を算出する。
ここで、第2供給位置は、ベルト上に設定された所定の載置位置に対象箱体が正確に載置されていた場合、対象箱体の所定部位の位置と一致する位置である。この一例において、対象箱体の所定部位、すなわち箱体Bの所定部位は、箱体Bの底面の中心である。そのため、この一例のように対象箱体の所定部位の位置が第2供給位置からずれていた場合であっても、梱包物Cの所定部位の位置が第2供給位置に一致するように梱包物Cを配置すると、梱包物Cを対象箱体の内側に配置することができる可能性が高い。このような理由から、動作例1において配置位置(1,1)は、第2供給位置と一致していることが望ましい。そこで、以下では、配置位置(1,1)が第2供給位置と一致している場合について説明する。
次に、梱包装置制御部45は、ステップS230において位置算出部43が算出したロボット座標系における配置位置(i,j)を示す情報に基づいて、梱包装置20に梱包物Cを配置位置(i,j)に配置させる(ステップS240)。梱包物Cをロボット座標系における配置位置(i,j)に配置させるとは、梱包物Cの所定部位の位置を、ロボット座標系における配置位置(i,j)に一致させることを示す。
この動作例1におけるステップS240では、梱包装置制御部45は、位置算出部43が算出したロボット座標系における配置位置(1,1)を示す情報に基づいて、梱包装置20に梱包物Cを配置位置(1,1)に配置させる。
ここで、図6を参照して、動作例1におけるステップS240の処理について説明する。図6は、梱包装置制御部45が梱包装置20に梱包物Cを配置位置(1,1)に配置させた直後の様子の一例を示す図である。図6に示した座標軸のx座標及びy座標は、ロボット座標系における位置を表す。なお、この座標軸は、図6〜図23において共通であるため、図7〜図23において説明を省略する。また、図6〜図23において、この座標軸のx座標軸とy座標軸は、逆であってもよい。また、以下では、動作例1において梱包装置20が対象箱体に収納する梱包物Cを、梱包物C1と称して説明する。
前述したように、この一例において、第2供給位置と配置位置(1,1)は、同一の位置を示すため、更にベルト上に設定された所定の載置位置とも一致する。また、この一例において、対象箱体の所定部位の位置は、ベルト上に設定された所定の載置位置と一致せずにずれている。すなわち、梱包装置制御部45が両エンドエフェクターに保持させた梱包物C1を、配置位置(1,1)に配置するように梱包装置20を動作させた場合、梱包装置20は、図6に示したように、対象箱体の内側の位置であって対象箱体の所定部位の位置とはずれた位置に配置する。図6に示した例では、点線の丸P1が配置位置(1,1)、すなわち第2供給位置を示し、点線の丸P2が対象箱体の所定部位の位置を示す。図6に示したように、配置位置(1,1)と対象箱体の所定部位の位置とはずれている。
ここで、説明の便宜上、配置位置(1,1)に梱包物C1を配置した場合に梱包物C1を囲む対象箱体の4つの壁面をそれぞれ、ロボット座標系のx座標軸の正の方向側の壁面から時計回り順に壁面W1、壁面W2、壁面W3、壁面W4と称して説明する。これらの壁面W1〜W4は、図6〜図23において共通であるため、図7〜図23において説明を省略する。
また、図6において第1エンドエフェクターEND1から伸びている矢印は、第1エンドエフェクターEND1が力センサー情報に基づく制御によって梱包物C1に加えている力の方向を表している。また、図6において第2エンドエフェクターEND2から伸びている矢印は、第2エンドエフェクターEND2が力センサー情報に基づく制御によって梱包物C1に加えている力の方向を表している。
図5に戻る。次に、位置情報読込部41は、ステップS230において抽出した列数i及び行数jに基づいて、予め記憶部32に記憶された第1待機位置(i,j)を示す情報を記憶部32から読み込む(ステップS250)。
この動作例1におけるステップS250では、梱包装置制御部45は、位置情報読込部41は、第1待機位置(1,1)を示す情報を記憶部32から読み込む。
第1待機位置(i,j)を示す情報には、第1−1待機位置(i,j)を示す情報と、第1−2待機位置(i,j)を示す情報とが含まれる。第1−1待機位置(i,j)とは、ステップS280における第1位置決め動作を行う前の事前準備として第1エンドエフェクターEND1を待機させる位置のことであり、ロボット座標系によって表される。また、第1−2待機位置(i,j)とは、ステップS280における第1位置決め動作を行う前の事前準備として第2エンドエフェクターEND2を待機させる位置のことであり、ロボット座標系によって表される。なお、以下では、説明の便宜上、第1−1待機位置(i,j)と第1−2待機位置(i,j)を区別する必要が無い限り、まとめて第1待機位置(i,j)と称して説明する。
ここで、梱包物Cを収納位置(i,j)に収納する際に第1位置決め動作を行う必要が無い場合、第1待機位置(i,j)には、移動不要情報が含まれる。移動不要情報とは、第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちいずれか一方又は両方を梱包装置20が移動させることが不可能な位置を示す情報である。例えば、移動不要情報は、梱包装置20が設置されている床面の内部の位置を示す情報等である。また、第1待機位置(i,j)に移動不要情報が含まれるとは、第1−1待機位置(i,j)を示す情報と第1−2待機位置(i,j)を示す情報とのいずれか一方又は両方に移動不要情報が含まれることである。
次に、判定部47は、第1待機位置(i,j)を示す情報に移動不要情報が含まれているか否かを判定する(ステップS260)。
第1待機位置(i,j)を示す情報に移動不要情報が含まれていないと判定部47が判定した場合(ステップS260−No)、梱包装置制御部45は、処理をステップS270に進める。
一方、第1待機位置(i,j)を示す情報に移動不要情報が含まれていると判定部47が判定した場合(ステップS260−Yes)、梱包装置制御部45は、処理をステップS290に進める。
動作例1におけるステップS260では、第1待機位置(1,1)を示す情報は、移動不要情報を含まない。このため、この動作例1では、判定部47がステップS260において第1待機位置(1,1)を示す情報に移動不要情報が含まれていないと判定した場合についてのみ説明する。
第1待機位置(i,j)に移動不要情報が含まれていないと判定部47が判定した場合、梱包装置制御部45は、第1待機位置(i,j)を示す情報に基づいて、第1エンドエフェクターEND1を第1−1待機位置(i,j)に移動させ、第2エンドエフェクターEND2を第1−2待機位置(i,j)に移動させる。以下では、第1エンドエフェクターEND1を第1−1待機位置(i,j)に移動させ、第2エンドエフェクターEND2を第1−2待機位置(i,j)に移動させることを、まとめて両エンドエフェクターを第1待機位置(i,j)に移動させると称して説明する。そして、両エンドエフェクターを第1待機位置(i,j)に移動させた後、梱包装置制御部45は、両エンドエフェクターの状態を第1待機状態にさせて待機させる(ステップS270)。
ここで、第1待機位置(i,j)について説明する。第1待機位置(i,j)とは、両エンドエフェクターの状態を第1待機状態にさせることができる位置である。第1待機状態とは、梱包物Cと対象箱体の壁面との間で、両エンドエフェクターそれぞれのTCPを結ぶ直線がロボット座標系におけるx座標軸と平行になるように並んで待機している状態である。第1待機状態は、例えば、以下に示した1)〜6)の第1状態条件を満たす状態である。
条件1)第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置とを結ぶ直線が、第1エンドエフェクターEND1と第2エンドエフェクターEND2に最も近い面である梱包物Cの面と直交すること
条件2)条件1における直線が、ロボット座標系におけるx座標軸と略平行であること
条件3)条件1における直線は、梱包物Cの所定部位の位置上を通過すること
条件4)第1エンドエフェクターEND1と第2エンドエフェクターEND2それぞれの梱包物Cを保持していた部位(面)が、第1エンドエフェクターEND1と第2エンドエフェクターEND2に最も近い面である梱包物Cの面と略平行であること
条件5)第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置との間の距離が、所定距離であること
条件6)第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置とが、梱包物Cと対象箱体の壁面との間に存在すること
なお、所定距離は、例えば、第1エンドエフェクターEND1と第2エンドエフェクターEND2との間の距離が1センチメートル程度となるような距離であるとするが、他の距離であってもよい。ただし、所定距離は、第1待機位置(i,j)における第1エンドエフェクターEND1と、第1待機位置(i,j)における第2エンドエフェクターEND2との両方が、梱包物Cと対象箱体の間の隙間(例えば、後述する図7に示した例において、梱包物C1と壁面W1との間)に収まる距離でなければならない。また、上記の条件1)〜条件6において、第1エンドエフェクターEND1の位置と第2エンドエフェクターEND2の位置とは、どちらが梱包物Cに近い位置であってもよい。この一例では、第1エンドエフェクターEND1が梱包物Cに近い位置であり、第2エンドエフェクターEND2が梱包物Cから遠い位置である場合について説明する。
また、第1エンドエフェクターEND1の梱包物Cを保持していた部位(面)とは、例えば、第1エンドエフェクターEND1の梱包物Cを保持する際に、第1エンドエフェクターEND1が備える複数の爪部のそれぞれと梱包物Cとが接触する複数の接触点を含む面を示す。また、第2エンドエフェクターEND2の梱包物Cを保持していた部位(面)とは、例えば、第2エンドエフェクターEND2の梱包物Cを保持する際に、第2エンドエフェクターEND2が備える複数の爪部のそれぞれと梱包物Cとが接触する複数の接触点を含む面を示す。また、第1状態条件は、上記の1)〜6)の条件のうちの一部を含む構成であってもよく、上記の1)〜6)の条件に加えて他の条件を含む構成であってもよく、上記の1)〜6)の条件のうちの一部を含まずに他の条件を含む構成であってもよい。
動作例1におけるステップS270では、梱包装置制御部45は、第1待機位置(1,1)を示す情報に基づいて、両エンドエフェクターを第1待機位置(1,1)に移動させる。そして、梱包装置制御部45は、両エンドエフェクターの状態を第1待機状態にさせて待機させる。
ここで、図7を参照して、動作例1における第1待機状態について説明する。図7は、梱包装置制御部45が図6に示した状態から両エンドエフェクターを第1待機位置(1,1)に移動させ、両エンドエフェクターの状態を第1待機状態にさせた直後の様子の一例を示す図である。図7において、点線の丸T1は、第1エンドエフェクターEND1のTCPの位置を示す。また、点線の丸T2は、第2エンドエフェクターEND2のTCPの位置を示す。また、丸T1と丸T2を結ぶ直線(すなわち、第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置とを結ぶ直線)を、一点鎖線L1によって示す。
また、図7では、第1エンドエフェクターEND1の梱包物C1を保持していた部位(面)を面M1と称し、第2エンドエフェクターEND2の梱包物C1を保持していた部位(面)を面M2と称する。また、図7では、第1エンドエフェクターEND1と第2エンドエフェクターEND2に最も近い梱包物C1の面を面M3と称する。面1〜面3は、すべて略平行である。また、一点鎖線L1と面M3は直交している。また、一点鎖線L1は、配置位置(1,1)を表す点線の丸AR1を通過している。なお、図7において、第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置との間の距離は、所定距離となっているとする。
すなわち、図7における両エンドエフェクターの状態は、上記の第1状態条件を満たしているため、第1待機状態である。両エンドエフェクターの状態を第1待機状態にできる位置は、対象箱体内において2ヶ所ある。当該2ヶ所とは、すなわち、梱包物C1と壁面W1との間と、梱包物C1と壁面W3との間とである。図7に示した例は、その2ヶ所の中から第1待機位置(1,1)として、梱包物C1と壁面W1との間の位置が予めユーザーにより決定されていた場合を示している。
図5に戻る。次に、梱包装置制御部45は、梱包装置20に第1位置決め動作を行わせることにより、対象箱体の所定部位のロボット座標系におけるx座標を検出する(ステップS240)。ここで、第1位置決め動作は、第1待機位置(i,j)において第1待機状態となっている両エンドエフェクターを、x軸に平行な方向であって、第1エンドエフェクターEND1と第2エンドエフェクターEND2とが互いに離れる方向に両エンドエフェクターを移動させることにより位置決めを行う動作である。
ここで、図8及び図9を参照して、動作例1における第1位置決め動作について説明する。図8は、梱包装置制御部45が第1位置決め動作を開始した直後の対象箱体内の様子の一例を示す図である。また、図9は、梱包装置制御部45が第1位置決め動作を終了した直後の対象箱体内の様子の一例を示す図である。
梱包装置制御部45は、動作例1における第1位置決め動作として図8に示したように両エンドエフェクターに最も近い壁面W1とは反対側の壁面W3に向けて、第1エンドエフェクターEND1を図7に示した第1エンドエフェクターEND1の位置から移動させる。この際、梱包装置制御部45は、力センサー情報取得部44により第1力センサー23−1から力センサー情報を取得し、取得した力センサー情報に基づく制御によって第1エンドエフェクターEND1を移動させる。
この第1エンドエフェクターEND1の移動により、梱包物C1は、第1エンドエフェクターEND1と接触し、第1エンドエフェクターEND1とともに移動する。また、第1エンドエフェクターEND1とともに動く梱包物C1の移動により、対象箱体の壁面W3は、梱包物C1と接触し、第1エンドエフェクターEND1及び梱包物C1とともに移動する。すなわち、第1エンドエフェクターEND1は、梱包物C1を介して対象箱体の壁面W3に力を加えることにより、対象箱体を移動させる。対象箱体の壁面W3は、箱体の第1部位の一例である。また、箱体の第1部位の一例である対象箱体の壁面W3に力を加える第1エンドエフェクターEND1は、可動部の第1部位の一例である。梱包装置制御部45は、この対象箱体の移動により、第2エンドエフェクターEND2が壁面W1と接触するまで第1エンドエフェクターEND1を移動させる。
すなわち、図8に示した様子は、梱包装置制御部45が第1エンドエフェクターEND1を梱包物C1に接触させ、接触させたまま第1エンドエフェクターEND1を、両エンドエフェクターに最も近い壁面W1とは反対側の壁面W3に向けて移動させ始めた直後の様子である。また、図9に示した様子は、第2エンドエフェクターEND2が壁面W1と接触することにより、梱包装置制御部45が第1エンドエフェクターEND1の移動を止めた直後の様子である。
梱包装置制御部45は、第2エンドエフェクターEND2に壁面W1が接触したか否かを、力センサー情報取得部44により第2力センサー23−2から取得される力センサー情報に含まれる第2エンドエフェクターEND2に加わる力が所定閾値を超えたか否かによって判断する。対象箱体の壁面W1は、箱体の第2部位の一例である。また、箱体の第2部位の一例である対象箱体の壁面W1が接触する第2エンドエフェクターEND2は、可動部の第2部位の一例である。なお、第1エンドエフェクターEND1を移動させている間、梱包装置制御部45は、第2エンドエフェクターEND2の位置を、力センサー情報取得部44により第2力センサー23−2から取得される力センサー情報に基づく制御によって固定する。
このようにして壁面W1を第2エンドエフェクターEND2に接触させた後、位置検出部42は、第2エンドエフェクターEND2のTCPの位置と、梱包関連情報に含まれる第2エンドエフェクターEND2の形状や大きさを表す情報と、梱包関連情報に含まれる箱体Bの形状や大きさを表す情報とに基づいて、対象箱体の所定部位のロボット座標系におけるx座標を検出(算出)する。
図5に戻る。次に、位置情報読込部41は、ステップS230において抽出した列数i及び行数jに基づいて、予め記憶部32に記憶された第2待機位置(i,j)を示す情報を記憶部32から読み込む(ステップS290)。
この動作例1におけるステップS290では、梱包装置制御部45は、位置情報読込部41は、第2待機位置(1,1)を示す情報を記憶部32から読み込む。
第2待機位置(i,j)を示す情報には、第2−1待機位置(i,j)を示す情報と、第2−2待機位置(i,j)を示す情報とが含まれる。第1−1待機位置(i,j)とは、ステップS320における第2位置決め動作を行う前の事前準備として第1エンドエフェクターEND1を待機させる位置のことであり、ロボット座標系によって表される。また、第2−2待機位置(i,j)とは、ステップS320における第2位置決め動作を行う前の事前準備として第2エンドエフェクターEND2を待機させる位置のことであり、ロボット座標系によって表される。なお、以下では、説明の便宜上、第2−1待機位置(i,j)と第2−2待機位置(i,j)を区別する必要が無い限り、まとめて第2待機位置(i,j)と称して説明する。
ここで、梱包物Cを収納位置(i,j)に収納する際に第2位置決め動作を行う必要が無い場合、第2待機位置(i,j)には、移動不要情報が含まれる。第2待機位置(i,j)に移動不要情報が含まれるとは、第2−1待機位置(i,j)を示す情報と第2−2待機位置(i,j)を示す情報とのいずれか一方又は両方に移動不要情報が含まれることである。
次に、判定部47は、第2待機位置(i,j)を示す情報に移動不要情報が含まれているか否かを判定する(ステップS300)。
第2待機位置(i,j)を示す情報に移動不要情報が含まれていないと判定部47が判定した場合(ステップS300−No)、梱包装置制御部45は、処理をステップS310に進める。
一方、第2待機位置(i,j)を示す情報に移動不要情報が含まれていると判定部47が判定した場合(ステップS300−Yes)、梱包装置制御部45は、処理をステップS200に進め、変数rに代入するための次の値を選択する。
この動作例1におけるステップS310では、第2待機位置(1,1)を示す情報は、移動不要情報を含まない。このため、動作例1では、判定部47がステップS300において第2待機位置(1,1)を示す情報に移動不要情報が含まれていないと判定した場合についてのみ説明する。
第2待機位置(i,j)に移動不要情報が含まれていないと判定部47が判定した場合、梱包装置制御部45は、第2待機位置(i,j)を示す情報に基づいて、第1エンドエフェクターEND1を第2−1待機位置(i,j)に移動させ、第2エンドエフェクターEND2を第2−2待機位置(i,j)に移動させる。以下では、第1エンドエフェクターEND1を第2−1待機位置(i,j)に移動させ、第2エンドエフェクターEND2を第2−2待機位置(i,j)に移動させることを、まとめて両エンドエフェクターを第2待機位置(i,j)に移動させると称して説明する。そして、両エンドエフェクターを第2待機位置(i,j)に移動させた後、梱包装置制御部45は、両エンドエフェクターの状態を第2待機状態にさせて待機させる(ステップS310)。
ここで、第2待機位置(i,j)について説明する。第2待機位置(i,j)とは、両エンドエフェクターの状態を第2待機状態にさせることができる位置である。第2待機状態とは、梱包物Cと対象箱体の壁面との間で、両エンドエフェクターそれぞれのTCPを結ぶ直線がロボット座標系におけるy座標軸と平行になるように並んで待機している状態である。第2待機状態は、例えば、以下に示した7)〜12)の第2状態条件を満たす状態である。
条件7)第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置とを結ぶ直線が、第1エンドエフェクターEND1と第2エンドエフェクターEND2に最も近い面である梱包物Cの面と直交すること
条件8)条件7における直線が、ロボット座標系におけるy座標軸と略平行であること
条件9)条件7における直線は、梱包物Cの所定部位の位置上を通過すること
条件10)第1エンドエフェクターEND1と第2エンドエフェクターEND2それぞれの梱包物C1を保持していた部位(面)が、第1エンドエフェクターEND1と第2エンドエフェクターEND2に最も近い面である梱包物C1の面と略平行であること
条件11)第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置との間の距離が、所定距離であること
条件12)第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置とが、梱包物Cと対象箱体の壁面との間に存在すること
なお、第2状態条件は、上記の7)〜12)の条件のうちの一部を含む構成であってもよく、上記の7)〜12)の条件に加えて他の条件を含む構成であってもよく、上記の7)〜12)の条件のうちの一部を含まずに他の条件を含む構成であってもよい。また、上記の7)〜12)の条件において、第1エンドエフェクターEND1の位置と第2エンドエフェクターEND2の位置とは、どちらが梱包物Cに近い位置であってもよい。この一例では、第1エンドエフェクターEND1が梱包物Cに近い位置であり、第2エンドエフェクターEND2が梱包物Cから遠い位置である場合について説明する。
この動作例1におけるステップS310では、梱包装置制御部45は、第2待機位置(1,1)を示す情報に基づいて、両エンドエフェクターを第2待機位置(1,1)に移動させる。そして、梱包装置制御部45は、両エンドエフェクターの状態を第2待機状態にさせて待機させる。
ここで、図10を参照して、動作例1における第2待機状態について説明する。図10は、梱包装置制御部45が図9に示した状態から両エンドエフェクターを第2待機位置(1,1)に移動させ、両エンドエフェクターの状態を第2待機状態にさせた直後の様子の一例を示す図である。図10において、丸T1と丸T2を結ぶ直線(すなわち、第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置とを結ぶ直線)を、一点鎖線L2によって示す。
また、図10では、梱包物C1の第1エンドエフェクターEND1と第2エンドエフェクターEND2に最も近い面を面M4と称する。面M1、面M2、面M4は、すべて略平行である。また、一点鎖線L2と面M4は直交している。また、一点鎖線L2は、対象箱体の所定部位を表す点線の丸AR3を通過している。なお、図10において、第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置との間の距離は、所定距離となっているとする。
すなわち、図10における両エンドエフェクターの状態は、上記の第2状態条件を満たしているため、第2待機状態である。両エンドエフェクターの状態を第2待機状態にできる位置は、対象箱体内において2ヶ所ある。当該2ヶ所とは、すなわち、梱包物C1と壁面W2との間と、梱包物C1と壁面W4との間とである。図10に示した例は、その2ヶ所の中から第2待機位置(1,1)として、梱包物C1と壁面W2との間の位置が予めユーザーにより決定されていた場合を示している。
図5に戻る。次に、梱包装置制御部45は、梱包装置20に第2位置決め動作を行わせることにより、対象箱体の所定部位のロボット座標系におけるy座標を検出する(ステップS320)。ここで、第2位置決め動作は、第2待機位置(i,j)において第2待機状態となっている両エンドエフェクターを、y軸に平行な方向であって、第1エンドエフェクターEND1と第2エンドエフェクターEND2とが互いに離れる方向に両エンドエフェクターを移動させることにより位置決めを行う動作である。
ここで、図11及び図12を参照して、動作例1における第2位置決め動作について説明する。図11は、梱包装置制御部45が第2位置決め動作を開始した直後の対象箱体内の様子の一例を示す図である。また、図12は、梱包装置制御部45が第2位置決め動作を終了した直後の対象箱体内の様子の一例を示す図である。
梱包装置制御部45は、第2位置決め動作として図11に示したように両エンドエフェクターに最も近い壁面W2とは反対側の壁面W4に向けて、第1エンドエフェクターEND1を図10に示した第1エンドエフェクターEND1の位置から移動させる。この際、梱包装置制御部45は、力センサー情報取得部44により第1力センサー23−1から力センサー情報を取得し、取得した力センサー情報に基づく制御によって第1エンドエフェクターEND1を移動させる。
この第1エンドエフェクターEND1の移動により、梱包物C1は、第1エンドエフェクターEND1と接触し、第1エンドエフェクターEND1とともに移動する。また、第1エンドエフェクターEND1とともに動く梱包物C1の移動により、対象箱体の壁面W4は、梱包物C1と接触し、第1エンドエフェクターEND1及び梱包物C1とともに移動する。すなわち、第1エンドエフェクターEND1は、梱包物C1を介して対象箱体の壁面W4に力を加えることにより、対象箱体を移動させる。対象箱体の壁面W4は、箱体の第1部位の一例である。また、梱包装置制御部45は、梱包物C1を対象箱体の壁面W4に接触させることにより、対象箱体内の所定の収納位置(1,1)への梱包物C1の収納を完了する。なお、梱包物C1は、第2物体の一例である。梱包装置制御部45は、この対象箱体の移動により、第2エンドエフェクターEND2が壁面W2と接触するまで第1エンドエフェクターEND1を移動させる。
すなわち、図11に示した様子は、梱包装置制御部45が第1エンドエフェクターEND1を梱包物C1に接触させ、接触させたまま第1エンドエフェクターEND1を、両エンドエフェクターに最も近い壁面W2とは反対側の壁面W4に向けて移動させ始めた直後の様子である。また、図12に示した様子は、第2エンドエフェクターEND2が壁面W2と接触することにより、梱包装置制御部45が第1エンドエフェクターEND1の移動を止めた直後の様子である。
梱包装置制御部45は、第2エンドエフェクターEND2に壁面W2が接触したか否かを、力センサー情報取得部44により第2力センサー23−2から取得される力センサー情報に含まれる第2エンドエフェクターEND2に加わる力が所定閾値を超えたか否かによって判断する。対象箱体の壁面W2は、箱体の第2部位の一例である。なお、第1エンドエフェクターEND1を移動させている間、梱包装置制御部45は、第2エンドエフェクターEND2の位置を、力センサー情報取得部44により第2力センサー23−2から取得される力センサー情報に基づく制御によって固定する。
このようにして壁面W2を第2エンドエフェクターEND2に接触させた後、位置検出部42は、第2エンドエフェクターEND2のTCPの位置と、梱包関連情報に含まれる第2エンドエフェクターEND2の形状や大きさを表す情報と、梱包関連情報に含まれる箱体Bの形状や大きさを表す情報とに基づいて、対象箱体の所定部位のロボット座標系におけるy座標を検出(算出)する。
ステップS210からステップS320までの処理によって、対象箱体の所定部位のロボット座標系におけるx座標及びy座標が検出されたため、梱包装置制御部45は、残りのQ−1個(この一例において、3個)の梱包物Cをそれぞれ対象箱体の収納位置(1,1)及び収納位置(I,J)を除く収納位置(i,j)のそれぞれに収納させることができそうだが、実際には、ステップS320の第2位置決め動作によって対象箱体のロボット座標系におけるx座標がずれてしまう場合がある。そのため、梱包装置制御部45は、再びステップS210からステップS320までの処理によって、当該梱包物Cのそれぞれを対象箱体内の収納位置(1,1)及び収納位置(I,J)を除く収納位置(i,j)のそれぞれに収納させる。
<動作例2:最初と最後以外に収納する梱包物Cを対象箱体に梱包する動作について>
この動作例2において、図5に示したステップS200において選択される変数rに代入する値は、2又は3である。以下では、この一例として、変数rが2の場合について説明する。この場合、図5に示したステップS230において抽出される現在の変数rに代入されている値に応じた列数i及び行数jは、(i,j)=(2,1)である。なお、変数rに代入されている値が3の場合、現在の変数rに代入されている値に応じた列数i及び行数jは、(i,j)=(1,2)となる。また、動作例2における配置位置(i,j)は、図5に示したフローチャートにおけるステップS210からステップS330までの繰り返し処理における前回の処理において対象箱体に収納された梱包物Cの所定部位の位置から配置位置(i,j)までの相対的な位置として表される。以下では、説明の便宜上、図5に示したフローチャートにおけるステップS210からステップS330までの繰り返し処理における前回の処理を、単に前回処理と称して説明する。
動作例2におけるステップS210〜ステップS230と、ステップS250と、ステップS290とでは、制御部36は、(i,j)=(1,1)を(i,j)=(2,1)に読み換えた処理であって動作例1において説明した処理と、同様の処理を行うため説明を省略する。
動作例2におけるステップS240では、梱包装置制御部45は、位置算出部43が算出したロボット座標系における配置位置(2,1)を示す情報に基づいて、梱包装置20に梱包物Cを配置位置(2,1)に配置させる。
ここで、図13を参照して、動作例2におけるステップS240の処理について説明する。なお、以下では、動作例2において梱包装置20が対象箱体に収納する梱包物Cを、梱包物C2と称して説明する。図13は、梱包装置制御部45が梱包装置20に梱包物C2を配置位置(2,1)に配置させた直後の様子の一例を示す図である。
動作例2では、直前までに行われた最も新しい位置決め動作によって対象箱体の所定部位のロボット座標系におけるx座標又はy座標が正確に決まっている。この一例において、直前までに行われた最も新しい位置決め動作は、動作例1におけるステップS320における第2位置決め動作である。そのため、この段階では、対象箱体の所定部位のロボット座標系におけるy座標が正確に決まっている。なお、変数rに代入された値が3の場合、直前までに行われた最も新しい位置決め動作は、変数rに代入された値が2の場合において対象箱体の所定部位のロボット座標系におけるx座標を正確に決める第2位置決め動作となる。
図13に示した例は、対象箱体の所定部位のロボット座標系におけるy座標が正確に決まっているため、梱包装置制御部45は、梱包物C2を梱包物C1と対象箱体の壁面W2との間に精度よく配置することができる。なお、梱包物C2は、第1物体の一例である。また、図13において第1エンドエフェクターEND1から伸びている矢印は、第1エンドエフェクターEND1が力センサー情報に基づく制御によって梱包物C2に加えている力の方向を表している。また、図13において第2エンドエフェクターEND2から伸びている矢印は、第2エンドエフェクターEND2が力センサー情報に基づく制御によって梱包物C2に加えている力の方向を表している。
動作例2におけるステップS250の処理の後、判定部47は、動作例2におけるステップS260において第1待機位置(i,j)を示す情報に移動不要情報が含まれているか否かを判定する。
第1待機位置(i,j)を示す情報に移動不要情報が含まれていないと判定部47が判定した場合、梱包装置制御部45は、処理をステップS270に進める。
一方、第1待機位置(i,j)を示す情報に移動不要情報が含まれていると判定部47が判定した場合、梱包装置制御部45は、処理をステップS290に進める。
変数r=2〜Q−1において前回処理が終了する直前に、対象箱体の所定部位のロボット座標系におけるx座標を検出していた場合、第1待機位置(i,j)は、移動不要情報を含む。一方、変数r=2〜Q−1において前回処理が終了する直前に、対象箱体の所定部位のロボット座標系におけるy座標を検出していた場合、第1待機位置(i,j)は、移動不要情報を含まない。
この動作例2では、変数r=2であり、且つ前回処理が終了する直前に、対象箱体の所定部位のロボット座標系におけるy座標が検出されているため、判定部47が動作例2におけるステップS260において第1待機位置(2,1)を示す情報に移動不要情報が含まれていないと判定した場合についてのみ説明する。
判定部47が動作例2におけるステップS260において第1待機位置(2,1)を示す情報に移動不要情報が含まれていないと判定した場合、梱包装置制御部45は、第1待機位置(i,j)を示す情報に基づいて、両エンドエフェクターを第1待機位置(i,j)に移動させる。そして、梱包装置制御部45は、両エンドエフェクターの状態を第1待機状態にさせて待機させる。
ここで、図14を参照して、動作例2における第1待機状態について説明する。図14は、梱包装置制御部45が図13に示した状態から両エンドエフェクターを第1待機位置(2,1)に移動させ、両エンドエフェクターの状態を第1待機状態にさせた直後の様子の一例を示す図である。丸T1と丸T2を結ぶ直線(すなわち、第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置とを結ぶ直線)を、一点鎖線L3によって示す。
また、図14では、梱包物C2の第1エンドエフェクターEND1と第2エンドエフェクターEND2に最も近い面を面M5と称する。面M1、面M2、面M5は、すべて略平行である。また、一点鎖線L3と面M5は直交している。また、一点鎖線L3は、配置位置(2,1)を表す点線の丸AR4を通過している。なお、図14において、第1エンドエフェクターEND1のTCPの位置と、第2エンドエフェクターEND2のTCPの位置との間の距離は、所定距離となっているとする。
すなわち、図14における両エンドエフェクターの状態は、第2状態条件を満たしているため、第2待機状態である。両エンドエフェクターの状態を第2待機状態にできる位置は、対象箱体内において2ヶ所ある。当該2ヶ所とは、すなわち、梱包物C2と壁面W1との間と、梱包物C2と壁面W3との間とである。図14に示した例は、その2ヶ所の中から第2待機位置(2,1)として、梱包物C2と壁面W1との間の位置が予めユーザーにより決定されていた場合を示している。
動作例2におけるステップS280では、梱包装置制御部45は、梱包装置20に第1位置決め動作を行わせることにより、対象箱体の所定部位のロボット座標系におけるx座標を検出する。
ここで、図15及び図16を参照して、動作例2における第1位置決め動作について説明する。図15は、梱包装置制御部45が動作例2における第1位置決め動作を開始した直後の対象箱体内の様子の一例を示す図である。また、図16は、梱包装置制御部45が動作例2における第1位置決め動作を終了した直後の対象箱体内の様子の一例を示す図である。
梱包装置制御部45は、動作例2における第1位置決め動作として図15に示したように両エンドエフェクターに最も近い壁面W1とは反対側の壁面W3に向けて、第1エンドエフェクターEND1を図14に示した第1エンドエフェクターEND1の位置から移動させる。この際、梱包装置制御部45は、力センサー情報取得部44により第1力センサー23−1から力センサー情報を取得し、取得した力センサー情報に基づく制御によって第1エンドエフェクターEND1を移動させる。
この第1エンドエフェクターEND1の移動により、梱包物C2は、第1エンドエフェクターEND1と接触し、第1エンドエフェクターEND1とともに移動する。また、第1エンドエフェクターEND1とともに動く梱包物C2の移動により、対象箱体の壁面W3は、梱包物C2と接触し、第1エンドエフェクターEND1及び梱包物C2とともに移動する。すなわち、第1エンドエフェクターEND1は、梱包物C2を介して対象箱体の壁面W3に力を加えることにより、対象箱体を移動させる。また、梱包装置制御部45は、梱包物C2を対象箱体の壁面W3に接触させることにより、対象箱体内の収納位置(2,1)への梱包物C2の収納を完了する。梱包装置制御部45は、この対象箱体の移動により、第2エンドエフェクターEND2が壁面W1と接触するまで第1エンドエフェクターEND1を移動させる。
すなわち、図15に示した様子は、梱包装置制御部45が第1エンドエフェクターEND1を梱包物C2に接触させ、接触させたまま第1エンドエフェクターEND1を、両エンドエフェクターに最も近い壁面W1とは反対側の壁面W3に向けて移動させ始めた直後の様子である。また、図16に示した様子は、第2エンドエフェクターEND2が壁面W1と接触することにより、梱包装置制御部45が第1エンドエフェクターEND1の移動を止めた直後の様子である。
梱包装置制御部45は、第2エンドエフェクターEND2に壁面W1が接触したか否かを、力センサー情報取得部44により第2力センサー23−2から取得される力センサー情報に含まれる第2エンドエフェクターEND2に加わる力が所定閾値を超えたか否かによって判断する。なお、第1エンドエフェクターEND1を移動させている間、梱包装置制御部45は、第2エンドエフェクターEND2の位置を、力センサー情報取得部44により第2力センサー23−2から取得される力センサー情報に基づく制御によって固定する。
このようにして壁面W1を第2エンドエフェクターEND2に接触させた後、位置検出部42は、第2エンドエフェクターEND2のTCPの位置と、梱包関連情報に含まれる第2エンドエフェクターEND2の形状や大きさを表す情報と、梱包関連情報に含まれる箱体Bの形状や大きさを表す情報とに基づいて、対象箱体の所定部位のロボット座標系におけるx座標を検出(算出)する。
図5に戻る。動作例2におけるステップS290の処理の後、判定部47は、動作例2におけるステップS300において第2待機位置(i,j)を示す情報に移動不要情報が含まれているか否かを判定する。
第2待機位置(i,j)を示す情報に移動不要情報が含まれていないと判定部47が判定した場合(ステップS300−No)、梱包装置制御部45は、処理をステップS310に進める。
一方、第2待機位置(i,j)を示す情報に移動不要情報が含まれていると判定部47が判定した場合、梱包装置制御部45は、処理をステップS200に進め、変数rに代入するための次の値を選択する。
変数r=2〜Q−1において前回処理が終了する直前に、対象箱体の所定部位のロボット座標系におけるx座標を検出していた場合、第1待機位置(i,j)は、移動不要情報を含まない。一方、変数r=2〜Q−1において前回処理が終了する直前に、対象箱体の所定部位のロボット座標系におけるy座標を検出していた場合、第1待機位置(i,j)は、移動不要情報を含む。
この動作例2では、変数r=2であり、且つ前回処理が終了する直前に、対象箱体の所定部位のロボット座標系におけるy座標が検出されているため、判定部47が動作例2におけるステップS300において第2待機位置(2,1)を示す情報に移動不要情報が含まれていると判定した場合についてのみ説明する。
判定部47が動作例2におけるステップS300において第2待機位置(2,1)を示す情報に移動不要情報が含まれていると判定した場合、制御部36は、処理をステップS200に進め、変数rに代入するための次の値を選択する。
動作例2におけるステップS210からステップS320までの処理によって、対象箱体の所定部位のロボット座標系におけるx座標が検出されたため、梱包装置制御部45は、残りのQ−2個(この一例において、2個)の梱包物Cをそれぞれ対象箱体の収納位置(1,1)及び収納位置(I,J)を除く収納位置(i,j)のそれぞれに収納させることができそうだが、実際には、動作例2におけるステップS280の第1位置決め動作によって対象箱体のロボット座標系におけるy座標がずれてしまう場合がある。そのため、梱包装置制御部45は、再びステップS210からステップS320までの処理によって、次の梱包物Cを対象箱体内の収納位置(1,1)及び収納位置(I,J)を除く収納位置(i,j)のそれぞれに収納させる。
動作例2では、変数r=2であったため、ステップS210からステップS320までの処理によって、対象箱体の所定部位のロボット座標系におけるx座標が検出された。しかし、例えば、変数r=3の場合、制御部36は、ステップS210からステップS320までの処理によって、対象箱体の所定部位のロボット座標系におけるy座標を検出する。この場合、ステップS280における第1位置決め動作は行われず、ステップS320における第2位置決め動作が行われる。このように、第1位置決め動作と第2位置決め動作とのうちいずれが行われるかは、第1待機位置(i,j)と第2待機位置(i,j)とに移動不要情報が含まれているか否かによって決まる。なお、(i,j)毎の第1待機位置(i,j)のいずれに移動不要情報を含めるかは、箱体Bの形状や大きさと、梱包物の形状や大きさによって決められる。また、(i,j)毎の第2待機位置(i,j)のいずれに移動不要情報を含めるかは、箱体Bの形状や大きさと、梱包物の形状や大きさによって決められる。
<動作例3:最後に収納する梱包物Cを対象箱体に梱包する動作について>
この動作例3において、図5に示したステップS200において選択される変数rに代入する値は、4である。この場合、図5に示したステップS230において抽出される現在の変数rに代入されている値に応じた列数i及び行数jは、(i,j)=(I,J)=(2,2)である。また、動作例3における配置位置(I,J)は、前回処理において対象箱体に収納された梱包物Cの所定部位の位置から配置位置(I,J)までの相対的な位置として表される。また、動作例3におけるステップS210では、制御部36は、(i,j)=(1,1)を(i,j)=(2,2)に読み換えた処理であって動作例1において説明した処理と、同様の処理を行うため説明を省略する。
動作例3におけるステップS220において判定部47が変数rに代入されている値がQであると判定した場合、位置情報読込部41は、予め記憶部32に記憶された収納位置(I,J)を示す情報を記憶部32から読み込む。そして、位置算出部43は、位置情報読込部41が読み込んだ配置位置(I,J)を示す情報と、前回処理において収納された梱包物Cの収納位置を示す情報とに基づいて、ロボット座標系における収納位置(I,J)を算出する(ステップS325)。
次に、梱包装置制御部45は、位置算出部43が算出したロボット座標系における配置位置(I,J)に基づいて、梱包装置20に梱包物Cを収納位置(I,J)に収納させる。また、梱包装置制御部45は、チャンファーレスインサーションによって梱包装置20に梱包物Cを収納位置(I,J)に収納させる(ステップS330)。以下では、動作例3において梱包装置20が対象箱体に収納する梱包物Cを、梱包物C4と称して説明する。また、動作例3に対する前回処理において対象箱体に収納された梱包物Cを、梱包物C3と称して説明する。
図17は、梱包装置20がチャンファーレスインサーションによって梱包物C4を(2,2)収納位置した直後の様子の一例を示す図である。このように、ステップS200からステップS330までの繰り返し処理によって、梱包システム1の梱包装置20は、固定されていない対象箱体に対しても精度よく梱包物を収納することができる。
<実施形態の変形例1>
以下、本発明の実施形態の変形例1について、図面を参照して説明する。
本実施形態の変形例1に係る梱包システム1は、対象箱体の位置決めを、梱包物Cを対象箱体に入れない状態で行う。図18は、梱包物Cを対象箱体に入れない状態で対象箱体の位置決めを行う直前の様子の一例を示す図である。図19は、梱包物Cを対象箱体に入れない状態で対象箱体の位置決めを行った直後の様子の一例を示す図である。
例えば、梱包装置制御部45は、図18に示したように、第2供給位置を中心とした所定半径の円内に両エンドエフェクターが収まるように、両エンドエフェクターを対象箱体の内側(対象箱体の壁面W1〜W4に囲まれた領域)に待機させる。そして、梱包装置制御部45は、図18に示したx座標軸と平行な矢印に沿って第1エンドエフェクターEND1と第2エンドエフェクターEND2を移動させる。より具体的には、梱包装置制御部45は、対象箱体の壁面3に向けて第1エンドエフェクターEND1を移動させ、対象箱体の壁面W1に向けて第2エンドエフェクターEND2を移動させる。梱包装置制御部45は、第1エンドエフェクターEND1と第2エンドエフェクターEND2の両方が対象箱体の壁面に接触するまで、両エンドエフェクターを移動させ続ける。
両エンドエフェクターが対象箱体の壁面に接触したか否かは、力センサー情報取得部44により力センサー23から取得される力センサー情報に含まれる両エンドエフェクターのそれぞれに加わる力が両方とも所定閾値を超えたか否かによって判断する。図19に示したように、両エンドエフェクターが対象箱体の壁面に接触すると、梱包装置制御部45は、両エンドエフェクターの移動を停止する。図19に示した状態において、位置算出部43は、第1エンドエフェクターEND1のTCPの位置と第2エンドエフェクターENDのTCPの位置とのいずれか一方又は両方と、梱包関連情報に含まれる対象箱体の形状や大きさを表す情報とに基づいて、対象箱体の所定部位のロボット座標系におけるx座標を検出する。
また、梱包装置制御部45と位置算出部43は、このx座標の検出と同様の処理を、y座標軸に平行な方向に対しても同様に行うことにより、対象箱体の所定部位のロボット座標系におけるy座標を検出する。
これらのx座標、y座標(すなわち、対象箱体の所定部位のロボット座標系における位置)に基づいて、位置算出部43は、収納位置(i,j)を精度よく算出することができる。その結果、制御装置30の制御部36は、固定されていない箱体に対しても精度よく梱包物を収納することができる。なお、当該収納位置(i,j)には、収納位置(1,1)〜収納位置(I,J)のそれぞれが含まれる。
また、本実施形態の変形例1に係る梱包システム1は、図18に示した状態において、第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちいずれか一方のみを移動させる構成であってもよい。すなわち、梱包システム1は、図18に示した状態において、第1エンドエフェクターEND1と第2エンドエフェクターEND2のうちいずれか一方を、力センサー情報取得部44から取得された力センサー情報に基づく制御によって固定する構成であってもよい。
<実施形態の変形例2>
以下、本発明の実施形態の変形例2について、図面を参照して説明する。
本実施形態の変形例2に係る梱包システム1は、対象箱体の位置決めを、対象箱体の外側に第1エンドエフェクターEND1及び第2エンドエフェクターEND2を待機させた状態で行う。図20は、対象箱体の外側に第1エンドエフェクターEND1と第2エンドエフェクターEND2の両方を待機させた様子の一例を示す図である。図21は、対象箱体の外側に第1エンドエフェクターEND1と第2エンドエフェクターEND2の両方を待機させた状態から対象箱体の位置決めを行った直後の様子の一例を示す図である。なお、図20及び図21に示した例では、対象箱体の内側に梱包物Cが配置されていない場合を示しているが、これに代えて、対象箱体の内側に梱包物Cが配置されていてもよい。
梱包装置制御部45は、図20に示した状態から図21に示した状態のように第1エンドエフェクターEND1と第2エンドエフェクターEND2の両方に対象箱体の壁面が接触するまで、第1エンドエフェクターEND1と第2エンドエフェクターEND2とのいずれか一方又は両方を、図20に示した矢印に沿って移動させる。そして、位置検出部42は、図21に示した状態において、第1エンドエフェクターEND1のTCPの位置と第2エンドエフェクターEND2のTCPの位置とのうちのいずれか一方又は両方と、梱包関連情報に含まれる対象箱体の形状や大きさを表す情報とに基づいて、対象箱体の所定部位のロボット座標系におけるx位置(算出)する。また、梱包装置制御部45と位置算出部43は、このx座標の検出と同様の処理を、y座標軸と平行な方向に対しても同様に行うことにより、対象箱体の所定部位のロボット座標系におけるy座標を検出する。
これらのx座標、y座標(すなわち、対象箱体の所定部位のロボット座標系における位置)に基づいて、位置算出部43は、収納位置(i,j)を精度よく算出することができる。その結果、制御装置30の制御部36は、固定されていない箱体に対しても精度よく梱包物を収納することができる。なお、当該収納位置(i,j)には、収納位置(1,1)〜収納位置(I,J)のそれぞれが含まれる。
<実施形態の変形例3>
以下、本発明の実施形態の変形例3について、図面を参照して説明する。
本実施形態の変形例3に係る梱包システム1は、対象箱体の位置決めを、第1エンドエフェクターEND1と第2エンドエフェクターEND2とのうちいずれか一方を対象箱体の外側に待機させ、他方を対象箱体の内側に待機させた状態で行う。
図22は、第1エンドエフェクターEND1を対象箱体の外側に待機させ、第2エンドエフェクターEND2を対象箱体の内側に待機させた様子の一例を示す図である。図23は、第1エンドエフェクターEND1を対象箱体の外側に待機させ、第2エンドエフェクターEND2を対象箱体の内側に待機させた状態から対象箱体の位置決めを行った直後の様子の一例を示す図である。なお、図22及び図23に示した例では、対象箱体の壁面W3と第2エンドエフェクターEND2との間に梱包物Cが配置されていない場合を示しているが、これに代えて、対象箱体の壁面W3と第2エンドエフェクターEND2との間に梱包物Cが配置されていてもよい。
梱包装置制御部45は、図22に示した状態から、第1エンドエフェクターEND1と第2エンドエフェクターEND2とのうちのいずれか一方又は両方を図26に示した矢印に沿って移動させる。そして、位置検出部42は、図23に示した状態において、第1エンドエフェクターEND1のTCPの位置と第2エンドエフェクターEND2のTCPの位置とのうちのいずれか一方又は両方と、梱包関連情報に含まれる対象箱体の形状や大きさを表す情報とに基づいて、対象箱体の所定部位のロボット座標系におけるx位置(算出)する。また、梱包装置制御部45と位置算出部43は、このx座標の検出と同様の処理を、y座標軸と平行な方向に対しても同様に行うことにより、対象箱体の所定部位のロボット座標系におけるy座標を検出する。
これらのx座標、y座標(すなわち、対象箱体の所定部位のロボット座標系における位置)に基づいて、位置算出部43は、収納位置(i,j)を精度よく算出することができる。その結果、制御装置30の制御部36は、固定されていない箱体に対しても精度よく梱包物を収納することができる。なお、当該収納位置(i,j)には、収納位置(1,1)〜収納位置(I,J)のそれぞれが含まれる。
また、上記の実施形態及び実施形態の変形例の各処理において、第1アームと第2アームの役割は、逆であってもよい。
以上説明したように、本実施形態における梱包装置20は、梱包材から組み立てられた箱体Nに梱包物Cを力センサー情報取得部44から取得された力センサー情報に基づいて収納する。これにより、梱包装置20は、力センサー情報に基づく制御によって梱包物Cを箱体Bへ収納することができ、その結果、載置面に固定されていない箱体Bに対しても精度よく梱包物Cを収納することができる。
また、梱包装置20は、箱体Bの第1部位(例えば、壁面W3)に可動部の第1部位(この一例において、第1エンドエフェクターEND1)により力を加えて箱体Bを動かし、箱体Bの第2部位(例えば、壁面W1)に可動部の第2部位(この一例において、第2エンドエフェクターEND2)を接触させ、力センサー情報取得部44から取得された力センサー情報に基づいて箱体Bの位置決めを行い、箱体Bに梱包物Cを収納する。これにより、梱包装置20は、箱体Bの位置決めに基づいて、精度よく箱体Bへ梱包物Cを収納することができる。
また、梱包装置20は、箱体Bの位置決めに基づいて、可動部の第1部位と可動部の第2部位のうちいずれか一方又は両方により梱包物Cのうちの第1梱包物(例えば、梱包物C2)を箱体に配置する。これにより、梱包装置20は、例えば、箱体Bの外側等の意図していない場所に第1梱包物を配置してしまうことを抑制することができる。
また、梱包装置20は、可動部の第1部位は、梱包物Cのうちの第2梱包物(例えば、梱包物C1)を介して箱体Bの第1部位に力を加える。これにより、梱包装置20は、箱体B内において第2梱包物を移動させつつ箱体Bの第1部位に対して力を加えることができる。
また、梱包装置20は、箱体の位置決めを行うことにより第2梱包物を所定の収納位置(例えば、収納位置(1,1))に収納する。これにより、梱包装置20は、箱体Bの位置決めと第2梱包物の収納とを別の動作によって行う場合に生じる箱体Bの位置のずれを抑制することができる。
また、梱包装置20は、第2梱包物を箱体Bの所定の配置位置(例えば、配置位置(1,1))に配置し、第2梱包物を可動部の第1部位により移動させて箱体Bの第1部位に接触させることにより、箱体Bの第1部位に力を加える。これにより、梱包装置20は、箱体Bの位置がずれていても、第2物体を箱体Bの内部に配置してから箱体Bの位置決めを行うことができる。
また、梱包装置20は、第2梱包物を箱体Bの底面の略中心に配置し、第2梱包物を第1エンドエフェクターEND1により移動させて第1部位に接触させることにより、第1部位に力を加える。これにより、梱包装置20は、より確実に、箱体Bの位置がずれていても、第2梱包物を箱体Bの内側に配置してから箱体Bの位置決めを行うことができる。
また、梱包装置20は、折り畳まれた梱包材から組み立てられた箱体Bに梱包物Cを力センサー情報取得部44から取得された力センサー情報に基づいて収納する。これにより、梱包装置20は、力センサー情報に基づく制御によって梱包物Cを、折り畳まれた梱包材から組み立てられた箱体Bへ収納することができ、その結果、載置面に固定されていない箱体Bに対しても精度よく梱包物Cを収納することができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、梱包システム1の制御装置30)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。