図により本発明に係る距離計測システム及びプログラムの一実施形態を具体的に説明する。以下に説明する第1、第2の杖1a,1b、第1、第2のユーザ端末装置5a,5b、サーバ装置7は、それぞれコンピュータシステムにより構成され、それぞれがコンピュータプログラムにより制御される。
<杖>
図1は、杖1a,1bの制御系の構成を示すブロック図である。図2は、杖1a,1bの構成を示す斜視図である。図1及び図2に示す杖1a,1bは、杖1a,1bの利用者としての高齢者や視覚障害者等の第1、第2のユーザ6a,6bが歩行補助用に日常使用する杖である。杖1a,1bをそれぞれ利用するユーザ6a,6bは、併せてユーザ端末装置5a,5bをそれぞれ所持している。ユーザ端末装置5a,5bは、スマートフォン、携帯電話、タブレット端末、パーソナルコンピュータ等が適用できる。杖1a,1bは、複数のユーザ端末装置5a,5bの間でサーバ装置7を介して通信可能に設けられた通信システムに使用される。
<制御部>
図1に示すように、杖1a,1bに設けられる制御部8には、杖1a,1bのグリップ部の内部に取り外し可能に設けられた電源装置12、近距離無線通信ユニットとしてのブルートゥース(登録商標)通信モジュール(以下、「BLE通信モジュール」という)2が接続されている。また、制御部8には、杖1a,1bの下部の外周面に設けられたLED(Light Emitting Diode;発光ダイオード)等の発光装置11が接続されている。制御部8は、バイブレータ10を駆動し、杖1a,1bを振動させる。また、制御部8は、発光装置11を発光させる。また、制御部8は、BLE通信モジュール2を制御してユーザ端末装置5a,5bに設けられたBLE通信モジュール16との間で送受信するデータを変換するための計算機能を有する。
<制御プログラム>
第1のユーザ6aが所持する第1のユーザ端末装置5aと、第2のユーザ6bが所持する第2のユーザ端末装置5bと、第1のユーザ6aが所持する第1の近距離無線通信ユニットとしての第1の杖1aに設けられたBLE通信モジュール2、或いは、第1のユーザ端末装置5aに設けられたBLE通信モジュール16と、第2のユーザ6bが所持する第2の近距離無線通信ユニットとしての第2の杖1bに設けられたBLE通信モジュール2、或いは、第2のユーザ端末装置5bに設けられたBLE通信モジュール16と、サーバ装置7とを有する距離計測システムを制御するプログラムにおいて、コンピュータを第1の近距離無線通信ユニットと第2の近距離無線通信ユニットとの間で受信電波強度を検知して互いの距離を計測することができる近距離無線通信手段として機能させる。
このとき、第1の近距離無線通信ユニットが第1の杖1aに設けられたBLE通信モジュール2であるときは、第2の近距離無線通信ユニットが第2のユーザ端末装置5bに設けられたBLE通信モジュール16であり、第1の近距離無線通信ユニットが第1のユーザ端末装置5aに設けられたBLE通信モジュール16であるときは、第2の近距離無線通信ユニットが第2の杖1bに設けられたBLE通信モジュール2である。このように近距離無線通信手段は、各杖1a,1bに設けられたBLE通信モジュール2と、各ユーザ端末装置5a,5bに設けられたBLE通信モジュール16とにより構成される。
また、各ユーザ端末装置5a,5b内にBLE通信モジュール16とは別にBLE通信モジュール2を設けた場合には、第1のユーザ端末装置5aと、第2のユーザ端末装置5bと、サーバ装置7とを有する距離計測システムを制御するプログラムにおいて、コンピュータを第1のユーザ端末装置5aと第2のユーザ端末装置5bとの間で受信電波強度を検知して互いの距離を計測することができる近距離無線通信手段として機能させる。
このとき、近距離無線通信手段は、第1のユーザ端末装置5aに設けられたBLE通信モジュール2と、第2のユーザ端末装置5bに設けられたBLE通信モジュール16とにより構成されるか、或いは、第1のユーザ端末装置5aに設けられたBLE通信モジュール16と、第2のユーザ端末装置5bに設けられたBLE通信モジュール2とにより構成される。
杖1a,1bを制御するコンピュータプログラムは、少なくともコンピュータを、制御信号により発光手段としての発光装置11の発光状態と振動手段としてのバイブレータ10の振動状態の少なくとも1つを制御する制御手段として機能させる。この制御手段は、制御部8により構成される。
<BLE通信モジュール>
図1に示すように、第1、第2のユーザ6a,6bが所持する第1、第2の杖1a,1bには、第1、第2のユーザ6a,6bが所持する第1、第2のユーザ端末装置5a,5bとの間でそれぞれ通信を行う近距離無線通信手段としてのBLE通信モジュール2がそれぞれ設けられている。
ここで、近距離無線手段は、無線LAN(localareanetwork)、WiFi(商標)(wireless fidelity)、NFC(near field communication)、Bluetooth(登録商標)、BLE(Bluetooth(登録商標) low energy)、Zigbee(登録商標)、WFD(WiFi(商標) direct)、UWB(ultra wide band)等であり得る。
<振動装置>
制御部8には、杖1a,1bを振動させるための振動手段としてのバイブレータ10が接続されている。バイブレータ10を駆動することによりバイブレータ10が杖1a,1bを振動させる。杖1a,1bを握ったユーザ6a,6bに対して、杖1a,1bの振動による感触によって、情報の通知または識別を補助する。
<発光装置>
制御部8には、杖1a,1bに設けられた発光手段としての発光装置11が接続されている。発光装置11としては、LED(Light Emitting Diode;発光ダイオード)が適用できる。発光装置11の発光により杖1a,1bを所持したユーザ6a,6bだけではなく、ユーザ6a,6bの周囲にいる人に対しても注意を喚起することができる。
<電源装置>
制御部8には、杖1a,1bを通信機器として機能させるための電源装置12が設けられている。電源装置12としては、小型軽量で持ち運びが可能な電池やバッテリー等が適用できる。図2に示すように、電源装置12とバイブレータ10とBLE通信モジュール2とは、杖1a,1bのグリップ部の内部に格納されている。これらは必要に応じて外部に取り出すことができる。発光装置11は、杖1a,1bの下部の外周面に設けられている。
<タイマ>
制御部8には、計測手段としてのタイマ35が接続されている。タイマ35は、基準時刻からの経過時間を計測する。基準時刻としては、電源装置12のバッテリを交換した時刻等である。
<メモリ>
制御部8には、記憶手段としてのメモリ31が接続されている。
<ユーザ端末装置>
次に、図3を用いてユーザ端末装置5a,5bの構成について説明する。図3は、杖1a,1bのBLE通信モジュール2との間で通信を行うユーザ端末装置5a,5bの制御系の構成を示すブロック図である。
<制御部>
図3に示すように、ユーザ端末装置5a,5bに設けられる制御部15は、モバイルオペレーティングシステム(Android;登録商標)を使用している。制御部15は、杖1aとユーザ端末装置5aを所持する第1のユーザ6aと、杖1bとユーザ端末装置5bを所持する第2のユーザ6bとの距離Lの変化に応じて、所定の距離を閾値としてBLE通信モジュール2,16からなる近距離無線通信手段による距離Lの計測と、GPS22からなる測位手段による距離Lの計測とを切り替える切替手段を兼ねる。
また、ユーザ端末装置5a,5b内に近距離無線通信ユニットとしてのBLE通信モジュール2,16を内蔵した場合には、制御部15は、第1のユーザ6aが所持する第1のユーザ端末装置5aと、第2のユーザ6bが所持する第2のユーザ端末装置5bとの距離Lの変化に応じて、所定の距離を閾値としてBLE通信モジュール2,16からなる近距離無線通信手段による距離Lの計測と、GPS22からなる測位手段による距離Lの計測とを切り替える切替手段を兼ねる。
切替手段としての制御部15は、杖1aとユーザ端末装置5aを所持する第1のユーザ6aと、杖1bとユーザ端末装置5bを所持する第2のユーザ6bとの距離Lが所定の閾値以上であれば、GPS22からなる測位手段により前記距離Lを計測し、第1のユーザ6aと、第2のユーザ6bとの距離Lが所定の閾値未満であれば、BLE通信モジュール2,16からなる近距離無線通信手段により前記距離Lを計測する。ここで、「閾値(所定の距離)」の具体例としては、図28(a)等に記載した「50m」が適用できる。「閾値(所定の距離)」は、「50m」以外にも適宜設定でき、ユーザ端末装置5毎に異なる「閾値(所定の距離)」に設定することもできる。
また、ユーザ端末装置5a,5b内にBLE通信モジュール2,16を内蔵した場合には、切替手段としての制御部15は、第1のユーザ端末装置5aと第2のユーザ端末装置5bとの距離Lが所定の閾値以上であれば、GPS22からなる測位手段により前記距離Lを計測し、第1のユーザ端末装置5aと第2のユーザ端末装置5bとの距離Lが所定の閾値未満であれば、BLE通信モジュール2,16からなる近距離無線通信手段により前記距離Lを計測する。ここで、「閾値(所定の距離)」の具体例としては、図28(a)等に記載した「50m」が適用できる。
杖1a,1bに設けられた制御部8は、ユーザ端末装置5a,5bに設けられた切替手段としての制御部15により近距離無線通信手段としてのBLE通信モジュール2,16による距離Lの計測と、測位手段としてのGPS22による距離Lの計測とを切り替えたときに第1、第2の近距離無線通信ユニットとしてのBLE通信モジュール2が受信した制御信号により発光手段としての発光装置11の発光状態と振動手段としてのバイブレータ10の振動状態の少なくとも1つを制御する制御手段を兼ねる。
<制御プログラム>
コンピュータを第1のユーザ6aと第2のユーザ6bとの距離Lの変化に応じて、所定の距離を閾値として前記近距離無線通信手段による距離の計測と測位手段としてのGPS22による距離の計測とを切り替える切替手段として機能させる。切替手段は、各ユーザ端末装置5a,5bの制御部15により構成される。
また、杖1a,1bをそれぞれ利用するユーザ6a,6bがそれぞれ所持するユーザ端末装置5a,5bを制御するコンピュータプログラムを、切替手段としての制御部15により前記近距離無線通信手段による距離の計測と測位手段としてのGPS22による距離の計測とを切り替えたときに各杖1a,1bに設けられた第1、第2の近距離無線通信ユニットとしてのBLE通信モジュール2が受信した制御信号により発光手段としての発光装置11の発光状態と振動手段としてのバイブレータ10の振動状態の少なくとも1つを制御する制御手段として機能させる。制御手段は、杖1a,1bの制御部8により構成される。
<BLE通信モジュール>
制御部15には、BLE通信モジュール16が接続されている。BLE通信モジュール16は、杖1a,1bのBLE通信モジュール2とスマートフォン等のユーザ端末装置5a,5bとの間でデータを送受信するための装置である。BLE通信モジュール16は、リアルタイムで双方向通信を実現することができる。
<BLE通信モジュールによる近距離無線通信手段>
ここで、第1のユーザ6aが所持する第1の近距離無線通信ユニットとして杖1aのBLE通信モジュール2を想定したとき、第2のユーザ6bの所持する第2の近距離無線通信ユニットとして第2のユーザ端末装置5bのBLE通信モジュール16が想定される。そして、第1の近距離無線通信ユニットとして杖1aのBLE通信モジュール2と、第2の近距離無線通信ユニットとして第2のユーザ端末装置5bのBLE通信モジュール16との間で受信電波強度を検知してBLE通信モジュール2とBLE通信モジュール16との互いの距離Lを計測することができる近距離無線通信手段として構成される。
逆に、第1のユーザ6aが所持する第1の近距離無線通信ユニットとして第1のユーザ端末装置5aのBLE通信モジュール16を想定したとき、第2のユーザ6b所持する第2の近距離無線通信ユニットとして杖1bのBLE通信モジュール2が想定される。そして、第1の近距離無線通信ユニットとして第1のユーザ端末装置5aのBLE通信モジュール16と、第2の近距離無線通信ユニットとして杖1bのBLE通信モジュール2との間で受信電波強度を検知してBLE通信モジュール2とBLE通信モジュール16との互いの距離Lを計測することができる近距離無線通信手段として構成される。
<ユーザ端末装置内にBLE通信モジュールが内蔵されている他の構成>
杖1a,1bに設けられるBLE通信モジュール2を第1、第2のユーザ端末装置5a,5bに内蔵させることもできる。その場合、第1のユーザ端末装置5aに内蔵されたBLE通信モジュール2と、第2のユーザ端末装置5bに内蔵されたBLE通信モジュール16との間で受信電波強度を検知して第1のユーザ端末装置5aに内蔵されたBLE通信モジュール2と、第2のユーザ端末装置5bに内蔵されたBLE通信モジュール16との互いの距離Lを計測することができる近距離無線通信手段として構成することもできる。
逆に、第1のユーザ端末装置5aに内蔵されたBLE通信モジュール16と、第2のユーザ端末装置5bに内蔵されたBLE通信モジュール2との間で受信電波強度を検知して第1のユーザ端末装置5aに内蔵されたBLE通信モジュール16と、第2のユーザ端末装置5bに内蔵されたBLE通信モジュール2との互いの距離Lを計測することができる近距離無線通信手段として構成することもできる。
<アプリケーション>
制御部15には、アプリケーション17が接続されている。アプリケーション17は、コンピュータソフトウェアで構成される。アプリケーション17は、杖1a,1bのBLE通信モジュール2から発信された情報を通知したり、内容を画面に表示させたりする。
<Webブラウザ>
アプリケーション17に設けられるWebブラウザ18は、Webページを画面表示させたりするソフトウェアである。Webとは、インターネット上で標準的に用いられている、文書の公開・閲覧システムである。文字や画像、動画等を一体化した文書をネット上で公開・配布したり、また、それを入手・閲覧することができる。
<Webアプリケーション>
また、アプリケーション17に設けられるWebアプリケーション19は、インターネットを介して使用できるコンピュータソフトウェアである。
<インターネット通信モジュール>
制御部15には、インターネット通信モジュール20が接続されている。インターネット通信モジュール20は、基地局や特定のアクセスポイントを経由し、広域通信網からサーバ装置7との通信を実現させる。インターネット通信モジュール20は、サーバ装置7との間でメッセージの送受信を行うマルチキャスト通信手段として構成される。ここで、マルチキャスト通信手段とは、1対多数で通信を行うもので、サーバ装置7との間で複数のユーザ端末装置5a,5bに情報が送信される。
<画面入出力部>
制御部15には、画面入出力部21が接続されている。画面入出力部21は、画面の表示とユーザ入力を行う。画面入出力部21は、サーバ装置7によって送信された報知情報を出力する報知手段として構成される。
<GPS>
制御部15には、第1のユーザ端末装置5aの第1の位置情報と、第2のユーザ端末装置5bの第2の位置情報とがそれぞれのインターネット通信モジュール20を介してサーバ装置7に送信されて第1の位置情報と第2の位置情報とから互いの距離Lを計測することができる測位手段としてのGPS(Global Positioning System;全地球測位システム)22が接続されている。GPS22は、地球上の現在位置を、人工衛星からの電波で測り知る装置である。GPS22により杖1a,1bとユーザ端末装置5a,5bを所持しているユーザ6a,6bのそれぞれの現在の位置情報を取得することができる。
<振動装置>
制御部15には、バイブレータ24が接続されている。バイブレータ24を駆動することでユーザ端末装置5a,5bが振動する。杖1a,1bとユーザ端末装置5a,5bを所持しているユーザ6a,6bは、ユーザ端末装置5a,5bの振動による感触によって、情報の通知または識別を補助することができる。
<スピーカ>
制御部15には、スピーカ25が接続されている。杖1a,1bとユーザ端末装置5a,5bを所持しているユーザ6a,6bが連絡の送受信を行う際に、スピーカ25から流れる音声により確認することができる。制御部15は、サーバ装置7によって送信された近接度通知メッセージをスピーカ25により読み上げを行う。
<メモリ>
制御部15には、記憶手段としてのメモリ28が接続されている。
<電源装置>
制御部15には、電源装置34が接続されている。
<サーバ装置>
次に、図4を用いてサーバ装置7の構成について説明する。図4は、サーバ装置7の構成を示すブロック図である。
<制御部>
図4に示すサーバ装置7は、オペレーティングシステムからなる制御部32を備えている。制御部32は、データベース27から取得したユーザ情報に基づいて、杖1a,1bを利用するユーザ6a,6bが所持するユーザ端末装置5a,5bに近接度通知メッセージを通知する通知手段を兼ねる。ここで、ユーザ情報は、データベース27のみで扱う情報である。ユーザ情報には、杖1a,1bを利用する利用者としてのユーザ6a,6bの情報が含まれる。
第1のユーザ6aが所持する第1のユーザ端末装置5aと、第2のユーザ6bが所持する第2のユーザ端末装置5bと、第1のユーザ6aが所持する第1の近距離無線通信ユニットとしての第1の杖1aに設けられたBLE通信モジュール2、或いは、第1のユーザ端末装置5aに設けられたBLE通信モジュール16と、第2のユーザ6bが所持する第2の近距離無線通信ユニットとしての第2の杖1bに設けられたBLE通信モジュール2、或いは、第2のユーザ端末装置5bに設けられたBLE通信モジュール16と、サーバ装置7とを有する距離計測システムを制御するプログラムにおいて、コンピュータを第1のユーザ端末装置5aの第1の位置情報と、第2のユーザ端末装置5bの第2の位置情報とがそれぞれインターネット通信モジュール20を介してサーバ装置7に送信されて前記第1の位置情報と前記第2の位置情報とから互いの距離を計測することができる測位手段として機能させる。測位手段は、各ユーザ端末装置5a,5bに設けられたGPS22とサーバ装置7に設けられた制御部32とにより構成される。
<データベース>
制御部32には、データベース27が接続されている。データベース27は、杖1a,1bを利用するユーザ6a,6bが所持するユーザ端末装置5a,5bのそれぞれのアカウント名や位置情報といった各種情報を記憶して管理する。
<カウンタ>
制御部32には、計数手段としてのカウンタ4が接続されている。
<メモリ>
制御部32には、記憶手段としてのメモリ33が接続されている。
<時計>
制御部32には、時刻測定手段としての時計3が接続されている。
次に、図5~図12を用いて、第1のユーザ6aが所持する第1の杖1aと、第1のユーザ端末装置5aと、第2のユーザ6bが所持する第2の杖1bと、第2のユーザ端末装置5bと、サーバ装置7と、データベース27との間で通信情報を送信する機能を説明する。
図5のステップS1,S11において、杖1a,1bの制御部8は、BLE通信モジュール2を介してアドバタイズを開始する。アドバタイズにおいて、機器(ペリフェラルまたはブロードキャスタ)は、定期的にパケットを配信する。ペリフェラルによるアドバタイズの場合は、機器の発見と相互接続を目的とし、複数のセントラルに対して接続可能なアドバタイジングパケットを配信する。ブロードキャスタによるアドバタイズの場合は、定期的なデータの配信や互いの距離を計測することを目的とし、複数のオブザーバに対して接続不可なアドバタイジングパケットを配信する。セントラルとは、主に中心機器であり、ペリフェラルに対してデータを受信する。オブザーバとは、ブロードキャスタから定期的にデータを受信する機器である。
次に、ステップS2,S12において、ユーザ端末装置5a,5bの制御部15は、杖1a,1bのBLE通信モジュール2から送信されるアドバタイジングパケットを受信するためにBLE通信モジュール16を介してスキャンを開始する。ここで、アドバタイジングパケットとは、アドバタイズにおいて、ペリフェラルまたはブロードキャスタから送信される通信パケットであり、パケットには接続可能または接続不可であることを示す領域が含まれている。パケットの受信側(セントラルまたはオブザーバ)は、この領域を参照することで、ペリフェラルによるアドバタイズか、もしくはブロードキャスタによるアドバタイズか、を検出することが出来る。ブロードキャスタによるアドバタイズの場合、アドバタイジングパケットに所定のサイズのデータを含めることができ、オブザーバはこのパケットからデータを読み取ることが出来る。
次に、ステップS3,S13において、杖1a,1bの制御部8は、ユーザ端末装置5a,5bとのコネクションを生成するために接続可能なアドバタイジングパケットをBLE通信モジュール2を介して送信する。次に、ステップS4,S14において、ユーザ端末装置5a,5bの制御部15は、BLE通信モジュール16を介して杖1a,1bのBLE通信モジュール2から送信されたアドバタイジングパケットを受信する。
次に、ステップS5,S15において、ユーザ端末装置5a,5bの制御部15は、杖1a,1bの制御部8に接続要求を行う。次に、ステップS6,S16において、杖1a,1bの制御部8は、ユーザ端末装置5a,5bとの接続を確立させる。次に、ステップS7,S17において、杖1a,1bの制御部8は、アドバタイズを終了する。アドバタイズを終了した時刻からタイマ35により経過時間を測定する。
次に、ステップS18において、タイマ35により測定された経過時間が予め設定された時間間隔を経過すると、ステップS19に進む。ステップS19において、杖1aの制御部8は、BLE通信モジュール2を介して杖1aのID情報をユーザ端末装置5aへ送信する。
次に、ステップS20において、ユーザ端末装置5aの制御部15は、BLE通信モジュール16を介して、杖1aのBLE通信モジュール2から送信された杖1aのID情報を受け取る。その後、ユーザ端末装置5aの制御部15がGPS22を使用して、ユーザ端末装置5aの現在位置である緯度と経度からなる基準点座標を得る。
次に、ステップS21において、ユーザ端末装置5aの制御部15は、インターネット通信モジュール20を介してユーザ端末装置5aの送信元アドレスと、ユーザ端末装置5aの現在位置である緯度と経度からなる基準点座標とをサーバ装置7に送信する。
次に、ステップS22において、サーバ装置7の制御部32は、時計3により現在日時を取得する。また、サーバ装置7の制御部32は、ユーザ端末装置5aから送信された送信元アドレスと、緯度と経度からなる基準点座標とを取得する。また、制御部32は、ユーザ端末装置5aから取得した送信元アドレスを基に、データベース27に記憶されていたユーザ端末装置5aの位置情報(緯度と経度と最終更新日時)を、緯度と経度からなる基準点座標と現在日時とを用いて更新する。
次に、ステップS23において、サーバ装置7の制御部32は、データベース27を参照して、位置情報を検索する。このとき、サーバ装置7の制御部32は、ステップS21で取得したユーザ端末装置5aの送信元アドレスを除き、ユーザ端末装置5bを含む他の全てのユーザ端末装置5の送信先アドレスと、緯度と経度からなる指定点座標と、最終更新日時とを得る。
ここで、サーバ装置7の制御部32は、近接度が更新されたレコード数を「0」に初期化し、ステップS23で取得した第1のユーザ端末装置5a以外の全ての位置情報(送信先アドレスと指定点座標と最終更新日時)のそれぞれについて、ステップS21で取得した第1のユーザ端末装置5aの送信元アドレスと基準点座標と現在日時とに基づいて、ステップS24~ステップS31の処理を繰り返す。
次に、ステップS24において、制御部32は、データベース27を参照して抽出した最終更新日時がステップS22で取得したユーザ端末装置5aから送信された現在日時と比較して、所定の時間間隔以上が経過しているか否かを判定する。ステップS24において、制御部32は、ステップS23で取得したユーザ端末装置5bを含む他のユーザ端末装置5の最終更新日時と、ステップS22で時計3により取得した現在日時との差が所定の時間間隔を超えている場合には、ステップS25に進む。このとき、制御部32は、データベース27を参照して抽出した対象レコードを古い情報と判断して、ユーザ端末装置5aと、ユーザ端末装置5bを含む他のユーザ端末装置5との近接度を「圏外」とする。
ステップS24において、制御部32は、ステップS23で取得したユーザ端末装置5bを含む他のユーザ端末装置5の最終更新日時と、ステップS22で時計3により取得した現在日時との差が所定の時間間隔以内の場合には、ステップS26に進む。このとき、制御部32は、ステップS21で取得したユーザ端末装置5aの送信元アドレスと、データベース27から抽出したユーザ端末装置5bを含む他のユーザ端末装置5の送信先アドレスとで、2人1組のペアを作成し、送信元アドレスにより特定される緯度と経度からなる基準点座標と、送信先アドレスにより特定される緯度と経度からなる指定点座標とを基に、ユーザ端末装置5aと、ユーザ端末装置5bを含む他のユーザ端末装置5との2点間の距離Lを計算する。
<2点間の距離計算>
ユーザ端末装置5aと、ユーザ端末装置5bを含む他のユーザ端末装置5との2点間の距離Lの計算は、公知のヒュベニの公式を使用して求めることができる。ヒュベニの公式とは、地球が楕円体であることを考慮して、地球表面上の2点間の距離Lを測定する際に用いられる公式である。ここで、ユーザ端末装置5aの現在位置の緯度をy1(ラジアン)、ユーザ端末装置5bを含む他のユーザ端末装置5の現在位置の緯度をy2(ラジアン)とすれば、2点間の緯度の差Dy(ラジアン)は、以下の数1式で示される。
[数1]
Dy=y1-y2
また、ユーザ端末装置5aの現在位置の経度をx1(ラジアン)、ユーザ端末装置5bを含む他のユーザ端末装置5の現在位置の経度をx2(ラジアン)とすれば、2点間の経度の差Dx(ラジアン)は、以下の数2式で示される。
[数2]
Dx=x1-x2
また、2点間の緯度の平均Pyは、ユーザ端末装置5aの現在位置の緯度y1(ラジアン)と、ユーザ端末装置5bを含む他のユーザ端末装置5の現在位置の緯度y2(ラジアン)とを用いて以下の数3式で示される。
[数3]
Py=(y1+y2)/2
また、赤道半径からなる長半径αと、極半径からなる短半径βとからなる地球の形を近似するのに回転楕円体が用いられる。長半径αと、短半径βとを用いて、以下の数4式により離心率Eを求めることができる。ここで、離心率Eは、焦点距離と赤道直径である長径(2×α)との比である。焦点距離は、楕円における、2つの定点間の距離である。楕円とは、2つの定点からの距離の和が等しい点の集合である。
[数4]
E=((α2-β2)/α2)1/2
ここで、子午線曲率半径Mを求める際の分母W3、卯酉線曲率半径Nを求める際の分母Wに使用されるWは、離心率Eと、2点間の緯度の平均Pyとを用いて、以下の数5式により求めることができる。尚、子午線(しごせん;Meridian)とは、地球の北極と南極を結ぶ線で経度を表す線(経線)である。卯酉線(ぼうゆうせん;Prime vertical)とは、子午線に対して直交する線(緯線)である。
[数5]
W=(1-E2×(sinPy)2)1/2
また、子午線曲率半径Mは、数5式のWと、長半径αと、離心率Eとを用いて、以下の数6式により求めることができる。
[数6]
M=α(1-E2)/W3
また、卯酉線曲率半径Nは、数5式のWと、長半径αとを用いて、以下の数7式により求めることができる。
[数7]
N=α/W
また、ユーザ端末装置5aと、ユーザ端末装置5bを含む他のユーザ端末装置5との2点間の距離Lは、2点間の経度の差Dxと、2点間の緯度の差Dyと、子午線曲率半径Mと、卯酉線曲率半径Nと、2点間の緯度の平均Pyと、を用いて、以下の数8式により求めることができる。
[数8]
L={(Dy×M)2+(Dx×N×cosPy)2}1/2
尚、距離計算のプログラムにおいて、長半径αを6378137mとし、離心率Eを0.08181919084296535と定めて計算することが好適である。
サーバ装置7の制御部32は、上記の数1式~数8式により計算したユーザ端末装置5aと、ユーザ端末装置5bを含む他のユーザ端末装置5との2点間の距離Lに基づいて、ユーザ端末装置5aと、ユーザ端末装置5bを含む他のユーザ端末装置5との近接度の判定を行う。制御部32による近接度の判定は、ユーザ端末装置5aの送信元アドレスにより特定される緯度と経度からなる基準点座標と、ユーザ端末装置5bを含む他のユーザ端末装置5の送信先アドレスにより特定される緯度と経度からなる指定点座標との2点間の距離Lが150mを超える場合は「圏外」と判定する。また、2点間の距離Lが150m以下で、50m以上の場合は「遠い」と判定する。また、2点間の距離Lが50m未満の場合は「近い」と判定する。制御部32により判定した結果を近接度とする。
次に、図7に示すステップS27に進んで、サーバ装置7の制御部32は、データベース27を参照してユーザ端末装置5aの送信元アドレスと、ユーザ端末装置5bを含む他のユーザ端末装置5の送信先アドレスを基に、データベース27からユーザ端末装置5aと、ユーザ端末装置5bを含む他のユーザ端末装置5との近接度を抽出する。
そして、ステップS28に進んで、ステップS27で抽出した近接度がステップS25またはステップS26で決定した近接度と同じか否かを判定する。ステップS28において、データベース27から抽出した近接度がステップS25またはステップS26で決定した近接度と同じである場合には、ステップS32に進み、制御部32は、近接度の更新は行わずに次のレコードに処理を進めて、ステップS23で取得したレコード数に到達したか否かを判定する。ステップS28において、データベース27から抽出した近接度がステップS25またはステップS26で決定した近接度と異なる場合には、ステップS29に進んで、制御部32は、データベース27に記憶された近接度の更新を行う。
ステップS25またはステップS26で取得した近接度を更新する際の条件は、ステップS25またはステップS26で取得した近接度が、ステップS27でデータベース27から抽出した近接度と異なり、かつ、ステップS22で取得したユーザ端末装置5aの送信元アドレスがステップS27でデータベース27から抽出したユーザ端末装置5aの送信元アドレスと同じで、かつ、ステップS23で取得したユーザ端末装置5bを含む他のユーザ端末装置5の送信先アドレスがステップS27でデータベース27から抽出したユーザ端末装置5bを含む他のユーザ端末装置5の送信先アドレスと同じである場合である。
次に、ステップS30に進んで、サーバ装置7の制御部32は、データベース27を参照してユーザ端末装置5aの送信元アドレスを基にデータベース27からユーザ端末装置5aのアカウント名を取得する。そして、サーバ装置7の制御部32は、ステップS29で更新したユーザ端末装置5bを含む他のユーザ端末装置5の送信先アドレスに対して、メッセージ表示用にユーザ端末装置5aのアカウント名と近接度とステップS22で取得した現在日時を送信する。
次に、ステップS31に進んで、ユーザ端末装置5bを含む他のユーザ端末装置5(以下、「ユーザ端末装置5b」を代表して説明する)の制御部15は、サーバ装置7から送信されたユーザ端末装置5aのアカウント名と近接度と現在日時とをインターネット通信モジュール20を介して受信した後、メッセージを生成して出力する。
ステップS24~S31は、繰り返し処理を行う。ステップS30からステップS32に進み、ステップS23で取得したレコード数に到達していない場合は、ステップS24に戻る。ステップS32において、ステップS23で取得したレコード数に到達した場合にはステップS33に進み、サーバ装置7の制御部32は、ステップS24~S31の繰り返し処理で近接度が更新されたレコード数が「0」よりも大きいか否かを判定する。
ステップS33において、ステップS24~S31の繰り返し処理で近接度が更新されたレコード数が「0」よりも大きい場合には、ステップS34に進んで、サーバ装置7の制御部32は、ユーザ端末装置5aの送信元アドレスを基にデータベース27を参照して近接度を集約し、ユーザ端末装置5bを含む他のユーザ端末装置5のなかで一番高い近接度を判定する。そして、一番高い近接度を近接度ステータスとし、近接度ステータスをユーザ端末装置5aに送信する。
ステップS33において、ステップS24~S31の繰り返し処理で近接度が更新されたレコード数が「0」のときには、処理を終了する。次に、ステップS35に進んで、ユーザ端末装置5aの制御部15は、インターネット通信モジュール20を介してサーバ装置7から送信された近接度ステータスを受信し、ユーザ端末装置5aの制御部15は、BLE通信モジュール16を介して杖1aの近接度ステータスの読み取りを行う。次に、ステップS36に進んで、杖1aの制御部8は、BLE通信モジュール2を介して杖1aの近接度ステータスをユーザ端末装置5aへ送信する。
次に、ステップS37に進んで、ユーザ端末装置5aの制御部15は、杖1aとユーザ端末5aの近接度ステータスが同じか否かを判定する。ステップS37において、杖1aから取得した近接度ステータスとサーバ装置7から取得した近接度ステータスとが異なる場合には、ステップS38に進んで、ユーザ端末装置5a,5bの制御部15は、サーバ装置7から取得した近接度ステータスを基に、図13に示す振動、発光信号データを作成し、BLE通信モジュール16を介して杖1a,1bに送信する。
図13は、振動パターンと発光パターンの信号データの一例を示す図である。図13の信号データコードが「01」の場合には、近接度(近接度ステータス)が「圏外」に変更された際の振動パターンと発光パターンを示す。図13の信号データコードが「02」の場合には、近接度(近接度ステータス)が「遠い」に変更された際の振動パターンと発光パターンを示す。
図13の信号データコードが「03」の場合には、近接度(近接度ステータス)が「近い」に変更された際の振動パターンと発光パターンを示す。図13の信号データコードが「04」の場合には、近接度(近接度ステータス)が「非常に近い」の場合の振動パターンと発光パターンを示す。
ステップS37において、杖1aとユーザ端末5aの近接度ステータスが同じ場合には、処理を終了する。ステップS38の次に、ステップS39に進み、杖1a,1bの制御部8は、BLE通信モジュール16を介して図13に示す振動、発光信号データを取得し、取得したデータをメモリ28に書き込む。
次に、ステップS40に進み、杖1a,1bの制御部8は、メモリ28に書き込まれた振動信号データを基にバイブレータ24により杖1a,1bを振動させる。次に、ステップS41に進み、杖1a,1bの制御部8は、メモリ28に書き込まれた発光信号データを基に杖1a,1bの下部の外周面に設けられた発光装置11を発光させる。その後、処理を終了する。
ステップS38の次は、ステップS42にも進み、ユーザ端末装置5aの制御部15は、近接度ステータスをBLE通信モジュール16を介して杖1aへ送信する。次に、ステップS43に進み、杖1aの制御部8は、BLE通信モジュール2を介して取得した近接度ステータスをメモリ31に書き込む。次に、ステップS44に進み、杖1aの制御部8は、メモリ31に格納された近接度ステータスによりタイマ35の時間間隔を変更する。
次に、ステップS45に進み、杖1aの制御部8は、メモリ31に格納された近接度ステータスが「近い」か否かを判定する。ステップS45において、メモリ31に格納された近接度ステータスが「近い」場合には、ステップS46に進んで、BLE通信モジュール2によるユーザ端末装置5aと、ユーザ端末装置5bを含む他のユーザ端末装置5との2点間の距離Lの測定に切り替えるために杖1aの制御部8がユーザ端末装置5aへ切断要求を送信する。
ステップS45において、メモリ31に格納された近接度ステータスが「近い」でない場合には、処理を終了する。次に、ステップS47に進み、ユーザ端末装置5aの制御部15は、杖1aとのコネクションを切断する。
次に、ステップS48に進んで、ユーザ端末装置5aの制御部15は、杖1aのBLE通信モジュール2から送信されるアドバタイジングパケットを受信するために再スキャンを開始する。そして、ステップS49に進んで、ユーザ端末装置5aの制御部15は、BLE通信モジュール16を介して杖1aのBLE通信モジュール2から送信されたアドバタイジングパケットを受信する。その後、ステップS50に進んで、ユーザ端末装置5aの制御部15は、杖1aの制御部8に接続要求を行う。
次に、ステップS51に進んで、杖1aの制御部8は、ユーザ端末装置5aとの接続を確立させる。次に、ステップS52に進んで、杖1aの制御部8は、アドバタイズを終了する。ステップS46において、杖1aの制御部8がユーザ端末装置5aへ切断要求を送信した後、ステップS47で、ユーザ端末装置5aの制御部15は、杖1aとのコネクションを切断する。一方、杖1a側では、ステップS46からステップS61に進んで、杖1aの制御部8は、BLE通信モジュール2を介してアドバタイズを開始する。
その後、ステップS62に進んで、杖1aの制御部8は、杖1aのBLE通信モジュール2と、ユーザ端末装置5bのBLE通信モジュール16との間の2点間の距離Lを測定するために接続不可なアドバタイジングパケットに杖1aのID情報を含めて送信する。
一方、ユーザ端末装置5bでは、図5のステップS15において、ユーザ端末装置5bの制御部15は、杖1bの制御部8に接続要求を行った後、ステップS71に進み、ユーザ端末装置5bの制御部15は、杖1bのBLE通信モジュール2から送信されるアドバタイジングパケットを受信するために再スキャンを開始する。
その後、ステップS72に進んで、ユーザ端末装置5bの制御部15は、杖1aから送信されたアドバタイジングパケットを受信し、アドバタイジングパケットから杖1aのID情報と、シグナル強度基準値Kとを取得する。その際、アドバタイジングパケットから受信信号強度Jも合わせて取得する。
その後、ステップS73に進んで、ユーザ端末装置5bの制御部15は、BLE通信モジュール16を介して杖1aのBLE通信モジュール2から取得したシグナル強度基準値Kから杖1aのBLE通信モジュール2と、ユーザ端末装置5bのBLE通信モジュール16との間の2点間の距離Lを算出する。
ここで、自由空間では受信信号強度Jは、距離の二乗に反比例して減衰する。また、ユーザ端末装置5bの制御部15は、BLE通信モジュール16を介して、デバイスが受信した電波の強さ(dBm)である受信信号強度Jと、所定の距離だけ離れた位置で計測された基準となる出力信号強度を示す既知の受信信号強度Jsとを取得することができ、受信信号強度Jの減衰率をn(定数)としたとき、障害物の無い理想空間では、「n=2.0」とした場合、以下の数9式を用いて2点間の距離Lを計算することができる。
[数9]
J=Js-n×10×logL
L=10(Js-J)/20
次に、ステップS74において、ユーザ端末装置5bの制御部15は、2点間の距離Lの近接度が「非常に近い」か否かを判定する。ステップS74において、近接度が「非常に近い」場合は、ステップS75に進んで、ユーザ端末装置5bの制御部15は、取得した近接度を基に、図13に示す振動、発光信号データを作成し、BLE通信モジュール16を介して杖1bに送信する。
ステップS74において、近接度が「非常に近い」ではない場合は、ステップS71に戻り、ステップS71~S75を繰り返す。ステップS75において、振動、発光信号データを杖1bに送信した後、ステップS76に進み、杖1bの制御部8は、BLE通信モジュール2を介して図13に示す振動、発光信号データを取得し、取得したデータをメモリ31に書き込む。
次に、ステップS77に進み、杖1bの制御部8は、メモリ31に書き込まれた振動信号データを基にバイブレータ10により杖1bを振動させる。次に、ステップS78に進み、杖1bの制御部8は、メモリ31に書き込まれた発光信号データを基に杖1bの下部の外周面に設けられた発光装置11を発光させる。
図11のステップS62の後は、図12のステップS81に進み、杖1aの制御部8は、アドバタイズを終了する。その後、ステップS82に進み、杖1aの制御部8は、BLE通信モジュール2を介してアドバタイズを開始する。次に、ステップS63に進み、杖1aの制御部8は、ユーザ端末装置5aとのコネクションを生成するために接続可能なアドバタイジングパケットをBLE通信モジュール2を介して送信する。その後、ステップS49に進む図12のステップS52の後は、ステップS43に戻り、ステップS43~S52を繰り返す。
次に、図14~図25を用いて、杖1、ユーザ端末装置5、サーバ装置7の個々の動作について説明する。図14は、杖1a,1bの動作を示すフローチャートである。図15は、図14のステップS1100内のペアリング処理動作を示すフローチャートである。第1のユーザ6aが所持する第1の杖1aの制御部8は、電源が投入されて起動すると、図14のステップS1001において、近接度ステータスの値を初期化し、ステップS1002において、所定の処理の周期時間を制御するための値(経過時間の閾値)を初期化する。
第1の杖1aの制御部8は、ステップS1100において、ペアリング処理を開始する。ペアリング処理において、図15に示すステップS1101では、第1の杖1aの制御部8は、BLE通信モジュール2を制御し、近距離無線通信におけるペリフェラル(主に周辺機器であり、セントラルに対してデータを発信する側)として作動する。
また、図15のステップS1102において、第1の杖1aの制御部8は、BLE通信モジュール2を制御し、近距離無線通信におけるアドバタイズを開始させ、接続可能なアドバタイジングパケットをブロードキャストする。ここで、ブロードキャストとは、複数の情報通信端末に向けて送信することである。ここで、アドバタイジングパケットは、ペアリングによる1対1のデータ送受信を目的とした接続可能なアドバタイジングパケットと、ビーコン機能を例とする定期的なデータ送信のみを目的とした接続不可なアドバタイジングパケットとを含み得る。
一方、第1のユーザ6aが所持する第1のユーザ端末装置5aの制御部15は、起動すると、近距離無線通信におけるセントラル(主に中心機器であり、データを受信する側)で、かつ、オブザーバ(定期的にデータを受信する側)として作動し、周辺のペリフェラルの検索(スキャン)を開始する。
図15のステップS1103において、第1のユーザ端末装置5aの制御部15は、第1の杖1aから送信されたアドバタイジングパケットを受信すると、ステップS1104において、受信したアドバタイジングパケットに基づいて送信元を判定し、第1の杖1aに接続を要求する。次に、図15のステップS1105において、第1の杖1aに設けられたBLE通信モジュール2が、第1のユーザ端末装置5aから送信された接続要求を受信すると、制御部8は、その接続要求を受理し、接続が確立される。
第1の杖1aの制御部8は、図14に示すステップS1100のペアリング処理を終了すると、ステップS1003に進み、タイマ35による時間の計測を開始させる。その後、ステップS1004に進み、第1の杖1aの制御部8は、タイマ35に基づいて経過時間を測定する。その後、ステップS1005に進み、第1の杖1aの制御部8は、タイマ35により計測した経過時間と、図14のステップS1002または図18のステップS1302で設定された閾値とを比較する。
ステップS1005において、タイマ35により計測した経過時間が閾値以上である場合には、ステップS1006に進んで、第1の杖1aの制御部8は、タイマ35を停止させる。その後、ステップS1007に進んで、制御部8は、BLE通信モジュール2を介して第1のユーザ端末装置5aに第1の杖1aのID情報を送信する。次に、ステップS1008に進んで、制御部8は、タイマ35による時間の御計測を開始する。
次に、ステップS1200において、第1の杖1aの制御部8は、データ送受信処理を実行した後、ステップS1300に進んでロール切替処理を実行する。BLE通信では、その通信制御方式の特徴から、送信側または受信側の機器それぞれを、ペリフェラル、セントラル、ブロードキャスタ、オブザーバの4つの役割(ロール)に分類することができる。
その後、ステップS1004に戻って、第1の杖1aの制御部8は、タイマ35により計測した経過時間を判定し、周期的にステップS1004~S1300を繰り返し実行する。
一方、第1のユーザ端末装置5aの制御部15は、図23に示すステップS3101において、第1の杖1aのBLE通信モジュール2を介して送信された第1の杖1aのID情報を、BLE通信モジュール16を介して受信すると、ステップS3102に進んで、第1の杖1aのID情報から送信元アドレスを取得する。
第1のユーザ端末装置5aの制御部15は、ステップS3103に進んで、GPS22により緯度と経度とからなる基準点座標を取得する。その後、ステップS3104に進んで、ステップS3102で取得した送信元アドレスと、ステップS3103で取得した基準点座標とをインターサネット通信モジュール20を介してサーバ装置7に送信する。その後、図23に示すステップS2100に進んで、測位及び通知処理を開始する。
図19に示すステップS2101において、サーバ装置7の制御部32は、第1のユーザ端末装置5aから送信された送信元アドレスと、基準点座標とを受信すると、時計3から現在日時を取得する。
サーバ装置7の制御部32は、図19のステップS2101で取得した第1のユーザ端末装置5aの送信元アドレスと、第1のユーザ端末装置5aの現在位置である緯度と経度とからなる基準点座標と、時計3から取得した現在日時とを、それぞれ端末ID情報と、緯度と経度とからなる位置情報と、最終更新日時として、ステップS2102においてデータベース27に記憶する。
サーバ装置7の制御部32は、ステップS2103において、第1のユーザ端末装置5aの送信元アドレスと端末ID情報とが異なるレコードをデータベース27から検索し、第1のユーザ端末装置5a以外の全てのレコードの端末ID情報と、緯度と経度とからなる位置情報と、最終更新日時とを、それぞれ送信先アドレスと緯度と経度とからなる指定点座標と、最終更新日時として抽出する。
例えば、第1の杖1aを利用する第1のユーザ6aと、第2の杖1bを利用する第2のユーザ6bとが、互いに10m程度離れた付近を歩いているとき、第2の杖1bを利用する第2のユーザ6bが所持する第2のユーザ端末装置5bとサーバ装置7とによってデータベース27に記憶された第2の杖1bを利用する第2のユーザ6bが所持する第2のユーザ端末装置5bの送信先アドレスと、指定点座標と、最終更新日時とが抽出される。
サーバ装置7の制御部32は、更新レコード数の値を「0」に初期化し、ステップS2103で取得した、第1のユーザ端末装置5a以外の全てのレコード(送信先アドレスと指定点座標と最終更新日時)のそれぞれについて、ステップS2101で取得した第1のユーザ端末装置5aの送信元アドレスと基準点座標と現在日時とに基づいて、図19に示すステップS2104~図20に示すステップS2115の処理を繰り返す。
図19のステップS2105において、サーバ装置7の制御部32は、時計3により取得した現在日時とデータベース27を参照して抽出した最終更新日時との差が所定の時間間隔を超えたか否かを判定する。現在日時と最終更新日時との差分時間が予め設定された所定の時間間隔よりも大きい場合は、ステップS2106に進んで、サーバ装置7の制御部32は、第1のユーザ6aと、第2のユーザ6bとの近接度を「圏外」とする。
ステップS2105において、現在日時と最終更新日時との差分時間が所定の時間以内である場合は、ステップS2107に進んで、サーバ装置7の制御部32は、基準点座標の緯度と、基準点座標の経度と、指定点座標の緯度と、指定点座標の経度と、に基づいて第1のユーザ6aと、第2のユーザ6bとの2点間の距離Lを計算する。
その後、ステップS2108に進んで、2点間の距離Lが150mを超えれば「圏外」とし、2点間の距離Lが50m以上、且つ、150m以内であれば「遠い」とし、2点間の距離Lが50m未満であれば「近い」として、第1のユーザ6aと、第2のユーザ6bとの近接度を判定する。
例えば、第1の杖1aを利用する第1のユーザ6aと、第2の杖1bを利用する第2のユーザ6bとが互いに10m程度離れた付近を歩いているとき、サーバ装置7の制御部32は、第1のユーザ6aと、第2のユーザ6bとの近接度は「近い」と判定する。ここで、第1のユーザ6aと、第2のユーザ6bとの2点間の距離Lは、前記数8式により計算することができる。
図20のステップS2109において、サーバ装置7の制御部32は、データベース27に記憶されている各ユーザ端末装置5の送信先アドレスと端末ID情報とが等しいレコードから近接度を抽出する。その後、ステップS2110に進んで、サーバ装置7の制御部32は、データベース27から抽出した近接度と、算出した近接度とが異なるか否かを判定する。
ステップS2110において、二つの近接度が異なる場合は、ステップS2111に進んで、サーバ装置7の制御部32は、送信先アドレスと近接度とを、それぞれ端末ID情報と近接度としてデータベース27に記憶し、カウンタ4により更新レコード数の値を「1」加算する。
その後、ステップS2112に進んで、サーバ装置7の制御部32は、データベース27に記憶されている送信元アドレスと端末ID情報とが等しいレコードからアカウント名を抽出する。その後、ステップS2113に進んで、アカウント名と近接度と現在日時とを第2のユーザ端末装置5bに送信する。その後、ステップS2114に進んで、第2のユーザ端末装置5bの制御部15は、サーバ装置7から受信したアカウント名と近接度と現在日時とを含む近接度通知メッセージを出力する。
サーバ装置7の制御部32は、図19に示すステップS2104から図20に示すステップS2115までの処理を繰り返し、ステップS2116において、得られた更新レコード数に基づいて、近接度ステータスの通知の要否を判定する。図20のステップS2110において、サーバ装置7の制御部32は、データベース27から抽出した近接度と、算出した近接度とが異なるか否かを判定する。二つの近接度が同じである場合には、ステップS2115に進む。
ステップS2116において、更新レコード数の値が「0」よりも大きい場合には、ステップS2117に進んで、サーバ装置7の制御部32は、データベース27に記憶されている送信元アドレスと端末ID情報とが等しいレコードから近接度を集計し、その集計結果に基づいて近接度ステータスを判定する。ステップS2116において、更新レコード数の値が「0」の場合には、処理を終了する。
<近接度ステータスの判定>
ステップS2117において、近接度が「近い」レコードが少なくとも1件以上存在するとき、サーバ装置7の制御部32は、近接度ステータスを「近い」とする。近接度が「近い」レコードが存在せず、且つ、近接度が「遠い」レコードが少なくとも1件以上存在するとき、サーバ装置7の制御部32は、近接度ステータスを「遠い」とする。
近接度が「近い」レコードが存在せず、且つ、近接度が「遠い」レコードも存在しないとき、サーバ装置7の制御部32は、近接度ステータスを「圏外」とする。その後、ステップS2118に進んで、サーバ装置7の制御部32は、近接度ステータスを第1のユーザ端末装置5aに送信する。
次に、ステップS3200に進んで、第1のユーザ端末装置5aの制御部15は、近接度ステータスの更新処理を行う。図24のステップS3201において、第1のユーザ端末装置5aの制御部15は、サーバ装置7から送信された近接度ステータスをインターサネット通信モジュール20を介して受信する。その後、ステップS3202に進んで、第1のユーザ端末装置5aの制御部15は、BLE通信モジュール16を介して第1の杖1aの近接度ステータスの読み出しを要求する。
次に、ステップS1200に進んで、データ送受信処理を実行する。図16のステップS1205において、ペリフェラルとしての第1の杖1aの制御部8は、近接度ステータスの読み出しを検知すると、保持している近接度ステータスの値をセントラルとしての第1のユーザ端末装置5aに送信する。尚、ペリフェラルとは、コンピュータと組み合わせて利用される機器のことである。また、セントラルとは、主に中心機器であり、データを受信する側である。
図24のステップS3203において、第1のユーザ端末装置5aの制御部15は、第1の杖1aから送信された近接度ステータスをBLE通信モジュール16を介して受信する。次に、ステップS3204に進んで、第1のユーザ端末装置5aの制御部15は、サーバ装置7から送信された近接度ステータスと、第1の杖1aから送信された近接度ステータスとを比較し、更新が必要か否かを判定する。
ステップS3204において、2つの近接度ステータスが異なる場合は、ステップS3205に進んで、第1のユーザ端末装置5aの制御部15は、サーバ装置7から送信された近接度ステータスに基づいて、振動手段としてのバイブレータ10の振動状態と、発光手段としての発光装置11の発光状態の制御情報を判定する。その後、図25のステップS3206に進んで、第1のユーザ端末装置5aの制御部15は、BLE通信モジュール16を介して第1の杖1aにデバイス出力命令の書き込みを要求する。
次に、ステップS1200に進んで、データ送受信処理を実行する。図17のステップS1209において、第1の杖1aの制御部8は、デバイス出力命令の書き込みを検知する。その後、ステップS1210に進んで、第1の杖1aの制御部8は、受信したデバイス出力命令の値に基づいて、振動手段としてのバイブレータ10により第1の杖1aを振動させる。また、ステップS1211に進んで、第1の杖1aの制御部8は、受信したデバイス出力命令の値に基づいて、第1の杖1aの外周面に設けられたLED(Light Emitting Diode;発光ダイオード)を発光させる。その後、図25のステップS3207に進んで、第1のユーザ端末装置5aの制御部15は、BLE通信モジュール16を介して第1の杖1aの近接度ステータスの書き込みを要求する。
その後、ステップS1200に進んで、データ送受信処理を実行する。図16に示すステップS1201において、第1の杖1aの制御部8は、BLE通信モジュール2を介して第1のユーザ端末装置5aからデータのアクセス要求を受信する。次に、ステップS1202に進んで、第1の杖1aの制御部8は、アクセス要求を解析する。次に、ステップS1203に進んで、第1の杖1aの制御部8は、対象のデータがデバイス出力命令か近接度ステータスであるかを判定する。対象のデータが近接度ステータスである場合には、ステップS1204に進んで、第1の杖1aの制御部8は、アクセス方法が読み出しか書き込みかを判定する。アクセス方法が読み出しの場合には、ステップS1205に進んで、第1の杖1aの制御部8は、BLE通信モジュール2を介して第1のユーザ端末装置5aに近接度ステータスを送信する。一方、ステップS1204において、アクセス方法が書き込みの場合には、ステップS1206に進んで、第1の杖1aの制御部8は、BLE通信モジュール2を介して第1のユーザ端末装置5aから受信した値で近接度ステータスを更新する。一方、ステップS1203において、対象のデータがデバイス出力命令である場合には、ステップS1215に進んで、第1の杖1aの制御部8は、デバイス出力命令の送受信を行う。ステップS1205、S1206、S1215の次にステップS1213に進んで、第1の杖1aの制御部8は、BLE通信モジュール2のバッファから次のアクセス要求を読み出す。次に、ステップS1214に進んで、第1の杖1aの制御部8は、BLE通信モジュール2のバッファから次のアクセス要求が読み出せたか否かを判定し、読み出せた場合には、処理を終了する。ステップS1214において、BLE通信モジュール2のバッファから次のアクセス要求が読み出せなかった場合には、ステップS1202に戻る。
図24のステップS3204において、2つの近接度ステータスが等しい場合は、処理を終了する。図16のステップS1206において、ペリフェラルとしての第1の杖1aの制御部8は、近接度ステータスの書き込みを検知すると、その受信した値で近接度ステータスを更新する。
図18のステップS1301において、第1の杖1aの制御部8は、第1のユーザ端末装置5aから送信された近接度ステータスをBLE通信モジュール2を介して読み取る。次に、ステップS1302に進んで、第1の杖1aの制御部8は、近接度ステータスの値に基づいて、経過時間の閾値を設定する。
<経過時間の閾値設定>
近接度ステータスが「圏外」であるとき、第1の杖1aの制御部8は、経過時間の閾値を45秒とする。近接度ステータスが「遠い」であるとき、第1の杖1aの制御部8は、経過時間の閾値を15秒とする。近接度ステータスが「近い」であるとき、第1の杖1aの制御部8は、経過時間の閾値を15秒とする。
図18のステップS1303において、第1の杖1aの制御部8は、近接度ステータスが「近い」か否かを判定し、近接度ステータスが「近い」ときは、ステップS1304に進んで、第1の杖1aの制御部8は、第1のユーザ端末装置5aに切断を要求する。
次に、ステップS1305に進んで、第1のユーザ端末装置5aの制御部15は、第1の杖1aとのコネクションを切断する。次に、ステップS1306に進んで、第1の杖1aの制御部8は、BLE通信モジュール2を制御してBLE通信におけるペリフェラルからブロードキャスタ(オブザーバに対して定期的にデータを発信する機器)として設定する。
次に、ステップS1307に進んで、第1の杖1aの制御部8は、BLE通信モジュール2を制御して近距離無線通信におけるアドバタイズを開始させ、接続不可なアドバタイジングパケットを複数のユーザ端末装置5に向けて送信(ブロードキャスト)する。
次に、ステップS3000に進んで、近距離無線通信による近接度判定処理を実行する。第1の杖1aは、ステップS3000に進んで、BLE通信による近接度判定処理を実行すると、図18に示すステップS1308において、アドバタイズを中止し、図14に示すステップS1100のペアリング処理でBLE通信におけるブロードキャスタから、BLE通信におけるペリフェラルとして作動する。図22のステップS3001において、第2のユーザ端末装置5bは、オブザーバであり、第1の杖1aから送信されたアドバタイジングパケットをBLE通信モジュール16を介して受信する。次に、ステップS3002に進んで、第2のユーザ端末装置5bの制御部15は、BLE通信モジュール16を介して受信したアドバタイジングパケットに基づいて送信元を判定し、第1の杖1aのID情報を取得する。
次に、ステップS3003に進んで、第2のユーザ端末装置5bの制御部15は、送信元がペアリング済みか否かを判定し、送信元がペアリング未設定であるときは、ステップS3004、S3005に進んで、第2のユーザ端末装置5bの制御部15は、BLE通信モジュール16により受信したシグナル強度基準値に基づいて、第1の杖1aと第2のユーザ端末装置5bとの距離(近接度)を算出し、その算出した距離が、10m以内であれば「非常に近い」とし、10mを超えていれば「近い」として近接度ステータスを特定する。
ここで、近距離無線通信による近接度判定処理における2点間の距離Lは、前記数9式により計算することができる。
次に、ステップS3005において、第2のユーザ端末装置5bの制御部15は、近接度が「非常に近い」か否かを判定する。ステップS3004で算出した距離Lが10m未満であるとき、第2のユーザ端末装置5bの制御部15は、近接度を「非常に近い」と判定する。例えば、第1の杖1aを所持するユーザ6aと第2の杖1bを所持するユーザ6bとが、互いに8mほど離れた付近を歩いているとき、近接度が「非常に近い」と判定される。近接度が「非常に近い」ときは、ステップS3006に進んで、第2のユーザ端末装置5bの制御部15は、近接度に基づいて、振動手段としてのバイブレータ10の振動状態と、発光手段としての発光装置11の発光状態との制御情報を判定する。
次に、ステップS3007に進んで、第2のユーザ端末装置5bの制御部15は、BLE通信モジュール16を介して第2の杖1bの制御部8にデバイス出力命令の書き込みを要求する。ステップS3005において、近接度が「非常に近い」ではないときは、処理を終了する。
図17に示すステップS1207において、第1の杖1aの制御部8は、デバイス出力命令の書き込みを検知すると、ステップS1209、S1210に進み、そのデバイス出力命令の値に基づいて、振動手段としてのバイブレータ10により第1の杖1aを振動させる。また、ステップS1211に進んで、第1の杖1aの制御部8は、受信したデバイス出力命令の値に基づいて、第1の杖1aの外周面に設けられたLED(Light Emitting Diode;発光ダイオード)を発光させる。
図17のステップS1215において、第1の杖1aの制御部8は、デバイス出力命令の送受信を実行する。ステップS1207において、第1の杖1aの制御部8は、デバイス出力命令のアクセス方法が読み出しか書き込みかを判定する。デバイス出力命令のアクセス方法が読み出しの場合には、ステップS1208に進んで、第1の杖1aの制御部8は、BLE通信モジュール2を介して第1のユーザ端末装置5aにデバイス出力命令の値を送信した後、処理を終了する。ステップS1207において、デバイス出力命令のアクセス方法が書き込みの場合には、ステップS1209に進んで、第1の杖1aの制御部8は、BLE通信モジュール2を介して第1のユーザ端末装置5aから受信した値でデバイス出力命令を更新する。次に、ステップS1210に進んで、第1の杖1aの制御部8は、デバイス出力命令の値に基づいてバイブレータ10により第1の杖1aを振動させる。次に、ステップS1211に進んで、第1の杖1aの制御部8は、デバイス出力命令の値に基づいて発光装置11を発光させる。次に、ステップS1212に進んで、第1の杖1aの制御部8は、デバイス出力命令の値を初期化して処理を終了する。
図26は、近接度情報、アカウント情報、位置情報のデータ構造を示す図である。図27(a)は、アカウント情報、図27(b)は、近接度情報、図27(c)は、位置情報のデータ構造の一例を示す図である。図26に示す近接度情報の送信元端末IDと、送信先端末IDと、位置情報の端末IDとは、アカウント情報の端末IDとして登録されている。これによりアカウント情報の端末IDに基づいて近接度情報の送信元端末IDと、送信先端末IDと、位置情報の端末IDとを特定することができる。
図28(a)は、第1のユーザ6aに対して、第2のユーザ6bとしての「はなこさん」が「圏外」のエリアから「遠い」のエリアに移動したときと、第3のユーザ6cとしての「たろうさん」が「遠い」のエリアにいる場合の位置情報と近接度を示す図である。図28(b)は、図28(a)の状態で第1のユーザ6aが所持する第1のユーザ端末装置5aに表示される画面の一例である。
このとき、第3のユーザ6cも第3の杖1cと第3のユーザ端末装置5cとを所持しているものとする。ここで、図28(a)に示す近接度の「近い」は、第1のユーザ6aを中心として50m以内にユーザ6が接近している場合である。また、近接度の「遠い」は、第1のユーザ6aを中心として50mを超えて、150m以内にユーザ6が離れている場合である。また、近接度の「圏外」は、第1のユーザ6aを中心として150mを超えてユーザ6が離れている場合である。
図29(a)は、第1のユーザ6aに対して、第2のユーザ6bとしての「はなこさん」が「遠い」のエリアにいて、第3のユーザ6cとしての「たろうさん」が「遠い」のエリアから「近い」のエリアに移動したときの位置情報と近接度を示す図である。図29(b)は、図29(a)の状態で第1のユーザ6aが所持する第1のユーザ端末装置5aに表示される画面の一例である。
図30(a)は、第1のユーザ6aに対して、第2のユーザ6bとしての「はなこさん」が「遠い」のエリアから「圏外」のエリアに移動して離れ、第3のユーザ6cとしての「たろうさん」が「近い」のエリアにいる場合の位置情報と近接度を示す図である。図30(b)は、図30(a)の状態で第1のユーザ6aが所持する第1のユーザ端末装置5aに表示される画面の一例である。
第1のユーザ6aに対して、各ユーザ6の位置情報と近接度とが図28(a)→図29(a)→図30(a)のように変化すると、第1のユーザ6aが所持する第1のユーザ端末装置5aに表示される画面は、各ユーザ6の近接度が変化するタイミングで近接度通知情報を受信して図28(b)→図29(b)→図30(b)のように履歴を残しながら変化する。
図31は、第1のユーザ6aと第2のユーザ6bとの間の2点間の距離Lと、近距離無線通信の通信距離Lbと、GPS22により計測される広域レベルの距離範囲Lgとの関係を示す図である。第1のユーザ6aと第2のユーザ6bとの間の2点間の距離Lは、第1のユーザ端末装置5aと第2のユーザ端末装置5bにそれぞれ設けられたGPS22により第1のユーザ6aと第2のユーザ6bとの2地点の緯度と経度とからなる座標から2点間の距離Lを定常的に測定する。座標情報は、各ユーザ端末装置5にインストールされているAndroid(登録商標)の位置情報取得API(Application Programming Interface;アプリケーションプログラミングインタフェース)を呼び出して取得し、その情報を定期的にサーバ装置7に送信し、計算結果を各ユーザ端末装置5が受信する。
図32は、第1のユーザ6aと第2のユーザ6bとの間の2点間の距離Lが所定の閾値未満になったときに互いに知らせる様子を示す図である。図33は、第1のユーザ6aと第2のユーザ6bとの間の2点間の距離Lが更に接近して相手のユーザ端末装置5のBLE通信モジュール16と自分の杖1のBLE通信モジュール2との間で近距離無線通信通信で接続できたときに互いに知らせる様子を示す図である。
このとき、杖1側をペリフェラルにして、ユーザ端末装置5側をセントラルにする。ペリフェラルとしての杖1側は、定期的にパケットデータを送信続け、セントラルとしてのユーザ端末装置5側は、杖1を検索する。
図34は、4人のユーザ6a~6d間で位置情報と近接度を示す図である。各ユーザ6a~6dは、それぞれユーザ端末装置5a~5dと杖1a~1dを所持しているものとする。互いに最も近いノードとしてのユーザ端末装置5や杖1や、最も遠いノードとしてのユーザ端末装置5や杖1を検索することも可能である。
また、GPS22により計測される広域レベルの距離範囲Lgの閾値を複数設けてGPS22により計測される広域レベルの距離範囲Lg1,Lg2を複数設定することでユーザ6間の近接度をより細かく判定することができる。図35は、ユーザ6間の移動の履歴を参照することにより時間や移動方向等からユーザ6間の移動のベクトル情報を作成して移動の予測を行う様子を示す図である。図35に示すTa1~Ta3,Tb1~Tb3は、それぞれユーザ6a,6bの移動ベクトルを示す。このようなベクトル情報を考慮して機械学習やディープラーニングを活用することで、ユーザ6間の近接度をより高い精度で判定でき、計算効率の向上が図れる。これにより複数のユーザが移動する際のユーザ間の距離を計測することができる。これにより視覚障害者等が日常的に利用する杖1と、ユーザ端末装置5を所持することで、衝突防止や待ち合わせ等に有効利用することができる。