(57)【要約】【課題】  収納容器に新規に収納するワークが収納済みワークに干渉することを抑制する。【解決手段】  収納システム１は、マニピュレータ３とエンドエフェクタ４を備えたロボット２と、制御装置５と、収納容器６の立体形状の情報を取得する立体形状計測装置と、演算装置８と、を備えた構成とする。演算装置８は、立体形状計測装置から受け取る情報Ａを基に、収納容器６の底面９における空き領域１３を求め、空き領域１３に対し、新規に収納対象とされたワークを配置可能なワーク収納位置を探索する。更に、演算装置８は、検出されたワーク収納位置に基づいて、収納容器６の底面９に新規収納対象のワークＷの収納目標位置を定めて、収納目標位置の情報を制御装置５へ送る。制御装置５は、演算装置８より受け取る収納目標位置の情報を基に、ロボット２による新規収納対象のワークＷを収納容器６に収納する操作の目標位置を設定する。【選択図】図１
2019181620.tif 000002
【特許請求の範囲】
【請求項１】
マニピュレータおよびワーク保持用のエンドエフェクタを備えたロボットと、
前記マニピュレータおよび前記エンドエフェクタの制御を行う制御装置と、
収納容器の立体形状に関する情報を取得する立体形状計測装置と、
演算装置と、を備え、
前記演算装置は、
前記立体形状計測装置から受け取る情報を基に、前記収納容器の底面における空き領域を求める底面認識処理を行う機能と、
前記底面認識処理で求めた前記空き領域に対し、新規に収納対象とされたワークを配置可能なワーク収納位置を探索する収納位置探索処理を行う機能と、
前記収納位置探索処理で検出された前記ワーク収納位置に基づいて、前記収納容器の前記底面に前記新規に収納対象とされたワークの収納目標位置を定める機能と、
定められた前記収納目標位置の情報を、前記制御装置へ送る機能と、を備え、
前記制御装置は、前記演算装置より受け取る前記収納目標位置の情報を基に、前記ロボットによる前記新規に収納対象とされたワークを前記収納容器に収納する操作の目標位置を設定する機能を備えたこと
を特徴とする収納システム。
【請求項２】
前記演算装置は、前記収納位置探索処理にて、前記底面認識処理で求めた前記空き領域に対し、前記ワーク収納位置を、前記新規に収納対象とされたワークの平面形状の周囲にマージンを付加したマージン付加形状を配置可能な位置として探索する機能を備えた
請求項１に記載の収納システム。
【請求項３】
前記演算装置は、
前記底面認識処理として、
前記収納容器の前記底面に、設定されたメッシュサイズのメッシュが配列された底面メッシュデータを作成する処理と、
前記立体形状計測装置から受け取る前記収納容器の立体形状に関する情報を基に、前記底面メッシュデータの各メッシュについて、高さを求める処理と、
求められた前記各メッシュの高さを基に、前記メッシュ単位で前記収納容器の底面における空き領域を求める処理と、を行う機能を備え、
また、前記収納位置探索処理として、
前記メッシュサイズを単位として、前記マージン付加形状を含むメッシュの集合体としてワークモデルを作成する処理と、
前記底面認識処理で求めた前記空き領域に対し、前記ワーク収納位置を、前記ワークモデルを配置可能な位置として探索する処理と、を行う機能を備えた
請求項２に記載の収納システム。
【請求項４】
前記演算装置は、前記ワークモデルを矩形で作成する機能を備えた
請求項３に記載の収納システム。
【請求項５】
収納容器に収納対象のワークを収納するときに、
立体形状計測装置により前記収納容器の立体形状に関する情報を取得するステップと、
演算装置が、前記立体形状計測装置から受け取る情報を基に、収納容器の底面における空き領域を求める底面認識処理を行うステップと、
前記演算装置が、前記底面認識処理で求めた前記空き領域に対し、前記収納対象のワークを配置可能なワーク収納位置を探索する収納位置探索処理を行うステップと、
前記演算装置が、前記収納位置探索処理で検出された前記ワーク収納位置に基づいて、前記収納容器の前記底面に前記収納対象のワークの収納目標位置を定めるステップと、
前記演算装置が、定められた前記収納目標位置の情報を、マニピュレータおよびワーク保持用のエンドエフェクタを備えたロボットの前記マニピュレータおよび前記エンドエフェクタの制御を行う制御装置へ送るステップと、
前記制御装置が、前記演算装置より受け取る前記収納目標位置の情報を基に、前記ロボットによる前記収納対象のワークを前記収納容器に収納する操作の目標位置を設定するステップと、を行うこと
を特徴とする収納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、収納容器にワークを収納するために用いる収納システムおよび収納方法に関するものである。
【背景技術】
【０００２】
物流倉庫では、たとえば、受注に応じた商品を梱包する場合などに、形状の異なる複数の商品を箱やコンテナのような収納容器に収納する収納作業が必要とされることがある。
【０００３】
この種の収納作業は、従来、人手により行われることが多かったが、作業効率の向上化、あるいは、人為的ミスの抑制などを目的として、収納作業をロボットに行わせることが考えられてきている。
【０００４】
形状の異なる複数種類の物体を収納容器に収納する手法の一つとしては、箱詰めロボットおよび箱詰め計画方法が、従来提案されている（たとえば、特許文献１参照）。
【０００５】
これは、箱詰め計画部があり、それが収納容器、収納予定物体、収納済物体、箱詰め計画済み物体の幾何モデルデータに基づいて、収納容器内にて収納予定物体の収納位置候補を算出する処理と、収納位置候補の一つに向けてマニピュレータで収納予定物体を移動するシミュレーションを行い、移動できた収納位置候補を収納予定物体の収納位置とする処理と、を行う。
【０００６】
次いで、箱詰め計画部は、収納予定物体の一つについて収納位置が決まると、その収納予定物体は、対応する収納位置に配置された箱詰め計画済み物体とし、その後、次の収納予定物体について、収納位置を求める処理を行う。
【０００７】
箱詰め計画部がこれらの処理を繰り返し行って、予定された複数の収納予定物体の箱詰め計画の生成を完了すると、動作生成部は、生成された箱詰め計画のデータを基に、マニピュレータで各箱詰め計画済物体を順番に保持、移動し、収納する動作を生成する。
【０００８】
その後、マニピュレータは、動作生成部で生成された動作を実行するものとされている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開第２０１７／１４９６１６号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、収納処理を行う現場で実際に使用する収納容器は、物体を載置する面となる底面が、水平面とならないことがある。すなわち、収納容器は、収納容器自体の製造精度、経年変化、更には、現場で収納容器を支持する構造の影響などに起因して、底面に傾きが生じていたり、凹凸が形成されていたりすることがある。
【００１１】
また、収納処理を行う現場では、物体の収納容器への収納時に収納容器に振動が生じたり、収納容器が、外部から振動を受けたりすることがある。
【００１２】
そのため、収納容器では、底面における傾斜した個所や、凹凸がある個所に収納済みの物体が配置されている状態で、収納容器に振動が生じると、収納済みの物体が、底面の傾斜や凹凸に沿い、より低位置側に向けて変位する可能性がある。
【００１３】
ところが、特許文献１に示された手法は、収納容器に収納すべき複数の収納予定物体について、それぞれの収納位置を定めた箱詰め計画を立て、その後、マニピュレータを箱詰め計画に従って動作させる手法である。
【００１４】
そのため、特許文献１に示された手法は、収納容器内で、収納済みの物体に前記したような収納位置からの変位が生じると、箱詰め計画に従うマニピュレータの動作によって新たに収納する物体が、変位した収納済みの物体に接触する可能性、更には、変位した収納済みの物体に対して押し付けられる可能性が生じてしまう。
【００１５】
このように、新たに収納する物体と、収納済み物体との接触が生じた場合は、いずれか一方または双方に損傷が生じる可能性がある。また、この場合は、新たに収納される物体を、箱詰め計画で設定された収納位置に配置することができなくなる可能性があり、よって、収納容器には、箱詰め計画通りに物体を収納しきれなくなる可能性もある。
【００１６】
そこで、本発明は、収納容器に複数のワークを収納するときに、新規に収納するワークが、収納済みワークに干渉することを抑制することができる、収納システムおよび収納方法を提供しようとするものである。
【課題を解決するための手段】
【００１７】
本発明は、前記課題を解決するために、マニピュレータおよびワーク保持用のエンドエフェクタを備えたロボットと、前記マニピュレータおよび前記エンドエフェクタの制御を行う制御装置と、収納容器の立体形状に関する情報を取得する立体形状計測装置と、演算装置と、を備え、前記演算装置は、前記立体形状計測装置から受け取る情報を基に、前記収納容器の底面における空き領域を求める底面認識処理を行う機能と、前記底面認識処理で求めた前記空き領域に対し、新規に収納対象とされたワークを配置可能なワーク収納位置を探索する収納位置探索処理を行う機能と、前記収納位置探索処理で検出された前記ワーク収納位置に基づいて、前記収納容器の前記底面に前記新規に収納対象とされたワークの収納目標位置を定める機能と、定められた前記収納目標位置の情報を、前記制御装置へ送る機能と、を備え、前記制御装置は、前記演算装置より受け取る前記収納目標位置の情報を基に、前記ロボットによる前記新規に収納対象とされたワークを前記収納容器に収納する操作の目標位置を設定する機能を備えた構成を有する収納システムとする。
【００１８】
前記演算装置は、前記収納位置探索処理にて、前記底面認識処理で求めた前記空き領域に対し、前記ワーク収納位置を、前記新規に収納対象とされたワークの平面形状の周囲にマージンを付加したマージン付加形状を配置可能な位置として探索する機能を備えた構成としてもよい。
【００１９】
前記演算装置は、前記底面認識処理として、前記収納容器の前記底面に、設定されたメッシュサイズのメッシュが配列された底面メッシュデータを作成する処理と、前記立体形状計測装置から受け取る前記収納容器の立体形状に関する情報を基に、前記底面メッシュデータの各メッシュについて、高さを求める処理と、求められた前記各メッシュの高さを基に、前記メッシュ単位で前記収納容器の底面における空き領域を求める処理と、を行う機能を備え、また、前記収納位置探索処理として、前記メッシュサイズを単位として、前記マージン付加形状を含むメッシュの集合体としてワークモデルを作成する処理と、前記底面認識処理で求めた前記空き領域に対し、前記ワーク収納位置を、前記ワークモデルを配置可能な位置として探索する処理と、を行う機能を備えた構成としてもよい。
【００２０】
前記演算装置は、前記ワークモデルを矩形で作成する機能を備えた構成としてもよい。
【００２１】
収納容器に収納対象のワークを収納するときに、立体形状計測装置により前記収納容器の立体形状に関する情報を取得するステップと、演算装置が、前記立体形状計測装置から受け取る情報を基に、収納容器の底面における空き領域を求める底面認識処理を行うステップと、前記演算装置が、前記底面認識処理で求めた前記空き領域に対し、前記収納対象のワークを配置可能なワーク収納位置を探索する収納位置探索処理を行うステップと、前記演算装置が、前記収納位置探索処理で検出された前記ワーク収納位置に基づいて、前記収納容器の前記底面に前記収納対象のワークの収納目標位置を定めるステップと、前記演算装置が、定められた前記収納目標位置の情報を、マニピュレータおよびワーク保持用のエンドエフェクタを備えたロボットの前記マニピュレータおよび前記エンドエフェクタの制御を行う制御装置へ送るステップと、前記制御装置が、前記演算装置より受け取る前記収納目標位置の情報を基に、前記ロボットによる前記収納対象のワークを前記収納容器に収納する操作の目標位置を設定するステップと、を行う収納方法とする。
【発明の効果】
【００２２】
本発明の収納システムおよび収納方法によれば、収納容器に複数のワークを収納するときに、新規に収納するワークが収納済みワークに干渉することを抑制することができる。
【図面の簡単な説明】
【００２３】
【図１】収納システムの第１実施形態を示す概略側面図である。
【図２】収納システムの概略平面図である。
【図３】収納容器に関する底面メッシュデータの作成を説明するための図である。
【図４】演算装置が行う処理を説明するための図である。
【図５】ワークの平面形状を基にしたワークモデルの作成を説明するための図である。
【図６】演算装置が行う収納位置探索処理を説明するための図である。
【図７】収納位置探索処理におけるｘ軸方向のスキップ処理を説明するための図である。
【図８】収納位置探索処理におけるｙ軸方向のスキップ処理を説明するための図である。
【図９】ワークの収納目標位置を定める処理を説明するための図である。
【発明を実施するための形態】
【００２４】
以下、本発明を実施するための形態を図面を参照して説明する。
【００２５】
［実施形態］
図１は、収納システムの実施形態を示す概略切断側面図である。図２は、図１の収納システムの概略平面図である。
【００２６】
図３は、収納容器について底面メッシュデータを作成する手法を示す図で、図３（ａ）は、収納容器を拡大して示す平面図、図３（ｂ）は、収納容器の底面にメッシュを配置した状態を示す図、図３（ｃ）は、作成された底面メッシュデータを示す図である。図４は、演算装置が行う処理を示すフロー図である。図５は、演算装置が収納位置探索処理で行うワークモデルの作成手法を示すもので、図５（ａ）は、ワークの平面形状を示す図、図５（ｂ）は、メッシュを配置した図、図５（ｃ）は、作成されたワークモデルを示す図である。図６は、演算装置による収納位置探索処理を示すもので、図６（ａ）は、底面メッシュデータにワークモデルを配置した初期状態を示す図、図６（ｂ）は、ｘ軸方向の探索ループが終了した状態を示す図、図６（ｃ）は、ｙ軸方向のシフト処理を行った状態を示す図、図６（ｄ）は、ワーク収納位置が検出される状態を示す図である。図７は、演算装置が収納位置探索処理で行うｘ軸方向のスキップ処理を示すもので、図７（ａ）は、スキップ処理前の状態を示す図、図７（ｂ）は、スキップ処理後の状態を示す図である。図８は、演算装置が収納位置探索処理で行うｙ軸方向のスキップ処理を示す図である。図９は、演算装置が行うワークの収納目標位置を定める処理を示す図である。
【００２７】
本実施形態の収納システムは、図１、図２に符号１で示すもので、マニピュレータ３、および、ワークＷの保持を行うエンドエフェクタ４を備えたロボット２と、ロボット２のマニピュレータ３およびエンドエフェクタ４の制御を行う制御装置５と、ワークＷの収納先となる収納容器６と、収納容器６の立体形状に関する情報Ａを取得する立体形状計測装置としての視覚センサ７と、演算装置８と、を備えた構成とされている。
【００２８】
視覚センサ７は、収納容器６の立体形状に関する情報Ａを取得すると、その情報Ａを演算装置８へ送る機能を備えている。
【００２９】
演算装置８は、視覚センサ７より受け取る情報Ａを基に、収納容器６内にて、新たに収納対象とされるワークＷの収納位置を探索する機能と、探索により取得した収納位置の情報を、制御装置５へ送る機能を備えている。演算装置８の機能の詳細については後述する。
【００３０】
ロボット２にて、マニピュレータ３の先端側に備えるエンドエフェクタ４は、ワークＷの保持を行うことができれば、吸着パッドを備えてワークＷを吸着する形式、開閉式のグリッパによりワークＷを把持する形式、その他、収納対象となるワークＷの形状や表面の性状などに応じて適宜選定される形式のエンドエフェクタ４を採用してもよい。
【００３１】
ロボット２にて、マニピュレータ３の可動範囲は、エンドエフェクタ４を、収納対象となるワークＷを保持して持ち上げる（ピックする）位置から、収納容器６におけるワークＷの載置面となる底面９の全面を含む範囲で移動させることができるように設定されている。
【００３２】
また、収納容器６として、サイズの異なる複数種類の収納容器６の使用が予定されている場合は、最大の収納容器６の底面９の全面を含むように、マニピュレータ３の可動範囲は設定されている。
【００３３】
本開示では、ワークＷが水平面に正投影された図形、すなわち、ワークＷの平面図の外形を、ワークＷの平面形状という。
【００３４】
本実施形態では、平面形状が異なる複数のワークＷとして、たとえば、図２に示すように、平面形状が矩形のワークＷと、平面形状が円形のワークＷの２種類を、収納容器６への収納対象としている。
【００３５】
図２では、収納容器６への収納対象となる平面形状円形のワークＷ、および、平面形状矩形のワークＷは、種類ごとに分けられて複数個ずつ箱詰めされた状態で、図上、ロボット２に対して下方となるピック作業位置に配置されている。各ワークＷが箱詰めされたものは、コンベヤ、別のロボット、その他、図示しない搬送手段で搬送して、前記所定のピック作業位置に配置されるようにすればよい。
【００３６】
また、図２では、ワークＷの収納先となる収納容器は６、図上、ロボット２に対して右側となる収納作業位置に配置されている。収納容器６は、コンベヤ、別のロボット、その他、図示しない搬送手段で搬送して、前記所定の収納作業位置に配置されるようにすればよい。
【００３７】
なお、図２に示したピック作業位置および収納作業位置は、一例であって、ロボット２によるエンドエフェクタ４の可動範囲に設定されていれば、実際のピック作業位置および収納作業位置は、図示した以外の配置であってもよいことは勿論である。
【００３８】
収納容器６に収納されているワークＷは、収納前のワークＷと区別するために、以下、収納済みワークＷａという。
【００３９】
収納容器６は、本実施形態では、図１、図２に示すように、矩形の底面９と、底面９の四方の側壁１０とを備えた構成として、上端側が開放された箱形の容器とされている。
【００４０】
視覚センサ７は、カメラを備えており、撮像された画像を画像処理して、撮像領域の各所に関する高さの情報、たとえば、画像処理に用いた画像の各ピクセルに対応する点状の領域ごとに高さの情報を得る機能を備えている。よって、この撮像領域の各所における高さの情報を基に、撮像領域に存在している立体形状を計測する機能を備えている。
【００４１】
本実施形態では、視覚センサ７は、ロボット２のマニピュレータ３の先端側、たとえば、エンドエフェクタ４に、ブラケット１１を介して取り付けられていて、マニピュレータ３の動作により移動可能とされている。
【００４２】
したがって、本実施形態の収納システム１は、視覚センサ７による収納容器６の立体形状に関する情報Ａの取得が必要とされるときには、制御装置５が、マニピュレータ３に指令を与えて、エンドエフェクタ４に取り付けられた視覚センサ７を、前記所定の配置とされた収納容器６の底面９に対向する計測位置および計測姿勢に配置する機能を備えている。
【００４３】
なお、視覚センサ７の計測位置および計測姿勢は、ワークＷの収納作業時の配置とされた収納容器６を計測対象として、収納容器６の底面９の全面に対応する領域の立体形状の情報Ａの取得が可能となる位置および姿勢とされていればよい。したがって、視覚センサ７は、たとえば、図１に二点鎖線で示すように、収納容器６の上方に設定された計測位置に、収納容器６の底面９に対向する計測姿勢で配置された状態で、柱状の支持フレームなどの図示しない固定部に支持された構成としてもよい。
【００４４】
これにより、視覚センサ７は、収納容器６の底面９の全面に対応する領域について、立体形状に関する情報Ａを取得することができる。視覚センサ７は、取得した情報Ａを、演算装置８へ送る機能を備えている。
【００４５】
ここで、視覚センサ７で撮像された画像を基に得られる立体形状を規定する３次元直交座標系をセンサ座標系とし、ロボット２が固定された面を基準として規定される３次元直交座標系を、ロボットワールド座標系（ベース座標系とも称される）とする。
【００４６】
視覚センサ７は、ロボット２のエンドエフェクタ４にブラケット１１を介して取り付けられているので、エンドエフェクタ４を基準とする視覚センサ７の相対位置は、既知である。また、エンドエフェクタ４は、ロボット２のマニピュレータ３の先端側に設けられているので、マニピュレータ３の動作に伴いエンドエフェクタ４が移動するとしても、エンドエフェクタ４のロボットワールド座標系における位置は、容易に把握することができる。
【００４７】
したがって、視覚センサ７のロボットワールド座標系における位置は、ロボットワールド座標系におけるエンドエフェクタ４の位置の情報と、エンドエフェクタ４に対する視覚センサ７の相対位置の情報とを基に、容易に算出することができる。
【００４８】
また、視覚センサ７は、仕様により、視野角や焦点距離は既知である。そのため、演算装置８では、センサ座標系を、ロボットワールド座標系に容易に座標変換することができる。
【００４９】
演算装置８は、図１に示すように、記憶部１２を備えている。
【００５０】
記憶部１２には、収納対象となるすべてのワークＷの平面形状と、高さに関する情報が格納されている。
【００５１】
更に、記憶部１２には、収納容器６の幅、奥行き、高さの寸法に関する幾何情報と、収納容器６の内部に設定される３次元直交座標系である容器座標系の情報が格納されている。
【００５２】
本実施形態では、容器座標系は、図３（ａ）に示すように、収納容器６の底面９の一つの角部、たとえば、図上、左上の角部を原点として、上下方向をｘ軸方向、左右方向をｙ軸方向とし、図示しない収納容器６の高さ方向をｚ軸方向に設定している。また、本実施形態では、収納容器６におけるｘ軸方向の寸法を、収納容器６の幅、ｙ軸方向の寸法を、収納容器６の奥行きとして説明を行う。
【００５３】
本実施形態の収納システム１は、収納容器６として、サイズの異なる複数種類の収納容器６の使用が予定されている場合には、記憶部１２に、それぞれの収納容器６の幾何情報と容器座標系の情報を格納しておくようにすればよい。
【００５４】
なお、図２に示したように、収納容器６が配置される個所は、ロボット２に対する水平方向の相対位置が決まっている。したがって、収納容器６内の容器座標系で既定されている位置は、ロボットワールド座標系に容易に座標変換することができる。
【００５５】
この際、収納容器６に位置ずれや回転方向の姿勢のずれが生じていたとしても、演算装置８は、視覚センサ７から受け取る収納容器６の立体形状に関する情報Ａを基に、収納容器６の位置ずれや回転方向の姿勢のずれを検知することができるので、これらのずれを補正しながら、収納容器６内の容器座標系で既定されている位置を、ロボットワールド座標系に座標変換することができる。
【００５６】
したがって、演算装置８は、センサ座標系と、ロボットワールド座標系と、容器座標系について、いずれの組み合わせであっても相互に座標変換することができる。なお、座標変換の計算手法は、座標変換の対象となる座標系同士における原点の位置のずれと、座標軸の角度のずれを考慮して行う一般的な座標変換の計算手法と同様であるため、説明を省略する。また、以下の説明において、センサ座標系と、ロボットワールド座標系と、容器座標系の座標変換の処理は、演算装置８で適宜行われるものとする。
【００５７】
次に、図４を用いて、演算装置８が行う処理の説明と共に、本開示の収納方法について説明する。
【００５８】
収納容器６に対するワークＷの収納処理を開始するときには、演算装置８に対し、ワークＷの収納先として使用する収納容器６を指定する処理が行われる。
【００５９】
これにより、演算装置８は、記憶部１２に情報が格納されている複数の収納容器６のうち、指定された収納容器６に関する幾何情報および容器座標系の情報を、記憶部１２から読み込む処理を行う（ステップＳ１）。
【００６０】
更に、演算装置８には、収納容器６へ収納するワークＷの種類と収納順序を指定する処理が行われる。
【００６１】
この状態で、演算装置８は、先ず、前記所定の計測位置および計測姿勢に配置された視覚センサ７から、収納容器６の立体形状に関する情報Ａを受け取る処理を行う（ステップＳ２）。
【００６２】
なお、演算装置８は、前記ステップＳ２の処理を最初に行い、視覚センサ７から受け取る収納容器６の立体形状に関する情報Ａを基に、使用される収納容器６が、記憶部１２に情報が格納されている複数の収納容器６のうち、どの収納容器６であるかを判別する処理を行うようにしてもよい。この場合、演算装置８は、収納容器６の判別処理の結果を基にして、前記ステップＳ１と同様に、使用される収納容器６に関する幾何情報および容器座標系の情報を、記憶部１２から読み込む処理を行うようにすればよい。
【００６３】
次に、演算装置８は、受け取った情報Ａを基に、収納容器６の底面９における収納済みワークＷａが配置されていない空き領域１３を求める底面認識処理を行う（ステップＳ３）。
【００６４】
次いで、演算装置８は、前記ステップＳ３で求めた空き領域１３に対し、設定された収納順序に従い、現在の収納対象のワークＷを配置可能なワーク収納位置を探索する収納位置探索処理を行う（ステップＳ４）。
【００６５】
その後、演算装置８は、前記ステップＳ４の収納位置探索処理でワーク収納位置が検出されたか否かを判断する処理を行う（ステップＳ５）。
【００６６】
演算装置８は、前記ステップＳ５の判断処理で、ワーク収納位置が検出されたと判断された場合は、ステップＳ６に進む。
【００６７】
ステップＳ６では、演算装置８は、検出されたワーク収納位置に基づいて、収納容器６の底面９に対し、収納対象のワークＷの収納目標位置の座標を定める。
【００６８】
次いで、演算装置８は、前記ステップＳ６で定めた収納目標位置の座標の情報を、制御装置５へ送る処理を行う（ステップＳ７）。
【００６９】
図４に二点鎖線で示すように、制御装置５は、演算装置８から受け取る収納目標位置の座標を、ロボット２が現在の収納対象のワークＷを収納容器６へ収納する操作の目標位置に設定し、マニピュレータ３およびエンドエフェクタ４に指令を与える処理を行う。
【００７０】
これにより、図４に二点鎖線で示すように、ロボット２は、制御装置５からの指令に従い、マニピュレータ３およびエンドエフェクタ４を動作させて、制御装置５で設定された目標位置に、現在の収納対象のワークＷを収納する操作を行う。
【００７１】
演算装置８は、前記ステップＳ７の後、現在の収納対象のワークＷに関する処理を終了する。
【００７２】
一方、演算装置８は、前記ステップＳ５の判断処理で、ワーク収納位置が検出されないと判断された場合は、現在の収納対象のワークＷは、収納容器６に収納することはできないと判断して、現在の収納対象のワークＷに関する処理を終了する。
【００７３】
その後、演算装置８は、収納順序が次のワークＷを、現在の収納対象のワークＷに設定し直してから、図４の処理を再度実施する。
【００７４】
しかる後、演算装置８は、収納順序が最後のワークＷが、現在の収納対象のワークＷに設定された状態での図４の処理が終了すると、現在の収納容器６に対する収納処理を終了する。
【００７５】
演算装置８による前記ステップＳ３の底面認識処理、および、ステップＳ４の収納位置探索処理は、たとえば、演算装置８による演算処理の単純化、高速化を図るという点から考えると、以下の手法で実施することが好ましい。
【００７６】
すなわち、演算装置８は、底面認識処理を行うときには、先ず、図３（ａ）に示す収納容器６の底面９に対し、図３（ｂ）に示すように、容器座標系のｘ軸方向およびｙ軸方向に、設定されたメッシュサイズのメッシュを配列して、図３（ｃ）に示す如き底面メッシュデータ１４を作成する。この際、収納容器６の底面９のｘ軸方向の端部と、ｙ軸方向の端部に、図３（ｂ）にドットのハッチングを付して示すような、メッシュを配置することができない余りが生じる場合は、演算装置８は、その余りの部分を削除して、底面メッシュデータ１４を作成する。
【００７７】
底面メッシュデータ１４の作成に用いるメッシュサイズは、小さく設定するほど、収納容器６の底面９にてメッシュを配置できない余りの部分の低減化に有効である。また、このメッシュサイズは、後述するように、ワークＷの底面形状を基にメッシュサイズで既定されたワークモデル１６を作成するときにも使用するので、メッシュサイズを小さく設定するほど、作成されるワークモデル１６の小型化に有効である。更に、このワークモデル１６の小型化は、後述するワークモデル１６を用いる収納位置探索処理で、ワーク収納位置を検出しやすくする効果に繋がる。
【００７８】
しかしメッシュサイズを小さくすることは、メッシュ数の増加につながるため、演算装置８では、底面認識処理、および、収納位置探索処理に要する演算量の増大化を招く。よって、メッシュサイズは、演算装置８の処理能力に応じて、底面認識処理および収納位置探索処理が所望の時間内で実施可能となるように、適宜設定すればよい。
【００７９】
次に、演算装置８は、視覚センサ７から受け取る収納容器６の立体形状に関する情報Ａを基に、底面メッシュデータ１４の各メッシュについて、高さを求める。
【００８０】
演算装置８には、収納容器６の底面９が正確な平面ではないことを考慮して、収納容器６の底面９と見做すことができる高さの許容値が設定されている。
【００８１】
演算装置８は、高さを求めた各メッシュのうち、設定された許容値以内となる高さを有するメッシュを、収納容器６の底面９が露出されているメッシュであると判断する。図３（ｃ）では、底面９が露出されているメッシュは、白抜きで示す。
【００８２】
これに対し、図３（ａ）に示すように、収納容器６の底面９における収納済みのワークＷａが配置されている個所は、図３（ｂ）に示す底面メッシュデータ１４では、対応する配置のメッシュの高さが許容値を超過するようになる。そこで、演算装置８は、高さが許容値を超過したメッシュを、図３（ｃ）にハッチングを付して示すように、メッシュ単位で、ワークＷが既に設置されているワーク既存部１５として判断する。
【００８３】
この際、演算装置８は、高さが許容値を超過したメッシュが集合している個所については、ワーク既存部１５のメッシュの集合体の形状を、矩形状にするクラスタ化を行うことが好ましい。これは、ワーク既存部１５が集合している領域の形状を単純化して、演算装置８における処理の単純化を図ることができ、更には、演算装置８で収納位置探索処理を行うときに、後述するスキップ処理を導入して処理の高速化を図る場合に有効なためである。
【００８４】
これにより、演算装置８は、底面メッシュデータ１４における底面９が露出されているメッシュにより、底面９の空き領域を、ワーク既存部１５とメッシュ単位で区分された状態で認識することができる。
【００８５】
次に、演算装置８による収納位置探索処理の具体的な手順について説明する。
【００８６】
演算装置８は、収納位置探索処理では、先ず、図５（ａ）に示すように、現在の収納対象のワークＷの底面形状を、記憶部１２（図１参照）から読み出す。
【００８７】
次に、演算装置８は、図５（ａ）に二点鎖線で示すように、ワークＷの底面形状の周囲に設定された幅Ｂのマージンを付加した、マージン付加形状１７を作成する。
【００８８】
ワークＷの底面形状の周囲に付加するマージンの幅Ｂは、たとえば、使用するロボット２のマニピュレータ３およびエンドエフェクタ４の位置制御の精度に応じて、ワークＷの搬送時に生じる可能性がある位置の誤差の最大値よりも大となるように設定されている。ロボット２が、産業用ロボットとして一般的に使用されているロボット２である場合は、マージンの幅Ｂは、５ｍｍ〜１０ｍｍ程度に設定しておけばよい。なお、このマージンの幅Ｂの数値範囲は、一例であり、その他の値を採用してもよいことは勿論である。
【００８９】
また、エンドエフェクタ４が、ワークＷを挟んで保持するグリッパ形式のものである場合は、エンドエフェクタ４の一部が、ワークＷの側方に配置される。よって、グリッパ形式のエンドエフェクタ４を使用する場合は、エンドエフェクタ４におけるワークＷの側方に配置される部分の厚み寸法と、該部分がワークＷの側面に対して近接、離反する方向に動作する量を更に付加して、マージンの幅Ｂを設定するようにすればよい。
【００９０】
演算装置８は、マージン付加形状１７を作成した後は、図５（ｂ）に示すように、底面メッシュデータ１４のメッシュサイズと同様のメッシュサイズを単位として、マージン付加形状を包含するメッシュの集合体として、図５（ｃ）に示す如きワークモデル１６を作成する。
【００９１】
この際、演算装置８は、収納位置探索処理の単純化、高速化を図る場合は、ワークモデル１６を、矩形で作成することが好ましい。
【００９２】
その後、演算装置８は、図６（ａ）に示すように、先ず、ワークモデル１６を、底面メッシュデータ１４における１つの角に沿わせて配置する。図６（ａ）では、容器座標系における原点となる図上、左上の角に、ワークモデル１６の角を合わせて配置する。
【００９３】
この状態で、演算装置８は、ワークモデル１６と重なる配置となる底面メッシュデータ１４のメッシュに、ワーク既存部１５が含まれていて干渉が生じるか否かを判断する処理を行う。この判断処理により、干渉が生じると判断される場合は、演算装置８は、図６（ａ）に矢印で示すように、ワークモデル１６の位置を、ｘ軸方向に沿いメッシュサイズ分、ずらして配置する。
【００９４】
演算装置８は、ワークモデル１６をｘ軸方向にずらして配置する処理を行った後は、前記と同様に干渉が生じるか否かを判断する処理を再び行い、干渉が生じると判断される場合は、ワークモデル１６の位置を、ｘ軸方向に沿ってずらす処理を再び行う。
【００９５】
演算装置８は、その後、前記と同様に、干渉の有無を判断する判断処理により干渉が生じると判断される間は、ワークモデル１６をｘ軸方向に順次ずらして配置する処理を繰り返し行う。
【００９６】
その後、演算装置８では、ワークモデル１６の位置をｘ軸方向に順次ずらす処理を順次行うと、図６（ｂ）に示すように、ワークモデル１６が、底面メッシュデータ１４からｘ軸方向にはみ出す配置になる。
【００９７】
この状態になると、演算装置８は、ワークモデル１６をｘ軸方向にメッシュサイズ分、ずらして配置する処理と、干渉の有無を判断する処理を、順次繰り返して行うｘ軸方向の探索ループを終了する。
【００９８】
演算装置８は、次に、図６（ｃ）に示すように、ワークモデル１６を、ｘ軸方向の位置が図６（ａ）に示した初期状態と同様で、且つｙ軸方向の位置が、図６（ａ）に示した状態から、図６（ｃ）に矢印で示すようにｙ軸方向に沿いメッシュサイズ分、ずらした位置に配置するｙ軸方向のシフト処理を行う。
【００９９】
この状態で、演算装置８は、シフト処理後の新たなｙ軸方向位置において、前記と同様のｘ軸方向の探索ループを開始する。
【０１００】
その後、演算装置８は、或るｙ軸方向位置にて、前記したと同様のｘ軸方向の探索ループを実施し、そのｙ軸方向位置におけるｘ軸方向の探索ループが終了すると、ｙ軸方向のシフト処理を行う、という処理ループを繰り返し実施する。
【０１０１】
本実施形態では、ワーク既存部１５のメッシュの集合体を、矩形状にクラスタ化し、またワークモデル１６を矩形としている。そこで、演算装置８は、ｘ軸方向の探索ループを行うときに、図７（ａ）のように、ワークモデル１６と重なる配置となる底面メッシュデータ１４のメッシュに、ワーク既存部１５が含まれていて干渉が生じると判断されると、図７（ｂ）に示すように、判断基準に用いられたワーク既存部１５を含む矩形状のクラスタのｘ軸方向の端部を越える位置まで、ワークモデル１６の位置をｘ軸方向に一度に移動させるｘ軸方向のスキップ処理を行うようにしてもよい。このｘ軸方向のスキップ処理を採用すると、演算装置８は、ｘ軸方向の探索ループの処理で行う判断処理の回数を削減することができて、処理の高速化を図ることができる。
【０１０２】
また、演算装置８は、図８に示すように、たとえば、ｙ軸方向のｙａの位置におけるｘ軸方向の探索ループを終了した後、ｙ軸方向のシフト処理を行うときには、ｘ軸方向の探索ループにおける判断処理で判断の基準に用いられたワーク既存部１５を含む矩形状のクラスタの最も処理開始位置寄りに配置されているｙ軸方向の端部を越える位置、すなわち、図８にｙｂで示す位置まで、ワークモデル１６の位置をｙ軸方向に一度にシフトさせるｙ軸方向のスキップ処理を行うようにしてもよい。このｙ軸方向のスキップ処理を採用すると、演算装置８は、スキップしたｙａとｙｂの間のｙ軸方向位置におけるｘ軸方向の探索ループの処理を省くことができて、処理の高速化を図ることができる。
【０１０３】
演算装置８は、図６（ｄ）に示すように、底面メッシュデータ１４にて、ワークモデル１６を、ワーク既存部１５と干渉することなく配置可能な位置が検出されると、その位置を、ワーク収納位置１８とする処理を行う。
【０１０４】
演算装置８は、前記の収納位置探索処理でワーク収納位置１８が決まると、図９に示すように、ワーク収納位置１８の左上の角から、ｘ軸方向およびｙ軸方向に、それぞれワークモデル１６の形成時のマージンの幅Ｂの寸法分、シフトした位置に、二点鎖線で示すように、実際のワークＷの対応する角部が位置するよう、ワークＷの収納目標位置を定める処理を行う。
【０１０５】
次いで、演算装置８は、定めたワークＷの収納目標位置の座標の情報を、必要に応じて、適宜容器座標系からロボットワールド座標系に座標変換して、制御装置５に送るようにすればよい。
【０１０６】
制御装置５は、演算装置８より受け取るワークＷの収納目標位置の座標と、エンドエフェクタ４でワークＷを保持するときの、エンドエフェクタ４とワークＷの相対的な位置関係とを基に、ワークＷを収納目標位置の座標に配置するために必要とされるエンドエフェクタ４の目標位置の３次元座標を求める。その後、制御装置５は、求めた座標を、ワークＷを保持したエンドエフェクタ４の移動目標とする指令を、マニピュレータ３およびエンドエフェクタ４に与える処理を行うようにしてある。
【０１０７】
これにより、本実施形態の収納システム１では、ロボット２のマニピュレータ３およびエンドエフェクタ４が制御装置５からの指令に従って動くことで、現在の収納対象のワークＷが、ワークＷの周囲に少なくともマージンの幅Ｂで設定された空間を形成した状態で、収納容器６に収納される。したがって、本実施形態の収納システム１では、収納容器６に新たに収納されるワークＷは、収納済みワークＷａとの間、および、収納容器６の底面９の外周に存在している側壁１０との間に、少なくともマージンの幅Ｂの隙間が保持される。
【０１０８】
このように、本実施形態の収納システムおよび収納方法によれば、収納容器６に収納対象のワークＷを収納するときには、その都度、視覚センサ７で取得する収納容器６の底面９の立体形状に関する情報Ａを基に、収納容器６の底面９における空き領域１３を求め、次いで、空き領域１３においてワークＷの収納目標位置を定めて、その収納目標位置にワークＷを収納することができる。
【０１０９】
したがって、本実施形態の収納システムおよび収納方法は、収納容器６に複数のワークＷを収納するときに、新規に収納するワークＷが収納済みワークＷａに干渉することを抑制することができる。
【０１１０】
しかも、本実施形態の収納システムおよび収納方法は、収納容器６に収納対象のワークＷを収納する操作の直前に、視覚センサ７で取得する収納容器６の底面９の立体形状に関する情報Ａを基に、収納容器６の底面９における空き領域１３を求め、その空き領域１３にワークＷの収納目標位置を定めているため、収納済みワークＷａに、たとえ収納時点での収納位置からの変位が生じたとしても、新規に収納するワークＷが収納済みワークＷａに干渉することを抑制することができる。
【０１１１】
また、本実施形態の収納システムおよび収納方法によれば、収納容器６には、底面９の１つの角に近い位置にできるだけ集めて、ワークＷを収納することができる。
【０１１２】
［第１応用例］
前記実施形態と同様の構成において、演算装置８は、底面認識処理にて、図３（ａ）（ｂ）（ｃ）で説明した手法により示した底面メッシュデータ１４を作成するときに、ワーク既存部１５を、収納済みワークＷａの平面形状を含むメッシュのみに設定するようにしてもよい。この場合、ワーク既存部１５は、収納済みワークＷａの平面形状の外周端部を含むメッシュと、その内側に配置されたメッシュで形成される。
【０１１３】
この手法によれば、ワーク既存部１５のメッシュの集合体は、収納済みワークＷａの平面形状をおおよそ反映したものになるので、前記実施形態に比して、占有する面積が小さくなる。
【０１１４】
したがって、演算装置８による底面認識処理では、収納容器６の底面９における収納済みワークＷａのない空き領域１３を、より広く認識することができる。よって、この手法によれば、収納容器６に、より多くのワークＷを収納可能とする効果が期待できる。
【０１１５】
［第２応用例］
前記実施形態と同様の構成において、演算装置８は、収納位置探索処理を行うときに、ワークモデル１６を、収納対象のワークＷの平面形状を含むメッシュのみで形成するようにしてもよい。この場合、ワークモデル１６は、収納対象のワークＷの平面形状の外周端部に沿う位置に配置されたメッシュと、その内側のメッシュとの集合体により形成される。
【０１１６】
この手法によれば、ワークモデル１６は、収納対象のワークＷの平面形状をおおよそ反映したものになるので、前記実施形態に比して、占有する面積が小さくなる。
【０１１７】
したがって、演算装置８による収納位置探索処理では、底面メッシュデータ１４にて、ワーク既存部１５と干渉しないワークモデル１６の配置を見出しやすくすることができる。よって、この手法によれば、収納容器６に、より多くのワークＷを収納可能とする効果が期待できる。
【０１１８】
［第３応用例］
前記実施形態と同様の構成において、演算装置８は、収納位置探索処理を行うときに、底面メッシュデータ１４にワークモデル１６を配置した状態について、ワーク既存部１５と干渉するか否かという判断処理を行うことに加えて、ワークモデル１６を９０度回転させた姿勢で配置した状態、あるいは、設定された角度でｎ回（ｎ＝１，２，３．．．）、回転させた姿勢で配置した状態についても、ワーク既存部１５と干渉するか否かという判断処理を行うようにしてもよい。
【０１１９】
この手法によれば、演算装置８による収納位置探索処理では、底面メッシュデータ１４にて、ワーク既存部１５と干渉しないワークモデル１６の配置を見出す可能性をより高めることができる。
【０１２０】
なお、本発明は、前記実施形態および各応用例にのみ限定されるものではない。
【０１２１】
ロボット２のマニピュレータ３の関節数、形状、サイズ、および、エンドエフェクタ４の形状、サイズは、図示するための便宜上のものであり、図示したものに限定されない。
【０１２２】
ワークＷおよび収納済みワークＷａの平面形状は、矩形や円形に限定されるものではなく、収納容器６の底面９に安定した姿勢で載置することができれば、任意の立体形状を備えていてよい。
【０１２３】
ロボット２と、ワークＷおよび収納済みワークＷａ、収納容器６のサイズの比は、図示するための便宜上のものであり、実際のサイズの比を反映したものではない。
【０１２４】
立体形状計測装置としては、視覚センサ７を例示したが、収納容器６の立体形状に関する情報Ａを取得する機能を備えていれば、レーザーまたは電磁波を用いて立体形状を計測する装置、たとえば、３Ｄスキャナなど、視覚センサ以外の立体形状計測装置を採用してもよい。立体形状計測装置を設ける位置は、使用する立体形状計測装置の計測方式、計測レンジなどに応じて、適宜設定してよい。
【０１２５】
本開示の収納システム１では、収納容器６は、ワークＷを載置可能な面（以下、ワーク載置面という）を備えていれば、ワーク載置面の周囲に備える側壁の高さは任意でよい。したがって、本開示の収納システム１における収納容器６は、箱形の容器に限定されず、側壁の高さが周方向に一定ではない容器、側壁が周方向に断続して設けられている容器、側壁の高さが低いトレイ状の容器を含み、更に、収納容器６は、側壁の高さがゼロ、すなわち、ワーク載置面の周囲に側壁を有しないパレットも含む。
【０１２６】
また、収納容器６は、カゴあるいはバスケットと称されるような、ワーク載置面と側壁の一部または全部が、金属や樹脂製の網構造とされたものであってもよいことは勿論である。
【０１２７】
収納容器６は、底面９の形状が矩形に限定されるものではなく、円形や楕円形など、矩形以外の底面９を備えていてもよい。
【０１２８】
容器座標系は、収納容器６の底面９における任意の位置に原点を設定してよいことは勿論である。また、容器座標系は、収納容器６の底面９の形状が、周方向の一部に直線的に延びる部分を備えている場合は、その直線的に延びる部分に沿いｘ軸またはｙ軸を設定することが、収納位置を探索する処理上、好ましいが、これに限定されるものではない。
【０１２９】
容器座標系の原点は、収納容器６の底面９に沿う仮想の平面上で、底面よりも外側となる位置に設定してもよい。
【０１３０】
また、収納容器６の底面９の形状が、円形、楕円形、その他の直交する２つの対称軸を設定可能な形状である場合は、その直交する対称軸のそれぞれに沿う２方向に、ｘ軸とｙ軸を設定してもよい。
【０１３１】
更に、収納容器６の底面９の形状が、１つの対称軸を設定可能な形状である場合は、その対称軸に沿う方向に、ｘ軸またはｙ軸を設定するようにしてもよい。
【０１３２】
本開示の収納システムおよび収納方法は、収納容器６に形状の異なる複数のワークＷを収納する処理が必要とされる場合であれば、物流の技術分野における商品の箱詰めのみならず、製造分野における複数の部品の調達や、その他の任意の目的で使用してもよい。
【０１３３】
その他本発明の要旨を逸脱しない範囲内で種々変更を加え得ることは勿論である。
【符号の説明】
【０１３４】
２  ロボット、３  マニピュレータ、４  エンドエフェクタ、５  制御装置、６  収納容器、７  視覚センサ（立体形状計測装置）、８  演算装置、９  底面、１３  空き領域、１４  底面メッシュデータ、１６  ワークモデル、１８  ワーク収納位置、Ｗ  ワーク、Ｗａ  収納済みワーク
【図１】
2019181620.tif 000003
【図２】
2019181620.tif 000004
【図３】
2019181620.tif 000005
【図４】
2019181620.tif 000006
【図５】
2019181620.tif 000007
【図６】
2019181620.tif 000008
【図７】
2019181620.tif 000009
【図８】
2019181620.tif 000010
【図９】
2019181620.tif 000011