التصور والتطويررياضة الأنظمة غير المأهولة · #bezpiLOTa · KAIROS DRONE AGENTالوثائق
#bezpiLOTa→Drone Agent→التوسعات
KairOS / DRONE AGENT / 06

تتلقى الحزمة الموقعة مجموعة محدودة من قدرات الأجهزة وMAVLink والقياس عن بُعد والمهمات والشبكة، وتعمل في عملية مستقلة وتتواصل مع المضيف عبر IPC قابل للتحقق. يجب ألا يوقف خطأ التوسعة الخدمات الحرجة للطيران.

لم يُصدر بعد

وُصف نموذج التوسعات وCLI بوصفهما مواصفات مستهدفة؛ ولم يُصدر بعد سجل KairOS أو جذر التوقيع أو SDK العام.

مستودع KairOS ↗
29صلاحيات القدرات
ED25519توقيع الحزمة
03إضافات مدمجة
CGROUPعزل الموارد
01
نظام توسعات موقعة

خمسة حدود للحماية

01

الحزمة

تُحزم التوسعة بصيغة .kairosplug مع بيان وإصدار ونقطة دخول والقدرات المطلوبة والتوقيع.

02

الثقة

يُتحقق من توقيع Ed25519 قبل فك الحزمة؛ وتُطبَّق قائمة الإلغاء عند الإقلاع. لا يُسمح بالحزم غير الموقعة إلا في وضع المطور.

03

منح المشغّل

تُعرض الصلاحيات للمستخدم قبل التثبيت؛ وتتطلب الصلاحيات الحساسة تأكيدًا إضافيًا مستقلًا.

04

حد العملية

تعمل كل إضافة ضمن عملية فرعية وcgroup خاصتين بها مع حدود للمعالج والذاكرة وPID.

05

IPC بصلاحيات قدرات

يتحقق msgpack RPC عبر مقبس Unix من رمز القدرة عند كل استدعاء لـAPI المضيف.

02
الصلاحيات

تُجمع الصلاحيات حسب المورد الفعلي

المجموعةأمثلة على القدرات
الأجهزةUART, I²C, SPI, GPIO, USB serial/UVC, CSI
MAVLinkالقراءة والكتابة وتسجيل مكوّن خاص
القياس عن بُعدالاشتراك والتوسعة ونشر الأحداث
المستشعرات / الحمولةتسجيل مستشعر أو واجهة حمولة
المهمةقراءة بيانات المهمة وكتابتها وتسجيلها
الشبكةاتصالات HTTPS الصادرة فقط إلى قائمة السماح في البيان

لا تعني الصلاحية وصولًا مباشرًا إلى النظام كله. مثلًا، يجب أن تمنح صلاحية UART جهازًا محددًا أو مقبضًا عبر وسيط، وأن تسمح الاتصالات الصادرة فقط بالنطاقات المعلنة مسبقًا. يستطيع المشغّل سحب المنح من Mission Control.

03
التأليف

البيان والحد الأدنى لسياق الإضافة

yamlالحد الأدنى لبيان KairOS
name: cell-balance-monitor
version: 0.1.0
agent:
  entry: cell_balance:run
  capabilities:
    - telemetry.read
    - event.publish
واجهة KairOS المستهدفة: لا يصبح الأمر قابلًا للتنفيذ إلا بعد إصدار المكوّن المعني.
pythonمثال على توسعة الوكيل
from kairos_sdk import PluginContext

async def run(ctx: PluginContext):
    async for battery in ctx.telemetry.subscribe("telemetry.battery"):
        cells = battery.get("cells", [])
        if cells and max(cells) - min(cells) > 0.15:
            await ctx.events.publish(
                "alert.cell_imbalance",
                {"spread_v": max(cells) - min(cells)},
            )
واجهة KairOS المستهدفة: لا يصبح الأمر قابلًا للتنفيذ إلا بعد إصدار المكوّن المعني.
04
CLI للإضافات

التثبيت والصلاحيات والسجلات والاختبارات

bashCLI المستهدفة لـKairOS
kairos plugin install ./thermal-cam.kairosplug
kairos plugin enable thermal-cam
kairos plugin list
kairos plugin disable <name>
kairos plugin remove <name>
kairos plugin info <name>
kairos plugin perms <name>
kairos plugin logs <name>
kairos plugin test <path>
واجهة KairOS المستهدفة: لا يصبح الأمر قابلًا للتنفيذ إلا بعد إصدار المكوّن المعني.

يتحقق install من الحزمة والتوقيع، ثم يعرض الصلاحيات المطلوبة. يشغّل enable العملية بعد منح الصلاحيات فقط. يُستخدم info وperms للتدقيق، وlogs للتشخيص، وtest لمسار التأليف المحلي. يجب أن توقف الإزالة العملية وتنظف حالتها المحددة النطاق دون المساس بالتوسعات الأخرى.

05
مدمج

ثلاث إضافات أساسية وتوسعات للأجهزة

01

geofence

يتحقق من الموقع بالنسبة إلى المناطق المسموح بها وينشر حدثًا قابلًا للمراقبة.

02

telemetry-logger

يسجل تدفقات القياس المختارة مع حد للحجم ودورة حياة صريحة.

03

mavlink-inspector

يعرض الإطارات للتشخيص دون تغيير حالة الطيران افتراضيًا.

04

كاميرا حرارية

FLIR Lepton USB UVC، وY16 إشعاعي، ودرجات مئوية، ولوحة ألوان وخطوط تساوي الحرارة، وواجهة كاميرا MAVLink.

05

MAVLink Gimbal v2

جسر إلى وحدة تحكم خارجية، وأوامر وحالة الاتجاه، والمكوّن 154.

06
ما سيُصدر وما سيليه

نفصل الإصدار الأول عن المراحل اللاحقة

الإصدار الأول المستهدفالمرحلة التالية
تثبيت محلي موقّعسجل مستضاف قابل للبحث
فرض صلاحيات القدرات عند كل IPCحزمة kairos_sdk عامة مستقلة
الإضافات المدمجة وCLIأداة إنشاء الهيكل والقوالب
مراجعة الصلاحيات وسحبهاالتثبيت من عنوان Git URL
مشغّل الاختباراتطبقة برامج تشغيل مشتركة ووثائق تأليف كاملة