שילוב UWB לניווט פנים-מבני באפליקציות מובייל
מיקום פנים-מבני מדויק: תפקיד ה-UWB ויכולותיו
אנו משלבים UWB (Ultra-Wideband) למיקום מדויק באפליקציות מובייל. GPS לא עובד בתוך מבנים — זה ידוע. Bluetooth Low Energy מציע דיוק של 1-3 מטרים במקרה הטוב. טריאנגולציית Wi-Fi RSSI נותנת 2-5 מטרים עם חוסר יציבות גבוה. UWB — טכנולוגיה עם דיוק של 10-30 סנטימטרים המבוססת על מדידת זמן התפשטות אות הרדיו (Time of Flight / Two-Way Ranging). זה מה שאפל בנתה לתוך iPhone 11+ באמצעות שבב U1, ומה שנותן ל-AirTag את הדיוק של "התיק שלך כאן, פנה ימינה." לצוות שלנו יש ניסיון של 10+ שנים בפיתוח פתרונות מובייל, ואנו מבטיחים שילוב UWB סוהר. קבלו ייעוץ לבחירת ציוד UWB למתקן שלכם.
למה UWB עדיף על BLE ו-Wi-Fi לניווט פנים-מבני
| פרמטר | UWB | BLE | Wi-Fi RSSI |
|---|---|---|---|
| דיוק | 10-30 ס"מ | 1-3 מ' | 2-5 מ' |
| יציבות | גבוהה | בינונית | נמוכה |
| השהיה | < 1 אלפית השנייה | 1-10 אלפיות השנייה | 50-100 אלפיות השנייה |
| עמידות להפרעות | גבוהה | בינונית | נמוכה |
UWB מספק דיוק פי 10 טוב יותר מ-BLE, כפי שאושר בפרויקטים שלנו לקניונים ומחסנים.
איך UWB עובד ומה זה אומר למפתחים
UWB משתמש בפולסים ברוחב ~500 MHz בטווח 6-8.5 GHz. זמן התפשטות האות בין שני מכשירים נמדד בדיוק של ננו-שניות (TWR — Two-Way Ranging, או TDoA — Time Difference of Arrival). המרחק מחושב מהזמן: 1 ננו-שנייה ≈ 30 ס"מ.
לתרחיש מיקום פנים-מבני, יש צורך בעוגנים — משואות UWB עם קואורדינטות ידועות — ובמכשיר נייד (tag). בהתבסס על מרחקים שנמדדו לפחות לשלושה עוגנים, המיקום מחושב באמצעות טרילטריציה.
מכשירים נתמכים
iOS: מסגרת NearbyInteraction של אפל. מכשירים עם שבב U1/U2: iPhone 11–15, iPhone SE דור 3, AirTag, HomePod mini 2, Apple Watch Ultra. NISession הוא המחלקה הראשית. סשן אחד = זוג מכשירים אחד. למיקום יחסי למספר עוגנים, השתמשו במספר מופעים מקבילים של NISession.
אנדרואיד: UwbManager מ-Jetpack Core UWB (androidx.core:core-uwb). מכשירים נתמכים: Samsung Galaxy (S21 Ultra+, S22+, S23, S24, Z Fold3+), Pixel 6 Pro+, חלק מ-Xiaomi. בדיקת תמיכה: UwbManager.isAvailable().
עוגני UWB (חומרה): למיקום תשתיתי, יש צורך בעוגנים של צד שלישי: Qorvo DWM3000EVB, Decawave DWM1001, Sewio RTLS, Pozyx. הם מתקשרים באמצעות IEEE 802.15.4z ויש להם SDKs להגדרה.
השוואת פלטפורמות: iOS מול אנדרואיד
| פרמטר | iOS (NearbyInteraction) | אנדרואיד (UwbManager) |
|---|---|---|
| מסגרת | NISession | UwbManager |
| החלפת טוקן | NIDiscoveryToken | הגדרה דרך Controlee |
| תמיכה בעוגנים | רק Qorvo MFi | כל IEEE 802.15.4z |
| מצב רקע | לא נתמך | לא נתמך |
מגבלות פלטפורמה
Apple Nearby Interaction הוא peer-to-peer בלבד בין שני מכשירי אפל או עם אביזרים עם אישור MFi. למיקום פנים-מבני תשתיתי (עוגנים → טלפון) ישירות דרך NISession, זה עובד רק עם עוגנים תואמי Qorvo באמצעות NIConfiguration מיוחד.
NISession דורש החלפת NIDiscoveryToken בין מכשירים מראש — בדרך כלל דרך Multipeer Connectivity, Bluetooth, או שרת. לאחר החלפת הטוקן, NISession.run(configuration:) מתחיל מדידות.
איך לשלב UWB באפליקציית מובייל?
מקרה מעשי: ניווט בקניון (מהניסיון שלנו)
תרחיש: קונה מחפש חנות מסוימת. GPS לא זמין. ניווט BLE לא מספיק מדויק למסדרונות ברוחב 3 מטרים. עוגני UWB מותקנים על התקרה כל 10-15 מטרים.
עוגני Pozyx Creator (UWB, PoE, מיקום עצמי) → שרת Pozyx מרכזי אוסף נתוני מיקום → REST API מספק קואורדינטות של מכשיר ה-tag במערכת הקואורדינטות של הבניין.
אפליקציית מובייל: בכניסה לבניין, המכשיר "מתחבר" למערכת (דרך לחיצת יד BLE לזיהוי), ואז כל 100-200 אלפיות השנייה מקבל עדכוני קואורדינטות דרך WebSocket (x, y, floor).
הקואורדינטות מוצגות על גבי תוכנית הבניין (תרשים קומה SVG). תנועת סמן חלקה: פילטר קלמן להחלקת מדידות UWB רועשות. ללא הפילטר, הסמן "קופץ." פילטר קלמן במכשיר הנייד הוא 20-30 שורות קוד אבל משפר משמעותית את חוויית המשתמש.
ניווט לנקודה: מציאת נתיב A* על גבי גרף מעברים (הגרף בנוי מתרשים ה-SVG, עם אזורים אסורים — קירות וויטרינות). אם הסטייה מהמסלול עולה על 1 מטר, חשב מחדש.
שילוב עם Apple NearbyInteraction
לתרחישי מכשיר-למכשיר (שליח → לקוח, עובד מחסן → משטח ספציפי):
import NearbyInteraction
class UWBSession: NSObject, NISessionDelegate {
let session = NISession()
func startSession(with peerToken: NIDiscoveryToken) {
session.delegate = self
let config = NINearbyPeerConfiguration(peerToken: peerToken)
config.isCameraAssistanceEnabled = true // iOS 16+: AR overlay
session.run(config)
}
func session(_ session: NISession, didUpdate nearbyObjects: [NINearbyObject]) {
guard let peer = nearbyObjects.first else { return }
if let distance = peer.distance {
print("Distance: \(distance) m")
}
if let direction = peer.direction {
// SIMD3<Float> - направление в 3D
print("Direction: \(direction)")
}
}
}import NearbyInteraction class UWBSession: NSObject, NISessionDelegate { let session = NISession() func startSession(with peerToken: NIDiscoveryToken) { session.delegate = self let config = NINearbyPeerConfiguration(peerToken: peerToken) config.isCameraAssistanceEnabled = true // iOS 16+: AR overlay session.run(config) } func session(_ session: NISession, didUpdate nearbyObjects: [NINearbyObject]) { guard let peer = nearbyObjects.first else { return } if let distance = peer.distance { print("Distance: \(distance) m") } if let direction = peer.direction { // SIMD3<Float> - направление в 3D print("Direction: \(direction)") } } } מאפשר isCameraAssistanceEnabled — חץ AR מעל המצלמה מראה את הכיוון לאובייקט (כמו ב-AirTag Precision Finding). דורש ARKit ו-Precision Finding.
החלפת טוקן
לא ניתן ליצור NSCameraUsageDescription תוכנתית — רק להתקבל מ-NIDiscoveryToken. כדי להתחיל סשן UWB, שני המכשירים חייבים להחליף טוקנים מראש. תכנית טיפוסית: שני המכשירים מפרסמים את הטוקן דרך Bluetooth Peripheral → סורקים זה את זה → מקבלים טוקנים → מתחילים NISession.
שימוש ב-CloudKit או בשרת — לתרחישים שבהם המכשירים לא קרובים פיזית בזמן האתחול.
בעיות שילוב טיפוסיות
- הפרעות ריבוי נתיבים. אות UWB מוחזר ממשטחי מתכת (מדפים, ציוד) — מדידות מרחק שגויות. פתרון: זיהוי NLOS (Non-Line-of-Sight) באמצעות ניתוח First Path Power מול Total Received Power. Pozyx ו-Decawave מחזירים מדדים אלה בחבילת הנתונים הגולמית.
- NISession מושהה. iOS משהה את סשן ה-UWB כשהאפליקציה עוברת לרקע.
session.discoveryToken— שמור מיקום אחרון; ב-sessionWasSuspended(_ session:), הפעל מחדש. UWB לא עובד ברקע — מגבלת פלטפורמה. - כיול עוגנים. יש למדוד את קואורדינטות העוגנים במרחב במדויק — שגיאה של 5 ס"מ מזיזה את כל החישובים. מיקום עצמי של עוגנים (Pozyx, Sewio) קובע אוטומטית את הקואורדינטות שלהם בהפעלה ראשונה דרך UWB TWR ביניהם.
- דיוק בתנועה. במהירות גבוהה (> 2 מ'/שנייה), מערכות TDoA נותנות יותר שגיאות מ-TWR. להולכי רגל, TWR עם עדכון של 10 הרץ מספיק.
מה כלול בעבודה?
- ביקורת תשתית ותרחישי שימוש
- בחירת פלטפורמת UWB וציוד
- שילוב SDK (iOS NearbyInteraction, Android UwbManager, עוגנים)
- פיתוח פילטר קלמן וגרף ניווט
- בדיקות עומס (עד 100+ מכשירים)
- תיעוד, תמיכה והדרכת צוות
תהליך הפרויקט
- ביקורת תרחיש שימוש וציוד
- בחירת פלטפורמת UWB (Apple NI / Qorvo / Pozyx)
- פיילוט באזור ניסוי עם מדידת דיוק
- שילוב עם האפליקציה הניידת
- סינון קלמן וגרף ניווט
- בדיקות עומס (100+ מכשירים בו-זמנית)
- פריסת עוגנים והפעלה
ציר זמן
פיילוט עם Apple NearbyInteraction על שני מכשירים לוקח 1-2 שבועות. מערכת ניווט פנים-מבני מלאה עם עוגני תשתית, פילטר קלמן ומפת בניין לוקחת 2-4 חודשים בהתאם להיקף המתקן. העלות מחושבת לאחר הערכת התשתית ותרחישי היעד.
צרו קשר לייעוץ על הפרויקט שלכם. הזמינו שילוב UWB סוהר — קבלו מיקום פנים-מבני מדויק.







