以下、添付の図面を用いて、本実施形態にかかる制御装置、制御方法、及び物品積付システムを適用した物品積付システムの一例について説明する。
図1は、本実施形態にかかる物品積付システムの概略構成の一例を示す図である。
まず、図1を用いて、本実施形態にかかる物品積付システムの概略構成の一例について説明する。
本実施形態にかかる物品積付システムは、図1に示すように、制御装置1と、ロボットアーム2と、ベルトコンベア3と、供給側計測部4と、積付側計測部5と、を有する。
ベルトコンベア3は、後述するロボットアーム2に対して、荷物等の物品を供給する。
ロボットアーム2は、積付領域に物品を積み付ける荷役装置の一例である。本実施形態では、ロボットアーム2は、制御装置1により制御され、ベルトコンベア3によって供給される物品を、パレット6(積付領域の一例)に対して積み付ける。
供給側計測部4は、ベルトコンベア3によってロボットアーム2に供給される次の物品(以下、積付対象物品と言う)のサイズ(例えば、物品の幅、奥行き、及び高さ)を計測する。
本実施形態では、供給側計測部4は、例えば、画像センサ(撮像部の一例)が考えられる。供給側計測部4が画像センサの場合、供給側計測部4は、ベルトコンベア3によって供給される積付対象物品(第1の物品、及び第2の物品の一例)を撮像可能な位置に設けられる。そして、供給側計測部4は、撮像した画像データを、制御装置1に送信する。これにより、制御装置1は、供給側計測部4と積付対象物品との間の距離、及び画像データに基づいて、積付対象物品のサイズを算出できる。
積付側計測部5は、パレット6に積み付けられた物品全体の状態(荷姿)を計測する。
積付側計測部5は、例えば、画像センサ(撮像部の一例)が考えられる。積付側計測部5が画像センサの場合、積付側計測部5は、パレット6に積み付けられた物品全体に荷姿を撮像可能な位置に設けられる。積付側計測部5は、パレット6に積み付けられた物品毎の高さを認識可能な撮像データを生成する。そして、積付側計測部5は、生成した撮像データを、制御装置1に送信する。これにより、制御装置1は、積付側計測部5とパレット6との位置関係、及び撮像データに基づいて、パレット6に積み付けられた物品の各々の高さを検出できる。なお、積付側計測部5は、積付側計測部5を基準として、パレット6の手前側に積み付けられた物品のみならず、パレット6の奥側に積み付けられた物品も撮影可能な位置に設けるのが好ましい。
また、積付側計測部5は、距離センサであってもよい。積付側計測部5が距離センサの場合、積付側計測部5とパレット6に積み付けられた物品全体との間の距離を計測する。そして、制御装置1は、その計測結果に基づいて、パレット6に積み付けられた物品の各々の高さを検出できる。また、積付側計測部5は、画像センサ及び距離センサを組み合わせてもよい。この場合、制御装置1は、画像センサ及び距離センサのそれぞれによる計測結果に基づいて、パレット6に積み付けられた物品の各々の高さを算出する。
図2は、制御装置1のハードウェア構成の一例を示す図である。制御装置1は、ロボットアーム2、供給側計測部4、及び積付側計測部5を制御する装置である。すなわち、制御装置1は、物品積付システム全体を制御する装置である。制御装置1は、供給側計測部4、及び積付側計測部5の撮像結果に基づき、ロボットアーム2の動作を制御する。制御装置1は、ロボットアーム2と一体的に設けられてもよいし、ロボットアーム2と別体として設けられてもよい。
なお、本実施形態では、ロボットアーム2を荷役装置としたが、これに限らず、ロボットアーム2と制御装置1とを荷役装置としてもよい。
図2に示すように、制御装置1は、プロセッサ102、RAM(Random Access Memory)103、ROM(Read Only Memory)104、供給側計測インタフェース105、ロボットアームインタフェース106、積付側計測インタフェース107、通信部108、及び記憶部101を備える。
プロセッサ102は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)等とする。
ROM104は、プロセッサ102により実行される各種プログラムを記憶する不揮発性の記憶装置の一例である。RAM103は、プロセッサ102による演算で用いられる各種データを一時的に記憶する揮発性の記憶装置の一例である。
そして、プロセッサ102は、ROM104等の不揮発性の記憶装置に記憶される各種プログラムを読み出し、RAM103を作業領域として用いて、当該各種プログラムに従って各種の演算処理を実行する。
供給側計測インタフェース105は、供給側計測部4と通信可能に接続するインタフェースとする。プロセッサ102は、供給側計測インタフェース105に接続された供給側計測部4を制御する。
ロボットアームインタフェース106は、ロボットアーム2と通信可能に接続するインタフェースとする。プロセッサ102は、ロボットアームインタフェース106に接続されたロボットアーム2を制御する。ロボットアームインタフェース106は、パレット6に物品を積み付けるロボットアーム2と通信する通信部の一例となる。
積付側計測インタフェース107は、積付側計測部5と通信可能に接続するインタフェースとする。プロセッサ102は、積付側計測インタフェース107に接続された積付側計測部5を制御する。
制御装置1の通信部108は、外部装置と接続するための通信インタフェースである。通信部108は、プロセッサ102の制御の下、外部装置との間で各種データの授受を行う。外部装置としては、例えば、物品積付システムを監視する監視装置が考えられる。そして、通信部108は、異常が生じた場合に、監視装置に異常が生じた旨の通知を行う。
記憶部101は、例えば、フラッシュメモリ等の半導体メモリ素子やハードディスク等の補助記憶装置によって実現される。記憶部101は、制御装置1の動作に係るプログラムや設定情報等を記憶する。また、記憶部101は、ロボットアーム2の上下方向及び水平方向の移動限界位置や、ロボットアーム2の可動範囲、ロボットアーム2が把持可能な物品の寸法の上限及び下限等を示した限界情報を記憶する。
制御装置1は、物品積付システム全体を制御する全体制御装置として機能する。本実施形態では、制御装置1は、ロボットアーム2による物品の積み付けを制御する制御装置の一例である。具体的には、制御装置1は、供給側計測部4による物品のサイズの計測結果、及び積付側計測部5による物品全体の荷姿の高さの計測結果等に基づいて、ロボットアーム2によるパレット6に対する物品の積み付けを制御する。
図3は、本実施形態にかかる物品積付システムが有する制御装置の機能構成の一例を示すブロック図である。
次に、図3を用いて、本実施形態にかかる物品積付システムが有する制御装置1の機能構成の一例について説明する。
図3に示すように、制御装置1は、プロセッサ102が、ROM104に記憶される制御プログラムを実行することで、アーム制御部200、設定部201、サイズ算出制御部203、及び高さ特定制御部204の機能を実現する。このように、本実施形態においてはプロセッサ102が制御部の一例として機能する。
本実施形態では、制御装置1のプロセッサ102によって、アーム制御部200、設定部201、サイズ算出制御部203、及び高さ特定制御部204を実現しているが、これに限定するものではなく、アーム制御部200、設定部201、サイズ算出制御部203、及び高さ特定制御部204の一部または全部を回路等のハードウェアによって実現しても良い。
サイズ算出制御部203は、供給側計測部4による撮像データを取得する。そして、サイズ算出制御部203は、取得した撮像データと、供給側計測部4と積付対象物品との間の距離と、に基づいて、積付対象物品のサイズ(例えば、物品の幅、奥行き、高さ)を算出する。以後、算出された積付対象物品のサイズ(例えば、物品の幅、奥行き、高さ)を、サイズ算出結果とも言う。なお、供給側計測部4と積付対象物品との間の距離は予め保持しているものとする。
高さ特定制御部204は、積付側計測部5による撮像データを取得する。そして、高さ特定制御部204は、積付側計測部5とパレット6との位置関係、及び撮像データに基づいて、パレット6に積み付けられた物品の各々の現在の高さ(以下、高さ特定結果と言う)を特定する。なお、積付側計測部5とパレット6との位置関係は予め保持しているものとする。
アーム制御部200は、ロボットアーム2によるパレット6に対する物品の積み付けを制御する。本実施形態では、アーム制御部200は、部分領域算出部202、算出部205、積付位置決定部206、及びロボット側通信部207を有する。
記憶部101は、分割データを記憶する。本実施形態の分割データとは、パレット6の上面(積付領域の一例)を、積み付けられる物品のサイズに基づいて、当該物品が収まるように仮想的に分割された複数の部分領域を有するデータとする。言い換えると、分割データは、パレット6の上面を積付対象物品のサイズに応じて仮想的に分割しているので、積付対象物品の積付先を設定可能な部分領域の位置を示したマップとも言える。なお、部分領域には、1個の物品が積み付けられる。
図4は、記憶部101に記憶される分割データを例示した図である。図4に示されるように、本実施形態においては、パレットの上面の形状を、2×2で分割した分割データH1と、パレットの上面の形状を、2×3で分割した分割データH2と、を記憶する。分割データH1は、それぞれ1個の物品を収納可能な部分領域PR1~PR4を有する。分割データH2は、それぞれ1個の物品を収納可能な部分領域PR5~PR10を有する。
本実施形態においては、ベルトコンベア3から供給される物品のサイズは予め定められているものとする。
そこで、本実施形態の記憶部101は、ベルトコンベア3から供給される物品のサイズに応じた分割データを予め記憶している。具体的には、記憶部101は、物品のサイズ(例えば、物品の幅、奥行き、高さ)と、パレット6の上面(積付領域の一例)のサイズ(例えば、容器の幅、奥行き、高さ)と、に基づいて、パレット6の上面を仮想的に複数の部分領域に分割した分割データを記憶している。当該分割データは、パレット6の上面に積み付ける物品の個数が最大となるように、当該上面を複数の部分領域に分割している。これにより、パレット6に対する物品の充填率を向上させることができる。
本実施形態においては、物品の底面のサイズに応じてグループ分けしている。そして、記憶部101は、グループ毎に、分割データを記憶している。例えば、第1のグループについて、分割データH1が割り当てられ、第2のグループについて、分割データH2が割り当てられる。本実施形態では、物品のグループ毎に分割データを割り当てる例について説明するが、物品毎に分割データを割り当ててもよい。
さらに、記憶部101は、部分領域毎に積み付けられる物品の高さに対して用いられる重みを示した重付データを記憶する。重付データとは、複数の分割データ(例えば分割データH1及び分割データH2)の各々について、部分領域毎に、当該部分領域に積み付けられた物品の現在の高さに加算する重みを示したマップとする。
例えば、重付データには、分割データ毎の、部分領域の各々に積み付けられた物品の現在の高さ(現在高さデータとも言う)のうち、物品を低く積み付けたい部分領域に対して大きな値が設定されている。例えば、重付データは、ロボットアーム2の位置を基準として、手前側の部分領域に積み付けされた仮想的な物品の高さが、奥側の部分領域に積み付けされた仮想的な物品の高さと比べて高くするように、手前側の部分領域に大きな値が割り当てられている。
本実施形態の制御装置1では、物品の積み付け先を決定する際に、高さが低い部分領域を積み付け先として決定するため、奥側の部分領域が、手前側の部分領域と比べて、物品の積付位置として選択される確率が高くすることができる。その結果、手前側の物品の現在高さが低くなるため、ロボットアーム2による積み付けが容易となる。さらには、パレット6に積み付けられる物品全体の荷姿が、所望の荷姿になるように、物品の積付位置を決定することができる。
このように、記憶部101には、分割データと重付データとを対応付けて記憶している。
部分領域算出部202は、分割データ毎に、当該分割データによって分割されている部分領域の各々の現在の高さを示す現在高さデータを算出する。本実施形態では、部分領域算出部202は、高さ特定制御部204によって特定される高さ特定結果と、分割データと、に基づいて、分割データ毎に、当該分割データによって仮想的に分割された部分領域の各々に、既に積み付けられた物品による現在の高さを示した現在高さデータを特定する。または、部分領域算出部202は、パレット6に既に積み付けられた物品の高さに基づいて、部分領域の各々の現在高さデータを算出しても良い。具体的には、部分領域算出部202は、部分領域毎に、既に積み付けた物品の高さの合計を、当該部分領域の現在高さデータとして算出する。なお、部分領域算出部202は、現在高さの特定結果を、記憶部101に保存する。
また、本実施形態では、部分領域算出部202は、後述する積付位置決定部206によって積付対象物品の積付位置が決定する度に(言い換えると、パレット6に対して物品が積み付けられる度に)、現在高さデータを算出し直す(更新する)。本実施形態では、部分領域算出部202は、全ての物品のサイズの現在高さデータを算出し直すものとするが、少なくとも、新たな積付対象物品のサイズの現在高さデータを算出し直せば良い。
算出部205は、サイズ算出制御部203により算出された積付対象物品のサイズを取得する。そして、算出部205は、積付対象物品のサイズに対応する、分割データ及び重付データを、記憶部101から読み出す。さらに、算出部205は、記憶部101に保存された、読み出された分割データに対応する、現在高さデータを読み出す。
これにより、算出部205は、積付対象物品を積み付ける場合に、分割データと、積付対象物品と、に基づいて、パレット6を、積付対象物品のサイズに対応する分割データで仮想的に分割した部分領域の各々に、既に積み付けられた物品による現在の高さを示した現在高さデータを特定できる。
さらに、算出部205は、重付データと、現在高さデータと、に基づいて、パレット6に対して積付対象物品を収納可能に分割した部分領域の各々に、現在の高さに重み付けした仮想的高さデータを算出する。
また、算出部205は、部分領域の仮想的な高さの算出結果が、予め設定される高さの上限(以下、制約高さと言う)を超える場合、当該制約高さを、部分領域の仮想的な高さとして算出する。ここで、制約高さは、部分領域に積み付け可能な物品全体の最大の高さである。本実施形態では、算出部205は、部分領域毎に、予め、制約高さを設定しておくものとする。
また、本実施形態では、算出部205は、現在高さデータが示す現在の高さに応じて、重付データが示す部分領域の高さの重みを変更することも可能である。例えば、算出部205は、各部分領域の現在の高さが、パレット6に積み付け可能な物品全体の高さの上限に近づくに従って、高さの重みを小さくする。
積付位置決定部206は、算出部205によって算出された部分領域の各々の仮想的高さデータに基づいて、積付対象物品を積み付ける、積付位置を決定する。本実施形態の積付位置決定部206は、部分領域の各々に算出された仮想的高さデータのうち、最も低い仮想的高さデータに対応する、部分領域を、積付対象物品を積み付ける位置(以下、積付位置と言う)として決定する。なお、本実施形態は、最も低い仮想的高さデータに対応する部分領域を、積付対象物品を積み付ける積付位置に設定する例について説明するが、最も低い仮想的高さデータに対応する部分領域に決定することに制限するものではない。例えば、積付対象物品の高さを考慮した上で、部分領域を決定する等が考えられる。
ロボット側通信部207は、積付位置決定部206によって決定された積付位置に物品を積み上げるための信号を、ロボットアームインタフェース106を介して、ロボットアーム2に送信する。これにより、サイズが異なる物品が運ばれてくる順序を予め得ることができず、かつ、物品の仮置き場を活用することができない状態で、物品の積み付けを行う場合でも、積付対象物品のサイズに応じて、パレット6に対する物品の充填率が高くなるように、積付位置を決定することができる。その結果、複雑な方法を用いることなく、積付対象物品のサイズを用いて、パレット6に対する物品の充填率を向上させることができる。
また、積付位置決定部206は、対象サイズの分割データが示す複数の部分領域のうち、算出部205によって制約高さが仮想的な高さとして算出される部分領域については、積付位置に決定しないものとする。これにより、部分領域に対して予め設定される制約高さを超えて物品が積み付けられることを防止できる。
本実施形態では、積付位置決定部206は、積付位置に決定した部分領域内において物品を積み付ける位置(以下、エリア内積付位置と言う)も決定する。具体的には、積付位置決定部206は、ボトムレフト法、ボトムライト法、レフトボトム法、ライトボトム法、トップレフト法、トップライト法、レフトトップ法、ライトトップ法等の複数の位置決定方法のうち、予め設定される位置決定方法によって、エリア内積付位置を決定する。
また、本実施形態では、積付位置決定部206は、仮想高さが同じ部分領域が複数存在する場合、ボトムレフト法、ボトムライト法、レフトボトム法、ライトボトム法、トップレフト法、トップライト法、レフトトップ法、ライトトップ法等の複数の位置決定方法のうち、予め設定される位置決定方法によって、仮想高さが同じ部分領域の中から、積付位置を決定する。
ロボット側通信部207は、積付位置決定部206により決定した積付位置に物品を積み付けるための信号である制御情報を、ロボットアーム2に対して送信して、ロボットアーム2による積付位置に対する物品の積み付けを制御する。本実施形態では、ロボット側通信部207は、積付位置決定部206により決定される積付位置及びエリア内積付位置に基づいて、積付対象物品をパレット6に積み付ける際にロボットアーム2を動かす軌道を算出し、当該算出した軌道を示す制御情報を、ロボットアーム2に対して出力する。
本実施形態では、ロボット側通信部207は、積付対象物品をパレット6に積み付ける際のロボットアーム2の軌道を、制御情報として、ロボットアーム2に対して出力しているが、パレット6に対する積付対象物品の積み付けを、人が行う場合には、積付位置を示す情報を、制御情報として、表示装置等の出力装置に表示させても良い。
本実施形態の設定部201は、積み付け制御を行う前に、物品積付システムで積み付け対象となる物品のサイズに基づいて、分割データ及び重付データを予め生成し、記憶部101に記憶させておく。このために、設定部201は、物品積付システムで積み付け対象となる物品のオリジナルサイズを予め取得する。オリジナルサイズとは、例えば、物品積付システムにおいて積付対象である物品に応じて予め定められた長さl、幅w、及び高さhとする。
次に、本実施形態にかかる物品積付システムの記憶部101に記憶される分割データの部分領域に割り当てられる、物品のサイズについて説明する。パレット6のサイズは、例えば、長さL=1150、幅W=920、高さH=2080とする。
図5は、パレット6に積み付ける物品の長さl、幅w、及び高さhを示すオリジナルサイズを示した図である。
そして、パレットサイズに対して、オリジナルサイズが収納可能な部分領域で分割した分割データを生成した場合、分割データに従って収納すると、図5の表501で示した個数の物品が収納可能となる。図5の表501は、物品のオリジナルサイズ毎の分割データに従ってパレット6の上面を複数の部分領域に分割した場合における、長さ方向数nl、幅方向数nw、高さ方向数nh、及び合計数Nを示している。
ここで、長さ方向数nlは、パレット6の長さ方向に積み付け可能な物品の個数である。幅方向数nwは、パレット6の幅方向に積み付け可能な物品の個数である。高さ方向数nhは、パレット6の高さ方向に積み付け可能な物品の個数である。合計数Nは、パレット6全体に積み付け可能な物品の個数の合計である。
例えば、図5に示すように、物品番号:1の物品をパレット6に積み付ける場合、長さ方向数nlが3個であり、幅方向数nwが3個であり、高さ方向数nhが19個であり、合計数Nは171個である。
ところで、オリジナルサイズが示す物品の長さl、幅w、及び高さhと、パレット6の長さL、幅W、高さHと、を合わせて物品を積み付けた場合、最大の充填率とはならない可能性がある。
そこで、本実施形態の設定部201は、パレット6に対して積み付け可能な物品の個数が最大となるように、物品の長さl、幅w、及び高さhを定義し直したオプティマルサイズに応じた分割データを記憶部101に記憶させる。言い換えると、設定部201は、パレット6に対して積み付け可能な物品の個数が最大となるように、オリジナルサイズから、物品の長さl、幅w、及び高さhが入れ替えたオプティマルサイズを設定する。
図6は、パレット6に積み付ける物品の長さl、幅w、及び高さhを示すオプティマルサイズを示した図である。図6に示すように、物品番号:1のオプティマルサイズは、長さl(31.5cm)、幅w(10.5cm)、及び高さ(24.0cm)である。このオプティマルサイズは、物品番号:1のオリジナルサイズの物品の長さl(31.5cm)、幅w(24.0cm)、及び高さh(10.5cm)のうち、幅wと高さhとが入れ替えられている。
そして、設定部201は、物品毎に、パレットサイズ及びオプティマルサイズに基づいて、パレット6の上面を複数の部分領域に分割した分割データを生成し、記憶部101に記憶させる。
これにより、図6に示すように、パレット6に積み付け可能な物品の合計数Nを増加させることができるので、パレット6に対する物品の充填率を向上させることができる。
例えば、図6に示すように、オプティマルサイズに基づいて生成した分割データを用いて、物品番号:1の物品をパレット6に積み付ける場合、長さ方向数nlが3個となり、幅方向数nwが8個となり、高さ方向数nhが8個となり、合計数Nが192個となる。よって、分割データの設定に用いる物品のサイズを定義し直すことにより、パレット6に積み付け可能な物品の合計数Nを増加させることができる。
また、設定部201は、長さ方向数nlと、幅方向数nwと、が一致する物品は、同じ分割データを用いてもよい。本実施形態の設定部201は、同じ分割データを用いる物品をグループで分ける。図6の表601に示される例では、長さ方向数nlが3個であり、幅方向数nwが8個である、物品番号:1が第1グループとなり、長さ方向数nlが3個であり、幅方向数nwが6個である、物品番号:2,3が第2グループとなり、長さ方向数nlが3個であり、幅方向数nwが2個である、物品番号:4,5が第3グループとなり、長さ方向数nlが3個であり、幅方向数nwが4個である、物品番号:6が第4グループとなる。このように、本実施形態では、物品積付システムで積付対象となる物品全てについて、オプティマルサイズに基づいて、分割データに対応するグループを予め設定しておく。
そして、設定部201は、パレットサイズが示すパレット6の上面の形状と、オプティマルサイズが示す物品の底面の形状と、に基づいて、パレット6の長さLの方向及び幅Wの方向の各々について、物品を載置可能な最大の個数を求め、当該個数で各方向を分割して分割データを生成する。
例えば、設定部201は、図4に示すように、パレット6の上面の長さLの方向を、当該長さLの方向に物品を載置可能な最大数(例えば、2個)で均等に分割し、かつ、パレット6の上面の幅Wの方向を、当該幅Wの方向の物品候補を載置可能な最大数(例えば、2個または3個)で均等に分割する。これにより、設定部201は、パレット6の上面の長さL及び幅Wをそれぞれ均等に分割した各部分領域PR1~PR10を示す分割データH1,H2を生成し、記憶部101に記憶する。
ここで、分割データH1,H2の各部分領域PR1~PR10には、1つの物品が積み付け可能であるものとする。以下の説明では、部分領域PR1~PR10を区別する必要がない場合には、部分領域PRと記載する。本実施形態では、設定部201は、物品のサイズのグループ(例えば、グループG1,G2)毎に、分割データを設定するものとするが、物品毎に、分割データを設定しても良い。
また、設定部201は、予め重付データを生成し、記憶部101に記憶させる処理も行う。図7は、本実施形態にかかる物品積付システムにおける重付データの設定方法の一例を説明するための図である。
図7に示される例は、物品W1、W2、W3が、分割データH1を用いるグループG1に属し、物品W4、W5、W6が、分割データH2を用いるグループG2に属する例とする。このため、グループG1に属する物品W1、W2、W3は、底面の形状が類似している。同様に、グループG2に属する物品W4、W5、W6も、底面の形状が類似している。
設定部201は、例えば、図7に示すように、グループG1に設定された分割データH1について、部分領域PRの高さの重みを示す重付データP1を生成し、グループG2に設定された分割データH2について、部分領域PRの高さの重みを示す重付データP2を生成し、記憶部101に記憶する。その際、設定部201は、分割データH1,H2が示す複数の部分領域PRのうち、多くの物品を積み付けたい部分領域PRに対する重みを、少ない物品を積み付けたい部分領域PRに対する重みより大きく設定する。
これにより、多くの物品を積み付けたい部分領域PRの仮想的な高さが低くなる確率が上がるので、当該多く物品を積み付けたい部分領域PRが積付位置に決定され易くなり、多くの物品を積み付けたい部分領域PRに対して物品を多く積み付けることが可能となる。
例えば、パレット6の奥側に物品を多く積み付けたい場合、設定部201は、図7に示すように、分割データ(例えば、グループG1の分割データH1)の部分領域PR1~PR4のうち、手前側の部分領域PR1,PR2に対する重み(例えば、200cm)を、奥側の部分領域PR3,PR4に対する重み(例えば、0cm)よりも大きく設定する。
これにより、算出部205が、分割データH1が示す各部分領域PR1~PR4の仮想的な高さを算出する際、重付データを用いることで、手前側の部分領域PR1,PR2の仮想的な高さが、奥側の部分領域PR3,PR4の仮想的な高さよりも高くなる確率を上昇させることができる。その結果、分割データH1が示す部分領域PR1~PR4のうち奥側の部分領域PR3,PR4が、積付位置に決定され易くなり、パレット6の奥側に物品を多く積み付けることが可能となる。
また、パレット6の手前に物品を多く積み付けかつパレット6の中央には物品を低く積み付けたい場合、設定部201は、図7に示すように、分割データ(例えば、グループG2の分割データH2)の部分領域PR5~PR10のうち、奥側の部分領域PR8~PR10に対する重み(例えば、200cmまたは280cm)を、手前側の部分領域PR5~PR7に対する重み(例えば、0cmまたは80cm)よりも大きく設定する。さらに、設定部201は、図7に示すように、分割データH2の部分領域PR5~PR10のうち、中央の部分領域PR6,PR9に対する重み(例えば、80cmまたは280cm)を、外側の部分領域PR5,PR7,PR8,PR10に対する重み(例えば、0cmまたは200cm)よりも大きく設定する。
本実施形態においては、設定部201によって生成された分割データ、及び重付データを、予め記憶部101に記憶させておくこととした。これにより、算出部205が、分割データH2で仮想的に分割された各部分領域PR5~PR10の仮想的な高さを算出する際、重付データを用いることで、奥側の部分領域PR8~PR19の仮想的な高さが、手前側の部分領域PR5~PR7の仮想的な高さよりも高くなる確率、及び、中央の部分領域PR6,PR9の仮想的な高さが、外側の部分領域PR5,PR7,PR8,PR10の仮想的な高さよりの高くなる確率を上昇させることができる。その結果、分割データH2が示す部分領域PR5~PR10のうち手前側及び外側の部分領域PRが、積付位置に決定され易くなり、パレット6の手前及び外側に物品を多く積み付けることが可能となる。
次に、実施形態にかかる物品積付システムにおける積付位置の決定方法の一例について説明する。図8は、本実施形態にかかる物品積付システムにおける積付位置の決定方法の一例を説明するための図である。
ベルトコンベア3で積付対象物品が供給された場合に、算出部205は、サイズ算出制御部203により算出された積付対象物品のサイズを取得する。そして、算出部205は、取得した積付対象物品のオプティマルサイズが、グループG1に属すると判断する。以降の処理は、積付対象物品が、グループG1に属する場合について説明するが、他のグループに属する物品についても、同様の処理を行うものとする。
そして、算出部205は、図8に示すように、記憶部101から、グループG1に対応する分割データH1及び重付データP1を読み出す。次に、算出部205は、分割データH1が示す各部分領域PR1~PR4の現在の高さrh(例えば、10cm、10cm、80cm、20cm)に対して、重付データP1が示す各部分領域PR1~PR4の重みwh(200cm、200cm、0cm、0cm)を加算した値を、各部分領域PR1~PR4の仮想的な高さvh(例えば、210cm、210cm、80cm、20cm)として算出する。
次いで、積付位置決定部206は、図8に示すように、分割データH1が示す複数の部分領域PR1~PR4のうち、算出部205によって算出した仮想的な高さvhが最も低い部分領域PR(仮想的な高さvhが20cmの部分領域PR4)を、積付位置に決定する。これにより、サイズが異なる物品が運ばれてくる順序を予め得ることができず、かつ、物品の仮置き場を活用することができない状態で、物品の積み付けを行う場合でも、積付対象物品のサイズに応じて、パレット6に対する物品の充填率が高くなるように、積付位置を決定することができる。その結果、複雑な方法を用いることなく、積付対象物品のサイズを用いて、パレット6に対する物品の充填率を向上させることができる。
本実施形態の制御装置1が、第1の積付対象物品を積み付けた後に、第2の積付対象物品を積み付ける場合について説明する。このような場合に、部分領域算出部202は、第2の積付対象物品に対応する分割データと、第2の積付対象物品のサイズと、に基づいて、積付領域を、第2の積付対象物品のサイズを格納可能に仮想的に分割した部分領域の各々に、既に積み付けられた物品による現在の高さを示した現在高さデータを特定する。第1の積付対象物品が複数の部分領域にまたがって存在する場合、部分領域算出部202は、複数の部分領域について第1の積付物品までの高さを考慮して、現在高さデータを特定する。次に、具体的な部分領域の現在の高さの更新方法について説明する。
図9A~図9Cは、本実施形態にかかる物品積付システムにおける部分領域の現在の高さの更新方法の一例を説明するための図である。
パレット6に積み付け済みの物品の高さに基づいて、分割データが示す各部分領域PRの現在の高さrhを求める場合、部分領域算出部202は、分割データが示す複数の部分領域PRのうち、積付位置に決定した部分領域PRの現在の高さrhに対して、積付対象物品の高さを加算した値を、当該部分領域PRの新たな現在の高さrhとして算出する。
例えば、図9Aに示すように、分割データH1が示す部分領域PR1~PR4のうち、部分領域PR1が積付位置に決定した場合、部分領域算出部202は、部分領域PR1の現在の高さrh:cに対して、積付対象物品の高さhを加算した値を、部分領域PR1の新たな現在の高さrh:aとして算出する。ここで、部分領域PR2の現在の高さrh:bは、部分領域PR1の現在の高さrh:cよりも高いものとする。この場合、分割データH1の部分領域PRの現在の高さのみならず、分割データH2の部分領域PRの現在の高さについても更新される。
次に、部分領域算出部202は、分割データH1以外の分割データH2についても、当該分割データH2が示す各部分領域PR5~PR10の新たな現在の高さrhを算出する。具体的には、物品積付システムでは、図9Aに示すように、分割データH1の部分領域PR1について、新たに積付対象物品が積み付けられ、現在の高さrh:aに変更されたものとする。この場合、部分領域算出部202は、分割データH2が示す部分領域PR5~PR10のうち、新たな現在の高さrh:aに変更された部分領域PR1と少なくとも一部が干渉(重複)する部分領域PR5,PR6について、現在の高さrhを、新たな現在の高さrh:a及び部分領域PR5,PR6の現在の高さrh:c(またはb2)のうち、いずれか高い方に変更する。これにより、部分領域算出部202は、図9Aに示すように、分割データH2が示す部分領域PR5,PR6の現在の高さrh:c(またはb2)を、部分領域PR1の新たな現在の高さrh:aに変更する。
図9Bに示す例は、分割データH2が示す部分領域PR5~PR10のうち、部分領域PR5に積付対象物品が積み付けられた例とする。この場合、部分領域算出部202は、部分領域PR5の現在の高さrh:cに対して、積付対象物品の高さhを加算した値を、部分領域PR5の新たな現在の高さrf:aとして算出する。ここで、部分領域PR6,PR7の現在の高さrh:b1,b2は、部分領域PR5の現在の高さrh:cよりも高いものとする。この場合、分割データH2の部分領域PRの現在の高さのみならず、分割データH1の部分領域PRの現在の高さについても更新される。
部分領域算出部202は、図9Bに示すように、分割データH1が示す部分領域PR1~PR4のうち、新たな現在の高さrh:aを算出した部分領域PR5と少なくとも一部が干渉(重複)する部分領域PR1について、現在の高さrhを、新たな現在の高さrh:a及び部分領域PR1の現在の高さrh:b1のうち、いずれか高い方に変更する。
また、例えば、図9Cに示すように、分割データH2が示す部分領域PR5~PR10のうち、部分領域PR6に積付対象物品が積み付けられた例とする。この場合、部分領域算出部202は、部分領域PR6の現在の高さrh:cに対して、積付対象物品の高さhを加算した値を、部分領域PR6の新たな現在の高さrh:aとして算出する。ここで、部分領域PR5,PR7の現在の高さrh:b1,b2は、部分領域PR6の現在の高さrh:cより高いものとする。
次に、部分領域算出部202は、図9Cに示すように、分割データH1が示す部分領域PR1~PR4のうち、新たな現在の高さrh:aを算出した部分領域PR6と少なくとも一部が干渉(重複)する部分領域PR1について、現在の高さrhを、新たな現在の高さrh:a及び部分領域PR1の現在の高さrh:b1のうち、いずれか高い方に変更する。さらに、部分領域算出部202は、分割データH1が示す部分領域PR1~PR4のうち、新たな現在の高さrh:aを算出した部分領域PR6と少なくとも一部が干渉(重複)する部分領域PR2について、現在の高さrhを、新たな現在の高さrh:a及び部分領域PR2の現在の高さrh:b2のうち、いずれか高い方に変更する。
部分領域算出部202は、以上に説明した処理を、パレット6に対して物品を積み付けることができなくなるまで、積付位置決定部206によって積付位置が決定される度に、全ての部分領域PRの現在の高さrhの変更を繰り返すものとする。
図10は、本実施形態にかかる物品積付システムによる積付位置の決定処理の流れの一例を示すフローチャートである。
次に、図10を用いて、本実施形態にかかる物品積付システムによる積付位置の決定処理の流れの一例について説明する。
まず、サイズ算出制御部203は、供給側計測部4からの撮像データに基づいて、積付対象物品のサイズを算出する(ステップS801)。
高さ特定制御部204は、積付側計測部5からの撮像データに基づいて、パレット6に積み付け済みの物品各々の現在の高さを特定する(ステップS802)。
次に、部分領域算出部202は、高さ特定制御部204により特定された物品各々の現在の高さに基づいて、記憶部101に記憶される分割データで仮想的に分割された部分領域の各々の現在の高さを更新する(ステップS803)。
算出部205は、記憶部101から、サイズ算出制御部203により算出された積付対象物品のサイズに対応する分割データ及び重付データを読み出す(ステップS804)。
そして、算出部205は、読み出された分割データで分割された部分領域の各々の現在の高さに対して、読み出した重付データが示す部分領域の高さの重みを加算した値を、部分領域の仮想的な高さとして算出する(ステップS805)。
積付位置決定部206は、読み出した分割データが示す複数の部分領域のうち、算出部205により算出した仮想的な高さが最も低い部分領域を、積付位置に決定する(ステップS806)。
そして、ロボット側通信部207は、決定した積付位置に対して、積付対象物品を積み付ける際のロボットアーム2の軌道を算出し、当該算出した軌道を示す制御情報を、ロボットアーム2に対して送信する(ステップS807)。これにより、ロボットアーム2による積付位置に対する積付対象物品の積み付け制御が行われる。
その後、積付位置決定部206は、高さ特定制御部204により特定された積み付け済みの物品の現在の高さや、最後に積み付けた物品の高さ等に基づいて、パレット6に対して、新たな物品を、積付可能か否かを判定する(ステップS808)。
パレット6に対して、新たな物品を、積付可能であると判定した場合(ステップS808:Yes)、ステップS801に戻り、サイズ算出制御部203による、供給側計測部4からの撮像データに基づいた、積付対象物品のサイズの算出が行われる。
一方、パレット6に対して、新たな物品を、積み付けできないと判定した場合(ステップS808:No)、制御装置1は、ロボットアーム2を制御して、パレット6に対する物品の積み付けを終了させる。
このように、本実施形態にかかる物品積付システムによれば、サイズが異なる物品が運ばれてくる順序を予め得ることができず、かつ、物品の仮置き場を活用することができない状態で、物品の積み付けを行う場合でも、積付対象物品のサイズに応じて、パレット6に対する物品の充填率が高くなるように、積付位置を決定することができる。その結果、複雑な方法を用いることなく、積付対象物品のサイズを用いて、パレット6に対する物品の充填率を向上させることができる。
なお、本実施形態の制御装置1で実行されるプログラムは、ROM等に予め組み込まれて提供されるが、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施形態の制御装置1で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の制御装置1で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
本実施形態の制御装置1で実行されるプログラムは、上述した各部(アーム制御部200、サイズ算出制御部203、及び高さ特定制御部204)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、アーム制御部200、サイズ算出制御部203、及び高さ特定制御部204が主記憶装置上に生成されるようになっている。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。