التصور والتطويررياضة الأنظمة غير المأهولة · #bezpiLOTa · KAIROS DRONE AGENTالوثائق
البدء السريع / MISSION CONTROL

يبدأ السيناريو المستهدف بوضع تجريبي محلي: تُستكشف لوحة المتابعة والتخطيط والإعداد والتحكم بالطيران والمحاكاة ببيانات اصطناعية. لا تُوصل FC فعلية إلا بعد نشر المكوّن والتحقق من السياق الآمن ومسار المنفذ التسلسلي وشروط السلامة.

مخطط له

#bezpiLOTa Mission Control مكوّن مجاور في المنظومة، وليس جزءًا من KairOS Drone Agent؛ ولم يُنشر مستودعه القابل للتشغيل بعد.

مستودع KairOS ↗
NODE 20+متطلب بيئة التشغيل
4000منفذ التطوير الافتراضي
07ملفات تجريبية مستهدفة
NO FCمتطلب الوضع التجريبي
01
المتطلبات المسبقة

بيئة التطوير والمتصفح

  • Node.js 20 أو أحدث.
  • npm 9 أو أحدث.
  • Git لاستنساخ المصدر وتحديثه بعد نشر المستودع.
  • Chrome أو Edge أو Firefox للواجهة العادية؛ وتتطلب WebSerial/WebUSB متصفحًا قائمًا على Chromium.
  • كابل USB بأسلاك بيانات عند توصيل FC فعلية لاحقًا.
bashالتحقق من سلسلة الأدوات
node --version
npm --version
git --version
02
الخيار A

منظومة تجريبية آمنة دون FC

يُصمَّم الوضع التجريبي للتعرف الآمن على الواجهة دون توصيل مركبة فعلية. يستخدم قياسًا عن بُعد محاكى ولا يقدم منصة الاختبار بوصفها منظومة طيران عاملة.

03
الخيار B

وضع تجريبي محلي

bashالمسار التجريبي المحلي المستهدف
# Отдельный репозиторий #bezpiLOTa Mission Control ещё не опубликован
# После выпуска ожидаемый поток будет таким:
npm install
NEXT_PUBLIC_DEMO_MODE=true npm run dev
واجهة KairOS المستهدفة: لا يصبح الأمر قابلًا للتنفيذ إلا بعد إصدار المكوّن المعني.

يُفترض أن تُفتح الواجهة المخططة على http://localhost:4000. عند NEXT_PUBLIC_DEMO_MODE=true، لا تلزم قاعدة بيانات خارجية أو SITL أو أجهزة فعلية. يحدد هذا القسم عقد التشغيل، ولا يؤكد وجود الأمر في مستودع KairOS Drone Agent الحالي.

04
استكشف الواجهة

خمس واجهات عمل رئيسية

01

لوحة المتابعة

الاتجاه وGPS/الارتفاع والبطارية ووضع الطيران ومسار الاتصال وتنبيهات النظام.

02

التخطيط

نقاط المسار وسبعة مولدات والارتفاع/السرعة/تشغيل الكاميرا والسياج الجغرافي ونقاط التجمع وQGC WPL/KML/CSV.

03

الإعداد

إجراءات الإخفاق وPID والطاقة وOSD والمنافذ والمستشعرات وحامل الكاميرا ولوحات خاصة بالبرنامج الثابت.

04

التحكم بالطيران

التسليح وإلغاؤه وأكثر من 25 وضعًا لـArduPilot وذراع الألعاب/HOTAS بمعدل 50 Hz ولوحة المفاتيح ونقطة المسار الموجهة.

05

المحاكاة

مسار مهمة ثلاثي الأبعاد وتتبع التضاريس وعلامات الكاميرا والتوقيت وملف الارتفاع.

قمرة الفيديو في #bezpilOta GCS: صورة الكاميرا وHUD وخريطة مصغرة والبطارية وGPS وتقدم المهمة وأوامر الطيران.
الواجهة / مثال مرئيقمرة الفيديو وأوامر الطيران

توجد HUD والقياس عن بُعد والخريطة المصغرة وتقدم المهمة بجانب أوامر التحكم. يساعد المثال على التعرف على واجهات عمل المشغّل.

