ラベル RTLS の投稿を表示しています。 すべての投稿を表示
ラベル RTLS の投稿を表示しています。 すべての投稿を表示

2023-09-21

Quuppa用IPSアプリケーション ― QuickIPS for Quuppa

[English version]

お知らせ

QuickIPS for Quuppa のデモを提供しています。ご希望の方はこちらよりお申し込みください。

  土屋企画では、屋内位置測位システムQuuppa用のIPSアプリケーション『QuickIPS for Quuppa』 を2023年冬にリリースする予定です。 本製品はQuuppa Positioning Engine が提供する人・モノの位置情報を受信し、PC等の端末上にその位置をリアルタイムで表示する FileMaker で開発されたアプリケーションです。

 本稿では当製品に関して説明します。

Quuppaとは?

 Quuppaは屋内の人やモノの位置情報を提供するためのシステムであり、フィンランドQuuppa Oy社の製品です。同製品は Realtime Location System (RTLS) または Indoor Positioning System (IPS) と呼ばれます。 このシステムでは人・モノにタグ(ビーコン)と呼ばれる発信機を取り付けて、タグが発する信号をもとに人・モノの位置を算出します。GPSと似ていますが、衛星電波の届きにくい屋内での使用に特化し、GPSよりも測位精度が高いのが特長です。また、タグはBLEを使用しているため低電力で長期間の運用が可能です。



Quuppaは主としてタグ、ロケーター、測位エンジン(ソフトウェア)で構成されます。

タグ  

QT1-1 tag
人・モノに取り付け、信号を発信する。ビーコンと呼ばれることもある。
ロケーター

Q35 Locator
タグからの信号を受信して位置測位エンジンに送信。
位置測位エンジン(ソフトウェア)

Quuppa Positioning Engine
ロケーター経由で送られてくるタグ情報を受信、各タグの位置情報を算出してアプリケーションに渡す。要サーバ。


QuickIPS for Quuppa

 Quuppaの位置測位エンジンはタグの位置情報をUDP PushやRESTを介してCSV及びJSONの形式で提供しますが、人・モノの位置をマップ上に表示する等のユーザアプリケーションは導入企業が独自に開発することになります。しかし、このアプリケーションの開発には多くの時間と費用が発生します。この開発作業の工数を削減しするのが当社の QuickIPS for Quuppa です。

主な特長

1. IPS アプリケーションを短時間で導入が可能

 QuickIPS for Quuppa(以下、「QuickIPS」)はタグの所在地をマップ上に表示する「フロアマップ」機能を提供します。 導入は簡単で、フロア画像を取り込み座標を合わせる等の初期設定を行えば、すぐにフロアマップ上にタグの所在地を表示できます。

 QuickIPS により、IPSのシステム導入担当者は、プロジェクトの初期段階でエンドユーザが利用するアプリケーションをイメージすることができます。

2. FileMaker によるカスタマイズ

 QuickIPS は FileMaker で作成されており、開発版も提供される予定です。 FileMaker はローコード開発ツールとして定評があり、開発者は FileMaker により QuickIPS をカスタマイズすることにより短期間で高品質のIPSアプリケーションを開発することが可能です。

3. 多様なフロアマップ開発のツール

 QuickIPSは5種類のフロアマップを提供します。開発版を使用してのカスタマイズに際しては、FileMakerの標準機能に加え、JavaScriptライブラリの plotly(無料) や FileMaker PluginであるxmCHART(有償、サードパーティ製) を使用できます。

3-1. Scatterフロアマップ

 FileMakerの散布図グラフを使用して開発されており、機能は限定的ですが、開発は容易です。

3-2. Object フロアマップ

  FileMakerの機能(主にマージフィールドとスクリプト)を使用して開発されており、Scatterフロアマップに比べて高度な開発が可能です。尚、本フロアマップは他のフロアマップとは異なり、導入時のカスタマイズが必須であるため、開発版の購入が必要となります。

