Controlador controller.cpp
completo + empuxo p/ baixo
🧑💻 Suba o SEU código e teste nos desafios — como funciona
- Escolha um algoritmo (A1–A6) como ponto de partida — a fonte C++ REAL aparece aqui embaixo — e edite à vontade, ou carregue o seu .cpp com 📁.
- O contrato é a função controller(m, valid, sp, out, p, dt) de controller.h: entram medidas com ruído/latência/falha (m + máscara valid) e o setpoint; saem os comandos dos 2 pods (empuxo T, elevação tilt, azimute azi). Estado persistente entre chamadas via static.
- ⚙ Compilar & Reiniciar compila no servidor (sandbox, ~2 s) e decola do zero; ↯ Aplicar em voo troca o controlador SEM resetar a física (hot-swap, como num FC real).
- Valide de verdade: 🏁 roda a bateria de desafios (pass/fail por tolerância — subida, waypoint, rumo, cata-vento, voo baixo, rajada, través pesado, falhas de sensor, rota no vento); 🗺 voa a missão de waypoints e mede o desvio de rota.
Limites do serviço público: 64 KB, só cabeçalhos padrão (<cmath>, <algorithm>, …), ~20 compilações/min. NaN/Inf do seu código não derrubam a física (firewall no atuador) — mas voar torto é com você. 😉