(57)【要約】  本発明は、距離センサの計測範囲に複数の棚が存在する場合であっても、複数の棚の位置及び姿勢を認識可能な無人棚搬送車を提供する。  棚搬送システムは、棚(30)は複数の棚足を有し、棚搬送車(20)は、障害物までの距離を測定する距離センサ(220)と、距離センサ(220)の測定結果(601)から棚足の候補となる棚足候補を検出する棚足候補検出部 (602)と、棚足候補に棚を仮想的に配置した棚配置候補を複数算出する棚配置候補算出部(603)と、棚配置候補ごとに、棚足候補の超過数、及び棚足候補の不足数を算出する過不足算出部(604)と、超過数と不足数に基づいて複数の棚配置候補の中から棚配置を決定する棚配置決定部(605)と、棚配置に基づいて、棚搬送車(20)の移動先となる棚を決定する移動先決定部(607)とを備える。
2017022048.tif 000002
【特許請求の範囲】
【請求項１】
棚を搬送する棚搬送車を備える棚搬送システムであって、  前記棚は複数の棚足を有し、  前記棚搬送車は、  障害物までの距離を測定する距離センサと、  前記距離センサの測定結果から前記棚足の候補となる棚足候補を検出する棚足候補検出部と、  前記棚足候補検出部が検出した棚足候補に前記棚を仮想的に配置した棚配置候補を複数算出する棚配置候補算出部と、  前記棚配置候補算出部が算出した棚配置候補ごとに、前記配置された棚の棚足とならない棚足候補の数を示す棚足候補の超過数、及び前記配置された棚の棚足に対応する棚足候補が検出されていない位置の数を示す棚足候補の不足数を算出する過不足算出部と、  前記過不足算出部が算出した前記棚足候補の超過数、及び前記棚足候補の不足数とに基づいて複数の前記棚配置候補の中から棚配置を決定する棚配置決定部と、  前記棚配置決定部が決定した棚配置に基づいて、前記棚搬送車の移動先となる棚を決定する移動先決定部と、を備えることを特徴とする棚搬送システム。
【請求項２】
請求項１に記載の棚搬送システムであって、  前記過不足算出部は、  前記棚配置候補の前記配置された棚の棚足に対応する棚足候補が検出されていない位置を特定し、  前記特定した位置と前記距離センサとを結ぶ線上に測定結果が存在する場合、当該特定した位置を前記棚足候補の不足数から除外することを特徴とする棚搬送システム。
【請求項３】
請求項１に記載の棚搬送システムであって、  前記棚配置決定部は、  前記棚配置候補の前記棚足候補の超過数と前記棚足候補の不足数とに基づいて当該棚配置候補の評価を算出し、  前記棚配置候補の前記配置された棚の領域内に他の物体が存在する場合は当該棚配置候補の評価を下げ、  前記評価に基づいて複数の前記棚配置候補の中から棚配置を決定することを特徴とする棚搬送システム。
【請求項４】
請求項１に記載の棚搬送システムであって、  前記移動先決定部は、  前記棚配置決定部が決定した棚配置に含まれる各棚の搬送ルートを算出し、  各棚の前記搬送ルート上に当該棚以外の棚が存在する棚と、各棚の前記搬送ルート上に他の物体が計測されている棚とを、前記棚搬送車の移動先となる棚の候補から除外することを特徴とする棚搬送システム。
【請求項５】
請求項１に記載の棚搬送システムであって、  前記棚搬送車を管理する棚搬送車管理装置をさらに備え、  前記棚搬送車は、前記移動先決定部が前記移動先となる棚を決定した場合、当該移動先となる棚及び前記棚配置決定部が決定した棚配置を前記棚搬送車管理装置に送信し、  前記棚搬送車管理装置は、前記移動先となる棚の搬送先を、受信した棚配置における棚から所定範囲内の位置に決定することを特徴とする棚搬送システム。
【請求項６】
請求項１に記載の棚搬送システムであって、  前記棚の識別情報と前記棚の位置情報とを対応付けて管理し、前記棚搬送車を管理する棚搬送車管理装置をさらに備え、  前記棚は、当該棚の識別情報を前記棚搬送車に取得させる棚識別情報提供部を有し、  前記棚搬送車は、  前記移動先決定部が決定した移動先となる棚の棚足の間に潜り込み、前記潜り込んだ棚の棚識別情報提供部から当該棚の識別情報を取得し、  前記取得した棚の識別情報に対応する位置情報によって自身の位置情報を認識することを特徴とする棚搬送システム。
【請求項７】
請求項６に記載の棚搬送システムであって、  他の棚より搬送頻度が低いランドマーク棚があり、  前記ランドマーク棚の棚足には、再帰性反射マーカが取り付けられ、  前記距離センサは、光を照射し、前記障害物から反射された光を受光することによって前記障害物までの距離を測定し、  前記棚足候補検出部は、前記測定結果に含まれる反射強度に基づいて、前記ランドマーク棚の棚足を他の棚の棚足と区別し、  前記移動先決定部は、前記棚配置決定部が決定した棚配置に前記ランドマーク棚が含まれる場合、当該ランドマーク棚を他の棚より優先して前記移動先となる棚として決定することを特徴とする棚搬送システム。
【請求項８】
複数の棚足を有する棚を搬送する棚搬送車であって、  障害物までの距離を測定する距離センサと、  前記距離センサの測定結果から前記棚足の候補となる棚足候補を検出する棚足候補検出部と、  前記棚足候補検出部が検出した棚足候補に前記棚を仮想的に配置した棚配置候補を複数算出する棚配置候補算出部と、  前記棚配置候補算出部が算出した棚配置候補ごとに、前記配置された棚の棚足とならない棚足候補の数を示す棚足候補の超過数、及び前記配置された棚の棚足に対応する棚足候補が検出されていない位置の数を示す棚足候補の不足数を算出する過不足算出部と、  前記過不足算出部が算出した前記棚足候補の超過数、及び前記棚足候補の不足数とに基づいて複数の前記棚配置候補の中から棚配置を決定する棚配置決定部と、  前記棚配置決定部が決定した棚配置に基づいて、前記棚搬送車の移動先となる棚を決定する移動先決定部と、を備えることを特徴とする棚搬送車。
【請求項９】
プロセッサ及び記憶領域を有する棚搬送車における複数の棚足を有する棚を搬送する棚搬送方法であって、  前記棚搬送車は、障害物までの距離を測定する距離センサを有し、  前記棚搬送方法は、  前記プロセッサが、前記距離センサの測定結果から前記棚足の候補となる棚足候補を検出し、  前記プロセッサが、前記検出した棚足候補に前記棚を仮想的に配置した棚配置候補を複数算出し、  前記プロセッサが、前記算出した棚配置候補ごとに、前記配置された棚の棚足とならない棚足候補の数を示す棚足候補の超過数、及び前記配置された棚の棚足に対応する棚足候補が検出されていない位置の数を示す棚足候補の不足数を算出し、  前記プロセッサが、前記算出した前記棚足候補の超過数、及び前記棚足候補の不足数とに基づいて複数の前記棚配置候補の中から棚配置を決定する  前記プロセッサが、前記決定した棚配置に基づいて、前記棚搬送車の移動先となる棚を決定することを特徴とする棚搬送方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、複数の棚足を有する棚を搬送する棚搬送車を備える棚搬送システムに関する。
【背景技術】
【０００２】  近年、多様化する消費者ニーズに柔軟に対応するため、通信販売倉庫又は多品種少量生産工場のような多様な物品を取り扱う倉庫又は工場等が増えてきており、倉庫又は工場等での作業の効率化及び省人化が求められている。【０００３】  このような作業を自動化するために、物品が格納された棚を棚搬送車が搬送する技術がある。この技術に関連して、特表２００９−５３９７２７号公報（特許文献１）、特開２０１４−８９７４０号公報（特許文献２）、及び特開２００２−１８２７４４号公報（特許文献３）がある。【０００４】  特許文献１の公報には、「在庫品目を輸送するためのシステムは、在庫品目を貯蔵し得る在庫ホルダと、移動式駆動ユニットとを含む。移動式駆動ユニットは、移動式駆動ユニットに連結され且つ移動式駆動ユニットによって支持される少なくとも１つの在庫ホルダと共に第一地点に移動し得る。移動式駆動ユニットは、追加的に、在庫ホルダの位置を決定し、在庫ホルダの場所と第一地点との間の差を計算し得る。移動式駆動ユニットは、次に、差が所定の公差よりも大きいか否かを決定し得る。差が所定の公差よりも大きいという決定に応答して、移動式駆動ユニットは、在庫ホルダの場所に基づき第二地点に移動し、在庫ホルダと結合し、且つ、移動式駆動ユニット及び在庫ホルダを第一地点に移動し得る。」と記載されている（要約参照）。【０００５】  特許文献２の公報には、「予め設定された環境地図における所定領域の形状情報と、環境地図上の所定領域の属性とを対にして複数記憶し、環境地図と記憶部に記憶した所定領域を比較して所定領域に対応する属性を読み出し、計測箇所における属性に応じて、環境地図を更新する。」と記載されている（要約参照）。【０００６】  特許文献３の公報には、「この無人棚搬送車は、脚部を有するパレットの脚部間に荷台１を低くして進入し、荷台を上昇させてパレットを担持して搬送する機能を備えている。パレットへの進入時には、レーザ光を走査して距離と角度を検出するアプローチセンサでパレットの両脚部までの距離を検知し、パレットの中心線に対する傾きと中心線までの距離を演算してパレットの中心線に無人棚搬送車の中心線が一致するように誘導する。そして、パレットに進入後は車体の側面に設けたパレットの脚部までの間隙を検知する側面センサによって誘導する。」と記載されている（要約参照）。【０００７】  また、無人棚搬送車が他の無人棚搬送車の位置等を認識する技術として、特開２０１１−１５０４４３号公報（特許文献４）がある。特許文献４の公報には、「第１のロボットは、物体の反射光強度を計測する計測部と、計測部により得られた計測結果を解析する演算部と、第１のロボットを移動させる駆動部と、を備える。第２のロボットは再帰性反射特性を有する複数のマーカを備え、第１のロボットの演算部は、計測部の計測結果に基づき第２のロボットの複数の前記マーカの位置を算出し、算出の結果に基づき第２のロボットの位置および姿勢を認識し、第２のロボットの位置および姿勢の認識の結果に基づき第１のロボットを移動させるためのパラメータを算出し、第１のロボットの駆動部は、パラメータに基づき第１のロボットを移動させる。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００９−５３９７２７号公報
【特許文献２】特開２０１４−８９７４０号公報
【特許文献３】特開２００２−１８２７４４号公報
【特許文献４】特開２０１１−１５０４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】  無人棚搬送車を有するシステムの導入時には、物品が格納された棚を所定の場所に整列させる必要がある。特許文献１のシステムでは、無人棚搬送車は棚を搬送するためには棚の位置を把握しなければならない。しかし、整列される前の棚は無造作に置かれており、無人棚搬送車がその位置を把握できず、人手で棚を整列しなければならなかった。【００１０】  また、無人棚搬送車は、自身の位置を認識する機能を有しており、認識した自身の位置に基づいて、無人棚搬送車を管理する無人棚搬送車管理装置によって設定された経路上を移動する。特許文献１では、無人棚搬送車は、床面のマーカーを読み取ることによって自身の位置を認識し、特許文献２では、無人棚搬送車は、環境地図と距離センサの計測結果とを照合することによって、自身の位置を認識する。しかしながら、いずれの方法でも、無人棚搬送車は、自身の位置の認識に失敗して、自身の位置を見失う場合がある。例えば、特許文献１の方法では、無人棚搬送車が、タイヤのスリップ等で経路から外れて移動すると、マーカーを読み取ることができずに、自身の位置を見失う。また、特許文献２の方法では、無人棚搬送車は、他の無人棚搬送車に囲まれた場合、距離センサの計測結果が環境地図と一致せず、自身の位置を見失う。このように、無人棚搬送車が自身の位置を失った場合、人手で無人棚搬送車を所定の位置に戻さなければ、無人棚搬送車は自身の位置を再度認識できない。【００１１】  システムの導入時に整列される前の棚の絶対位置を把握できない場合であっても、無人棚搬送車は、自身からの棚までの相対的な位置及び姿勢を認識することによって、当該棚に潜り込み、当該棚を搬送できる。また、無人棚搬送車は、自身の位置を見失った場合、自身からの棚までの相対的な位置及び姿勢を認識して、当該棚に潜り込む。この場合、無人棚搬送車が棚に潜り込んだ場合に、当該棚の識別情報（例えば、棚の下方に貼られたバーコードなど）を読み取ることができる。無人棚搬送車は、読み取った棚の識別情報を棚の位置を把握している無人棚搬送車管理装置に送信し、無人棚搬送車管理装置から当該棚の位置を通知してもらうことによって、自身の位置を認識できる。このように、無人棚搬送車が棚の相対的な位置及び姿勢を認識することが重要となる。【００１２】  特許文献３では、距離センサの計測結果からパレットの中心線を検出し、検出したパレットの中心線に潜り込む無人棚搬送車が開示されているが、距離センサの計測範囲にパレットが一つしか存在しないことが前提となっており、距離センサの計測範囲に複数のパレットが存在する場合には誤認識が生じる。【００１３】  また、特許文献４では、物体に連続的な面が存在することが前提となっている。棚は、無人棚搬送車が棚に潜り込みが可能である場合、無人棚搬送車の距離センサが棚の足しか計測できないので、特許文献４に開示された方法を適用できない。【００１４】  本発明は、距離センサの計測範囲に複数の棚が存在する場合であっても複数の棚の位置及び姿勢を認識可能な無人棚搬送車を提供することを目的とする。
【課題を解決するための手段】
【００１５】  上記課題を解決するために、棚を搬送する棚搬送車を備える棚搬送システムであって、前記棚は複数の棚足を有し、前記棚搬送車は、障害物までの距離を測定する距離センサと、前記距離センサの測定結果から前記棚足の候補となる棚足候補を検出する棚足候補検出部と、前記棚足候補検出部が検出した棚足候補に前記棚を仮想的に配置した棚配置候補を複数算出する棚配置候補算出部と、前記棚配置候補算出部が算出した棚配置候補ごとに、前記配置された棚の棚足とならない棚足候補の数を示す棚足候補の超過数、及び前記配置された棚の棚足に対応する棚足候補が検出されていない位置の数を示す棚足候補の不足数を算出する過不足算出部と、前記過不足算出部が算出した前記棚足候補の超過数、及び前記棚足候補の不足数とに基づいて複数の前記棚配置候補の中から棚配置を決定する棚配置決定部と、前記棚配置決定部が決定した棚配置に基づいて、前記棚搬送車の移動先となる棚を決定する移動先決定部と、を備えることを特徴とする。
【発明の効果】
【００１６】  本発明によれば、距離センサの計測範囲に複数の棚が存在する場合であっても複数の棚の位置及び姿勢を認識可能な無人棚搬送車を提供することを目的とする。【００１７】  上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。また、これより、棚足候補の超過数と不足数とを纏めて過不足と表現することとする。
【図面の簡単な説明】
【００１８】
【図１】本実施例の搬送システムの構成図である。
【図２】本実施例の搬送システムが適用された倉庫の説明図である。
【図３】本実施例の棚搬送車の構成図である。
【図４】本実施例のコントローラのハードウェア構成図である。
【図５】本実施例の棚モデルデータの説明図である。
【図６】本実施例の潜り込み棚決定処理のフローチャートである。
【図７】本実施例の距離センサによる計測結果の説明図である。
【図８Ａ】本実施例の連続部分の抽出処理の説明図である
【図８Ｂ】本実施例の計測結果から抽出された連続部分の説明図である。
【図９Ａ】本実施例の連続部分に二つ又は三つの棚足候補が含まれる場合の棚足候補の配置位置を算出する処理の説明図である。
【図９Ｂ】本実施例の連続部分に二つ又は三つの棚足候補が含まれる場合の棚足候補の配置位置を算出する処理の説明図である。
【図９Ｃ】本実施例の計測結果から抽出された棚足候補の説明図である。
【図１０Ａ】本実施例の棚足距離Ｐ１の棚辺候補として抽出された棚足候補の組み合わせの説明図である。
【図１０Ｂ】本実施例の棚足距離Ｐ２の棚辺候補として抽出された棚足候補の組み合わせの説明図である。
【図１１Ａ】本実施例の基点棚足候補を基点とする棚辺の説明図である。
【図１１Ｂ】本実施例の基点棚足候補を基点とする棚辺の説明図である。
【図１１Ｃ】本実施例の基点棚足候補を基点とする棚辺の説明図である。
【図１１Ｄ】本実施例の基点棚足候補を基点とする棚辺の説明図である。
【図１２】本実施例の棚が各基点棚足候補に仮想的に配置された状態の説明図である。
【図１３Ａ】本実施例の整理後の基点棚足候補を基点とする棚辺の説明図である。
【図１３Ｂ】本実施例の整理後の基点棚足候補を基点とする棚辺の説明図である。
【図１３Ｃ】本実施例の整理後の基点棚足候補を基点とする棚辺の説明図である。
【図１３Ｄ】本実施例の整理後の基点棚足候補を基点とする棚辺の説明図である。
【図１４Ａ】本実施例の第１棚配置候補の説明図である。
【図１４Ｂ】本実施例の第２棚配置候補の説明図である。
【図１４Ｃ】本実施例の第３棚配置候補の説明図である。
【図１５Ａ】本実施例の第１棚配置候補の過不足の算出の説明図である。
【図１５Ｂ】本実施例の第２棚配置候補の過不足の算出の説明図である。
【図１５Ｃ】本実施例の第３棚配置候補の過不足の算出の説明図である。
【図１６Ａ】本実施例の第１棚配置候補のオクルージョンを考慮した過不足の算出の説明図である。
【図１６Ｂ】本実施例の第２棚配置候補のオクルージョンを考慮した過不足の算出の説明図である。
【図１６Ｃ】本実施例の第３棚配置候補のオクルージョンを考慮した過不足の算出の説明図である。
【図１７Ａ】本実施例の第２棚配置候補を評価する際の棚に干渉する棚足候補の数を考慮した場合の説明図である。
【図１７Ｂ】本実施例の第３棚配置候補を評価する際の棚に干渉する棚足候補の数を考慮した場合の説明図である。
【発明を実施するための形態】
【００１９】  図１は、本実施例の搬送システムの構成図である。
【００２０】  搬送システムは、棚搬送車管理装置１０及び少なくとも一つの棚搬送車２０を有する。棚搬送車管理装置１０と棚搬送車２０とは無線で接続される。搬送管理装置１０は、棚搬送車２０が搬送する棚３０を決定し、棚搬送車２０の現在位置から棚３０までの経路と、棚３０から搬送先までの経路とを算出し、これらの経路を含む搬送計画を棚搬送車２０に送信する。棚搬送車２０は、受信した搬送計画に基づいて移動し、棚３０を搬送先まで搬送する。
【００２１】  棚搬送車２０は、棚３０が整列される前又は自身の位置を見失った場合等、距離センサ２２０（図３参照）の計測結果を用いて、潜り込む棚３０を決定し、決定した棚３０に潜りこむ。棚３０が整列される前には、棚搬送車管理装置１０が棚３０の位置を把握していないが、棚搬送車２０は、潜り込む棚３０を決定でき、当該棚３０を所定の位置に搬送できる。また、棚搬送車２０が自身の位置を見失った場合、棚３０の棚足が設けられた面には、棚３０の識別情報が印刷されたバーコード等が貼り付けられており、棚３０に潜り込んだ棚搬送車２０は棚３０の識別情報を読み取り、読み取った棚３０の識別情報を棚搬送車管理装置に送信する。棚搬送車管理装置１０は、棚３０の位置を把握しているため、受信した棚３０の識別情報に対応する位置情報を棚搬送車２０に送信する。これによって、棚搬送車２０は、棚３０に潜り込むことによって、自身の位置を認識することができる。
【００２２】  図２は、本実施例の搬送システムが適用された倉庫の説明図である。
【００２３】  図２では、複数の棚３０Ａ〜棚３０Ｅ（総称する場合には、棚３０と記載する）が整列される前の状態を示し、一箇所に複数の棚３０が無造作に配置されている。棚３０の底面には四つの棚足が設けられる。棚搬送車２０は、距離センサ２２０の計測結果に基づいて潜り込む棚３０を決定し、当該棚３０の棚足の間から棚３０に潜り込み、棚３０を持ち上げて、移動することによって、棚３０を搬送する。これによって、一箇所に無造作に配置された棚３０を整列させることができる。
【００２４】  図３は、本実施例の棚搬送車２０の構成図であり、左図が棚搬送車２０の外見図であり、右図が棚搬送車２０の内部構造の説明図である。なお、右図は、棚搬送車２０を進行方向と逆方向から棚搬送車２０の内部を見た図である。
【００２５】  棚搬送車２０は、棚３０の下に潜り込み、荷役部２０１を動作させることで、棚３０を持ち上げる。荷役部２０１は、棚搬送車２０の上部に位置し、棚３０を持ち上げるように動作する機構であり、モータ、モータ制御コントローラ、回転移動を鉛直上下方向移動に変換するギアとシャフト、モータを制御するコントローラ、上板によって構成される。
【００２６】  荷役部２０１は、電源２０４及びコントローラ２０６と繋がっており、コントローラ２０６からの指令に基づき、自身のモータを制御し、上板を上下させる。上板以外の各構成機器は複数存在しても構わないが、上板を水平に保つため、複数のモータには同期をとりながら同一の動きをさせることが好ましい。
【００２７】  棚搬送車２０が棚３０を持ち上げる際、まず、コントローラ２０６は駆動部２０３を制御し、棚搬送車２０を棚３０の下に潜り込ませる。この状態で、コントローラ２０６は、荷役部２０１にモータを制御し上板を上昇させるように指示を出す。荷役部２０１は、指示通りに上板を徐々に押し上げていく。すると、荷役部２０１の上板の表面は、棚３０の底である被接触面の高さに到達し、接触する。荷役部２０１の上板の表面は、棚３０の被接触面と接触することから、接触面２０７と呼ぶこととする。さらに、荷役部２０１の上板を上昇させていくと、棚３０の足が地面から離れ、棚３０は持ち上がった状態となる。つまり、棚搬送車２０は荷役部２０１を用いて棚３０を積載している状態となる。
【００２８】  棚搬送車２０が棚３０を持っている状態から棚３０を設置する際、まず、コントローラ２０６は駆動部２０３を制御し、棚３０を設置すべき位置まで棚搬送車２０を移動させる。その位置に達した後、コントローラ２０６は、荷役部２０１にモータを制御し上板を下降させるように指示を出す。荷役部２０１は、指示通りに上板を徐々に下降させていくと、同時に棚３０も下降していく。やがて、棚３０の足が地面に到達し、接触する。さらに、荷役部２０１の上板を下降させていくと、棚搬送車２０の接触面２０７と棚３０の被接触面１０３とが離れ、棚３０の設置が完了する。
【００２９】  本実施例における棚搬送車２０は、駆動部２０３を動作させることで、自身を移動させる。駆動部２０３は、モータ、モータ制御コントローラ、車輪などによって構成される。さらには、車輪の回転を計測するロータリエンコーダを搭載していても良い。
【００３０】  棚搬送車２０の２次元的な移動を実現するためには、独立して動作する２つのモータと３つの車輪が最低限必要となる。例えば、棚搬送車２０の左右に一つずつ車輪を取り付け、それらを独立に制御するためのモータ及びモータ制御コントローラを搭載し、さらに１つのキャスターを取り付けることが考えられる。すると、棚搬送車２０は、左右の車輪の回転速度を同じにすると直進し、左右の車輪の回転方向を逆転させるとその場で旋回する。駆動部２０３は、電源２０４及びコントローラ２０６と繋がっており、コントローラ２０６からの指令に基づき、自身のモータを制御し、棚搬送車２０を移動させる。
【００３１】  電源２０４はバッテリとして実装される。棚搬送車２０の荷役部２０１、駆動部２０３、コントローラ２０６、棚認識用センサ２０９、距離センサ２２０に電力を供給する。本実施例では、棚認識用センサ２０９と距離センサ２２０については、コントローラ２０６を介して間接的に電力を供給しているが、各機器に対する電力の供給を直接的とするか間接的とするかについては、その機器の実装に基づき決めて良い。
【００３２】  コントローラ２０６は、プロセッサ４２０、メモリ４３０、二次記憶装置４４０、外部インタフェース（ＩＦ）４５０、及び無線インタフェース（ＩＦ）４６０の組み合わせとして実装される。二次記憶装置４４０はＨＤＤやフラッシュメモリなど、無線ＩＦ４６０が備える無線通信機能は無線ＬＡＮなどとして実装される。コントローラ２０６は、電源２０４からの電力の供給を受け、棚搬送車２０内部の他の機器、つまり、荷役部２０１、駆動部２０３、棚認識用センサ２０９、距離センサ２２０を制御する。また、コントローラ２０６は、無線通信機能により、棚搬送車管理装置１０と通信し、動作指令を受信し、動作状況報告を行う。
【００３３】  コントローラ２０６は、自身の位置を見失った場合を除き、棚搬送車管理装置１０から受信した移動経路に沿った移動を行うため、自身の位置姿勢を算出し、自身の位置姿勢の算出結果と移動経路に基づき棚搬送車２０の姿勢と目標となる移動方向との差分を算出し、差分の算出結果に基づき駆動部２０３の直近の動作パラメータを決定してもよい。自身の位置姿勢を算出する方法としては、距離センサ２２０が取得した計測結果と予めコントローラ２０６に記憶させている地図とを照合する方法などが考えられる。
【００３４】  ここで、駆動部２０３の構成要素であるロータリエンコーダの計測結果を取得し、自己位置認識あるいは動作パラメータの決定に利用しても良い。また、棚３０の識別情報の確認、棚３０との相対位置姿勢ずれの確認を行うため、棚認識用センサ２０９が取得した計測結果に基づき、棚３０の棚識別情報を認識し、棚搬送車２０と棚３０との相対位置姿勢ずれを算出する。
【００３５】  棚認識用センサ２０９は、棚搬送車２０が棚３０の下に潜り込んだ際に、棚３０の底面の当該棚３０の識別情報を示す棚識別情報提供部となる棚底マーカを計測するために、鉛直上方向を計測可能なように搭載される。棚認識用センサ２０９は、棚底マーカの特徴に合わせて選定される。例えば、棚底マーカが２次元バーコードであれば、棚認識用センサ２０９は、グレーカメラ、カラーカメラなどとして実装され、棚３０の正面方向も知ることができる。棚認識用センサ２０９は、コントローラ２０６と繋がり、コントローラ２０６からの指令に基づき、計測を行い、計測結果をコントローラ２０６へと送信する。また、棚３０の棚識別情報提供部がＩＣカード等である場合、棚認識用センサ２０９は、当該ＩＣカードの読取装置となる。
【００３６】  本実施例では、例えば、空間全体の形状地図を教示し、棚搬送車２０が計測する空間内の部分形状が形状地図のどこに当てはまるかを算出することで自身の位置と姿勢を認識する方法を採用するため、距離センサ２２０は水平面上の障害物を計測するように取り付けられたレーザ距離センサやソナーなどとして実装される。図３では、棚搬送車２０の正面の中央付近に距離センサ２２０が取り付けられているが、例えば、棚搬送車２０の正面の右端又は左端に取り付けられてもよい。距離センサ２２０の計測範囲が２７０度以上であれば、距離センサ２２０は、棚３０の下に潜り込んだ場合に、当該棚３０の三つの棚足を検出することができるので、棚搬送車２０を棚３０の底面の中央付近に正確に潜り込ませることができる。
【００３７】  距離センサ２２０は、コントローラ２０６と繋がり、コントローラ２０６からの指令に基づき、計測を行い、計測結果をコントローラ２０６へと送信する。
【００３８】  図４は、本実施例のコントローラ２０６のハードウェア構成図である。
【００３９】  コントローラ２０６は、プロセッサ４２０、メモリ４３０、二次記憶装置４４０、外部インタフェース（ＩＦ）４５０、及び無線インタフェース（ＩＦ）４６０を有する。これらは、バス４１０を介して互いに接続される。
【００４０】  プロセッサ４２０は、各種演算処理を実行する。二次記憶装置４４０は非揮発性の非一時的な記憶媒体であり、各種プログラム及び各種データが記憶される。メモリ４３０は揮発性の一時的な記憶媒体であり、メモリ４３０には、二次記憶装置４４０に記憶された各種プログラム及び各種データがロードされ、プロセッサ４２０がメモリ４３０にロードされた各種プログラムを実行し、メモリ４３０にロードされた各種データを読み書きする。
【００４１】  外部ＩＦ４５０は、駆動部２０３、電源２０４、棚認識用センサ２０９、及び距離センサ２２０に接続されるインタフェースである。
【００４２】  無線ＩＦ４６０は、棚搬送車管理装置１０と無線で接続するためのインタフェースである。
【００４３】  なお、棚搬送車管理装置１０のハードウェア構成は、外部ＩＦ４５０を有さない点以外、図４と同じであるので、説明を省略する。
【００４４】  図５は、本実施例の棚モデルデータ５００の説明図である。
【００４５】  棚モデルデータ５００は、棚搬送車２０のコントローラ２０６のメモリ４３０に記憶され、距離センサ２２０の計測結果から棚足候補を抽出するための棚足に関するデータ、及び抽出された棚足候補に基づいて棚３０の配置を決定するための棚足間の距離に関するデータが登録される。
【００４６】  棚モデルデータ５００は、棚種別ＩＤ５０１、棚足距離５０２、及び棚足モデル５０３を含む。
【００４７】  棚種別ＩＤ５０１には、倉庫等に存在する棚３０の種別の識別子が登録される。なお、棚足間の距離が同じ棚３０は同じ種別に属し、棚足間の距離が異なる棚３０は異なる種別に属する。例えば、図２では、底面が長方形の棚３０Ａの種別「Ａ」と、底面が正方形の棚３０Ｂ〜３０Ｅの種別「Ｂ」とがある。
【００４８】  棚足距離５０２には、棚足間の距離が登録される。図２のように、棚３０の底面の頂点に棚足が設けられる場合、棚足間の距離は、棚３０の辺の長さを示すことになるので、棚足距離５０２には棚３０の辺の長さが登録されてもよい。底面が長方形の種別「Ａ」の棚足距離５０２には、Ｐ１及びＰ２が登録され、底面が正方形の種別「Ｂ」の棚足距離５０２には、Ｐ１及びＰ１が登録される。
【００４９】  棚足モデル５０３には、棚足の形状を特定可能なデータ、一つの棚足の二つの端点の最長距離（Ｌ０）、及びオフセット（δ）が登録される。棚足の形状を特定可能なデータとは、棚足の形状の種別（棚足が円柱であるか直方体であるか等）を示す情報、棚足が円柱である場合当該円柱の半径、及び棚足が直方体である場合短辺の長さと長辺の長さとが登録される。また、最長距離（Ｌ０）は、棚足が円柱である場合円柱の直径がＬ０となり、棚足が直方体である場合対角線の長さがＬ０となる。オフセット（δ）の詳細は図９Ａ〜図９Ｃで説明する。
【００５０】  なお、棚足の種別で棚足のＬ０が異なる場合、棚足の種別ごとに棚足モデル５０３が登録されてもよい。
【００５１】  図６は、本実施例の潜り込み棚決定処理のフローチャートである。
【００５２】  潜り込み棚決定処理は、棚搬送車２０が潜り込む棚３０を決定する処理であり、例えば、棚３０が整列される前に棚３０を整列する場合、又は棚搬送車２０が自身の位置を見失った場合に実行される。潜り込み棚決定処理に対応するプログラムが棚搬送車２０のコントローラ２０６のメモリ４３０に記憶され、プロセッサ４２０が当該プログラムを実行することによって、潜り込み棚決定処理を実行する。
【００５３】  まず、棚搬送車２０のコントローラ２０６は距離センサ２２０による計測を開始し、コントローラ２０６のプロセッサ４２０は、距離センサ２２０から計測結果を取得する（６０１）。距離センサ２２０の計測結果の詳細は図７で説明する。
【００５４】  次に、プロセッサ４２０はステップ６０１の処理で取得した計測結果から連続部分を抽出し、棚モデルデータ５００に含まれる棚足モデル５０３を参照し、抽出した連続部分から棚足候補となる部分を抽出する（６０２）。連続部分の抽出処理の詳細は図８Ａ及び図８Ｂで説明する。また、棚足候補の抽出処理の詳細は、図９Ａ〜図９Ｃで説明する。
【００５５】  次に、プロセッサ４２０は、棚モデルデータ５００の棚足距離を参照し、ステップ６０２の処理で抽出された棚足候補から棚足距離を満たす棚足候補の組み合わせを抽出し、抽出した棚足候補の二つの組み合わせの基点となる基点棚足候補を抽出し、抽出した基点棚足候補に棚３０を仮想的に配置した棚配置候補を算出する（６０３）。棚配置候補の算出処理の詳細は、図１０Ａ〜図１４Ｃで説明する。
【００５６】  次に、プロセッサ４２０は、ステップ６０３の処理で算出した棚配置候補ごとに、棚配置候補の棚３０の棚足とならない棚足候補の数を示す棚足候補の超過数と、棚配置候補の棚３０の棚足に対応する棚足候補が検出されていない位置の数を示す棚足候補の不足数とを算出する（６０４）。棚足候補の過不足の算出処理の詳細は、図１５Ａ〜図１７Ｃで説明する。
【００５７】  次に、プロセッサ４２０は、ステップ６０４の処理で算出した棚足候補の過不足に基づいて、ステップ６０３の処理で算出した棚配置候補から棚配置を決定する（６０５）。
【００５８】  次に、プロセッサ４２０は、ステップ６０５の処理で決定した棚配置の各棚３０からの搬送ルートを算出する（６０６）。搬送ルートは、例えば、各棚３０から倉庫又は工場内の棚搬送車２０が走行する走行通路までの最短距離のルートである。
【００５９】  次に、プロセッサ４２０は、ステップ６０６の処理で算出した搬送ルートとステップ６０５の処理で決定した棚配置において棚３０の配置位置とに基づいて、搬送できない棚３０を潜り込む棚３０の候補から除外して、搬送可能な棚３０から潜り込む棚３０を決定し（６０７）、潜り込み棚決定処理を終了する。具体的には、プロセッサ４２０は、搬送ルート上に棚配置の他の棚３０が位置する棚を、搬送できない棚３０として特定する。これによって、棚３０が整列される前の状態であっても、棚搬送車２０は、搬送できる棚３０の下に潜り込むことができるので、効率的に棚３０の整列作業を実施できる。
【００６０】  なお、棚搬送車２０が自身の位置を見失った場合に実行される潜り込み棚決定処理で潜り込み棚３０が決定された場合、棚搬送車２０が当該棚２０に潜り込むと、棚認識用センサ２０９によって棚３０の識別情報を取得し、取得した棚３０の識別情報を棚搬送車管理装置１０に送信する。棚搬送車管理装置１０は、棚３０の識別情報と棚３０の位置情報とを対応付けて管理しているので、受信した棚３０の識別情報に対応する位置情報を、棚搬送車２０に送信する。棚搬送車２０は、当該棚３０の位置情報を受信することによって、自身の位置を認識できる。棚搬送車２０が自身の位置を見失った場合に、当該潜り込み棚決定処理を実行して、いずれかの棚３０に潜り込めば、自身の位置を特定できる。
【００６１】  また、他の棚３０より搬送頻度の低い棚３０又は搬送されない棚３０等の棚搬送車２０の搬送により位置が変更される頻度が低い棚３０をランドマーク棚として設置しておき、プロセッサ４２０は、当該ランドマーク棚を優先して潜り込む棚３０に決定してもよい。ランドマーク棚の棚足には再帰性反射マーカーが取り付けられることによって、プロセッサ４２０は、距離センサ２２０の計測結果から反射強度が他の箇所より強い箇所をランドマーク棚の棚足として識別可能である。ランドマーク棚の正確な位置情報を棚搬送車管理装置１０が管理しておくことによって、棚搬送車２０は自身の位置を見失った場合であっても、当該ランドマーク棚に潜り込み、当該ランドマーク棚の識別情報を棚搬送車管理装置１０に送信することによって、搬送頻度の高い棚３０に潜り込むよりも、自身の正確な位置情報を認識できる。ランドマーク棚の正確な位置情報は、予め棚搬送車２０が記憶しておき、棚搬送車２０と棚搬送車管理装置１０との通信を省略しても良い。
【００６２】  また、棚搬送車２０は、ステップ６０５の処理で決定した棚配置及びステップ６０７の処理で決定した潜り込む棚３０を棚搬送車管理装置１０に送信する。棚搬送車管理装置１０は、棚搬送車２０が潜り込む棚３０の搬送先を、受信した棚配置の棚から所定範囲内の位置に決定する。そして、棚搬送車管理装置１０は、搬送先の位置を棚搬送車２０に送信する。棚搬送車２０は、受信した搬送先の位置まで棚３０を搬送する。例えば、所定範囲は、距離センサ２２０が距離を測定可能な範囲に設定されることが望ましい。これによって、棚搬送車２０が潜り込んだ棚３０を搬送中に自身の位置を見失っても、距離センサ２２０で距離を測定可能な範囲に棚３０が存在するので、当該棚を検出できるので、自身の位置を再度認識できる。
【００６３】  図７は、本実施例の距離センサ２２０による計測結果の説明図である。
【００６４】  距離センサ２２０は、例えば赤外線等の光を照射し、障害物による反射光を受光することによって、自身から障害物までの距離を検出する。図７では、棚３０が図２の状態で配置された倉庫内において距離センサ２２０が自身と障害物との距離を測定した計測結果を示す。図７に示す計測結果は、黒丸７０１によって示される複数の計測データを含み、計測データは距離センサ２２０が照射した光を反射した箇所である。
【００６５】  距離センサ２２０に近い計測データ倉庫内の壁と棚３０の棚足とが障害物として検出される。具体的には、棚３０Ａの四つの棚足が障害物として検出され、棚３０Ｂの三つの棚足が障害物として検出され、棚３０Ｃの三つの棚足が障害物として検出され、棚３０Ｄの一つの障害物として検出され、棚３０Ｅの三つの棚足が障害物として検出される。
【００６６】  図８Ａは、本実施例の連続部分の抽出処理の説明図である。
【００６７】  図６に示すステップ６０２の処理で、プロセッサ４２０は、計測結果に含まれる計測データから連続部分を抽出する。具体的には、プロセッサ４２０は、隣接する計測データ間の距離（ｄ）が予め設定された閾値（ｄ０）以下であるか否かを判定する。例えば、閾値（ｄ０）は２ｃｍに設定されるものとする。隣接する計測データ間の距離（ｄ）が閾値（ｄ０）以下であれば、プロセッサ４２０は、当該隣接する計測データは連続部分であると判断する。
【００６８】  また、隣接する計測データ間の距離（ｄ）が閾値（ｄ０）より大きい場合、距離センサ２２０から隣接する計測データの中点を通る中心線８０１と隣接する計測データ間を通る線８０２との角度（φ）が予め設定された閾値（φ０）以上であれば、当該隣接する計測データは連続部分であると判断する。
【００６９】  図８Ｂは、本実施例の計測結果から抽出された連続部分の説明図である。
【００７０】  図８Ａで説明した連続部分の抽出処理が図７に示す計測結果に対して実行されると、図８Ｂに示す連続部分８１０Ａ〜８１０Ｓが抽出される。例えば、図８Ｂに示す計測データ７０１Ａ及び７０１Ｂは隣接する計測データである。計測データ７０１Ａ及び７０１Ｂ間の距離（ｄ）は閾値（ｄ０）より大きく、距離センサ２２０から計測データ７０１Ａ及び７０１Ｂの中点を通る中心線と計測データ７０１Ａ及び７０１Ｂ間を通る線との角度（φ）は閾値（φ０）より小さくなるので、計測データ７０１Ａ及び７０１Ｂは連続部分として抽出されない。
【００７１】  また、計測データ７０１Ｃ及び７０１Ｄ間の距離（ｄ）は閾値（ｄ０）より大きいが、距離センサ２２０から計測データ７０１Ｃ及び７０１Ｄの中点を通る中心線と計測データ７０１Ｃ及び７０１Ｄ間を通る線との角度（φ）は閾値（φ０）より大きくなるので、計測データ７０１Ｃ及び７０１Ｄは連続部分として抽出される。
【００７２】  距離センサ２２０から距離が遠いほど、隣接する計測データ間の距離は大きくなるが、例えば計測データ７０１Ｃ及び７０１Ｄのように同一線上に位置して連続部分として抽出されるべき隣接する計測データの中心線と当該隣接する計測データを通る線との角度は、大きくなる。一方、計測データ７０１Ａ及び７０１Ｂのように同一線上に位置せず連続部分として抽出されるべきでない隣接する計測データの中心線と当該隣接する計測データを通る線との角度は小さくなる。このため、中心線と隣接する計測データ間を通る線との角度が閾値以上であるか否かが判定されることによって、距離センサ２２０から遠い計測データ間を連続部分として抽出することができる。
【００７３】  次に、図９Ａ〜図９Ｃを用いて、図６に示すステップ６０３の処理の棚足候補を抽出する処理について説明する。
【００７４】  棚足候補の抽出処理では、プロセッサ４２０は、各連続部分の両端となる二つの連続データ間の距離（Ｌ）を算出する。次に、プロセッサ４２０は、算出した距離（Ｌ）が棚モデルデータ５００の棚足モデル５０３に登録された閾値（Ｌ０）以下であれば連続部分に一つの棚足候補が含まれると判断する。この場合、プロセッサ４２０は、距離センサ２２０から連続部分の中心位置までの距離（Ｄ）に予め設定されたオフセットαを加算した位置を棚足候補の配置位置として算出する。なお、オフセットαは、棚足が円柱である場合には当該棚足の半径であり、棚足が直方体である場合には（短辺長さ＋対角線長さ）／４によって算出される値である。
【００７５】  また、連続部分の両端となる二つの連続データ間の距離（Ｌ）が棚モデルデータ５００の棚足モデル５０３に登録された閾値（Ｌ０）より大きい場合、プロセッサ４２０は、当該距離（Ｌ）が棚モデルデータ５００の棚足モデル５０３に登録された閾値（Ｌ０）より大きく、かつ、閾値（Ｌ０）を二倍した値に棚足モデル５０３に登録されたオフセット（δ）加算した値（２Ｌ０＋δ）以下であるか否かを判定する。
【００７６】  連続部分の両端となる二つの連続データ間の距離（Ｌ）が２Ｌ０＋δより大きい場合、プロセッサ４２０は当該連続部分を棚足候補として抽出しない。
【００７７】  連続部分の両端となる二つの連続データ間の距離（Ｌ）が閾値（Ｌ０）より大きくかつ、２Ｌ０＋δより小さい場合、プロセッサ４２０は当該連続部分に二つ又は三つの棚足候補が含まれるものと判断する。
【００７８】  なお、棚足モデル５０３に登録されたオフセット（δ）は、連続部分の抽出に用いた閾値（ｄ０）及び数１によって算出される値（ｄ１）のいずれか大きい方に設定される。
【００７９】
【数１】
2017022048.tif 000003
【００８０】  数１において、Ｄは、連続部分の中心位置から距離センサ２２０までの距離を示し、φは、図８Ａに示す角度（φ）であり、φ０は、図８Ａに示す角度の閾値（φ０）を示す。
【００８１】  図９Ａ及び図９Ｂは、本実施例の連続部分に二つ又は三つの棚足候補が含まれる場合の棚足候補の配置位置を算出する処理の説明図である。図９Ａ及び図９Ｂでは、説明を簡単にするために、棚足の形状が直方体である場合について説明する。
【００８２】  まず、プロセッサ４２０は、連続部分８００の両端の計測データ７０１Ｅ及び７０１Ｆそれぞれに、棚足モデル５０３に登録された棚足の形状が特定可能なデータによって特定される棚足の形状を示す棚足モデル９００Ａ及び９００Ｂを仮想的に配置する。棚足モデル９００Ａ及び９００Ｂを配置した状態は、図９Ａの（Ａ）及び図９Ｂの（Ａ）に示す。
【００８３】  次に、プロセッサ４２０は、棚足モデル９００Ａの辺が計測データ７０１Ｅと当該計測データ７０１Ｅに隣接する計測データ７０１Ｇとを通る線に一致するように、棚足モデル９００Ａを回転させる。同じく、プロセッサ４２０は、棚足モデル９００Ｂの辺が計測データ７０１Ｆと当該計測データ７０１Ｆに隣接する計測データ７０１Ｈとを通る線に一致するように、棚足モデル９００Ｂを回転させる。棚足モデル９００Ａ及び９００Ｂを配置した状態は、図９Ａの（Ｂ）及び図９Ｂの（Ｂ）に示す。
【００８４】  図９Ａの（Ｂ）では、連続部分に含まれる全ての計測データが棚足モデル９００Ａ及び９００Ｂの辺上に位置するので、連続部分に二つの棚足候補が含まれるものであり、棚足候補の配置位置は、棚足モデル９００Ａ及び９００Ｂを回転させた位置となる。
【００８５】  一方、図９Ｂの（Ｂ）では、連続部分に含まれる計測データのうち棚足モデル９００Ａ及び９００Ｂの辺上に位置しない計測データが存在するので、プロセッサ４２０は、当該連続部分には三つの棚足候補が含まれると判断する。そして、プロセッサ４２０は、棚足モデル９００Ａ及び９００Ｂの辺上に位置しない計測データに対応するように棚足モデル９００Ｃを配置する。三つ目の棚足モデル９００Ｃを配置した状態は、図９Ｂの（Ｃ）に示す。この場合の棚足候補の配置位置は、図９Ｂ（Ｃ）に示す棚足モデル９００Ａ〜９００Ｃを配置した位置となる。
【００８６】  なお、連続部分に一つの棚足候補が含まれる場合であっても、図９Ａ及び図９Ｂで説明したように棚足モデルを仮想的に配置することによって、棚足候補の配置位置を算出してもよい。
【００８７】  図９Ｃは、本実施例の計測結果から抽出された棚足候補の説明図である。
【００８８】  図８Ｂに示す連続部分８１０Ａ〜８１０Ｓに対して棚足候補の抽出処理が実行された場合、図９Ｃに示す棚足候補９１０Ａ〜９１０Ｕが抽出される。
【００８９】  図８Ｂに示す連続部分８１０Ａ及び８１０Ｉからは棚足候補が抽出されていない。また、連続部分８１０Ｃ、８１０Ｄ、及び８１０Ｄからはそれぞれ二つの棚足候補（９１０Ｓ及び９１０、９１０Ｑ及び９１０Ｒ、９１０Ｍ及び９１０Ｎ）が抽出されている。
【００９０】  次に、図６に示すステップ６０３の処理において、棚モデルデータ５００の棚足距離を満たす棚足候補の組み合わせを抽出する処理について図１０Ａ及び図１０Ｂを用いて説明する。
【００９１】  図５に示す棚モデルデータ５００では、棚足距離がＰ１である棚３０の辺（棚辺）と棚足距離がＰ２である棚辺とがある。プロセッサ４２０は、二つの棚足候補の距離（Ｐ）を算出し、算出した距離ＰとＰ１との差分が予め設定された閾値以下である棚足候補の組み合わせを棚足距離Ｐ１の棚辺候補として抽出し、算出した距離ＰとＰ２との差分が予め設定された閾値以下である棚足候補の組み合わせを棚足距離Ｐ２の棚辺候補として抽出する。なお、閾値は例えば３ｃｍであるとする。
【００９２】  図１０Ａは、本実施例の棚足距離Ｐ１の棚辺候補として抽出された棚足候補の組み合わせの説明図である。
【００９３】  棚足距離Ｐ１の棚辺候補として抽出された棚足候補の組み合わせは、棚足候補９１０Ａ及び９１０Ｂの組み合わせ、棚足候補９１０Ｂ及び９１０Ｃの組み合わせ、棚足候補９１０Ｂ及び９１０Ｅの組み合わせ、棚足候補９１０Ｃ及び９１０Ｇの組み合わせ、棚足候補９１０Ｅ及び９１０Ｇの組み合わせ、棚足候補９１０Ｈ及び９１０Ｉの組み合わせ、棚足候補９１０Ｈ及び９１０Ｋの組み合わせ、棚足候補９１０Ｌ及び９１０Ｑの組み合わせ、棚足候補９１０Ｏ及び９１０Ｑの組み合わせ、並びに棚足候補９１０Ｒ及び９１０Ｕの組み合わせである。
【００９４】  図１０Ｂは、本実施例の棚足距離Ｐ２の棚辺候補として抽出された棚足候補の組み合わせの説明図である。
【００９５】  棚足距離Ｐ２の棚辺候補として抽出された棚足候補の組み合わせは、棚足候補９１０Ａ及び９１０Ｇの組み合わせ、棚足候補９１０Ｂ及び９１０Ｋの組み合わせ、棚足候補９１０Ｃ及び９１０Ｌの組み合わせ、棚足候補９１０Ｅ及び９１０Ｉの組み合わせ、棚足候補９１０Ｅ及び９１０Ｕの組み合わせ、棚足候補９１０Ｆ及び９１０Ｉの組み合わせ、棚足候補９１０Ｈ及び９１０Ｑの組み合わせ、棚足候補９１０Ｉ及び９１０Ｏの組み合わせ、棚足候補９１０Ｇ及び９１０Ｒの組み合わせ、並びに棚足候補９１０Ｌ及び９１０Ｐの組み合わせである。
【００９６】  次に、プロセッサ４２０は、棚足距離Ｐ１及びＰ２の棚辺候補として抽出された棚足候補の組み合わせの棚足候補から処理対象の棚足候補を選択する。そして、プロセッサ４２０は、選択した処理対象の棚足候補が棚足距離Ｐ１の棚辺候補として抽出された二つの棚足候補の組み合わせに含まれるか、棚足距離Ｐ１の棚辺候補として抽出された一つの棚足候補の組み合わせに含まれ、かつ棚足距離Ｐ２の棚辺候補として抽出された一つの棚足候補の組み合わせに含まれる場合、当該処理対象の棚足候補を棚３０の頂点となり得る基点棚足候補として抽出する。
【００９７】  本実施例では、図５で説明したように、種別「Ａ」の棚３０は棚足距離Ｐ１の棚辺を短辺であり、棚足距離Ｐ２の棚辺が長辺である。種別「Ｂ」の棚３０は短辺及び長辺ともに棚足距離Ｐ１の棚辺である。このため、棚辺候補として抽出された棚足候補の組み合わせに含まれる棚足候補が、棚足距離Ｐ１の棚辺と棚足距離Ｐ２の棚辺との基点、又は棚足距離Ｐ１の二つの棚辺の基点となる場合、当該棚足候補を基点棚足候補として抽出する。
【００９８】  図１０Ａ及び図１０Ｂに示す棚足距離Ｐ１又は棚足距離Ｐ２の棚辺候補として抽出された棚足候補においては、棚足候補９１０Ｂ、９１０Ｃ、９１０Ｅ、９１０Ｇ、９１０Ｈ、９１０Ｉ、９１０Ｏ、９１０Ｑ、９１０Ｒ、及び９１０Ｕが基点棚足候補として抽出される。
【００９９】  図１１Ａ〜図１１Ｄを用いて各基点棚足候補がどの棚辺の基点となるかについて説明する。
【０１００】  図１１Ａ〜図１１Ｄを用いて各基点棚足候補がどの棚辺の基点となるかについて説明する。
【０１０１】  図１１Ａは、本実施例の基点棚足候補９１０Ｂを基点とする棚辺の説明図である。棚足候補９１０Ｂは、棚足候補９１０Ａとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｃとの間の棚足距離Ｐ１の棚辺の基点となり、また、棚足候補９１０Ｃとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｅとの間の棚足距離Ｐ１の棚辺の基点となる。このため、棚足候補９１０Ｂは、棚足候補９１０Ａ及び９１０Ｃを頂点とする種別「Ｂ」の棚３０の頂点となる可能性があり、また、棚足候補９１０Ｃ及び９１０Ｅを頂点とする種別「Ｂ」の棚３０の頂点となる可能性がある。
【０１０２】  また、図１１Ａ〜図１１Ｄには図示していないが、基点棚足候補９１０Ｃは、棚足候補９１０Ｂとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｇとの間の棚足距離Ｐ１の棚辺の基点となる。このため、棚足候補９１０Ｃは、棚足候補９１０Ｂ及び９１０Ｇを頂点とする種別「Ｂ」の棚３０の頂点となる可能性がある。
【０１０３】  図１１Ｂは、本実施例の基点棚足候補９１０Ｅを基点とする棚辺の説明図である。棚足候補９１０Ｅは、棚足候補９１０Ｂとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｇとの間の棚足距離Ｐ１の棚辺の基点となり、また、棚足候補９１０Ｂとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｉとの間の棚足距離Ｐ２の棚辺の基点となり、また、棚足候補９１０Ｇとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｕとの間の棚足距離Ｐ２の棚辺の基点となる。このため、棚足候補９１０Ｅは、棚足候補９１０Ｂ及び９１０Ｇを頂点とする種別「Ｂ」の棚３０の頂点となる可能性があり、棚足候補９１０Ｂ及び９１０Ｉを頂点とする種別「Ａ」の棚３０の頂点となる可能性があり、棚足候補９１０Ｇ及び９１０Ｕを頂点とする種別「Ａ」の棚３０の頂点となる可能性がある。
【０１０４】  また、図１１Ａ〜図１１Ｄには図示していないが、基点棚足候補９１０Ｇは、棚足候補９１０Ｃとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｅとの間の棚足距離Ｐ１の棚辺の基点となり、また、棚足候補９１０Ｅとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｒとの間の棚足距離Ｐ２の棚辺の基点となる。このため、棚足候補９１０Ｇは、棚足候補９１０Ｃ及び９１０Ｅを頂点とする種別「Ｂ」の棚３０の頂点となる可能性があり、棚足候補９１０Ｅ及び９１０Ｒを頂点とする種別「Ａ」の棚３０の頂点となる可能性がある。
【０１０５】  また、図１１Ａ〜図１１Ｄには図示していないが、基点棚足候補９１０Ｈは、棚足候補９１０Ｉとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｋとの間の棚足距離Ｐ１の棚辺の基点となり、また、棚足候補９１０Ｉとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｑとの間の棚足距離Ｐ２の棚辺の基点となる。このため、棚足候補９１０Ｈは、棚足候補９１０Ｉ及び９１０Ｋを頂点とする種別「Ｂ」の棚３０の頂点となる可能性があり、棚足候補９１０Ｉ及び９１０Ｑを頂点とする種別「Ａ」の棚３０の頂点となる可能性がある。
【０１０６】  また、図１１Ａ〜図１１Ｄには図示していないが、基点棚足候補９１０Ｉは、棚足候補９１０Ｈとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｏとの間の棚足距離Ｐ２の棚辺の基点となる。このため、棚足候補９１０Ｉは、棚足候補９１０Ｈ及び９１０Ｏを頂点とする種別「Ａ」の棚３０の頂点となる可能性がある。
【０１０７】  また、図１１Ａ〜図１１Ｄには図示していないが、基点棚足候補９１０Ｏは、棚足候補９１０Ｑとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｉとの間の棚足距離Ｐ２の棚辺の基点となる。このため、棚足候補９１０Ｏは、棚足候補９１０Ｑ及び９１０Ｉを頂点とする種別「Ａ」の棚３０の頂点となる可能性がある。
【０１０８】  図１１Ｃは、本実施例の基点棚足候補９１０Ｑを基点とする棚辺の説明図である。棚足候補９１０Ｑは、棚足候補９１０Ｌとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｏとの間の棚足距離Ｐ１の棚辺の基点となり、また、棚足候補９１０Ｏとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｈとの間の棚足距離Ｐ２の棚辺の基点となる。このため、棚足候補９１０Ｑは、棚足候補９１０Ｌ及び９１０Ｏを頂点とする種別「Ｂ」の棚３０の頂点となる可能性があり、棚足候補９１０Ｏ及び９１０Ｈを頂点とする種別「Ａ」の棚３０の頂点となる可能性がある。
【０１０９】  また、図１１Ａ〜図１１Ｄには図示していないが、基点棚足候補９１０Ｒは、棚足候補９１０Ｕとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｇとの間の棚足距離Ｐ２の棚辺の基点となる。このため、棚足候補９１０Ｒは、棚足候補９１０Ｕ及び９１０Ｇを頂点とする種別「Ａ」の棚３０の頂点となる可能性がある。
【０１１０】  図１１Ｄは、本実施例の基点棚足候補９１０Ｕを基点とする棚辺の説明図である。棚足候補９１０Ｒとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｅとの間の棚足距離Ｐ２の棚辺の基点となる。このため、棚足候補９１０Ｕは、棚足候補９１０Ｒ及び９１０Ｅを頂点とする種別「Ａ」の棚３０の頂点となる可能性がある。
【０１１１】  次に、プロセッサ４２０は、抽出した各基点棚足候補、及び当該基点棚足候補を基点とする二つの棚辺のそれぞれの端点となる棚足候補を頂点とする棚３０を仮想的に配置し、各基点棚足候補を基点とする棚辺から同一の棚３０の棚辺を削除することによって、各基点棚足候補を整理する。
【０１１２】  図１２は、本実施例の棚３０が各基点棚足候補に仮想的に配置された状態の説明図である。図１３Ａは、本実施例の整理後の基点棚足候補９１０Ｂを基点とする棚辺の説明図であり、図１３Ｂは、本実施例の整理後の基点棚足候補９１０Ｅを基点とする棚辺の説明図であり、図１３Ｃは、本実施例の整理後の基点棚足候補９１０Ｑを基点とする棚辺の説明図であり、図１３Ｄは、本実施例の整理後の基点棚足候補９１０Ｕを基点とする棚辺の説明図である。
【０１１３】  基点棚足候補９１０Ｂには、棚足候補９１０Ａ及び９１０Ｃを頂点とする種別「Ｂ」の棚１２１０Ａが仮想的に配置される。また、基点棚足候補９１０Ｂには、棚足候補９１０Ｃ及び９１０Ｅを頂点とする種別「Ｂ」の棚１２１０Ｂが仮想的に配置される。棚１２１０Ｂは、棚足候補９１０Ｂ、９１０Ｃ、９１０Ｇ、及び９１０Ｅを頂点とするので、プロセッサ４２０は、図１３Ａに示すように、基点棚足候補９１０Ｂの棚足候補９１０Ｃとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｃとの間の棚足距離Ｐ１の棚辺に、棚足候補９１０Ｇも関連付ける。
【０１１４】  また、プロセッサ４２０は、棚１２１０Ｂの頂点となる基点棚足候補９１０Ｃ、９１０Ｅ、及び９１０Ｇから棚１２１０Ｂの棚辺を削除する。例えば、基点棚足候補９１０Ｅにおいては、図１３Ｂに示すように、棚足候補９１０Ｂとの間の棚辺及び棚足候補９１０Ｇとの間の棚辺の関連付けを削除する。
【０１１５】  基点棚足候補９１０Ｅには、棚足候補９１０Ｂ及び９１０Ｉを頂点とする種別「Ａ」の棚１２００Ａが仮想的に配置され、棚足候補９１０Ｇ、９１０Ｒ、及び９１０Ｕを頂点とする種別「Ａ」の棚１２００Ｂが仮想的に配置される。棚１２００Ｂは、棚足候補９１０Ｅ、９１０Ｇ、９１０Ｒ、及び９１０Ｕを頂点とするので、プロセッサ４２０は、図１３Ｂに示すように、基点棚足候補９１０Ｅの棚足候補９１０Ｇとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｕとの間の棚足距離Ｐ２の棚辺に、棚足候補９１０Ｒも関連付ける。
【０１１６】  また、プロセッサ４２０は、棚１２００Ｂの頂点となる基点棚足候補９１０Ｇ、９１０Ｒ、及び９１０Ｕから棚１２００Ｂの棚辺を削除する。例えば、基点棚足候補９１０Ｕにおいては、図１３Ｄに示すように、棚足候補９１０Ｒとの間の棚辺及び棚足候補９１０Ｅとの間の棚辺の関連付けを削除する。
【０１１７】  基点棚足候補９１０Ｈには、棚足候補９１０Ｉ及び９１０Ｋを頂点とする種別「Ｂ」の棚１２１０Ｃが仮想的に配置され、棚足候補９１０Ｉ、９１０Ｏ、及び９１０Ｑを頂点とする種別「Ａ」の棚１２００Ｃが仮想的に配置される。棚１２００Ｃは、棚足候補９１０Ｈ、９１０Ｉ、９１０Ｏ、及び９１０Ｑを頂点とするので、プロセッサ４２０は、基点棚足候補９１０Ｈの棚足候補９１０Ｉとの間の棚足距離Ｐ１の棚辺及び棚足候補９１０Ｑとの間の棚足距離Ｐ２の棚辺に、棚足候補９１０Ｏも関連付ける。
【０１１８】  また、プロセッサ４２０は、棚１２００Ｃの頂点となる基点棚足候補９１０Ｉ、９１０Ｏ、及び９１０Ｑから棚１２００Ｃの棚辺を削除する。例えば、基点棚足候補９１０Ｑにおいては、図１３Ｃに示すように、棚足候補９１０Ｏとの間の棚辺及び棚足候補９１０Ｈとの間の棚辺の関連付けを削除する。
【０１１９】  基点棚足候補９１０Ｑには、棚足候補９１０Ｌ及び９１０Ｏを頂点とする種別「Ｂ」の棚１２１０Ｄが仮想的に配置される。
【０１２０】  このように、各基点棚足候補の棚辺との関係が整理される。
【０１２１】  次に、プロセッサ４２０は、ある棚３０の棚足となった棚足候補が他の棚３０の棚足とならないように棚配置候補を算出する。図１２に示す例では、棚配置候補に棚１２００Ａが含まれるものとすると、棚１２００Ａは、棚足候補９１０Ｂ、９１０Ｅ、及び９１０Ｉを頂点となり、棚足候補９１０Ｂ、９１０Ｅ、及び９１０Ｉは棚１２００Ａとなる。このため、棚足候補９１０Ｂを頂点とする棚１２１０Ａ、棚足候補９１０Ｂ及び９１０Ｅを頂点とする棚１２１０Ｂ、棚足候補９１０Ｅを頂点とする棚１２００Ｂ、並びに、棚足候補９１０Ｉを頂点とする棚１２１０Ｃは当該棚配置候補に含まれず、これらの棚１２１０Ａ、１２１０Ｂ、１２００Ｂ、及び１２１０Ｃ以外の棚と棚１２００Ａとの全ての組み合わせ分の棚配置候補が算出される。ここで、各棚配置候補に対し、どの棚３０にも利用されていない２つの棚足候補が棚辺候補を形成する場合、その棚辺候補が構成要素となる棚３０をその位置に設置する新たな棚配置候補を追加しても良い。本実施例では、説明を簡単にするために、図１４Ａ〜図１４Ｃに示す棚配置候補を例に説明する。
【０１２２】  図１４Ａは、本実施例の第１棚配置候補の説明図である。第１棚配置候補は、棚１２１０Ａ、１２１０Ｃ、１２１０Ｄ、及び１２００Ｂを含む。
【０１２３】  図１４Ｂは、本実施例の第２棚配置候補の説明図である。第２棚配置候補は、棚１２１０Ａ、１２００Ｂ、及び１２００Ｃを含む。
【０１２４】  図１４Ｃは、本実施例の第３棚配置候補の説明図である。第３棚配置候補は、棚１２００Ａ及び１２１０Ｄを含む。
【０１２５】  次に、図６に示すステップ６０４の処理における各棚配置候補の棚足候補の過不足の算出について図１５Ａ〜図１５Ｃを用いて説明する。
【０１２６】  図１５Ａは、本実施例の第１棚配置候補の棚足候補の過不足の算出の説明図である。
【０１２７】  第１棚配置候補では、棚１２１０Ａ、１２１０Ｃ、１２１０Ｄ、及び１２００Ｂの棚足とならない棚足候補は９１０Ｄ、９１０Ｆ、９１０Ｊ、９１０Ｍ、９１０Ｎ、９１０Ｐ、９１０Ｓ、及び９１０Ｔである。第１棚配置候補のいずれの棚の棚足とならない棚足候補の数を示す棚足候補の超過数は、８個である。
【０１２８】  また、第１棚配置候補では、棚１２１０Ａ、１２１０Ｃ、及び１２１０Ｄの棚足となるべき棚足候補がそれぞれ一つずつ抽出されていない。第１棚配置候補の棚足候補の不足数は、３個である。
【０１２９】  これより、複数の棚配置候補から棚足候補の過不足に基づき棚配置を決定する。ここで、その決定のための棚配置候補の評価する値として、例えば、棚配置候補の過不足数が考えられる。棚配置候補の棚足候補の過不足数とは、棚配置候補の棚足候補の超過数と棚配置候補の棚足候補の不足数とを加算して算出する。過不足数が小さい棚配置候補ほど尤もらしいと言える。第１棚配置候補の棚足候補の過不足数は１１となる。過不足数は棚配置候補の評価の一例であり、本発明はそれに限るものではない。他の評価の一例としては、超過数と不足数とを重み付けをして足し合わせた評価値を使うことが考えられる。距離センサ２２０がノイズを多く含むような特性の場合は、超過数が必然的に増える。このような場合は、不足数が重視されるように重み付けをすることで、棚配置候補の尤もらしさを正しく評価することができる。逆に、距離センサ２２０のノイズの影響を軽減するため、図８Ｂの連続部分８１０Ｅのように計測点の少ない連続部分８１０を棚足候補９１０に含めない棚足候補抽出方法も考えられるが、この方法では、不足数が必然的に増える。このような場合は、超過数を重視するように重み付けをすることで、棚配置候補の尤もらしさを正しく評価することができる。
【０１３０】  図１５Ｂは、本実施例の第２棚配置候補の棚足候補の過不足の算出の説明図である。
【０１３１】  第２棚配置候補では、棚１２１０Ａ、１２００Ｃ、及び１２００Ｂの棚足とならない棚足候補は９１０Ｄ、９１０Ｆ、９１０Ｊ、９１０Ｋ、９１０Ｌ、９１０Ｍ、９１０Ｎ、９１０Ｐ、９１０Ｓ、及び９１０Ｔであり、第２棚配置候補のいずれの棚の棚足とならない棚足候補の超過数は、１０個である。
【０１３２】  また、第２棚配置候補では、棚１２１０Ａの棚足となるべき棚足候補が一つ抽出されていないので、第２棚配置候補の棚足候補の不足数は、１個である。
【０１３３】  したがって、第２棚配置候補の棚足候補の過不足数は１１となる。
【０１３４】  図１５Ｃは、本実施例の第３棚配置候補の棚足候補の過不足の算出の説明図である。
【０１３５】  第３棚配置候補では、棚１２００Ａ及び１２１０Ｄの棚足とならない棚足候補は９１０Ａ、９１０Ｃ、９１０Ｄ、９１０Ｆ、９１０Ｇ、９１０Ｈ、９１０Ｊ、９１０Ｋ、９１０Ｍ、９１０Ｎ、９１０Ｐ、９１０Ｓ、９１０Ｒ、９１０Ｔ、及び９１０Ｕであり、第３棚配置候補のいずれの棚の棚足とならない棚足候補の超過数は、１５個である。
【０１３６】  また、第３棚配置候補では、棚１２００Ａ及び１２１０Ｄの棚足となるべき棚足候補がそれぞれ一つずつ抽出されていないので、第３棚配置候補の棚足候補の不足数は、２個である。
【０１３７】  したがって、第３棚配置候補の棚足候補の過不足数は１７となる。
【０１３８】  以上によって、プロセッサ４２０は、過不足数が最小となる第１棚配置候補又は第２棚配置候補を棚配置として決定する。
【０１３９】  なお、プロセッサ４２０は、過不足を算出する場合、オクルージョンを考慮して過不足を算出してもよい。オクルージョンとは、例えば、ある棚足が当該棚足より距離センサ２００に近い棚足や他の物体に隠れてしまうことである。プロセッサ４２０は、このような棚足を不足数としてカウントしないことによって、オクルージョンを考慮した過不足を算出できる。また、プロセッサ４２０は、過不足を算出する際、距離センサ２２０の計測範囲を考慮して過不足を算出しても良い。ある棚３０の棚足が距離センサ２２０の計測範囲に入っていない場合は、不足数としてカウントしないことにより、棚配置候補の尤もらしさを正しく評価できる。オクルージョンを考慮した過不足算出の処理について図１６Ａ〜図１６Ｃを用いて説明する。
【０１４０】  図１６Ａは、本実施例の第１棚配置候補のオクルージョンを考慮した棚足候補の過不足の算出の説明図である。
【０１４１】  まず、プロセッサ４２０は、棚足となるべき棚足候補が抽出されていない棚の棚足となるべき位置を特定する。例えば、棚１２１０Ａであれば、棚足候補９１０Ｂと９１０Ｃとの間の線に平行な棚足候補９１０Ａからの線と、棚足候補９１０Ａと棚足候補９１０Ｂとの間の線に平行な棚足候補９１０Ｃからの線との交点が、抽出されていない棚足の位置となる。
【０１４２】  次に、プロセッサ４２０は、抽出されていない棚足の位置から距離センサ２２０までの線上に棚足候補として抽出された計測データが存在する場合、抽出されていない棚足の位置は、当該計測データの棚足候補によってオクルージョンが発生していると判断する。そして、プロセッサ４２０は、当該位置は棚足候補が不足していないものとして、算出した不足数に１を加算する。
【０１４３】  図１６Ａでは、棚１２１０Ａ、１２１０Ｃ、及び１２１０Ｄの抽出されていない棚足の位置は、それぞれ、位置１６００Ａ、１６００Ｂ、及び１６００Ｃと特定される。
【０１４４】  位置１６００Ａと距離センサ２２０との間の線上には棚足候補９１０Ｂとして抽出された計測データが存在するので、該位置１６００Ａは棚足候補の不足数としてカウントしない。同様に、位置１６００Ｂと距離センサ２２０との間の線上には棚足候補９１０Ｋとして抽出された計測データが存在するので、該位置１６００Ｂは棚足候補の不足数としてカウントせず、位置１６００Ｃと距離センサ２２０との間の線上には棚足候補９１０Ｌとして抽出された計測データが存在するので、該位置１６００Ｃは棚足候補の不足数としてカウントしない。
【０１４５】  このため、第１棚配置候補の棚足候補の不足数は０個であり、第１棚配置候補の棚足候補の過不足数は８となる。
【０１４６】  図１６Ｂは、本実施例の第２棚配置候補のオクルージョンを考慮した棚足候補の過不足の算出の説明図である。
【０１４７】  図１６Ｂでは、棚１２１０Ａの抽出されていない棚足の位置は、それぞれ、位置１６００Ａと特定される。
【０１４８】  位置１６００Ａと距離センサ２２０との間の線上には棚足候補９１０Ｂとして抽出された計測データが存在するので、該位置１６００Ａは棚足候補の不足数としてカウントしない。このため、第２棚配置候補の棚足候補の不足数は２個であり、第２棚配置候補の棚足候補の過不足数は１０となる。
【０１４９】  図１６Ｂは、本実施例の第２棚配置候補のオクルージョンを考慮した棚足候補の過不足の算出の説明図である。
【０１５０】  図１６Ｂでは、棚１２１０Ａの抽出されていない棚足の位置は、位置１６００Ａと特定される。
【０１５１】  位置１６００Ａと距離センサ２２０との間の線上には棚足候補９１０Ｂとして抽出された計測データが存在するので、該位置１６００Ａは棚足候補の不足数としてカウントしない。このため、第２棚配置候補の棚足候補の不足数は２個であり、第２棚配置候補の棚足候補の過不足数は１０となる。
【０１５２】  図１６Ｃは、本実施例の第３棚配置候補のオクルージョンを考慮した棚足候補の過不足の算出の説明図である。
【０１５３】  図１６Ｃでは、棚１２００Ａ及び棚１２１０Ｄの抽出されていない棚足の位置は、それぞれ、位置１６００Ｄ及び１６００Ｃと特定される。
【０１５４】  位置１６００Ｄと距離センサ２２０との間の線上には棚足候補９１０Ｅとして抽出された計測データが存在するので、該位置１６００Ｄは棚足候補の不足数としてカウントしない。図１６Ａで説明したように、位置１６００Ｃも棚足候補の不足数としてカウントしない。このため、第３棚配置候補の棚足候補の不足数は０個であり、第３棚配置候補の棚足候補の過不足数は１５となる。
【０１５５】  したがって、過不足が最小となる第１棚配置候補となり、第１棚配置候補が棚配置として決定される。
【０１５６】  以上によって、棚搬送車２０は、棚足のオクルージョンを考慮して棚配置を決定できるので、より正確に棚配置を決定することができる。以上は、棚足候補がオクルージョンを発生させる例を示したが、本発明は、計測データの連続部分によって表現される他の物体がオクルージョンを発生させる場合も含む。その場合は、上述の説明の棚足候補を計測データの連続部分と置き換えれば実施できる。
【０１５７】  なお、プロセッサ４２０は、棚配置候補の棚３０に干渉する棚足候補の数又は計測データの連続部分の数又は長さを考慮して、棚配置候補を評価しても良い。そのうち、干渉する棚足候補の数を考慮する処理について図１７Ａ及び図１７Ｂを用いて説明する。棚配置候補の棚３０に干渉する棚足候補又は計測データの連続部分とは、棚配置候補の棚３０が構成する矩形領域内に位置する棚足候補又は計測データの連続部分である。例えば、棚３０では棚足と棚足との間に棚足が存在しないので、二つの棚足間に棚足候補が位置する場合には、この棚３０の配置は誤った配置である可能性が高い。
【０１５８】  第１棚配置候補は、棚３０に干渉する棚足候補は存在しない。
【０１５９】  図１７Ａは、本実施例の第２棚配置候補を評価する際に棚３０に干渉する棚足候補の数を考慮する場合の説明図である。
【０１６０】  第２棚配置候補では、棚１２００Ｃの棚足候補９１０Ｈと棚足候補９１０Ｑとの間に棚足候補９１０Ｋ及び９１０Ｌが位置する。第２棚配置候補の干渉する棚足候補の数は２個である。干渉する棚足候補の数を考慮した棚配置候補の棚足候補の評価値の一例としては、棚配置候補の棚足候補の超過数と棚配置候補の棚足候補の不足数と干渉する棚足候補の数とを加算して算出した値が考えられる。この評価値は過不足数と同様に小さい方が尤もらしい棚配置候補であることを表している。このため、第２棚配置候補の評価値は、１５である。
【０１６１】  図１７Ｂは、本実施例の第３棚配置候補を評価する際に棚３０に干渉する棚足候補の数を考慮する場合の説明図である。
【０１６２】  第３棚配置候補では、棚１２００Ａの棚足候補９１０Ｅと棚足候補９１０Ｉとの間に棚足候補９１０Ｈ及び９１０Ｇが位置し、棚足候補９１０Ｂと抽出されていない棚足との間に棚足候補９１０Ｃが位置する。第３棚配置候補の干渉する棚足候補の数は３個である。このため、第３棚配置候補の評価値は、２０である。
【０１６３】  この場合、評価値が最小となる第１棚配置候補となり、第１棚配置候補が棚配置として決定される。
【０１６４】  以上によって、棚搬送車２０は、干渉する棚足候補の数を考慮して棚配置を決定できるので、より正確に棚配置を決定することができる。以上は、棚足候補の干渉を考慮する一例であったが、同様に計測データの連続部分で表現される他の物体の干渉を考慮する場合も考えることができる。ここで、計測データの連続部分は、棚足候補の長さよりも長い。そのため、計測データの連続部分の長さが、棚足候補の何個分の長さに相当するかを算出し、それが仮にＮ個であった場合、その計測データの連続部分の干渉は棚足候補の干渉Ｎ個分に相当すると考えるべきである。これにより、棚配置候補の評価値を算出することができる。
【０１６５】  本実施例によれば、棚搬送車３０は、棚モデルデータ５００に登録された棚足距離を満たすように、距離センサ２２０による計測結果から抽出された棚足候補に棚３０仮想的に配置した複数の棚配置候補を算出し、算出した棚配置候補の棚配置候補の過不足を算出し、算出した過不足に基づいて棚配置を決定し、決定した棚配置から棚搬送車２０の移動先となる棚３０を決定する。これによって、距離センサ２２０の計測範囲に複数の棚３０が存在する場合であっても、移動先となる棚３０を決定でき、ひいては、棚搬送車２０が自身の位置を見失った場合であっても、自身の位置を再認識できる。また、棚３０が整列される前であっても、棚搬送車３０は、棚３０を自動的に検出して移動することができるので、整列前の棚３０を整列させることができる。
【０１６６】  なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、及び置換をすることが可能である。
【０１６７】  また、各実施例の構成の一部について、他の構成の追加、削除、及び置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
【０１６８】  また、前記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
【０１６９】  各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣ（Integrated Circuit）カード、ＳＤカード、ＤＶＤ（Digital Versatile Disc）等の記録媒体に置くことができる。
【０１７０】  また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【図１】
2017022048.tif 000004
【図２】
2017022048.tif 000005
【図３】
2017022048.tif 000006
【図４】
2017022048.tif 000007
【図５】
2017022048.tif 000008
【図６】
2017022048.tif 000009
【図７】
2017022048.tif 000010
【図８Ａ】
2017022048.tif 000011
【図８Ｂ】
2017022048.tif 000012
【図９Ａ】
2017022048.tif 000013
【図９Ｂ】
2017022048.tif 000014
【図９Ｃ】
2017022048.tif 000015
【図１０Ａ】
2017022048.tif 000016
【図１０Ｂ】
2017022048.tif 000017
【図１１Ａ】
2017022048.tif 000018
【図１１Ｂ】
2017022048.tif 000019
【図１１Ｃ】
2017022048.tif 000020
【図１１Ｄ】
2017022048.tif 000021
【図１２】
2017022048.tif 000022
【図１３Ａ】
2017022048.tif 000023
【図１３Ｂ】
2017022048.tif 000024
【図１３Ｃ】
2017022048.tif 000025
【図１３Ｄ】
2017022048.tif 000026
【図１４Ａ】
2017022048.tif 000027
【図１４Ｂ】
2017022048.tif 000028
【図１４Ｃ】
2017022048.tif 000029
【図１５Ａ】
2017022048.tif 000030
【図１５Ｂ】
2017022048.tif 000031
【図１５Ｃ】
2017022048.tif 000032
【図１６Ａ】
2017022048.tif 000033
【図１６Ｂ】
2017022048.tif 000034
【図１６Ｃ】
2017022048.tif 000035
【図１７Ａ】
2017022048.tif 000036
【図１７Ｂ】
2017022048.tif 000037
【国際調査報告】
2017022048.tif 000038
2017022048.tif 000039