3-3. xmCHARTフロアマップ

 FileMakerプラグインのxmCHART(有償)により開発されており、同製品が提供するFileMake用外部関数使用によるフロアマップの開発が可能です。この外部関数の習得には一定の学習が必要となりますが、チャート作成の柔軟性及び拡張性に優れ、様々なチャートの作成にも利用できます。

3-4. Plotlyフロアマップ

 JavaScriptとJavaScriptライブラリのPlotlyを使用して開発されています。開発者はPlotlyのスキルを必要とされますが、チャート作成の柔軟性及び拡張性に優れ、様々なチャートの作成にも利用できます。

3-5. QuickIPSページ(FileMakerクライアントライセンス非依存)

 上述のフロアマップと異なり、FileMakerクライアントライセンスと必要とせず、ブラウザ上にフロアマップを表示します。同ライセンスが不要のため、多数のユーザがいる環境ではコスト的に有利です。

 但し、運用に際してはFileMaker Serverのライセンスが1つ、設定管理用にFileMaker Proのライセンスが1つが必要です。
 また、python、plotly、Flask、waitress などによるWebサーバの構築も必要となります。


3-6. 開発ツール比較表

 フロアマップは以下の5種類のツールを使用して開発されています。

マップ種類
(開発ツール)

導入時開発

開発難度

拡張性  開発に関する補足
1.Scatter

  • FM標準の散布図グラフを利用
  • Objectに比し簡単

2.Object 必須

  • FM標準のマージフィールドとスクリプトを使用しての開発
  • cm単位の座標はmに丸めている
  • FileMakerによる開発経験要
  • 開発には開発版が必要

3.xmCHART

  • xmCHART(別途購入要)を使用
  • xmCHARTの独自言語
  • FMの外部関数による開発
  • ヒートマップ、トラッキング(動線追跡)等の開発が可能

4.plotly

  • plotly(フリーウェア)とJavaScriptとplotlyを使用
  • ヒートマップ、トラッキング(動線追跡)等の開発が可能

5.QuickIPS pages
  • ブラウザ上で実行
  • 他のマップと異なり、端末毎にFileMakerクライアントライセンスを必要としない
  • JavaScriptとplotlyにより開発
  • 他のマップと比較し低機能
  • 開発難度は一番高い(非ローコード)
  • Webサーバ要

3-7. Picker によるタグ選択

 Pickerにより目的のタグを複数選択し、それらだけをフロアマップに表示することができます。
複数のタグを選択可

 尚、QuickIPSページでは本機能を利用できません。

4. オート、マニュアル、ヒストリの3つのモードに対応

 上記3-1~3-4のフロアマップは以下のモードに対応しています。

オート(AUTO):タグの位置をリアルタイムに自動的に表示
マニュアル(MANUAL):ユーザが更新ボタンをクリックすると、その時点のタグの位置情報を表示
ヒストリ(HISTORY):ユーザの指定により、データベースに保存された過去の位置情報を表示

5. 誤差グラフと誤差集計機能

 静止しているタグの座標を予めタグマスタに登録しておくことにより、実際の座標とQuuppaが算出する座標の誤差をグラフ化または集計表示します。算出座標の精度をチェックしながらロケータの配置を決定する時にご利用ください。


6. 多様なプラットフォーム上で利用可能

 QuickIPSの諸機能は各種プラットフォーム上で動作します。

No 機能 FM Pro FM Go WebDirect Browser 備考
1 環境設定(Conf)  
2 フロアマップ調整  
3 AUTO モード  
4 HISTORYモード  
5 MANUALモード  
6 Scatterフロアマップ  
7 Objectフロアマップ  
8 xmCHARTフロアマップ  
9 Plotlyフロアマップ  
10 QuickIPS page  
11 測位誤差集計  
12 測位誤差グラフ  
13 Picker (タグ選択)  

注:

  • 初期設定及びメンテナンスには、FileMaker Proが必要です。
  • WebDirectはFileMakerで作成した機能をWebブラウザ上で利用できるようにする FileMaker Server の機能です。WebDirectを使用するには、FileMaker Server に加え、ユーザ毎にFileMakerのクライアントライセンスが必要となります。


