お知らせ
屋内測位システム『TPC_IPS Ver1.0』を2022/4/1にリリースしました。同製品に関する質問またはデモを希望されるお客様はこちらよりお申し込みください。
同製品のカタログのダウンロードはこちらをクリックしてください。
尚、外部のIPS/RTLSと連携して動作するIPSアプリケーション・テンプレート『QuickIPS』及び 『TPC_IPS Web API』 も順次リリースを予定しています。
IPSとは
FileMaker によるIPS用ユーザアプリケーション
UWB IPS製品には Ubisense や Zebra といったものが以前からありますが非常に高価なため、導入は一部の大企業等に留まっていました。AirTag や SmartTag の出現は、低価格UWB IPS の普及に貢献するかもしれません。
注:
QuickIPS は TPC_IPS にバンドルされますが、単体として2022年春にリリース予定です。
※ QuickIPS の仕様・予定等は、予告無く変更されることがあります。
上図の構成例ではビーコン/タグを物品に取り付け、センサーを経由してサーバで位置測位を行いますが、これはAsset Tracking (資産管理)等で見られる方式です。一方、携帯電話端末等にアプリケーションをインストールし、ビーコン/タグを屋内の特定の場所に固定、端末のアプリで端末ユーザの測位計算を行う方式もあります。こちらはよりGPS的なIPSとなります。
代表的なユーザアプリケーション
ユーザアプリケーションはデータベースの位置情報データにアクセスし、ユーザの要求仕様に基づきデータを加工してPCやスマホ上に表示します。代表的なユーザアプリケーションとして、以下の3つが挙げられます。
- フロアマップ ― 人・モノの位置をフロアマップ図上に表示
- ヒートマップ ― 人の滞留情報を表示
- 動線追跡 ― 人・モノの移動を線で表示
QuickIPS デモビデオ
なぜ FileMaker なのか?
散布図グラフを用いたフロアマップ
この方法はメリットは、後述する座標データを丸める必要が無いこと、作成が簡単なことですが、ビーコンが近接して検知されるとビーコン名が重なったり、細かいビーコン情報を表示できない点が難点です。
複数ビーコンが近接して検知されると、ビーコン名が重なってしまう |
オブジェクトを用いたフロアマップ
外部システムを使用する際の測位座標の"丸め"
しかし外部システムと QuickIPS を併用する場合は、外部システムでこの丸め処理を行う必要があります。
例:図のように定点座標(×)を定めたとします。この時、外部システムが以下のようにビーコンを検知したとします。括弧内はx,y座標です。
ビーコンB(3.2, 3.6)
ビーコンC(1.5, 2.1)
最も近い定点座標(最近傍点)を求めるにはプログラムを自作する手もありますが、K-nearest neighbor(k = 1)のライブラリがあれば、これを使用すると楽ちんと思います。FileMakerで knn なカスタム関数を作成し、外部データベースからデータを取り込む際にこの関数を当てて丸め処理を行うことも可能かもしれませんが、かなり大変と思います。 Brian Dunning氏のカスタム関数公開サイトにはknnなカスタム関数は見当たりませんでした。
ちなみに TPC_IPS の測位アルゴリズム・TCOTは三点測位的な座標算出を行うため、元の測位座標は定点座標とはほぼ100%一致しません。このため TCOT実行時に、scikit-learn の KNeighbors により定点座標に丸めるオプションを用意しています。
オブジェクトを用いたヒートマップ
青、黄色、赤の順で人・モノの密集度を表示 |
エラーグラフ
横軸がスキャン実行時刻、縦軸に誤差、誤差値が小さい程、測位精度は高い |
グラフに表示するビーコンをピッカー(後述)で選択すると、[Time]で指定した時間の範囲内で測位誤差が縦軸に表示されます。
IPS導入テスト時には、運用に耐えうる測位精度が得られるかチェックを行いますが、本機能はその際に有用です。 また、屋内環境の変化によっても測位精度は変化するため、適時この機能を使用し、測位精度をチェックするようにします。
注:
QuickIPS の基本操作について
AUTO、MANUAL、HISTORYの3モードについて
QuickIPS には AUTO、MANUAL、HISTORY の3つのモードがあります。各モードは、下図の"実行モード"をクリックしてプルダウンメニューから選択します。
AUTOモード
MANUALモード
HISTORYモード
ヘッダ部
サブメニューボタン | クリックするとポップアップメニューが表示されるので、以下を選択。
Scatter map(散布図グラフを使用したフロアマップ)
Floor map(オブジェクトを使用したフロアマップ) Heatmap(ヒートマップ) Error graph(距離誤差グラフ) |
実行モード |
上述のAUTO、MANUAL、HISTORYから選択。 |
Time | ScanCode (YYMMDDMMDDSS形式、スキャンを実行した日時)を範囲指定する。 注: ScanCode はTPC_IPS を使用する際は自動的生成される。 |
ScanCodeナビゲーション |
[Time]で指定した範囲で、ScanCode 間を移動・選択するためのボタン群 |
ピッカーボタン | 対象となるビーコン及び ScanCode を選択するためのピッカー・フローティングウインドウ(後述)を表示。 |
エラーサマリーボタン | 測位誤差の詳細を表示するエラーサマリー・フローティングウインドウ(後述)を表示。 |
ピッカー フローティング ウインドウ
ビーコンリスト | ビーコン一覧、クリックで選択あるいは選択解除。選択中のビーコンはピンクで表示される。 選択されたビーコンは、フロアマップの表示対象となる。Error Graph(測位誤差グラフ) で表示されるビーコン数は6つまで。 |
ビーコン名書式 |
クリックすると、フロアマップに表示されるビーコン名の書式が切り替わる。 |
All ボタン |
全ビーコンを選択 |
None ボタン |
全てのビーコンの選択を解除 |
ScanCodeリスト |
[Time]で指定された範囲内の ScanCode の一覧。クリックして選択すると、その ScanCode を持つ座標データに基づき、フロアマップとヒートマップが表示される。 |
エラーサマリー フローティングウインドウ
本ウインドウは×ボタンで閉じられるまで、常に最前面に表示されます。
測位エラーサマリー | 静止した状態にあるビーコンの測位誤差をビーコン毎に表示。ビーコンリストから選択されたビーコンの測位誤差の平均、最大、最小、標準偏差を表示。 最終行には選択された全ビーコンの集計値が表示される。集計対象は[Time]で指定された期間。 ※ 取得データがない項目には missing が表示される。 |
エラー種類 |
エラーの種類を選択するボタン、各ボタン選択時のエラー算出式は以下の通り。 |
iPhone/iPadでの使用
開発時はPC/iOSでの利用を意識する! |
QuickIPS と外部システムとの連携
外部システムのデータベースに locLog に対応するテーブルまたはビューがあれば、それから locLogにデータを取り込み、QuickIPS の諸機能を使用することが可能となります。
locLogテーブル構成
フィールド名 | データ型 | 入力 | 備考 |
---|---|---|---|
uuid | テキスト | 必須 |
ビーコンの uuid |
major | 数値 | 必須 | ビーコンに割り当てられた major |
minor | 数値 | 必須 | ビーコンに割り当てられた minor |
beaconName | テキスト | ビーコン名、検索する場合は入力必須 | |
x | 数値 | 必須 | 測位されたビーコンのx座標 |
y | 数値 | 必須 | 測位されたビーコンのy座標 |
actual_x | 数値 | ビーコンの実際のx座標[注1] | |
actual_y | 数値 | ビーコンの実際のy座標[注1] | |
scanCode | 数値 | 必須 | スキャン実行タイムスタンプを示す12桁の数値(YYMMDDHHMMSS)[注2] |
timestamp | タイムスタンプ | レコードが作成された日時 |
注:
- actual_x と actual_y は測位精度テスト時に使用する実際のビーコンの座標です。これらの値と測位された座標の値を使用し、測位誤差が算出されます。
- QuickIPS を使用する場合、スキャン毎に生成される scanCode が必要となります。外部システムで scanCode を生成する際は、各センサーが同一のタイミングでスキャンを実行するようにし、スキャン毎に同一の値(YYMMDDHHMMSS)を scanCode に設定してください。例えば、2022/1/1 0:0:0秒にビーコン/タグ信号をスキャンした場合、センサー/受信機のクロックに関わらず、サーバ等で「220101000000」が各レコードの scanCode に入力されるようにします。
外部データベースからlocLogテーブルへのデータ取込
- QuickIPS を実行するコンピュータ上で、外部データベースのODBC ドライバにより、所定の DSN を登録
- 取り込むテーブル名と loclogテーブルに対応する外部テーブルのフィールド名を指定
- 外部データ取込画面で取込を実行
QuickIPS のカスタマイズについて
つぎに、SVGスポットアイコン、およびビーコン情報オブジェクト(図のピンクの部分、実際は透明)は、それぞれ座標属性を持っているので、座標属性に合わせて配置を行います。 例えば(4, 8)のオブジェクトは、(4,8)のフロアマップ座標上に配置するようにします。
※ QuickIPS の仕様・予定等は、予告無く変更されることがあります。
IPS関連のBlog記事
- iBeacon/Raspberry Pi による室内移動体位置監視モデル1 ~ 概要 ~
- iBeacon/Raspberry Pi による室内移動体位置監視モデル 2 ~ RSSI・距離補正と三点測位について ~
- iBeacon/Raspberry Pi による室内移動体位置監視モデル 3 ~ 二円指向三点測位の拡張 ~
- 東京ドームのような広い場所で少ない受信機によりビーコンのおおよその位置を推定する
- 機械学習によりIPSの位置測位精度を改善する
- IPSのテストベッドをつくる際のTIPS ― デバイスの保護とスマート電源
- FileMaker用IPSアプリケーション・テンプレート ― QuickIPS ―
- 人・モノの動きをマップ上で可視化するオブジェクトトラッキング
- 位置情報をUDPで送信 ― TPC_IPS/QuickIPSの拡張