プレゼンス キャリブレーション

このページでは、Android 14 以降を搭載したデバイスにおけるプレゼンス キャリブレーション要件のセットアップとキャリブレーションの手順について説明します。

背景

ユーザーのスマート デバイスが適切に連携するためには、Android エコシステム内のすべてのデバイスがデバイス間の相対的な近接性を判別できることが重要です。Android 14 では、近接性の判別に使用できる無線技術(UWB、Wi-Fi、BLE など)の許容可能なパフォーマンスの概要を規定するプレゼンス キャリブレーション要件が導入されています。このページでは、エコシステム内のデバイス間の相互運用性を確保するために、デバイスが満たす必要があるキャリブレーション基準について説明します。

参照デバイス

プレゼンス要件を満たすようにデバイスを調整するには、すべてのキャリブレーションで以下の参照デバイスのいずれかを使用します。

  • (推奨)Google Pixel
  • Google Pixel を使用しない場合は、テストするデバイスと同じメーカーの同じモデルのデバイス

フォーム ファクタ

プレゼンス キャリブレーションはすべての Android デバイスのフォーム ファクタにおいて重要です。スマートフォン以外のフォーム ファクタの場合、デバイス用の適切なキャリブレーションのセットアップを決定するには、スマートフォン(参照デバイス)を持っているユーザーがテスト対象デバイス(DUT)を操作する際にどのような位置にいるかを考慮する必要があります。たとえば、テレビをキャリブレーションするときは、テレビとスマートフォンを適切な距離に置き、モバイル デバイスがテレビ画面の中央を向くようにします。

UWB 要件

このセクションでは、CDD の次の UWB 要件を満たすようにデバイスを調整する方法について説明します。

7.4.9 UWB

デバイス実装に UWB ハードウェアが含まれる場合、実装には以下の要件が適用されます。

  • [C-1-6] 見通せる環境において、無反射チャンバー内の 1 m の距離で測定した測定値の 95% で、距離の測定値が +/-15 cm 以内になるようにしなければなりません。
  • [C-1-7] 参照デバイスから 1 m の距離で測定した値の中央値が [0.75 m, 1.25 m] 以内になるようにしなければなりません。この場合、グラウンド トゥルースの距離は、上を向けて 45 度傾けた DUT の上端から測定します。

UWB キャリブレーションのセットアップ

UWB 要件を満たすようにデバイスを調整するには、次のようにセットアップします。

一般的なセットアップ要件

  • UWB ハードウェアを備えたデバイスが 2 台必要です(DUT として 1 台、参照デバイスとして 1 台)。

  • デバイスを保持するための三脚が 2 台必要です。

  • DUT と参照デバイスは、無反射チャンバー内の見通せる環境において 1 m 離して配置してください。画面が互いに背を向ける状態で両デバイスを縦向きに配置してください。

UWB キャリブレーションのセットアップの例を図 1 と動画 1 に示します。

BLE キャリブレーションの参照セットアップ

図 1. UWB キャリブレーションの参照セットアップ。

動画 1. UWB キャリブレーションの参照セットアップ。

要件 [C-1-6] と [C-1-7]

要件 [C-1-6] と [C-1-7] への準拠を検証するには、距離測定のための RangingMeasurementTest#test_distance_measurement_accuracy マルチデバイス CTS テストケースを実行します。これは手動 CTS テストです。

run cts -m CtsUwbMultiDeviceTestCase_RangingMeasurementTests -t RangingMeasurementTest#test_distance_measurement_accuracy

CTS ホストマシンに接続されたデバイスが 3 台以上ある場合は、DUT ID と参照デバイス ID を run cts コマンドで指定します。

run cts -m CtsUwbMultiDeviceTestCase_RangingMeasurementTests -t RangingMeasurementTest#test_distance_measurement_accuracy --shard-count 2
-s DUT_ID -s REFERENCE_DEVICE_ID

