يبدأ السيناريو المستهدف بوضع تجريبي محلي: تُستكشف لوحة المتابعة والتخطيط والإعداد والتحكم بالطيران والمحاكاة ببيانات اصطناعية. لا تُوصل FC فعلية إلا بعد نشر المكوّن والتحقق من السياق الآمن ومسار المنفذ التسلسلي وشروط السلامة.
#bezpiLOTa Mission Control مكوّن مجاور في المنظومة، وليس جزءًا من KairOS Drone Agent؛ ولم يُنشر مستودعه القابل للتشغيل بعد.
مستودع KairOS ↗في هذه الصفحة +
بيئة التطوير والمتصفح
- Node.js 20 أو أحدث.
- npm 9 أو أحدث.
- Git لاستنساخ المصدر وتحديثه بعد نشر المستودع.
- Chrome أو Edge أو Firefox للواجهة العادية؛ وتتطلب WebSerial/WebUSB متصفحًا قائمًا على Chromium.
- كابل USB بأسلاك بيانات عند توصيل FC فعلية لاحقًا.
node --version
npm --version
git --versionمنظومة تجريبية آمنة دون FC
يُصمَّم الوضع التجريبي للتعرف الآمن على الواجهة دون توصيل مركبة فعلية. يستخدم قياسًا عن بُعد محاكى ولا يقدم منصة الاختبار بوصفها منظومة طيران عاملة.
وضع تجريبي محلي
# Отдельный репозиторий #bezpiLOTa Mission Control ещё не опубликован
# После выпуска ожидаемый поток будет таким:
npm install
NEXT_PUBLIC_DEMO_MODE=true npm run devيُفترض أن تُفتح الواجهة المخططة على http://localhost:4000. عند NEXT_PUBLIC_DEMO_MODE=true، لا تلزم قاعدة بيانات خارجية أو SITL أو أجهزة فعلية. يحدد هذا القسم عقد التشغيل، ولا يؤكد وجود الأمر في مستودع KairOS Drone Agent الحالي.
خمس واجهات عمل رئيسية
لوحة المتابعة
الاتجاه وGPS/الارتفاع والبطارية ووضع الطيران ومسار الاتصال وتنبيهات النظام.
التخطيط
نقاط المسار وسبعة مولدات والارتفاع/السرعة/تشغيل الكاميرا والسياج الجغرافي ونقاط التجمع وQGC WPL/KML/CSV.
الإعداد
إجراءات الإخفاق وPID والطاقة وOSD والمنافذ والمستشعرات وحامل الكاميرا ولوحات خاصة بالبرنامج الثابت.
التحكم بالطيران
التسليح وإلغاؤه وأكثر من 25 وضعًا لـArduPilot وذراع الألعاب/HOTAS بمعدل 50 Hz ولوحة المفاتيح ونقطة المسار الموجهة.
المحاكاة
مسار مهمة ثلاثي الأبعاد وتتبع التضاريس وعلامات الكاميرا والتوقيت وملف الارتفاع.
مسار WebSerial عبر localhost
npm run devافتح localhost
انتقل إلى http://localhost:4000 في متصفح قائم على Chromium.
وصّل FC
استخدم كابل USB للبيانات، واضغط «اتصال»، واختر المنفذ التسلسلي في مطالبة المتصفح.
فتح المنفذ التسلسلي
يحصل المتصفح على إذن بإجراء صريح من المستخدم ويفتح المنفذ.
Heartbeat
ينتظر Mission Control رسالة heartbeat من FC ويحدد الطيار الآلي والمركبة.
القدرات
يطلب AUTOPILOT_VERSION وقدرات البروتوكول.
التدفقات والمعلمات
يطلب تدفقات القياس عن بُعد وينزّل المعلمات؛ والهدف التصميمي للمصافحة 2–5 ثوانٍ.
لا تعمل WebSerial إلا في سياق آمن
تتطلب WebSerial وWebUSB وWeb Bluetooth استخدام HTTPS أو الثقة الخاصة بـlocalhost. لذلك يُسمح بـhttp://localhost:4000، بينما لا يحصل http://<lan-ip>:4000 من جهاز آخر على هذه الواجهات. يتطلب الوصول إلى الأجهزة من جهاز آخر HTTPS أو إصدار سطح مكتب/Electron.
لا يستخدم الاتصال بـDrone Agent عبر WebSocket وREST العاديين إذن WebSerial، لكن قواعد المحتوى المختلط في المتصفح تظل مهمة: قد تحظر صفحة HTTPS وكيلًا يستخدم HTTP/WS غير مشفرين. في الوضع المحلي الكامل عبر HTTP غير المشفر، يجب أن تتاح GCS والوكيل في سياق متسق.
خادم محلي ووكيل على الشبكة نفسها
npm run dev
# GCS on this machine
http://localhost:4000
# GCS from another LAN client
http://<your-lan-ip>:4000
# Example KairOS Agent address
http://kairos.local:8080
http://192.168.1.50:8080الفيزياء والبروتوكول دون مركبة فعلية
cd KairOS_Drone-Agent/tools/sitl
npm install
npm startيجب تثبيت ArduPilot SITL بصورة مستقلة؛ ويوجد الملف التنفيذي عادة في ~/.ardupilot/. يربط الجسر قياس المحاكي عن بُعد بنقل المتصفح. هذا أكثر أمانًا من تجربة البروتوكول الأولى على المركبة، لكنه لا يزال يتطلب التحقق من الإصدارات والمعلمات وسلوك المهمة.
Electron لواجهات الأجهزة وحزمة مستقلة
npm run desktop:dev
npm run desktop:demo
npm run desktop:build:mac
npm run desktop:buildاعتُمد للتخطيط نحو 200 MB على القرص و200–300 MB من RAM. تعتمد المتطلبات الفعلية على المنصة وإصدار بيئة التشغيل، وستُنشر مع بناء Mission Control.
متغيرات الوضع والبنية التحتية الخارجية
| المتغير | القيمة الافتراضية | الغرض |
|---|---|---|
| NEXT_PUBLIC_DEMO_MODE | false | سبع طائرات محاكاة بدلًا من المصادر الفعلية |
| PORT | 4000 | منفذ خادم التطوير |
| NEXT_PUBLIC_CONVEX_URL | none | خلفية Convex اختيارية |
| NEXT_PUBLIC_MQTT_URL | none | وسيط MQTT اختياري |
لا تلزم متغيرات السحابة للوضع المحلي/المباشر. يجب ألا يمنع غياب Convex أو MQTT اتصال USB المباشر أو اكتشاف الوكيل المحلي أو تخطيط المهمات دون اتصال.
البنية المستهدفة لمحطة GCS مستقلة
KairOS_Drone-Agent/
├── agent/ onboard runtime
├── api/ local control surface
├── protocols/ MAVLink and MSP adapters
├── media/ video transports
├── extensions/ sandbox runtime and SDK
├── tools/sitl/ simulator bridge
├── deploy/systemd/ Linux services
├── docs/ project documentation
└── tests/ contracts and hardware profiles