NuckyT

2022-05-24

位置情報をUDPで送信 ― TPC_IPS/QuickIPSの拡張

 当社の屋内位置測位システム『TPC_IPS』 はビーコン信号をサーバ上の位置測位エンジン(TCOT)により解析し、算出された各ビーコンの位置情報をデータベースに保存します。ユーザは適時クライアント機からデータベースにアクセスして位置情報を引き出し、フロアマップ等のフロントエンドアプリケーションで利用します。この方式はクライアントがサーバに情報を要求するPull式となっています。

 Pull式は余分なクエリが発生したり、クライアント数が増えるとサーバの負荷が増す点が難点です。

 一方、サーバ側からクライアントにデータを送り付けるPush式のシステムも存在します。今回、『TPC_IPS』の位置測位エンジン(TCOT)で算出した位置情報をUDPでネットワークにブロードキャストし、クライアントのフロアマップを自動更新する処理を実装してみました。


 サーバとクライアント間のモジュール構成を図示したのが以下です。

 サーバには tcot_sender.py というプログラムが常駐していて、これがTCOTを呼び出して位置情報を取得、これを python socket によりUDPでブロードキャストします。

 一方、クライアント上ではtcot_receiver.pyが上記のUDPを待ち受けしていて、UDP データを受信するとデータ加工などの必要な処理を行います。

 フロントエンドアプリケーションの『QuickIPS』はフロアマップ上にビーコンの最新の位置を表示しますが、QuickIPS は FileMakerで開発されており、FileMaker自身にはソケット通信の機能がないため、tcot_receiver.py から直接データを取得することはできません。

 そこで tcot_receiver.py と QuickIPS 間でソケット通信を可能にするため tcot_listener.html というファイルを用意し、フロアマップのレイアウトにWebビューア*を配置してこのhtmlファイルを埋め込みます。tcot_listener.html は WebSocket を作成すると共に addEventListener を使用してtcot_receiver.pyからの受信を待ち受けます。 受信を感知すると PerformScript()によりFileMakerのスクリプトを実行して QuickIPS のフロアマップを更新します。

*WebビューワはFileMaker Pro のレイアウトに Web ページを直接表示する機能。

 この仕組みは FileMaker だけではなく、一般的なWebアプリケーションでも利用可能です。

 以下、今回実装した UDP Push式の長短をまとめてみました。 

UDP Push方式のメリット

  • TCP 通信に比べ、データ転送速度が速い
  • サーバ負荷の低減 特にユーザ数が多い場合
  • システム構成の柔軟性
  • リアルタイム性(オーバーヘッドが少ないため、クライアントアプリの実行速度の向上)

UDP Push 方式のデメリット

  • TCP 通信に比べると送信データが保証されないため、データの欠損(パケットロス)が生じることがある。
  • UDP通信の接続確認およびデータ受信確認の処理が面倒

注:
TPC_IPS ver1.0は UDP Push に対応していません。今後のリリースでの対応を予定していますが、仕様は予告なく変更されることがあります。

(亀)

 

IPS関連のBlog記事

土屋企画のIPS製品について/IPS product of TPC

 

2021-11-18

人・モノの動きをマップ上で可視化するオブジェクトトラッキング

 IPS の一般的な機能の一つに、人・モノの動きを追跡し、可視化する機能(以下、オブジェクトトラッキング)があります。下図は当社製品『TPC_IPS』及び『QuickIPS』で同機能を実行した際のもので、XとY軸に二次元マップを、Z軸には時間を表示しています。青と橙(オレンジ)の線がオブジェクトの時間ごとの位置を示しています。例えば、橙(bcn0-5)は、13:37:58 には、座標(0, 6)にいたことが判ります。
 この3DグラフはPC画面上で回転させることができるため、赤と青が接触あるいは近接したかどうかを視覚的に判断することも可能です。

