屋内測位はBluetoothビーコンの最も価値のあるアプリケーションの一つです。GPS信号はコンクリート天井の下で減衰し、ビーコンベースのシステムが屋内の主要な代替手段となります。本記事では、2つの主要な測位アルゴリズム — RSSI三辺測量とフィンガープリント方式 — を実測精度データと導入トレードオフとともに比較します。

RSSIとパスロス

すべてのビーコン測位は受信信号強度指示(RSSI、dBm単位)に依存します。RSSIと距離の基本関係は対数正規パスロスモデルに従います:

RSSI(d) = A - 10 * n * log10(d)

各パラメータ:

  • A:1m基準距離でのRSSI(CR2032駆動ビーコンで通常-60〜-70 dBm)
  • n:パスロス指数(自由空間2.0、オフィス環境2.7〜3.5、障害物の多い工業空間4.0以上)
  • d:距離(メートル)

距離の計算:

d = 10 ^ ((A - RSSI) / (10 * n))

課題:RSSIはマルチパスフェージング、人体吸収、アンテナ向きにより屋内環境で±5〜8 dBm変動します。5 mでの6 dBm誤差は40〜60%の距離誤差に変換され、生の単一ビーコン測距は信頼性に欠けます。

アプローチ1:三辺測量

三辺測量は少なくとも3つのビーコンからの距離円の交点から位置を推定します。各ビーコンは上記パスロス式で距離推定値を提供します。

アルゴリズム

  1. 各可視ビーコンからRSSIを収集(ノイズ低減のため5〜10サンプル平均)
  2. 較正済みパスロスモデルでRSSIを距離に変換
  3. 距離円の最小二乗交点を求解

ビーコン位置(xi, yi)、推定距離diの場合、目標位置(x, y)は以下を最小化します:

F(x,y) = Σ [(x - xi)² + (y - yi)² - di²]²

この非線形最小二乗問題は通常ガウス・ニュートン反復で解きます。初期推定にはビーコン位置の重心を使用できます。

精度ベンチマーク

12m × 8mオフィス空間、天井設置6ビーコン、CR2032駆動、0 dBm / 100ms送信での実測:

シナリオ 可視ビーコン 中央値誤差 90パーセンタイル
オープンオフィス 4–5 1.8 m 3.5 m
キュービクルエリア 3–4 2.6 m 5.1 m
廊下 2–3 3.2 m 6.8 m
身体遮蔽あり 3–4 4.1 m 8.3 m

可視ビーコンが3未満の場合やユーザーの体が視線経路を遮る場合、精度は著しく低下します。

較正要件

三辺測量はビーコンごとのパスロスパラメータ(A, n)の較正が必要です。実用的な較正手順:

  1. 各ビーコンから1 mの位置に基準受信機を設置、100 RSSIサンプル記録、中央値計算 → A値
  2. 2 m、5 m、10 mでRSSIを測定
  3. log10(d) vs RSSIの線形回帰でnをフィッティング
  4. 四半期ごとに再較正 — バッテリー電圧低下によりビーコンライフサイクル中にTX電力が1〜3 dBmシフト

アプローチ2:フィンガープリント方式

フィンガープリント方式は距離推定ステップを完全にバイパスします。代わりに、オフライン調査フェーズで空間のラジオマップを構築し、ライブRSSI観測をこのマップと照合します。

オフラインフェーズ(調査)

  1. 床平面をグリッドに分割(通常1〜2メートル間隔)
  2. 各グリッドポイントで全可視ビーコンから10〜30秒間RSSI収集
  3. RSSIベクトルとビーコンIDリストをフィンガープリントとして保存

1000 m²の床で1 mグリッド間隔では約1000フィンガープリント。各フィンガープリントは5〜15ビーコンのRSSI値とメタデータ(タイムスタンプ、向き)を含みます。

オンラインフェーズ(測位)

最も一般的なマッチングアルゴリズムは重み付きK近傍法(WKNN)です:

  1. 可視ビーコンからライブRSSIベクトルを収集(2〜5秒窓)
  2. 全フィンガープリントとの類似度(ユークリッド距離またはタニモト係数)を計算
  3. K個の最も近いフィンガープリントを選択(K=3〜5が典型的)
  4. 距離の逆数で重み付けし、位置の重み付き重心を計算

精度ベンチマーク

同一12m × 8mオフィス空間、6ビーコン、1 mグリッド間隔、WKNN K=4:

