Find Hub の高精度な検出

Find Hub Precision Finding(FHPF)仕様には、距離測定技術をサポートするデバイスで Google の「デバイスを探す」アプリを使用して高精度測位機能をサポートするための実装要件が含まれています。

高精度測位の種類は、高精度測位に関与するデバイスでサポートされている測距技術の種類によって異なります。サポートされている測距テクノロジーについては、測距: 帯域外メッセージ シーケンスとペイロードの仕様をご覧ください。以降のセクションでは、使用される測距テクノロジーに基づいて、どのような精度の高い検索エクスペリエンスが期待できるかについて説明します。

Find Hub ネットワーク アクセサリ

この仕様は、Find Hub Network Accessory(FHNA)仕様の拡張版です。FHNA ドキュメントで定義されている GATT 特性と認証に関する同じルールが、ここでも適用されます。このドキュメントでは、FHNA 仕様の既存のオペレーションに加えて、新しいオペレーション タイプを定義します。

Ranging Technologies 固有のペイロード

この仕様では、個々のオペレーションの Additional Data フィールドに含まれる測距技術固有のペイロードを定義する Ranging: Out-of-band message sequence and payload 仕様も参照しています。

高精度な検索フロー

このセクションでは、高精度測位の FHNA メッセージ フローについて説明します。図 1 はメッセージのフローを示しており、各メッセージについては段落で詳しく説明しています。

高精度測位のメッセージ フロー

図 1: 一般的な高精度検索のメッセージ フロー

イニシエーター デバイスは、Find Hub アプリがインストールされており、高精度測位機能が有効になっているデバイスです。イニシエータは、別のデバイスを検索しようとしているデバイスです。

レスポンダー デバイスは、イニシエーター デバイスによって検出されようとしているデバイスです。

イニシエータ デバイスは、レンジング機能リクエスト メッセージをレスポンダ デバイスに送信します。このメッセージには、レスポンダ デバイスから知りたいレンジング技術がリストされます。レスポンダー デバイスは、どの測距テクノロジーがサポートされているか、その機能に関する情報を含む Ranging Capability Response 通知で応答します。レスポンダーは、イニシエータがリクエストした情報のみを含めます。機能のリストは、レスポンダー デバイスが優先する測距テクノロジーの優先度に基づいて並べ替えられます。リストの先頭にあるものが最も優先度が高くなります。

イニシエータ デバイスは、レンジング構成メッセージでフォローアップします。このメッセージでは、レンジングに使用する各レンジング テクノロジーの構成を定義します。このメッセージを受信すると、レスポンダー デバイスは、提供された構成を使用して、該当するテクノロジーの測距を開始する必要があります。レスポンダー デバイスは、個々の測距テクノロジーが正常に開始されたかどうかの結果を含む、測距構成レスポンス通知を返送します。一部の測距テクノロジーでは、測距セッションを成功させるために、イニシエータ デバイスとレスポンダ デバイスの両方で開始する必要があります。一方、他のテクノロジーでは、イニシエータ デバイスでのみ開始する必要がありますが、レスポンダ デバイスは成功結果を返信する必要があります。特定の測距技術の動作については、後述のセクションで詳しく説明します。

イニシエータ デバイスが精密検索セッションを停止する準備ができたら、レスポンダに Stop Ranging メッセージを送信し、どの測距テクノロジーが測距を停止しなければならないかを示します。Responder デバイスは、Stop Ranging Response 通知で応答し、リクエストされた測距テクノロジーによる測距が正常に停止したことを示します。

FHNA BLE GATT 通信チャネルが Precision Finding セッションの途中で切断されたが、一部の測距テクノロジーがまだ測距している場合、レスポンダー デバイスはタイムアウト メカニズムを実装して、無期限に測距しないようにします。詳細はユースケースによって異なります。

なお、レスポンダー デバイスは、オペレーションの順序が常に同じであると想定してはなりません。たとえば、レスポンダー デバイスは、複数の Ranging Capability リクエスト オペレーションを連続して処理できる必要があります。また、先行するケーパビリティ リクエストなしで直接 Ranging Configuration オペレーションを実行できる必要があります。

運用

表 1 に、このドキュメントで定義され、高精度測位に必要な FHNA オペレーションを示します。各サブセクションでは、各オペレーションの FHNA メッセージを定義します。一方、追加データ フィールドの内容は、測距: 帯域外メッセージ シーケンスとペイロード仕様を参照します。

表 1: オペレーション