注:
  • オブジェクトトラッキング機能は2022年4月現在開発中です。『TPC_IPS』及び『QuickIPS』の将来のバージョンに搭載予定です。
  • 仕様は予告なく変更されることがあります。

オブジェクトの移動を時系列と共に3D表示
  

用途

 オブジェクトトラッキングは、人・モノの動きをマップ上に時系列と共に表示する機能で、2Dと3D表示が可能です。 感染症罹患者、店舗利用者、運搬機、従業員等の行動・運動を正確に把握する際に有用です。 

人・モノの移動を2Dマップ上に時刻と共に表示

オブジェクトトラッキングで使用するツール等

 『QuickIPS』で使用するツール、アプリケーションは以下の通りです。

使用ツール用途
Python, matpotlib, 他 2D/3D描画を行う。
pyodbc, ODBC, 他 PythonからSQLクエリをデータベースに対して発行。座標、時間、UUIDなどのオブジェクト属性をデータベースから取得し、matplotlib に渡す。
FileMaker Pro
注:QuickIPS で必要
オブジェクトトラッキングはコマンドラインから実行可。『QuickIPS』では、GUIから Python のコマンドを実行。

仕様

  1. オブジェクトの位地を時系列と共に2D、3D表示
    3Dの場合、Z軸には時刻を取る

  2. 『QuickIPS』のGUI上で以下のパラメータの指定
    パラメータ  用途
    時間指定 トラック(追跡)する期間を12桁のコードで指定
    2D/3D トラック図を2Dにするか3Dするか選択
    プロット場所 トラック図を表示する場所を QuickIPS の Webビューア内か、独立した Python-matplotlib ウインドウ内にするかを選択
    ビーコン ピッカーインタフェイスから複数のビーコンを選択可

    操作方法
    1. QuickIPS ウインドウズの[Time] にオブジェクトトラッキングを行う時間帯を12桁のコード(YYYYMMDDHHMMSS、オブジェクト座標を計測した日時)で指定します。


    2. [Plot in...]では、オブジェクトトラッキングの図を表示するアプリケーションを指定します。「QuickIPS」を指定すると QuickIPSの「Webビューア」に、「Separate window」を指定すると Python-matplotlib のウインドウ内にトラッキング図を表示します。ここでは、「QuickIPS」を選択します。
    3. ピッカーアイコンを使って追跡したいビーコンを選択します。上図では、「bcn2-8」 と 「bcn0-5」 の 2種類のビーコンを選択しています。
    4. トラッキング図を2Dで描画するにはラジオボタンで「2D」を選択し、トラッキングボタンをクリックします。QuickIPSウインドウの「Webビューア」に指定した2つのビーコンの移動経路と時刻を示す図が表示されます。




      上記ステップ2の[Plot in...]で「Separate window」を選択していた場合、下図のように Python-matplotlib のウインドウ内にトラッキング図を表示されます。

      人・モノの移動を2Dマップ上に時刻と共に表示

      このウインドウでは、フロアマップを拡大・縮小することにより、詳細を確認できます。


      3Dオブジェクトトラッキング

      3D でオブジェクトトラッキングを実行するするには、上記ステップ4のラジオボタンで「3D」を選択し、トラッキングボタンをクリックします。この時、[Plot in...]で「QuickIPS」が選択されていると、同ウインドウの 「Webビューア」内にトラッキング図が表示されます。

      Webビューア内の画像はマウス操作不可

      [Plot in...]で「Separate window」が選択されてた状態でトラッキングボタンをクリックすると、 Python-matplotlib のウインドウ内に3Dトラッキング図が表示されます。

       この図はマウス操作あるいはウインドウ内のボタン等を利用し、回転させたり、縮小拡大させることができます。以下の動画ではその様子をご覧いただけます。

※『QuickIPS』及びオブジェクトトラッキング の仕様は今後変更されることがあります。


(亀)


IPS関連のBlog記事

土屋企画のIPS製品について/IPS product of TPC

2021-05-28

FileMaker用IPSアプリケーション・テンプレート ― QuickIPS ―