マルチデバイス CTS テストケースは、DUT と参照デバイスの間で UWB 距離測定セッションを開始し、DUT で 1,000 回の測定を行います。その後テストは、以下の手順で自動的に測定値を処理し、デバイスの合否を判定します。

  1. 1,000 個の測定値を昇順で並べ替えます。
  2. [範囲 = 975 番目の測定値 - 25 番目の測定値] として範囲を計算します。
  3. マルチデバイス CTS テストで範囲をレポートします。合格するには、範囲が 30 cm 未満であることが必要です
  4. マルチデバイス CTS テストで中央値(500 番目の値)をレポートします。合格するには、値が [0.75 m, 1.25 m] の範囲内にあることが必要です

Wi-Fi Neighbor Awareness Networking 要件

このセクションでは、CDD の Wi-Fi Neighbor Awareness Networking(NAN)要件を満たすようにデバイスを調整する方法について説明します(スナップショット参照)。

2.2.1. ハードウェア

デバイスが PackageManager.FEATURE_WIFI_AWARE を宣言して Wi-Fi Neighbor Awareness Networking(NAN)プロトコルをサポートし、PackageManager.FEATURE_WIFI_RTT を宣言して Wi-Fi Location(Wi-Fi ラウンド トリップ時間 - RTT)をサポートしている場合、デバイスには以下の要件が適用されます。

  • [7.4.2.5/H-1-1] WifiRttManager#startRanging Android API を介して確認した 10 cm、1 m、3 m、5 m の距離における範囲を累積分布関数で計算し、求められる精度でレポートする必要があります。必要な精度は、160 MHz 帯域幅では 68 パーセンタイルで +/-1 メートル以内、80 MHz 帯域幅では 68 パーセンタイルで +/-2 メートル以内、40 MHz 帯域幅では 68 パーセンタイルで +/-4 メートル以内、20 MHz 帯域幅では 68 パーセンタイルで +/-8 メートル以内です。

  • [7.4.2.5/H-SR] WifiRttManager#startRanging Android API を介して確認した 10 cm の距離における範囲を累積分布関数で計算し、求められる精度でレポートすることが強く推奨されます。必要な精度は、160 MHz 帯域幅では 90 パーセンタイルで +/-1 メートル以内、80 MHz 帯域幅では 90 パーセンタイルで +/-2 メートル以内、40 MHz 超の帯域幅では 90 パーセンタイルで +/-4 メートル以内、20 MHz 帯域幅では 90 パーセンタイルで +/-8 メートル以内です。

要件 [7.4.2.5/H-1-1]

要件 [7.4.2.5/H-1-1] の準拠を確認する方法は次のとおりです。

  1. DUT と参照デバイスの両方で CTS 検証ツールアプリ(CTS-V)をインストールして(まだインストールしていない場合)、開きます。この要件の CTS-V テストは [Presence Test] > [NAN Accuracy Test] にあります。

  2. DUT を参照デバイスから 10 cm(テスト距離)離して配置し、2 つのデバイスの間に何もない状態にします。

  3. 参照デバイスのテスト画面で、[Is reference device] チェックボックスがオンになっていることを確認して、[Start publishing] をタップします。

  4. DUT の CTS-V アクティビティで、テスト距離 10 cm を選択し、[Start Test] をタップします。CTS 検証ツールで 100 回の距離測定が実行され、測定した距離を計算して、CTS-V ログに記録されます。テスト完了後に、計算された距離が DUT の CTS 検証ツールアプリで想定される範囲内であることを確認します。

  5. 1 m、3 m、5 m のテスト距離でステップ 1 から 4 を繰り返します。すべてのテスト距離が想定される範囲内であれば、テストに合格します。そうでない場合は、テストに不合格となったテスト距離が CTS-V 画面に表示されます。

BLE RSSI 要件

このセクションでは CDD からスナップショットした BLE RSSI 要件を満たすようにデバイスを調整する方法を説明します。

7.4.3. Bluetooth

