Le scénario cible débute en démonstration locale : explorez Tableau de bord, Plan, Configuration, Commande de vol et Simulation sur des données synthétiques. Le FC réel n’est connecté qu’après publication du composant et vérification du contexte sécurisé, du flux série et de la sécurité.
#bezpiLOTa Mission Control est un composant voisin, pas une partie de KairOS Drone Agent ; son dépôt exécutable n’est pas encore publié.
Dépôt KairOS ↗Sur cette page +
Environnement de développement et navigateur
- Node.js 20 ou ultérieur.
- npm 9 ou ultérieur.
- Git pour cloner et actualiser les sources après publication du dépôt.
- Chrome, Edge ou Firefox pour l’interface ordinaire ; WebSerial/WebUSB exigent Chromium.
- Câble USB avec lignes de données si un FC réel sera connecté.
node --version
npm --version
git --versionUn environnement de démonstration sûr sans FC
La démonstration permet d’explorer l’interface sans connecter d’appareil réel. Elle utilise une télémétrie simulée et ne présente pas un banc d’essai comme un système de vol opérationnel.
Mode de démonstration local
# Отдельный репозиторий #bezpiLOTa Mission Control ещё не опубликован
# После выпуска ожидаемый поток будет таким:
npm install
NEXT_PUBLIC_DEMO_MODE=true npm run devL’interface prévue doit s’ouvrir sur http://localhost:4000. Avec NEXT_PUBLIC_DEMO_MODE=true, aucune base externe, SITL ou matériel physique n’est requis. Ce bloc fixe un contrat de lancement sans affirmer que le dépôt actuel KairOS Drone Agent contient la commande.
Cinq surfaces de travail principales
Tableau de bord
Attitude, GPS/altitude, batterie, mode de vol, chemin de connexion et alertes système.
Plan
Points de passage, sept générateurs, altitude/vitesse/déclenchement caméra, geofences, ralliement, QGC WPL/KML/CSV.
Configurer
Failsafe, PID, alimentation, OSD, ports, capteurs, nacelle et panneaux propres au micrologiciel.
Commande de vol
Armement/désarmement, plus de 25 modes ArduPilot, manette/HOTAS 50 Hz, clavier et point guidé.
Simuler
Trajectoire 3D, suivi du terrain, marqueurs caméra, durées et profil d’altitude.
Parcours WebSerial sur localhost
npm run devOuvrir localhost
Ouvrez http://localhost:4000 dans Chromium.
Connecter le FC
Utilisez un câble USB de données, cliquez sur Connect et choisissez le port série dans la demande du navigateur.
Ouverture série
Le navigateur obtient l’autorisation par une action utilisateur puis ouvre le port.
Heartbeat
Mission Control attend le heartbeat du FC et identifie pilote automatique et appareil.
Capacités
Demande AUTOPILOT_VERSION et les capacités du protocole.
Flux et paramètres
Demande les flux de télémétrie et télécharge les paramètres ; la négociation cible dure 2–5 secondes.
WebSerial exige un contexte sécurisé
WebSerial, WebUSB et Web Bluetooth exigent HTTPS ou la confiance spéciale de localhost. http://localhost:4000 est donc admis, mais http://<lan-ip>:4000 depuis un autre appareil ne donne pas ces API. L’accès matériel distant nécessite HTTPS ou une version bureau/Electron.
La connexion à Drone Agent par WebSocket et REST ordinaires n’utilise pas l’autorisation WebSerial, mais les règles de contenu mixte restent applicables : une page HTTPS peut bloquer un agent HTTP/WS. En mode entièrement local HTTP, GCS et agent doivent être accessibles dans un contexte cohérent.
Serveur local et agent sur le même réseau
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:8080Physique et protocoles sans appareil réel
cd KairOS_Drone-Agent/tools/sitl
npm install
npm startArduPilot SITL s’installe séparément ; le binaire se trouve généralement dans ~/.ardupilot/. Le pont relie la télémétrie simulée au transport navigateur. C’est plus sûr qu’un premier essai de protocole sur appareil, mais versions, paramètres et comportement de mission doivent encore être vérifiés.
Electron pour les API matérielles et un paquet autonome
npm run desktop:dev
npm run desktop:demo
npm run desktop:build:mac
npm run desktop:buildLa planification prévoit environ 200 Mo sur disque et 200–300 Mo de RAM. Les besoins réels dépendent de la plateforme et de l’environnement d’exécution, et seront publiés avec la version Mission Control.
Variables de mode et d’infrastructure externe
| Variable | Par défaut | Fonction |
|---|---|---|
| NEXT_PUBLIC_DEMO_MODE | false | Sept drones simulés à la place des sources réelles |
| PORT | 4000 | Port du serveur de développement |
| NEXT_PUBLIC_CONVEX_URL | aucun | Backend Convex facultatif |
| NEXT_PUBLIC_MQTT_URL | aucun | Courtier MQTT facultatif |
Le mode local/direct n’exige pas de variables cloud. L’absence de Convex ou MQTT ne doit pas bloquer USB direct, découverte locale de l’agent ou planification hors ligne.
Structure cible du GCS distinct
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
