Функция Wi-Fi Round Trip Time (RTT) в Android 9 позволяет устройствам измерять расстояние до других устройств: будь то точки доступа (AP) или одноранговые устройства Wi-Fi Aware (если Wi-Fi Aware поддерживается устройством). Эта функция, основанная на протоколах IEEE 802.11mc и IEEE 802.11az (доступна с Android 15), позволяет приложениям использовать улучшенную точность определения местоположения и улучшенную осведомлённость о нём.
Примеры и источники
Чтобы использовать эту функцию, реализуйте интерфейс Vendor HAL. В Android 14 и более поздних версиях интерфейс Vendor HAL определяется с помощью AIDL. В Android 13 и более ранних версиях интерфейс Vendor HAL определяется с помощью HIDL. В Android 8.0 HIDL заменил предыдущую структуру Hardware Abstraction Layer (HAL), которая использовалась для оптимизации реализаций путём указания типов и вызовов методов, собранных в интерфейсы и пакеты.
Чтобы использовать функцию Wi-Fi RTT, следуйте указаниям интерфейса Wi-Fi. В зависимости от реализованного интерфейса, это может быть:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
или более поздняя версия.
Вы можете обратиться к устаревшему Wi-Fi HAL, чтобы увидеть, как он соотносится с интерфейсами AIDL и HIDL: hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/rtt.h .
Выполнение
Для реализации Wi-Fi RTT необходимо обеспечить поддержку как фреймворка, так и HAL/прошивки:
Рамки:
- Код АОСП
- Включить Wi-Fi RTT: требуется флаг функции
Поддержка Wi-Fi RTT (IEEE 802.11mc или IEEE 802.11az) HAL (что подразумевает поддержку прошивки)
Чтобы реализовать эту функцию, реализуйте интерфейс Wi-Fi AIDL или HIDL и включите флаг функции:
В
device.mk
, расположенном вdevice/<oem>/<device>
, измените переменную средыPRODUCT_COPY_FILES
, чтобы включить поддержку функции Wi-Fi RTT:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
В остальном все необходимое для этой функции включено в AOSP.
рандомизация MAC
Для повышения конфиденциальности MAC-адрес, используемый во время RTT-транзакций по Wi-Fi, должен быть рандомизированным, то есть не должен совпадать с собственным MAC-адресом интерфейса Wi-Fi. Однако, в качестве исключения, когда устройство связано с точкой доступа, оно может использовать MAC-адрес, с которым оно связано, для любых RTT-транзакций с этой точкой доступа или с другими точками доступа.
Проверка
Для этой функции существуют тесты Android Compatibility Test Suite (CTS). CTS определяет, когда функция включена, и автоматически включает соответствующие тесты. Эту функцию также можно протестировать с помощью Vendor Test Suite (VTS) .
Модульные тесты
Тесты пакета Wi-Fi RTT выполняются с использованием:
Сервисные испытания:
atest com.android.server.wifi.rtt
Тесты менеджера:
atest android.net.wifi.rtt
КТС
Для этой функции существуют тесты Android Compatibility Test Suite (CTS). CTS определяет, когда функция включена, и автоматически включает соответствующие тесты. Точка доступа с поддержкой Wi-Fi RTT (IEEE 802.11mc) должна находиться в зоне действия тестируемого устройства.
Тесты CTS можно запустить с помощью:
atest WifiRttTest
Калибровка
Для эффективной работы Wi-Fi RTT диапазоны, возвращаемые в протоколах 802.11mc или 802.11az, должны точно соответствовать ключевым показателям эффективности (KPI), описанным в этом разделе.
Для протокола 11mc при указанных значениях полосы пропускания (80 МГц, 40 МГц, 20 МГц) и размере пакета 8 ожидается, что KPI для оценки дальности достигнет следующей точности при 90-м процентиле ошибки.
- 80 МГц: 2 метра
- 40 МГц: 4 метра
- 20 МГц: 8 метров
Для протокола 11az конфигурация MIMO антенн и схема повторения длинного тренировочного поля (LTF) влияют на точность. С типичным мобильным телефоном (с двумя антеннами) и точкой доступа (четыре антенны) система имеет конфигурацию MIMO 2x4. Для такой конфигурации с коэффициентом повторения LTF, равным двум, и указанными полосами пропускания (160 МГц, 80 МГц, 40 МГц, 20 МГц) ожидается, что ключевой показатель эффективности (KPI) для оценки дальности достигнет следующей точности на 90-м процентиле погрешности.
- 160 МГц: 0,5 метра
- 80 МГц: 1 метр
- 40 МГц: 2 метра
- 20 МГц: 4 метра
Чтобы убедиться в корректной работе реализации функции, необходимо провести калибровочное тестирование.
Это можно сделать, сравнивая истинную дальность с оценочной дальностью RTT на увеличивающихся расстояниях. Для обеспечения базовой совместимости необходимо проверить решение на устройстве, калибровка которого заведомо выполнена по RTT. Калибровку дальности следует проводить при следующих условиях:
- Большая открытая лаборатория или коридор, в котором нет большого количества металлических предметов, которые могут привести к необычно высокому уровню возникновения многолучевого распространения.
- По крайней мере, трек или тропа прямой видимости (LOS) протяженностью 25 м.
- Маркеры с шагом 0,5 метра от одного конца трассы до другого.
Место для закрепления точки доступа с поддержкой RTT на одном конце трассы, установленной на высоте 20 см над полом, а также подвижное крепление для телефона Android (или другого тестируемого мобильного устройства Android), которое можно перемещать вдоль трассы и выравнивать по маркерам 0,5 м также на высоте 20 см над полом.
Для каждого маркера необходимо записать 50 результатов измерения дальности, а также расстояние от точки доступа. Для каждого положения маркера необходимо рассчитать статистику, такую как среднее значение дальности и дисперсию.
На основе результатов шага 5 можно построить график зависимости истинного значения (ось X) от предполагаемого диапазона (ось Y) и оценить линию регрессии наилучшего соответствия. Идеальная калибровка устройства даст линию с градиентом 1,0 и смещением 0,0 м по оси Y. Отклонения от этих значений допустимы, если они находятся в пределах KPI для соответствующей полосы пропускания. Если результаты выходят за пределы KPI, необходимо повторно откалибровать функцию устройства, чтобы привести результаты в соответствие со спецификацией KPI.