CONCEPT ET DÉVELOPPEMENTSPORT SANS PILOTE · #bezpiLOTa · KAIROS DRONE AGENTDocumentation
#bezpiLOTa→Drone Agent→Extensions
KairOS / DRONE AGENT / 06

Un paquet signé reçoit un ensemble limité de capacités matérielles, MAVLink, télémétrie, mission et réseau, s’exécute séparément et communique avec l’hôte par IPC vérifiable. Une panne d’extension ne doit pas arrêter les services critiques de vol.

NON PUBLIÉ

Le modèle d’extensions et la CLI sont un contrat cible ; registre, racine de signature et SDK public KairOS ne sont pas encore publiés.

Dépôt KairOS ↗
29autorisations de capacité
ED25519signature de paquet
03plugins intégrés
CGROUPisolation des ressources
01
SYSTÈME D’EXTENSIONS SIGNÉES

Cinq frontières de protection

01

Paquet

Une extension est emballée en .kairosplug avec manifeste, version, point d’entrée, capacités demandées et signature.

02

Confiance

La signature Ed25519 est vérifiée avant extraction ; la liste de révocation s’applique au démarrage. Les paquets non signés sont permis uniquement en mode développeur.

03

Accord de l’opérateur

Les droits sont présentés avant installation ; les droits sensibles nécessitent une confirmation supplémentaire distincte.

04

Frontière de processus

Chaque plugin s’exécute dans son sous-processus/cgroup avec limites de CPU, mémoire et PID.

05

IPC à capacités

Le RPC msgpack par socket Unix vérifie le jeton de capacité à chaque appel d’API hôte.

02
AUTORISATIONS

Les droits sont regroupés par ressource réelle

GroupeExemples de capacités
MatérielUART, I²C, SPI, GPIO, USB serial/UVC, CSI
MAVLinkLecture, écriture et enregistrement d’un composant propre
TélémétrieAbonnement, extension et publication d’événements
Capteurs / charge utileEnregistrer une interface de capteur ou de charge utile
MissionLire, écrire et enregistrer des données de mission
RéseauSortie HTTPS uniquement vers la liste autorisée du manifeste

Un droit ne donne pas accès à tout le système. Une autorisation UART doit désigner un appareil précis ou un accès médié ; les sorties réseau doivent se limiter aux domaines annoncés. L’opérateur peut révoquer un accord dans Mission Control.

03
CRÉATION

Manifeste et contexte minimal du plugin

yamlManifeste KairOS minimal
name: cell-balance-monitor
version: 0.1.0
agent:
  entry: cell_balance:run
  capabilities:
    - telemetry.read
    - event.publish
Interface cible KairOS : la commande ne devient exécutable qu’après la publication du composant correspondant.
pythonExemple d’extension agent
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)},
            )
Interface cible KairOS : la commande ne devient exécutable qu’après la publication du composant correspondant.
04
CLI DES PLUGINS

Installation, droits, journaux et tests

bashCLI cible 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>
Interface cible KairOS : la commande ne devient exécutable qu’après la publication du composant correspondant.

install vérifie paquet et signature, puis affiche les droits demandés. enable lance le processus après accord seulement. info et perms servent à l’audit, logs au diagnostic et test à la création locale. La suppression doit arrêter le processus et effacer son état limité sans toucher les autres extensions.

05
INTÉGRÉ

Trois plugins intégrés et des extensions d’appareils

01

geofence

Vérifie la position par rapport aux zones autorisées et publie un événement observable.

02

telemetry-logger

Enregistre les flux de télémétrie choisis avec limite de volume et cycle de vie explicite.

03

mavlink-inspector

Affiche les trames pour le diagnostic sans modifier l’état de vol par défaut.

04

Caméra thermique

FLIR Lepton USB UVC, Y16 radiométrique, Celsius, palette/isotherme et interface caméra MAVLink.

05

MAVLink Gimbal v2

Pont vers un contrôleur externe, commande/état d’attitude et composant 154.

06
PREMIÈRE VERSION / SUITE

Séparer la première version des étapes suivantes

Première version cibleÉtape suivante
Installation locale signéeRegistre hébergé avec recherche
Application des capacités à chaque appel IPCPaquet kairos_sdk public autonome
Éléments intégrés et CLIGénérateur de structure et modèles
Examen et révocation des droitsInstallation depuis une URL Git
Exécuteur de testsCouche de pilotes partagée et documentation d’auteur complète