O cenário previsto começa num modo local de demonstração: Dashboard, Plan, Configure, Flight Control e Simulate são explorados com dados sintéticos. O FC real só é ligado após publicação do componente e verificação de contexto seguro, fluxo série e condições de segurança.
#bezpiLOTa Mission Control é um componente associado do ecossistema, não parte de KairOS Drone Agent; o repositório executável ainda não foi publicado.
Repositório KairOS ↗Nesta página +
Ambiente de desenvolvimento e navegador
- Node.js 20 ou posterior.
- npm 9 ou posterior.
- Git para clonar e atualizar o código-fonte após a publicação do repositório.
- Chrome, Edge ou Firefox para a interface normal; WebSerial/WebUSB exigem navegador Chromium.
- Cabo USB com linhas de dados se ligar posteriormente um FC real.
node --version
npm --version
git --versionAmbiente de demonstração seguro sem FC
O modo de demonstração permite conhecer a interface em segurança sem ligar um veículo real. Usa telemetria simulada e não apresenta uma bancada como sistema de voo operacional.
Modo local de demonstração
# Отдельный репозиторий #bezpiLOTa Mission Control ещё не опубликован
# После выпуска ожидаемый поток будет таким:
npm install
NEXT_PUBLIC_DEMO_MODE=true npm run devA interface prevista deverá abrir em http://localhost:4000. Com NEXT_PUBLIC_DEMO_MODE=true não são necessários base de dados externa, SITL nem hardware físico. Este bloco define o contrato de arranque, não afirma que o comando exista no repositório atual KairOS Drone Agent.
Cinco superfícies de trabalho principais
Painel
Atitude, GPS/altitude, bateria, modo de voo, caminho de ligação e alertas do sistema.
Planeamento
Pontos de rota, sete geradores, altitude/velocidade/disparo da câmara, geocercas, pontos de reunião e QGC WPL/KML/CSV.
Configuração
Failsafe, PID, alimentação, OSD, portas, sensores, gimbal e painéis específicos do firmware.
Controlo de voo
Armamento/desarmamento, mais de 25 modos ArduPilot, comando/HOTAS a 50 Hz, teclado e ponto de rota guiado.
Simulação
Trajetória 3D de missão, acompanhamento do terreno, marcadores de câmara, tempos e perfil de altitude.
Fluxo WebSerial em localhost
npm run devAbrir localhost
Abra http://localhost:4000 num navegador Chromium.
Ligar o FC
Use cabo USB de dados, clique em Ligar e selecione a porta série no diálogo do navegador.
Abertura da porta série
O navegador obtém permissão através de uma ação do utilizador e abre a porta.
Heartbeat
Mission Control espera pelo heartbeat do FC e identifica piloto automático e veículo.
Capacidades
Solicita AUTOPILOT_VERSION e capacidades do protocolo.
Fluxos + parâmetros
Solicita fluxos de telemetria e descarrega parâmetros; a referência de projeto para negociação inicial é 2–5 segundos.
WebSerial só funciona num contexto seguro
WebSerial, WebUSB e Web Bluetooth exigem HTTPS ou a confiança especial de localhost. Por isso http://localhost:4000 é permitido, mas http://<lan-ip>:4000 a partir de outro dispositivo não obtém estas API. O acesso ao hardware noutro dispositivo precisa de HTTPS ou compilação desktop/Electron.
A ligação a Drone Agent por WebSocket e REST comuns não usa permissão WebSerial, mas as regras de conteúdo misto continuam importantes: uma página HTTPS pode bloquear um agente HTTP/WS sem encriptação. Num modo totalmente local com HTTP simples, GCS e agente devem estar disponíveis em contextos coerentes.
Servidor local e agente na mesma rede
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:8080Física e protocolo sem veículo real
cd KairOS_Drone-Agent/tools/sitl
npm install
npm startArduPilot SITL deve ser instalado separadamente; o binário costuma estar em ~/.ardupilot/. A ponte liga telemetria do simulador ao transporte do navegador. É mais seguro que a primeira experiência de protocolo no veículo, mas ainda exige verificar versões, parâmetros e comportamento de missão.
Electron para API de hardware e pacote autónomo
npm run desktop:dev
npm run desktop:demo
npm run desktop:build:mac
npm run desktop:buildPara planeamento, prevêem-se cerca de 200 MB em disco e 200–300 MB de RAM. Os requisitos reais dependem da plataforma e versão do ambiente de execução e serão publicados com a compilação Mission Control.
Variáveis de modo e infraestrutura externa
| Variável | Predefinição | Finalidade |
|---|---|---|
| NEXT_PUBLIC_DEMO_MODE | false | Sete drones simulados em vez de fontes reais |
| PORT | 4000 | Porta do servidor de desenvolvimento |
| NEXT_PUBLIC_CONVEX_URL | nenhum | Backend Convex opcional |
| NEXT_PUBLIC_MQTT_URL | nenhum | Broker MQTT opcional |
O modo local/direto não precisa de variáveis de nuvem. A ausência de Convex ou MQTT não deve bloquear USB direto, descoberta do agente local ou planeamento de missões offline.
Estrutura prevista de um GCS separado
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
