(57)【要約】【課題】  ロボットアームがかご車に接触する事を避ける事が出来る情報処理装置及び仕分システムを提供する。【解決手段】  実施形態によれば、所定範囲に置かれた容器に積載された物品を把持する把持機構と、動作計画に基づいて前記把持機構を移動させるアーム機構とを有するロボットアームに前記動作計画を供給する情報処理装置は、制御部を具備する。制御部は、点群データ上の少なくとも３点以上の組合せ毎に法線を算出し、前記法線に基づいて、前記点群データにおいて前記かご車と、前記物品の位置とを特定し、前記かご車と前記物品の位置に基づいて前記把持機構により前記物品を把持する把持点を決定し、前記把持機構と前記かご車が接触しないように前記把持機構を前記把持点に移動させる前記動作計画を生成し、前記動作計画を前記ロボットアームに供給する。【選択図】図２
2019098431.tif 000002
【特許請求の範囲】
【請求項１】
所定範囲に置かれたかご車に積載された物品を把持する把持機構と、動作計画に基づいて前記把持機構を移動させるアーム機構とを有するロボットアームに前記動作計画を供給する情報処理装置であって、
前記動作計画を生成し、前記動作計画を前記ロボットアームに供給する制御部を具備し、
前記制御部は、距離センサが前記所定範囲を撮像して画像データを取得し、前記距離センサが前記画像データに基づいて生成した、前記距離センサとの距離を示す点が配列された点群データ上の少なくとも３点以上の組合せ毎に法線を算出し、前記法線に基づいて、前記点群データにおいて前記かご車及び前記物品の位置を特定し、前記かご車及び前記物品の位置に基づいて前記把持機構により前記物品を把持する把持点を決定し、前記把持機構と前記かご車が接触しないように前記把持機構を前記把持点に移動させる前記動作計画を生成し、前記動作計画を前記ロボットアームに供給する、情報処理装置。
【請求項２】
前記制御部は、前記点群データにおいて、前記かご車の外側を向く法線が算出され、且つ最も外側に存在する領域を、前記かご車の外枠として特定する請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記かご車の種類ごとに前記かご車の立体的な形状を示す形状データを予め記憶するデータベースを参照し、前記かご車の種類を認識し、認識した種類に対応する前記形状データを取得し、前記形状データに基づいて前記点群データにおける前記かご車の位置を特定する請求項１に記載の情報処理装置。
【請求項４】
前記制御部は、前記点群データに基づいて前記かご車の寸法を算出し、算出した寸法に基づいて前記かご車の種類を認識する請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、前記かご車の種類を示す識別用コードが付与された前記かご車から、前記距離センサが取得した画像データに基づいて、前記かご車の種類を認識する請求項３に記載の情報処理装置。
【請求項６】
前記制御部は、前記かご車の外周の形状を検出する一次元センサから供給される測定結果に基づいて、前記かご車の寸法を算出し、算出した寸法に基づいて前記かご車の種類を認識する請求項３に記載の情報処理装置。
【請求項７】
前記制御部は、前記かご車の底面であることを示す底面パターンが底面に付与された前記かご車から、前記距離センサが取得した画像データに基づいて、前記かご車に前記物品が積載されているか否か判断する請求項１に記載の情報処理装置。
【請求項８】
前記制御部は、前記距離センサが取得する画像データにおける前記底面パターンの歪み及び位置に基づいて、前記距離センサの傾き及びズレ量を算出する請求項７に記載の情報処理装置。
【請求項９】
前記制御部は、前記距離センサから取得した点群データと、過去に取得した点群データとを比較し、差分が予め設定された閾値未満である場合、過去の前記かご車の位置の特定の結果を採用する請求項１に記載の情報処理装置。
【請求項１０】
ロボットアームと、前記ロボットアームに動作計画を供給する情報処理装置とを具備する仕分システムであって、
前記ロボットアームは、
所定範囲に置かれたかご車に積載された物品を把持する把持機構と、
前記動作計画に基づいて前記把持機構を移動させるアーム機構と、
を具備し、
前記情報処理装置は、
距離センサが前記所定範囲を撮像して画像データを取得し、前記距離センサが前記画像データに基づいて生成した、前記距離センサとの距離を示す点が配列された点群データ上の少なくとも３点以上の組合せ毎に法線を算出し、前記法線に基づいて、前記点群データにおいて前記かご車及び前記物品の位置を特定し、前記かご車及び前記物品の位置に基づいて前記把持機構により前記物品を把持する把持点を決定し、前記把持機構と前記かご車が接触しないように前記把持機構を前記把持点に移動させる前記動作計画を生成し、前記動作計画を前記ロボットアームに供給する制御部を具備する仕分システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置及び仕分システムに関する。
【背景技術】
【０００２】
小包などの物品（荷物）を配送する仕分システムでは、収集した荷物を配送先ごとに仕分ける作業が必要となる。例えば、物品を把持する把持機構と、把持機構を移動させるアーム機構とを有するロボットアームを備える仕分システムが実用化されている。ロボットアームを備える仕分システムでは、物品が積載されたかご車（容器）からロボットアームにより物品を把持して持ち上げ、物品を仕分先まで移動させる。
【０００３】
ロボットアームがかご車に接触した場合、ロボットアームが破損する可能性がある。この為、ロボットアームは、かご車を避けるように予め設定された動作計画に基づいて、把持機構を移動させる。しかし、仕分システムにおいて用いられるかご車の形状にバラつきがあることが想定される。また、かご車の設置位置にもバラつきが生じることが想定される。この為、動作計画に基づいて把持機構を移動させたとしても、ロボットアームがかご車に接触する可能性があるという課題がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−７００７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、ロボットアームがかご車に接触する事を避ける事が出来る情報処理装置及び仕分システムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態によれば、所定範囲に置かれた容器に積載された物品を把持する把持機構と、動作計画に基づいて前記把持機構を移動させるアーム機構とを有するロボットアームに前記動作計画を供給する情報処理装置は、制御部を具備する。制御部は、点群データ上の少なくとも３点以上の組合せ毎に法線を算出し、前記法線に基づいて、前記点群データにおいて前記かご車と、前記物品の位置とを特定し、前記かご車と前記物品の位置に基づいて前記把持機構により前記物品を把持する把持点を決定し、前記把持機構と前記かご車が接触しないように前記把持機構を前記把持点に移動させる前記動作計画を生成し、前記動作計画を前記ロボットアームに供給する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態に係る仕分システムの概略的な構成例について説明する為の説明図である。
【図２】図２は、第１の実施形態に係る情報処理装置の構成例について説明する為の説明図である。
【図３】図３は、第１の実施形態に係るロボットアームの動作の例について説明する為のフローチャートである。
【図４】図４は、第１の実施形態に係る情報処理装置の動作の例について説明する為のフローチャートである。
【図５】図５は、距離センサにより撮像された画像データの例について説明する為の説明図である。
【図６】図６は、距離センサにより生成された点群データの例について説明する為の説明図である。
【図７】図７は、点群データに基づいて算出された法線の例について説明する為の説明図である。
【図８】図８は、第１の実施形態に係る情報処理装置の動作の他の例について説明する為のフローチャートである。
【図９】図９は、底面パターンの例について説明する為の説明図である。
【図１０】図１０は、第２の実施形態に係る仕分システムの概略的な構成例について説明する為の説明図である。
【図１１】図１１は、第２の実施形態に係る情報処理装置の動作の例について説明する為のフローチャートである。
【図１２】図１２は、識別用コードが付与されたかご車を撮像した画像データの例を示す。
【図１３】図１３は、第３の実施形態に係る仕分システムの概略的な構成例について説明する為の説明図である。
【図１４】図１４は、第３の実施形態に係る情報処理装置の動作の例について説明する為のフローチャートである。
【図１５】図１５は、一次元センサからかご車までの距離を測定する例について説明する為の説明図である。
【発明を実施するための形態】
【０００８】
以下、実施形態について、図面を参照して説明する。  
（第１の実施形態）  
図１は、第１の実施形態に係る仕分システム１の概略的な構成例について説明する為の説明図である。
【０００９】
仕分システム１は、かご車２に積載された仕分対象である物品３を所定の仕分先に仕分けるシステムである。
【００１０】
かご車２は、底面１１と、外周枠１２と、天枠１３とを有する。底面１１は、キャスターなどに組み合わされ、水平面とほぼ平行な面を有する部材である。外周枠１２は、底面１１から鉛直方向に延びるように構成される部材である。外周枠１２は、例えばかご車２の外周の４面のうちの３面を囲む柵として構成される。天枠１３は、外周枠１２の底面１１と逆側の端部に設けられる。天枠１３は、底面１１と平行、即ち水平方向に軸が延びた円筒状に形成されている。なお、かご車２は、仕分対象の物品３が積載される容器の一例であり、荷台、またはパレットなど、物品３を積載することができるものであれば如何なるものであってもよい。
【００１１】
仕分先は、例えばベルトコンベア４である。なお、仕分先は、ベルトコンベア４に限定されるものではなく、仕分用のカゴであっても良いし、作業台などであっても良い。
【００１２】
仕分システム１は、ロボットアーム５、情報処理装置６、及び操作端末７を備える。また、仕分システム１は、距離センサ８をさらに備える。ロボットアーム５、情報処理装置６、操作端末７、及び距離センサ８は、ネットワーク９を介して互いに通信可能に構成されている。
【００１３】
まず、ロボットアーム５の構成について説明する。  
ロボットアーム５は、かご車２から物品３を持ち上げ、物品を仕分先に供給する装置である。ロボットアーム５は、把持機構２１、アーム機構２２、接触センサ２３、及びコントローラ２４を備える。
【００１４】
把持機構２１は、物品３を把持する機構である。把持機構２１は、例えば、物品３に吸着する吸着パッドを備える。吸着パッドは、物品３の表面に接し、且つコントローラ２４の制御によりパッド内が負圧になることにより、物品３の表面に吸着し、物品３を把持する。また、把持機構２１は、２点以上の接点で物品３を挟むことにより物品３を把持する複数の指部を備えるグリッパとして構成されていてもよい。
【００１５】
アーム機構２２は、把持機構２１を移動させる機構である。アーム機構２２は、複数のアームと、複数のアームを連結する間接機構とを備える。間接機構は、コントローラ２４により制御されるアクチュエータ（図示せず）により可動することにより、アームを駆動する。
【００１６】
接触センサ２３は、把持機構２１に対して加えられる応力を検知するセンサである。接触センサ２３は、例えば、把持機構２１に対して鉛直方向から加わる応力を検知する。接触センサ２３は、検知結果をコントローラ２４に送信する。具体的には、接触センサ２３は、把持機構２１に対して鉛直方向から加わる応力を検知した場合、オン信号をコントローラ２４に供給する。なお、接触センサ２３は、アーム機構２２に対して加えられる応力も検知する構成であってもよい。
【００１７】
コントローラ２４は、情報処理装置６から供給される動作計画に基づいて、把持機構２１及びアーム機構２２の動作を制御する。コントローラ２４は、例えば、メモリ（図示せず）と、メモリに記憶されたプログラムを実行することにより把持機構２１及びアーム機構２２の動作を制御する演算素子（図示せず）とを備える。また、コントローラ２４は、シーケンサとして構成されていてもよい。なお、動作計画については後述する。
【００１８】
次に、距離センサ８の構成について説明する。  
距離センサ８は、対象物までの距離を計測するセンサである。距離センサ８は、対象物と距離センサ８との距離を示す点が配列された点群データを取得する。即ち、点群データは、互いに直交するｘ方向、ｙ方向、ｚ方向からなる空間における点の集合である。距離センサ８は、点群データを、ネットワーク９を介して情報処理装置６に供給する。
【００１９】
距離センサ８は、例えば異なる２点（瞳位置）から対象物を撮像した際の視差に基づいて対象物までの距離を計測するステレオカメラである。即ち、距離センサ８は、レンズと、レンズにより結像された光を画像に変換する撮像素子とが組み合わされた２つ以上のカメラを備える。このような構成により、距離センサ８は、上記の点群データと同時に、かご車２を含む領域の画像データも取得する。画像データは、色情報を有する座標（画素）が二次元的に配列されたデータである。距離センサ８は、画像データを、ネットワーク９を介して情報処理装置６に供給する。
【００２０】
距離センサ８のレンズは、ロボットアーム５により持ち上げられる物品３が積載されたかご車２を含む領域を撮影することができるように画角が調整されている。例えば、距離センサ８のレンズは、光軸がかご車２の物品３が積載される底面１１に対向するように調整される。例えば、距離センサ８のレンズは、距離センサ８のレンズの光軸と、上記のｚ方向（鉛直方向）が平行になるように調整される。即ち、距離センサ８は、かご車２の底面１１に対向する方向からかご車２を含む所定範囲を撮像し、画像データを取得する。
【００２１】
距離センサ８は、対象物からの光を分光し、撮像素子の異なる位置に入射させる構成であってもよい。また、距離センサ８は、レーザによる３次元スキャナであってもよい。
【００２２】
次に、操作端末７について説明する。  
操作端末７は、操作に基づく情報を情報処理装置６に供給する装置である。操作端末７は、操作端末７以外の他の機器と通信する為の通信インタフェース、種々の処理を実行する制御部、及び画面の表示と操作に基づく操作信号の生成とを行うタッチパネルなどを備える。また、操作端末７は、タッチパネルの代わりにディスプレイと、キーボードまたはマウスなどの操作部とを備える構成であってもよい。
【００２３】
次に、情報処理装置６の構成について説明する。  
図２は、情報処理装置６の構成例について説明する為の説明図である。
【００２４】
情報処理装置６は、ロボットアーム５に動作計画を供給する装置である。動作計画は、把持点と、軌跡とを含む情報である。把持点は、３次元空間上の座標である。把持点は、ロボットアーム５の把持機構２１を移動させる位置を示す。軌跡は、３次元空間上の複数の座標である。軌跡は、ロボットアーム５の把持機構２１を把持点まで移動させる際の経路を示す。なお、把持点は軌跡に含まれていてもよい。情報処理装置６は、受信した点群データに基づいて、把持点及び軌跡を生成し、動作計画としてロボットアーム５に供給する。
【００２５】
情報処理装置６は、パーソナルコンピュータ（ＰＣ）などの、データの処理及びデータの保存を行うことができる装置により構成される。情報処理装置６は、通信インタフェース３１及び制御部３２を備える。
【００２６】
通信インタフェース３１は、情報処理装置６以外の他の機器と通信する為のインタフェースである。通信インタフェース３１は、ネットワーク９を介してロボットアーム５、操作端末７、及び距離センサ８と通信する為の通信規格などに対応した端子及び回路を備える。通信インタフェース３１は、制御部３２の制御に基づいて、ロボットアーム５、操作端末７、及び距離センサ８などと通信する。
【００２７】
制御部３２は、種々の処理を実行する処理部である。制御部３２は、プロセッサ３３及びメモリ３４を備える。
【００２８】
プロセッサ３３は、演算処理を実行する演算素子である。プロセッサ３３は、例えばＣＰＵとして構成される。プロセッサ３３は、メモリ３４に記憶されているプログラムに基づいて種々の処理を行う。
【００２９】
メモリ３４は、プログラム及びデータを記憶する記憶装置である。メモリ３４は、例えば、読み出し専用の不揮発性メモリであるＲＯＭ、データを一時的に記憶するＲＡＭ、及びデータを記憶するストレージのいずれか、または複数を備える。
【００３０】
次に、ロボットアーム５の動作について説明する。  
図３は、ロボットアーム５の動作について説明する為のフローチャートである。
【００３１】
ロボットアーム５のコントローラ２４は、アーム機構２２及び把持機構２１を距離センサ８の画角外の初期位置に移動させる（ステップＳ１１）。例えば、コントローラ２４は、アーム機構２２の間接機構をアクチュエータにより可動させることにより、アーム機構２２を駆動し、アーム機構２２及び把持機構２１を撮影範囲外に移動させる。なお、距離センサ８は、アーム機構２２及び把持機構２１を撮影範囲外に移動したタイミングで点群データを取得し、情報処理装置６に送信する。
【００３２】
コントローラ２４は、アーム機構２２及び把持機構２１を撮影範囲外に移動させると、情報処理装置６から動作計画が供給されるのを待つ（ステップＳ１２）。
【００３３】
コントローラ２４は、情報処理装置６から動作計画が供給された場合（ステップＳ１２、ＹＥＳ）、動作計画に基づき把持機構２１を移動させる（ステップＳ１３）。例えば、コントローラ２４は、動作計画が示す軌跡に基づき、動作計画が示す把持点まで把持機構２１を移動させるように、アーム機構２２を制御する。より具体的には、コントローラ２４は、動作計画が示す把持点と、把持機構２１における基準点とが重なるように、アーム機構２２を制御する。吸着パッドとして構成されている場合、把持機構２１の基準点は、例えば、吸着パッドの中心（重心）であってもよいし、吸着パッドにおける任意の点であってもよい。また、グリッパとして構成されている場合、把持機構２１の基準点は、例えば、グリッパを構成する複数の指部の中心であってもよい。
【００３４】
コントローラ２４は、接触センサ２３の検知結果を情報処理装置６に供給する。情報処理装置６の制御部３２は、接触センサ２３の検知結果に基づいて（接触検知結果）がオンであるか否か判断し、判断結果をコントローラ２４に供給する。コントローラ２４は、接触センサ２３の検知結果に基づく判断結果に基づき、接触検知結果がオンであるか否か認識する（ステップＳ１４）。接触検知結果がオンである場合、把持機構２１が物品３の表面に接したことが推定される。また、接触検知結果がオフである場合、把持機構２１が物品３の表面にまだ接していないことが推定される。
【００３５】
また、コントローラ２４は、接触検知結果がオンである場合（ステップＳ１４、ＹＥＳ）、把持機構２１の位置が、動作計画が示す把持点であるか否か判断する（ステップＳ１５）。接触検知結果がオンであり、且つ把持機構２１の位置が動作計画の示す把持点である場合、把持の対象である物品３に把持機構２１が接触したことが推定される。また、接触検知結果がオンであり、且つ把持機構２１の位置が動作計画の示す把持点ではない場合、把持の対象である物品３ではなく、他の物品またはかご車２に把持機構２１が接触したことが推定される。
【００３６】
コントローラ２４は、接触検知結果がオンであり、且つ把持機構２１の位置が動作計画の示す把持点であると判断した場合（ステップＳ１５、ＹＥＳ）、把持機構２１により物品３を把持させる（ステップＳ１６）。例えば把持機構２１が吸着パッドとして構成されている場合、コントローラ２４は、吸着パッド内を図示されない真空ポンプなどにより負圧にさせることにより、把持機構２１に物品を把持させる。また例えば、把持機構２１がグリッパとして構成されている場合、コントローラ２４は、グリッパの指部により物品を挟ませることにより、把持機構２１に物品を把持させる。
【００３７】
コントローラ２４は、把持機構２１により物品３を把持すると、物品３を把持した把持機構２１を仕分先に応じたベルトコンベア４に対応した位置まで移動させるように、アーム機構２２を制御する（ステップＳ１７）。
【００３８】
コントローラ２４は、把持機構２１を仕分先に応じたベルトコンベア４に対応した位置まで移動させると、把持機構２１による物品３の把持を解除するように把持機構２１を制御し（ステップＳ１８）、１つの物品の仕分が完了したことを示す完了通知を情報処理装置６に送信し、ステップＳ１１の処理に移行する。これにより、把持機構２１から離れた物品３が、仕分先のベルトコンベア４に投入される。さらに、コントローラ２４は、アーム機構２２及び把持機構２１を距離センサ８の画角外に移動させ、次の動作計画の受信を待つ状態になる。
【００３９】
また、コントローラ２４は、ステップＳ１５において、接触検知結果がオンであり、且つ把持機構２１の位置が動作計画の示す把持点ではないと判断した場合（ステップＳ１５、ＮＯ）、アーム機構２２の動作を停止させる（ステップＳ１９）。さらに、コントローラ２４は、把持機構２１、またはアーム機構２２が把持の対象の物品３ではない対象に接触したことを示す接触エラーを情報処理装置６に送信し、ステップＳ１１の処理に移行する。これにより、把持機構２１、またはアーム機構２２が把持の対象の物品３ではない対象に接触した場合に、ロボットアーム５の動作が停止する。
【００４０】
なお、ロボットアーム５のコントローラ２４は、情報処理装置６から終了指示が供給された場合、アーム機構２２及び把持機構２１を所定の位置に移動させ、図３の処理を終了する。
【００４１】
次に、情報処理装置６の動作について説明する。  
図４は、情報処理装置６の動作について説明する為のフローチャートである。
【００４２】
情報処理装置６の制御部３２は、距離センサ８から点群データが供給されるのを待つ（ステップＳ２１）。
【００４３】
上記したように、距離センサ８は、ロボットアーム５により持ち上げられる物品３が積載されたかご車２を含む領域の画像データをステレオカメラにより取得する。これにより、例えば図５に示すような画像データ４１を取得する。
【００４４】
図５は、距離センサ８を構成するステレオカメラにより撮像された１対の画像データのうちの一方の画像データ４１の例を示す。図５に示されるように、距離センサ８は、かご車２が設置される領域を含む所定範囲が画角として設定されている。この為、画像データ４１には、かご車２及び複数の物品が写り込んでいる。
【００４５】
さらに、距離センサ８は、１対の画像データに基づき、画像データ上の所定の領域（点）毎に距離センサ８との距離を算出し、点群データを生成する。
【００４６】
図６は、距離センサ８により生成された点群データ４２の例を示す。距離センサ８との距離が遠いほど、濃いハッチングで示している。図６に示されるように、点群データ４２には、かご車２及びかご車２内に積載された複数の物品３の面と距離センサ８との距離を示す情報が含まれている。即ち、距離センサ８が設置されている高さ、距離センサ８に用いられているレンズの焦点距離、及び距離センサ８に用いられている撮像素子の寸法が既知である場合、点群データ４２に基づき、かご車２が設置される床から複数の物品３の面までの高さが算出可能である。また、点群データ４２に基づき、かご車２が設置される床からかご車２の底面１１及びかご車２の天枠１３までの高さが算出可能である。
【００４７】
また、距離センサ８は、予め設定された値より距離センサ８との距離が離れている領域について、点群データ４２に距離の情報を加えない構成であってもよい。例えば、距離センサ８は、複数の種類のかご車２の中で最も低い底面より低い領域を点群データ４２から除くように点群データ４２を生成してもよい。
【００４８】
情報処理装置６の制御部３２は、距離センサ８から点群データが供給された場合（ステップＳ２１、ＹＥＳ）、過去に取得した点群データと今回取得した点群データとを比較し、差分が予め設定された閾値以上であるか否か判断する（ステップＳ２２）。例えば、制御部３２は、前回取得した点群データと今回取得した点群データとの類似度を算出し、算出された類似度が閾値未満である場合、差分が予め設定された閾値以上であると判断する。
【００４９】
制御部３２は、過去に取得した点群データと今回取得した点群データとの差分が予め設定された閾値以上であると判断した場合（ステップＳ２２、ＹＥＳ）、動作計画生成処理を行う。まず、制御部３２は、点群データにおける少なくとも３点以上の組合せ毎に法線を算出する（ステップＳ２３）。具体的には、制御部３２は、ある１点を基準点とし、基準点から他の２つ点までのそれぞれのベクトルを算出し、複数ベクトルの外積を法線ベクトルとして算出する。
【００５０】
制御部３２は、算出した法線（法線ベクトル）に基づいて、クラスタリングを行う（ステップＳ２４）。例えば、制御部３２は、同じ方向の法線ベクトルが算出され、且つ隣接する基準点を対応付けて、複数の領域に分類する。
【００５１】
制御部３２は、距離センサ８に対するかご車２の相対的な位置を検出する（ステップＳ２５）。制御部３２は、点群データ上の分類された複数の領域が、かご車２及び物品３のどの部分に対応する領域であるのかを特定する。かご車２及びかご車２に積載された物品３は、部分ごとに法線ベクトルが似通うことが推定される。そこで、制御部３２は、ステップＳ２４のクラスタリングにより分類された領域内の法線の特徴、及び領域の点群データ上での位置に基づいて、各領域がどのような領域であるのかを特定する。
【００５２】
図７は、点群データに基づいて算出された法線の例について説明する為の説明図である。
【００５３】
例えば、かご車２の外周枠１２に対応する点の組み合わせに基づく法線は、ｘ方向及びまたはｙ方向の成分を含み、ｚ方向の成分をほとんど含まないことが推定される。図７に示されるように、かご車２の外周枠１２の内側を基準点とする第１の法線５１は、ｘ方向及びまたはｙ方向の成分を含み、ｚ方向の成分を含んでいない。これは、外周枠１２が底面１１から鉛直方向に延びるように構成されている為である。
【００５４】
また、例えば、かご車２の天枠１３は、水平方向に軸が延びた円筒状に形成されている為、天枠１３の表面上での位置に応じて法線が様々な方向を向くことが推定される。また、天枠１３は、かご車２の最も高い位置に外周と同等の形状で設けられるため、点群データにおいて最も外側に写ることが推定される。
【００５５】
例えば、図７に示されるように、水平方向において底面１１に近い天枠１３上の点を基準点とする第２の法線５２は、水平方向においてかご車２の内側に向かうベクトルになることが推定される。即ち、第２の法線５２は、底面１１に向かうｘ方向及びまたはｙ方向の成分を含み、ｚ方向の成分をほとんど含んでいない。
【００５６】
また、例えば、図７に示されるように、水平方向において天枠１３上の中央付近の点を基準点とする第３の法線５３は、ｘ方向及びｙ方向の成分をほとんど含まず、ｚ方向の成分を含むベクトルになることが推定される。
【００５７】
また、例えば、図７に示されるように、水平方向において底面１１から遠い天枠１３上の点を基準点とする第４の法線５４は、水平方向においてかご車２の外側に向かうベクトルになることが推定される。即ち、第４の法線５４は、底面１１とは逆側に向かうｘ方向及びまたはｙ方向の成分を含み、ｚ方向の成分をほとんど含んでいない。
【００５８】
また、例えば、かご車２の底面１１に対応する点の組み合わせに基づく法線は、点群データのｚ方向を向くベクトルになることが推定される。また、底面１１の法線は、ｘ方向及びのｙ方向の成分をほとんど含まないことが推定される。これは、底面１１が水平面とほぼ平行に構成されている為である。
【００５９】
また、例えば、図７に示されるように、物品３の上方を向く面を基準点とする第５の法線５５は、ｘ方向及びｙ方向の成分をほとんど含まず、ｚ方向の成分を含むベクトルになることが推定される。
【００６０】
制御部３２は、上記の特徴をふまえ、点群データにおいて最も外側に位置し、且つかご車２の外側に向かう法線ベクトルが算出された領域をかご車２の領域であると特定する。より具体的には、制御部３２は、点群データにおいて最も外側に位置し、且つかご車２の外側に向かう法線ベクトルが算出された領域をかご車２の天枠１３の領域であると特定する。
【００６１】
また、かご車２の外周枠１２の内側、底面１１、及び物品３などに対応する領域は、天枠１３の領域よりも内側に位置することが想定される。そこで、制御部３２は、天枠１３の領域よりも内側に位置し、且つｘ方向及びｙ方向の成分を含まずｚ方向の成分を含む法線ベクトルが算出された領域を底面１１または物品３の領域であると特定する。さらに、制御部３２は、予め設定された高さ未満の領域を底面１１の領域として特定してもよい。これにより、かご車２と物品３とを点群データ上で分離することができる。
【００６２】
さらに、制御部３２は、ロボットアーム５の把持機構２１により物品３を把持する把持点を決定する（ステップＳ２６）。制御部３２は、底面１１または物品３の領域において、高さが一定であり、且つ所定の形状（例えば矩形など）の領域を検出することにより、物品３を検出する。さらに、制御部３２は、検出した物品３の中から、次に把持する物品３を決定し、さらに決定した物品３のどの部分を把持機構２１により把持するかを決定し、把持点を決定する。例えば、制御部３２は、面積の大きな物品３を優先して把持するように把持点を決定する。
【００６３】
また、制御部３２は、回避対象の領域を決定する（ステップＳ２７）。ロボットアーム５のアーム機構２２及び把持機構２１がかご車２に接触し、破損することを避ける為に、制御部３２は、かご車２が存在することが推定される領域を回避対象の領域として決定する。例えば、制御部３２は、ステップＳ２５で特定した天枠１３の領域を回避対象の領域として決定する。より具体的には、制御部３２は、天枠１３の領域を所定距離膨張させ、膨張させた領域を天枠１３から床までの高さに亘って回避対象の領域として設定する。さらに、制御部３２は、上記のステップＳ２６において把持対象から漏れた物品３が存在することが推定される領域を回避対象の領域として決定する。
【００６４】
制御部３２は、ロボットアーム５の把持機構２１を、初期位置から、上記の回避対象を避けて把持点まで移動させる為の把持機構２１の軌跡を決定する（ステップＳ２８）。
【００６５】
制御部３２は、上記の軌跡と把持点に基づき、ロボットアーム５を動作させる為の動作計画を生成し（ステップＳ２９）、動作計画をロボットアーム５に送信し（ステップＳ３０）、ステップＳ２１の処理に移行する。なお、情報処理装置６の制御部３２は、操作端末７から終了指示が供給された場合、ロボットアーム５に終了指示を供給し、図４の処理を終了する。
【００６６】
また、制御部３２は、ステップＳ２２で、過去に取得した点群データと今回取得した点群データとの差分が予め設定された閾値未満であると判断した場合（ステップＳ２２、ＮＯ）、ステップＳ２３、ステップＳ２４、及びステップＳ２５の処理を省略し、ステップＳ２６の処理に移行する。即ち、制御部３２は、距離センサ８から今回取得した点群データと、過去に取得した点群データとを比較し、差分が予め設定された閾値未満である場合、かご車２が存在する領域の過去の特定結果を採用する。これにより、制御部３２は、新たに取得した点群データに変化が少ない場合に、前回の法線ベクトルの算出結果、クラスタリングの結果、及びかご車２の位置の特定結果を用いて、把持点の決定及び回避対象の領域の決定を行うことができる。
【００６７】
上記した実施形態によると、距離センサ８は、物品３が積載されたかご車２が置かれる範囲を含む所定範囲から、距離センサ８との距離を示す点が配列された点群データを取得する。情報処理装置６の制御部３２は、点群データ上の少なくとも３点以上の組合せ毎に法線ベクトルを算出する。情報処理装置６の制御部３２は、法線ベクトルに基づいて、距離センサ８に対するかご車２の相対的な位置を検出する。さらに、制御部３２は、法線ベクトルに基づき、ロボットアーム５の把持機構２１により物品３を把持する把持点を決定する。またさらに、制御部３２は、かご車２の位置を避けて把持機構２１を把持点に移動させる動作計画を生成し、ロボットアームに供給する。これにより、かご車２の形状にバラつきがある場合であっても、情報処理装置６は、ロボットアーム５がかご車２に接触する事を避ける事が出来る。
【００６８】
また、情報処理装置６は、上記のように距離センサ８に対するかご車２の相対的な位置を検出することにより、かご車２の寸法を算出する構成であってもよい。さらに、かご車の種類毎にかご車２の立体的な形状を示すデータ（形状データ）が対応付けられたデータベース（かご車データベース）を参照し、かご車２の寸法に基づいてかご車の種類を認識する構成であってもよい。なお、かご車の種類毎にかご車２の立体的な形状を示すデータが対応付けられたデータベースは、例えば情報処理装置６のメモリ３４または、ネットワーク９を介して接続された他の機器に記憶される。また、かご車データベースは、かご車の種類毎に底面の模様、外周枠１２及び天枠１３の色、留め金の位置、中間棚の位置、及び素材などを示す情報がさらに対応付けられていてもよい。
【００６９】
情報処理装置６の制御部３２は、かご車２の種類を認識した場合、認識したかご車の種類に対応した形状データをかご車データベースから取得する。制御部３２は、形状データに基づき、点群データ上に配置可能なかご車モデルを生成する。制御部３２は、ステップＳ２５でかご車２または物品３が存在すると推定される領域にかご車モデルを配置し、かご車モデルに相当する領域をかご車領域として認識する構成であってもよい。このように、制御部３２は、かご車２の種類を認識することにより、既知のかご車２の形状データに基づく領域を回避対象として設定することができる。これにより、情報処理装置６は、より高い精度で回避対象を設定することができる。
【００７０】
また、かご車データベースにかご車２の外周枠１２及び天枠１３の色が対応付けられていた場合、制御部３２は、距離センサ８から画像データを取得し、取得した画像データと、認識した種類のかご車の外周枠１２及び天枠１３の色とに基づいて、点群データ上におけるかご車２が存在する領域を特定することができる。
【００７１】
また、情報処理装置６は、距離センサ８から画像データ及び点群データを受信する毎に、かご車２が空になったか否かを判定する構成であってもよい。また、情報処理装置６は、かご車２が空になった場合に、距離センサ８が傾いているか否かなどを判定する構成であってもよい。
【００７２】
図８は、情報処理装置６の他の動作について説明する為のフローチャートである。
【００７３】
情報処理装置６の制御部３２は、距離センサ８から点群データ及び画像データが供給されるのを待つ（ステップＳ３１）。
【００７４】
制御部３２は、距離センサ８から点群データ及び画像データが供給された場合（ステップＳ３１、ＹＥＳ）、かご車２が空になったか否か判断する（ステップＳ３２）。
【００７５】
制御部３２は、点群データからかご車２の天枠１３の寸法を算出することにより、かご車の種類が特定できている場合、上記のかご車データベースに基づいてかご車２が空になったか否か判断してもよい。例えば、制御部３２は、かご車データベースが示す底面１１の高さと、点群データの底面１１または物品３の領域の高さとが一致した場合、かご車２が空になったと判断する。
【００７６】
例えば、図９に示されるように、底面１１に予めかご車の底面であることを示す底面パターン６１が付加されたかご車２がある。制御部３２は、画像データから底面パターン６１が検出された場合、かご車２が空になったと判断する。距離センサ８は、距離が遠くなる程分解能が低下するものの、このように所定のパターンの検出の可否に応じて、かご車２が空になったか否か判断することにより、距離センサ８の分解能の問題を解消することができる。
【００７７】
制御部３２は、ステップＳ３２でかご車２が空になっていないと判断した場合（ステップＳ３２、ＮＯ）、動作計画生成処理を行う（ステップＳ３３）。動作計画生成処理は、図４のステップＳ２２乃至ステップＳ３０の処理に相当する。即ち、制御部３２は、距離センサ８から供給された点群データに基づいて、かご車２の位置を認識し、物品３の位置を認識し、把持点を決定し、軌跡を決定し、動作計画を生成し、ロボットアーム５に送信する。
【００７８】
さらに、制御部３２は、ステップＳ３２でかご車２が空になっていると判断した場合（ステップＳ３２、ＹＥＳ）、距離センサ８の設置位置のキャリブレーションを行う。まず、制御部３２は、距離センサ８の設置位置が正常であるか否か判断する（ステップＳ３４）。制御部３２は、例えば、底面パターン６１が歪んでいる場合、底面パターン６１が画像データ上の予め設定された位置からずれている場合、距離センサ８の設置位置が正常ではないと判断する。
【００７９】
制御部３２は、距離センサ８の設置位置が正常ではないと判断した場合（ステップＳ３４、ＮＯ）、距離センサ８の傾き及びズレ量を算出する（ステップＳ３５）。具体的には、制御部３２は、画像データ上での底面パターンの歪みに基づき、距離センサ８のレンズの光軸の傾きを算出する。また、制御部３２は、底面パターン６１の画像データ上での位置に基づいて、距離センサ８のレンズの光軸と底面パターン（または底面パターンにおいて基準となる点）とのズレ量を算出する。
【００８０】
制御部３２は、算出した距離センサ８の傾き及びズレ量を操作端末７に通知し（ステップＳ３６）、ステップＳ３１の処理に移行する。即ち、制御部３２は、距離センサ８が傾いている、または設置位置がずれていることを示す警告を操作端末に通知する。
【００８１】
なお、底面パターン６１の代わりに、かご車２の距離センサ８により撮像可能な位置に、シールによって構成されたテストチャートが、上記の距離センサ８の傾き及びズレ量を算出に用いられる構成であってもよい。
【００８２】
また、距離センサ８は、画像データの所定範囲の明るさに基づいて、輝度調整を行う構成であってもよい。例えば、かご車２が設置される床の所定の位置に、所定の反射率のシールによってテストチャートを形成する。距離センサ８は、画像データ上でのテストチャートの明るさに基づき、輝度調整を行う。これにより、距離センサ８により取得する画像の明るさを安定させることができる。
【００８３】
（第２の実施形態）  
図１０は、第２の実施形態に係る仕分システム１Ａの概略的な構成例について説明する為の説明図である。第２の実施形態に係る仕分システム１Ａは、かご車２に識別用コード７１Ａが付与された点が第１の実施形態と異なる。第１の実施形態と同様の構成については、説明を省略する。
【００８４】
仕分システム１Ａは、ロボットアーム５、情報処理装置６、及び操作端末７を備える。また、仕分システム１は、距離センサ８をさらに備える。仕分システム１Ａにおいて用いられるかご車２Ａは、底面１１と、外周枠１２と、天枠１３と、識別用コード７１Ａを有する。
【００８５】
識別用コード７１Ａは、かご車２Ａの種類を示す情報である。識別用コード７１Ａは、例えば、かご車２Ａの種類を示す文字列である。識別用コード７１Ａは、例えば、かご車２Ａの種類に対応する識別番号に基づいて生成されたコード（二次元コード、バーコード、または他のコードなど）である。
【００８６】
識別用コード７１Ａは、かご車２Ａの、距離センサ８により読み取り可能な位置に付与される。識別用コード７１Ａは、例えば、図１０に示されるように、かご車２Ａの天枠１３に付与される。
【００８７】
情報処理装置６のメモリ３４は、かご車の種類毎にかご車２Ａの立体的な形状を示す形状データが対応付けられたかご車データベースを記憶する。例えば、識別用コード７１Ａが、かご車２Ａの種類を示す文字列である場合、かご車データベースは、形状データと文字列とが対応付けられて構成される。また、例えば、識別用コード７１Ａが、かご車２Ａの種類に対応する識別番号を示す構成である場合、かご車データベースは、形状データと識別番号とが対応付けられて構成される。
【００８８】
次に、第２の実施形態に係る情報処理装置６の動作について説明する。  
図１１は、情報処理装置６の動作について説明する為のフローチャートである。
【００８９】
情報処理装置６の制御部３２は、距離センサ８から点群データ及び画像データが供給されるのを待つ（ステップＳ４１）。
【００９０】
上記したように、距離センサ８は、ロボットアーム５により持ち上げられる物品３が積載されたかご車２Ａを含む領域の画像データをステレオカメラにより取得する。これにより、例えば図１２に示すような画像データ４１Ａを取得する。
【００９１】
図１２は、識別用コード７１Ａが付与されたかご車２Ａを距離センサ８が撮像した画像データ４１Ａの例を示す。図１２に示されるように、画像データ４１Ａには、かご車２Ａに付与された識別用コード７１Ａが写り込んでいる。
【００９２】
制御部３２は、画像データ４１Ａから識別用コード７１Ａを検出し、識別用コード７１Ａに基づいてかご車２Ａの種類を認識する（ステップＳ４２）。
【００９３】
例えば、識別用コード７１Ａが文字列として構成されている場合、制御部３２は、画像データ４１Ａに対して文字認識処理を行うことにより、識別用コード７１Ａを検出する。制御部３２は、認識した文字列に基づいてかご車データベースを参照することにより、かご車２Ａの種類を認識し、形状データを取得する。
【００９４】
また、識別用コード７１Ａが二次元コードまたはバーコードなどとして構成されている場合、制御部３２は、画像データ４１Ａからパターン認識により識別用コード７１Ａを抽出し、抽出した識別用コード７１Ａを復号することによって、識別番号を取得する。制御部３２は、取得した識別番号に基づいてかご車データベースを参照することにより、かご車２Ａの種類を認識し、形状データを取得する。
【００９５】
また、識別用コード７１Ａが二次元コードまたはバーコードなどとして構成されている場合、制御部３２は、画像データ４１Ａからパターン認識により識別用コード７１Ａを抽出し、抽出した識別用コード７１Ａを復号することによって、識別番号を取得する。制御部３２は、取得した識別番号に基づいてかご車データベースを参照することにより、かご車２Ａの種類を認識し、形状データを取得する。
【００９６】
また、制御部３２は、距離センサ８から供給された点群データにおける少なくとも３点以上の組合せ毎に法線を算出する（ステップＳ４３）。
【００９７】
制御部３２は、算出した法線（法線ベクトル）に基づいて、クラスタリングを行う（ステップＳ４４）。
【００９８】
制御部３２は、距離センサ８に対するかご車２Ａの相対的な位置を推定する（ステップＳ４５）。上記のように、点群データには、かご車２Ａが設置される床について距離情報が含まれていない。この為、制御部３２は、点群データにおいて距離情報が存在する箇所を、かご車２Ａまたは物品３が存在する領域であると推定する。
【００９９】
さらに、制御部３２は、ステップＳ４２で取得した形状データに基づいて、点群データ上に配置可能なかご車モデルを生成し、ステップＳ４５でかご車２Ａまたは物品３が存在すると推定された領域に配置する。これにより、制御部３２は、点群データ上において、物品３が存在する領域と、かご車が存在する領域とを特定する（ステップＳ４６）。即ち、制御部３２は、かご車２Ａと物品３とを点群データ上で分離することができる。
【０１００】
さらに、制御部３２は、ロボットアーム５の把持機構２１により物品３を把持する把持点を決定する（ステップＳ４７）。制御部３２は、物品３の領域から、高さが一定であり、且つ所定の形状（例えば矩形など）の領域を検出することにより、物品３を検出する。さらに、制御部３２は、検出した物品３の中から、次に把持する物品３を決定し、さらに決定した物品３のどの部分を把持機構２１により把持するかを決定し、把持点を決定する。例えば、制御部３２は、面積の大きな物品３を優先して把持するように把持点を決定する。
【０１０１】
また、制御部３２は、回避対象の領域を決定する（ステップＳ４８）。ロボットアーム５のアーム機構２２及び把持機構２１がかご車２Ａに接触し、破損することを避ける為に、制御部３２は、かご車２Ａの領域を回避対象の領域として決定する。さらに、制御部３２は、上記のステップＳ４７において把持対象から漏れた物品３が存在することが推定される領域を回避対象の領域として決定する。
【０１０２】
制御部３２は、ロボットアーム５の把持機構２１を、初期位置から、上記の回避対象を避けて把持点まで移動させる為の把持機構２１の軌跡を決定する（ステップＳ４９）。
【０１０３】
制御部３２は、上記の軌跡と把持点に基づき、ロボットアーム５を動作させる為の動作計画を生成し（ステップＳ５０）、動作計画をロボットアーム５に送信し（ステップＳ５１）、ステップＳ４１の処理に移行する。なお、情報処理装置６の制御部３２は、操作端末７から終了指示が供給された場合、ロボットアーム５に終了指示を供給し、処理を終了する。
【０１０４】
上記した実施形態によると、距離センサ８は、物品３が積載されたかご車２Ａが置かれる範囲を含む所定範囲から、距離センサ８との距離を示す点が配列された点群データを取得する。また、距離センサ８は、かご車２Ａの種類を示す識別用コード７１が写った画像データを取得する。
【０１０５】
情報処理装置６の制御部３２は、画像データ上の識別用コード７１に基づいて、かご車の種類を認識する。また、制御部３２は、点群データに基づいて、かご車２Ａ及び物品３が存在することが推定される領域を検出する。制御部３２は、かご車の種類とかご車の形状を示す形状データとが対応付けられたかご車データベースから、認識したかご車の種類に対応する形状データを取得する。制御部３２は、かご車２Ａ及び物品３が存在することが推定される領域に、形状データに基づき生成したかご車モデルを配置することにより、点群データ上においてかご車２Ａが存在する領域を特定する。制御部３２は、かご車２Ａが存在する領域を回避対象の領域として設定し、動作計画を生成する。これにより、かご車２Ａの形状にバラつきがある場合であっても、情報処理装置６は、ロボットアーム５がかご車２Ａに接触する事を避ける事が出来る。
【０１０６】
なお、上記の実施形態では、制御部３２は、点群データに基づいてかご車２Ａ及び物品３が存在する領域を推定し、この領域にかご車２Ａの種類に応じたかご車モデルを配置して、回避対象を決定する構成であると説明したがこの構成に限定されない。制御部３２は、画像データに基づいてかご車２Ａ及び物品３が存在する領域を推定し、この領域にかご車２Ａの種類に応じたかご車モデルを配置して、回避対象を決定する構成であってもよい。この場合、制御部３２は、かご車２Ａが設置されていない場合の画像データと、ステップＳ４１で受信した画像データとを比較することにより、かご車２Ａ及び物品３が存在する領域を推定する。即ち、制御部３２は、画像データを比較し、差分が存在する領域をかご車２Ａ及び物品３が存在する領域として推定する。
【０１０７】
また、上記の実施形態では、制御部３２は、識別用コード７１が写った画像に基づいて、識別用コード７１を検出し、かご車２Ａの種類を認識すると説明したが、この故末井に限定されない。かご車２Ａにかご車２Ａの種類を示す情報が格納されたＲＦＩＤが付与されている場合、制御部３２は、ＲＦＩＤを読み取るＲＦＩＤリーダによりかご車２Ａからかご車の種類を示す情報を取得し、かご車２Ａの種類を認識する構成であってもよい。
【０１０８】
（第３の実施形態）  
図１３は、第３の実施形態に係る仕分システム１Ｂの概略的な構成例について説明する為の説明図である。第３の実施形態に係る仕分システム１Ｂは、かご車２の寸法を測定し、寸法の測定結果に基づいてかご車２の種類を識別する点が第２の実施形態と異なる。第１及び第２の実施形態と同様の構成については、説明を省略する。
【０１０９】
仕分システム１Ｂは、ロボットアーム５、情報処理装置６、及び操作端末７を備える。また、仕分システム１は、距離センサ８及び一次元センサ８１Ｂをさらに備える。
【０１１０】
一次元センサ８１Ｂは、ある一点と測定対象との距離、即ち２点間の距離を測定する装置である。具体的には、一次元センサ８１Ｂは、自身と、測定対象である点（測距点）との距離を測定する装置である。一次元センサ８１Ｂは、測距点（または測距する方向）を水平方向に走査させつつ距離を測定する。一次元センサ８１Ｂは、ネットワーク９を介して測定結果を情報処理装置６に供給する。一次元センサ８１Ｂは、例えばレーザーレンジファインダーである。一次元センサ８１Ｂは、所定の高さからレーザを照射し、反射光が入射するまでの時間に基づいて、対象物までの距離を測定する。この場合、一次元センサ８１Ｂは、レーザが照射された点を測距点として、レーザの反射光を受光するセンサと測距点との距離を測定する。一次元センサ８１Ｂは、少なくとも複数の種類のかご車２の底面１１よりも高い位置で測定を行う。
【０１１１】
また、距離センサ８は、一次元センサ８１Ｂにおける測定結果において、変化が生じた場合に、撮像を行い、画像データ及び点群データを取得する構成であってもよい。即ち、一次元センサ８１Ｂは、ロボットアーム５の稼働領域にかご車２が進入したことを他の機器に通知することができる。
【０１１２】
次に、第３の実施形態に係る情報処理装置６の動作について説明する。  
図１４は、情報処理装置６の動作について説明する為のフローチャートである。
【０１１３】
情報処理装置６の制御部３２は、距離センサ８から点群データが供給され、且つ一次元センサ８１Ｂから測定結果が供給されるのを待つ（ステップＳ６１）。
【０１１４】
情報処理装置６の制御部３２は、一次元センサ８１Ｂから供給される測定結果に基づいて、かご車２の寸法を算出する（ステップＳ６２）。
【０１１５】
図１５は、一次元センサ８１Ｂからかご車２までの距離を測定する例について説明する為の説明図である。図１５における太線は、一次元センサ８１Ｂにより測距されたかご車２または物品３の表面形状に相当する。
【０１１６】
一次元センサ８１Ｂは、一次元センサ８１Ｂが配置されている基準点（ｘ０，ｙ０）を固定し、測距する方向を水平方向に走査させる。これにより、一次元センサ８１Ｂは、対象物であるかご車２の二辺と一次元センサ８１Ｂとの距離を測定し、測定結果を生成する。測定結果は、二次元状に配列された座標毎の基準点（ｘ０，ｙ０）との距離を示す情報である。
【０１１７】
図１５の例によると、一次元センサ８１Ｂは、一次元センサ８１Ｂから見たときのかご車２の前面の一方の端部に相当する第１の点（ｓｘ１，ｓｙ１）から、かご車２の前面の他方の端部に相当する第２の点（ｅｘ１，ｅｙ１）に亘って、基準点（ｘ０，ｙ０）との距離を測定する。また、一次元センサ８１Ｂは、一次元センサ８１Ｂから見たときのかご車２の側面の一方の端部に相当する第３の点（ｓｘ２，ｓｙ２）から、かご車２の側面の他方の端部、即ち第２の点（ｅｘ１，ｅｙ１）に亘って、基準点（ｘ０，ｙ０）との距離を測定する。このように、一次元センサ８１Ｂは、かご車２上の測距点を水平方向に走査させつつ距離を測定することにより、かご車２の側面の外側の形状を検出する。即ち、一次元センサ８１Ｂは、かご車２の外周枠１２の外側を水平方向に走査することにより、かご車２の外周枠１２の外側の形状を検出する。
【０１１８】
情報処理装置６の制御部３２は、かご車２が設置されていない時に一次元センサ８１Ｂから供給される測定結果と、ステップＳ６１で供給された測定結果とを比較し、差分が存在する点をかご車２が存在する点として認識する。一次元センサ８１Ｂの位置が固定であり且つ既知である場合、一次元センサ８１Ｂから供給される測定結果に基づいて、かご車２の二辺の位置及び形状を算出することができる。即ち、制御部３２は、第１の点（ｓｘ１，ｓｙ１）から第２の点（ｅｘ１，ｅｙ１）に亘る測定結果に基づいて、かご車２の前面の位置及び形状を算出する。また、制御部３２は、第３の点（ｓｘ２，ｓｙ２）から第２の点（ｅｘ１，ｅｙ１）に亘る測定結果に基づいて、かご車２の側面の位置及び形状を算出する。
【０１１９】
さらに、制御部３２は、第１の点（ｓｘ１，ｓｙ１）から第２の点（ｅｘ１，ｅｙ１）までの距離をかご車２の幅の寸法、第３の点（ｓｘ２，ｓｙ２）から第２の点（ｅｘ１，ｅｙ１）までの距離をかご車２の奥行の寸法としてそれぞれ算出する。
【０１２０】
制御部３２は、算出したかご車２の寸法に基づいて、かご車データベースを参照することにより、かご車２の種類を認識し、形状データを取得する（ステップＳ６３）。例えば、制御部３２は、ステップＳ６２で算出したかご車２の幅及び奥行が一致するかご車の種類をかご車データベースから抽出する。制御部３２は、ステップＳ６２で算出したかご車２の幅及び奥行と、かご車データベースの形状データに含まれるかご車の寸法とを比較することにより、寸法が一致するかご車の種類をかご車データベースから抽出する。
【０１２１】
また、制御部３２は、距離センサ８から供給された点群データにおける少なくとも３点以上の組合せ毎に法線を算出する（ステップＳ６４）。
【０１２２】
制御部３２は、算出した法線（法線ベクトル）に基づいて、クラスタリングを行う（ステップＳ６５）。
【０１２３】
制御部３２は、距離センサ８に対するかご車２の相対的な位置を推定する（ステップＳ６６）。上記のように、点群データには、かご車２が設置される床について距離情報が含まれていない。この為、制御部３２は、点群データにおいて距離情報が存在する箇所を、かご車２または物品３が存在する領域であると推定する。
【０１２４】
さらに、制御部３２は、ステップＳ６３で取得した形状データに基づいて、点群データ上に配置可能なかご車モデルを生成し、ステップＳ６６でかご車２または物品３が存在すると推定された領域に配置する。これにより、制御部３２は、点群データ上において、物品３が存在する領域と、かご車が存在する領域とを特定する（ステップＳ６７）。即ち、制御部３２は、かご車２と物品３とを点群データ上で分離することができる。
【０１２５】
さらに、制御部３２は、ロボットアーム５の把持機構２１により物品３を把持する把持点を決定する（ステップＳ６８）。制御部３２は、物品３の領域から、高さが一定であり、且つ所定の形状（例えば矩形など）の領域を検出することにより、物品３を検出する。さらに、制御部３２は、検出した物品３の中から、次に把持する物品３を決定し、さらに決定した物品３のどの部分を把持機構２１により把持するかを決定し、把持点を決定する。例えば、制御部３２は、面積の大きな物品３を優先して把持するように把持点を決定する。
【０１２６】
また、制御部３２は、回避対象の領域を決定する（ステップＳ６９）。ロボットアーム５のアーム機構２２及び把持機構２１がかご車２に接触し、破損することを避ける為に、制御部３２は、かご車２の領域を回避対象の領域として決定する。さらに、制御部３２は、上記のステップＳ６８において把持対象から漏れた物品３が存在することが推定される領域を回避対象の領域として決定する。
【０１２７】
制御部３２は、ロボットアーム５の把持機構２１を、初期位置から、上記の回避対象を避けて把持点まで移動させる為の把持機構２１の軌跡を決定する（ステップＳ７０）。
【０１２８】
制御部３２は、上記の軌跡と把持点に基づき、ロボットアーム５を動作させる為の動作計画を生成し（ステップＳ７１）、動作計画をロボットアーム５に送信し（ステップＳ７２）、ステップＳ６１の処理に移行する。なお、情報処理装置６の制御部３２は、操作端末７から終了指示が供給された場合、ロボットアーム５に終了指示を供給し、処理を終了する。
【０１２９】
上記した実施形態によると、距離センサ８は、物品３が積載されたかご車２Ａが置かれる範囲を含む所定範囲から、距離センサ８との距離を示す点が配列された点群データを取得する。また、一次元センサ８１Ｂは、測距する方向を水平方向に走査させつつ、かご車２までの距離を測定する。
【０１３０】
情報処理装置６の制御部３２は、一次元センサ８１Ｂによる測定結果に基づいて、かご車２の寸法を算出する。制御部３２は、かご車２の寸法と、形状データとかご車の種類とが対応付けられたかご車データベースを参照し、かご車の種類を特定し、特定したかご車の種類に対応する形状データを取得する。制御部３２は、かご車２及び物品３が存在することが推定される領域に、形状データに基づき生成したかご車モデルを配置することにより、点群データ上においてかご車２が存在する領域を特定する。制御部３２は、かご車２が存在する領域を回避対象の領域として設定し、動作計画を生成する。これにより、かご車２の形状にバラつきがある場合であっても、情報処理装置６は、ロボットアーム５がかご車２に接触する事を避ける事が出来る。この構成によると、かご車２に識別用コード７１を貼りつけることができない場合であっても、高い精度でかご車２の位置を特定することができる。
【０１３１】
なお、上記の実施形態では、制御部３２は、点群データに基づいてかご車２及び物品３が存在する領域を推定し、この領域にかご車２の種類に応じたかご車モデルを配置して、回避対象を決定する構成であると説明したがこの構成に限定されない。制御部３２は、測定結果に基づいてかご車２及び物品３が存在する三次元空間上の領域を推定し、この領域にかご車２の種類に応じたかご車モデルを配置して、回避対象を決定する構成であってもよい。この構成によると、ステップＳ６４乃至ステップＳ６６の処理を省略することができる。
【０１３２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３３】
１…仕分システム、２…かご車、５…ロボットアーム、６…情報処理装置、７…操作端末、８…距離センサ、９…ネットワーク、２１…把持機構、２２…アーム機構、２３…接触センサ、２４…コントローラ、３１…通信インタフェース、３２…制御部、３３…プロセッサ、３４…メモリ、８１Ｂ…一次元センサ。
【図１】
2019098431.tif 000003
【図２】
2019098431.tif 000004
【図３】
2019098431.tif 000005
【図４】
2019098431.tif 000006
【図５】
2019098431.tif 000007
【図６】
2019098431.tif 000008
【図７】
2019098431.tif 000009
【図８】
2019098431.tif 000010
【図９】
2019098431.tif 000011
【図１０】
2019098431.tif 000012
【図１１】
2019098431.tif 000013
【図１２】
2019098431.tif 000014
【図１３】
2019098431.tif 000015
【図１４】
2019098431.tif 000016
【図１５】
2019098431.tif 000017