お知らせ

 屋内測位システム『TPC_IPS Ver1.0』を2022/4/1にリリースしました。

 同製品に関する質問またはデモを希望されるお客様はこちらよりお申し込みください。

 同製品のカタログのダウンロードはこちらをクリックしてください。

 尚、外部のIPS/RTLSと連携して動作するIPSアプリケーション・テンプレート『QuickIPS』及び 『TPC_IPS Web API』 も順次リリースを予定しています。


IPSとは

  小社では屋内測位システム(TPC_IPS)の開発を行っています。 IPSとは一言で言い表すと屋内用GPSであり、屋内に存在する人やモノの位置を把握するシステムです。屋内や地下では、GPS等の衛星技術では位置測位が不能であったり、十分な測位精度を出せなかったりするため、屋内で位置測位をおこなうシステムがIPS(Indoor Positioning System)であり、IoT(Internet of Things)技術の1つでもあります。

  図は倉庫におけるIPSのイメージで、ビーコンやタグと呼ばれる発信機を人やモノに取り付け、ビーコンが発する信号() を受信端末 で読み取り()、この信号情報をコンピュータで解析することにより各ビーコンの位置を測位します。この測位情報はネットワークを介して社内あるいは社外のユーザが照会することができます。 下図のように多くのモノを管理するIPSは、Asset Tracking システム(資産管理システム)と呼ばれることもあります。

【IPS/Asset Tracking システムのイメージ】

FileMaker によるIPS用ユーザアプリケーション

 下図はIPSのシステム構成例です。この例では、IPSが位置測位ユーザアプリケーションの2つのシステムに分かれています。位置測位は文字通り、各ビーコンの座標を算出します。 小社製品・TPC_IPS では2021年5月現在、BLE4のビーコンを使用して測位を行っていますが、 最近では AirTag で採用された UWB が注目されています。今後は単なる忘れ物タグにとどまらない IPS/Asset Tracking用のUWB製品が市場に現れるものと期待されます。
注:
 UWB IPS製品には UbisenseZebra といったものが以前からありますが非常に高価なため、導入は一部の大企業等に留まっていました。AirTag や SmartTag の出現は、低価格UWB IPS の普及に貢献するかもしれません。

TPC_IPSの位置測位については過去に記事(末尾のリンク参照)にしていますので、本稿では FileMaker を使用したユーザアプリケーション・テンプレート ― QuickIPS― の概要をご紹介します。

注:
QuickIPS は TPC_IPS にバンドルされますが、単体として2022年春にリリース予定です。

※ QuickIPS の仕様・予定等は、予告無く変更されることがあります。

【IPS構成図】
注:
上図の構成例ではビーコン/タグを物品に取り付け、センサーを経由してサーバで位置測位を行いますが、これはAsset Tracking (資産管理)等で見られる方式です。一方、携帯電話端末等にアプリケーションをインストールし、ビーコン/タグを屋内の特定の場所に固定、端末のアプリで端末ユーザの測位計算を行う方式もあります。こちらはよりGPS的なIPSとなります。

代表的なユーザアプリケーション

 上図のように各ビーコンやタグの情報はサーバ機に送られ、サーバ機はその情報に基づき位置情報を算出し、さらにその位置情報はビーコン(タグ)のIDと共にデータベースに蓄積されます。
 ユーザアプリケーションはデータベースの位置情報データにアクセスし、ユーザの要求仕様に基づきデータを加工してPCやスマホ上に表示します。代表的なユーザアプリケーションとして、以下の3つが挙げられます。
  1. フロアマップ ― 人・モノの位置をフロアマップ図上に表示
  2. ヒートマップ ― 人の滞留情報を表示
  3. 動線追跡 ― 人・モノの移動を線で表示
 このうち1と2については FileMaker 単体で作成が可能です。 QuickIPS はこの2つを実装した、ユーザによるカスタマイズが可能なテンプレートです。

 尚、動線追跡(オブジェクトトラッキング)は、QuickIPS と TPC_IPS の次々バージョンで搭載する予定です。動線追跡については、本Blogの別稿を参照してください。