シナリオ 中央値誤差 90パーセンタイル 調査時間
オープンオフィス 1.1 m 2.3 m 2.5時間
キュービクルエリア 1.5 m 3.0 m 3.0時間
廊下 1.3 m 2.8 m 1.5時間
身体遮蔽あり 2.0 m 4.2 m

フィンガープリント方式はマルチパスが支配的なクラッタ環境で特に、中央値誤差で三辺測量を30〜50%上回ります。ラジオマップはパスロスモデルが表現できないマルチパスパターンを暗黙的にキャプチャします。

直接比較

要因 三辺測量 フィンガープリント
精度(中央値) 1.8–4.1 m 1.1–2.0 m
セットアップ時間 ビーコンあたり~30分 階あたり2〜4時間
ビーコン再配置 A,nの再較正 全再調査
環境変化 段階的劣化 再調査が必要
計算コスト 低(行列求解) 中(KNN探索)
スケーラビリティ 優秀 DB線形増大
最小ビーコン数 3 4+推奨

ハイブリッドアプローチ

本番システムは両手法を組み合わせることが多いです。一般的なハイブリッドパイプライン:

  1. 三辺測量で粗位置推定を取得(3〜5 m精度)
  2. 三辺測量推定の5 m半径内にフィンガープリントマッチングを制限
  3. この縮小検索空間内でWKNNを適用

フィンガープリントDB検索を~1000エントリから~50に削減し、計算時間を80%短縮しながらフィンガープリントレベルの精度を維持します。

ビーコン密度と配置

測位精度はビーコン配置に大きく依存します。主要ガイドライン:

  • 密度:1〜2 m精度でビーコン25〜50 m²あたり1個、3〜5 m精度で100 m²あたり1個
  • 設置高:2.5〜3.0 m天井設置が最適なカバレッジ均一性を提供
  • 配置:直線配置を避ける。三角形/六角形テセレーションが精度の幾何学的劣化(GDOP)を最小化
  • TX電力:屋内測位では+4〜0 dBm。高電力は干渉増大、低電力は範囲が有用閾値を下回る
  • アドバタイズ間隔:リアルタイム追跡100 ms、定期監視300〜500 ms。100 ms未満はCR2032を2〜3ヶ月で消費

フィルタリングと平滑化

生の測位推定は大幅にジッターします。カルマンフィルタやパーティクルフィルタが軌跡を平滑化します:

  • カルマンフィルタ:ユーザー運動を等速モデル化。最小計算で90パーセンタイル誤差を20〜30%削減。状態ベクトル:[x, y, vx, vy]。
  • パーティクルフィルタ:非線形運動とマルチモーダル位置分布をより良く処理。500〜1000パーティクルで5 Hz更新レートのスムーズ追跡を提供。
  • マップ制約:フィルタ後位置を歩行可能エリア(壁、障害物を除外)にクランプ。物理的に不可能なジャンプを排除。中央値誤差を追加で10〜15%削減。

一般的な導入ミス

  • ビーコン数不足:ゾーンあたり2〜3ビーコンのみ配置。三辺測量は3+可視が必要、フィンガープリントは4+が堅牢なマッチングに有益。
  • 向きの無視:人体は2.4 GHz信号を10〜20 dB減衰。一方向のみでフィンガープリントを収集すると、ユーザーが別方向を向いた際に系統バイアスを生む。
  • 古いフィンガープリント:家具再配置、新規パーティション、季節変化(湿度が2.4 GHz伝播に影響)がラジオマップを無効化。四半期再調査をスケジュール。
  • 未較正TX電力:部品公差によりビーコンTX電力は±3 dBm変動。ビーコンごとに測定・補正しないとフィンガープリントが誤差を引き継ぐ。
  • 過剰フィルタリング:過度の平滑化はシステムの遅延感を生む。良いルール:フィルタ時定数は歩行速度アプリで1秒を超えないこと。

結論

ほとんどの屋内Bluetoothビーコン測位導入において、WKNNマッチングによるフィンガープリント方式は三辺測量より30〜50%優れた精度を提供しますが、セットアップ時間が長くなります。ハイブリッドアプローチ — 粗推定に三辺測量、精緻化にフィンガープリント — が精度、計算量、保守性の最適バランスを提供します。アルゴリズムの選択に関わらず、ビーコン密度、配置、個体較正がアルゴリズム選択自体よりも重要です。