FEATURE_BLUETOOTH_LE を宣言する場合、デバイス実装は:

  • [C-10-1] 見通せる環境において ADVERTISE_TX_POWER_HIGH で送信する参照デバイスから 1 m の距離で測定した RSSI の 95% が、+/-9 dBm 以内でなければなりません。
  • [C-10-2] 3 つのチャンネルそれぞれのアンテナ(複数使用されている場合)での測定値の 95% が、互いに +/-3 dBm 以内になるように、チャンネルごとの偏差を低減するための Rx / Tx 調整を含める必要があります。
  • [C-10-3] ADVERTISE_TX_POWER_HIGH で送信する参照デバイスから 1 m の距離で測定した BLE RSSI の中央値が -55 dBm +/-10 dBm になるように、Rx オフセットを測定し補正する必要があります。
  • [C-10-4] 1 m の距離に位置し、ADVERTISE_TX_POWER_HIGH で送信する参照デバイスからスキャンしたときに、BLE RSSI の中央値が -55 dBm +/-10 dBm になるように、Tx オフセットを測定し補正する必要があります。

キャリブレーションのセットアップ

BLE RSSI 要件を満たすようにデバイスを調整するには、次のようにセットアップします。

一般的なセットアップ要件

  • 適切な結果が得られるように、無響室を使用して計測に及ぼす影響を最小限に抑えます。無響室を使用しない場合は、2 台の三脚を用意して、参照デバイスと DUT デバイスを地面から 1.5 m、天井からも同様の距離になる位置に配置します。
  • デバイス ホルダーを付けた 2 台の三脚が必要です。
  • できる限り金属の使用量が少ない三脚を使用します。
  • できる限り金属の使用量が少ないデバイス ホルダーを使用します。小さな金属製のバネは問題ありません。
  • DUT と参照デバイスから 1 m 以内に金属製のものがないようにする必要があります。
  • 参照デバイスとすべての DUT はテストの完了に十分な量の充電をしておく必要があります。
  • テスト中は参照デバイスと現在の DUT の電源コードを抜いておく必要があります。
  • 高周波(RF)性能に影響する可能性がある充電ケースや接続ケーブルなどの機器を参照デバイスと DUT に接続してはなりません。

BLE キャリブレーションの参照セットアップ

図 2. BLE キャリブレーションの参照セットアップ

要件 [C-10-1]

要件 [C-10-1] の準拠を確認する方法は次のとおりです。

  1. DUT と参照デバイスの両方で CTS 検証ツールアプリ(CTS-V)をインストールして(まだインストールしていない場合)、開きます。この要件の CTS-V テストは [Presence Test] > [BLE RSSI Precision Test] にあります。

  2. BLE キャリブレーションのセットアップに沿って、DUT を参照デバイスから 1 m(テスト距離)離して配置します。

  3. 参照デバイスの [Start advertising] をタップして、DUT の画面の手順に沿って参照デバイス固有のデバイス ID を入力します。これはアドバタイジング開始後に参照デバイスに表示されます。DUT の [Start Test] をタップします。

  4. データ収集が完了すると(DUT で 1,000 回のスキャンが収集されます)、テストは計算された範囲によって自動的に合格または不合格になります。合格するには、範囲が 18 dBm 以下であることが必要です

要件 [C-10-2]

要件 [C-10-2] を確認する方法は次のとおりです。チップベンダーはチャネルの平坦性を測定し、コアとチャネルの差異を特定できます。未調整のコアと未調整のチャネルの問題を特定する方法に関するヒントを次に示します。これらは RSSI が大きく発散する 2 つの原因となる可能性があります。

未調整のコア

デバイスの BT アンテナに複数のコアがある場合、コアによってキャリブレーションが異なることがあります。数回(少なくとも 1 分間分)の測定を行い、スキャンデータをチェックします。図 3 のようなパターンが見られる場合、つまり複数のコアでのスキャンによる周期的なピーク(円で示されています)がある場合は、未調整のコアの問題がある可能性が高いため、さらなる調査が必要です。

未調整のコアがあるデバイスのスキャンデータの例

図 3. 未調整のコアがあるデバイスのスキャンデータの例

未調整のチャネル

クラシック BLE での伝送は 3 つのチャネルで行われます。各チャネルにそれに関連する差異が存在する場合があります。チャネルは一定の間隔でローテーションされます。数回(少なくとも 1 分間分)の測定を行い、スキャンデータをチェックします。図 4 のようなパターンが見られる場合は、いくつかのチャネルに誤ったキャリブレーションの問題がある可能性が高いため、さらなる調査が必要です。

