粗略重新置放
粗略重新置放是一項功能,可藉由提供這些問題的近似但快速解答,來啟用大規模的當地語系化:
- 我的裝置現在在哪裡?
- 我應該觀察哪些內容?
回應不精確。 其形式如下: 您接近這些錨點。嘗試找出其中 一個。
粗略重新置放的運作方式是標記錨點與各種裝置上的感應器讀數,稍後用於快速查詢。 在戶外案例中,感應器資料通常是裝置的 GPS(全球定位系統)位置。 當 GPS 無法使用或不穩定時,例如當您在室內時,感應器資料是由 Wi-Fi 訪問點和範圍中的藍牙指標所組成。 收集的感應器資料有助於維護 Azure Spatial Anchors 用來快速判斷哪些錨點接近您的裝置的空間索引。
何時使用粗略重新置放
如果您打算在比網球場更大的空間中處理錨點,您可能會受益于粗略的重新置放空間索引。
粗略重新置放所啟用的錨點快速查閱,旨在簡化由世界規模集合所支援的應用程式開發,例如,數百萬個異地分散式錨點。 空間索引的複雜度全部隱藏,因此您可以將焦點放在應用程式邏輯上。 Azure Spatial Anchors 會在幕後完成所有困難的工作。
使用粗略重新置放
以下是使用粗略重新置放建立和查詢 Azure Spatial Anchors 的一般工作流程:
- 建立並設定感應器指紋提供者,以收集您想要的感應器資料。
- 啟動 Azure Spatial Anchors 會話並建立錨點。 由於已啟用感應器指紋,錨點會透過粗略重新置放以空間方式編制索引。
- 透過 Spatial Anchors 會話中的專用搜尋準則,使用粗略重新置放來查詢周圍錨點。
您可以參考下列其中一個教學課程,以在應用程式中設定粗略重新置放:
- Unity 中的粗略重新置放
- Objective-C 中的粗略重新置放
- Swift 中的粗略重新置放
- JAVA 中的粗略重新置放
- C++/NDK 中的粗略重新置放
- C++/WinRT 中的粗略重新置放
感應器和平臺
平臺可用性
下列類型的感應器可以與粗略的搬遷搭配使用(請參閱下表中的詳細資料):
- GPS 位置 :緯度、經度、高度
- 範圍中 Wi-Fi 存取點的 訊號強度
- 範圍中藍牙 指標的 訊號強度
下表摘要說明支援平臺上感應器資料的可用性,並提供您應該注意的資訊:
HoloLens | Android | iOS | |
---|---|---|---|
GPS | 否 1 | 是4 | 是 6, 7 |
Wi-Fi | 是2 | 是5 | 是 7 |
BLE 指標 | 是3 | 是3 | 是 3, 7 |
1 外部 GPS 裝置可以與 HoloLens 相關聯。 如果您使用 HoloLens 搭配外部 GPS 追蹤器,請處理 UpdatedSensorFingerprintRequired 事件以提交 GeoLocation 讀數。
2 支援速率大約每 3 秒一次掃描一次。
3 限 Eddystone 和 iBeacon 。
4 透過 LocationManager API 支援 (GPS 和 NETWORK)。
5 從 API 層級 28 開始,Wi-Fi 掃描會每 2 分鐘節流至四次呼叫。 從 Android 10 開始,您可以從 [開發人員設定 ] 功能表停用此節流 。 如需詳細資訊,請參閱 Android 檔 。
6 直接透過 iOS 支援。
7 透過 CLLocationManager API 間接支援。
要啟用的感應器
感應器的選擇取決於您正在開發的應用程式和平臺。 此圖表提供一個起點,根據當地語系化案例,決定您可以啟用的感應器組合:
下列各節提供每個感應器類型優點和限制的深入解析。
GPS
GPS 是戶外案例的隨選選項。 當您在應用程式中使用 GPS 時,請記住硬體所提供的讀數通常是:
- 非同步和低頻率(小於 1 Hz)。
- 不可靠/嘈雜(平均為7米標準差)。
一般而言,裝置 OS 和 Spatial Anchors 都會對原始 GPS 訊號進行一些篩選和推斷,以嘗試減輕這些問題。 此額外處理需要時間進行聚合,因此,為了獲得最佳結果,您應該嘗試:
- 儘早在應用程式中建立一個感應器指紋提供者。
- 讓感應器指紋提供者在多個會話之間保持運作。
- 在多個會話之間共用感應器指紋提供者。
消費者級 GPS 裝置通常不精確。 贊登本和巴比奧(2011年) 的一項研究 報告說,輔助GPS(A-GPS)的行動電話的精確度中位數約為7米。 這是一個相當大的忽略值! 為了考慮這些測量錯誤,服務會將錨點視為 GPS 空間中的機率分佈。 因此,錨點是最有可能(信賴超過95%)的空間區域,包含其真實、未知的GPS位置。
當您使用 GPS 進行查詢時,會套用相同的推理。 裝置會以另一個空間信賴區域表示,圍繞其真實、未知的 GPS 位置。 探索附近的錨點會轉譯成尋找信賴區域接近 裝置信賴區域的 錨點,如下所示:
Wi-Fi
在 HoloLens 和 Android 上,Wi-Fi 訊號強度是啟用室內粗略重新置放的好方法。 優點是 Wi-Fi 訪問點的潛在立即可用性(例如,在辦公空間和購物中心中很常見),不需要額外的設定。
注意
iOS 不提供讀取 Wi-Fi 訊號強度的 API,因此無法用於透過 Wi-Fi 啟用的粗略重新置放。
當您在應用程式中使用 Wi-Fi 時,請記住硬體所提供的讀數通常是:
- 非同步和低頻率(小於 0.1 Hz)。
- 可能會在 OS 層級進行節流。
- 不可靠/嘈雜(平均而言,3dBm 標準差)。
空間錨點會嘗試在會話期間建置已篩選的 Wi-Fi 訊號強度地圖,以減輕這些問題。 為了獲得最佳結果,請嘗試:
- 在您放置第一個錨點之前,請先建立會話。
- 盡可能讓會話保持運作。 (也就是說,在一個會話中建立所有錨點和查詢。
藍牙指標
仔細部署藍牙指標是大規模室內粗略重新置放案例的好解決方案,其中 GPS 不存在或不正確。 這也是所有三個平臺上唯一支援的室內方法。
指標通常是多功能裝置,可設定所有專案,包括 UUID 和 MAC 位址。 Azure Spatial Anchors 預期指標可由其 UUID 唯一識別。 如果您不確定此唯一性,可能會得到不正確的結果。 為了獲得最佳結果:
- 將唯一的 UUID 指派給指標。
- 以統一方式部署信標,以統一方式覆蓋您的空間,讓至少三個指標可從空間中的任何點到達。
- 將唯一指標 UUID 清單傳遞至感應器指紋提供者。
像藍牙這樣的無線電信號會受到障礙的影響,並可能會干擾其他無線電信號。 因此,很難猜測您的空間是否被統一覆蓋。 為了保證更好的客戶體驗,建議您手動測試指標的涵蓋範圍。 您可以使用候選裝置和顯示藍牙範圍的應用程式四處走動空間,以進行測試。 當您測試涵蓋範圍時,請確定您可以從空間中的任何戰略位置至少觸達三個指標。 擁有太多指標可能會導致它們之間的干擾較多,而且不一定能改善粗略重新置放的精確度。
如果空間中沒有障礙物,藍牙指標通常覆蓋80米。 因此,對於沒有大型障礙的空間,您可以每40米在網格圖樣中部署指標。
電池不足的指標會影響結果,因此請務必定期監視您的部署,以取得低電量或未充電的電池。
Azure Spatial Anchors 只會追蹤已知指標鄰近 UUID 清單中的藍牙指標。 但程式設計為允許的 UUID 惡意指標可能會對服務品質造成負面影響。 因此,您會在可控制指標部署的策劃空間中取得最佳結果。
感應器精確度
GPS 訊號的精確度,無論是在錨點建立期間還是查詢期間,都會對傳回的錨點集產生重大影響。 相反地,以 Wi-Fi/指標為基礎的查詢會考慮查詢中至少有一個存取點/指標的所有錨點。 從這個意義上說,以 Wi-Fi/指標為基礎的查詢結果大多取決於訪問點/指標和環境障礙的實體範圍。 下表估計每個感應器類型的預期搜尋空間:
Sensor | 搜尋空間半徑 (近似) | 詳細資料 |
---|---|---|
GPS | 20 米到 30 米 | 由 GPS 不確定性決定,以及其他因素。 報告的數位估計為A-GPS手機的GPS精確度中位數:7米。 |
Wi-Fi | 50 米到 100 米 | 由無線存取點的範圍決定。 取決於頻率、發射強度、物理障礙、干擾等。 |
BLE 指標 | 70 公尺 | 由指標的範圍決定。 取決於頻率、傳輸強度、物理障礙、干擾等。 |