05
توصيل FC فعلية

مسار WebSerial عبر localhost

bashتشغيل خادم التطوير
npm run dev
واجهة KairOS المستهدفة: لا يصبح الأمر قابلًا للتنفيذ إلا بعد إصدار المكوّن المعني.
01

افتح localhost

انتقل إلى http://localhost:4000 في متصفح قائم على Chromium.

02

وصّل FC

استخدم كابل USB للبيانات، واضغط «اتصال»، واختر المنفذ التسلسلي في مطالبة المتصفح.

03

فتح المنفذ التسلسلي

يحصل المتصفح على إذن بإجراء صريح من المستخدم ويفتح المنفذ.

04

Heartbeat

ينتظر Mission Control رسالة heartbeat من FC ويحدد الطيار الآلي والمركبة.

05

القدرات

يطلب AUTOPILOT_VERSION وقدرات البروتوكول.

06

التدفقات والمعلمات

يطلب تدفقات القياس عن بُعد وينزّل المعلمات؛ والهدف التصميمي للمصافحة 2–5 ثوانٍ.

06
أمان المتصفح

لا تعمل 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 والوكيل في سياق متسق.

07
استضافة ذاتية على LAN

خادم محلي ووكيل على الشبكة نفسها

textعناوين LAN
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
واجهة KairOS المستهدفة: لا يصبح الأمر قابلًا للتنفيذ إلا بعد إصدار المكوّن المعني.
08
SITL

الفيزياء والبروتوكول دون مركبة فعلية

bashجسر SITL المستهدف — بعد نشر المكوّن
cd KairOS_Drone-Agent/tools/sitl
npm install
npm start

يجب تثبيت ArduPilot SITL بصورة مستقلة؛ ويوجد الملف التنفيذي عادة في ~/.ardupilot/. يربط الجسر قياس المحاكي عن بُعد بنقل المتصفح. هذا أكثر أمانًا من تجربة البروتوكول الأولى على المركبة، لكنه لا يزال يتطلب التحقق من الإصدارات والمعلمات وسلوك المهمة.

شاشة محاكاة SOFTWARE SITL: خريطة المسار واجتياز النقاط والقياس عن بُعد والفيديو وسجل أحداث المهمة.
الواجهة / مثال مرئيالمهمة في سياق SOFTWARE SITL

تُظهر شاشة المحاكاة الخريطة واجتياز نقاط المسار والقياس عن بُعد وأحداث الانتقال بين النقاط. يوفر السجل سياقًا للتحقق من سلوك المهمة.

09
تطبيق سطح المكتب

Electron لواجهات الأجهزة وحزمة مستقلة

bashبرامج KairOS النصية لسطح المكتب
npm run desktop:dev
npm run desktop:demo
npm run desktop:build:mac
npm run desktop:build
واجهة KairOS المستهدفة: لا يصبح الأمر قابلًا للتنفيذ إلا بعد إصدار المكوّن المعني.

اعتُمد للتخطيط نحو 200 MB على القرص و200–300 MB من RAM. تعتمد المتطلبات الفعلية على المنصة وإصدار بيئة التشغيل، وستُنشر مع بناء Mission Control.

10
البيئة

متغيرات الوضع والبنية التحتية الخارجية

المتغيرالقيمة الافتراضيةالغرض
NEXT_PUBLIC_DEMO_MODEfalseسبع طائرات محاكاة بدلًا من المصادر الفعلية
PORT4000منفذ خادم التطوير
NEXT_PUBLIC_CONVEX_URLnoneخلفية Convex اختيارية
NEXT_PUBLIC_MQTT_URLnoneوسيط MQTT اختياري

لا تلزم متغيرات السحابة للوضع المحلي/المباشر. يجب ألا يمنع غياب Convex أو MQTT اتصال USB المباشر أو اكتشاف الوكيل المحلي أو تخطيط المهمات دون اتصال.

11
بنية المشروع

البنية المستهدفة لمحطة GCS مستقلة

textالبنية المستهدفة للمستودع
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