(57)【要約】【課題】把持部を考慮して物品の積載位置を決定することができる制御装置、プログラム及び制御方法を提供する。【解決手段】実施形態によれば、制御装置は、第１のインターフェースと、プロセッサと、を備える。第１のインターフェースは、積載領域に積載する物品の形状を示す物品情報を取得する。プロセッサは、前記物品情報に基づいて、前記物品を把持する把持部が前記物品を把持した形状を平面に投影した第１の複合体モデルを生成し、前記積載領域に既に積載されている既積載物品を前記平面に投影した既積載モデルを生成し、前記第１の複合体モデルと前記既積載モデルとに基づいて前記第１の複合体モデルと前記既積載モデルの少なくとも１点とが干渉する第１の干渉領域を設定し、前記第１の干渉領域に基づいて前記物品を積載する第１の積載位置を決定する。【選択図】      図１
2020146824.tif 000002
【特許請求の範囲】
【請求項１】
積載領域に積載する物品の形状を示す物品情報を取得する第１のインターフェースと、
前記物品情報に基づいて、前記物品を把持する把持部が前記物品を把持した形状を平面に投影した第１の複合体モデルを生成し、
前記積載領域に既に積載されている既積載物品を前記平面に投影した既積載モデルを生成し、
前記第１の複合体モデルと前記既積載モデルとに基づいて前記第１の複合体モデルと前記既積載モデルの少なくとも１点とが干渉する第１の干渉領域を設定し、
前記第１の干渉領域に基づいて前記物品を積載する第１の積載位置を決定する、
プロセッサと、
を備える制御装置。
【請求項２】
前記プロセッサは、
前記第１の複合体モデルにおいて参照点を設定し、
前記既積載モデルの外周と前記第１の複合体モデルの少なくとも１点とを干渉させた状態における前記既積載モデルの外周に沿った前記参照点の軌跡に基づいて前記第１の複合体モデルと前記既積載モデルと干渉する個別干渉領域をそれぞれ設定し、
前記個別干渉領域に基づいて、前記第１の干渉領域を設定する、
請求項１に記載の制御装置。
【請求項３】
前記プロセッサは、前記第１の干渉領域の外周と前記積載領域の底面との交点に対応する点を第１の積載位置として決定する、
請求項１又は２に記載の制御装置。
【請求項４】
前記プロセッサは、
前記第１の複合体モデルの物品を示す部分のモデルを積載方向に延長した第２の複合体モデルを生成し、
前記第２の複合体モデルと前記既積載モデルとに基づいて前記第２の複合体モデルと前記既積載モデルの少なくとも１点とが干渉する第２の干渉領域を設定し、
前記第２の干渉領域に基づいて前記物品を積載する第２の積載位置を決定する、
請求項１乃至３の何れか１項に記載の制御装置。
【請求項５】
前記第２の複合体モデルは、前記把持部を前記平面に投影した把持部モデルと、前記把持部モデルの下端に形成され前記物品を前記平面に投影した物品モデルと、前記物品モデルの下端に形成され前記第１の複合体モデルを積載方向に延長するための延長モデルと、から構成される、
請求項４に記載の制御装置。
【請求項６】
前記延長モデルは、前記物品を落下させることが可能な高さに形成される、
請求項５に記載の制御装置。
【請求項７】
前記プロセッサは、前記第１の積載位置及び前記第２の積載位置から積載位置を選択し、
選択された前記積載位置を出力する第２のインターフェースを備える、
請求項４乃至６の何れか１項に記載の制御装置。
【請求項８】
前記プロセッサは、前記第１の積載位置及び前記第２の積載位置から低い位置にある積載位置を選択する、
請求項７に記載の制御装置。
【請求項９】
前記既積載モデルは、矩形である、
請求項１乃至８の何れか１項に記載の制御装置。
【請求項１０】
前記平面は、垂直な平面である、
請求項１乃至９の何れか１項に記載の制御装置。
【請求項１１】
プロセッサによって実行されるプログラムであって、
前記プロセッサに、
積載領域に積載する物品の形状を示す物品情報を取得させ、
前記物品情報に基づいて、前記物品を把持する把持部が前記物品を把持した形状を平面に投影した第１の複合体モデルを生成させ、
前記積載領域に既に積載されている既積載物品を前記平面に投影した既積載モデルを生成させ、
前記第１の複合体モデルと前記既積載モデルとに基づいて前記第１の複合体モデルと前記既積載モデルの少なくとも１点とが干渉する第１の干渉領域を設定させ、
前記第１の干渉領域に基づいて前記物品を積載する第１の積載位置を決定させる、
プログラム。
【請求項１２】
積載領域に積載する物品の形状を示す物品情報を取得し、
前記物品情報に基づいて、前記物品を把持する把持部が前記物品を把持した形状を平面に投影した第１の複合体モデルを生成し、
前記積載領域に既に積載されている既積載物品を前記平面に投影した既積載モデルを生成し、
前記第１の複合体モデルと前記既積載モデルとに基づいて前記第１の複合体モデルと前記既積載モデルの少なくとも１点とが干渉する第１の干渉領域を設定し、
前記第１の干渉領域に基づいて前記物品を積載する第１の積載位置を決定する、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御装置、プログラム及び制御方法に関する。
【背景技術】
【０００２】
物品をケースなどに積載するロボットを制御する制御装置には、物品を積載する積載位置を決定するものがある。そのような制御装置は、既に積載されている物品などに基づいて、新たに積載する物品の積載位置を決定する。
【０００３】
しかしながら、ロボットは、物品を把持する把持部が既に積載されている物品と干渉することなどによって積載位置に適切に物品を積載できない場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−７４８１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の課題を解決するため、把持部を考慮して物品の積載位置を決定することができる制御装置、プログラム及び制御方法を提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、制御装置は、第１のインターフェースと、プロセッサと、を備える。第１のインターフェースは、積載領域に積載する物品の形状を示す物品情報を取得する。プロセッサは、前記物品情報に基づいて、前記物品を把持する把持部が前記物品を把持した形状を平面に投影した第１の複合体モデルを生成し、前記積載領域に既に積載されている既積載物品を前記平面に投影した既積載モデルを生成し、前記第１の複合体モデルと前記既積載モデルとに基づいて前記第１の複合体モデルと前記既積載モデルの少なくとも１点とが干渉する第１の干渉領域を設定し、前記第１の干渉領域に基づいて前記物品を積載する第１の積載位置を決定する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態に係るロボットシステムの構成例を概念的に示す図である。
【図２】図２は、第１の実施形態に係る制御装置の構成例をブロック図である。
【図３】図３は、第１の実施形態に係る複合体モデルの例を示す図である。
【図４】図４は、第１の実施形態に係る制御装置の動作例を示す図である。
【図５】図５は、第１の実施形態に係る制御装置の動作例を示す図である。
【図６】図６は、第１の実施形態に係る制御装置の動作例を示すフローチャートである。
【図７】図７は、第１の実施形態に係る制御装置の動作例を示すフローチャートである。
【図８】図８は、第１の実施形態に係る複合体モデルの他の例を示す図である。
【図９】図９は、第２の実施形態に係る複合体モデルの例を示す図である。
【図１０】図１０は、第２の実施形態に係る制御装置の動作例を示すフローチャートである。
【図１１】図１１は、第２の実施形態に係る複合体モデルの他の例を示す図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら実施形態について説明する。
（第１の実施形態）
まず、第１の実施形態について説明する。  
実施形態に係るロボットシステムは、ロボットを用いて所定の場所に積載される物品を順に把持し所定の場所に積載する。ロボットシステムは、ロボットが備える把持部で物品を把持し搬送する。たとえば、ロボットシステムは、コンベアなどが供給する物品を順にケース、荷台又は倉庫などに積載する。たとえば、ロボットシステムは、物流センター又は倉庫などで用いられる。ロボットシステムが利用される場所は、特定の構成に限定されるものではない。
【０００９】
図１は、実施形態に係るロボットシステム１の構成例を示す。図１が示すように、ロボットシステム１は、制御装置１０及びロボット２０などを備える。制御装置１０とロボット２０とは、互いに接続する。ここでは、ロボットシステム１は、物品２を積載領域に積載するものとする。ここでは、ｘ軸は、水平な所定の方向を示す。また、ｙ軸は、水平でありｘ軸と直交する方向を示す。また、ｚ軸は、垂直な方向を示す。
【００１０】
物品２は、ロボットシステム１に把持される前において所定の領域に積載されている。たとえば、物品２は、コンベアなどによって搬送されるものであってもよい。また、物品２は、所定のケース又は所定の倉庫などに格納されていてもよい。  
たとえば、物品２は、矩形に形成される箱などである。また、物品２は、商品、部品又は荷物などである。物品２の構成は、特定の構成に限定されるものではない。
【００１１】
制御装置１０は、ロボット２０を制御する。制御装置１０は、ロボット２０が物品を積載する領域（積載領域）において物品２を積載する位置（積載位置）を決定する。制御装置１０は、積載領域に既に積載されている物品などに基づいて積載位置を決定する。制御装置１０は、決定した積載位置を示す情報をロボット２０に送信する。制御装置１０については、後に詳述する。
【００１２】
ロボット２０は、制御装置１０からの制御に従って、物品２を把持し積載領域に積載する。ロボット２０は、制御装置１０が決定した積載位置に物品２を積載する。即ち、ロボット２０は、積載位置にまで把持した物品２を搬送し解放する。
【００１３】
ロボット２０は、ロボットアーム２１、把持部２２及びロボットコントローラ２４などから構成される。  
ロボットアーム２１は、ロボットコントローラ２４の制御によって駆動するマニピュレータである。たとえば、ロボットアーム２１は、棒状のフレーム及びフレームを駆動するモータなどから構成される。
【００１４】
把持部２２は、ロボットアーム２１の先端に設置されている。把持部２２は、ロボットアーム２１の移動に伴って移動される。把持部２２は、ロボットアーム２１が所定の方向に移動することにより、物品２を把持する位置まで移動する。
【００１５】
把持部２２は、物品２を把持する。ここでは、把持部２２は、吸着パット２３（把持機構）を備える。吸着パット２３は、物品２に吸着する。たとえば、吸着パット２３は、真空吸着により物品２に吸着する。吸着パット２３は、ロボットコントローラ２４からの制御に基づいて内部を負圧にする。吸着パット２３は、物品２の表面に接した状態で内部を負圧にすることで物品２の表面に真空吸着する。吸着パット２３は、内部の負圧を解除すると、物品２を解放する。  
ここでは、把持部２２は、複数の吸着パット２３を備える。
【００１６】
なお、把持部２２には、吸着パット以外の種々の把持機構を採用してよい。たとえば、把持部２２は、物品２を把持するグリッパを含むものであってよい。グリッパは、複数の指と、複数の指を連結している複数の関節機構とを備える。関節機構は、関節機構の動作に連動して指が動作するように構成されてよい。グリッパは、例えば、複数の指による２点以上の接点で、対向する複数の方向から物品２に対して力を加える。これにより、把持部２２は、指と物品との間に生じる摩擦によって物品２を把持する。把持部２２の構成は、物品２を把持可能な種々の把持機構を用いてよく、特定の構成に限定されるものではない。
【００１７】
ロボットコントローラ２４は、制御装置１０の制御に従ってロボットアーム２１及び把持部２２などを制御する。たとえば、ロボットコントローラ２４は、制御装置１０から積載位置を示す情報を受信する。ロボットコントローラ２４は、積載位置に基づいて、把持部２２を初期位置から物品２を把持する把持位置及び積載位置などに順に移動させる経路を示す経路計画を策定する。たとえば、ロボットコントローラ２４は、既に積載されている物品などとロボットアーム２１及び把持部２２などが接触しないように経路計画を策定する。
【００１８】
ロボットコントローラ２４は、経路計画に従って、把持部２２を移動させる。即ち、ロボットコントローラ２４は、ロボットアーム２１を制御して把持部２２を経路計画が示す経路に沿って移動させる。
【００１９】
ロボットコントローラ２４は、把持部２２を初期位置から把持位置まで移動させると、吸着パット２３を制御して吸着パット２３を物品２に吸着させる。ロボットコントローラ２４は、物品２を吸着させた状態でロボットアーム２１を移動させて物品２を移動させる。
【００２０】
ロボットコントローラ２４は、ロボットアーム２１を移動させて把持した物品２を積載位置まで搬送する。ロボットコントローラ２４は、物品２を積載位置まで搬送すると、吸着パット２３を制御して物品２を解放する。
【００２１】
たとえば、ロボットコントローラ２４は、プロセッサなどから構成される。たとえば、ロボットコントローラ２４は、ＰＣ又はＡＳＩＣ（Application Specific Integrated Circuit）などから構成される。ロボットコントローラ２４の構成は、特定に構成に限定されるものではない。
【００２２】
なお、ロボットシステム１は、図１が示すような構成の他に必要に応じた構成を具備したり、ロボットシステム１から特定の構成が除外されたりしてもよい。
【００２３】
次に、制御装置１０について説明する。  
図２は、制御装置１０の構成例を示す。図２が示すように、制御装置１０は、プロセッサ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、通信部１５、操作部１６、表示部１７及びロボットインターフェース１８などを備える。
【００２４】
プロセッサ１１と、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、通信部１５、操作部１６、表示部１７及びロボットインターフェース１８と、は、データバスなどを介して互いに接続する。  
なお、制御装置１０は、図２が示すような構成の他に必要に応じた構成を具備したり、制御装置１０から特定の構成が除外されたりしてもよい。
【００２５】
プロセッサ１１は、制御装置１０全体の動作を制御する機能を有する。プロセッサ１１は、内部キャッシュ及び各種のインターフェースなどを備えてもよい。プロセッサ１１は、内部メモリ、ＲＯＭ１２又はＮＶＭ１４が予め記憶するプログラムを実行することにより種々の処理を実現する。
【００２６】
なお、プロセッサ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであってもよい。この場合、プロセッサ１１は、ハードウエア回路により実行される機能を制御する。
【００２７】
ＲＯＭ１２は、制御プログラム及び制御データなどが予め記憶された不揮発性のメモリである。ＲＯＭ１２に記憶される制御プログラム及び制御データは、制御装置１０の仕様に応じて予め組み込まれる。
【００２８】
ＲＡＭ１３は、揮発性のメモリである。ＲＡＭ１３は、プロセッサ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１３は、プロセッサ１１からの命令に基づき種々のアプリケーションプログラムを格納する。また、ＲＡＭ１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００２９】
ＮＶＭ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１４は、たとえば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）又はフラッシュメモリなどから構成される。ＮＶＭ１４は、制御装置１０の運用用途に応じて制御プログラム、アプリケーション及び種々のデータなどを格納する。
【００３０】
通信部１５（第１のインターフェース）は、外部装置と通信するためのインターフェースである。たとえば、通信部１５は、インターネットなどの外部ネットワーク又はＬＡＮ（Local Area Network）などの内部ネットワークを通じて外部装置と接続する。たとえば、通信部１５は、ＬＡＮ接続をサポートするインターフェースである。
【００３１】
操作部１６（第１のインターフェース）は、オペレータから種々の操作の入力を受け付ける。操作部１６は、入力された操作を示す信号をプロセッサ１１へ送信する。操作部１６は、タッチパネルから構成されてもよい。
【００３２】
表示部１７は、プロセッサ１１からの画像データを表示する。たとえば、表示部１７は、液晶モニタから構成される。操作部１６がタッチパネルから構成される場合、表示部１７は、操作部１６と一体的に形成されてもよい。
【００３３】
ロボットインターフェース１８（第２のインターフェース）は、ロボット２０と通信するためのインターフェースである。即ち、ロボットインターフェース１８は、ロボットコントローラ２４と通信する。また、ロボットインターフェース１８は、ＵＳＢ（Universal Serial Bus）接続をサポートするものであってもよい。
【００３４】
次に、制御装置１０が実現する機能について説明する。制御装置１０が実現する機能は、プロセッサ１１がＲＯＭ１２又はＮＶＭ１４などに格納されるプログラムを実行することで実現される。
【００３５】
まず、プロセッサ１１は、物品２の形状を示す物品情報を取得する機能を有する。  
プロセッサ１１は、積載領域に積載する物品２が存在する場合、物品２の形状を示す物品情報を取得する。たとえば、プロセッサ１１は、通信部１５などを通じて所定のタイミングで外部装置から物品情報を取得する。また、プロセッサ１１は、操作部１６などを通じてオペレータから物品情報の入力を受け付けてもよい。
【００３６】
たとえば、物品情報は、物品２の形状として物品２にサイズを示す。物品情報は、物品２の各辺の長さを示す。  
物品情報は、オペレータによって入力されたサイズに基づいて生成されるものであってもよい。また、物品情報は、センサなどによって測定されたサイズに基づいて生成されるものであってもよい。
【００３７】
また、プロセッサ１１は、物品情報に基づいて、把持部２２が物品２を把持した形状を垂直な平面に投影した複合体モデル（第１の複合体モデル）を生成する機能を有する。  
ここでは、プロセッサ１１は、把持部２２が物品２を把持した形状をＸＺ平面に投影した複合体モデルを生成する。
【００３８】
プロセッサ１１は、ＸＺ平面における把持部２２のモデル（把持部モデル）を取得する。たとえば、プロセッサ１１は、ＮＶＭ１４から把持部モデルを取得する。プロセッサ１１は、把持部モデルを取得すると、ＸＺ平面において物品２をモデル化する。即ち、プロセッサ１１は、物品情報が示すサイズに基づいてＸＺ平面における物品２のモデル（物品モデル）を生成する。
【００３９】
プロセッサ１１は、物品モデルを生成すると、把持部モデル及び物品モデルに基づいて、第１の複合体モデルを生成する。たとえば、プロセッサ１１は、把持部２２と物品２とが接触する領域において把持部モデルと物品モデルとを接続することで第１の複合体モデルを生成する。ここでは、把持部２２は、物品２を上から把持するため、プロセッサ１１は、把持部モデルの下端に物品モデルを接続する。
【００４０】
図３は、プロセッサ１１が生成する第１の複合体モデル３０を示す。図３が示すように、第１の複合体モデル３０は、把持部モデル３１及び物品モデル３２から構成される。
【００４１】
把持部モデル３１は、把持部２２のモデルである。把持部モデル３１は、把持部２２の形状（たとえば、サイズなど）に基づいて形成される。  
物品モデル３２は、物品２のモデルである。物品モデル３２は、物品２の形状（たとえば、サイズなど）に基づいて形成される。
【００４２】
把持部モデル３１と物品モデル３２とは、所定の領域において接触する。即ち、把持部モデル３１と物品モデル３２とは、把持部２２が物品２を把持する際に物品２に接触する領域に対応する領域において接触する。
【００４３】
また、プロセッサ１１は、生成した第１の複合体モデルに参照点を設定する機能を有する。  
たとえば、プロセッサ１１は、第１の複合体モデルの所定の頂点に参照点を設定する。プロセッサ１１は、参照点として、第１の複合体モデルの所定の点に対する相対座標を設定する。
【００４４】
図３が示す例では、プロセッサ１１は、第１の複合体モデル３０に参照点３３を設定する。図３が示すように、プロセッサ１１は、物品モデル３２の底辺の一端（ここでは、左端）に参照点３３を設定する。
【００４５】
また、プロセッサ１１は、既積載物品を垂直な平面に投影したモデル（既積載モデル）を生成する機能を有する。  
たとえば、プロセッサ１１は、既積載物品の物品情報などに基づいて既積載物品をＸＺ平面に投影した既積載モデルを生成する。
【００４６】
また、プロセッサ１１は、各既積載モデルと第１の複合体モデルとが干渉する個別干渉領域をそれぞれ設定する機能を有する。  
個別干渉領域は、特定の既積載モデルと第１の複合体モデルとが干渉する領域である。即ち、個別干渉領域は、特定の既積載物品によって物品２を把持した把持部２２が進入することができない領域である。
【００４７】
まず、プロセッサ１１は、１つの既積載物品を設定し、設定された既積載物品の既積載モデルを生成する。プロセッサ１１は、既積載モデルを生成すると、既積載モデルの外周と第１の複合体モデルの少なくとも１点とを接触させた状態における第１の複合体モデルを回転させずに既積載モデルの外周に沿って移動させる。プロセッサ１１は、第１の複合体モデルを移動させることで生じる、第１の複合体モデルの参照点の軌跡を取得する。プロセッサ１１は、参照点の軌跡を個別干渉領域の外形として取得する。即ち、プロセッサ１１は、参照点の軌跡の内部の領域を個別干渉領域として設定する。
【００４８】
図４は、プロセッサ１１が設定した個別干渉領域４５の例を示す。図４が示す例では、プロセッサ１１は、既積載モデル１００を生成したものとする。また、プロセッサ１１は、第１の複合体モデル４０を生成したものとする。
【００４９】
第１の複合体モデル４０は、既積載物品の高さよりも高い物品２の物品モデルと把持部モデルとから構成される。また、第１の複合体モデル４０には、参照点４３が設定される。
【００５０】
既積載モデル１００は、既積載物品をモデル化したものである。既積載モデル１００は、積載領域の底面１０１上に積載されている。ここでは、既積載物品が矩形であるため、既積載モデル１００は、矩形である。
【００５１】
図４が示すように、個別干渉領域４５は、上に凸の形状である。物品２の高さが既積載物品の高さよりも高いため、個別干渉領域４５の下方の矩形は、底面１０１よりも下方に形成される。
【００５２】
図５は、プロセッサ１１が設定した個別干渉領域５５の例を示す。図５が示す例では、プロセッサ１１は、第１の複合体モデル５０を生成したものとする。  
第１の複合体モデル５０は、既積載物品の高さよりも低い物品２の物品モデルと把持部モデルとから構成される。また、第１の複合体モデル５０には、参照点５３が設定される。
【００５３】
図５が示すように、個別干渉領域５５は、上に凸の形状である。物品２の高さが既積載物品の高さよりも低いため、個別干渉領域５５の下方の矩形は、底面１０１よりも上方に一部突出している。  
プロセッサ１１は、各既積載物品について個別干渉領域を生成する。
【００５４】
また、プロセッサ１１は、個別干渉領域に基づいて、既積載モデルの少なくとも１点と第１の複合体モデルとが干渉する干渉領域（第１の干渉領域）を設定する機能を有する。
【００５５】
干渉領域は、少なくとも１点の既積載物品によって物品２を把持した把持部２２が進入することができない領域である。  
プロセッサ１１は、設定した各個別干渉領域を重ね合わせる。プロセッサ１１は、各個別干渉領域を重ね合わせて得られた領域を干渉領域として設定する。
【００５６】
また、プロセッサ１１は、設定した干渉領域に基づいて、物品２を積載する積載位置（第１の積載位置）を決定する機能を有する。
【００５７】
プロセッサ１１は、設定した干渉領域以外の領域において第１の積載位置に対応する積載点を選択する。プロセッサ１１は、所定のアルゴリズムに従って積載点を選択する。  
たとえば、プロセッサ１１は、ボトムレフト法を用いて積載点を選択する。即ち、プロセッサ１１は、干渉領域以外の領域において最も低い位置にある点から最も左（又は、右）にある点を積載点として選択する。たとえば、プロセッサ１１は、干渉領域の外周と底面１０１との交点を積載点として選択する。
【００５８】
なお、プロセッサ１１は、干渉領域以外の領域の各点において評価値を算出して積載点を選択してもよい。プロセッサ１１が積載点を選択する方法は、特定の方法に限定されるものではない。
【００５９】
プロセッサ１１は、積載点を選択すると、実空間において積載点に対応する点を第１の積載位置として決定する。即ち、プロセッサ１１は、選択した積載点を第１の積載位置に変換する。たとえば、プロセッサ１１は、積載点の二次元座標を第１の積載位置の三次元座標に変換する。また、プロセッサ１１は、第１の積載位置として物品２を解放する把持部２２の座標を生成してもよい。
【００６０】
また、プロセッサ１１は、決定した第１の積載位置をロボット２０に送信する機能を有する。  
即ち、プロセッサ１１は、ロボットインターフェース１８を通じてロボットコントローラ２４に第１の積載位置を示す情報を送信する。
【００６１】
次に、制御装置１０の動作例について説明する。  
図６は、制御装置１０の動作例について説明するためのフローチャートである。
【００６２】
まず、制御装置１０のプロセッサ１１は、物品情報を取得する（Ｓ１１）。物品情報を取得すると、プロセッサ１１は、物品情報に基づいて第１の複合体モデルを生成する（Ｓ１２）。第１の複合体モデルを生成すると、プロセッサ１１は、第１の干渉領域を設定する（Ｓ１３）。
【００６３】
第１の干渉領域を設定すると、プロセッサ１１は、第１の干渉領域に基づいて第１の積載位置を決定する（Ｓ１４）。第１の積載位置の決定に成功すると（Ｓ１５、ＹＥＳ）、プロセッサ１１は、決定した第１の積載位置をロボット２０に送信する（Ｓ１６）。
【００６４】
第１の積載位置をロボット２０に送信すると、プロセッサ１１は、他に物品があるか判定する（Ｓ１７）。他に物品があると判定すると（Ｓ１７、ＹＥＳ）、プロセッサ１１は、Ｓ１１に戻る。
【００６５】
第１の積載位置の決定に失敗した場合（Ｓ１５、ＮＯ）、又は、他に物品がないと判定した場合（Ｓ１７、ＮＯ）、プロセッサ１１は、動作を終了する。  
なお、プロセッサ１１は、Ｓ１５、ＮＯである場合、エラーを出力してもよい。
【００６６】
次に、プロセッサ１１が第１の干渉領域を設定する動作例（Ｓ１３）について説明する。  
図７は、プロセッサ１１が第１の干渉領域を設定する動作例（Ｓ１３）について説明するためのフローチャートである。
【００６７】
まず、プロセッサ１１は、１つの既積載物品を設定する（Ｓ２１）。１つの既積載物品を設定すると、プロセッサ１１は、設定された既積載物品に基づいて既積載モデルを生成する（Ｓ２２）。
【００６８】
既積載モデルを生成すると、プロセッサ１１は、既積載モデル及び第１の複合体モデルに基づいて個別干渉領域を設定する（Ｓ２３）。個別干渉領域を設定すると、プロセッサ１１は、他に既積載物品があるか判定する（Ｓ２４）。
【００６９】
他に既積載物品があるとか判定すると（Ｓ２４、ＹＥＳ）、プロセッサ１１は、Ｓ２１に戻る。
【００７０】
他に既積載物品がないと判定すると（Ｓ２４、ＮＯ）、プロセッサ１１は、設定した個別干渉領域に基づいて第１の干渉領域を設定する（Ｓ２５）。第１の干渉領域を設定すると、プロセッサ１１は、動作を終了する。
【００７１】
なお、プロセッサ１１は、過去に既積載モデルを生成している場合、当該既積載モデルを用いてもよい。この場合、プロセッサ１１は、既積載モデルを生成していない既積載物品について既積載モデルを生成する。
【００７２】
また、過去に個別干渉領域を設定している場合、当該個別干渉領域を用いて第１の干渉領域を設定してもよい。この場合、プロセッサ１１は、個別干渉領域を設定していない既積載モデルについて個別干渉領域を設定する。
【００７３】
次に、プロセッサ１１が生成する第１の複合体モデルの他の例について説明する。  
図８は、プロセッサ１１が生成する第１の複合体モデル６０を示す。図８が示す例では、把持部２２は、物品２を下方から把持する。たとえば、把持部２２は、物品２を積載するトレイなどから構成される。
【００７４】
図８が示すように、第１の複合体モデル６０は、物品モデル３２及び把持部モデル６１から構成される。  
物品モデル３２は、前述の通りである。  
把持部モデル６１は、把持部２２のモデルである。
【００７５】
図８が示すように、把持部モデル６１は、物品モデル３２に下方に形成される。  
また、プロセッサ１１は、物品モデル３２の上辺の一端（ここでは、左端）に参照点６３を設定する。  
プロセッサ１１は、第１の複合体モデル６０を用いて第１の干渉領域を設定してもよい。
【００７６】
なお、プロセッサ１１は、第１の複合体モデルに接触させた状態で既積載モデルを回転させずに第１の複合体モデルの外周に沿って移動させてもよい。この場合、プロセッサ１１は、既積載モデルの軌跡を第１の複合体モデルの参照点の軌跡に変換することで、個別干渉領域を設定する。
【００７７】
また、プロセッサ１１は、既積載モデルに接触させた状態で第１の複合体モデルを回転させずに既積載モデルの外周の一部に沿って移動させてもよい。即ち、プロセッサ１１は、積載点の候補となり得る部分において、参照点の軌跡を取得してもよい。
【００７８】
以上のように構成された制御装置は、把持部が物品を把持した形状をＸＺ平面に投影した第１の複合体モデルを生成する。また、制御装置は、既積載物品をＸＺ平面に投影した既積載モデルを生成する。制御装置は、第１の複合体モデル及び既積載モデルに基づいて、干渉領域を設定する。制御装置は、干渉領域に従って物品を積載する第１の積載位置を決定する。その結果、制御装置は、把持部と既積載物品とが干渉しないように第１の積載位置を決定することができる。
（第２の実施形態）
次に、第２の実施形態について説明する。
【００７９】
第２の実施形態に係るロボットシステム１は、第１の複合体モデルを下方（積載方向）に延長した複合体モデルを用いて干渉領域を設定する点で第１の実施形態のそれと異なる。従ってその他の構成については同一の符号を付して詳細な説明を省略する。
【００８０】
第２の実施形態に係るロボットシステム１の構成は、第１の実施形態のそれと同様であるため説明を省略する。
【００８１】
次に、制御装置１０が実現する機能について説明する。制御装置１０が実現する機能は、プロセッサ１１がＲＯＭ１２又はＮＶＭ１４などに格納されるプログラムを実行することで実現される。  
プロセッサ１１は、第１の実施形態に係る機能に加えて以下の機能を実現する。
【００８２】
まず、プロセッサ１１は、第１の複合体モデルを下方に延長した複合体モデル（第２の複合体モデル）を生成する機能を有する。
【００８３】
プロセッサ１１は、第１の複合体モデルを延長するための延長モデルを生成する。延長モデルは、物品２の幅と同様の幅に形成される。延長モデルの高さは、物品２を落下させることが可能な高さである。
【００８４】
たとえば、延長モデルの高さは、物品２の高さに所定の数値を積算した値であってもよい。
【００８５】
また、延長モデルの高さは、所定の値であってもよい。  
また、物品情報は、延長モデルの高さを示すものであってもよい。この場合、プロセッサ１１は、物品情報が示す高さの延長モデルを生成する。
【００８６】
プロセッサ１１は、物品モデルの下端に延長モデルを接続して、第２の複合体モデルを生成する。  
図９は、プロセッサ１１が生成する第２の複合体モデル７０を示す。図９が示すように、第２の複合体モデル７０は、把持部モデル３１、物品モデル３２及び延長モデル７４から構成される。
【００８７】
把持部モデル３１及び物品モデル３２は、前述の通りである。  
延長モデル７４は、第１の複合体モデル３０を下方に延長するためのモデルである。延長モデル７４は、物品モデル３２の幅と同様の幅に形成される。また、延長モデル７４は、物品２を落下させることが可能な高さに形成される。  
延長モデル７４は、物品モデル３２の下端に接続する。
【００８８】
また、プロセッサ１１は、生成した第２の複合体モデルに参照点を設定する機能を有する。  
たとえば、プロセッサ１１は、第２の複合体モデルの所定の頂点に参照点を設定する。プロセッサ１１は、参照点として、第２の複合体モデルの所定の点に対する相対座標を設定する。
【００８９】
図９が示す例では、プロセッサ１１は、第２の複合体モデル７０に参照点７３を設定する。図９が示すように、プロセッサ１１は、延長モデル７４の底辺の一端（ここでは、左端）に参照点７３を設定する。
【００９０】
また、プロセッサ１１は、各既積載モデルと第２の複合体モデルとが干渉する個別干渉領域をそれぞれ設定する機能を有する。
【００９１】
プロセッサ１１が個別干渉領域を設定する動作は、第１の実施形態において各既積載モデルと第１の複合体モデルとが干渉する個別干渉領域を設定する動作と同様であるため説明を省略する。
【００９２】
また、プロセッサ１１は、個別干渉領域に基づいて、既積載モデルの少なくとも１点と第２の複合体モデルとが干渉する干渉領域（第２の干渉領域）を設定する機能を有する。  
プロセッサ１１が第２の干渉領域を設定する動作は、第１の実施形態において第１の干渉領域を設定する動作と同様であるため説明を省略する。
【００９３】
また、プロセッサ１１は、第２の干渉領域に基づいて、物品２を積載する積載位置（第２の積載位置）を決定する機能を有する。  
プロセッサ１１が第２の積載位置を決定する動作は、第１の実施形態において第１の積載位置を決定する動作と同様であるため説明を省略する。
【００９４】
また、プロセッサ１１は、第１の積載位置と第２の積載位置とからロボット２０に送信する積載位置を選択する機能を有する。  
たとえば、プロセッサ１１は、第１の積載位置と第２の積載位置とからより低い位置にある方を選択する。また、プロセッサ１１は、第１の積載位置の評価値と第２の積載位置の評価値とを比較して、積載位置を選択してもよい。プロセッサ１１が積載位置を選択する方法は、特定の方法に限定されるものではない。
【００９５】
プロセッサ１１は、ロボットインターフェース１８を通じて、選択された積載位置を示す情報をロボット２０に送信する。
【００９６】
次に、制御装置１０の動作例について説明する。  
図１０は、制御装置１０の動作例について説明するためのフローチャートである。
【００９７】
まず、制御装置１０のプロセッサ１１は、物品情報を取得する（Ｓ３１）。物品情報を取得すると、プロセッサ１１は、第１の複合体モデルを生成する（Ｓ３２）。第１の複合体モデルを生成すると、プロセッサ１１は、第１の干渉領域を設定する（Ｓ３３）。
【００９８】
第１の干渉領域を設定すると、プロセッサ１１は、第１の積載位置を決定する（Ｓ３４）。第１の積載位置を決定すると、プロセッサ１１は、第２の複合体モデルを生成する（Ｓ３５）。第２の複合体モデルを生成すると、プロセッサ１１は、第２の干渉領域を設定する（Ｓ３６）。
【００９９】
第２の干渉領域を設定すると、プロセッサ１１は、第２の積載位置を決定する（Ｓ３７）。第２の積載位置を決定すると、プロセッサ１１は、積載位置を選択する（Ｓ３８）。積載位置を選択すると、プロセッサ１１は、選択した積載位置をロボット２０に送信する。（Ｓ３９）。
【０１００】
選択した積載位置をロボット２０に送信すると、プロセッサ１１は、他に物品があるか判定する（Ｓ４０）。他に物品があると判定すると（Ｓ４０、ＹＥＳ）、プロセッサ１１は、Ｓ３１に戻る。  
他に物品がないと判定すると（Ｓ４０、ＮＯ）、プロセッサ１１は、動作を終了する。
【０１０１】
プロセッサ１１が第１の干渉領域及び第２の干渉領域を設定する動作例（Ｓ３３及びＳ３６）は、第１の実施形態において第１の干渉領域を設定する動作例（Ｓ２１乃至Ｓ２５）と同様であるため説明を省略する。
【０１０２】
次に、プロセッサ１１が生成する第２の複合体モデルの他の例について説明する。  
図１１は、プロセッサ１１が生成する第２の複合体モデル８０を示す。図１１が示す例では、把持部２２は、物品２を下方から把持する。たとえば、把持部２２は、物品２を積載するトレイなどから構成される。
【０１０３】
図１１が示すように、第２の複合体モデル８０は、物品モデル３２、把持部モデル６１及び延長モデル８４から構成される。
【０１０４】
物品モデル３２及び把持部モデル６１は、前述の通りである。  
延長モデル８４は、第１の複合体モデル６０を延長するためのモデルである。延長モデル８４は、把持部モデル６１の幅と同様の幅に形成される。また、延長モデル８４は、物品２を落下させることが可能な高さに形成される。
【０１０５】
延長モデル８４は、把持部モデル６１の下端に接続する。  
また、プロセッサ１１は、物品モデル３２の上辺の一端（ここでは、左端）に参照点６３を設定する。  
プロセッサ１１は、第２の複合体モデル８０を用いて第１の干渉領域を設定してもよい。
【０１０６】
なお、プロセッサ１１は、第１の積載位置又は第２の積載位置の決定に失敗した場合、決定に成功した積載位置をロボット２０に送信してもよい。また、プロセッサ１１は、第１の積載位置及び第２の積載位置の決定に失敗した場合、エラーを出力してもよい。
【０１０７】
また、プロセッサ１１は、ユーザの選択に従って、第２の積載位置をロボット２０に送信してもよい。この場合、プロセッサ１１は、第１の積載位置を決定しなくともよい。
【０１０８】
以上のように構成された制御装置は、第１の複合体モデルを下方に延長した第２の複合体モデルを生成する。制御装置は、第２の複合体モデルに基づいて第２の積載位置を決定する。その結果、制御装置は、高さが既積載物品の高さより低い物品であっても既積載物品に隣接した位置を第２の積載位置として決定することができる。そのため、制御装置は、ロボットにより高密度に物品を積載させることができる。
【０１０９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１０】
１…ロボットシステム、２…物品、１０…制御装置、１１…プロセッサ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ＮＶＭ、１５…通信部、１６…操作部、１７…表示部、１８…ロボットインターフェース、２０…ロボット、２１…ロボットアーム、２２…把持部、２３…吸着パット、２４…ロボットコントローラ、３０…第１の複合体モデル、３１…把持部モデル、３２…物品モデル、３３…参照点、４０…第１の複合体モデル、４３…参照点、４５…個別干渉領域、５０…第１の複合体モデル、５３…参照点、５５…個別干渉領域、６０…第１の複合体モデル、６１…把持部モデル、６３…参照点、７０…第２の複合体モデル、７３…参照点、７４…延長モデル、８０…第２の複合体モデル、８４…延長モデル、１００…既積載モデル、１０１…底面。
【図１】
2020146824.tif 000003
【図２】
2020146824.tif 000004
【図３】
2020146824.tif 000005
【図４】
2020146824.tif 000006
【図５】
2020146824.tif 000007
【図６】
2020146824.tif 000008
【図７】
2020146824.tif 000009
【図８】
2020146824.tif 000010
【図９】
2020146824.tif 000011
【図１０】
2020146824.tif 000012
【図１１】
2020146824.tif 000013