فلائٹ کنٹرولر سخت وقت کی پابندی والا فلائٹ نظام چلاتا ہے۔ Companion SBC ویڈیو، روٹنگ، API اور بیرونی رابطہ سنبھالتا ہے۔ Mission Control ان کی ذمہ داری ملائے بغیر براہِ راست USB، LAN یا ریموٹ ری لے چنتا ہے۔
ابتدا تا انتہا بہاؤ مجوزہ ساخت ہے؛ KairOS کی پیمائش تک تاخیر اور شرحیں منصوبے کے اہداف ہیں۔
KairOS ریپوزٹری ↗اس صفحے پر +
دو آن بورڈ کمپیوٹر — مختلف ذمہ داریاں
فلائٹ کنٹرولر موٹر، استحکام، GPS اور سینسر چلاتا ہے۔ Raspberry Pi، Radxa، Jetson یا دوسرے Linux SBC پر companion computer، KairOS Drone Agent چلاتا ہے اور FC کی جگہ نہیں لیتا: یہ ویڈیو، ٹیلی میٹری ری لے، کلاؤڈ رابطہ، ریڈیو، REST API اور ایکسٹینشن شامل کرتا ہے۔
زمین پر Mission Control براؤزر میں چلتا ہے۔ یہ WebSerial سے FC، LAN سے Drone Agent یا MQTT/Convex اور WebRTC سگنلنگ سے ریموٹ ری لے تک پہنچ سکتا ہے۔ WFB-ng منظرنامے میں Ground Agent ریڈیو وصولی کو قابلِ فہم مقامی ویب نظام بناتا ہے۔
ٹیلی میٹری، کمانڈ اور ویڈیو کا مکمل چکر
FC → Agent
MAVLink UART عموماً 115200–921600 baud پر چلتا ہے؛ ایجنٹ heartbeat کا انتظار کر کے فرم ویئر شناخت کرتا ہے۔
ایجنٹ → مقامی صارفین
روٹر خام MAVLink کو IPC socket، WebSocket، کلاؤڈ خدمت اور صحت کی حالت میں تقسیم کرتا ہے۔
ایجنٹ → کلاؤڈ
مجوزہ نظام تقریباً 2 Hz ٹیلی میٹری اور HTTP/MQTT راستوں سے حالت شائع کرتا ہے۔
کیمرا → براؤزر
V4L2 capture، H.264 انکوڈنگ، MediaMTX/RTSP اور منتخب WHEP، WebRTC یا WFB-ng نقل و حمل سے گزرتا ہے۔
GCS → FC
Arm، موڈ، مشن اور دوسری کمانڈ اسی منتخب راستے سے واپس جاتی ہیں؛ FC pre-arm قواعد نافذ کرتا ہے۔
ACK → UI
کمانڈ کی تصدیق اور نئی heartbeat/حالت واپس آتی ہے، جس کے بعد UI حالت بدلتا ہے۔
براہِ راست USB، مقامی نیٹ ورک اور ریموٹ P2P
| موڈ | نقل و حمل | کب استعمال کریں | مجوزہ ہدف |
|---|---|---|---|
| براہِ راست USB | WebSerial → FC، ایجنٹ درکار نہیں | بینچ، ترتیب، کیلیبریشن، فرم ویئر | مجوزہ ہدف <10 ms |
| براہِ راست LAN | REST :8080, MAVLink WS :8765, WHEP :8889 | اندرونی، مختصر فاصلے، ترقیاتی اور میدانی LAN استعمال | ہدف: ویڈیو 50–150 ms؛ ٹیلی میٹری <100 ms |
| ریموٹ P2P | 4G/انٹرنیٹ، MQTT SDP سگنلنگ، WebRTC، Convex | ریموٹ نگرانی اور دوسرا راستہ | ہدف: ویڈیو 100–300 ms؛ ٹیلی میٹری 2–5 Hz |
خودکار transport پہلے تقریباً چار سیکنڈ LAN راستہ تلاش کرے، پھر تقریباً چودہ سیکنڈ کی کھڑکی میں P2P سگنلنگ پر جائے۔ یہ مجوزہ وقفے نیٹ ورک پر منحصر ہیں اور KairOS SLA نہیں۔
روٹر heartbeat، بہاؤ اور متعدد کلائنٹ سنبھالتا ہے
- ایجنٹ MAV_TYPE_ONBOARD_CONTROLLER کے ساتھ 1 Hz companion heartbeat بھیجتا ہے۔
- FC heartbeat کے بعد زاویائی حالت، GPS، بیٹری، RC اور سینسر مانگتا ہے۔
- FC کے reboot یا حالت بدلنے کے باوجود کام جاری رکھنے کے لیے stream requests تقریباً ہر 30 سیکنڈ دہرائی جاتی ہیں۔
- عام پورٹس: /dev/ttyS0، /dev/ttyUSB0، /dev/ttyACM*؛ بورڈ پروفائل خودکار تلاش کی ترجیح مقرر کرتا ہے۔
- IPC socket /run/kairos/mavlink.sock دوسری خدمات کو بائنری فریم دیتا ہے۔
- Mission Control، CRC کے ساتھ MAVLink v2 پارس کرتا ہے؛ ArduPilot/PX4، MAVLink اور Betaflight/iNav، MSP v1/v2 استعمال کرتے ہیں۔
Flight Controller UART
│
▼
kairos-mavlink router
├─ /run/kairos/mavlink.sock
├─ /run/kairos/state.sock
├─ WebSocket :8765
├─ TCP :5760 / UDP :14550
└─ optional cloud relayV4L2 capture سے مقامی H.264 پلے بیک تک
کیپچر
USB UVC یا MIPI CSI، V4L2 کے ذریعے کھلتا ہے؛ آغاز سے پہلے دستیاب فارمیٹ اور ریزولوشن جانچے جاتے ہیں۔
انکوڈنگ
ffmpeg، H.264 high profile، level 4.1، yuv420p اور کم تاخیر کے flags استعمال کرتا ہے؛ دستیاب ہو تو ہارڈ ویئر انکوڈر چنا جاتا ہے۔
اشاعت
انکوڈ شدہ بہاؤ MediaMTX/RTSP میں شائع ہو کر اگلے transports کا ماخذ بنتا ہے۔
LAN
WHEP، WebRTC براہِ راست مقامی براؤزر کو دیتا ہے۔
ریموٹ
MQTT، SDP سگنلنگ منتقل کرتا ہے، پھر میڈیا P2P WebRTC یا ضرورت پر ری لے سے جاتا ہے۔
ریڈیو
wfb_tx، H.264 کو WFB-ng سے بھیجتا ہے؛ Ground Agent وصول کر کے مقامی طور پر دوبارہ شائع کرتا ہے۔
nobuffer، low_delay اور چھوٹا probe size قطار کم کرتے ہیں، مگر حقیقی تاخیر capture، انکوڈر، bitrate، FEC، ریڈیو، نیٹ ورک اور براؤزر decoding پر منحصر ہے۔ KairOS ایک عمومی عدد کے بجائے مخصوص پروفائل کی پیمائش شائع کرے گا۔
فوری رابطے کے لیے MQTT، حالت اور کمانڈ قطار کے لیے Convex
مجوزہ KairOS Agent تقریباً 2 Hz پر MQTT ٹیلی میٹری شائع کرتا ہے۔ MQTT-to-Convex پل فی آلہ تقریباً تین سیکنڈ debounce کے ساتھ حالت جمع کرتا ہے اور براؤزر reactive queries لیتا ہے۔ کمانڈ Convex میں لکھی جاتی ہیں؛ ایجنٹ polling سے pending item لے کر MAVLink میں بدلتا اور ACK واپس دیتا ہے۔
Telemetry: FC → Agent → MQTT → bridge → Convex → Mission Control
Commands: Mission Control → Convex queue → Agent poll → MAVLink → FC
Video: Camera → Agent → MQTT SDP → P2P WebRTC → Browserمیدانی نوڈ ریڈیو وصولی کو مقامی انٹرفیس میں بدلتا ہے
| کلائنٹ | راستہ |
|---|---|
| لیپ ٹاپ | Wi-Fi AP، Ethernet یا USB CDC-NCM tether |
| فون / ٹیبلٹ | اسی مقامی نیٹ ورک میں براؤزر یا KairOS Android راستہ |
| میدانی مانیٹر | HDMI + Chromium kiosk |
| Mission Control | ویڈیو/ٹیلی میٹری ماخذ کے ساتھ گراؤنڈ اسٹیشن پروفائل |
پروفائل کا اصل نام ground-station ہے۔ Drone Agent کا ہی کوڈ بیس ہے، مگر فعال خدمات مختلف ہیں: آن بورڈ encode کے بجائے وصولی، اور FC مرکوز شمولیت کے بجائے AP/tether/kiosk۔
Stores آلے، ٹیلی میٹری، مشن اور transport کو الگ رکھتے ہیں
| حالت کا ذخیرہ | ذمہ داری |
|---|---|
| drone-manager | نوڈ، کنکشن راستے اور فعال آلہ |
| telemetry-store | براہِ راست حالت اور 300 نمونوں کا ring buffer |
| mission-store | Waypoints، پیٹرن، جانچ، اپ لوڈ کی حالت |
| video-store | ماخذ، transport، پلے بیک اور خرابیاں |
| settings-store | IndexedDB میں مستقل ذخیرہ اور منتقلی |
| ground-station-store | وصول کنندے، ری لے راستہ، ماخذ اور میدانی IO |
Arm تصدیق شدہ سلسلہ ہے، مقامی سوئچ نہیں
آپریٹر کا ارادہ
واضح منظوری کے بعد Mission Control، protocol.arm() چلاتا ہے۔
پروٹوکول
MAV_CMD_COMPONENT_ARM_DISARM، کمانڈ #400 بنتی ہے۔
نقل و حمل
فریم WebSocket/LAN یا Convex/کلاؤڈ راستے سے ایجنٹ تک جاتا ہے۔
سیریل
ایجنٹ FC کو کمانڈ دیتا ہے اور pre-arm checks کا ثالث نہیں بنتا۔
FC کی تصدیق
فرم ویئر سینسر، GPS، بیٹری، حفاظتی سوئچ، EKF اور مقررہ failsafe جانچتا ہے۔
حالت کی تصدیق
HEARTBEAT base_mode bit 7 اور ACK، IPC/MQTT سے واپس آتے ہیں؛ UI صرف تصدیق کے بعد ARMED دکھاتا ہے۔

