CONCEPT AND DEVELOPMENTUNMANNED SPORT · #bezpiLOTa · KAIROS DRONE AGENTDocumentation
#bezpiLOTa→Getting started→Mission Control
QUICKSTART / MISSION CONTROL

The target workflow starts with local demo mode: explore Dashboard, Plan, Configure, Flight Control and Simulate using synthetic data. Connect a real FC only after the component is published and the secure context, serial flow and safety conditions have been checked.

PLANNED

#bezpiLOTa Mission Control is an adjacent ecosystem component, not part of KairOS Drone Agent; its executable repository has not yet been published.

KairOS repository ↗
NODE 20+runtime requirement
4000default dev port
07target demo profiles
NO FCdemo requirement
01
PREREQUISITES

Development environment and browser

  • Node.js 20 or newer.
  • npm 9 or newer.
  • Git for cloning and updating source code after the repository is published.
  • Chrome, Edge or Firefox for the standard UI; WebSerial/WebUSB require a Chromium browser.
  • A USB cable with data lines if a real FC will be connected later.
bashToolchain check
node --version
npm --version
git --version
02
OPTION A

A safe demo environment without an FC

Demo mode is designed to let users explore the interface safely without connecting a real vehicle. It uses simulated telemetry and does not present a test bench as an operational flight system.

03
OPTION B

Local demo mode

bashTarget local demo flow
# Отдельный репозиторий #bezpiLOTa Mission Control ещё не опубликован
# После выпуска ожидаемый поток будет таким:
npm install
NEXT_PUBLIC_DEMO_MODE=true npm run dev
KairOS target interface: the command becomes executable only after the corresponding component is released.

The planned interface should open at http://localhost:4000. With NEXT_PUBLIC_DEMO_MODE=true, no external database, SITL or physical hardware is required. This block defines a launch contract, not a claim that the current KairOS Drone Agent repository contains the command.

04
EXPLORE THE UI

Five main work surfaces

01

Dashboard

Attitude, GPS/altitude, battery, flight mode, connection path and system alerts.

02

Plan

Waypoints, seven generators, altitude/speed/camera trigger, geofences, rally, QGC WPL/KML/CSV.

03

Configure

Failsafe, PID, power, OSD, ports, sensors, gimbal and firmware-specific panels.

04

Flight Control

Arm/disarm, 25+ ArduPilot modes, gamepad/HOTAS at 50 Hz, keyboard and guided waypoint.

05

Simulate

3D mission path, terrain following, camera markers, timing and altitude profile.

#bezpilOta GCS video cockpit: camera view, HUD, minimap, battery, GPS, mission progress and flight commands.
INTERFACE / VISUAL EXAMPLEVideo cockpit and flight commands

HUD, telemetry, minimap and mission progress appear beside control commands. The example helps users navigate operator work surfaces.

05
CONNECT A REAL FC

WebSerial flow on localhost

bashStart the development server
npm run dev
KairOS target interface: the command becomes executable only after the corresponding component is released.
01

Open localhost

Go to http://localhost:4000 in a Chromium browser.

02

Connect the FC

Use a data-capable USB cable, click Connect and choose the serial port in the browser prompt.

03

Serial open

The browser obtains permission through a user gesture and opens the port.

04

Heartbeat

Mission Control waits for an FC heartbeat and identifies the autopilot/vehicle.

05

Capabilities

Requests AUTOPILOT_VERSION and protocol capabilities.

06

Streams + params

Requests telemetry streams and downloads parameters; the target handshake time is 2–5 seconds.

06
BROWSER SECURITY

WebSerial works only in a secure context

WebSerial, WebUSB and Web Bluetooth require HTTPS or the special trust granted to localhost. Thus http://localhost:4000 is allowed, but http://<lan-ip>:4000 from another device does not receive these APIs. Hardware access from another device requires HTTPS or a desktop/Electron build.

Connecting to Drone Agent through ordinary WebSocket and REST does not use WebSerial permission, but browser mixed-content rules still matter: an HTTPS page may block a plain HTTP/WS Agent. For a fully local plain-HTTP mode, the GCS and Agent must be available in a compatible context.

07
LAN SELF-HOSTING

Local server and Agent on the same network

textLAN addresses
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 target interface: the command becomes executable only after the corresponding component is released.
08
SITL

Physics and protocols without a real vehicle

bashTarget SITL bridge—after component publication
cd KairOS_Drone-Agent/tools/sitl
npm install
npm start

ArduPilot SITL must be installed separately; the binary is usually in ~/.ardupilot/. The bridge connects simulator telemetry to browser transport. This is safer than a first protocol experiment on a vehicle, but still requires checking versions, parameters and mission behavior.

SOFTWARE SITL simulation screen: route map, waypoint traversal, telemetry, video and mission event log.
INTERFACE / VISUAL EXAMPLEA mission in SOFTWARE SITL context

The simulation screen shows a map, waypoint traversal, telemetry and transitions between waypoints. The log provides context for checking mission behavior.

09
DESKTOP APP

Electron for hardware APIs and a standalone package

bashKairOS desktop scripts
npm run desktop:dev
npm run desktop:demo
npm run desktop:build:mac
npm run desktop:build
KairOS target interface: the command becomes executable only after the corresponding component is released.

Planning assumes about 200 MB of disk space and 200–300 MB of RAM. Actual requirements depend on the platform/runtime version and will be published with the Mission Control build.

10
ENVIRONMENT

Mode and external infrastructure variables

VariableDefaultPurpose
NEXT_PUBLIC_DEMO_MODEfalseSeven simulated drones instead of real sources
PORT4000Development server port
NEXT_PUBLIC_CONVEX_URLnoneOptional Convex backend
NEXT_PUBLIC_MQTT_URLnoneOptional MQTT broker

Cloud variables are unnecessary in local/direct mode. Missing Convex or MQTT must not block direct USB, local Agent discovery or offline mission planning.

11
PROJECT STRUCTURE

Target structure of the separate GCS

textTarget repository structure
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