(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、本開示の実施の形態について、図面を参照して詳細に説明する。なお、以下に説明する実施の形態は一例であり、本開示は以下の実施の形態により限定されるものではない。
【0015】
[第1の実施の形態]
図1Aは、第1の実施の形態に係る位置推定装置を説明する図である。
図1Aには、位置推定装置1と、親機2と、子機3a〜3fと、が示してある。また、
図1Bは、親機2および子機3a〜3cのそれぞれの間の距離を示す距離マトリクスM1を示す図である。
図1Cは、親機2および子機3b〜3dのそれぞれの間の距離を示す距離マトリクスM2を示す図である。
【0016】
親機2および子機3a〜3fは、例えば、アクセスポイントと無線センサノードあるいはこれらに相当するスマートフォンまたはタブレット端末等の無線端末である。位置推定装置1は、親機2を介して、子機3a〜3fと通信を行い、子機3a〜3fの位置を推定する。
【0017】
親機2の位置は、既知であるとする。また、子機3a〜3fは、そのうちのいくつかは、位置が既知であるとする。ここでは、子機3a,3bの位置が、既知であるとする。以下では、位置が既知である子機を、アンカー子機と呼ぶことがある。位置が既知でない子機を、非アンカー子機と呼ぶことがある。
図1の例では、子機3a,3bがアンカー子機であり、子機3c〜3fは、非アンカー子機である。
【0018】
図1に示す「P1,A2,A3,N4〜N7」は、親機2および子機3a〜3fを識別する識別子を示している。以下では、親機2を親機P1と呼ぶことがある。また、子機3a,3bを子機A2,A3と呼ぶことがある。また、子機3c〜3fを子機N4〜N7と呼ぶことがある。なお、子機A2,A3の「A」は、アンカー子機であることを示し、子機N4〜N7の「N」は、非アンカー子機であることを示している。
【0019】
近年、スマートフォンやタブレット端末等の無線端末の所持率は高くなっており、コンサート会場や運動競技場のような人が集まる会場には、多くの無線端末が集まる。このような会場に集まった無線端末に、例えば、LED等の発光素子を接続し、輝度や色彩を制御すれば、会場を、イルミネーションや画像を映し出すディスプレイとして演出することができる。
【0020】
会場に集まった無線端末を、ディスプレイとして演出するには、無線端末の位置を把握し、位置を把握した無線端末に対して、所定の輝度や色彩の制御を行うことを要する。そこで、
図1の位置推定装置1は、会場に集まった無線端末の位置を推定する。
【0021】
図2は、位置推定装置1の機能ブロックの一例を示す図である。
図2に示すように、位置推定装置1は、選択部11と、距離算出部12と、相対位置算出部13と、絶対位置変換部14と、平均部15と、を有している。
【0022】
選択部11は、子機3a〜3fから、所定数を選択し、その後、選択した所定数の子機3a〜3fを1台ずつ、残りの子機3a〜3fと入れ替えながら順次選択していく。
【0023】
例えば、選択部11は、
図1に示した6台の子機A2,A3,N4〜N7から、3台の子機A2,A3,N4を選択する。次に、選択部11は、子機A2を、子機N5に入れ替え、子機A3,N4,N5を選択する。次に、選択部11は、子機A3を、子機N6に入れ替え、子機N4,N5,N6を選択する。このようにして、選択部11は、子機を1台ずつ入れ替えながら、3台の子機を順次選択していく。
【0024】
なお、選択部11は、子機3a〜3fを、少なくとも1台以上入れ替えながら、所定数の子機3a〜3fを選択してもよい。例えば、選択部11は、子機3a〜3fを、2台ずつ入れ替えながら、3台の子機3a〜3fを選択してもよい。
【0025】
距離算出部12は、順次選択された子機3a〜3f間の距離(選択した子機3a〜3fと親機2との間の距離も含む)を算出する。
【0026】
無線パケットの受信電力は、無線端末の距離が離れているほど減衰する。従って、距離算出部12は、無線端末間で送受信された無線パケットの受信電力から、無線端末間の距離を算出する。つまり、距離算出部12は、親機2および子機3a〜3fが、互いに無線パケットを送受信して得た受信電力を、親機2を介して、取得することにより、選択した子機3a〜3f間の距離を算出する。
【0027】
例えば、距離算出部12は、選択された子機A2,A3,N4の無線パケットの受信電力を、親機2を介して取得し、
図1の距離マトリクスM1に示すような、親機P1および子機A2,A3,N4間の距離を算出する。
【0028】
また、距離算出部12は、選択された子機A3,N4,N5の無線パケットの受信電力を、親機P1を介して取得し、
図1の距離マトリクスM2に示すような、親機P1および子機A3,N4,N5間の距離を算出する。
【0029】
また、距離算出部12は、選択された子機N4,N5,N6の無線パケットの受信電力を、親機2を介して取得し、親機P1および子機A4,N5,N6間の距離を算出する(
図1には、この距離マトリクスを示していない)。以下同様にして、距離算出部12は、選択された子機間の距離を算出する。
【0030】
相対位置算出部13は、算出された子機3間の距離に基づいて、親機2および子機3の相対位置(相対座標)を算出する。装置間の距離に基づいて、装置間の相対位置を求める方法には、例えば、多次元尺度構成法(Multi Dimensional Scaling)等がある。例えば、相対位置算出部13は、
図1に示した距離マトリクスM1,M2から、MDSによって親機2および子機3の相対位置を算出する。
【0031】
相対位置は、親機2および子機3間の距離関係を保存した位置を示し、絶対的な位置関係(絶対位置)を示していない。例えば、距離が近い無線端末は、距離が近くなるように配置され、距離が遠い無線端末は、距離が遠くなるように配置される。そのため、相対位置は、親機2および子機3の絶対位置に対し、回転、反転、並進、拡大、または縮小している。
【0032】
そこで、絶対位置変換部14は、相対位置が算出されると、算出された相対位置を絶対位置(絶対座標)に変換する。
【0033】
図3A及び
図3Bは、相対位置から絶対位置への変換の一例を説明する図である。
図3Aの相対位置D1には、
図1の距離マトリクスM1に示した距離から算出された、親機P1および子機A2,A3,N4の相対位置が示してある。配置D1に示す親機P1および子機A2,A3,N4の(rx1,ry1)、(rx2,ry2)、(rx3,ry3)、および(rx4,ry4)は、親機P1および子機A2,A3,N4の相対座標を示している。
【0034】
なお、相対座標に配置された親機P1および子機A2,A3,N4については、
図1の距離マトリクスM1に示した距離関係が保存されているが、絶対的な位置は保存されていない。例えば、
図3Aの配置D1に示す親機P1および子機A2,A3,N4の配置は、
図1に示した親機P1および子機A2,A3,N4の配置と異なり、回転した状態となっている。
【0035】
親機P1とアンカー子機である子機A2,A3は、絶対位置が既知である。絶対位置変換部14は、算出された親機P1および子機A2,A3の相対位置と、親機P1および子機A2,A3の既知の絶対位置との差が最小となるように、子機N4の相対位置を絶対位置に変換する。このようにして、絶対位置変換部14は、子機の相対位置を絶対位置に変換する。
【0036】
なお、
図3Bの配置D2には、絶対位置に配置された親機P1および子機A2,A3,N4が示してある。配置D2に示す親機P1および子機A2,A3,N4は、
図3Aの配置D1に示す相対位置に配置された親機P1および子機A2,A3,N4を、回転した状態となっている。
【0037】
選択部11は、上述したように、子機3を1台ずつ入れ替えながら、選択していく。相対位置算出部13は、子機3を入れ替えられたグループごとに、親機2と子機3および子機3間の相対位置を算出し、絶対位置変換部14は、算出された相対位置を絶対位置に変換する。
【0038】
図4A及び
図4Bは、子機を入れ替えたグループの絶対位置算出を説明する図である。
図4Aの配置D11には、選択した子機A2,A3,N4の子機A2を、子機N5に入れ替えたときの、親機P1および子機A3,N4,N5の絶対位置を示している。配置D11に示す親機P1および子機A3,N4,N5の(x1,y1)、(x3,y3)、(x4a,y4a)、および(x5,y5)は、親機P1および子機A2,A3,N4の絶対座標を示している。絶対位置変換部14は、
図1および
図3A、
図3Bで説明したのと同様の方法によって、子機A2を子機N5に入れ替えられた後に、親機P1および子機A3,N4,N5の絶対位置を算出する。
【0039】
子機3を入れ替えて、親機2および子機3の絶対位置を算出したとき、すでに絶対位置を算出した子機が存在する。また、算出した絶対位置は、無線パケットの受信電力から得られる距離の誤差等によって、本来の絶対位置から、ずれが生じている場合がある。そこで、平均部15は、子機3を入れ替えながら算出された絶対位置を、各子機3について平均化する。
【0040】
例えば、
図4Bの配置D12に示す点線部分は、子機A2を、子機N5に入れ替える前に算出した子機A2,A3,N4の絶対位置を示している(
図3Bの配置D2に示した子機A2,A3,N4の絶対位置を示している)。子機N4の絶対位置は、前回算出したときと、今回算出したときとでずれが生じている。そこで、平均部15は、子機N4の絶対座標(x4,y4)と絶対座標(x4a,y4a)とを平均化する。そして、平均部15は、平均化した絶対座標を、子機N4の絶対位置とする。
【0041】
なお、選択部11は、次に子機A3を子機N6に入れ替える。この場合、平均部15は、例えば、子機N4の絶対座標を平均化し、また、子機N5の絶対座標を平均化する。
【0042】
平均部15は、絶対座標を平均化する際、時間経過に応じた重みづけを付加して、絶対座標を平均化してもよい。例えば、平均部15は、算出した絶対座標が古い程、係数の小さい重みづけを付加する。
図4Bの配置D12に示す例の場合、平均部15は、絶対座標(x4,y4)に付加(乗算)する係数を、絶対座標(x4a,y4a)に付加する係数より小さくする。
【0043】
このように、選択部11は、子機を入れ替えながら順次選択し、相対位置算出部13は、順次選択された子機および親機の距離から、相対位置を算出し、絶対位置変換部14は、絶対位置に変換する。そして、平均部15は、子機の絶対位置を平均化し、子機の絶対位置の精度を高める。
【0044】
以上説明したように、選択部11は、子機3a〜3fから、所定数を選択し、選択した所定数の子機3a〜3fを、残りの子機3a〜3fから少なくとも1台以上入れ替えながら順次選択していく。距離算出部12は、選択された子機3a〜3f間で送受信された無線パケットの受信電力に基づいて、選択された子機3a〜3f間の距離を算出する。そして、相対位置算出部13は、算出された距離に基づいて、親機2および子機3a〜3fの相対位置を算出し、絶対位置変換部14は、算出された相対位置を絶対位置に変換する。これにより、位置推定装置1は、無線端末が密集する無線通信ネットワークにおいて、無線端末の位置推定精度を向上させることができる。
【0045】
また、平均部15は、無線端末を入れ替えながら算出した無線端末の絶対位置を、各無線端末について平均化する。これにより、位置推定装置1は、無線端末の位置推定精度をより向上させることができる。
【0046】
[第2の実施の形態]
第2の実施の形態では、コンサート会場または運動競技場のような会場に集まった無線端末を、イルミネーションや画像を映し出すディスプレイとして演出する例について説明する。
【0047】
図5は、第2の実施の形態に係る無線通信システム100のシステム構成の一例を示す図である。
図5に示すように、無線通信システム100は、アプリケーション制御部(AC:Application Control)101と、位置推定部(PE:Position estimation)102と、ネットワーク制御部(NC:Network control)103と、無線端末104〜110とを有している。無線端末104は親機であり、無線端末105〜110は子機である。アプリケーション制御部101、位置推定部102、およびネットワーク制御部103は、例えば、PC(Personal computer)等の1台のコンピュータで実現されてもよい。または、アプリケーション制御部101、位置推定部102、およびネットワーク制御部103のそれぞれは、例えば、異なるコンピュータで実現されてもよい。
【0048】
アプリケーション制御部101は、無線端末104〜110の入出力部(後述)を制御し、ユーザアプリケーションを提供する。例えば、アプリケーション制御部101は、無線端末104〜110の出力部に接続されたカラーLEDの輝度や色彩を制御する。これにより、アプリケーション制御部101は、無線端末104〜110を、イルミネーションや画像を映し出すディスプレイとして機能させる、空間演出アプリケーションを提供することができる。
【0049】
あるいは、アプリケーション制御部101は、無線端末104〜110の入力部に接続されたセンサの情報を収集する。これにより、アプリケーション制御部101は、無線端末104〜110が配置された空間の情報を、検出識別及び認識する空間認識アプリケーションを提供することができる。
【0050】
アプリケーション制御部101は、位置pに対するアプリケーション制御コマンドAC(p)を位置推定部102に対して送信する。また、アプリケーション制御部101は、位置pに対するアプリケーション制御レスポンスAR(p)を位置推定部102から受信する。なおアプリケーションによっては、アプリケーション制御レスポンスAR(p)はなくても良い。
【0051】
位置推定部102は、無線端末104〜110が配置された空間内において、各無線端末104〜110の位置を推定し、無線端末のIDと位置pの変換テーブルDBを生成する。位置推定部102は、例えば、
図2に示した機能部を有している。位置推定および変換テーブルの生成方法については後述する。
【0052】
位置推定部102は、アプリケーション制御部101から受信したアプリケーション制御コマンドAC(p)を、位置pに対応する無線端末のIDiに変換し、無線端末iに対応するアプリケーション制御コマンドAC(i)に変換する。そして、位置推定部102は、アプリケーション制御コマンドAC(i)を、ネットワーク制御部103に送信する。
【0053】
また、位置推定部102は、位置推定に用いる位置推定制御コマンドPC(j)を、ネットワーク制御部103に送信する。また、位置推定部102は、ネットワーク制御部103から受信した無線端末jからの位置推定制御レスポンスPR(j)を用いて無線端末の位置を推定し、無線端末のIDと位置pの変換テーブルを更新する。
【0054】
また、位置推定部102は、ネットワーク制御部103から受信した無線端末jからのアプリケーション制御レスポンスAR(i)を、無線端末のIDiに対応する位置pに変換し、位置pに対応するアプリケーション制御レスポンスR(p)に変換して、アプリケーション制御部101に送信する。ここで、iとjは異なっていても良い。
【0055】
ネットワーク制御部103は、無線端末104〜110で構成される無線ネットワークにおいて、無線端末の接続管理やルーティングなどのネットワーク制御を行う。
【0056】
ネットワーク制御部103は、位置推定部102から受信した無線端末iに対応するアプリケーション制御コマンドAC(i)および無線端末jに対応する位置推定制御コマンドPC(j)を、無線端末iおよびjに送信するため、無線端末iおよびjが接続されている適切な親機(例えば、無線端末104)を選択する。
【0057】
ネットワーク制御部103は、選択した親機の無線端末104に対して、子機の無線端末105〜110へ送信データT(AC(i),PC(j))を送信する。また、ネットワーク制御部103は、親機の無線端末104が受信した無線端末iおよびjからの受信データR(AR(i),PR(j))を、親機の無線端末104から受信する。
【0058】
無線端末104〜110は、無線ネットワークを構成し、端末間で相互に無線パケットをやり取りする。ネットワークのトポロジーは様々なものを用いることができるが
図5では、スター型を例に説明する。
【0059】
無線端末104(以降、親機と呼ぶことがある)は、ネットワーク制御部103からの要求に対し、配下の無線端末105〜110(以降、子機と呼ぶことがある)に対して無線接続し、スケジューリングやアクセス制御を行って無線パケットの送受信を行う。親機104は、配置されている位置があらかじめ分かっているものとする。
【0060】
なお、
図5では、親機104は、1台として図示しているが、複数存在してもよく、ネットワーク制御部103は、複数の親機を介してより多くの子機105〜110を制御してもよい。
【0061】
子機105〜110は、親機104と無線接続し、無線パケットの送受信を行う。子機105〜110は、受信した無線パケットから子機105〜110宛てのアプリケーション制御コマンドAC(i)または位置推定制御コマンドPC(j)を受け取り、それぞれのコマンドに応じた応答を生成する。子機105〜110は、応答の送信を行う場合は、アプリケーション制御レスポンスAR(i)または位置推定制御レスポンスPR(j)を生成し、親機104に無線パケットで送信する。
【0062】
子機105〜110のうち、あらかじめ位置が分かっているものはアンカー子機と呼ぶ。
図5では、子機105,106がアンカー子機である。
【0063】
一方、子機のうち、あらかじめ位置が分かっていないものは非アンカー子機と呼ぶ。
図5では、子機107〜110が非アンカー子機である。
【0064】
無線通信システム100において、位置推定部102は、非アンカー子機107〜110の位置を推定する。アプリケーション制御部101は、位置が推定された無線端末101〜110に対するアプリケーション制御を行う。
【0065】
無線端末104の構成の一例について説明する。
【0066】
図6は、無線端末104の構成の一例を示した図である。
図6に示すように、無線端末104は、入力部201、制御部202、出力部203、および無線部204を有している。なお、無線端末105〜110は、無線端末104と同様の構成を有し、その説明を省略する。
【0067】
入力部201には、例えば、温度センサ、湿度センサ、照度センサ、地磁気センサ、方位センサ、加速度センサ、画像センサのうち少なくとも1つのセンサが接続される。入力部201は、接続されたセンサが検知した情報(信号)を入力する。なお、入力部201には、センサの他に、ユーザからの入力情報をセンシングするスイッチ、キーボード、マイク、カメラなどが接続されてもよい。
【0068】
制御部202は、入力部201が入力したセンシングデータに基づいて、所定の制御を行う。また、制御部202は、無線部204を介して入力されるアプリケーション制御コマンドAC(i)あるいは位置推定制御コマンドPC(j)に基づいて、所定の制御を行う。例えば、制御部202は、出力部203へ出力するデータや、無線部204を介して出力するアプリケーション制御レスポンスAR(i)または位置推定制御レスポンスPR(j)を生成する。
【0069】
出力部203には、例えば、LEDなどの光源、ディスプレイなどの画像出力デバイス、振動モータなどのアクチュエータデバイス、スピーカなどの音声出力装置が接続される。出力部203は、制御部202から出力されたデータを、接続された装置に出力する。
【0070】
無線部204は、制御部202からの制御に基づき、無線端末間で無線通信を行う。無線通信には、例えば、920MHz帯や2.4GHz帯を用いた特定小電力無線や、Zigbee(登録商標)、Bluetooth(登録商標)、Wi-Fi(登録商標)など種々の無線通信方式を用いることができる。
【0071】
無線通信システム100に適用されるアプリケーションの一例について説明する。以下では、子機の出力部203に接続されたカラーLEDを、子機の位置に応じて色を変えて点灯させ、パターンを表示させることを想定する。なお、パターンは予め複数用意しておき、例えば、所定時間の経過後、または、操作によるトリガーによって、パターンを切り替えることにより、変化するイルミネーション、動画像を映し出すことができる。
【0072】
アプリケーション制御部101の処理フローについて説明する。
【0073】
図7は、アプリケーション制御部101の処理フローの一例を示す図である。
図7に示す「S」はステップを表す。
【0074】
ステップS301では、アプリケーション制御部101は、子機105〜110が存在するエリアに表示させる点灯パターンを決定する。
【0075】
ステップS302では、アプリケーション制御部101は、S301で決定したパターンを位置に基づいて分割し、それぞれの位置で点灯すべき色情報を選択する。例えば、アプリケーション制御部101は、子機105〜110が格子状に配置されていることが想定される場合、点灯パターンを同様の格子状に分割する。そして、アプリケーション制御部101は、各格子の座標p(x,y)と、点灯させるべき色cとを決定する。
【0076】
ステップS303では、アプリケーション制御部101は、S302で決定した位置pに色cを点灯させるアプリケーション制御コマンドAC(p,c)を生成し、位置推定部102に送信する。位置推定部102の制御処理フローは、
図8A,
図8Bを用いて後述する。
【0077】
ステップS304では、アプリケーション制御部101は、エリア内のすべての位置についてアプリケーション制御コマンドを送信したかを判定する。アプリケーション制御部101は、アプリケーション制御コマンドを送信していない場合(N)、処理をステップS302に移行する。一方、アプリケーション制御部101は、アプリケーション制御コマンドを送信している場合(Y)、処理をステップS305に移行する。
【0078】
ステップS305では、アプリケーション制御部101は、予め複数用意したパターンをすべて表示したかを判定する。アプリケーション制御部101は、パターンをすべて表示していない場合(N)、処理をステップS301に移行する。アプリケーション制御部101は、パターンをすべて表示している場合(Y)、アプリケーション動作を終了する。
【0079】
位置推定部102の処理フローについて説明する。
【0080】
図8Aは、位置推定部102の処理フローの一例を示す図である。
図8Aに示す「S」はステップを表す。位置推定部102は、アプリケーション制御部101から、
図7のステップS303にて送信されるアプリケーション制御コマンドAC(p,c)を受信した後、以下の処理を実行する。
【0081】
ステップS401では、位置推定部102は、受信したアプリケーション制御コマンドACの位置pに対応する端末IDが、変換テーブルDBにあるかを判定する。位置推定部102は、位置pに対応する端末IDが、変換テーブルDBにある場合(Y)、処理をステップS411に移行する。一方、位置推定部102は、位置pに対応する端末IDが、変換テーブルDBにない場合(N)、処理をステップS402に移行する。
【0082】
なお、端末IDが、親機やアンカー子機のものであれば、位置pは既知であるので、位置pに対応する端末IDは、変換テーブルDBに存在する。また、非アンカー子機でもそれ以前に位置が推定されていれば、位置pに対応する端末IDは、変換テーブルDBに存在する。なお非アンカー子機の位置pおよび端末IDは、非アンカー子機の移動を考慮し、時間経過に伴って、変換テーブルDBから削除してもよい。
【0083】
ステップS402では、位置推定部102は、非アンカー子機の位置を推定するため、子機間(親機と子機間も含む)の距離マトリクスMを生成する。ここでは、位置推定部102は、子機105〜110からサブグループGを選択し、サブグループG内の子機間のすべての組み合わせの推定距離を求めるため、処理を
図8BのステップS403に移行する。なお、サブグループGの選択方法はランダムでもよく、あるいは子機を少なくとも1台ずつ入れ替えていくような選択方法としてもよい。
【0084】
図8Bは、位置推定部102の処理フローの一例を示す図である。ステップS403では、位置推定部102は、まずサブグループGから子機jを選択する。そして、位置推定部102は、選択した子機jに対して、これまで受信した無線パケットのRSSI(受信電力)のログを親機に送信するよう要求する位置推定制御コマンドPC(j)を生成する。それから、位置推定部102は、生成した位置推定制御コマンドPC(j)を、ネットワーク制御部103に送信する。
【0085】
ステップS404では、位置推定部102は、ネットワーク制御部103から送信される、位置推定制御レスポンスPR(j)(
図13のステップS505を参照)を受信する。位置推定制御レスポンスPR(j)には、子機間(親機と子機間も含む)のRSSIのログが含まれている。位置推定部102は、位置推定制御レスポンスPR(j)を受信すると、処理をステップS405に移行する。なお、位置推定部102は、所定時間内に、位置推定制御レスポンスPR(j)を受信しなかった場合、タイムアウトと判定し、処理をステップS405に移行してもよい。
【0086】
ステップS405では、位置推定部102は、サブグループGのすべての子機から位置推定制御レスポンスPR(j)を受信したかを判定する。位置推定部102は、すべての子機から位置推定制御レスポンスPR(j)を受信していない場合(N)、処理をステップS403に移行する。一方、位置推定部102は、すべての子機から位置推定制御レスポンスPR(j)を受信している場合(Y)、処理をステップS406に移行する。
【0087】
ステップS406では、位置推定部102は、受信した位置推定制御レスポンスPR(j)からRSSIログを生成する。例えば、位置推定部102は、受信した位置推定制御レスポンスPR(j)に含まれる、サブグループGの子機の無線パケットの送信電力値と、他の子機から送信された無線パケットを子機が受信したときのRSSIのログとを集めたRSSIログを生成する。位置推定部102は、RSSIログを各子機の送信電力値で補正することにより、サブグループ内の子機間の伝搬損を求める。
【0088】
ステップS407では、位置推定部102は、ステップS406で求めたサブグループ内の子機間の伝搬損に基づいて距離に変換し、子機間の距離マトリクスMを生成する。
【0089】
ここで、サブグループと距離マトリクスについて説明する。
【0090】
図9は、サブグループの一例を示す図である。
図9において、
図5と同じものには同じ符号が付してある。
【0091】
図9に示すように、位置推定部102は、サブグループGを、親機104と、子機105,106,107とで構成する。ここでは、親機104をP1、アンカー子機105をA2、アンカー子機106をA3、非アンカー子機107をN4とする。
【0092】
それぞれの絶対座標は、親機P1は(x1,y1)、アンカー子機A2は(x2,y2)、アンカー子機A3は(x3,y3)、非アンカー子機N4は(x4,y4)で、非アンカー子機N4の(x4,y4)以外は既知である。端末間の距離dは端末番号i,jとすると、dij=djiとなる。
【0093】
図10は、サブグループの距離マトリクスMの一例を示す図である。
図10に示す距離マトリクスMは、
図9に示したサブグループにおける子機間(親機と子機間も含む)の距離を示している。
【0094】
図10に示すdijは、端末番号i,jの端末間の距離を示している。例えば、親機P1と子機A2との間の距離は、「d12」である。子機A2と子機A3との間の距離は、「d23」である。このように、位置推定部102は、
図9に示したサブクループ内の子機間の距離マトリクスMを、
図10に示すように生成する。
【0095】
なお、位置推定部102は、サブグループ内の子機を1台ずつ入れ替えながら、距離マトリクスMを生成する(ステップS402を参照)。その際、位置推定部102は、全ての子機105〜110が選択されるようにする。例えば、位置推定部102は、1台ずつ子機を入れ替えていく場合、全ての子機が順次選択されるまで、子機を入れ替えていく。具体的には、位置推定部102は、子機A2,A3,N4(
図5を参照)を選択した後、子機A3,N4,N5を選択する。そして、位置推定部102は、子機N4,N5,N6を選択した後、子機N5,N6,N7を選択する。さらに、位置推定部102は、子機N6,N7,A2を選択した後、子機N7,A2,A3を選択する。
【0096】
図8Aの処理フローの説明に戻る。ステップS408では、位置推定部102は、サブグループGの距離マトリクスMを用いて、子機間の相対位置rpを推定する。位置推定部102は、例えば、子機間の距離マトリクスMを、例えば、多次元尺度構成法を用いて2次元(あるいは3次元)の空間座標系上における座標値に変換する。
【0097】
これにより、各子機(親機を含む)は、装置間の距離が近いものは近くに配置され、距離が遠いものは遠くに配置される。つまり、位置推定部102は、距離関係を保存するような子機の位置関係を推定する。
【0098】
なお、推定した相対位置rpは、サブグループGの子機間の相対関係を示しているが、絶対位置とは必ずしも一致しない。そのため、位置推定部102は、これらの相対位置rpを、回転、反転、並進、拡大、または縮小する。すなわち、位置推定部102は、相対位置rpを、絶対位置に変換する。
【0099】
ここで、相対位置および絶対位置について説明する。
【0100】
図11は、サブグループの相対座標マトリクスの一例を示す図である。
図10に示した距離マトリクスMを、多次元尺度構成法により2次元空間座標系の座標値に変換すると、
図11に示すようになる。例えば、
図10に示した無線端末P1,A2,A3,N4の距離関係を保存するよう相対座標を推定(算出)すると、それぞれ(rx1,ry1)〜(rx4,ry4)で表現される。
【0101】
図12は、サブグループの相対位置の一例を示す図である。
図11に示した無線端末P1,A2,A3,N4の相対座標は、例えば、
図12に示すような位置関係になる。無線端末P1,A2,A3,N4間の距離関係は、
図10に示した距離マトリクスMの距離を保存している。子機A2,A3,N4の座標を頂点とする多角形と考えると、
図12に示す位置関係は、
図9に示した絶対位置での位置関係と相似の関係にあるが、全体としては回転している。そこで、位置推定部101は、次に説明するように、相対位置rpを絶対位置に変換する。
【0102】
図8Aの説明に戻る。ステップS409では、位置推定部102は、ステップS408で推定したサブグループGの相対位置rpを絶対位置に変換する。例えば、位置推定部102は、ステップS408で推定した相対位置rpを、回転、反転、並進、拡大、または縮小して、位置がすでに分かっているアンカー子機の座標や、以前に位置を推定した非アンカー子機の座標との誤差が最小になるような変形を施す。そして、位置推定部102は、変形した各子機の相対位置rpの座標を、各子機の推定絶対位置apとする。
【0103】
例えば、親機である無線端末P1と、アンカー子機である無線端末A2,A3の絶対座標は、すでに分かっている。そこで、位置推定部102は、
図12に示した無線端末P1,A2,A3の相対座標(rx1,ry1),(rx2,ry2),(ry3,ry3)と、すでに分かっている無線端末P1,A2,A3の絶対座標(x1,y1),(x2,y2),(x3,y3)との誤差が最小となるような変形を施す。
図12の場合、位置推定部102は、相対座標の重心点と絶対座標の重心点とを合わせるように並進させ、重心点を中心として、相対座標を回転させることで誤差を最小にする。位置推定部102は、変形を施した非アンカー子機N4の座標値(rx4a,ry4a)を、推定絶対座標(x4a,y4a)とする。
【0104】
ステップS410では、位置推定部102は、各子機の推定絶対位置apで変換テーブルDBを更新する。位置推定部102は、これまでに位置が推定されていなかった非アンカー子機、または時間経過によってそれまでに推定された推定絶対位置apが削除された子機、に対しては、推定絶対位置apを変換テーブルDBに追加する。
【0105】
なお、それまでに位置が推定されていた場合、経過時間に応じた重みづけをしたのち、以前に推定した座標値と今回推定した座標値の平均化を演算するようにして変換テーブルDBの位置pと端末IDの関連づけを更新するようにしてもよい。
【0106】
例えば、位置推定部102は、
図9に示したサブグループ(P1,A2,A3,N4)の絶対座標を推定した後、次のサブグループとして(A2,A3,N4,N5)の絶対座標を推定する。位置推定部102は、サブグループ(P1,A2,A3,N4)で推定した非アンカー子機N4の絶対座標を、信頼度は劣るが、サブグループ(A2,A3,N4,N5)の絶対座標を推定する際に、アンカーとして用いることができる。
【0107】
そして、位置推定部102は、これを繰り返して推定した絶対座標を平均化していくことで推定の信頼度を向上することができる。その際、位置推定部102は、経過時間に応じた重みづけを付加して、絶対座標を平均化してもよい。
【0108】
ステップS411では、位置推定部102は、変換テーブルDBに基づいて、位置pに対応する端末IDiを抽出し、アプリケーション制御コマンドAC(p)をAC(i)に変換する。位置推定部102は、アプリケーション制御コマンドAC(i)を、ネットワーク制御部103に送信する。
【0109】
ステップS412では、位置推定部102は、アプリケーション制御コマンドAC(i)に対応する応答がない場合は終了する。位置推定部102は、応答がある場合は、ネットワーク制御部103からのアプリケーション制御レスポンスAR(i)を受信するまで待ち、変換テーブルDBに基づいて端末IDiを位置pに逆変換する。位置推定部102は、アプリケーション制御レスポンスAR(p)を、アプリケーション制御部101に送信し、当該フローチャートの処理を終了する。
【0110】
なお、位置推定部102は、アプリケーション制御部101からのアプリケーション制御コマンド送信要求にかかわらす、位置推定にかかる処理フロー(ステップS402からS410)を繰り返し実行し、変換テーブルDBを更新し続けるようにすることもできる。
【0111】
ネットワーク制御部103の処理フローについて説明する。
【0112】
図13は、ネットワーク制御部103の処理フローの一例を示す図である。
図13に示す「S」はステップを表す。ここでは、親機104と子機105〜110は、すでに無線接続済みであり、ネットワーク制御部103は、これらの無線端末の情報を保持しているものとする。
【0113】
ステップS501では、ネットワーク制御部103は、位置推定部102から、コマンドの送信要求があるかを判定する。コマンドの送信要求には、例えば、
図8AのステップS411にて送信される、位置推定部102からのアプリケーション制御コマンドAC(i,c)の送信要求や、ステップS403にて送信される、位置推定部102からの位置推定制御コマンドPC(j)の送信要求がある。ネットワーク制御部103は、コマンドの送信要求がなければ(N)処理を終了し、送信要求があれば(Y)処理をステップS502に移行する。
【0114】
ステップS502では、ネットワーク制御部103は、送信要求された相手先の端末が接続されている親機を選択する。
図5では、親機104が1台であるため、親機104が選択されるが、複数台の親機が接続されている場合は、配下の子機に応じて適切な親機が選択される。
【0115】
ステップS503では、ネットワーク制御部103は、ステップS502にて選択した親機104に対し、送信要求があったアプリケーション制御コマンドAC(i,c)および位置推定制御コマンドPC(j)を送信する。
【0116】
ステップS504では、ネットワーク制御部103は、親機104からのアプリケーション制御レスポンスAR(i)または位置推定制御レスポンスPR(j)を受信する。ネットワーク制御部103は、AR(i)またはPR(j)を受信した後、処理をステップS505に移行する。なお、ネットワーク制御部103は、所定時間にAR(i)またはPR(j)を受信しなかった場合、タイムアウトと判定し、処理をステップS505に移行してもよい。
【0117】
ステップS505では、ネットワーク制御部103は、ステップS504にて受信したアプリケーション制御レスポンスAR(i)または位置推定制御レスポンスPR(j)を、位置推定部102に送信する。
【0118】
親機104の処理フローについて説明する。
【0119】
図14は、親機104の処理フローの一例を示す図である。
図14に示す「S」はステップを表す。
【0120】
ステップS601では、親機104は、ネットワーク制御部103から、アプリケーション制御コマンドAC(i,c)または位置推定制御コマンドPC(j)を受信する。これらのコマンドは、
図13のステップS503にて、ネットワーク制御部103から送信される。
【0121】
親機104は、ネットワーク制御部103から、AC(i,c)またはPC(j)のコマンドを受信した後、コマンドを子機に無線送信するための無線パケットを生成する。無線パケットには、送信電力情報tp1と、宛先アドレスdaと、送信元アドレスsaとの情報が含まれる。送信電力情報tp1は、無線パケットの送信電力値を表す。親機104は、宛先アドレスdaにブロードキャストアドレスを指定し、送信元アドレスsaに親機104のアドレスを入れて無線パケットを送信する。
【0122】
ステップS602では、親機104は、無線部204を受信待ち受け状態にして親機宛(宛先アドレスdaが親機104のアドレス)の無線パケットを受信する。
【0123】
ステップS603では、親機104は、受信待ちのタイムアウトかを判定する。親機104は、受信待ちのタイムアウトが生じた場合(Y)、当該フローチャートの処理を終了する。一方、親機104は、受信待ちのタイムアウトが生じていない場合(N)、処理をステップS604に移行する。
【0124】
ステップS604では、親機104は、受信した親機宛の無線パケットに、アプリケーション制御レスポンスAR(i)または位置推定制御レスポンスPR(j)が含まれるかを判定する。親機104は、受信した親機宛の無線パケットに、アプリケーション制御レスポンスAR(i)または位置推定制御レスポンスPR(j)が含まれていない場合(N)、応答を待つため処理をステップS602に移行する。一方、親機104は、受信した親機宛の無線パケットに、アプリケーション制御レスポンスAR(i)または位置推定制御レスポンスPR(j)が含まれている場合(Y)、処理をステップS605に移行する。
【0125】
ステップS605では、親機104は、ステップS604にて受信したアプリケーション制御レスポンスAR(i)または位置推定制御レスポンスPR(j)を、ネットワーク制御部103に送信する。
【0126】
子機105〜110の処理フローについて説明する。
【0127】
図15は、子機105の処理フローの一例を示す図である。
図15に示す「S」はステップを表す。子機106〜110も、
図15に示す処理フローと同様の処理を実行する。
【0128】
ステップS701では、子機105は、無線部204を受信待ち受け状態にして無線パケットを受信待ち受けする。
【0129】
ステップS702では、子機105は、受信した無線パケットが親機104から送信されたものかを判定する。例えば、子機105は、受信した無線パケットの送信元アドレスsaが親機104のアドレスであるかを判定する。子機105は、受信した無線パケットが親機104から送信されたものである場合(Y)、処理をステップS703に移行する。一方、子機105は、受信した無線パケットが親機104から送信されたものでない場合(N)、処理をステップS705に移行する。
【0130】
ステップS703では、子機105は、受信した無線パケットに、子機105宛のアプリケーション制御コマンドAC(i,c)が含まれるかを判定する。アプリケーション制御コマンドAC(i,c)は、
図14に示したステップS601にて、親機104から送信される。子機105は、受信したアプリケーション制御コマンドAC(i,c)の「i」が、子機105の端末IDで場合(Y)、処理をステップS704に移行する。一方、子機105は、受信したアプリケーション制御コマンドAC(i,c)の「i」が、子機105の端末IDでない場合(N)、処理をステップS707に移行する。
【0131】
ステップS704では、子機105は、受信したアプリケーション制御コマンドAC(i,c)に従って出力部203に接続されたカラーLEDに色cを点灯させる。そして、子機105は、当該フローチャートの処理を終了する。なお、図示しないが、子機105は、アプリケーション制御レスポンスAR(i)を含む無線パケットを生成し、親機104宛てに送信してもよい。
【0132】
ステップS705では、子機105は、受信した無線パケットが、他の子機から送信された無線パケットか否かを判定する。子機105は、受信した無線パケットが、他の子機から送信された無線パケットである場合(Y)、処理をステップS706に移行する。一方、子機105は、受信した無線パケットが、他の子機から送信された無線パケットでない場合(N)、当該フローチャートの処理を終了する。
【0133】
ステップS706では、子機105は、他の子機が送信した無線パケット(他の子機が以下で説明するステップS708にて送信した無線パケット)のRSSIと、送信元の端末IDkとをRSSIのログとして保存する。このように、子機105は、他の子機が親機104宛てに送信した無線パケットを受信することで、子機間のRSSIを収集することができる。
【0134】
なお、ステップS708にて送信される無線パケットには、位置推定制御レスポンスPR(k)が含まれるため、子機105は、送信元の端末IDkを取得できる。また、子機105は、受信した無線パケットの送信元アドレスsaを、端末IDkの代わりに保存してもよい。
【0135】
ステップS707では、子機105は、親機104から送信された無線パケットに、子機105宛の位置推定制御コマンドPC(j)が含まれるか否かを判定する。子機105は、受信した位置推定制御コマンドPC(j)の「j」が、子機105の端末IDである場合(Y)、処理をステップS708に移行する。一方、子機105は、受信した位置推定制御コマンドPC(j)の「j」が、子機105の端末IDでない場合(N)、当該フローチャートの処理を終了する。
【0136】
ステップS708では、子機105は、位置推定制御コマンドPC(j)に従い、これまでに、ステップS706にて保存したRSSIのログを含む位置推定制御レスポンスPR(j)を生成する。子機105は、位置推定制御レスポンスPR(j)を親機104に送信するため、無線パケットを生成する。無線パケットには、送信電力情報tpjと、宛先アドレスdaと、送信元アドレスsaとの情報が含まれる。
【0137】
送信電力情報tpjは、この無線パケットを送信する際の送信電力値を表す。子機105は、宛先アドレスdaに親機104のアドレスを指定し、送信元アドレスsaに子機105のアドレスを入れて無線パケットを送信して、当該フローチャートの処理を終了する。
【0138】
無線通信システム100は、上記の動作を繰り返すことで、子機のアプリケーション制御をしながら、子機間のRSSI情報を収集し、子機の位置関係を推定する。
【0139】
以上、図面を参照しながら各種の実施形態について説明したが、本開示はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。また、開示の趣旨を逸脱しない範囲において、上記実施形態における各構成要素を任意に組み合わせてもよい。
【0140】
上記各実施形態では、本開示はハードウェアを用いて構成する例にとって説明したが、本開示はハードウェアとの連携においてソフトウェアでも実現することも可能である。
【0141】
また、上記各実施形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。集積回路は、上記実施の形態の説明に用いた各機能ブロックを制御し、入力と出力を備えてもよい。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0142】
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサを用いて実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、LSI内部の回路セルの接続又は設定を再構成可能なリコンフィギュラブル プロセッサ(Reconfigurable Processor)を利用してもよい。
【0143】
さらには、半導体技術の進歩又は派生する別技術により,LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックを集積化してもよい。バイオ技術の適用等が可能性としてありえる。
【0144】
<本開示のまとめ>
本開示の位置推定装置は、第1から第M(Mは1以上の整数)の無線端末から、N個(Nは1以上M以下の整数)の無線端末を選択し、及び、選択したN個の無線端末のうち、少なくとも1台以上を、残りの第1から第Mの無線端末から入れ替える選択部と、選択されたN個の無線端末の間で送受信された無線パケットの電力情報に基づいて、選択されたN個の無線端末の間の距離を算出する距離算出部と、算出された距離に基づいて、第1から第Mの無線端末の相対位置を算出する相対位置算出部と、第1から第Mの無線端末の相対位置と、絶対位置が既知の第1の無線端末の絶対位置と、に基づいて、絶対位置が未知の第2の無線端末の相対位置を絶対位置に変換する絶対位置変換部と、を有する。
【0145】
本開示の位置推定方法は、第1から第M(Mは1以上の整数)の無線端末から、N個(Nは1以上M以下の整数)の無線端末を選択し、選択したN個の無線端末のうち、少なくとも1台以上を、残りの第1から第Mの無線端末から入れ替え、選択したN個の無線端末の間で送受信された無線パケットの電力情報に基づいて、選択したN個の無線端末の間の距離を算出し、算出した距離に基づいて、第1から第Mの無線端末の相対位置を算出し、第1から第Mの無線端末の相対位置と、絶対位置が既知の第1の無線端末の絶対位置と、に基づいて、絶対位置が未知の第2の無線端末の相対位置を絶対位置に変換する。