QuickIPS デモビデオ

QuickIPS の概要を11分程のビデオにまとめました。


なぜ FileMaker なのか?

   理由は他のツールに比べ少ない工数で、グラフィカルなアプリを作成できるからです。IPSユーザアプリケーションのプロトタイプ開発にも適しています。 以下では、QuickIPS の諸機能を詳しくご紹介します。

散布図グラフを用いたフロアマップ

 下図は FileMaker の散布図グラフ機能を使用したビーコン位置を表示するフロアマップです。 予め位置情報表示用のマップ(画像ファイル)を用意しておき、FileMakerのレイアウト上に取り込み、そのマップ上に散布図グラフを配置しています。
 この方法はメリットは、後述する座標データを丸める必要が無いこと、作成が簡単なことですが、ビーコンが近接して検知されるとビーコン名が重なったり、細かいビーコン情報を表示できない点が難点です。

複数ビーコンが近接して検知されると、ビーコン名が重なってしまう

オブジェクトを用いたフロアマップ

 この方式はユーザが予め定めた座標(定点座標)にSVGスポットアイコン()やビーコン情報オブジェクトを配置しておき、測位されたビーコンの情報をこれらのオブジェクトを使用して表示します。
  散布図方式と異なり、同一座標上の複数ビーコンを表示したり、実座標と異なって表示されているビーコンを赤く表示したり、表示フォントの大きさを変更したり(◀ A ▶ を使用)と、機能をカスタマイズできます。

外部システムを使用する際の測位座標の"丸め"

 TPC_IPS の測位機能は、ビーコン座標を定点座標丸めて算出することができます。
 しかし外部システムと QuickIPS を併用する場合は、外部システムでこの丸め処理を行う必要があります。

例:
図のように定点座標(×)を定めたとします。この時、外部システムが以下のようにビーコンを検知したとします。括弧内はx,y座標です。

<外部システムによる測位座標>
 
ビーコンA(0.2, 1.1)
ビーコンB(3.2, 3.6)
ビーコンC(1.5, 2.1)

 この時、各測位座標から最も近い定点座標(×)を各ビーコンの座標と決定します(丸め処理)。ビーコンA(0.2, 1.1)は定点座標(1, 1)に丸め、B(3.2, 3.6)に(3, 3)に、C(1.5, 2.1)は定点座標(2, 2)に丸めます。
注:
 最も近い定点座標(最近傍点)を求めるにはプログラムを自作する手もありますが、K-nearest neighbor(k = 1)のライブラリがあれば、これを使用すると楽ちんと思います。FileMakerで knn なカスタム関数を作成し、外部データベースからデータを取り込む際にこの関数を当てて丸め処理を行うことも可能かもしれませんが、かなり大変と思います。 Brian Dunning氏のカスタム関数公開サイトにはknnなカスタム関数は見当たりませんでした。
 ちなみに TPC_IPS の測位アルゴリズム・TCOTは三点測位的な座標算出を行うため、元の測位座標は定点座標とはほぼ100%一致しません。このため TCOT実行時に、scikit-learn の KNeighbors により定点座標に丸めるオプションを用意しています。

オブジェクトを用いたヒートマップ

 ヒートマップは、人・モノが多く集まる場所を色分けして表示します。ヒートマップも測位座標の丸めを行う必要があります。

青、黄色、赤の順で人・モノの密集度を表示

エラーグラフ

 エラーグラフは静止した状態のビーコンの実座標と測位座標との誤差を折れ線グラフで表示します。 この機能は測位システムの技術担当者が、測位の精度を調べる際に有用な機能となります。

横軸がスキャン実行時刻、縦軸に誤差、誤差値が小さい程、測位精度は高い
 
 グラフに表示するビーコンをピッカー(後述)で選択すると、[Time]で指定した時間の範囲内で測位誤差が縦軸に表示されます。

 IPS導入テスト時には、運用に耐えうる測位精度が得られるかチェックを行いますが、本機能はその際に有用です。 また、屋内環境の変化によっても測位精度は変化するため、適時この機能を使用し、測位精度をチェックするようにします。