オペレーション データ ID 説明
測距機能リクエスト 0x0A イニシエータ デバイスからレスポンダ デバイスに送信されるケーパビリティ リクエスト オペレーション。このオペレーションのデータ コンテンツには、イニシエーターがレスポンダー デバイスから知りたいすべての測距テクノロジーがリストされます。
Ranging Capability Response 0x0A これは、Ranging Capability Request オペレーションに対する通知レスポンスです。イニシエータによってリクエストされた、サポートされている各測距テクノロジーの機能に関する情報が含まれます。
測距構成 0x0B Ranging Configuration オペレーションには、イニシエータ デバイスがレスポンダー デバイスとの距離測定を開始するために必要な距離測定テクノロジーの構成が含まれます。
Ranging Configuration Response 0x0B これは、Ranging Configuration オペレーションに対する通知レスポンスです。提供された構成に基づいて、Responder デバイスがリクエストされた測距テクノロジーで測距を正常に開始したかどうかに関するデータが含まれます。
RFU 0x0C このデータ ID を使用するオペレーションは使用されず、将来の使用のために予約されています。
測距を停止 0x0D イニシエータ デバイスから送信される Stop Ranging オペレーションには、レスポンダー デバイスが測距を停止する必要がある測距テクノロジーに関する情報が含まれています。
Stop Ranging Response 0x0D これは、Stop Ranging オペレーションに対する通知レスポンスです。特定の測距テクノロジーの停止オペレーションが成功したかどうかを示すデータが含まれます。

Ranging Capability Request メッセージ

表 2 は、Ranging Capability Request メッセージを定義しています。

表 2: 測距機能のリクエスト

オクテット データ型 説明
0 uint8 データ ID 0x0A - 距離測定機能リクエスト オペレーション
1 uint8 データ長 可変
2 バイト配列 ワンタイム認証キー HMAC-SHA256(アカウントキー、プロトコルのメジャー バージョン番号 || 特性から読み取られた最後のノンス || データ ID || データ長 || 追加データ) の最初の 8 バイト。
10 バイト配列 追加データ Ranging: Out-of-band message sequence and payload 仕様で定義されているRanging Capability Request メッセージ(ヘッダーとペイロードの両方)

Ranging Capability Response メッセージ

表 3 は、Ranging Capability Response メッセージを定義しています。

表 3: 測距機能のレスポンス

オクテット データ型 説明
0 uint8 データ ID 0x0A: 測距機能のレスポンス
1 uint8 データ長 可変
2 バイト配列 ワンタイム認証キー HMAC-SHA256(アカウントキー, プロトコルのメジャー バージョン番号 || 特性から読み取られた最後のノンス || データ ID || データ長 || 追加データ || 0x01) の最初の 8 バイト。
10 バイト配列 追加データ 測距: 帯域外メッセージ シーケンスとペイロード仕様で定義されている測距機能レスポンス メッセージ(ヘッダーとペイロードの両方)

Ranging Configuration メッセージ

表 4 は、Ranging Configuration メッセージを定義しています。

表 4: 測距構成

オクテット データ型 説明
0 uint8 データ ID 0x0B - 測距構成を設定
1 uint8 データ長 可変
2 バイト配列 ワンタイム認証キー HMAC-SHA256(アカウントキー、プロトコルのメジャー バージョン番号 || 特性から読み取られた最後のノンス || データ ID || データ長 || 追加データ) の最初の 8 バイト。
10 バイト配列 追加データ Ranging: Out-of-band message sequence and payload 仕様で定義されている Ranging Configuration メッセージ(ヘッダーとペイロードの両方)

Ranging Configuration Response メッセージ

表 5 は、測距構成レスポンス メッセージを定義しています。

表 5: Ranging Configuration Response

オクテット データ型 説明
0 uint8 データ ID 0x0B - 距離測定構成応答を設定
1 uint8 データ長 可変
2 バイト配列 ワンタイム認証キー HMAC-SHA256(アカウントキー, プロトコルのメジャー バージョン番号 || 特性から読み取られた最後のノンス || データ ID || データ長 || 追加データ || 0x01) の最初の 8 バイト。
10 バイト配列 追加データ 測距: 帯域外メッセージ シーケンスとペイロード仕様で定義されている測距構成レスポンス メッセージ(ヘッダーとペイロードの両方)

Stop Ranging メッセージ

表 6 は、Stop Ranging メッセージを定義しています。

表 6: Stop Ranging

オクテット データ型 説明
0 uint8 データ ID 0x0D - 測距停止
1 uint8 データ長 可変
2 バイト配列 ワンタイム認証キー HMAC-SHA256(アカウントキー、プロトコルのメジャー バージョン番号 || 特性から読み取られた最後のノンス || データ ID || データ長) の最初の 8 バイト。
10 バイト配列 追加データ Ranging: Out-of-band message sequence and payload 仕様で定義されている Stop Ranging メッセージ(ヘッダーとペイロードの両方)

Stop Ranging Response メッセージ

表 7 は、Stop Ranging Response メッセージを定義しています。

表 7: Stop Ranging Response

オクテット データ型 説明
0 uint8 データ ID 0x0D - 距離測定停止レスポンス
1 uint8 データ長 可変
2 バイト配列 ワンタイム認証キー HMAC-SHA256(アカウントキー, プロトコルのメジャー バージョン番号 || 特性から読み取られた最後のノンス || データ ID || データ長 || 追加データ || 0x01) の最初の 8 バイト。
10 バイト配列 追加データ 測距: 帯域外メッセージ シーケンスとペイロード仕様で定義されている測距停止レスポンス メッセージ(ヘッダーとペイロードの両方)

不審なトラッキングの防止

