以下、本発明に係る位置検出システムの各種実施形態について、図面を用いて説明する。
「第一の実施形態」
位置検出システムの第一の実施形態について、図1〜図16を用いて説明する。
本実施形態の位置検出システムは、図1に示すように、長方形状の空間S内に存在する複数の棚10-1,10-2,10-3の位置を検出するものである。
本実施形態の棚10は、図2に示すように、直方体形状を成し、天板19、三枚の側板11,12,13、三枚の棚板14,15,16を有している。各棚板14,15,16には、それぞれ物品検出用アンテナa1,a2,a3が設けられている。この物品検出用アンテナa1,a2,a3は、棚板14,15,16に載せられた無線タグ付き物品の無線タグからの識別情報を受信し、この識別情報によりこの棚10のどの棚板にどのような物品が載せられているかを検知するために設けられている。近年、このように、棚板等に物品検出アンテナが設けられている棚をスマートシェルフと呼んでいる。この棚10の4つの側面には、それぞれ、棚・無線タグs0,s1,s2,s3が設けられている。各棚・無線タグは、取り付けられている側面に対して垂直な方向に指向性が強いものである。また、天板19上には、他の棚10等の無線タグからの識別情報を受信するための位置検出アンテナpが設けられている。
各物品検出用アンテナa1,a2,a3及び位置検出アンテナpは、いずれも、リーダ20に接続され、このリーダ20が制御端末21に接続されている。
リーダ20は、各アンテナa1,a2,a3,pで受信した無線信号から搬送無線周波数を除去してベースバンド信号に復元する一方で、逆にベースバンド信号を搬送無線周波数に載せてアンテナから無線信号を送出させるRF(Radio Frequency)部(図示されていない)と、ベースバンド信号を復調して例えばIP(Internet Protocol)パケット等に復元する一方で、逆にIPパケット等をベースバンド信号に変調するベースバンド部(図示されていない)と、等を有している。RF部には、アンテナa1,a2,a3,pが受信した電波の強度を検知するAGC(Auto Gain Control)が設けられている。制御端末21は、小型のコンピュータで、リーダ20に駆動指示を与える一方で、リーダ20で読み取った情報を外部に送る役目を担っている。
図1に示すように、各棚10-1,10-2,10-3の制御端末21-1,21-2,21-3には、位置管理サーバ30が接続されている。
複数の棚10-1,10-2,10-3が設置されている長方形状の空間Sには、その四隅のうち、二つの隅に、基準無線タグb1,b2が固定されている。なお、以上で述べた棚・無線タグs、基準無線タグb及び物品無線タグは、いずれも、同一構成のもので、自身の識別情報を記憶しており、この識別情報を無線送信するものである。また、無線タグとしては、外部からの電波を受信し、この電波から自身が駆動するための電力を生み出すパッシブタイプと、電池を備え、この電池からの電力で駆動するアクティブタイプとがあるが、本実施形態ではいずれのタイプを用いてもよい。
位置管理サーバ30は、機能的には、各制御端末21-1,21-2,21-3との間でデータの送受信を行う送受信部31と、各制御端末21-1,21-2,21-3を介して各リーダ20-1,20-2,20-3を制御するリーダ制御部32と、送受信部31が受信した情報(検出データ)を解釈する検出データ解釈部33と、送受信部31が受信した検出データ等に基づいて、各棚10-1,10-2,10-3の位置を求める相対位置/絶対位置決定部(以下、単に位置決定部とする)34と、外部からの指示やデータを受け付ける入力部36と、位置検定部34が求めた各棚の位置等を出力する出力部37と、以上の機能部を制御する主制御部35と、各種データを記憶しておくファイル40と、を備えている。入力部36には、キーボード等の入力装置38が接続され、出力部37には、ディスプレイやプリンタ等の出力装置39が接続されている。なお、この位置管理サーバ30は、コンピュータで、上記各機能部は、いずれも、メモリに記憶されている位置検出プログラムをCPUが実行することで機能する。
ファイル40には、各棚10の棚・無線タグsの識別情報が登録されている棚タグ管理テーブル41と、各基準無線タグbの識別情報が登録されている基準タグ管理テーブル42と、送受信部31が受信したままの生検出データが記憶される生検出データテーブル43と、検出データ解釈部33による生検出データの解釈結果が記憶される解釈済み検出データテーブル44と、位置決定部34で求められた各棚10の位置等が記憶される棚情報テーブル45とが設定されている。なお、このファイル40には、さらに、棚板に載せられる物品名等とこの物品に付されている物品無線タグの識別情報とが対応付けられている物品タグ管理テーブルも設定されているが、本願の発明と直接関係ないので、ここでは、この物品タグテーブルの説明を省略する。
棚タグ管理テーブル41(41-1,41-2,41-3)は、図3に示すように、各棚毎に存在し、棚10の識別情報が登録されている棚ID欄411と、この棚10の4つの棚・無線タグs0,s1,s2,s3の識別情報が登録されている棚タグID欄412とがある。4つの棚・無線タグs0,s1,s2,s3のそれぞれの取り付け側面には、図2に示すように、棚10の側面の位置に応じた論理位置番号[0][1][2][3]が設定されている。具体的には、棚10の開口側の側面の論理位置番号を[3]とし、この開口側の側面を基準として、時計回りに、各側面の論理位置番号を順に[2][1][0]としている。そこで、棚タグID欄412には、棚・無線タグsから送信される識別情報と、この棚・無線タグsが取り付けられている側面の論位置番号とが対応付けられて登録されている。
具体的に、棚10-1に関する棚タグ管理テーブル41-1の棚ID欄411には、この棚10-1の識別情報として「sh-1」が登録され、棚タグID欄412の論理位置番号[0]に対応する棚・無線タグの識別情報として「GAB3D」が登録され、棚タグID欄412の論理位置番号[1]に対応する棚・無線タグの識別情報として「4J2FK」が登録されている。
基準タグ管理テーブル42(42-1,42-2)は、図4に示すように、各基準無線タグ毎に存在し、基準無線タグbの識別情報が登録されている基準タグID欄421と、この基準無線タグbが固定されている空間S内の位置を示す座標が登録さている位置情報欄422とがある。
具体的に、基準無線タグb1に関する基準タグ管理テーブル42-1の基準タグID欄421には、この基準無線タグb1の識別情報として「RTO2K」が登録され、位置情報欄42には、座標(0.0,3.0)が登録されている。
ここで、空間Sの座標設定について、図1を用いて説明する。
この空間Sは、10m×3mの長方形状を成しており、四隅のそれぞれの座標を(0.0,0.0)、(10.0,0.0)、(0.0,3.0)、(10.0,3.0)としている。また、ここでは、点(0.0,0.0)から点(10.0,0.0)へ向かう方向を+X方向、点(0.0,0.0)から点(0.0,3.0)へ向かう方向を+Y方向としている。以上のような座標設定されている空間S内で、二つの基準無線タグb1,b2は、それぞれ、点(0.0,3.0)、点(10.0,3.0)の位置に固定されている。
以上の棚タグ管理テーブル41及び基準タグ管理テーブル42の各データは、いずれも、実際に棚10の位置を検出する前に、位置管理サーバ30のファイル40に予め登録しておく。
生検出データテーブル43(43-1,43-2,43-3)は、図5に示すように、各位置検出アンテナ毎に、言い換えると各棚毎に存在し、該当棚10の識別情報が登録されている棚ID欄431と、該当棚10の位置検出アンテナpで受信された無線タグの識別情報が記憶されるタグID欄432と、この位置検出アンテナpで受信された識別情報が含まれている電波の強度が記憶される電波強度欄433とがある。このタグID欄432には、他の棚10に設けられている棚・無線タグsの識別情報の他に、基準無線タグbの識別情報も記憶される。なお、一つの棚10には、この棚10の4つの側面のそれぞれに他の棚が対向可能なので、一つの棚10の位置検出アンテナpで受信できる棚・無線タグsの識別情報としては4以上あり、さらに、この位置検出アンテナpで基準無線アンテナの識別情報も受信できるので、タグID欄432及び電波強度欄433には、それぞれ、5以上の空欄が設定されている。
この生検出データテーブル43に対する具体的な記憶例に関して、更に、後述の解釈済み検出データテーブル44及び棚情報テーブル45に対する具体的な記憶例に関しては、位置管理サーバ30による棚10の位置検出動作を説明する際に説明する。
解釈済み検出データテーブル44(44-1,44-2,44-3)も、生検出データテーブル43と同様、図6に示すように、各位置検出アンテナ毎に、言い換えると各棚毎に存在する。この解釈済み検出データテーブル44は、該当棚10の識別情報が登録されている棚ID欄441と、棚・無線タグsの識別情報の解釈結果が記憶される棚タグ情報欄442と、基準無線タグbの識別情報の解釈結果が記憶される基準タグ情報欄443とがある。棚タグ情報欄442及び基準タグ情報欄443の記憶される情報の詳細については、後述する。
棚情報テーブル45(45-1,45-2,45-3)は、図7に示すように、各棚毎に存在し、該当棚10の識別情報が登録される棚ID欄451と、当該棚10の位置情報が記憶される位置情報欄452と、当該棚10の相対位置の決定の未済等の情報が登録される決定状況欄453、空間S内の(+)Y方向(基準方向)を向く棚10の側面の論理位置番号が記憶される方向情報欄454と、当該棚10の各側面のそれぞれがどの棚のどの側面と対向しているかを示すリンク情報が登録されるリンク情報欄455-0,455-1,455-2,455-3と、がある。位置情報欄452には、空間S内での当該棚10の中心座標が登録される。決定状況欄453には、「未定」「確定」「基準」のいずれかが設定される。「確定」は他の棚との相対位置が確定していることを示し、「未定」は他の棚との相対位置が確定していないことを示し、「基準」は基準無線タグbを検出したことで、この棚10が他の棚の位置決定の基準になることを示す。リンク情報欄455-0,455-1,455-2,455-3は、当該棚10の各側面の論理位置番号毎に設けられ、各リンク情報欄455-0,455-1,455-2,455-3内には、他の棚の識別情報が登録される隣接棚ID欄455aと、当該棚10に対向している他の棚の側面の論理位置番号が登録される対向位置番号欄455bとがある。
例えば、識別情報が「sh-1」の棚10-1の棚情報テーブル45-1に関しては、全ての情報が登録された場合、位置情報欄452には空間S内の当該棚10-1の中心座標(1.0,2.5)が登録され、決定情況欄453には「基準」及び「確定」が登録され、方向情報欄454には、当該棚10-1で(+)Y方向(基準方向)を向く側面の論理位置番号として「3」が登録される。さらに、論理位置番号[2]のリンク情報欄455-2の隣接棚ID欄455aには、当該棚10-1に隣接する他の棚10-2の識別情報として「sh-2」が登録され、同リンク情報欄455-2の対向位置番号欄455bには、この他の棚10-2の対向面の論理位置番号として「0」が登録される。
次に、以上で説明した位置検出システムの位置管理サーバ30の動作について、図8に示すフローチャートに従って説明する。
位置管理サーバ30が起動すると、主制御部35は、出力装置39に、例えば、「空間S内の棚、及びこの棚に設けられている棚・無線タグの情報が初期設定されていますか?」等を表示させ(S10)、初期設定されている旨を受け付けるとステップ12に進み、初期設定されていない旨を受け付けると、初期設定のための情報を受け付けて、初期設定を実行する(S11)。初期設定がなされていない場合には、入力部36がオペレータ等から初期設定情報を受け付け、主制御部35が受け付けた情報をテーブル40に登録することで、初期設定が実行される。例えば、新たに棚を空間内に配置する場合には、棚タグ管理テーブル(図3)として、新たなテーブルを設定して、この棚の識別情報を棚ID欄411に登録すると共に、この棚の4つの棚・無線タグs0,s1,s2,s3の識別情報を棚タグID欄412に登録する。
初期設定が終了、又は初期設定が既に終了している場合には、主制御部35は、オペレータ等による入力装置38の操作により、位置検出開始の指示を受け付けたか否かを判断する(S12)。位置検知開始を希望しない旨を受け付けると処理を終了し、位置検知開始の指示を受け付けると、各制御端末21-1,21-2,21-3へリーダ20-1,20-2,20-3の駆動を指示する(S13)。
各リーダ20-1,20-2,20-3は、この指示を受けると駆動し、各リーダ20-1,20-2,20-3に接続されている位置検出アンテナp-1,p-2,p-3により、各無線タグb,sからの識別情報を読み取る。この際、各リーダは、識別情報が含まれている電波の強度を検知する。仮に、識別情報を受信できても、無線タグからの電波が弱くて、この電波強度を検知することができない場合には、電波検知の感度を高めるか、又は無線タグがパッシブタイプの場合にはリーダからの送信電波の強度を高めるかして、電波強度を検知できるようにする。各リーダ20-1,20-2,20-3は、識別情報を読み取ると、この識別情報と共に、この識別情報が含まれている電波の強度の情報を位置管理サーバ30へ送信する。
位置管理サーバ30の送受信部31は、各リーダ20-1,20-2,20-3による検出データを受信すると、これを生検出データテーブル43に登録する(S14)。生検出データテーブル43は、前述したように、各棚10-1,10-2,10-3毎に存在する。例えば、棚10-1の位置検出アンテナp-1により受信された検出データは、図5に示すように、この棚10-1の識別情報「sh-1」が付けられている生検出データテーブル43-1に登録される。この場合、この生検出データテーブル43-1のタグID欄432に、タグ識別情報として「RTO2K」及び「3GGAD」が登録され、電波強度欄433に、各識別情報が含まれている電波の強度として「101」及び「96」が登録される。
生検出データテーブル43への生検出データの登録が終了すると(S14)、検出データ解釈部33が棚タグ管理テーブル41及び基準タグ管理テーブル42を参照して、生検出データテーブル43に登録された生検出データを解釈し、その解釈結果を解釈済み検出データテーブル44に登録する(S20)。例えば、図5の生検出データテーブル43-1に登録された生検出データを解釈する場合、まず、タグID欄432に登録されている複数のタグ識別情報のうちの一つを抽出する。この際、タグ識別情報として「RTO2K」を抽出したとすると、このタグ識別情報「RTO2K」を棚タグ管理テーブル41及び基準タグ管理テーブル42に登録されている識別情報中から検索する。このタグ識別情報「RTO2K」は、図5に示すように、基準タグ管理テーブル42-1に登録されているので、このテーブル42-1の位置情報欄42から座標(0.0,3.0)を取得し、図6に示すように、解釈済み検出データテーブル44-1の基準タグ情報欄443内の位置情報欄444に、タグ識別情報「RTO2K」に関して取得した座標(0.0,3.0)を登録すると共に、タグ識別情報「RTO2K」を含む電波の強度「101」を電波強度欄445に登録する。さらに、生検出データテーブル43-1からタグ識別情報として「3GGAD」を抽出した場合も、このタグ識別情報「3GGAD」を棚タグ管理テーブル41及び基準タグ管理テーブル42に登録されている識別情報中から検索する。このタグ識別情報「3GGAD」は、図3に示すように、棚10-2の識別情報「sh-2」が付けられている棚管理テーブル41-2に登録されているので、このタグ識別情報「RTO2K」に対応する論理位置番号[0]及び棚10-2の識別情報「sh-2」を取得し、図6に示すように、棚タグ情報欄442に、棚10-2の識別情報「sh-2」と論理位置番号[0]とを対応付けた(sh-2,0)を登録する。
ここで、検出データ解釈部33による解釈結果について、棚10-1の位置検出アンテナp-1により受信され、生検出データテーブル43-1に登録された生検出データを例にして説明する。図6に示すように、検出データ解釈部33により、この生検出データの解釈結果は、棚10-1の識別情報「sh-1」が付けられている解釈済み検出データテーブル44-1に登録される。この解釈済み検出データテーブル44-1の棚タグ情報欄442には(sh-2,0)が登録されているので、棚10-1の位置検出アンテナp-1により、識別情報「sh-2」の棚10-2に設けられている論理位置番号[0]の棚・無線タグs0からの識別情報を受信できたことになる。また、この解釈済み検出データテーブル44-1の基準タグ情報欄443の位置情報欄444には座標(0.0,3.0)を登録されていると共に、電波強度欄445には「101」が登録されているので、棚10-1の位置検出アンテナp-1により、空間S内の座標(0.0,3.0)に固定されている基準無線タグb1からの識別情報を電波強度「101」で受信できたことになる。
検出データ解釈部33による生検出データの解釈が終了すると(S20)、位置決定部34は、解釈済み検出データテーブル44を参照して、各棚10-1,10-2,10-3の相対位置関係を決定した後(S30)、各棚10-1,10-2,10-3の絶対方向(空間S内での方向)を決定し(S50)、最後に、各棚10-1,10-2,10-3の絶対位置(空間S内での位置)を決定して(S70)、一連の処理を終了する。以上の相対位置決定処理(S30)、絶対方向決定処理(S50)及び絶対位置決定処理(S70)の詳細については、以下で順に説明する。
まず、相対位置決定処理(S30)の詳細な処理内容について、図9に示すフローチャートに従って説明する。
位置決定部34は、まず、全ての棚情報テーブル45-1,45-2,45-3の相対位置決定処理が終了したか否かを判断する(S31)。この際、位置決定部34は、各テーブルの決定状況欄452を参照して、そこに「確定」が登録されていれば相対位置決定処理が終了したと判断し、そこに「未定」が登録されていれば相対位置決定処理が終了していないと判断する。全ての棚情報テーブル45-1,45-2,45-3の相対位置決定処理が終了したと判断した場合、相対位置決定処理(S30)を終了する。
一方、全ての棚情報テーブル45-1,45-2,45-3の相対位置決定処理が終了していないと判断した場合、未処理の棚情報テーブル45を抽出し(S32)、この棚情報テーブル45の全てのリンク情報は決定済みか否かを判断する(S33)。この棚情報テーブル45の全てのリンク情報が決定していない場合、この棚情報テーブル45が示す棚10の解釈済み検出データテーブル44から全てのタグ情報を抽出したか否かを判断する(S34)。全てのタグ情報を抽出したと判断した場合、及び先のステップ33で全てのリンク情報が決定済みであると判断した場合、棚情報テーブル45の決定状況欄452に「確定」を登録して(S35)、ステップ31に戻る。
ステップ34で、当該棚情報テーブル45が示す棚10の解釈済み検出データテーブル44から全てのタグ情報を抽出していないと判断した場合、この解釈済み検出データテーブル44から未抽出のタグ情報を一つ抽出する(S36)。そして、位置決定部34は、抽出したタグ情報が基準無線タグbのタグ情報であるか否かを判断し(S37)、基準無線タグbのタグ情報である場合、この基準無線タグbの位置情報に基づいて当該棚10の中心座標を決定して、棚情報テーブル45の位置情報欄452にこの座標を登録すると共に、位置棚情報テーブル45の決定状況欄452に「基準」を登録して(S38)、ステップ34に戻る。
ここで、基準無線タグbの位置情報に基づいて、当該棚10の位置座標の決定手法について説明する。
位置決定部34は、基準タグ管理テーブル42の位置情報422を用いて、予め定められた以下のルールに従って、棚10の中心座標を決定する。
ルール1:棚10の中心座標を基準無線タグbの位置座標とする。
例えば、基準タグ管理テーブル42の位置情報として(3,1)が登録されていた場合、この座標をそのまま当該棚10の中心座標とする。
ルール2:ルール1を適用した場合、基準無線タグbが空間Sの側壁又は角に配置されているために、この棚10の一部が空間S内に納まらない場合には、棚10の各面が基準無線タグbに接するときの棚10の中心座標をそれぞれ求め、これらの中心座標から棚10をXY平面状で90°回転させても、棚10が空間S内に完全に収まるような位置を棚10の中心座標とする。
例えば、図14(b)に示すように、基準無線タグb3が空間Sの側壁に配置されているために、この基準無線タグb3の座標(0,1.5)をそのまま棚10の中心座標とすると、棚10の一部が空間S内に納まらなくなる。このよう場合、棚10が基準タグb3に接するケースとして、棚10の短辺が基準無線タグb3に接するケースと棚10の長辺が基準無線タグb3に接するケースとがある。そこで、まず、棚10の短辺が基準無線タグb3に接するケースの棚10の中心座標C0(1,1.5)と、棚10の長辺が基準無線タグb3に接するケースの棚10の中心座標C1(0.5,1.5)とを求める。次に、各中心座標C0,C1で棚10を90°回転させても、棚10が完全に空間S内に収まる方、つまり、C0(1,1.5)をこの棚10の中心座標とする。このように、棚10を90°回転させても、棚10が完全に空間S内に収まるか否かを検討するのは、この時点で、空間S内での棚10の方向が定まっていないからである。
また、同図(a)に示すように、基準無線タグb1が空間Sの角に配置されている場合、棚10が基準タグb3に接するケースとして、棚10の角が基準無線タグb1に接し且つ棚10の短辺がX=0の空間側壁に接するケースと、棚10の角が基準無線タグb1に接し且つ棚10の短辺がY=3の空間側壁に接するケースとがある。そこで、まず、それぞれのケースでの棚10の中心座標C1(1,2.5),C2(0.5,2)を求める。次に、各中心座標C1,C2で棚10を90°回転させる。この場合、いずれのケースでも、棚10の一部が空間S内に収まらないため、棚10の短辺がX=0の空間側壁に接している状態から90°回転させると、棚10の短辺がY=3の空間側壁に接するような座標C0(1,2)を、この棚の中心座標とする。従って、棚10-1の中心座標は、C0(1,2)となり、この座標値が棚情報テーブル45-1の位置情報欄452に登録される。
なお、ここでは、ルール1,2を適用して、棚10が空間内に完全に収まるように、棚10の中心座標値を定めているが、ルール1のみを適用して、棚10の中心座標を定めてもよい。また、基準無線タグbの位置から棚10の位置を定める方法として、以上のようなルール以外で定めてもよいことは言うまでもない。
ところで、以上のルールは、棚10の位置検出アンテナpが一つの基準無線タグbを検出した場合のルールであるが、棚10の位置検出アンテナpが複数の基準無線タグbを検出する場合もある。例えば、同図(c)に示すように、基準無線タグb4が(0,4)に存在し、基準無線タグb5が(0,0)に存在するような場合、棚10の位置検出アンテナpは、両基準無線タグb4,b5を検出する可能性が高い。この場合、解釈済み検出データテーブル44の電波強度欄445に登録されている電波強度を参照する。電波強度は、電波の発信源からの距離の自乗に反比例するので、例えば、基準無線タグb4からの電波強度B4と基準無線タグb5からの電波強度B5との比が、B4:B5=6.25:2.25の場合、基準無線タグb4から電波受信点までの距離D4と基準無線タグb5から電波受信点までの距離D5との比が、D4:D5=1/(6.25)―2:1/(2.25)―2=1.5:2.5となる。基準無線タグb4(0,4)と基準無線タグb5(0,0)とを直線で結んだ線分上(X=0)で、このような比が成立する受信点座標C1は、(0,2.5)である。
そして、この受信点座標C1(0,2.5)を、基準無線タグbを一つ検出した場合の基準無線タグの位置の位置として、上記ルール1及び2を適用する。そこで、ルール1を適用して、受信点座標を棚10の中心座標とすると、この棚10の一部が空間S内に納まらないので、ルール2を適用して、棚10の中心座標を(1,2.5)とする。
再び、図9のフローチャートの説明に戻る。位置決定部34は、ステップ37で、抽出したタグ情報が基準無線タグbのタグ情報でないと判断した場合、つまり棚・無線タグsの情報であると判断した場合、当該棚情報テーブル45に、この棚・無線タグsに関するリンク情報が書き込み済みか否かを判断する(S39)。書き込み済みの場合には、ステップ34に戻る。また、書き込み済みでない場合、この棚・無線タグsの情報が示す棚の棚情報テーブル45にこの棚・無線タグsの情報に関するリンク情報が書き込み済みか否かを判断する(S40)。この場合も、書き込み済みの場合には、ステップ34に戻る。
例えば、ステップ32で、未処理の棚情報テーブル45として、棚10-1の棚情報テーブル45-1を抽出し、ステップ36で、この棚10-1の解釈済み検出データテーブル44-1から棚・無線タグsの情報として(sh-2,0)を抽出し、ステップ39で、棚情報テーブル45-1に、この棚・無線タグsのリンク情報が書き込み済みか否かを判断したとする。この場合、棚情報テーブル45-1のリンク情報欄455のいずれかに、抽出タグ情報(sh-2,0)の組み合わせと同じものが登録されているか否かで判断する。仮に、抽出タグ情報(sh-2,0)の組み合わせと同じものが登録されている場合、つまり、図7に示すように、棚情報テーブル45-1の論理番号[2]のリンク情報欄455-2に、隣接棚識別情報として「sh-2」が登録され、その対向論理位置番号として「0」が登録されている場合には、ステップ34に戻る。このリンク情報欄455-2に該当リンク情報が登録されていなければ、ステップ40で、先の抽出タグ情報(sh-2,0)が示す棚の棚情報テーブル45−2の論理位置番号[0]のリンク情報欄455-0にリンク情報が書き込み済みか否かを判断する。すなわち、一つの棚・無線タグsのタグ情報を抽出した場合、このタグ情報の受信側の棚の棚情報テーブル45にリンク情報が登録されているか否かを判断すると共に(S39)、このタグ情報を送信した棚・無線タグsが取り付けられている棚の棚情報テーブル45にもリンク情報が登録されているか否かを判断する(S40)。
ステップ39,40の判断で、いずれの棚情報テーブル45にも、抽出タグ情報に関するリンク情報が登録されていないと判断した場合、抽出タグ情報が示す棚の解釈済み検出データテーブル44から、現在処理中の棚情報テーブル45の棚10に取り付けられている棚・無線タグのタグ情報を検索する(S41)。この棚・無線タグsの情報が見つからなければ(S42)ステップ34に戻り、この棚・無線タグsのタグ情報が見つかれば(S42)、この棚・無線タグsのタグ情報と、先の抽出タグ情報とを用いて、リンク情報を作成し、該当棚情報テーブル45のリンク情報欄455に、このリンク情報を書き込む。
仮に、前述の例のステップ39で、棚情報テーブル45-1に、ステップ36で抽出したタグ情報(sh-2,0)に関するリング情報が書き込まれていないと判断し、更に、ステップ40で、この抽出タグ情報(sh-2,0)が示す棚10-2の棚情報テーブル45−2のリンク情報欄455であって、論理位置番号[0]のリンク情報欄455-0にも、リンク情報が書き込まれていないと判断した場合、ステップ41では、この抽出タグ情報(sh-2,0)が示す棚10-2の解釈済み検出テーブル44-2から、現在処理中の棚情報テーブル45-1の棚10-1に取り付けられている棚・無線タグsのタグ情報を検索する。この場合、この解釈済み検出テーブル44-2の棚タグ情報欄442に、棚10-1に取り付けられている棚・無線タグの情報として、タグ情報(sh-1,2)が有るので、これを抽出する。この結果、ステップ36で、棚10-1で受信したタグ情報として(sh-2,0)を抽出し、ステップ41で、棚10-2で受信したタグ情報として(sh-1,2)を抽出したことになる。これら二つのタグ情報は、図1に示すように、棚10-1には棚10-2の論理位置番号[0]の側面が対向し、棚10-2には棚10-1の論理位置番号[2]の側面が対向していることを意味する、言い換えると、棚10-1の論理位置番号[2]の側面と棚10-2の論理位置番号[0]の側面が対向していることを意味する。そこで、ステップ43では、棚情報テーブル10-1の論理位置番号[2]のリンク情報欄455-2に、隣接棚識別番号「sh-2」と対向側面の論理位置番号「0」を登録すると共に、棚情報テーブル10-2の論理位置番号[0]のリンク情報欄455-0に、隣接棚識別番号「sh-1」と対向側面の論理位置番号「2」とを登録する。
以上のようにリンク情報の書き込み(S43)が終了すると、ステップ34に戻り、現在処理中の棚情報テーブル45-1の棚10-1に関する解釈済み検出データテーブル44-1から全てのタグ情報を抽出したと判断すると、前述したように、棚情報テーブル45-1の決定状況欄452に「確定」を登録して(S35)、ステップ31,32に進み、別の未処理の棚情報テーブル45の処理を行う。
以上の相対位置決定処理(S30)が終了すると、図1に示すように、棚10-1の論理位置番号[2]の側面と棚10-2の論理位置番号[0]の側面が対向し、棚10-2の論理位置番号[2]の側面と棚10-3の論理位置番号[2]の側面とが対向していること、つまり、三つの棚10-1,10-2,10-3の相対位置関係を把握できる。
次に、以上の相対位置決定処理(S30)後に行われる絶対方向決定処理(S50)の詳細な処理内容について、図10及び図11に示すフローチャートに従って説明する。
位置決定部34は、図10のフローチャートに示すように、まず、複数の棚情報テーブル45のうち、決定状況欄453に「基準」が登録されている棚(以下、この棚を基準棚とする)10を一つ抽出する(S51)。続いて、同様に、他の基準棚を一つ抽出する(S52)。
次に、位置検定部34は、二つの基準棚をつなぐ最短リンクルートを設定する(S53)。この最短リンクルートの設定ルールは、一つのリンクと、これに繋がる他のリンクとの曲がり角度90°になるような箇所を最小数にするというものである。なお、基準無線タグbが3以上存在する場合、基準棚も3以上存在する可能性があるが、このような場合も、3以上の基準棚のうちから、二つの基準棚を抽出し、この二つの基準棚をつなぐ最短リンクルートを設定することになる。但し、基準棚が3以上ある場合、最短リンクルートの簡素化を図るために、相互間の距離が最も短い二つの基準棚を抽出するようにすることが好ましい。
例えば、図15(a)の場合、基準棚10-1と基準棚10-3とをつなぐ最短リンクルートは、曲がり角度90°になる箇所が0個の直線的なリンクルートが最短リンクルートになる。また、同図15(b)の場合、棚10-4、棚10-8、棚10-6、棚10-7を順につなぐリンクルートは、曲がり角度90°になる箇所が2個であるものの、棚10-4、棚10-5、棚10-6、棚10-7を順につなぐリンクルート、更に、棚10-4、棚10-8、棚10-9、棚10-7を順につなぐリンクルートは、いずれも、曲がり角度90°になる箇所が一個であるので、これらのリンクルートを最短リンクルートとする。また、同図(c)の場合、棚10-10、棚10-11、棚10-12、棚10-13、棚10-14を順につなぐリンクルート、及び、棚10-10、棚10-15、棚10-12、棚10-16、棚10-14を順につなぐリンクルートを最短リンクルートとする。
位置検定部34は、二つの基準棚をつなぐ最短リンクルートを設定すると(S53)、これら二つの基準棚の向きを決定し、棚情報テーブル45の方向情報欄454にこの向きを登録する(S54)。二つの基準棚の向きを定める際には、まず、二つの基準棚の位置から最短リンクルートが伸びている方向を定め、この最短リンクルートが伸びている方向と、二つの基準棚に対する隣接棚とのリンク関係とから、各基準棚の方向を定める。
例えば、図15(a)の場合、まず、各基準棚10-1,10-3の位置情報を参照する。基準棚10-1のX座標値(=1)と基準棚10-3のX座標値(=9)との差(=8)は極めて大きいのに対して、基準棚10-1のY座標値(=2)と基準棚10-3のY座標値(=2)との差(=0)は極めて小さく予め定めた誤差範囲内である。このため、基準棚10-1から基準棚10-3への直線的な最短リンクルートは、(+)X方向に伸びているということが把握できる。続いて、各基準棚10-1,10-3のリンク情報を参照する。基準棚10-1に関する棚情報テーブル45-1のリンク情報欄455には、この棚10-1の論理位置番号[2]の側面と棚10-2の論理位置番号[0]とが対向し、リンクを成していることを示しているので、棚10-1の論理位置番号[2]の側面は、(+)X側を向いている必要がある。この結果、この基準棚10-1で、基準方向となる(+)Y側を向く側面の論理位置番号は[3]となり、この値が基準棚10-1に関する棚情報テーブル45-1の方向情報欄454に登録される。また、基準棚10-3に関する棚情報テーブル45-3のリンク情報欄455には、この棚10-3の論理位置番号[2]の側面と棚10-2の論理位置番号[2]とが対向し、リンクを成していることを示しているので、棚10-3の論理位置番号[2]の側面は、(−)X側を向いている必要がある。この結果、この基準棚10-3で、基準方向となる(+)Y側を向く側面の論理位置番号は[1]となり、この値が基準棚10-3に関する棚情報テーブル45-3の方向情報欄454に登録される。
また、図15(b)の場合も、まず、基準棚10-4,10-7の位置情報を参照する。この位置情報から、基準棚10-4は、基準棚10-7に対して(−)X側で且つ(−)Y側に位置し、逆に、基準棚10-7は、基準棚10-4に対して(+)X側で且つ(+)Y側に位置することが把握できる。このことから、基準棚10-4を基点とした場合の2つの最短リンクは、曲がり角90°の箇所が一個の場合、一方の最短リンクルートが、最短リンクルートが(+)Y方向に伸びた後に(+)X方向に伸び、他方の最短リンクルートが(+)X方向に伸びた後に(+)Y方向に伸びることが分かる。また、基準棚10-7を基点とした場合の2つの最短リンクルートは、曲がり角90°の箇所が一個の場合、一方の最短リンクルートが、最短リンクルートが(−)Y方向に伸びた後に(−)X方向に伸び、他方の最短リンクルートが(−)X方向に伸びた後に(−)Y方向に伸びることが分かる。続いて、各基準棚10-4,10-7に関する棚情報テーブル45のリンク情報欄455を参照する。基準棚10-4は、論理位置番号[3]の側面と論理位置番号[2]の側面のそれぞれからリンクが形成されているため、二つの最短リンクルートが伸びている方向から、基準棚10-4の論理位置番号[3]の側面が(+)Y側を向き、論理位置番号[2]の側面が(+)X側を向くことが分かる。この結果、基準棚10-4で、基準方向となる(+)Y側を向く側面の論理位置番号は[3]となり、この値が基準棚10-4に関する棚情報テーブル45の方向情報欄454に登録される。また、基準棚10-7は、論理位置番号[2]の側面と論理位置番号[3]の側面のそれぞれがリンクを形成しているため、二つのリンクルートが伸びている方向から、基準棚10-7の論理位置番号[2]の側面が(−)X側を向き、論理位置番号[3]の側面が(−)Y側を向くことが分かる。この結果、基準棚10-7で、基準方向となる(+)Y側を向く側面の論理位置番号は[1]となり、この値が基準棚10-7に関する棚情報テーブル4の方向情報欄454に登録される。
図15(c)の場合も、まず、基準棚10-10,10-14の位置情報を参照する。この位置情報から、基準棚10-10は、基準棚10-14に対して(−)X側で且つ(−)Y側に位置し、逆に、基準棚10-14は、基準棚10-10に対して(+)X側で且つ(+)Y側に位置することが把握できる。このことから、基準棚10-10を基点とした場合の2つの最短リンクは、曲がり角90°の箇所が二個の場合、一方の最短リンクルートがまず(+)Y方向に伸び、他方の最短リンクルートがまず(+)X方向に伸びることが分かる。また、基準棚10-14を基点とした場合の2つの最短リンクルートは、曲がり角90°の箇所が二個の場合、一方の最短リンクルートがまず(−)Y方向に伸び、他方の最短リンクルートがまず(−)X方向に伸びることが分かる。続いて、各基準棚10-10,10-14に関する棚情報テーブル45のリンク情報欄455を参照する。以下は、図15(b)と同様に、基準棚10-10で、基準方向となる(+)Y側を向く側面の論理位置番号は[3]となり、この値が基準棚10-10に関する棚情報テーブル45の方向情報欄454に登録され、基準棚10-14で、基準方向となる(+)Y側を向く側面の論理位置番号は[1]となり、この値が基準棚10-14に関する棚情報テーブル45の方向情報欄454に登録される。
位置決定部34は、二つの基準棚の向きを決定すると(S54)、他の棚の向きをそれぞれの棚のリンク情報から決定し、基準方向となる(+)Y側を向く側面の論理位置番号を棚情報テーブル45の方向情報欄454に登録する(S55)。
ここで、図11に示すフローチャートに従って、他の棚の向きの決定処理(S55)の詳細手順について説明する。
位置決定部34は、先のステップ54で向きが決まった基準棚のうち、いずれか一つを抽出する(S61)。次に、この基準棚の棚情報テーブル45のリンク情報欄455を参照して、この基準棚とリンク関係にある全ての棚及びそのリンク情報を抽出する(S62)。そして、このリンク情報と基準棚の方向とに基づき、抽出した全ての棚の方向を決定し、この棚情報テーブル45の方向情報欄454に、基準方向を向く側面の論理位置番号を登録する(S63)。
例えば、図15(a)の場合、基準棚10-1を抽出すると(S61)、この基準棚10-1の棚情報テーブル45-1のリンク情報欄455を参照して、この基準棚10-1とリンク関係にある棚10-2を抽出すると共に、そのリンク情報を抽出する(S62)。次に、基準棚10-1の棚情報テーブル45-1に登録されているリンク情報、つまり、基準棚10-1の論理位置番号[2]の側面と棚10-2の論理位置番号[0]の側面とが対向するという情報から、棚10-2の論理位置番号[0]の側面が(−)X側を向くことを割り出す。この結果、棚10-2で、基準方向となる(+)Y側を向く側面の論理位置番号が[3]であることが把握され、この値が基準棚10-2に関する棚情報テーブル45-2の方向情報欄454に登録される(S63)。
また、図15(b)の場合、基準棚10-4を抽出すると(S61)、この基準棚10-4の棚情報テーブル45のリンク情報欄455を参照して、この基準棚10-4とリンク関係にある棚10-5,10-8を抽出すると共に、これらのリンク情報を抽出する(S62)。そして、図15(a)で説明した手順と同様に、各棚10-5,10-8の基準方向を決定し、これを各棚10-5,10-8の棚情報テーブル454に登録する(S63)。
また、図15(c)の場合は、図15(b)の場合と同様に、各棚の基準方向を決定する。
次に、位置決定部34は、各棚情報テーブル45の方向情報欄454を参照して、方向未決定の棚があるか否かを判断する(S64)。方向未決定の棚があれば、ステップ63で方向決定した棚のうちの一つを抽出し(S65)、ステップ62に戻り、前述したように、この棚とリンク関係にある全ての棚及びそのリンク情報を抽出し、抽出した全ての棚の方向を決定する(S63))。以下、ステップ64で方向未決の棚はないと判断されるまで、ステップ62〜65の処理を繰り返す。
以上の絶対方向決定処理(S50(図8))が終了すると、位置決定部34は、前述したように、各棚の位置座標を決定する(S70)。
次に、各棚の位置座標の決定処理(S70)の詳細な処理内容について、図12及び図13に示すフローチャートに従って説明する。
位置決定部34は、まず、全ての基準棚相互をつなぐ最短リンクルートを設定する(S71)。そして、各最短リンクルートと対応付けて、フラグa,b,cを設定し、それらの値を「0」にする。なお、この最短リンクルートの設定ルールは、方向決定(S50)の際に述べたルールと同じである。また、各フラグa,b,cの意味は後述する。
次に、複数の最短リンクルートのうちから、フラグa=0の直線リンクルートを抽出できるか否かを判断する(S72)。フラグa=0の直線リンクルートを抽出できない場合には、ステップ77に進み、フラグa=0の直線リンクルートを抽出できる場合には、その直線リンクルートを抽出し(S73)、この直線リンクルートに関するフラグaの値を「1」に変更する(S74)。なお、このフラグaの「0」は、ある最短リンクルートが直線リンクルートとして一度も抽出されていない状態を示し、フラグaの「1」は、ある最短リンクルートが直線リンクルートとして既に一度抽出された状態を示す。続いて、この直線リンクルート中の棚のうち、いまで基準棚になっていない棚(非基準棚)を全て抽出し(S75)、直線リンクルートの両端の基準棚の位置から各非基準棚の位置を決定して、この値を該当棚の棚情報テーブル45の位置情報欄452に登録すると共に、決定状況欄453に「基準」を書き込む(S76)。
ここで、図16(a)を用いて、直線リンクルート中の非基準棚の位置決定方法について説明する。仮に、直線リンクルートがX方向に伸びており、その両端の基準棚10b1,10b2の位置座標がそれぞれ(X1,Y1)、(X1,Y1)であるとする。これら基準棚の間にある非基準棚のY座標値は、これら基準棚10b1,10b2のY座標値と同じY1とする。また、非基準棚のX座標値は、二つの基準棚10b1,10b2間に等間隔で非基準棚が存在するとして定める。具体的には、二つの基準棚10b1,10b2のX方向の間隔(X2−X1)を、この間に存在する非基準棚の数に1を加えた数、言い換えると、この間のリンクの数nで割り、この値((X2−X1)/n)の間隔で、各非基準棚が存在するとして、各非基準棚のX座標値を定める。なお、以上の直線リンクルート中の非基準棚の位置決定方法は、最短リンクルートが直線リンクルートになる図1の例、図14(a)の例にも適用できることは言うまでもない。
直線リンクルート中の非基準棚の位置を決めると(S76)、再び、ステップ72に戻り、以下、このステップ72で、フラグa=0の直線リンクルートを抽出できないと判断するまで、ステップ72〜76の処理を繰り返す。
位置決定部34は、ステップ72で、フラグa=0の直線リンクルートを抽出できないと判断した場合、全てのフラグaを「0」にしてから、ステップ71で設定した複数の最短リンクルートのうちから、フラグb=0の90°曲がり一回のリンクルートを抽出できるか否かを判断する(S78)。フラグb=0の90°曲がり一回のリンクルートを抽出できない場合には、ステップ85に進み、フラグb=0の90°曲がり一回のリンクルートを抽出できる場合には、そのリンクルートを抽出し(S79)、このリンクルートに関するフラグbの値を「1」に変更する(S80)。なお、このフラグbの「0」は、ある最短リンクルートが90°曲がり一回のリンクルートとして一度も抽出されていない状態を示し、フラグbの「1」は、ある最短リンクルートが90°曲がり一回のリンクルートとして既に一度抽出された状態を示す。続いて、このリンクルート中の非基準棚を抽出し(S81,83)、このリンクルートの両端の基準棚の位置から各非基準棚の位置を決定して、この値を該当棚の棚情報テーブル45の位置情報欄452に登録すると共に、決定状況欄453に「基準」を書き込む(S82,84)。
ここで、図16(b)を用いて、90°曲がり一回のリンクルート中の非基準棚の位置決定方法について説明する。仮に、このリンクルートは、一方の基準棚10b1から(+)Y方向に伸びた後、90°曲がって(+)X方向に伸びて他方の基準棚10b2に至るものであり、その両端の基準棚10b1,10b2の位置座標がそれぞれ(X1,Y1)、(X1,Y2)であるとする。位置決定部34は、まず、このリンクルート中の角に相当する部分の棚10cを抽出する(S81)。そして、この角の非基準棚10cのX座標値を一方の基準棚10b1のX座標値(=X1)とし、この非基準棚10cのY座標値を他方の基準棚10b2のY座標値(=Y2)とする。そして、これらの値を該当棚の棚情報テーブル45の位置情報欄452に登録すると共に、決定状況欄453に「基準」を書き込む(S82)。続いて、残りの非基準棚の全てを抽出する(S83)。このリンクルート中の棚のうち、角の棚10cに関しては、既に位置が決定しているため、角の棚10cと一方の基準棚10b1との間で直線リンクルートが形成され、この角の棚10cと他方の基準棚10b2との間でも直線リンクルートが形成される。このため、残りの非基準棚は、全て、いずれかの直線リンクルート中に存在することになるので、これらの非基準棚に関しては、同図(a)を用いて説明した方法と同じ方法で位置を決めることができる。残りの非基準棚の位置座標を決定したら、この位置座標を該当棚の棚情報テーブル45の位置情報欄452に登録すると共に、決定状況欄453に「基準」を書き込む(S84)。
90°曲がり一回のリンクルート中の非基準棚の位置を決めると(S84)、再び、ステップ78に戻り、以下、このステップ78で、フラグb=0の90°曲がり一回のリンクルートを抽出できないと判断するまで、ステップ78〜84の処理を繰り返す。
位置決定部34は、ステップ78で、フラグb=0の90°曲がり一回のリンクルートを抽出できないと判断した場合、全てのフラグbを「0」にしてから(S85)、ステップ71で設定した複数の最短リンクルートのうちから、フラグc=0で、90°曲がりが複数回あるリンクルートを抽出できるか否かを判断する(S86)。但し、ここで抽出するリンクルートは、(+)90°曲がり、(−)90°曲がりが交互に存在し、階段状を成しているものに限る。フラグc=0の階段状リンクルートを抽出できない場合には、ステップ100(図13)に進み、フラグc=0の階段状リンクルートを抽出できる場合には、その階段状リンクルートを抽出し(S87)、この階段状リンクルートに関するフラグcの値を「1」に変更する(S88)。なお、このフラグcの「0」は、ある最短リンクルートが階段状リンクルートとして一度も抽出されていない状態を示し、フラグcの「1」は、ある最短リンクルートが階段状リンクルートとして既に一度抽出された状態を示す。続いて、この階段状リンクルート中の棚のうち、図16(c)に示すように、X方向に並んでいる非基準棚の数から一方の基準棚10b1と他方の基準棚10b2との間に存在するリンク数nを求める(S89)。次に、両基準棚10b1,10b2のX方向における間隔(X2−X1)をリンク数nで割って、この値((X2−X1)/n)の間隔で、各非基準棚が存在するとして、各非基準棚のX座標値を定め、この値を該当棚の棚情報テーブル45の位置情報欄452に登録する(S90)。また、以上と同様に、Y方向に並んでいる非基準棚の数から一方の基準棚10b1と他方の基準棚10b2との間に存在するリンク数nを求める(S91)。次に、両基準棚10b1,10b2のY方向における間隔(Y2−Y1)をリンク数nで割って、この値((Y2−Y1)/n)の間隔で、各非基準棚が存在するとして、各非基準棚のY座標値を定め、この値を該当棚の棚情報テーブル45の位置情報欄452に登録すると共に、決定状況欄453に「基準」を書き込む(S92)。
階段状リンクルート中の非基準棚の位置を決めると(S92)、再び、ステップ86に戻り、以下、このステップ86で、フラグc=0の階段状リンクルートを抽出できないと判断するまで、ステップ86〜92の処理を繰り返す。
位置決定部34は、ステップ86で、フラグc=0の階段状リンクルートを抽出できないと判断した場合、全てのフラグcを「0」にしてから(S100(図13))、以上の処理で新たに基準棚となった棚を基点とする最短リンクルートが設定可能か否かを判断する(S101)。新たな最短リンクルートを設定できないと判断した場合は、ステップ103に進み、新たな最短リンクルートを設定できると判断した場合には、ステップ72に戻って、以上で述べたステップ72〜101の処理を新たな最短リンクルートを用いて実行する。
このように、ステップ72〜101の処理を再度行うのは、図16(d)に示すように、当初からの基準棚10b1,10b2に対する最短リンクルートの設定で、この最短リンクルート上の非基準棚10b3,10b4が基準棚になると、この基準棚10b3,10b4を基点とした新たな最短リンクルートが設定可能になり、この新たな最短リンクルートを用いて、さらに非基準棚の位置を決定することができるからである。なお、ここで設定する新たな最短リンクルートは、その両端が新たな基準棚である必要がなく、少なくとも一方が新たな基準棚であればよく、他方は新たな基準棚又は当初からの基準棚でよい。
位置決定部34は、新たな基準棚を基点とする最短リンクルートが設定できないと判断すると(S101)、基準棚とリンク関係にある非基準棚を全て抽出したか否かを判断する(S103)。この基準棚には、当初からの基準棚のほか、新たな基準棚も含む。
位置決定部34は、基準棚とリンク関係にある非基準棚を抽出できる場合には、この非基準棚を抽出し(S104)、この基準棚の位置に基づいてこの非基準棚の位置を仮決定する(S105)。例えば、基準棚に対して、X方向に隣接している非基準棚の場合には、Y座標値を基準棚と同じ値にし、X座標値を基準棚のX座標値に予め定めた値aを加えた値にする。また、基準棚に対して、Y方向に隣接している非基準棚の場合には、X座標値を基準棚と同じ値にし、Y座標値を基準棚のY座標値に予め定めた値bを加えた値にする。但し、この段階で、当該棚の棚情報テーブル45の位置情報欄452には、この仮位置を登録しない。
次に、仮位置を決定した仮基準棚とリンク関係にある棚を全て抽出したか否かを判断する(S106)。全て抽出したと判断した場合には、ステップ110に進み、全てを抽出していないと判断した場合には、仮基準棚とリンク関係にある棚を抽出する(S107)。そして、この抽出した棚が基準棚であるか否かを判断する(S108)。抽出した棚が基準棚である場合には、ステップ109に進み、抽出した棚が基準棚ではない場合には、ステップ105に戻って、この抽出した棚の仮位置を決定し、この仮位置が決定した仮基準棚に対してステップ106の判断を行う。以下、ステップ106で仮基準棚とリンク関係にある棚を全て抽出したと判断するか、又は、ステップ108で基準棚であると判断するまで、ステップ105〜108を繰り返す。ステップ106で仮基準棚とリンク関係にある棚を全て抽出したと判断すると、全ての仮基準棚の仮位置を各棚の棚情報テーブル45の位置情報欄452に登録する(S110)。
この結果、図16(e)に示すように、一つの基準棚を基点として複数の非基準棚の位置を定めることができる。なお、同図(e)では、前述したように、基準棚又は仮基準棚に対して、X方向に隣接している非基準棚の場合には、Y座標値を基準棚と同じ値にし、X座標値を基準棚のX座標値に予め定めた値aを加えた値にし、基準棚又は仮基準棚に対して、Y方向に隣接している非基準棚の場合には、X座標値を基準棚と同じ値にし、Y座標値を基準棚のY座標値に予め定めた値bを加えた値にした例を示している。
ところで、ステップ105〜108の処理を繰り返す過程で、ステップ107で基準棚を抽出することがある。このような棚は、先に説明したステップ102までの処理で、最短リンクルートの基点にならなかった基準棚であるか、または、最短リンクルートの基点にはなったが、直線リンクルート、90°曲がり一回のリンクルート、階段状リンクルートの基点にならたかった基準棚である。このような基準棚を抽出した場合、ステップ108の判断でステップ109に進み、仮基準棚の仮座標値に基づいて求めた基準棚の座標値は、この基準棚の登録座標値に一致するか否かを判断する。なお、ここでの一致は完全一致ではなく、予め定めた誤差範囲内であれば一致として扱う。
例えば、図16(e)で最後に抽出された仮基準棚10nに対して、さらに、この仮基準棚10nとリンク関係のある棚を抽出したときに、同図(f)に示すように、この棚が基準棚10b2である場合がある。このような場合、仮基準棚10nの位置に基づいて基準棚10b2の位置を定めると、この基準棚10b2の登録位置とは異なる値になることが多い、言い換えると、既に定まっている基準棚10b2の位置に基づいて仮基準棚10nの位置を定めると、この仮基準棚10nの仮位置とは異なることが多い。具体的に、仮基準棚10nの仮位置に基づいて求めた基準棚10b2の仮Y座標値は、基準棚10b2の登録Y座標値と一致するが、仮基準棚10nの仮位置に基づいて求めた基準棚10b2の棚10nの仮X座標値は、ステップ103で抽出した基準棚10b1のX座標値に、(所定値a×X方向のリンク数n)を加えたものであるから、この仮X座標値は登録X座標値に一致しない可能性が高い。
そこで、仮基準棚の座標値に基づいて求めた基準棚の座標値が、この基準棚の登録座標値に一致しなければ(S109)、この仮基準棚を含めて、以上で求めた仮基準棚の仮位置を全て修正し、修正後の座標値を各棚の棚情報テーブル45の位置情報欄452に登録する(S111)。
具体的に、図16(f)の場合、ステップ103で抽出した基準棚10b1とステップ108で抽出した基準棚10b2との間隔(X2−X1)を、X方向での両基準棚10b1,10b2間のリンクの数nで割り、X方向に関しては、この値((X2−X1)/n)の間隔で、各非基準棚が存在するとして、各非基準棚のX座標値を定める。そして、このX座標値を各非基準棚のX座標値として登録する。一方、各非基準棚のY座標値に関しては、仮Y座標値をそのまま各非基準棚のY座標値として登録する。
また、ステップ109で、仮基準棚の仮座標値に基づいて求めた基準棚の座標値が、この基準棚の登録座標値に一致すると判断した場合には、仮基準棚の仮座標値をそのまま、仮基準棚の座標値として登録する(S110)。
ステップ110又はステップ111の処理が終了すると、ステップ103に戻り、このステップ103で、基準棚とリンク関係にある非基準棚を全て抽出したと判断するまで、ステップ103〜111の処理を繰り返す。一方、ステップ103で、基準棚とリンク関係にある非基準棚を全て抽出したと判断すると、絶対位置決定処理(S70)が終了する。
以上、本実施形態では、各棚10に棚・無線タグs及び位置検知アンテナpが設けられているので、ある棚10に隣接する棚は、その位置アンテナpで、ある棚10の棚・無線タグsからの識別情報を受信できるので、ある棚10とこれに隣接する棚との間の相対位置を検出することができる。しかも、ある棚10とこれに隣接する棚との距離が極めて近い場合には、ある棚10に隣接する棚は、その位置アンテナpで、ある棚10の棚・無線タグsからの識別情報をより高感度で受信できるので、複数の棚相互が密接していても、何ら支障なく、各棚の相対位置を検出することができる。また、本実施形態では、複数の基準無線タグbを設けたので、各棚の相対位置のみならず、棚が存在する空間S内での絶対的な位置を検出することができる上に、各棚の方向も検出することができる。
なお、以上の実施形態では、空間S内に固定された基準無線タグbを設けたが、各棚の相対的位置を検出するだけでよい場合には、この基準無線タグbを設ける必要がないことを言うまでもない。また、本実施形態では、棚の位置を検出するシステムを例に説明したが、本発明は、位置検出対象が棚である必要はなく、例えば、コンテナ等を位置検出対象にしてもよい。
「第二の実施形態」
位置検出システムの第二の実施形態について、図17〜図22を用いて説明する。
本実施形態の位置検出システムは、図17に示すように、棚10a内に設けられる複数の棚板t1,t2,t3の位置を検出するものである。
本実施形態の棚10aは、直方体形状を成し、天板19、三枚の側板11,12,13、第一棚板支持部14a、第二棚板支持部14b、第三棚板支持部14cを有している。各棚板支持部14a,14b,14cには、適宜、棚板を載せることができる。各棚板支持部14a,14b,14cに載せることができる棚板として、第一棚板t1、第二棚板t2、第三棚板t3がある。なお、ここでは、以下の説明を簡単にするために、棚板支持部の数と同じ枚数の棚板があることにしているが、これ以上の棚板があっても何ら不都合はない。
天板19には、基準無線タグbが設けられている。また、各棚板t1,t2,t3には、位置検出アンテナp1,p2,p3と、板・無線タグh1,h2,h3が設けられている。各位置検出アンテナp1,p2,p3は、各棚板t1,t2,t3がいずれかの棚板支持部14a,14b,14c上に載せられた状態で、他の棚板に取り付けられている無線タグからの電波よりも、自棚板に取り付けられている板・無線タグからの電波を大きな強度で受信できる位置に取り付けられている。
各位置検出アンテナpは、いずれも、リーダ20に接続され、このリーダ20が制御端末21に接続され、さらに、位置管理サーバ30aに接続されている。なお、リーダ20は、第一の実施形態と同様に、各アンテナpで受信した電波の強度を検出するAGC等が設けられている。
位置管理サーバ30aは、第一の実施形態と同様、機能的には、送受信部31、リーダ制御部32a、検出データ解釈部33a、位置決定部34a、入力部36、出力部37、主制御部35a、ファイル40a、を備えている。
ファイル40aには、各棚板毎に、棚板IDとそこに設けられている無線タグのIDとが登録されているタグ管理テーブル41aと、送受信部31が受信したままの生検出データが記憶される生検出データテーブル43aと、検出データ解釈部33aによる生検出データの解釈結果が記憶される解釈済み検出データテーブル44aと、位置決定部34aで求められた各棚板tの位置等が記憶される棚板情報テーブル45aとが設定されている。
タグ管理テーブル41aは、図18に示すように、各棚板19,t1,t2,t3のIDが登録されているデバイスID欄415と、各棚板19,t1,t2,t3に取り付けられている無線タグb,h1,h2,h3のIDが登録されているタグID欄416と、各棚板t1,t2,t3に取り付けられている位置検出アンテナp1,p2,p3のIDが登録されているアンテナID欄417とがある。なお、デバイスID415には、天板19のIDとして、この棚10aのIDが登録される。
生検出データテーブル43aは、図19に示すように、各位置検出アンテナp1,p2,p3のIDが登録されるアンテナID欄435と、各位置検出アンテナp1,p2,p3で受信された最大電波強度の無線タグのIDが登録されるデバイス・タグID欄436と、各位置検出アンテナp1,p2,p3で受信された二番目の電波強度の無線タグIDが登録される受信タグID欄437とがある。
解釈済み検出データテーブル44aは、図20に示すように、各位置検出アンテナp1,p2,p3のIDが登録されるアンテナID欄445と、各位置検出アンテナp1,p2,p3が取り付けられている棚板のIDが登録されるデバイスID欄446と、各位置検出アンテナp1,p2,p3で受信された二番目の電波強度の無線タグが取り付けられている棚板IDが登録される受信デバイスID欄447とがある。
棚板情報テーブル45aは、図21に示すように、この棚10aのIDが登録される棚ID欄458と、各棚板支持部14a,14b,14c毎にそこに載せられている棚板tのIDが登録されるデバイスID欄459とがある。なお、同図において、第一棚板支持部14a、第二棚板支持部14b、第三棚板支持部14cは、それぞれ、「1st」「2nd」「3rd」として示されている。
次に、本実施形態の位置管理サーバ30aの動作について、図22に示すフローチャートに従って説明する。なお、ここでは、図17に示すように、棚10aで最も上段の第一棚板支持部14aには第二棚板t2が載っており、中段の第二棚板支持部14bには第一棚板t1が載っており、下段の第三棚板支持部14cには第三棚板t3が載っているものとして説明する。
位置管理サーバ30aが起動すると、第一の実施形態と基本的に同様に、主制御部35aは、出力装置39に、例えば、「棚に設けられている板・無線タグの情報が初期設定されていますか?」等を表示させ(S10a)、初期設定されている旨を受け付けるとステップ12aに進み、初期設定されていない旨を受け付けると、初期設定のための情報を受け付けて、初期設定を実行する(S11a)。初期設定がなされていない場合には、入力部36がオペレータ等から初期設定情報を受け付け、主制御部35aが受け付けた情報をテーブル40aに登録することで、初期設定が実行される。
初期設定が終了、又は初期設定が既に終了している場合には、主制御部35aは、オペレータ等による入力装置38の操作により、位置検出開始の指示を受け付けたか否かを判断する(S12a)。位置検知開始を希望しない旨を受け付けると処理を終了し、位置検知開始の指示を受け付けると、制御端末21へリーダ20の駆動を指示する(S13a)。
リーダ20は、この指示を受けると駆動し、このリーダ20に接続されている位置検出アンテナp1,p2,p3により、各無線タグb,hからのIDを読み取る。この際、リーダ20は、第一の実施形態と同様に、無線タグIDが含まれている電波の強度を検知する。リーダ20は、無線タグIDを読み取ると、この無線IDと共に、この無線タグIDを受信したアンテナのIDと、この無線タグIDが含まれている電波の強度の情報を位置管理サーバ30aへ送信する。
位置管理サーバ30の送受信部31は、リーダ20による検出データを受信すると、これを生検出データテーブル43aに登録する(S14a)。この送受信部31は、この生検出データテーブル43aのアンテナID欄435に、無線タグIDを受信したアンテナIDを登録し、デバイス・タグID欄436に、該当アンテナpで受信された最大電波強度の無線タグID、つまり、該当アンテナpが取り付けられている棚板tの板・無線タグIDを登録し、受信タグID欄437に、該当アンテナpで受信された二番目の電波強度の無線タグID、つまり、他の棚板tの無線タグIDを登録する。上記手順において、アンテナID欄435に登録するアンテナIDは、タグ管理テーブル41aから最大電波強度で受信したタグIDを含むエントリを検索し、当該エントリに登録されているアンテナID欄417のアンテナIDにすることで決定する。
図19に示す例では、第二棚板t2に取り付けられている位置検出アンテナp2では、この第二棚板t2に取り付けられている板・無線タグh2のID(RAD93)を最大電波強度で受信したために、この板・無線タグh2のID(RAD93)がデバイス・タグID欄436に登録される。また、位置検出アンテナp2では、天板19に取り付けられている基準タグbのID(F23KN)及び第一棚板t1に取り付けられている板・無線タグh1のID(DSFGO)を2番目の電波強度で受信したために、これらの無線タグb,h1のID(F23KN, DSFGO)が受信タグID欄437に登録される。
生検出データテーブル43aへの生検出データの登録が終了すると、検出データ解釈部33aがタグ管理テーブル41aを参照して、生検出データテーブル43aに登録された生検出データを解釈し、その解釈結果を解釈済み検出データテーブル44aに登録する(S20a)。例えば、生検出データテーブル43aの位置検出アンテナp2で検出された生検出データを解釈する場合、生検出データテーブル43aのデバイス・タグID欄436に登録されているタグID(RAD93)を、このタグIDが示す無線タグh2が取り付けられている棚板の棚板ID(t2)に変換し、これを解釈済み検出データテーブル44aのデバイスID欄446に登録する。さらに、生検出データテーブル43aの受信タグID欄437に登録されている各タグID(F23KN,DSFGO)を、これらのタグIDが示す無線タグb,h1が取り付けられている棚板19,t1の棚板ID(sh-1,t1)に変換し、これを解釈済み検出データテーブル44aの受信デバイスID欄447に登録する。
検出データ解釈部33aによる生検出データの解釈が終了すると(S20a)、位置決定部34aは、解釈済み検出データテーブル44aを参照して、各棚板t1,t2,t3の位置を決定する(S30a)。
位置決定部34aは、この位置決定処理で、まず、解釈済み検出データテーブル44a中に基準無線タグbのIDが存在するか否かを判断する(S31a)。解釈済み検出データテーブル44a中に基準無線タグbのIDが存在しなければ、そのまま処理を終了する。また、基準無線タグbのIDが存在していれば、カウンタ値を1に設定した後(S32a)、解釈済み検出データテーブル44aのデバイスID欄446から、この基準無線タグbのIDを検出した棚板のIDを抽出する(S33a)。そして、棚板情報テーブル45aの棚ID欄458に、基準無線タグbが取り付けられている棚板IDを登録すると共に、棚情報テーブル45aのデバイスID欄459のカウンタ値が示す「1st」の欄に、棚板のIDを登録する(S34a)。具体的には、図20に示す解釈済み検出データテーブル44aの受信デバイス欄447には、基準無線タグbのID(sh−1)が登録されているので、デバイスID欄446から、このタグIDを検出した棚板19のID(t2)を抽出する。そして、棚板情報テーブル45aの棚ID欄458に、基準無線タグbが取り付けられている天板19のID(sh−1)を登録すると共に、棚情報テーブル45aのデバイスID欄459の「1st」の欄に、棚板のID(t2)を登録する。
次に、位置決定部34aは、ステップ34aで登録した棚板で受信した棚板IDのうちで、板情報テーブル45aの受信デバイスID欄447に未登録のものがあるか否かを判断する(S35a)。未登録の棚板IDがなければ、そのまま処理を終了する。また、未登録の棚板IDがあれば、解釈済み検出データテーブル44aの受信デバイス欄44からこの棚板IDを抽出した後(S36a)、カウンタ値に1を加えて(S37a)、棚情報テーブル45aのデバイスID欄459のカウンタ値が示す「2st」の欄に、この棚板IDを登録する(S38a)。この場合、ステップ34aで登録した棚板(t2)で受信した棚板ID(sh−1,t1)のうちで、板情報テーブル45aの受信デバイスID欄447に未登録の棚板ID(t1)があるので、この棚板IDを抽出し、棚情報テーブル45aのデバイスID欄459のカウンタ値が示す「2st」の欄に、この棚板ID(t1)を登録する。
ステップ38aで棚板IDを登録すると、再び、ステップ35aに戻って、このステップ35aで未登録の棚板がないと判断されるまで、ステップ35a〜ステップ38aの処理を繰り返す。この例では、最初に、ステップ38aで棚板ID(t1)を登録し、ステップ35aに戻った段階では、この登録した棚板(t1)で受信した棚板ID(t2,t3)のうちで、板情報テーブル45aの受信デバイスID欄447に未登録の棚板ID(t3)があるので、この棚板IDを抽出し、棚情報テーブル45aのデバイスID欄459のカウンタ値が示す「3rd」の欄に、この棚板ID(t3)を登録する。そして、再び、ステップ35aに戻った段階では、この登録した棚板(t3)で受信した棚板ID(t1)のうちで、板情報テーブル45aの受信デバイスID欄447に未登録の棚板IDはないので、一連の処理を終了する。
以上の処理の結果、本実施形態では、図21に示すように、棚ID「sh−1」の棚10aには、第一棚板支持部14aに棚板ID「t2」の棚板が載せられ、第二棚板支持部14bに棚板ID「t1」の棚板が載せられ、第三棚板支持部14cに棚板ID「t3」の棚板が載せられていることを検出することができる。
以上、本実施形態でも、位置検出対象である棚板tに無線タグh及び位置検知アンテナpが設けられているので、ある棚板tに隣接する棚板は、その位置アンテナpで、ある棚板tの無線タグhからの識別情報を受信できるので、ある棚板tとこれに隣接する棚板との間の相対位置を検出することができる。
なお、本実施形態のように、複数の位置検出対象が一列に並ぶ等、複数の位置検出対象の並び方が予め定められている場合には、第一の実施形態のように、各位置検出対象に複数の無線タグを設けることなく、複数の位置検出対象の相対位置を検出することができる。
また、複数の位置検出対象が一列に並ぶ場合、位置検出アンテナp及び無線タグhの取り付け方等により、基準無線タグbを設けなくても、各位置検出対象の位置を特定することが可能である。具体的には、無線タグ及び位置検出アンテナとして、それぞれ、一方向の指向性が高いものを用い、無線タグを下方のみに識別情報を送信するよう配置し、位置検出アンテナを上方からの識別情報のみを受信するよう配置すれば、上段の棚板の無線タグが、その下の段の棚板のアンテナで受信されるので、各棚板の上下関係はもとより、どの棚板が最上段にあるかも検出できる。
また、本実施形態では、ある棚板tに取り付けられた無線タグhからの識別情報を、この棚板tと一段違いの棚板のアンテナで受信でき、二段違いの棚板のアンテナでは受信できないことを前提に説明したが、二段違いの棚板のアンテナでも受信できても、何ら支障はない。具体的に、本実施形態で、ある棚板tに取り付けられた無線タグhからの識別情報を二段違いの棚板のアンテナで受信できるとした場合、図20に示す解釈済み検出データテーブル44aのアンテナID「p3」の受信デバイスID欄447には、中段に設けられた棚板のID「t1」の他に、最上段に設けられた棚板のID「t2」も登録される。本実施形態では、上段側から順番に、どの棚板が載せられているかを検出しているので、最下段の棚板t3を板情報テーブル45aに登録した段階(S38a)で、この棚板t3で受信した棚板IDのうちで、板情報テーブル45aの受信デバイスID欄447に未登録のものが存在しなくなる(S35a)。したがって、前述したように、二段違いの棚板のアンテナでも受信できても、何ら支障はない。
また、本実施形態では、アンテナによる受信電波の強度を検知する機能を持つリーダ20を用いたが、このようなリーダ20を用いなくても、無線タグとしてパッシブタイプのものであれば、アンテナから発する電波の強度を段階的に弱め、どの強度のときに無線タグからの識別情報を受信でき、どの強度のときにこの無線タグからの識別情報を受信できなくなるかを認識することで、間接的に、受信電波強度を把握することができる。
10:棚、20:リーダ、21:制御端末、30,30a:位置管理サーバ、31:送受信部、32,32a:リーダ制御部、33,33a:検出データ解釈部、34,34a:位置決定部、35,35a:主制御部、40,40a:ファイル、41:棚タグ管理テーブル、41a:タグ管理テーブル、42:基準タグ管理テーブル、43,43a:生検出データテーブル、44,44a:解釈済み検出データテーブル、45:棚情報テーブル、45a:棚板情報テーブル、s0,s1,s2,s3:棚・無線タグ、b,b1,b2:基準無線タグ、h1,h2,h3:棚板・無線タグ、t1,t2,t3:棚板