注:
 AUTOモードで自動更新ボタン実行中、またはMANUALモードで更新ボタンをクリックした際は、エラーグラフは最新の測位情報により更新されます。

QuickIPS の基本操作について

 QuickIPS の基本操作について簡単に説明します。

AUTO、MANUAL、HISTORYの3モードについて


 QuickIPS には AUTO、MANUAL、HISTORY の3つのモードがあります。各モードは、下図の"実行モード"をクリックしてプルダウンメニューから選択します。

AUTOモード

ボタンが画面右上に表示されるので、これをクリックするとフロアマップ、ヒートマップ、エラーグラフを最新のデータにより自動的更新します。■をクリックすると、自動更新を停止します。

MANUALモード

 このモードはAUTOモードとは異なり、自動更新されません。最新情報で更新するには、画面右上に表示されるをクリックします。

HISTORYモード

 このモードでは過去の座標データを基にフロアマップ、ヒートマップ、エラーグラフを表示することができます。

ヘッダ部

 画面上部のヘッダー部の操作方法について説明します。

サブメニューボタン

クリックするとポップアップメニューが表示されるので、以下を選択。

Scatter map(散布図グラフを使用したフロアマップ)
Floor map(オブジェクトを使用したフロアマップ)
Heatmap(ヒートマップ)
Error graph(距離誤差グラフ)
実行モード

上述のAUTO、MANUAL、HISTORYから選択。

Time ScanCode (YYMMDDMMDDSS形式、スキャンを実行した日時)を範囲指定する。
注:
ScanCode はTPC_IPS を使用する際は自動的生成される。
ScanCodeナビゲーション

[Time]で指定した範囲で、ScanCode 間を移動・選択するためのボタン群
 |<:最初へ移動
 >:  次へ移動
 <:  前へ移動
 >|:最後へ移動

ピッカーボタン 対象となるビーコン及び ScanCode を選択するためのピッカー・フローティングウインドウ(後述)を表示。
エラーサマリーボタン 測位誤差の詳細を表示するエラーサマリー・フローティングウインドウ(後述)を表示。

ピッカー フローティング ウインドウ

 本ウインドウは、フロアマップ、ヒートマップ、エラーグラフで対象とするビーコンや ScanCode を選択するためのウインドウです。本ウインドウは×ボタンで閉じられるまで、常に最前面に表示されます。


ビーコンリストビーコン一覧、クリックで選択あるいは選択解除。選択中のビーコンはピンクで表示される。 選択されたビーコンは、フロアマップの表示対象となる。Error Graph(測位誤差グラフ) で表示されるビーコン数は6つまで。
ビーコン名書式

クリックすると、フロアマップに表示されるビーコン名の書式が切り替わる。
Name: ビーコン名のみ表示
M-M/Name: Major-Minor及びビーコン名を表示

All ボタン

全ビーコンを選択

None ボタン

全てのビーコンの選択を解除

ScanCodeリスト

[Time]で指定された範囲内の ScanCode の一覧。クリックして選択すると、その ScanCode を持つ座標データに基づき、フロアマップとヒートマップが表示される。

エラーサマリー フローティングウインドウ

 エラーサマリーフローティングウインドウは、ピッカーを使用して選択したビーコンの測位誤差のサマリーを表示します。エラーグラフの折れ線は一度に表示できるビーコン数は6つ迄でしたが、このサマリーには選択できるビーコンの数に制限はありません。
 本ウインドウは×ボタンで閉じられるまで、常に最前面に表示されます。 
エラーサマリーフローティングウインドウ
エラーサマリーフローティングウインドウ
 
測位エラーサマリー 静止した状態にあるビーコンの測位誤差をビーコン毎に表示。ビーコンリストから選択されたビーコンの測位誤差の平均、最大、最小、標準偏差を表示。
最終行には選択された全ビーコンの集計値が表示される。集計対象は[Time]で指定された期間。
※ 取得データがない項目には missing が表示される。
エラー種類

