図1を参照して、この実施例の移動体管理システム100は、中央制御装置10および携帯端末12などを備える。中央制御装置10は、人間A,Bが所持する携帯端末12a,12bのそれぞれと、Bluetooth形式の近距離無線通信によって無線接続される。また、中央制御装置10は、ネットワーク50を介して、ロボット14に、人間A,Bなどを誘導したり、探索したりするための指示を送信することができる。このロボット14は、相互作用指向のロボット(コミュニケーションロボット)であり、人間A,Bのようなコミュニケーションの対象(コミュニケーション対象)との間で、身振り手振りのような身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。また、図1では図示していないが、中央制御装置10は、複数のLRFによって所定範囲内の人間Aおよび人間Bなどの現在位置を取得する。
なお、人間A,Bを区別する必要がない場合には、まとめて「人間」と言い、携帯端末12a,12bを区別する必要がない場合には、まとめて「携帯端末12」と言う。
図2は中央制御装置10の電気的な構成を示すブロック図である。この図2を参照して、中央制御装置10は、CPU16を含む。このCPU16は、マイクロコンピュータ或いはプロセッサとも呼ばれ、位置検出手段として機能するLRF18a,18b、受信手段として機能する近距離無線装置20、メモリ22および通信LANボード24とそれぞれ接続される。なお、LRF18a,18bを区別する必要がない場合には、まとめて「LRF18」と言う。
LRF18は、レーザーを照射し、物体(人間も含む)に反射して戻ってくるまでの時間から当該物体までの距離を計測するものである。たとえば、トランスミッタ(図示せず)から照射したレーザーを回転ミラー(図示せず)で反射させて、前方を扇状に一定角度(たとえば、0.5度)ずつスキャンする。ここで、LRF18としては、SICK社製のレーザーレンジファインダ(型式 LMS200)を用いることができる。このレーザーレンジファインダを用いた場合には、距離8mを±15mm程度の誤差で計測可能である。そして、LRF18は、会社のフロア、ショッピングモールまたはアトラクション会場などの様々な環境で設置され、人間の位置を検出する。
また、近距離無線通信装置20は、Bluetooth形式の無線通信を確立するための装置であり、本実施例では環境内に存在する携帯端末12との無線通信を確立する。また、メモリ22は、図示は省略をするが、ROM,HDDおよびRAMを含み、ROMおよびHDDには、近距離無線通信に必要な機器アドレスのデータや、中央制御装置10の動作を制御するための制御プログラムが予め記憶される。たとえば、LRF18による移動体である人間の検出に必要なプログラムや、携帯端末12との無線通信を確立するためのデータやコマンドを送受信するための通信プログラムなどが記録される。また、RAMは、ワークメモリやバッファメモリとして用いられる。
また、CPU16は、通信LANボード24に接続される。通信LANボード24は、たとえばDSPで構成され、CPU16から与えられた送信データを無線通信装置26に与え、無線通信装置26は送信データを、ネットワーク50を介して外部装置(ロボット14および後述する情報発信装置など)に送信する。たとえば、送信データとしては、中央制御装置10からロボット14に対する制御命令の信号(コマンド)であったりする。また、通信LANボード24は、無線通信装置26を介してデータを受信し、受信したデータをCPU16に与える。
図3は携帯端末12の電気的な構成を示すブロック図である。図3を参照して、携帯端末12は、CPU130を含む。CPU130は、中央制御装置10のCPU16と同様に、マイクロコンピュータ或いはプロセッサとも呼ばれ、スピーカ132、キー入力装置134、LCDドライバ136、メモリ140、加速度センサ142および加速度送信手段として機能する近距離無線通信装置146のそれぞれと接続される。スピーカ132は、メモリ140内に記録されている音楽データや音声データなどを出力する際に利用される。
キー入力装置134は、方向キーおよび決定キーなどから構成され、LCDドライバ136によって制御されるLCD138に表示されるGUI(Graphical User Interface)に対する、キー操作を受けつける。メモリ140は、中央制御装置10のメモリ22とは異なり、フラッシュメモリおよびRAMを含み、フラッシュメモリには、近距離無線通信を確立するために必要な機器アドレスのデータや、先述した音楽データおよび音声データなどが記憶されると共に、携帯端末12の動作を制御するための制御プログラムが予め記憶される。また、RAMは、ワークメモリやバッファメモリとして用いられる。
加速度センサ142は、半導体式の2軸の加速度センサであり、各軸の加速度(第1加速度)をCPU130に出力する。そして、CPU130は、各軸の加速度の値に対して逆三角関数を用いて、携帯端末12の傾き、つまり角度を算出する。なお、この加速度センサ142は、半導体式の3軸の加速度センサであってもよい。
また、近距離無線通信装置146は、同一環境内の中央制御装置10との無線通信を確立するために利用され、その構成は中央制御装置10が備える近距離無線通信装置20と同じであるため、詳細な説明は省略する。
次にLRF18について詳細に説明する。図4を参照して、LRF18の計測範囲は、半径R(R≒8m)の半円形状(扇形)で示される。つまり、LRF18は、その正面方向を中心とした場合に、左右90°の方向を所定の距離(R)以内で計測可能である。
また、使用しているレーザーは、日本工業規格 JIS C 6802「レーザー製品の安全基準」におけるクラス1レーザーであり、人の眼に対して影響を及ぼさない安全なレベルである。また、この実施例では、LRF18のサンプリングレートを38.5Hzとした。これは、歩行するなどにより移動する人間の位置を連続して検出するためである。
さらに、先述したように、LRF18は、様々な環境に配置される。具体的には、LRF18a,18bの各々は、検出領域が重なるように配置され、図示は省略するが、床面から約90cmの高さに固定される。この高さは、被験者の胴体と腕(両腕)とを検出可能とするためであり、たとえば、日本人の成人の平均身長から算出される。したがって、中央制御装置10を設ける場所(地域ないし国)や被験者の年齢ないし年代(たとえば、子供,大人)に応じて、LRF18を固定する高さを適宜変更するようにしてよい。なお、本実施例では、設定されるLRF18は、2つだけとしたが、さらに広い範囲で人間を検出するために、3つ以上のLRF18が設置されてもよい。
このような構成の中央制御装置10では、CPU16がLRF18からの出力(距離データ)に基づいて、パーティクルフィルタを用いて、人間の現在位置の変化を推定する。そして、推定された現在位置の変化は歩行軌跡として記録され、中央制御装置10は歩行軌跡から人間の加速度(第2加速度)を算出する。
ここで、検出領域で検出される人間の加速度を取得する方法について具体的に説明する。図5(A)を参照して、LRF18a,18bは互いに向い合せに設置され、LRF18a,18bの計測範囲が重なる範囲は斜線が付されて示される。斜線が付された範囲は検出領域Eとされ、この検出領域E内では人間Aと人間Bとの現在位置が連続的に検出される。そして、連続的に検出された現在位置のデータは歩行軌跡として示される。たとえば、人間Aおよび人間Bの歩行軌跡は、歩行軌跡Kaおよび歩行軌跡Kbで示される。なお、図5(A)では、人間A,Bを円で表す。また、歩行軌跡Ka,Kbを区別する必要がない場合には、まとめて「歩行軌跡K」と言う。
まず、所定時間(20秒間)内に取得された人間の歩行軌跡Kについて説明する。中央制御装置10は、図5(A)の検出領域Eにおいて、左右方向をX軸、上下方向をY軸として、計測開始時刻T0の座標位置を原点(0.0,0.0)として記録する。そして、中央制御装置10は、一定時間(たとえば、26ミリ秒)毎にX軸およびY軸の位置を20秒間、記録する。
図5(B),(C)は横軸をX軸、縦軸をY軸とし、人間Aおよび人間Bにおける20秒間の歩行軌跡Kaおよび歩行軌跡Kbを示す図解図である。図5(B)を参照して、人間Aは、計測開始時刻T0から5秒後に(2.0,1.0)、10秒後に(4.5,1.2)、15秒後に(7.0,1.2)、20秒後に(10.0,0.0)の位置に移動していることが分かる。つまり、人間Aは、20秒かけて右方向に10m移動し、15秒かけて左方向に1メール移動するが最終的には元の位置(Y軸の零位置)に戻る。
一方、図5(C)を参照して、人間Bは、計測開始時刻T0から5秒後に(0.7,0.1)、10秒後に(3.0,0.2)、15秒後に(4.5,0.1)、20秒後に(5.0,0.0)の位置に移動していることが分かる。つまり、人間Bは、20秒かけて進行方向(X軸方向)に5メートル移動し、左右方向(Y軸方向)では僅かに右へ移動するが最終的には元の位置(Y軸の零位置)に戻る。
次に、歩行軌跡Kから人間の加速度を算出する方法について説明する。記録された歩行軌跡Kからは、或る時刻Tkから一定時間dが経過した時刻Tk+dの移動距離を求めることができる。そのため、中央制御装置10は、移動距離を一定時間毎に微分して速度を算出し、さらに算出した速度を一定時間毎に微分することで、人間Aおよび人間Bの加速度を算出することができる。
図6(A)はX軸方向における人間Aの加速度の変化を示すグラフであり、図6(B)はY軸方向における人間Aの加速度の変化を示すグラフである。図6(A)を参照して、X軸方向おける人間Aは、計測開始後、0.4m/s2で急激に加速し、5秒後から0.1m/s2でさらに加速して、等速で移動する。そして、14秒後から0.1m/s2でさらに加速した後に、また等速で移動する。また、図6(B)を参照して、Y軸方向における人間Aは、計測開始後、0.2m/s2で加速し、すぐに等速で移動する。また、4秒後には0.12m/s2で減速し、さらに9秒後には0.05m/s2で減速する。そして、14秒後には0.2m/s2で減速してから等速で移動する。つまり、図6(A),(B)に示すグラフから、人間Aは、左右方向に対して僅かに揺れているが、右方向に対して一気に加速し、その後、速度を上げながら移動していることが分かる。
一方、図7(A)はX方向における人間Bの加速度の変化を示すグラフであり、図7(B)
はY軸方向における人間Bの加速度の変化を示すグラフである。図7(A)を参照して、X軸方向における人間Bは、計測開始後0.15m/s2で加速し、5秒後にさらに0.3m/s2で加速して、等速で移動する。また、9秒後に0.15m/s2で減速し、さらに15秒後に0.2m/s2で減速して、等速で移動する。また、図7(B)を参照して、Y軸方向における人間Bの加速度は、計測開始後、0.05m/s2で緩やかに加速し、3秒後には0.05m/s2で減速して、続けて加速する。そして、10秒後には緩やかに0.02m/s2で減速した後に、0.0m/s2となる。つまり、図7(A),(B)に示すグラフから、人間Bは、左右方向に細かく揺れながら、9秒後までは速度を急激に上げながら右方向に移動するが、10秒経過した後は2回減速していることが分かる。このように、同じ方向に移動する人間A,Bでも、加速度の変化は全く違うものになる。
ここで、加速度センサ142が出力する加速度と、LRF18を利用して算出された人間の加速度との関係について説明する。
まず、携帯端末12は人間のポケットやカバンに収納された状態で持ち運ばれるため、加速度センサ142は、ポケットやカバンに収納された状態で2軸が地面に水平となるように、携帯端末12に設けられる。しかし、携帯端末12が持ち運ばれる状態によっては、LRF18の検出領域EにおけるX,Y軸と、加速度センサ142の2つの軸とが一致しない場合が考えられる。そこで、中央制御装置10は、加速度センサ142が出力する2方向の加速度を、検出領域EのX,Y軸方向の加速度のそれぞれと相関を取ることで、加速度センサ142の2つの軸を、検出領域EのX軸およびY軸と対応づける。なお、本実施例では、加速度センサ142の2つの軸を、それぞれXa軸およびYa軸と言う。
具体的には、加速度センサ142におけるXa軸方向の加速度に対して、人間の加速度におけるX軸とY軸との相関係数を算出し、さらに加速度センサ142におけるYa軸方向の加速度に対して、人間の加速度におけるX軸とY軸との相関係数を算出する。そして、Xa軸とX軸との相関係数およびYa軸とY軸との相関係数とが、Xa軸とY軸との相関係数およびYa軸とX軸との相関係数より大きければ、Xa軸方向およびYa軸方向の加速度がX軸方向およびY軸方向の加速度とされ、一方、小さければ、Xa軸方向およびYa軸方向の加速度がY軸方向およびX軸方向の加速度とされる。つまり、中央制御装置10は、X軸およびXa軸、Y軸とYa軸とが一致しているか否かを判断して、一致していればXa軸およびYa軸を、X軸およびY軸に対応付け、一致していなければXa軸およびYa軸を、Y軸およびX軸に対応付ける。
そして、中央制御装置10は、対応づけた加速度センサ142が出力するXa軸方向およびYa軸方向の加速度と、算出されたX軸方向およびY軸方向の加速度との相関係数を算出する。これにより、相関係数が所定値以上であれば、携帯端末12を所持する人間と、LRF18によって検出された人間とを同定する。
たとえば、或る携帯端末12が有する加速度センサ142のXa軸方向の加速度とYa軸方向の加速度とを図8(A),(B)に示す。図8(A)を参照して、Xa軸方向の加速度の変化は、加速度のデータを取得開始後、0.4m/s2で急激に変化し、4.5秒後にはさらに0.4m/s2変化する。その後、14秒後にも0.4m/s2に変化して、0.0m/s2になる。また、図8(B)を参照して、Ya軸方向の加速度の変化は、加速度のデータを取得開始後、0.2m/s2に変化し、4.5秒後に−0.12m/s2に変化する。その後、9.5秒後に−0.05m/s2に変化し、14秒後には−0.2m/s2に変化してから0.0m/s2になる。
つまり、図8(A),(B)に示すグラフから、加速度センサ142のXa軸およびYa軸の変化は、人間Aの加速度の変化に似ており、さらに人間Bの加速度の変化とは似ていないことが分かる。なお、加速度のデータを取得開始時刻と、LRF18による計測開始時刻T0とは、同じタイミングとなるように同期がとられている。
まず、加速度センサ142のXa軸およびYa軸を、X軸またはY軸のいずかに対応させる処理について詳細に説明する。ここで、本実施例では、軸を対応させる処理にピアソンの積率相関係数を利用する。このピアソンの積率相関係数は、各軸の加速度値を1秒毎にn個(n=20)ずつ用意し、各軸の共分散を軸毎の標準偏差の積で割ることで得ることができる。たとえば、加速度センサ142のXa軸と人間AのX軸との加速度の相関係数は数1に示す式で求めることができ、数1による算出結果が0.96となる。
さらに、他の軸の組み合わせについても相関係数を算出すると、Xa軸とY軸との加速度の相関係数が0.39、Ya軸とX軸との加速度の相関係数が0.34、Ya軸とY軸との加速度の相関係数が0.88となる。
なお、ピアソンの積率相関係数は、最大値を1、最小値を−1とし、相関係数が1に近いほど正の相関関係が高いことを意味する。一方、相関係数が−1に近いほど負の相関関係が高いことを意味する。そして、相関係数が0であれば相関関係が無いことを意味する。
そして、各軸の組み合わせの相関係数を算出した結果は、図9(A)に示す計算テーブルに記録され、たとえば、携帯端末12が備える加速度センサ142に設定されたIDをセンサID(第1ID):001とし、人間Aに設定されたIDを人間ID(第2ID):001とする場合に、センサID:001のXa軸と人間ID:001のX軸との相関係数として0.96が記録され、Xa軸とY軸との相関係数として0.39が記録され、Ya軸とX軸との相関係数として0.34が記録され、Ya軸とY軸との相関係数として0.88が記録される。
これにより、Xa軸と人間AにおけるX軸との相関係数(0.96)およびYa軸とY軸との相関係数(0.88)が、Xa軸と人間AにおけるY軸との相関係数(0.39)およびYa軸とX軸との相関係数(0.34)より大きいため、中央制御装置10は、加速度センサ142のXa軸およびYa軸を、検出領域EにおけるX軸およびY軸と対応付ける。そして、中央制御装置10は、Xa軸と人間AにおけるX軸との相関係数およびYa軸とY軸との相関係数を0.96および0.88として記録する。
同様にして、加速度センサ142のXa軸,Ya軸のそれぞれと、人間Bにおける算出された加速度のX軸,Y軸とのそれぞれの相関係数を算出すると、Xa軸およびYa軸が、検出領域EにおけるY軸方向およびX軸方向と対応づけられる。さらに、中央制御装置10は、Xa軸と人間BにおけるY軸との相関係数およびYa軸と人間BにおけるX軸との相関係数を0.50および0.13として記録する。
次に、加速度センサ142によって加速度を出力される人間を、LRF18によって検出される人間Aまたは人間Bのいずれかと同定する処理について詳細に説明する。中央制御装置10は、人間A,Bのそれぞれに対応するX軸およびY軸の相関係数のうち、所定値(0.80)を超えており、2つの相関値の和が最も大きい組み合わせとなる人間と、加速度センサ142とを特定する。つまり、加速度センサ142のXa軸と人間AにおけるX軸との相関係数(0.96)およびYa軸とY軸との相関係数(0.88)とが所定値を超えており、さらに2つの相関係数の和(1.84)が、加速度センサ142と人間Bとの2つの相関係数の和(0.63)よりも大きいため、加速度センサ142を有する携帯端末12を所持しているのは、人間Aであると特定される。つまり、加速度センサ142によって加速度を出力される人間が、LRF18によって検出される人間Aと同一であると同定される。
そして、X軸とY軸との相関係数を利用することで、中央制御装置10は、信頼性の高い同定ができるようになる。(3)
なお、本実施例では、2軸の加速度センサ142ではなく、3軸の加速度センサであってもよい。たとえば、3軸の加速度センサでは、地面に対して水平方向の2軸(Xa軸,Ya軸)に加えて、地面に対して垂直方向(Z軸方向)の加速度も出力する。このとき、3つの軸において重力加速度G(9.8)m/s2を出力する軸がZ軸であり、残りの2軸がXa軸またはYa軸となる。そして、上述した方法で、Xa軸およびYa軸を、検出領域EのX軸またはY軸のいずれかに対応付けることができる
また、図5(A)に示す検出領域Eに対して、左右方向をX軸、上下方向をY軸としたが、現在位置の変化量が大きい方向をX軸方向とし、さらにそのX軸方向に垂直に交わる方向をY軸方向としてもよい。このとき、3軸の加速度センサであれば、各軸の変化量から携帯端末12の3次元空間における傾きを得ることがでるため、中央制御装置10は、水平方向おいて加速度の変化量が最も大きくなる進行方向と、その進行方向に対して垂直に交わる左右方向とを推定することができる。これにより、LRF18を利用して算出された加速度と、加速度センサ142を利用して取得された加速度との相関係数を算出してもよい。
ここで、本実施例における検出領域E内に居る人間の人数がL人であり、携帯端末12から送信される加速度のデータ数がM個であっても、中央制御装置10は、各携帯端末12を所持する各人間を検出領域E内の各人間とそれぞれ同定することができる。つまり、人間IDおよびセンサIDによって管理することができるため、多くの人間を管理する場合に、IDテーブルデータを単純な構成にすることができる。そして、IDテーブルデータの構成を単純にすることで、IDテーブルデータに対する検索処理などの処理時間を短縮することができる。(2)
図9(B)を参照して、相関テーブルにおける左短の列には「人間ID」と記録され、その右側には、人間IDを示す001からLが記録される欄がそれぞれ設けられる。一方、相関テーブルにおける1行目には「センサID」と記録され、その2行目には、センサIDを示す001からMが記録される欄それぞれ設けられる。そして、各センサIDの欄には、X軸およびY軸の欄が対応して設けられる。
なお、先述したとおり、人間Aに割り当てられた人間IDを001とし、携帯端末12aが有する加速度センサ142に割り当てられたセンサIDを001とする。さらに、人間Bに割り当てられた人間IDを003とし、携帯端末12bが有する加速度センサ142に割り当てられたセンサIDを002とする。
すると、人間ID:001に対応するセンサID:001のX軸およびY軸の欄には、先述した、2つ相関係数が記録される。つまり、X軸に対応する欄には0.96が記録され、Y軸に対応する欄には0.88が記録される。さらに、人間ID:003に対応するセンサID:001のX軸およびY軸の欄にも、先述した、2つ相関係数が記録される。つまり、X軸に対応する欄には0.50が記録され、Y軸に対応する欄には0.13が記録される。
また、人間ID:002に対応する人間の加速度については詳細に説明していないが、X軸の欄には0.65が記録され、Y軸の欄には0.44が記録される。そして、人間ID:Lに対応する人間の加速度についても詳細に説明していないが、X軸の欄には−0.33が記録され、Y軸の欄には0.51が記録される。さらに、センサID:002およびセンサID:Mに対応する加速度センサ142については詳細に説明していないが、同様にして各人間IDとの相関係数が算出され、記録される。
そして、中央制御装置10は、センサID毎に、X軸とY軸との相関係数が所定値以上であり、2つの相関係数の和が最大値となる人間IDを特定する。つまり、センサID:001では人間ID:001、センサID:002では人間ID:003、センサID:Mでは人間ID:002が特定、つまり同定される。また、この同定された結果は、後述するIDテーブルに記録され、中央制御装置10のメモリ22内に記憶される。
このように、検出領域E内に居る複数の人間のそれぞれが携帯端末12を所持していれば、同定することができる。
ここで、携帯端末12は、加速度センサ142が出力する加速度のデータだけではなく、近距離無線通信に必要な機器アドレスのデータと、携帯端末12に記録され、公開可能なデータと、その公開可能なデータの公開範囲を示すデータ(制限データ)とを合わせて送信する。そして、中央制御装置10は、各携帯端末12から送信される各データをセンサテーブルデータに記録する。
図10を参照して、センサテーブルデータは、「センサID」の列、「機器アドレス」の列、「公開範囲」の列および「公開データ」の列から構成されている。「センサID」の列には、加速度のデータを出力する携帯端末12のそれぞれに割り当てられたセンサIDが全て記録される。たとえば、相関テーブルにおけるセンサIDの行と同様に、001からMまでが記録される。「機器アドレス」の列には、記録されるセンサIDに対応して、12桁の英数字列で示される機器アドレスが記録される。たとえば、この機器アドレスは、16進数で表記され、「00:00:00:00:00:01」などで表される。
また、「公開範囲」の列には、携帯端末12に記録されているデータを公開する範囲を示すデータが記録されており、たとえば、「家族」、「アドレス指定」、「全て」および「非公開」などである。「家族」は、各人間の位置履歴情報から推定されるグループ情報である。検出領域E内の人間には位置履歴情報からグループ情報が設定され、公開範囲に「家族」が設定されている場合には、同じ「家族」が設定されている人間が所持する携帯端末12に対して、機器アドレスや公開データなどを公開することを意味する。なお、グループ情報としては「友人」などが設定されてもよいし、グループ名に関係なく同一グループであればよいことを示す「同一」などが設定されてもよい。
「アドレス指定」は、他の携帯端末12に設定されている機器アドレスを任意に指定することを意味する。そして、アドレス指定が記録されている欄には指定するアドレスが共に記録される。「全て」は、公開データを、他の携帯端末12や、情報発信装置などに制限無く公開することを意味する。「非公開」は、「全て」とは逆の意味であり、公開データを、他の携帯端末12や、ロボット14および情報発信装置などに一切公開しないことを意味する。
そして、「公開データ」の列には、「機器アドレス」、「名前:CCC」および「趣味」などが記録される。「機器アドレス」は、自身に設定されている機器アドレスを意味する。「名前:CCC」は、携帯端末12を所持する人間の名前を意味し、たとえばCCCだけに限らず、AAAおよびBBBなどであってもよい。「趣味」は、携帯端末12を所持する人間の趣味を意味し、たとえば家電、読書および音楽鑑賞などである。なお、「趣味」などの具体的な内容は人間によって予め携帯端末12に記録され、携帯端末12には「趣味」のファイル名称が設定されて記録される。
次に、人間IDとセンサIDとを対応付け、さらにセンサIDと対応する公開範囲および公開データを記録するIDテーブルについて説明する。図11を参照して、IDテーブルには、「人間ID」の列、「センサID」の列、「公開範囲」の列および「公開データ」の列から構成される。
「人間ID」の列には、先述したとおり、001からLまでの人間IDが記録される。「センサID」の列には、001からMまでのセンサIDが記録され、機器アドレスが共に記録される。たとえば、センサID:001には「00:00:00:00:00:01」が共に記録される。
なお、「センサID」の列は、「人間ID」の列とは異なり、センサIDが順列となるように記録されることはない。また、検出領域E内の人間が必ずしも携帯端末12を所持しているとは限らないため、センサID、公開範囲および公開データが対応づけて記憶されない場合がある。
つまり、中央制御装置10は、検出領域E内に存在する人間および携帯端末12を対応付けて記録し、携帯端末12に所持する人間の名前や趣味などの個人情報が記録されていれば、個人情報も併せて記録する。これにより、移動体管理システム100は、RFIDタグを利用する手法とは異なる手法で、個人を特定することも可能になる。
次に、携帯端末12によって公開範囲および公開データを設定するGUIについて詳細に説明し、さらに、公開範囲および公開データの情報を利用したサービスの提供方法ついて説明する。
まず、公開範囲および公開データを設定するGUIについて説明する。図12を参照して、携帯端末12のLCD138には公開範囲設定画面が表示される。この公開範囲設定画面には、公開範囲を決定するためのチェックボックス200a−200dと、チェックボックス200a−200cのそれぞれに対応して公開データを表示する公開データ表示202a−202cとが設けられる。なお、この公開データ表示202a−202cに表示される内容は、キー入力装置134に対するキー操作に応じて、文字列が直接入力されてもよいし、メニュー選択によってメモリ140に記憶されているデータが指定されてもよい。
チェックボックス200aは、先述したグループ情報に対応しており、図12では「家族」のグループ情報に対応する。また、公開データ表示202aには、「家族」に設定されている人間が所持する携帯端末12に公開するデータが表示される。たとえば、ここでは「機器アドレス」が表示される。また、公開データ表示202aには「機器アドレス」が表示されており、このGUIを表示する携帯端末12に設定されている機器アドレス(たとえば、「00:00:00:00:00:01」)が公開データとして設定されていることを意味する。そして、チェックボックス200aにチェックがされれば、公開データ表示202aに表示されている内容が公開される。つまり、同じ「家族」に設定された人間が所持する携帯端末12に、機器アドレスが公開される。
チェックボックス200bは、図10に示す「公開範囲」の列の「アドレス指定」に対応する。また、指定する機器アドレスが設定されている場合には、図12に示すように、アドレス指定の下に「00:00:00:00:00:03」が付されて表示される。さらに、公開データ表示202bには「名前:AAA」が表示されているため、このGUIを表示する携帯端末12を所持する人間の名前が「AAA」であり、その名前が公開データとして設定されていることを意味する。そして、チェックボックス200bにチェックがされれば、公開データ表示202bに表示されている内容が公開される。つまり、機器アドレス「00:00:00:00:00:03」が設定されている携帯端末12に対して、名前「AAA」が公開される。
チェックボックス202cは、「全て」に対応しており、先述したとおり、他の携帯端末12、ロボット14および情報発信装置などに対して、制限なく公開データを公開する。また、公開データ表示202cには「趣味」が表示されている。そして、チェックボックス202cにチェックがされれば、公開データ表示202cに表示されている内容が公開される。つまり、この携帯端末12を所持する人間の趣味が、制限なく外部装置(他の携帯端末12、情報発信装置およびロボット14など)に公開される。
チェックボックス202dは、「非公開」に対応しており、先述したとおり、外部装置に対して、データを公開しないことを意味する。つまり、チェックボックス202dにチェックがされていれば、この携帯端末12はデータを公開することはない。
なお、工場出荷時などは、初期設定でチェックボックス202dにチェックがされるようになっている。また、公開データは1つだけに限らず、複数のデータであってもよい。
次に、公開範囲および公開データの情報を利用したサービスの提供方法について説明する。使用者(人間)に提供される提供するサービスとしては、探索サービスや、情報提供サービスである。つまり、中央制御装置10は、IDテーブルに記録される公開範囲および公開データを利用して、様々なサービスを使用者(人間)に提供できる。まず、探索サービスでは、検出領域E内にいる他の人間を探索する要求がされたときに、中央制御装置10は、要求元の携帯端末12に対して要求された人間の現在位置を示す情報を送信する。
たとえば、名前が「CCC」の人間(探索先)の現在位置を探索する操作が、或る携帯端末12を所持する人間(要求元)によってされると、名前が「CCC」の人間を探索する探索要求が、或る携帯端末12から中央制御装置10に送信される。すると、中央制御装置10は、IDテーブルにおける「公開データ」の列から「名前:CCC」の文字列を探索し、その探索結果に応じて公開範囲の情報を取得する。次に、取得された公開範囲が、機器アドレス「00:00:00:00:00:01」のアドレス指定であるため、探索要求を発信した或る携帯端末12の機器アドレスを確認する。このとき、或る携帯端末12の機器アドレスが「00:00:00:00:00:01」であれば、中央制御装置10は或る携帯端末12に対して、名前が「CCC」の人間がいる場所の地図と、その人間がいる現在位置を示すアイコンとのデータを送信する。そして、図13(A)を参照して、或る携帯端末12のLCD138には、名前が「CCC」の人間がいる環境の地図と、その人間がいる現在位置を示すアイコンとが表示される。
このように、使用者は、携帯端末12を利用して、任意の場所で他の人間を探索することができるようになる。なお、使用者は、公開データの公開範囲を制限することで、関係ない人には、自身の居場所を知られることはない。
なお、或る携帯端末12の機器アドレスが「00:00:00:00:00:01」でなければ、中央制御装置10は、情報を公開できないことを示す画像や文字列のデータを、或る携帯端末12に送信する。
また、探索サービスでは、探索要求をした人間の元へ、探索する人間を誘導することも可能である。たとえば、中央制御装置10は、名前が「CCC」の人間をロボット14よって探索を補助する探索要求を或る携帯端末12からされると、名前が「CCC」の人間の現在位置と、或る携帯端末12を所持する人間の現在位置とをロボット14に送信する。さらに、中央制御装置10は、名前が「CCC」の人間を或る携帯端末12を所持する人間の元に誘導する誘導指示も送信する。そして、ロボット14は、2人の現在位置を示す情報と誘導指示とを受信すると、誘導指示に従って人間を誘導する。つまり、名前が「CCC」の人間は、或る携帯端末12を所持する人間の元に、ロボット14によって誘導される。つまり、使用者は、迷子などの捜す場合に、ロボット14を利用して迷子を自身の元に連れてくることができる。
このように、携帯端末12を所持する人間は、自分の家族(迷子)を捜す場合に、家族が所持する携帯端末12を利用して見つけることができる。
次に、情報発信装置を利用した情報提供サービスについて説明する。検出領域E内に存在する店舗には情報発信装置が設けられており、この情報発信装置は、設けられた店舗に関わる情報(たとえば、特売情報など)を発信することができる。
たとえば、情報発信装置は、中央制御装置10に対して公開データの取得要求を送信する。すると、中央制御装置10は、受信した公開データの取得要求に応じて、IDテーブルで公開範囲が「全て」に設定されている公開データおよびセンサIDを情報発信装置に送信(提供)する。情報発信装置は、受信した公開データから、自身に記録されている顧客名簿の名前や、設置された店舗に関わる文字列を検索し、検索結果に該当するセンサIDに基づいて、特売情報などを携帯端末12に送信する。
そして、図13(B)を参照して、特売情報などを送信された携帯端末12のLCD138には、特売情報が表示される。たとえば、電気店に設置された情報発信装置からは、家電特売情報が発信される。つまり、使用者は、自身の興味がある場所に赴くことで、必要な情報を得ることができるようになる。さらに、情報発信装置は、中央制御装置10に対して公開データの取得要求(公開要求)を送信することで、設けられた店舗に関する情報を発信可能な携帯端末12を特定することができる。これにより、情報発信装置を設ける店舗の店員は、効率よく特売情報などを提供することができるようになる。
図14は、図2に示した中央制御装置10のメモリ22のメモリマップ300の一例を示す図解図である。図14に示すように、メモリ22は、プログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、位置履歴記録プログラム312、加速度センサ履歴記録プログラム314、管理プログラム316、公開データ管理プログラム318などが記憶される。ただし、管理プログラム316は、相関係数算出プログラム316aを含む。
位置履歴記録プログラム312は、検出領域Eに居る各人間の位置情報を一定周期毎に記録するプログラムである。また、加速度センサ履歴記録プログラム314は、各携帯端末12から送信される加速度のデータを受信する度に記録するプログラムである。
管理プログラム316は、検出領域E内の各人間が所持する携帯端末12を特定して記録するためのプログラムである。また、管理プログラム316のサブルーチンである、相関係数算出プログラム316aは、人間の位置履歴情報から算出した加速度と、加速度センサ142が出力する加速度との相関係数を算出するためのプログラムである。公開データ管理プログラム318は、IDテーブルを構成する「公開データ」の列に記録されている各データを、対応する「公開範囲」の列を参照して、探索要求や取得要求に応じて送信するためのプログラムである。
なお、図示は省略するが、中央制御装置10を動作させるためのプログラムは、近距離無線通信を確立するためのプログラムおよびネットワーク50を介してデータ通信を行うプログラムなども含む。
また、データ記憶領域304には、位置履歴データ330、加速度センサ履歴データ332、計算テーブルデータ334、相関テーブルデータ336、センサテーブルデータ338、IDテーブルデータ340および地図データ342が記録される。
位置履歴データ330は、LRF18によって検出領域E内に存在する各人間の一定周期毎の位置が記録されたデータから構成され、人間の加速度を算出するために利用される。そして、位置履歴データ330は、位置履歴記録プログラム312によって更新される。加速度センサ履歴データ332は、複数の加速度センサ142から送信される加速度のデータが一定周期毎に記録されたデータから構成される。そして、加速度センサ履歴データ332は、加速度センサ履歴記録プログラム314によって更新される。なお、位置履歴データ330および加速度センサ履歴データ332を構成する各データには、メモリ22に記録された時刻または中央制御装置10が取得した時刻が対応付けられる。
計算テーブルデータ334は、図9(A)に示す計算テーブルのデータである。相関テーブルデータ336は、図9(B)に示す相関テーブルのデータである。なお、この計算テーブルデータ334および相関テーブルデータ336は、相関係数算出プログラム316aが実行されるときに用いられる。センサテーブルデータ338は、図10に示すセンサテーブルのデータである。
IDテーブルデータ340は、図11に示すIDテーブルのデータであり、管理プログラム316が実行されることで記録される内容が更新され、公開データ管理プログラム318が実行される場合に利用される。地図データ342は、検出領域E内の地図を示すデータである。
また、図示は省略するが、データ記憶領域304には、様々な計算の結果を一時的に格納するバッファなどが設けられると共に、中央制御装置10の動作に必要な他のカウンタやフラグも設けられる。
具体的には、中央制御装置10のCPU16は、図15−図19に示す処理を含む、複数の処理を並列的に実行する。
図15に示すように、中央制御装置10のCUP16は、位置履歴記録処理を実行すると、ステップS1で、検出した時刻を記録する。つまり、LRF18で検出領域E内の人間を検出した時刻を記録する。続いて、ステップS3で、検出した各人間の座標を算出する。つまり、検出領域E内で検出された各人間のX軸の座標およびY軸の座標を算出する。続いて、ステップS5では、算出した各座標を記録する。つまり、各人間に対して算出されたX軸の座標およびY軸の座標を記録する。また、ステップS5の処理が終了すると、ステップS1で記録した時刻と、ステップS5で記録した各座標とを、位置履歴データ330を構成する履歴のデータとしてメモリ22に記憶させる。なお、ステップS1−S5の処理時間は、一定時間(約26ミリ秒)であり、位置履歴記録処理はLRF18の検出周期(38.5Hz)と同期して繰り返し実行される。
図16は、加速度センサ履歴記録処理のフロー図である。図16で示すように、中央制御装置10のCPU16は、ステップS11で加速度を受信したか否かを判断する。つまり、加速度センサ142が出力する加速度を、携帯端末12から受信したか否かを判断する。ステップS11で“NO”であれば、つまり加速度を受信しなければ、ステップS11の処理を繰り返し実行する。一方、ステップS11で“YES”であれば、つまり加速度を受信すれば、ステップS13で受信した時刻を記録する。つまり、携帯端末12が発信した加速度のデータを受信した、時刻を記録する。続いて、ステップS15では、受信した各加速度のデータを記録する。つまり、各携帯端末12が発信した加速度のデータをそれぞれ記録する。また、ステップS15の処理が終了すると、ステップS13で記録した時刻と、ステップS15で記録した各加速度のデータとを、加速度センサ履歴データ332を構成する履歴のデータとして、メモリ22に記憶させる。
図17に示すように、中央制御装置10のCPU16は、検出領域E内で人間を検出し、加速度センサ142から加速度のデータを受信すると、管理処理を実行し、ステップS21で、終了操作か否かを判断する。たとえば、管理処理を終了する操作が管理者によってされたか否かを判断する。そして、ステップS21で“YES”であれば、管理処理を終了し、“NO”であれば、ステップS23で携帯端末12のデータを記録し、人間および加速度センサ142の全てにIDを設定する。つまり、各携帯端末12が送信する機器アドレス、公開範囲および公開データをセンサテーブルデータ338に記録する。そして、検出領域E内に居る各人間に人間IDをそれぞれ設定し、さらに受信した機器アドレス、公開範囲および公開データの数に応じてセンサIDを設定する。つまり、ステップS23の処理を実行することで、図9(B)に示す相関テーブルの列数および行数が決まる。続いて、ステップS25で、人間IDの変数Aを初期化する。つまり、人間ID:001からLのそれぞれを指定するための変数Aの値を0にする。
続いて、ステップS27で変数Aが最大値であるか否かを判断する。つまり、変数Aの値が人間IDの最大値であるLと一致するか否かを判断する。ステップS27で“NO”であれば、つまり変数Aが最大値でなければ、ステップS29で所定時間内の人間ID:Aの位置履歴を取得する。つまり、位置履歴データから、変数Aで指定されるセンサIDに対応する人間の履歴情報を20秒分、読み出す。続いて、ステップS31では、位置履歴情報からX軸およびY軸の加速度を算出する。つまり、読み出した履歴情報から1秒毎の移動距離を算出し、算出した移動距離を時間で2回微分することで、X軸方向およびY軸方向の加速度を算出する。また、このステップS31の処理を実行するCPU16は第1算出手段として機能する。
続いて、ステップS33では、センサIDの変数Bを初期化する。つまり、センサID:001からMのそれぞれを指定するための変数Bの値を0にする。続いて、ステップS35で変数Bが最大値か否かを判断する。つまり、変数BがセンサIDの最大値であるMと一致するか否かを判断する。ステップS35で“NO”であれば、つまり変数Bが最大値でなければ、ステップS37で相関係数算出処理を実行する。このステップS37の処理については後述するため、ここでの詳細な説明は省略する。続いて、ステップS39では、変数Bをインクリメント(B=B+1)し、ステップS35に戻る。つまり、ステップS39では、変数Bが次のセンサIDを指定するように、変数Bをインクリメントする。
また、ステップS35で“YES”であれば、つまり変数Bが最大値であれば、ステップS41で変数Aをインクリメント(A=A+1)し、ステップS27に戻る。つまり、ステップS41では、変数Aが次の人間IDを指定するように、変数Aをインクリメントする。
また、ステップS27で“YES”であれば、つまり変数Aが最大値であれば、ステップS43で相関係数に基づいて、人間IDとセンサIDとを対応付けてIDテーブルに記録する。つまり、2つの相関係数のそれぞれが0.80以上であり、かつ2つの相関係数の和が最大値となる、人間IDおよびセンサIDの組み合わせを相関テーブルから特定(同定)し、IDテーブルに記録する。たとえば、図9(A)に示す相関テーブルからは、人間ID:001とセンサID:001との組み合わせ、人間ID:002とセンサID:Mとの組み合わせ、人間ID:003とセンサID:002の組み合わせなどが特定(同定)される。そして、その同定された結果は、図11に示すIDテーブルに記録される。
続いて、ステップS45では、受信した公開範囲および公開データをIDテーブルデータに記録して、ステップS21に戻る。たとえば、図10に示すセンサテーブルを参照して、センサID:001に対応する公開範囲と公開データとを読み出し、図11に示すIDテーブルにおけるセンサID:001に対応する欄に、読み出した公開範囲と公開データとを記録する。
なお、ステップS43の処理を実行するCPU16は同定手段として機能する。また、ステップS43,S45の処理を実行するCPU16は処理手段として機能する。さらに、ステップS43,S45の処理を実行するCPU16とメモリ22とは記録手段として機能する。
図18は、図17に示したステップS37の相関係数算出処理のフロー図である。図18に示すように、中央制御装置10のCPU16は、相関係数算出処理を開始すると、ステップS61で、センサID:BにおけるXa軸方向の加速度と人間ID:AにおけるX軸方向の加速度との相関係数BxAxを算出する。たとえば、変数Aおよび変数Bが「1」であれば、人間ID:001およびセンサID:001となる。このとき、CPU16は、センサID:001に対応する加速度センサ142の値を、加速度センサ履歴データ332から読み出す。そして、加速度センサ142が出力するXa軸方向の加速度と、上位ルーチンで算出された人間AにおけるX軸方向の加速度とから算出される相関係数(0.96)が相関係数BxAxとなる。そして、相関係数BxAxは、図9(A)に示す計算テーブルにおいて、Xa軸に対応するX軸の欄に記録される。
続いて、ステップS63では、センサID:BにおけるYa軸方向の加速度と人間ID:AにおけるX軸方向の加速度との相関係数ByAxを算出する。つまり、ステップS61と同様に、加速度センサ142が出力するYa軸方向の加速度と人間AにおけるX軸方向の加速度とから算出される相関係数(0.34)が相関係数ByAxとなる。そして、相関係数ByAxは計算テーブルにおいて、Ya軸に対応するX軸の欄に記録される。
続いて、ステップS65では、センサID:BにおけるXa軸方向の加速度と人間ID:AにおけるY軸方向の加速度との相関係数BxAyを算出する。つまり、ステップS61と同様に、加速度センサ142が出力するXa軸方向の加速度と人間AにおけるX軸方向の加速度から算出される相関係数(0.39)が相関係数BxAyとなる。そして、相関係数BxAyは、計算テーブルにおけるXa軸に対するY軸の欄に記録される。
続いて、ステップS67では、センサID:BにおけるYa軸方向の加速度と人間ID:AにおけるY軸方向の加速度との相関係数ByAyを算出する。つまり、ステップS61と同様に、加速度センサ142が出力するYa軸方向の加速度と人間AにおけるY軸方向の加速度とから算出される相関係数(0.88)が相関係数ByAyとなる。そして、相関係数ByAyは、計算テーブルにおけるYa軸に対するY軸の欄に記録される。
続いて、ステップS69では、BxAx>ByAxかつByAy>BxAyであるか否かを判断する。つまり、加速度センサ142が出力するXa軸およびYa軸の方向が、検出領域EにおけるX軸およびY軸の方向と一致しているか否かを判断する。ステップS69で“YES”であれば、つまり軸方向が一致していれば、ステップS71でセンサID:Bに対する人間ID:Aの相関係数(X,Y)を(BxAx,ByAy)とし、相関係数算出処理を終了した後に、管理処理に戻る。たとえば、ステップS71では、X軸における加速度センサ142と人間Aとの相関係数を0.96(BxAx)とし、Y軸における加速度センサ142との人間Aとの相関係数を相関係数0.88(ByAy)とする。つまり、図9(B)に示す相関テーブルのように、人間ID:001およびセンサID001に対応するX軸の欄には0.96が記録され、Y軸の欄には0.88が記録される。
また、ステップS69で“NO”であれば、つまり軸方向が一致していなければ、ステップS73でセンサID:Bに対する人間ID:Aの相関係数(X,Y)を(BxAy,ByAx)とし、相関係数算出処理を終了する。つまり、ステップS73では、X軸における加速度センサ142と人間との相関係数をBxAyとし、Y軸における加速度センサ142と人間との相関係数をByAxとする。つまり、相関テーブルにおける人間ID:001およびセンサID001に対応するX軸の欄およびY軸の欄に相関係数が記録される。
なお、ステップS61−S73の処理を実行するCPU16は第2算出手段として機能する。さらに、ステップS61,S65,S69−S73の処理を実行するCPU16は第1方向算出手段としても機能し、ステップS63,S67−S73の処理を実行するCPU16は第2方向算出手段としても機能する。
図19は、公開データ管理処理のフロー図である。図19で示すように、中央制御装置10のCPU16は、ステップS101で探索要求があるか否かを判断する。つまり、携帯端末12が発信した探索要求を受信したか否かを判断する。また、ステップS101の処理を実行するCPU16は探索要求受信手段として機能する。ステップS101で“NO”であれば、つまり探索要求がなければステップS111に進む。一方、ステップS101で“YES”であれば、つまり探索要求があれば、ステップS103で要求元は公開を制限されているか否かを判断する。つまり、ステップS103では、IDテーブルから探索先の携帯端末12を検索し、さらに検索結果に基づいて「公開範囲」の列のデータを読み込む。そして、要求元の携帯端末12の機器アドレスまたはグループ情報が公開範囲に含まれているか否かを判断する。
ステップS103で“YES”であれば、つまり要求元が公開を制限されていれば、ステップS111に進む。一方、ステップS103で“NO”であれば、つまり要求元が公開を制限されていなければ、ステップS105でロボット14による補助要求があるか否かを判断する。つまり、探索要求と共にロボット14による補助要求を受信しているか否かを判断する。ステップS105で“YES”であれば、つまりロボット14による補助要求があれば、ステップS107で探索指示をロボット14に送信し、ステップS101に戻る。つまり、探索先の人間を要求元の人間の元に誘導するための探索指示を、ロボット14に送信する。
一方、ステップS105で“NO”であれば、つまりロボット14による補助要求がされてなければ、ステップS109で探索先の現在位置と地図データとを要求元に送信し、ステップS101に戻る。つまり、探索先の現在位置を位置履歴データ330から読み出し、さらに現在位置に対応する地図を地図データ342から読み出して、要求元の携帯端末12に送信する。なお、ステップS109の処理を実行するCPU16は位置送信手段として機能する。
また、ステップS111では、公開データの取得要求があるか否かを判断する。つまり、IDテーブルに記録される公開データを取得する要求があるか否かを判断する。また、ステップS111の処理を実行するCPU16は取得要求受信手段として機能する。ステップS111で“NO”であれば、つまり取得要求がなければ、ステップS101に戻る。一方、ステップS111で“YES”であれば、つまり取得要求があれば、ステップS113で要求元が公開を制限されているか否かを判断する。なお、このステップS113の処理は、ステップS103と同じであるため詳細な説明は省略する。
ステップS113で“YES”であれば、つまり制限されていればステップS101に戻る。一方、ステップS113で“NO”であれば、つまり制限されていなければ、ステップS115で公開データを送信し、ステップS101に戻る。たとえば、情報発信装置が発信した取得要求を受信した場合には、IDテーブルの「公開範囲」の列に「全て」などが記録されている欄に対応する公開データを情報発信装置に送信する。また、ステップS115の処理を実行するCPU16は公開データ送信手段として機能する。
この実施例によれば、移動体管理システム100は、中央制御装置10および携帯端末12を含む。中央制御装置10はLRF18を有し、携帯端末12は加速度センサ142を有する。そして、中央制御装置10および携帯端末12は、Bluetoooth形式の近距離無線通信を確立することが可能であり、携帯端末12は、加速度センサ142が出力する加速度を中央制御装置10に送信する。また、中央制御装置10は、LRF18によって検出領域E内に居る人間A,Bの位置を連続的に取得し、位置履歴データ330として記憶する。この位置履歴データ330からは人間A,Bの加速度を算出することができ、中央制御装置10は、加速度センサ142が出力する加速度との相関係数を算出するそして、中央制御装置10は、人間IDとセンサIDとを対応付けて記録することで、移動する人間を同定する。
これによって、検出領域E内に居る各人間は加速度を利用して同定され、さらに管理される。そして、携帯端末12から送信される公開データおよび公開範囲のデータをIDテーブルに記録することで、探索サービスや、情報提供サービスなどを提供できるようになる。
なお、本実施例では、LRF18を用いているが、LRF18に代えて超音波距離センサやミリ波レーダなどを用いて、人間の位置履歴情報を取得してもよい。また、近距離無線通信の形式には、Buletooth形式だけに限らず、ZigBee(登録商標)形式、Wi−Fi(登録商標)形式などの他の無線LAN規格などであってもよい。また、携帯端末12は、加速度センサ付きZigBeeモジュールを備える小型携帯端末、加速度センサ142を備える携帯電話および携帯音楽プレイヤなどであってもよいし、加速度センサ142を後付け可能な携帯ゲーム機であってもよい。また、LRF18は、人間の位置だけなく、ロボット14などの移動体の位置も検出できるため、ロボット14が携帯端末12を所持していてもよい。
そして、検出領域E内で検出される人間の数や、受信する加速度のデータの数が変化した場合に、管理処理では変化の差分のみを再計算してもよい。つまり、具体的には、図17に示す管理処理において2回目以降の処理では、ステップS21の前に、人数また加速度センサのデータ数の変化を監視する処理を追加すればよい。そして、ステップS23以降の処理では、差分のみを再計算するように処理する。