FHNA 仕様に記載されているように、望ましくないトラッキング保護モードが有効になっている場合、着信メッセージの認証チェックをスキップする際に適用されるフローが、このドキュメントで定義されているすべての高精度測位メッセージにも適用されます。この機能をサポートするデバイスが対象です。

FHNA 仕様より:

プロバイダが FHNA ビーコンとしてプロビジョニングされていない場合や、検証に失敗した場合は、認証されていないエラーが返されます。ただし、プロバイダで不要なトラッキング防止が有効になっており、不要なトラッキング防止をトリガーするリクエストで着信認証スキップ フラグがオンになっている場合、プロバイダはそのチェックをスキップする必要があります。認証データは引き続き Seeker によって提供されることが想定されますが、任意の値に設定できます。

測距技術の詳細

このセクションには、測距テクノロジーに固有の詳細が含まれています。

超広帯域無線(UWB)の詳細

UWB 固有の詳細。

高精度測位のレベル

測距技術として UWB を使用する高精度検出セッションでは、距離と方向の両方の情報が表示されることが想定されます。測距間隔は 240 ミリ秒以上にする必要があります。最適なガイダンスを得るには 96 ミリ秒が推奨されます。

構成 ID

UWB 用に交換される帯域外構成データには、UWB 測距セッションを開始するために UWB が必要とする構成可能なパラメータの完全なセットが含まれていません。一部のパラメータは、選択した構成 ID によって暗黙的に選択されます。

各 config ID は、公開されている事前定義された UWB 構成パラメータのセットです。高精度ファインダーのユースケースでは、レスポンダー デバイスは config Id 6 をサポートしている必要があり、オプションで config Id 3 をサポートしている必要があります。

UWB イニシエータとレスポンダ

高精度ファインダーのユースケースでは、このドキュメントでイニシエータ デバイスとして記載されているデバイスが UWB レスポンダとなり、このドキュメントでレスポンダ デバイスとして記載されているデバイスが UWB イニシエータとなります。これは、UWB イニシエータ デバイスの消費電力が UWB レスポンダ デバイスよりも少ないためです。また、ほとんどの場合、レスポンダ デバイスはバッテリーが限られた周辺機器になります。

つまり、レスポンダー デバイスは、レンジング機能レスポンス メッセージで UWB イニシエータ ロールをサポートしていることを示す必要があります。

  • チャンネル 9 がサポートされている必要があります
  • 最適なガイダンスのためには、96 ミリ秒の測距間隔が推奨されます。それ以外の場合は、240 ミリ秒をサポートする必要があります。
  • バッテリー節約のためには 1 ミリ秒のスロット期間が推奨されますが、2 ミリ秒もサポートされています。
  • UWB チップは、少なくとも FIRA v1.2 + P-STS に準拠している必要があります。
  • BPRF は必須ですが、HPRF は推奨されるオプションです。サポートされているモードまたは選択されているモードは、サポートされているプリアンブル インデックスまたは選択されているプリアンブル インデックスによって決まります。
  • セッション セキュリティ タイプ: P-STS

BLE チャンネル サウンディング(CS)の詳細

BLE CS 固有の詳細。

高精度測位のレベル

CS を測距技術として使用する正確な位置情報のセッションでは、距離のみが測定されます。現時点では方向性は提供されません。

デバイス間の必要なペア設定

デバイスがペア設定されていない場合、チャンネル サウンディングを使用した高精度測位セッションは機能しません。イニシエータ デバイスとレスポンダ デバイス間の既存のボンドが必要です。この仕様では、デバイス間のボンドを作成する方法は提供されていません。代わりに、デバイス間のこのバインドを確立するのはユースケースのデベロッパーの責任となります。

CS の回答者側で必要な対応

UWB では、両方のデバイスが UWB の距離測定の開始と停止の API を明示的に呼び出す必要がありますが、CS では、イニシエータ デバイスのみが Bluetooth スタックを呼び出して CS の距離測定を開始する必要があります。レスポンダ側の残りの初期化は、Bluetooth(BT)を使用してインバンドで行われます。つまり、CS の Ranging Configuration メッセージまたは Stop Ranging メッセージを受信したときに、BT が有効になっている場合、レスポンダー側は Ranging Configuration Response メッセージ通知で応答する以外に何もする必要はありません。レスポンダ デバイスは、これらのメッセージをトリガーとして使用して、画面がある場合は UI を更新したり、画面の有無にかかわらず、デバイスの状態に関する視覚的なフィードバック(デバイスの LED を点滅させるなど)に使用したりする可能性があります。

Wi-Fi NAN RTT

Wi-Fi NAN RTT の詳細。

高精度測位のレベル

測距技術として Wi-Fi NAN RTT を使用する高精度検索セッションでは、距離のみが測定されます。現時点では方向は提供されません。

BLE RSSI

BLE RSSI の詳細。

高精度測位のレベル

BLE RSSI のみを測距技術として使用する高精度測位セッションでは、BLE RSSI は正確な測距技術ではないため、距離情報も方向情報も取得できません。代わりに、デバイスが近いか遠いかを示すガイダンスが表示されます。