エラーの種類を選択するボタン、各ボタン選択時のエラー算出式は以下の通り。
Distance: Sqrt((ax - ex)^2 + (ay - ey)^2)
Coordinates: Abs(ax - ex) + Abs(ay - ey)
注:
・ax, ay: 実座標 x, y
・ex, ey: 測位座標x, y

iPhone/iPadでの使用

 2種類のフロアマップ、ヒートマップ、エラーグラフ機能は iPhone/iPad(iOS) でも利用できます。これらの画面はPC用と同じ画面を使用していますので、工数的に有利な開発が可能です。

iPhone 上での QuickIPS
開発時はPC/iOSでの利用を意識する!

QuickIPS と外部システムとの連携

 QuickIPS には座標データを保存する locLogテーブルがあり、このテーブルのデータを抽出・加工して、上述の機能を実現しています。
 外部システムのデータベースに locLog に対応するテーブルまたはビューがあれば、それから locLogにデータを取り込み、QuickIPS の諸機能を使用することが可能となります。

locLogテーブル構成

 TPC_IPS 以外の外部データベースを使用して QuickIPS を利用する際は、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 タイムスタンプ   レコードが作成された日時

注:
  1. actual_x と actual_y は測位精度テスト時に使用する実際のビーコンの座標です。これらの値と測位された座標の値を使用し、測位誤差が算出されます。
  2. QuickIPS を使用する場合、スキャン毎に生成される scanCode が必要となります。外部システムで scanCode を生成する際は、各センサーが同一のタイミングでスキャンを実行するようにし、スキャン毎に同一の値(YYMMDDHHMMSS)を scanCode に設定してください。例えば、2022/1/1 0:0:0秒にビーコン/タグ信号をスキャンした場合、センサー/受信機のクロックに関わらず、サーバ等で「220101000000」が各レコードの scanCode に入力されるようにします。

外部データベースからlocLogテーブルへのデータ取込

 上表に基づく外部データベースのテーブルデータを QuickIPS の locLog テーブルに取り込むには、以下を行います。
  1. QuickIPS を実行するコンピュータ上で、外部データベースのODBC ドライバにより、所定の DSN を登録
  2. 取り込むテーブル名と loclogテーブルに対応する外部テーブルのフィールド名を指定
  3. 外部データ取込画面で取込を実行

QuickIPS のカスタマイズについて

 前述のオブジェクトを使用したフロアマップは、FileMaker を使用することによってカスタマイズができます。
 下図の要領でカスタマイズを行います。フロアマップの操作はレイアウトモードで行います。
 まず、フロアマップ画像を用意し、フロアマップレイアウトの背景として貼り付けます(最背面)。
 
 つぎに、SVGスポットアイコン、およびビーコン情報オブジェクト(図のピンクの部分、実際は透明)は、それぞれ座標属性を持っているので、座標属性に合わせて配置を行います。 例えば(4, 8)のオブジェクトは、(4,8)のフロアマップ座標上に配置するようにします。 
 
 オブジェクトを配置する際は、配置用オブジェクトの一覧から、対象となるオブジェクトをマウスで選択し、フロアマップレイアウト上にドラッグすることによって配置することができます。下図の例では、 座標(4, 8) のオブジェクト(X-Y が 4-8で示されている)をマウスでドラッグする様子を赤囲みで示したものです。
 SVG スポットアイコンも同様にドラッグコピーで配置します。
 
  大規模施設のフロアマップを作成する場合は、フロアマップ画像を分割し、レイアウト、タブ、スライドを複数作成して、分割したマップをそれぞれに取り込むようにします。

 QuickIPS は FileMaker テンプレートとして単体リリースする予定です。
※ QuickIPS の仕様・予定等は、予告無く変更されることがあります。

 以上
 NuckyT

IPS関連のBlog記事

IPS関連のBlog記事