未調整のチャネルがあるデバイスのスキャンデータの例

図 4. 未調整のチャネルがあるデバイスのスキャンデータの例

要件 [C-10-3] と [C-10-4]

BLE 無線チップが完全に調整されているときでも、特定のデバイスが検出する RSSI は、特定の製品(デバイスモデル)のアンテナ品質とアンテナ配置によって異なります。これにより、デバイス間の相互運用性に問題が発生します。

たとえば、自動車のロックを解除するユースケースについて考えてみましょう。アプリ デベロッパーはデバイスが車の 1 m 以内に入ると車のロックを解除したいと考えています。デベロッパーは持っているスマートフォンでの調査に基づき、-60 dBm のしきい値を選択しました。しかし、アンテナ品質とアンテナ配置の違いによって、他の Android デバイスでは同じチップを使用していたとしても、うまく機能しない場合があります。

エコシステム内のすべてのデバイス間の相互運用性を確保するには、各デバイスの Rx オフセットを測定し、デバイスで報告される RSSI を調整して、BLE RSSI が ADVERTISE_TX_POWER_HIGH の 1 m という基準を満たすようにする必要があります。

BLE 無線チップが完全に調整されているときでも、理想的な受信機はアドバタイズする側のデバイスのアンテナ品質とアンテナ配置に応じて、異なる RSSI を読み取ります。Rx 要件はその他の条件がすべて同じであれば、すべてのデバイスが同じ結果強度でアドバタイズできることを徹底します。

Android 14 以降を搭載しているデバイスでは、次の方法で Rx と Tx 要件への準拠を確認します。

  1. DUT と参照デバイスの両方で CTS 検証ツールアプリ(CTS-V)をインストールして(まだインストールしていない場合)、開きます。この要件の CTS-V テストは [Presence Test] > [BLE Rx/Tx Offset Precision] にあります。

  2. BLE キャリブレーションのセットアップに沿って、DUT を参照デバイスから 1 m(テスト距離)離して配置します。デバイスの向きは両方のデバイスが互いに平行に、画面が同じ方向を向くようにすることをおすすめします。

  3. 参照デバイスの [Start advertising] をタップして、DUT の画面の手順に沿って参照デバイス固有のデバイス ID を入力します。これはアドバタイジング開始後に参照デバイスに表示されます。

  4. DUT の [Start Test] をタップします。このテストでは、Rx 要件を確認するためにアドバタイジング開始と同じタイミングで、参照デバイスのバックグラウンドでスキャンが実行されます。

    データ収集完了後(両方のデバイスで 1,000 回のスキャンが収集されます)、Rx テストと Tx テストの両方で算出された中央値(500 番目の測定)が -65 dBm から -45 dBm の間であれば合格となります。Rx テストと Tx テストで算出された中央値が許容範囲内でなかった場合は、不合格となります。

  5. デバイスを調整して、Rx オフセットと Tx power を補正し、RSSI の中央値が -55 dBm になるようにします。

    • Rx: bluetooth.hardware.radio.le_rx_path_loss_comp_db システム プロパティを Rx オフセットを補正する値(dB)に設定して、RSSI を調整し、1 m での BLE RSSI 中央値が -55 dBm となるようにします。Bluetooth スタックは RSSI に bluetooth.hardware.radio.le_rx_path_loss_comp_db の値を足したものとなるように RSSI を調整します。詳しくは、le_scanning_manager.cc をご覧ください。

    • Tx: bluetooth.hardware.radio.le_tx_path_loss_comp_db システム プロパティを Tx power を補正する値(dB)に設定して、Tx power を調整し、1 m での BLE RSSI 中央値が -55 dBm となるようにします。Bluetooth スタックは Tx power に bluetooth.hardware.radio.le_tx_path_loss_comp_db の値を足したものとなるように Tx power を調整します。詳しくは、le_advertising_manager.cc をご覧ください。