ال نظام رسم الخرائط في الأماكن المغلقة
مرجع فني كامل لنظام تحديد المواقع الداخلي See U: الهندسة المعمارية وأجهزة الاستشعار والخوارزميات وواجهات برمجة التطبيقات ودليل التنفيذ.
ملخص
مقدمة لنظام الخرائط
ما هو نظام رسم الخرائط الداخلي See U؟
نظام See U الداخلي عبارة عن منصة لتحديد المواقع في مساحة مغلقة تدمج ست طبقات من تكنولوجيا الاستشعار مع دمج متقدم لتوفير موقع دقيق في حالة عدم توفر نظام تحديد المواقع العالمي (GPS).
على عكس المنتجات التي تعمل بتقنية Wi-Fi أو Bluetooth فقط، فإننا نستخدم مجموعة متعددة الوسائط تتضمن ما يلي:
- تحديد الموقع الجغرافي المغناطيسي: "بصمة" مغناطيسية فريدة لكل مبنى
- Wi‑Fi RTT: يتراوح وقت الرحلة لمسافات دقيقة
- Bluetooth LE: إشارات للمراسي ونقاط الاهتمام
- أجهزة استشعار بالقصور الذاتي: الحساب الميت باستخدام IMU المتطور
- رؤية الكمبيوتر: SLAM والعلامات المرئية
- النظم العالمية لسواتل الملاحة: انتقال سلس بين الأماكن الداخلية والخارجية
دقة تتراوح من 1 إلى 2 متر في 99% من الحالات لتحديد الطريق بشكل آمن
تحديثات في الوقت الفعلي مع زمن وصول شامل أقل من 100 مللي ثانية
دمج العديد من التقنيات من أجل الموثوقية والدقة
بنية النظام
الهيكل والمكونات الرئيسية
اللبنات المعمارية
1. طبقة جمع البيانات
دفق البيانات الأولية من جميع أجهزة استشعار الجهاز في الوقت الحقيقي.
- • برامج التشغيل الأصلية (iOS / Android)
- • إدارة معدل العينة
- • التخزين المؤقت للبيانات لدمج دفعة واحدة
- • مزامنة الطابع الزمني
2. طبقة المعالجة المسبقة
يقوم بتصفية البيانات وتطبيعها وإعدادها للدمج.
- • مرشحات التمرير المنخفض والعالي
- • المعايرة التلقائية
- • كشف وإزالة الناشز
- • التطبيع والقياس
3. طبقة دمج المستشعر
يجمع بين مصادر متعددة وطرق الدمج الحديثة.
- • مرشح الجسيمات (احتمالي)
- • كالمان ممتد للتنعيم
- • الترجيح التكيفي لكل جهاز استشعار
- • كشف السياق الداخلي / الخارجي
4. طبقة تحديد المواقع
يحسب الموقع النهائي للمستخدم على الخريطة.
- • مطابقة الخريطة
- • الانطباق على أجزاء المسار الصالحة
- • الكشف عن الأرضية/المستوى
- • تصحيح الانجراف
5. طبقة التنقل
تخطيط المسار والتعليمات خطوة بخطوة.
- • A* مع إمكانية الوصول إلى الترجيح
- • توليد التعليمات الصوتية
- • إعادة التوجيه الديناميكي
- • تنبيهات القرب من النقاط المهمة
6. طبقة الواجهة
واجهات برمجة التطبيقات ومجموعات SDK لتكامل التطبيق.
- • REST للويب والخوادم
- • حزم SDK الأصلية (iOS وAndroid)
- • تحديثات WebSocket الحية
- • Webhooks لأحداث الموقف
طبقات الاستشعار
التفاصيل الفنية لكل طبقة
تحديد الموقع الجغرافي المغناطيسي
خرائط مجال الأرض والشذوذات الناجمة عن البناء. كل هيكل لديه بصمة مغناطيسية فريدة من نوعها.
المواصفات الفنية:
- معدل العينة: 50-100 هرتز
- القرار: 0.01 μT
- المعايرة التلقائية المستمرة
- تعويض التدخل
واي فاي آر تي تي
تتراوح شبكة Wi-Fi وقت الرحلة إلى نقاط الوصول. يتطلب دعم الجهاز والبنية التحتية لـ RTT.
المواصفات الفنية:
- البروتوكول: IEEE 802.11mc (واي فاي RTT)
- النطاقات: 2.4 و 5 جيجا هرتز
- الكمون: <100 مللي ثانية
- ما لا يقل عن 3 نقاط وصول للتثليث
بلوتوث منخفض الطاقة (BLE)
منارات للقرب والاتجاه والنقاط المهمة ونقاط الطريق.
المواصفات الفنية:
- البروتوكول: بليه 5.0+
- آر إس إس آي (قوة الإشارة المستلمة)
- البطارية: 2-5 سنوات
- المدى: يصل إلى 100 متر
وحدة قياس القصور الذاتي (IMU)
يغطي IMU الحركة والدوران والارتفاع لسد الفجوات بين المراجع.
المواصفات الفنية:
- مقياس التسارع: ±16 جم، 400 هرتز
- الدوران: ±2000 درجة/ثانية، 400 هرتز
- بارو: ارتفاع الأرضية 0.5 م
- الانصهار: كالمان
رؤية الكمبيوتر (السيرة الذاتية)
يحدد بصريًا الميزات وعلامات الواقع المعزز وQR والنص لتحديثات الموضع وSLAM.
المواصفات الفنية:
- SLAM: التوطين ورسم الخرائط في وقت واحد
- اكتشاف الميزة: ORB، SIFT
- علامات الواقع المعزز: ArUco، QR
- وقت التشغيل: TensorFlow لايت
نظام تحديد المواقع العالمي (GNSS)/نظام تحديد المواقع العالمي (في الهواء الطلق)
موقع القمر الصناعي في الهواء الطلق وللتسليم الداخلي والخارجي والتحكم في الانجراف.
المواصفات الفنية:
- نظام GNSS المتعدد: GPS، GLONASS، Galileo، BeiDou
- A-GPS لـ TTFF السريع
- أوتوماتيكي داخلي/خارجي
- تنصهر مع طبقات أخرى
الخوارزميات
المعالجة والذكاء
مرشح الجسيمات (مونت كارلو)
تتبع العديد من الجسيمات الموزونة وضعية المستخدم الأكثر احتمالاً من خلال أجهزة استشعار متعددة الضوضاء.
مرشح كالمان الموسع
تقديرات متكررة لنظام ديناميكي مع مدخلات صاخبة؛ تستخدم للمسارات السلسة والتنبؤ على المدى القصير.
أ* تحديد المسار
يجد أقصر مسار مع العوائق وإمكانية الوصول وتفضيلات المستخدم كأوزان.
ضربة عنيفة
يبني خريطة ويتتبع الجهاز فيها بميزات مرئية.
التعلم الآلي (الشبكات العصبية)
نماذج مدربة لتصنيف البيئات وتقليل الضوضاء من البيانات وتحسين الدقة بمرور الوقت.
حساب الموتى
قم بنشر الوضع من الإصلاح الأخير باستخدام السرعة والتوجه عند انخفاض إصلاحات الراديو.
تدفق المعالجة
التقاط البيانات
تعمل أجهزة الاستشعار على بث القياسات الأولية في الوقت الفعلي
المعالجة المسبقة
التصفية والمعايرة والتطبيع
اندماج الاستشعار
مرشح الجسيمات يدمج جميع المصادر
مرشح كالمان
ينعم ويتنبأ بالمسار
مطابقة الخريطة
المشروع على الرسم البياني للخريطة القابلة للتوجيه
وضعية الإخراج
يتعرض للتطبيق عبر واجهة برمجة التطبيقات
واجهة برمجة تطبيقات REST
نقاط النهاية والتكامل
عنوان URL الأساسي
/api/v1/positioningإرجاع وضع الجهاز الحالي
حدود:
device_idvenue_idfloor/api/v1/navigation/routeتخطيط المسار بين نقطتين
حدود:
origindestinationaccessibility_mode/api/v1/venues/{id}/mapجلب بلاط خريطة المكان
حدود:
venue_idfloorformat/api/v1/poisقائمة النقاط المثيرة للاهتمام القريبة
حدود:
latlngradiuscategory/api/v1/tracking/updateمجموعة أجهزة الاستشعار اللاحقة للاندماج من جانب الخادم
حدود:
sensor_datatimestampdevice_idطلب عينة
curl -X POST https://api.seeu.app/v1/navigation/route \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"origin": {
"lat": -23.550520,
"lng": -46.633308,
"floor": 1
},
"destination": {
"lat": -23.551234,
"lng": -46.634567,
"floor": 2
},
"accessibility_mode": true
}'دليل التنفيذ
كيفية دمج المكدس
1. متطلبات النظام
دائرة الرقابة الداخلية
- • iOS 14.0+
- • سويفت 5.5+
- • الموقع الأساسي
- • الحركة الأساسية
- • ARKit (اختياري)
أندرويد
- • أندرويد 8.0+ (API 26)
- • كوتلين 1.7+
- • خدمات جوجل بلاي
- • واجهة برمجة تطبيقات مستشعر Android
- • ARCore (اختياري)
2. تثبيت SDK
دائرة الرقابة الداخلية (كوكوابودس)
pod 'SeeUMapping', '~> 1.0'
أندرويد (جرادل)
implementation 'app.seeu:mapping:1.0.0'
3. التهيئة
// Swift
import SeeUMapping
let mapping = SeeUMapping(apiKey: "YOUR_API_KEY")
mapping.configure(
venueId: "shopping-center-xyz",
enableMagneticPositioning: true,
enableWiFiRTT: true,
enableBLE: true
)
mapping.startPositioning { result in
switch result {
case .success(let position):
print("Lat: \(position.lat), Lng: \(position.lng)")
case .failure(let error):
print("Error: \(error)")
}
}4. الملاحة
mapping.calculateRoute(
from: currentPosition,
to: destination,
accessibilityMode: true
) { route in
mapping.startNavigation(route: route) { instruction in
// turn-by-turn instructions
print(instruction.text)
speakInstruction(instruction.audio)
}
}