(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0019】
図1は、本実施例の搬送システムの構成図である。
【0020】
搬送システムは、棚搬送車管理装置10及び少なくとも一つの棚搬送車20を有する。棚搬送車管理装置10と棚搬送車20とは無線で接続される。搬送管理装置10は、棚搬送車20が搬送する棚30を決定し、棚搬送車20の現在位置から棚30までの経路と、棚30から搬送先までの経路とを算出し、これらの経路を含む搬送計画を棚搬送車20に送信する。棚搬送車20は、受信した搬送計画に基づいて移動し、棚30を搬送先まで搬送する。
【0021】
棚搬送車20は、棚30が整列される前又は自身の位置を見失った場合等、距離センサ220(
図3参照)の計測結果を用いて、潜り込む棚30を決定し、決定した棚30に潜りこむ。棚30が整列される前には、棚搬送車管理装置10が棚30の位置を把握していないが、棚搬送車20は、潜り込む棚30を決定でき、当該棚30を所定の位置に搬送できる。また、棚搬送車20が自身の位置を見失った場合、棚30の棚足が設けられた面には、棚30の識別情報が印刷されたバーコード等が貼り付けられており、棚30に潜り込んだ棚搬送車20は棚30の識別情報を読み取り、読み取った棚30の識別情報を棚搬送車管理装置に送信する。棚搬送車管理装置10は、棚30の位置を把握しているため、受信した棚30の識別情報に対応する位置情報を棚搬送車20に送信する。これによって、棚搬送車20は、棚30に潜り込むことによって、自身の位置を認識することができる。
【0022】
図2は、本実施例の搬送システムが適用された倉庫の説明図である。
【0023】
図2では、複数の棚30A〜棚30E(総称する場合には、棚30と記載する)が整列される前の状態を示し、一箇所に複数の棚30が無造作に配置されている。棚30の底面には四つの棚足が設けられる。棚搬送車20は、距離センサ220の計測結果に基づいて潜り込む棚30を決定し、当該棚30の棚足の間から棚30に潜り込み、棚30を持ち上げて、移動することによって、棚30を搬送する。これによって、一箇所に無造作に配置された棚30を整列させることができる。
【0024】
図3は、本実施例の棚搬送車20の構成図であり、左図が棚搬送車20の外見図であり、右図が棚搬送車20の内部構造の説明図である。なお、右図は、棚搬送車20を進行方向と逆方向から棚搬送車20の内部を見た図である。
【0025】
棚搬送車20は、棚30の下に潜り込み、荷役部201を動作させることで、棚30を持ち上げる。荷役部201は、棚搬送車20の上部に位置し、棚30を持ち上げるように動作する機構であり、モータ、モータ制御コントローラ、回転移動を鉛直上下方向移動に変換するギアとシャフト、モータを制御するコントローラ、上板によって構成される。
【0026】
荷役部201は、電源204及びコントローラ206と繋がっており、コントローラ206からの指令に基づき、自身のモータを制御し、上板を上下させる。上板以外の各構成機器は複数存在しても構わないが、上板を水平に保つため、複数のモータには同期をとりながら同一の動きをさせることが好ましい。
【0027】
棚搬送車20が棚30を持ち上げる際、まず、コントローラ206は駆動部203を制御し、棚搬送車20を棚30の下に潜り込ませる。この状態で、コントローラ206は、荷役部201にモータを制御し上板を上昇させるように指示を出す。荷役部201は、指示通りに上板を徐々に押し上げていく。すると、荷役部201の上板の表面は、棚30の底である被接触面の高さに到達し、接触する。荷役部201の上板の表面は、棚30の被接触面と接触することから、接触面207と呼ぶこととする。さらに、荷役部201の上板を上昇させていくと、棚30の足が地面から離れ、棚30は持ち上がった状態となる。つまり、棚搬送車20は荷役部201を用いて棚30を積載している状態となる。
【0028】
棚搬送車20が棚30を持っている状態から棚30を設置する際、まず、コントローラ206は駆動部203を制御し、棚30を設置すべき位置まで棚搬送車20を移動させる。その位置に達した後、コントローラ206は、荷役部201にモータを制御し上板を下降させるように指示を出す。荷役部201は、指示通りに上板を徐々に下降させていくと、同時に棚30も下降していく。やがて、棚30の足が地面に到達し、接触する。さらに、荷役部201の上板を下降させていくと、棚搬送車20の接触面207と棚30の被接触面103とが離れ、棚30の設置が完了する。
【0029】
本実施例における棚搬送車20は、駆動部203を動作させることで、自身を移動させる。駆動部203は、モータ、モータ制御コントローラ、車輪などによって構成される。さらには、車輪の回転を計測するロータリエンコーダを搭載していても良い。
【0030】
棚搬送車20の2次元的な移動を実現するためには、独立して動作する2つのモータと3つの車輪が最低限必要となる。例えば、棚搬送車20の左右に一つずつ車輪を取り付け、それらを独立に制御するためのモータ及びモータ制御コントローラを搭載し、さらに1つのキャスターを取り付けることが考えられる。すると、棚搬送車20は、左右の車輪の回転速度を同じにすると直進し、左右の車輪の回転方向を逆転させるとその場で旋回する。駆動部203は、電源204及びコントローラ206と繋がっており、コントローラ206からの指令に基づき、自身のモータを制御し、棚搬送車20を移動させる。
【0031】
電源204はバッテリとして実装される。棚搬送車20の荷役部201、駆動部203、コントローラ206、棚認識用センサ209、距離センサ220に電力を供給する。本実施例では、棚認識用センサ209と距離センサ220については、コントローラ206を介して間接的に電力を供給しているが、各機器に対する電力の供給を直接的とするか間接的とするかについては、その機器の実装に基づき決めて良い。
【0032】
コントローラ206は、プロセッサ420、メモリ430、二次記憶装置440、外部インタフェース(IF)450、及び無線インタフェース(IF)460の組み合わせとして実装される。二次記憶装置440はHDDやフラッシュメモリなど、無線IF460が備える無線通信機能は無線LANなどとして実装される。コントローラ206は、電源204からの電力の供給を受け、棚搬送車20内部の他の機器、つまり、荷役部201、駆動部203、棚認識用センサ209、距離センサ220を制御する。また、コントローラ206は、無線通信機能により、棚搬送車管理装置10と通信し、動作指令を受信し、動作状況報告を行う。
【0033】
コントローラ206は、自身の位置を見失った場合を除き、棚搬送車管理装置10から受信した移動経路に沿った移動を行うため、自身の位置姿勢を算出し、自身の位置姿勢の算出結果と移動経路に基づき棚搬送車20の姿勢と目標となる移動方向との差分を算出し、差分の算出結果に基づき駆動部203の直近の動作パラメータを決定してもよい。自身の位置姿勢を算出する方法としては、距離センサ220が取得した計測結果と予めコントローラ206に記憶させている地図とを照合する方法などが考えられる。
【0034】
ここで、駆動部203の構成要素であるロータリエンコーダの計測結果を取得し、自己位置認識あるいは動作パラメータの決定に利用しても良い。また、棚30の識別情報の確認、棚30との相対位置姿勢ずれの確認を行うため、棚認識用センサ209が取得した計測結果に基づき、棚30の棚識別情報を認識し、棚搬送車20と棚30との相対位置姿勢ずれを算出する。
【0035】
棚認識用センサ209は、棚搬送車20が棚30の下に潜り込んだ際に、棚30の底面の当該棚30の識別情報を示す棚識別情報提供部となる棚底マーカを計測するために、鉛直上方向を計測可能なように搭載される。棚認識用センサ209は、棚底マーカの特徴に合わせて選定される。例えば、棚底マーカが2次元バーコードであれば、棚認識用センサ209は、グレーカメラ、カラーカメラなどとして実装され、棚30の正面方向も知ることができる。棚認識用センサ209は、コントローラ206と繋がり、コントローラ206からの指令に基づき、計測を行い、計測結果をコントローラ206へと送信する。また、棚30の棚識別情報提供部がICカード等である場合、棚認識用センサ209は、当該ICカードの読取装置となる。
【0036】
本実施例では、例えば、空間全体の形状地図を教示し、棚搬送車20が計測する空間内の部分形状が形状地図のどこに当てはまるかを算出することで自身の位置と姿勢を認識する方法を採用するため、距離センサ220は水平面上の障害物を計測するように取り付けられたレーザ距離センサやソナーなどとして実装される。
図3では、棚搬送車20の正面の中央付近に距離センサ220が取り付けられているが、例えば、棚搬送車20の正面の右端又は左端に取り付けられてもよい。距離センサ220の計測範囲が270度以上であれば、距離センサ220は、棚30の下に潜り込んだ場合に、当該棚30の三つの棚足を検出することができるので、棚搬送車20を棚30の底面の中央付近に正確に潜り込ませることができる。
【0037】
距離センサ220は、コントローラ206と繋がり、コントローラ206からの指令に基づき、計測を行い、計測結果をコントローラ206へと送信する。
【0038】
図4は、本実施例のコントローラ206のハードウェア構成図である。
【0039】
コントローラ206は、プロセッサ420、メモリ430、二次記憶装置440、外部インタフェース(IF)450、及び無線インタフェース(IF)460を有する。これらは、バス410を介して互いに接続される。
【0040】
プロセッサ420は、各種演算処理を実行する。二次記憶装置440は非揮発性の非一時的な記憶媒体であり、各種プログラム及び各種データが記憶される。メモリ430は揮発性の一時的な記憶媒体であり、メモリ430には、二次記憶装置440に記憶された各種プログラム及び各種データがロードされ、プロセッサ420がメモリ430にロードされた各種プログラムを実行し、メモリ430にロードされた各種データを読み書きする。
【0041】
外部IF450は、駆動部203、電源204、棚認識用センサ209、及び距離センサ220に接続されるインタフェースである。
【0042】
無線IF460は、棚搬送車管理装置10と無線で接続するためのインタフェースである。
【0043】
なお、棚搬送車管理装置10のハードウェア構成は、外部IF450を有さない点以外、
図4と同じであるので、説明を省略する。
【0044】
図5は、本実施例の棚モデルデータ500の説明図である。
【0045】
棚モデルデータ500は、棚搬送車20のコントローラ206のメモリ430に記憶され、距離センサ220の計測結果から棚足候補を抽出するための棚足に関するデータ、及び抽出された棚足候補に基づいて棚30の配置を決定するための棚足間の距離に関するデータが登録される。
【0046】
棚モデルデータ500は、棚種別ID501、棚足距離502、及び棚足モデル503を含む。
【0047】
棚種別ID501には、倉庫等に存在する棚30の種別の識別子が登録される。なお、棚足間の距離が同じ棚30は同じ種別に属し、棚足間の距離が異なる棚30は異なる種別に属する。例えば、
図2では、底面が長方形の棚30Aの種別「A」と、底面が正方形の棚30B〜30Eの種別「B」とがある。
【0048】
棚足距離502には、棚足間の距離が登録される。
図2のように、棚30の底面の頂点に棚足が設けられる場合、棚足間の距離は、棚30の辺の長さを示すことになるので、棚足距離502には棚30の辺の長さが登録されてもよい。底面が長方形の種別「A」の棚足距離502には、P1及びP2が登録され、底面が正方形の種別「B」の棚足距離502には、P1及びP1が登録される。
【0049】
棚足モデル503には、棚足の形状を特定可能なデータ、一つの棚足の二つの端点の最長距離(L0)、及びオフセット(δ)が登録される。棚足の形状を特定可能なデータとは、棚足の形状の種別(棚足が円柱であるか直方体であるか等)を示す情報、棚足が円柱である場合当該円柱の半径、及び棚足が直方体である場合短辺の長さと長辺の長さとが登録される。また、最長距離(L0)は、棚足が円柱である場合円柱の直径がL0となり、棚足が直方体である場合対角線の長さがL0となる。オフセット(δ)の詳細は
図9A〜
図9Cで説明する。
【0050】
なお、棚足の種別で棚足のL0が異なる場合、棚足の種別ごとに棚足モデル503が登録されてもよい。
【0051】
図6は、本実施例の潜り込み棚決定処理のフローチャートである。
【0052】
潜り込み棚決定処理は、棚搬送車20が潜り込む棚30を決定する処理であり、例えば、棚30が整列される前に棚30を整列する場合、又は棚搬送車20が自身の位置を見失った場合に実行される。潜り込み棚決定処理に対応するプログラムが棚搬送車20のコントローラ206のメモリ430に記憶され、プロセッサ420が当該プログラムを実行することによって、潜り込み棚決定処理を実行する。
【0053】
まず、棚搬送車20のコントローラ206は距離センサ220による計測を開始し、コントローラ206のプロセッサ420は、距離センサ220から計測結果を取得する(601)。距離センサ220の計測結果の詳細は
図7で説明する。
【0054】
次に、プロセッサ420はステップ601の処理で取得した計測結果から連続部分を抽出し、棚モデルデータ500に含まれる棚足モデル503を参照し、抽出した連続部分から棚足候補となる部分を抽出する(602)。連続部分の抽出処理の詳細は
図8A及び
図8Bで説明する。また、棚足候補の抽出処理の詳細は、
図9A〜
図9Cで説明する。
【0055】
次に、プロセッサ420は、棚モデルデータ500の棚足距離を参照し、ステップ602の処理で抽出された棚足候補から棚足距離を満たす棚足候補の組み合わせを抽出し、抽出した棚足候補の二つの組み合わせの基点となる基点棚足候補を抽出し、抽出した基点棚足候補に棚30を仮想的に配置した棚配置候補を算出する(603)。棚配置候補の算出処理の詳細は、
図10A〜
図14Cで説明する。
【0056】
次に、プロセッサ420は、ステップ603の処理で算出した棚配置候補ごとに、棚配置候補の棚30の棚足とならない棚足候補の数を示す棚足候補の超過数と、棚配置候補の棚30の棚足に対応する棚足候補が検出されていない位置の数を示す棚足候補の不足数とを算出する(604)。棚足候補の過不足の算出処理の詳細は、
図15A〜
図17Cで説明する。
【0057】
次に、プロセッサ420は、ステップ604の処理で算出した棚足候補の過不足に基づいて、ステップ603の処理で算出した棚配置候補から棚配置を決定する(605)。
【0058】
次に、プロセッサ420は、ステップ605の処理で決定した棚配置の各棚30からの搬送ルートを算出する(606)。搬送ルートは、例えば、各棚30から倉庫又は工場内の棚搬送車20が走行する走行通路までの最短距離のルートである。
【0059】
次に、プロセッサ420は、ステップ606の処理で算出した搬送ルートとステップ605の処理で決定した棚配置において棚30の配置位置とに基づいて、搬送できない棚30を潜り込む棚30の候補から除外して、搬送可能な棚30から潜り込む棚30を決定し(607)、潜り込み棚決定処理を終了する。具体的には、プロセッサ420は、搬送ルート上に棚配置の他の棚30が位置する棚を、搬送できない棚30として特定する。これによって、棚30が整列される前の状態であっても、棚搬送車20は、搬送できる棚30の下に潜り込むことができるので、効率的に棚30の整列作業を実施できる。
【0060】
なお、棚搬送車20が自身の位置を見失った場合に実行される潜り込み棚決定処理で潜り込み棚30が決定された場合、棚搬送車20が当該棚20に潜り込むと、棚認識用センサ209によって棚30の識別情報を取得し、取得した棚30の識別情報を棚搬送車管理装置10に送信する。棚搬送車管理装置10は、棚30の識別情報と棚30の位置情報とを対応付けて管理しているので、受信した棚30の識別情報に対応する位置情報を、棚搬送車20に送信する。棚搬送車20は、当該棚30の位置情報を受信することによって、自身の位置を認識できる。棚搬送車20が自身の位置を見失った場合に、当該潜り込み棚決定処理を実行して、いずれかの棚30に潜り込めば、自身の位置を特定できる。
【0061】
また、他の棚30より搬送頻度の低い棚30又は搬送されない棚30等の棚搬送車20の搬送により位置が変更される頻度が低い棚30をランドマーク棚として設置しておき、プロセッサ420は、当該ランドマーク棚を優先して潜り込む棚30に決定してもよい。ランドマーク棚の棚足には再帰性反射マーカーが取り付けられることによって、プロセッサ420は、距離センサ220の計測結果から反射強度が他の箇所より強い箇所をランドマーク棚の棚足として識別可能である。ランドマーク棚の正確な位置情報を棚搬送車管理装置10が管理しておくことによって、棚搬送車20は自身の位置を見失った場合であっても、当該ランドマーク棚に潜り込み、当該ランドマーク棚の識別情報を棚搬送車管理装置10に送信することによって、搬送頻度の高い棚30に潜り込むよりも、自身の正確な位置情報を認識できる。ランドマーク棚の正確な位置情報は、予め棚搬送車20が記憶しておき、棚搬送車20と棚搬送車管理装置10との通信を省略しても良い。
【0062】
また、棚搬送車20は、ステップ605の処理で決定した棚配置及びステップ607の処理で決定した潜り込む棚30を棚搬送車管理装置10に送信する。棚搬送車管理装置10は、棚搬送車20が潜り込む棚30の搬送先を、受信した棚配置の棚から所定範囲内の位置に決定する。そして、棚搬送車管理装置10は、搬送先の位置を棚搬送車20に送信する。棚搬送車20は、受信した搬送先の位置まで棚30を搬送する。例えば、所定範囲は、距離センサ220が距離を測定可能な範囲に設定されることが望ましい。これによって、棚搬送車20が潜り込んだ棚30を搬送中に自身の位置を見失っても、距離センサ220で距離を測定可能な範囲に棚30が存在するので、当該棚を検出できるので、自身の位置を再度認識できる。
【0063】
図7は、本実施例の距離センサ220による計測結果の説明図である。
【0064】
距離センサ220は、例えば赤外線等の光を照射し、障害物による反射光を受光することによって、自身から障害物までの距離を検出する。
図7では、棚30が
図2の状態で配置された倉庫内において距離センサ220が自身と障害物との距離を測定した計測結果を示す。
図7に示す計測結果は、黒丸701によって示される複数の計測データを含み、計測データは距離センサ220が照射した光を反射した箇所である。
【0065】
距離センサ220に近い計測データ倉庫内の壁と棚30の棚足とが障害物として検出される。具体的には、棚30Aの四つの棚足が障害物として検出され、棚30Bの三つの棚足が障害物として検出され、棚30Cの三つの棚足が障害物として検出され、棚30Dの一つの障害物として検出され、棚30Eの三つの棚足が障害物として検出される。
【0066】
図8Aは、本実施例の連続部分の抽出処理の説明図である。
【0067】
図6に示すステップ602の処理で、プロセッサ420は、計測結果に含まれる計測データから連続部分を抽出する。具体的には、プロセッサ420は、隣接する計測データ間の距離(d)が予め設定された閾値(d0)以下であるか否かを判定する。例えば、閾値(d0)は2cmに設定されるものとする。隣接する計測データ間の距離(d)が閾値(d0)以下であれば、プロセッサ420は、当該隣接する計測データは連続部分であると判断する。
【0068】
また、隣接する計測データ間の距離(d)が閾値(d0)より大きい場合、距離センサ220から隣接する計測データの中点を通る中心線801と隣接する計測データ間を通る線802との角度(φ)が予め設定された閾値(φ0)以上であれば、当該隣接する計測データは連続部分であると判断する。
【0069】
図8Bは、本実施例の計測結果から抽出された連続部分の説明図である。
【0070】
図8Aで説明した連続部分の抽出処理が
図7に示す計測結果に対して実行されると、
図8Bに示す連続部分810A〜810Sが抽出される。例えば、
図8Bに示す計測データ701A及び701Bは隣接する計測データである。計測データ701A及び701B間の距離(d)は閾値(d0)より大きく、距離センサ220から計測データ701A及び701Bの中点を通る中心線と計測データ701A及び701B間を通る線との角度(φ)は閾値(φ0)より小さくなるので、計測データ701A及び701Bは連続部分として抽出されない。
【0071】
また、計測データ701C及び701D間の距離(d)は閾値(d0)より大きいが、距離センサ220から計測データ701C及び701Dの中点を通る中心線と計測データ701C及び701D間を通る線との角度(φ)は閾値(φ0)より大きくなるので、計測データ701C及び701Dは連続部分として抽出される。
【0072】
距離センサ220から距離が遠いほど、隣接する計測データ間の距離は大きくなるが、例えば計測データ701C及び701Dのように同一線上に位置して連続部分として抽出されるべき隣接する計測データの中心線と当該隣接する計測データを通る線との角度は、大きくなる。一方、計測データ701A及び701Bのように同一線上に位置せず連続部分として抽出されるべきでない隣接する計測データの中心線と当該隣接する計測データを通る線との角度は小さくなる。このため、中心線と隣接する計測データ間を通る線との角度が閾値以上であるか否かが判定されることによって、距離センサ220から遠い計測データ間を連続部分として抽出することができる。
【0073】
次に、
図9A〜
図9Cを用いて、
図6に示すステップ603の処理の棚足候補を抽出する処理について説明する。
【0074】
棚足候補の抽出処理では、プロセッサ420は、各連続部分の両端となる二つの連続データ間の距離(L)を算出する。次に、プロセッサ420は、算出した距離(L)が棚モデルデータ500の棚足モデル503に登録された閾値(L0)以下であれば連続部分に一つの棚足候補が含まれると判断する。この場合、プロセッサ420は、距離センサ220から連続部分の中心位置までの距離(D)に予め設定されたオフセットαを加算した位置を棚足候補の配置位置として算出する。なお、オフセットαは、棚足が円柱である場合には当該棚足の半径であり、棚足が直方体である場合には(短辺長さ+対角線長さ)/4によって算出される値である。
【0075】
また、連続部分の両端となる二つの連続データ間の距離(L)が棚モデルデータ500の棚足モデル503に登録された閾値(L0)より大きい場合、プロセッサ420は、当該距離(L)が棚モデルデータ500の棚足モデル503に登録された閾値(L0)より大きく、かつ、閾値(L0)を二倍した値に棚足モデル503に登録されたオフセット(δ)加算した値(2L0+δ)以下であるか否かを判定する。
【0076】
連続部分の両端となる二つの連続データ間の距離(L)が2L0+δより大きい場合、プロセッサ420は当該連続部分を棚足候補として抽出しない。
【0077】
連続部分の両端となる二つの連続データ間の距離(L)が閾値(L0)より大きくかつ、2L0+δより小さい場合、プロセッサ420は当該連続部分に二つ又は三つの棚足候補が含まれるものと判断する。
【0078】
なお、棚足モデル503に登録されたオフセット(δ)は、連続部分の抽出に用いた閾値(d0)及び数1によって算出される値(d1)のいずれか大きい方に設定される。
【0080】
数1において、Dは、連続部分の中心位置から距離センサ220までの距離を示し、φは、
図8Aに示す角度(φ)であり、φ0は、
図8Aに示す角度の閾値(φ0)を示す。
【0081】
図9A及び
図9Bは、本実施例の連続部分に二つ又は三つの棚足候補が含まれる場合の棚足候補の配置位置を算出する処理の説明図である。
図9A及び
図9Bでは、説明を簡単にするために、棚足の形状が直方体である場合について説明する。
【0082】
まず、プロセッサ420は、連続部分800の両端の計測データ701E及び701Fそれぞれに、棚足モデル503に登録された棚足の形状が特定可能なデータによって特定される棚足の形状を示す棚足モデル900A及び900Bを仮想的に配置する。棚足モデル900A及び900Bを配置した状態は、
図9Aの(A)及び
図9Bの(A)に示す。
【0083】
次に、プロセッサ420は、棚足モデル900Aの辺が計測データ701Eと当該計測データ701Eに隣接する計測データ701Gとを通る線に一致するように、棚足モデル900Aを回転させる。同じく、プロセッサ420は、棚足モデル900Bの辺が計測データ701Fと当該計測データ701Fに隣接する計測データ701Hとを通る線に一致するように、棚足モデル900Bを回転させる。棚足モデル900A及び900Bを配置した状態は、
図9Aの(B)及び
図9Bの(B)に示す。
【0084】
図9Aの(B)では、連続部分に含まれる全ての計測データが棚足モデル900A及び900Bの辺上に位置するので、連続部分に二つの棚足候補が含まれるものであり、棚足候補の配置位置は、棚足モデル900A及び900Bを回転させた位置となる。
【0085】
一方、
図9Bの(B)では、連続部分に含まれる計測データのうち棚足モデル900A及び900Bの辺上に位置しない計測データが存在するので、プロセッサ420は、当該連続部分には三つの棚足候補が含まれると判断する。そして、プロセッサ420は、棚足モデル900A及び900Bの辺上に位置しない計測データに対応するように棚足モデル900Cを配置する。三つ目の棚足モデル900Cを配置した状態は、
図9Bの(C)に示す。この場合の棚足候補の配置位置は、
図9B(C)に示す棚足モデル900A〜900Cを配置した位置となる。
【0086】
なお、連続部分に一つの棚足候補が含まれる場合であっても、
図9A及び
図9Bで説明したように棚足モデルを仮想的に配置することによって、棚足候補の配置位置を算出してもよい。
【0087】
図9Cは、本実施例の計測結果から抽出された棚足候補の説明図である。
【0088】
図8Bに示す連続部分810A〜810Sに対して棚足候補の抽出処理が実行された場合、
図9Cに示す棚足候補910A〜910Uが抽出される。
【0089】
図8Bに示す連続部分810A及び810Iからは棚足候補が抽出されていない。また、連続部分810C、810D、及び810Dからはそれぞれ二つの棚足候補(910S及び910、910Q及び910R、910M及び910N)が抽出されている。
【0090】
次に、
図6に示すステップ603の処理において、棚モデルデータ500の棚足距離を満たす棚足候補の組み合わせを抽出する処理について
図10A及び
図10Bを用いて説明する。
【0091】
図5に示す棚モデルデータ500では、棚足距離がP1である棚30の辺(棚辺)と棚足距離がP2である棚辺とがある。プロセッサ420は、二つの棚足候補の距離(P)を算出し、算出した距離PとP1との差分が予め設定された閾値以下である棚足候補の組み合わせを棚足距離P1の棚辺候補として抽出し、算出した距離PとP2との差分が予め設定された閾値以下である棚足候補の組み合わせを棚足距離P2の棚辺候補として抽出する。なお、閾値は例えば3cmであるとする。
【0092】
図10Aは、本実施例の棚足距離P1の棚辺候補として抽出された棚足候補の組み合わせの説明図である。
【0093】
棚足距離P1の棚辺候補として抽出された棚足候補の組み合わせは、棚足候補910A及び910Bの組み合わせ、棚足候補910B及び910Cの組み合わせ、棚足候補910B及び910Eの組み合わせ、棚足候補910C及び910Gの組み合わせ、棚足候補910E及び910Gの組み合わせ、棚足候補910H及び910Iの組み合わせ、棚足候補910H及び910Kの組み合わせ、棚足候補910L及び910Qの組み合わせ、棚足候補910O及び910Qの組み合わせ、並びに棚足候補910R及び910Uの組み合わせである。
【0094】
図10Bは、本実施例の棚足距離P2の棚辺候補として抽出された棚足候補の組み合わせの説明図である。
【0095】
棚足距離P2の棚辺候補として抽出された棚足候補の組み合わせは、棚足候補910A及び910Gの組み合わせ、棚足候補910B及び910Kの組み合わせ、棚足候補910C及び910Lの組み合わせ、棚足候補910E及び910Iの組み合わせ、棚足候補910E及び910Uの組み合わせ、棚足候補910F及び910Iの組み合わせ、棚足候補910H及び910Qの組み合わせ、棚足候補910I及び910Oの組み合わせ、棚足候補910G及び910Rの組み合わせ、並びに棚足候補910L及び910Pの組み合わせである。
【0096】
次に、プロセッサ420は、棚足距離P1及びP2の棚辺候補として抽出された棚足候補の組み合わせの棚足候補から処理対象の棚足候補を選択する。そして、プロセッサ420は、選択した処理対象の棚足候補が棚足距離P1の棚辺候補として抽出された二つの棚足候補の組み合わせに含まれるか、棚足距離P1の棚辺候補として抽出された一つの棚足候補の組み合わせに含まれ、かつ棚足距離P2の棚辺候補として抽出された一つの棚足候補の組み合わせに含まれる場合、当該処理対象の棚足候補を棚30の頂点となり得る基点棚足候補として抽出する。
【0097】
本実施例では、
図5で説明したように、種別「A」の棚30は棚足距離P1の棚辺を短辺であり、棚足距離P2の棚辺が長辺である。種別「B」の棚30は短辺及び長辺ともに棚足距離P1の棚辺である。このため、棚辺候補として抽出された棚足候補の組み合わせに含まれる棚足候補が、棚足距離P1の棚辺と棚足距離P2の棚辺との基点、又は棚足距離P1の二つの棚辺の基点となる場合、当該棚足候補を基点棚足候補として抽出する。
【0098】
図10A及び
図10Bに示す棚足距離P1又は棚足距離P2の棚辺候補として抽出された棚足候補においては、棚足候補910B、910C、910E、910G、910H、910I、910O、910Q、910R、及び910Uが基点棚足候補として抽出される。
【0099】
図11A〜
図11Dを用いて各基点棚足候補がどの棚辺の基点となるかについて説明する。
【0100】
図11A〜
図11Dを用いて各基点棚足候補がどの棚辺の基点となるかについて説明する。
【0101】
図11Aは、本実施例の基点棚足候補910Bを基点とする棚辺の説明図である。棚足候補910Bは、棚足候補910Aとの間の棚足距離P1の棚辺及び棚足候補910Cとの間の棚足距離P1の棚辺の基点となり、また、棚足候補910Cとの間の棚足距離P1の棚辺及び棚足候補910Eとの間の棚足距離P1の棚辺の基点となる。このため、棚足候補910Bは、棚足候補910A及び910Cを頂点とする種別「B」の棚30の頂点となる可能性があり、また、棚足候補910C及び910Eを頂点とする種別「B」の棚30の頂点となる可能性がある。
【0102】
また、
図11A〜
図11Dには図示していないが、基点棚足候補910Cは、棚足候補910Bとの間の棚足距離P1の棚辺及び棚足候補910Gとの間の棚足距離P1の棚辺の基点となる。このため、棚足候補910Cは、棚足候補910B及び910Gを頂点とする種別「B」の棚30の頂点となる可能性がある。
【0103】
図11Bは、本実施例の基点棚足候補910Eを基点とする棚辺の説明図である。棚足候補910Eは、棚足候補910Bとの間の棚足距離P1の棚辺及び棚足候補910Gとの間の棚足距離P1の棚辺の基点となり、また、棚足候補910Bとの間の棚足距離P1の棚辺及び棚足候補910Iとの間の棚足距離P2の棚辺の基点となり、また、棚足候補910Gとの間の棚足距離P1の棚辺及び棚足候補910Uとの間の棚足距離P2の棚辺の基点となる。このため、棚足候補910Eは、棚足候補910B及び910Gを頂点とする種別「B」の棚30の頂点となる可能性があり、棚足候補910B及び910Iを頂点とする種別「A」の棚30の頂点となる可能性があり、棚足候補910G及び910Uを頂点とする種別「A」の棚30の頂点となる可能性がある。
【0104】
また、
図11A〜
図11Dには図示していないが、基点棚足候補910Gは、棚足候補910Cとの間の棚足距離P1の棚辺及び棚足候補910Eとの間の棚足距離P1の棚辺の基点となり、また、棚足候補910Eとの間の棚足距離P1の棚辺及び棚足候補910Rとの間の棚足距離P2の棚辺の基点となる。このため、棚足候補910Gは、棚足候補910C及び910Eを頂点とする種別「B」の棚30の頂点となる可能性があり、棚足候補910E及び910Rを頂点とする種別「A」の棚30の頂点となる可能性がある。
【0105】
また、
図11A〜
図11Dには図示していないが、基点棚足候補910Hは、棚足候補910Iとの間の棚足距離P1の棚辺及び棚足候補910Kとの間の棚足距離P1の棚辺の基点となり、また、棚足候補910Iとの間の棚足距離P1の棚辺及び棚足候補910Qとの間の棚足距離P2の棚辺の基点となる。このため、棚足候補910Hは、棚足候補910I及び910Kを頂点とする種別「B」の棚30の頂点となる可能性があり、棚足候補910I及び910Qを頂点とする種別「A」の棚30の頂点となる可能性がある。
【0106】
また、
図11A〜
図11Dには図示していないが、基点棚足候補910Iは、棚足候補910Hとの間の棚足距離P1の棚辺及び棚足候補910Oとの間の棚足距離P2の棚辺の基点となる。このため、棚足候補910Iは、棚足候補910H及び910Oを頂点とする種別「A」の棚30の頂点となる可能性がある。
【0107】
また、
図11A〜
図11Dには図示していないが、基点棚足候補910Oは、棚足候補910Qとの間の棚足距離P1の棚辺及び棚足候補910Iとの間の棚足距離P2の棚辺の基点となる。このため、棚足候補910Oは、棚足候補910Q及び910Iを頂点とする種別「A」の棚30の頂点となる可能性がある。
【0108】
図11Cは、本実施例の基点棚足候補910Qを基点とする棚辺の説明図である。棚足候補910Qは、棚足候補910Lとの間の棚足距離P1の棚辺及び棚足候補910Oとの間の棚足距離P1の棚辺の基点となり、また、棚足候補910Oとの間の棚足距離P1の棚辺及び棚足候補910Hとの間の棚足距離P2の棚辺の基点となる。このため、棚足候補910Qは、棚足候補910L及び910Oを頂点とする種別「B」の棚30の頂点となる可能性があり、棚足候補910O及び910Hを頂点とする種別「A」の棚30の頂点となる可能性がある。
【0109】
また、
図11A〜
図11Dには図示していないが、基点棚足候補910Rは、棚足候補910Uとの間の棚足距離P1の棚辺及び棚足候補910Gとの間の棚足距離P2の棚辺の基点となる。このため、棚足候補910Rは、棚足候補910U及び910Gを頂点とする種別「A」の棚30の頂点となる可能性がある。
【0110】
図11Dは、本実施例の基点棚足候補910Uを基点とする棚辺の説明図である。棚足候補910Rとの間の棚足距離P1の棚辺及び棚足候補910Eとの間の棚足距離P2の棚辺の基点となる。このため、棚足候補910Uは、棚足候補910R及び910Eを頂点とする種別「A」の棚30の頂点となる可能性がある。
【0111】
次に、プロセッサ420は、抽出した各基点棚足候補、及び当該基点棚足候補を基点とする二つの棚辺のそれぞれの端点となる棚足候補を頂点とする棚30を仮想的に配置し、各基点棚足候補を基点とする棚辺から同一の棚30の棚辺を削除することによって、各基点棚足候補を整理する。
【0112】
図12は、本実施例の棚30が各基点棚足候補に仮想的に配置された状態の説明図である。
図13Aは、本実施例の整理後の基点棚足候補910Bを基点とする棚辺の説明図であり、
図13Bは、本実施例の整理後の基点棚足候補910Eを基点とする棚辺の説明図であり、
図13Cは、本実施例の整理後の基点棚足候補910Qを基点とする棚辺の説明図であり、
図13Dは、本実施例の整理後の基点棚足候補910Uを基点とする棚辺の説明図である。
【0113】
基点棚足候補910Bには、棚足候補910A及び910Cを頂点とする種別「B」の棚1210Aが仮想的に配置される。また、基点棚足候補910Bには、棚足候補910C及び910Eを頂点とする種別「B」の棚1210Bが仮想的に配置される。棚1210Bは、棚足候補910B、910C、910G、及び910Eを頂点とするので、プロセッサ420は、
図13Aに示すように、基点棚足候補910Bの棚足候補910Cとの間の棚足距離P1の棚辺及び棚足候補910Cとの間の棚足距離P1の棚辺に、棚足候補910Gも関連付ける。
【0114】
また、プロセッサ420は、棚1210Bの頂点となる基点棚足候補910C、910E、及び910Gから棚1210Bの棚辺を削除する。例えば、基点棚足候補910Eにおいては、
図13Bに示すように、棚足候補910Bとの間の棚辺及び棚足候補910Gとの間の棚辺の関連付けを削除する。
【0115】
基点棚足候補910Eには、棚足候補910B及び910Iを頂点とする種別「A」の棚1200Aが仮想的に配置され、棚足候補910G、910R、及び910Uを頂点とする種別「A」の棚1200Bが仮想的に配置される。棚1200Bは、棚足候補910E、910G、910R、及び910Uを頂点とするので、プロセッサ420は、
図13Bに示すように、基点棚足候補910Eの棚足候補910Gとの間の棚足距離P1の棚辺及び棚足候補910Uとの間の棚足距離P2の棚辺に、棚足候補910Rも関連付ける。
【0116】
また、プロセッサ420は、棚1200Bの頂点となる基点棚足候補910G、910R、及び910Uから棚1200Bの棚辺を削除する。例えば、基点棚足候補910Uにおいては、
図13Dに示すように、棚足候補910Rとの間の棚辺及び棚足候補910Eとの間の棚辺の関連付けを削除する。
【0117】
基点棚足候補910Hには、棚足候補910I及び910Kを頂点とする種別「B」の棚1210Cが仮想的に配置され、棚足候補910I、910O、及び910Qを頂点とする種別「A」の棚1200Cが仮想的に配置される。棚1200Cは、棚足候補910H、910I、910O、及び910Qを頂点とするので、プロセッサ420は、基点棚足候補910Hの棚足候補910Iとの間の棚足距離P1の棚辺及び棚足候補910Qとの間の棚足距離P2の棚辺に、棚足候補910Oも関連付ける。
【0118】
また、プロセッサ420は、棚1200Cの頂点となる基点棚足候補910I、910O、及び910Qから棚1200Cの棚辺を削除する。例えば、基点棚足候補910Qにおいては、
図13Cに示すように、棚足候補910Oとの間の棚辺及び棚足候補910Hとの間の棚辺の関連付けを削除する。
【0119】
基点棚足候補910Qには、棚足候補910L及び910Oを頂点とする種別「B」の棚1210Dが仮想的に配置される。
【0120】
このように、各基点棚足候補の棚辺との関係が整理される。
【0121】
次に、プロセッサ420は、ある棚30の棚足となった棚足候補が他の棚30の棚足とならないように棚配置候補を算出する。
図12に示す例では、棚配置候補に棚1200Aが含まれるものとすると、棚1200Aは、棚足候補910B、910E、及び910Iを頂点となり、棚足候補910B、910E、及び910Iは棚1200Aとなる。このため、棚足候補910Bを頂点とする棚1210A、棚足候補910B及び910Eを頂点とする棚1210B、棚足候補910Eを頂点とする棚1200B、並びに、棚足候補910Iを頂点とする棚1210Cは当該棚配置候補に含まれず、これらの棚1210A、1210B、1200B、及び1210C以外の棚と棚1200Aとの全ての組み合わせ分の棚配置候補が算出される。ここで、各棚配置候補に対し、どの棚30にも利用されていない2つの棚足候補が棚辺候補を形成する場合、その棚辺候補が構成要素となる棚30をその位置に設置する新たな棚配置候補を追加しても良い。本実施例では、説明を簡単にするために、
図14A〜
図14Cに示す棚配置候補を例に説明する。
【0122】
図14Aは、本実施例の第1棚配置候補の説明図である。第1棚配置候補は、棚1210A、1210C、1210D、及び1200Bを含む。
【0123】
図14Bは、本実施例の第2棚配置候補の説明図である。第2棚配置候補は、棚1210A、1200B、及び1200Cを含む。
【0124】
図14Cは、本実施例の第3棚配置候補の説明図である。第3棚配置候補は、棚1200A及び1210Dを含む。
【0125】
次に、
図6に示すステップ604の処理における各棚配置候補の棚足候補の過不足の算出について
図15A〜
図15Cを用いて説明する。
【0126】
図15Aは、本実施例の第1棚配置候補の棚足候補の過不足の算出の説明図である。
【0127】
第1棚配置候補では、棚1210A、1210C、1210D、及び1200Bの棚足とならない棚足候補は910D、910F、910J、910M、910N、910P、910S、及び910Tである。第1棚配置候補のいずれの棚の棚足とならない棚足候補の数を示す棚足候補の超過数は、8個である。
【0128】
また、第1棚配置候補では、棚1210A、1210C、及び1210Dの棚足となるべき棚足候補がそれぞれ一つずつ抽出されていない。第1棚配置候補の棚足候補の不足数は、3個である。
【0129】
これより、複数の棚配置候補から棚足候補の過不足に基づき棚配置を決定する。ここで、その決定のための棚配置候補の評価する値として、例えば、棚配置候補の過不足数が考えられる。棚配置候補の棚足候補の過不足数とは、棚配置候補の棚足候補の超過数と棚配置候補の棚足候補の不足数とを加算して算出する。過不足数が小さい棚配置候補ほど尤もらしいと言える。第1棚配置候補の棚足候補の過不足数は11となる。過不足数は棚配置候補の評価の一例であり、本発明はそれに限るものではない。他の評価の一例としては、超過数と不足数とを重み付けをして足し合わせた評価値を使うことが考えられる。距離センサ220がノイズを多く含むような特性の場合は、超過数が必然的に増える。このような場合は、不足数が重視されるように重み付けをすることで、棚配置候補の尤もらしさを正しく評価することができる。逆に、距離センサ220のノイズの影響を軽減するため、
図8Bの連続部分810Eのように計測点の少ない連続部分810を棚足候補910に含めない棚足候補抽出方法も考えられるが、この方法では、不足数が必然的に増える。このような場合は、超過数を重視するように重み付けをすることで、棚配置候補の尤もらしさを正しく評価することができる。
【0130】
図15Bは、本実施例の第2棚配置候補の棚足候補の過不足の算出の説明図である。
【0131】
第2棚配置候補では、棚1210A、1200C、及び1200Bの棚足とならない棚足候補は910D、910F、910J、910K、910L、910M、910N、910P、910S、及び910Tであり、第2棚配置候補のいずれの棚の棚足とならない棚足候補の超過数は、10個である。
【0132】
また、第2棚配置候補では、棚1210Aの棚足となるべき棚足候補が一つ抽出されていないので、第2棚配置候補の棚足候補の不足数は、1個である。
【0133】
したがって、第2棚配置候補の棚足候補の過不足数は11となる。
【0134】
図15Cは、本実施例の第3棚配置候補の棚足候補の過不足の算出の説明図である。
【0135】
第3棚配置候補では、棚1200A及び1210Dの棚足とならない棚足候補は910A、910C、910D、910F、910G、910H、910J、910K、910M、910N、910P、910S、910R、910T、及び910Uであり、第3棚配置候補のいずれの棚の棚足とならない棚足候補の超過数は、15個である。
【0136】
また、第3棚配置候補では、棚1200A及び1210Dの棚足となるべき棚足候補がそれぞれ一つずつ抽出されていないので、第3棚配置候補の棚足候補の不足数は、2個である。
【0137】
したがって、第3棚配置候補の棚足候補の過不足数は17となる。
【0138】
以上によって、プロセッサ420は、過不足数が最小となる第1棚配置候補又は第2棚配置候補を棚配置として決定する。
【0139】
なお、プロセッサ420は、過不足を算出する場合、オクルージョンを考慮して過不足を算出してもよい。オクルージョンとは、例えば、ある棚足が当該棚足より距離センサ200に近い棚足や他の物体に隠れてしまうことである。プロセッサ420は、このような棚足を不足数としてカウントしないことによって、オクルージョンを考慮した過不足を算出できる。また、プロセッサ420は、過不足を算出する際、距離センサ220の計測範囲を考慮して過不足を算出しても良い。ある棚30の棚足が距離センサ220の計測範囲に入っていない場合は、不足数としてカウントしないことにより、棚配置候補の尤もらしさを正しく評価できる。オクルージョンを考慮した過不足算出の処理について
図16A〜
図16Cを用いて説明する。
【0140】
図16Aは、本実施例の第1棚配置候補のオクルージョンを考慮した棚足候補の過不足の算出の説明図である。
【0141】
まず、プロセッサ420は、棚足となるべき棚足候補が抽出されていない棚の棚足となるべき位置を特定する。例えば、棚1210Aであれば、棚足候補910Bと910Cとの間の線に平行な棚足候補910Aからの線と、棚足候補910Aと棚足候補910Bとの間の線に平行な棚足候補910Cからの線との交点が、抽出されていない棚足の位置となる。
【0142】
次に、プロセッサ420は、抽出されていない棚足の位置から距離センサ220までの線上に棚足候補として抽出された計測データが存在する場合、抽出されていない棚足の位置は、当該計測データの棚足候補によってオクルージョンが発生していると判断する。そして、プロセッサ420は、当該位置は棚足候補が不足していないものとして、算出した不足数に1を加算する。
【0143】
図16Aでは、棚1210A、1210C、及び1210Dの抽出されていない棚足の位置は、それぞれ、位置1600A、1600B、及び1600Cと特定される。
【0144】
位置1600Aと距離センサ220との間の線上には棚足候補910Bとして抽出された計測データが存在するので、該位置1600Aは棚足候補の不足数としてカウントしない。同様に、位置1600Bと距離センサ220との間の線上には棚足候補910Kとして抽出された計測データが存在するので、該位置1600Bは棚足候補の不足数としてカウントせず、位置1600Cと距離センサ220との間の線上には棚足候補910Lとして抽出された計測データが存在するので、該位置1600Cは棚足候補の不足数としてカウントしない。
【0145】
このため、第1棚配置候補の棚足候補の不足数は0個であり、第1棚配置候補の棚足候補の過不足数は8となる。
【0146】
図16Bは、本実施例の第2棚配置候補のオクルージョンを考慮した棚足候補の過不足の算出の説明図である。
【0147】
図16Bでは、棚1210Aの抽出されていない棚足の位置は、それぞれ、位置1600Aと特定される。
【0148】
位置1600Aと距離センサ220との間の線上には棚足候補910Bとして抽出された計測データが存在するので、該位置1600Aは棚足候補の不足数としてカウントしない。このため、第2棚配置候補の棚足候補の不足数は2個であり、第2棚配置候補の棚足候補の過不足数は10となる。
【0149】
図16Bは、本実施例の第2棚配置候補のオクルージョンを考慮した棚足候補の過不足の算出の説明図である。
【0150】
図16Bでは、棚1210Aの抽出されていない棚足の位置は、位置1600Aと特定される。
【0151】
位置1600Aと距離センサ220との間の線上には棚足候補910Bとして抽出された計測データが存在するので、該位置1600Aは棚足候補の不足数としてカウントしない。このため、第2棚配置候補の棚足候補の不足数は2個であり、第2棚配置候補の棚足候補の過不足数は10となる。
【0152】
図16Cは、本実施例の第3棚配置候補のオクルージョンを考慮した棚足候補の過不足の算出の説明図である。
【0153】
図16Cでは、棚1200A及び棚1210Dの抽出されていない棚足の位置は、それぞれ、位置1600D及び1600Cと特定される。
【0154】
位置1600Dと距離センサ220との間の線上には棚足候補910Eとして抽出された計測データが存在するので、該位置1600Dは棚足候補の不足数としてカウントしない。
図16Aで説明したように、位置1600Cも棚足候補の不足数としてカウントしない。このため、第3棚配置候補の棚足候補の不足数は0個であり、第3棚配置候補の棚足候補の過不足数は15となる。
【0155】
したがって、過不足が最小となる第1棚配置候補となり、第1棚配置候補が棚配置として決定される。
【0156】
以上によって、棚搬送車20は、棚足のオクルージョンを考慮して棚配置を決定できるので、より正確に棚配置を決定することができる。以上は、棚足候補がオクルージョンを発生させる例を示したが、本発明は、計測データの連続部分によって表現される他の物体がオクルージョンを発生させる場合も含む。その場合は、上述の説明の棚足候補を計測データの連続部分と置き換えれば実施できる。
【0157】
なお、プロセッサ420は、棚配置候補の棚30に干渉する棚足候補の数又は計測データの連続部分の数又は長さを考慮して、棚配置候補を評価しても良い。そのうち、干渉する棚足候補の数を考慮する処理について
図17A及び
図17Bを用いて説明する。棚配置候補の棚30に干渉する棚足候補又は計測データの連続部分とは、棚配置候補の棚30が構成する矩形領域内に位置する棚足候補又は計測データの連続部分である。例えば、棚30では棚足と棚足との間に棚足が存在しないので、二つの棚足間に棚足候補が位置する場合には、この棚30の配置は誤った配置である可能性が高い。
【0158】
第1棚配置候補は、棚30に干渉する棚足候補は存在しない。
【0159】
図17Aは、本実施例の第2棚配置候補を評価する際に棚30に干渉する棚足候補の数を考慮する場合の説明図である。
【0160】
第2棚配置候補では、棚1200Cの棚足候補910Hと棚足候補910Qとの間に棚足候補910K及び910Lが位置する。第2棚配置候補の干渉する棚足候補の数は2個である。干渉する棚足候補の数を考慮した棚配置候補の棚足候補の評価値の一例としては、棚配置候補の棚足候補の超過数と棚配置候補の棚足候補の不足数と干渉する棚足候補の数とを加算して算出した値が考えられる。この評価値は過不足数と同様に小さい方が尤もらしい棚配置候補であることを表している。このため、第2棚配置候補の評価値は、15である。
【0161】
図17Bは、本実施例の第3棚配置候補を評価する際に棚30に干渉する棚足候補の数を考慮する場合の説明図である。
【0162】
第3棚配置候補では、棚1200Aの棚足候補910Eと棚足候補910Iとの間に棚足候補910H及び910Gが位置し、棚足候補910Bと抽出されていない棚足との間に棚足候補910Cが位置する。第3棚配置候補の干渉する棚足候補の数は3個である。このため、第3棚配置候補の評価値は、20である。
【0163】
この場合、評価値が最小となる第1棚配置候補となり、第1棚配置候補が棚配置として決定される。
【0164】
以上によって、棚搬送車20は、干渉する棚足候補の数を考慮して棚配置を決定できるので、より正確に棚配置を決定することができる。以上は、棚足候補の干渉を考慮する一例であったが、同様に計測データの連続部分で表現される他の物体の干渉を考慮する場合も考えることができる。ここで、計測データの連続部分は、棚足候補の長さよりも長い。そのため、計測データの連続部分の長さが、棚足候補の何個分の長さに相当するかを算出し、それが仮にN個であった場合、その計測データの連続部分の干渉は棚足候補の干渉N個分に相当すると考えるべきである。これにより、棚配置候補の評価値を算出することができる。
【0165】
本実施例によれば、棚搬送車30は、棚モデルデータ500に登録された棚足距離を満たすように、距離センサ220による計測結果から抽出された棚足候補に棚30仮想的に配置した複数の棚配置候補を算出し、算出した棚配置候補の棚配置候補の過不足を算出し、算出した過不足に基づいて棚配置を決定し、決定した棚配置から棚搬送車20の移動先となる棚30を決定する。これによって、距離センサ220の計測範囲に複数の棚30が存在する場合であっても、移動先となる棚30を決定でき、ひいては、棚搬送車20が自身の位置を見失った場合であっても、自身の位置を再認識できる。また、棚30が整列される前であっても、棚搬送車30は、棚30を自動的に検出して移動することができるので、整列前の棚30を整列させることができる。
【0166】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、及び置換をすることが可能である。
【0167】
また、各実施例の構成の一部について、他の構成の追加、削除、及び置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
【0168】
また、前記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
【0169】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)等の記録媒体に置くことができる。
【0170】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。