Будущий контур переносит трёхосевую стабилизацию на companion computer, связывает IMU, heading полётного контроллера, servo driver и vision‑lock. Все три пути описаны как целевые; agent-native вариант остаётся исследовательской функцией.
Agent-native path спроектирован, но не пригоден к эксплуатации. Не подключать как готовую функцию KairOS.
Репозиторий KairOS ↗На этой странице +
Три проектных пути с разным уровнем готовности
| Путь | Где работает loop | Mission Control | Vision lock | Статус KairOS |
|---|---|---|---|---|
| FC servo mount | Flight controller | Планируется | Нет | Требует интеграции |
| MAVLink Gimbal v2 | External controller | Планируется | Нет | Требует интеграции |
| Agent-native | Companion computer | Планируется | Планируется | R&D |
Mission Control должен уметь задавать направление для servo mount на FC и внешнего MAVLink Gimbal v2. Для второго пути предусматривается отдельное расширение KairOS. Agent-native путь — новая реализация, где estimator и controller работают на SBC и напрямую выдают PWM.
Быстрый loop на companion computer
Orientation input
Gyro и accelerometer дают быстрые pitch/roll изменения; heading полётного контроллера помогает удерживать опорный yaw.
Estimator
Фильтрует noisy measurement и формирует orientation state на real-time thread.
Command target
Mission Control, ROI или vision engine задаёт желаемый pan/tilt/roll.
3-axis controller
Считает error и выдаёт команды отдельно для каждой оси.
PWM output
I²C PWM driver управляет тремя positional servos от отдельного 5 V power rail.
MAVLink identity
Контур регистрируется как Gimbal v2 component 154, чтобы GCS видел стандартное устройство.
Vision target должен быть свежим и уверенным
Vision engine публикует bounding box, track ID, confidence и timestamp. Controller преобразует смещение центра bounding box относительно кадра в угловую поправку. Он не ждёт следующий медленный detector frame: tracker обновляет target между детекциями.
- Fresh target и достаточная confidence разрешают коррекцию.
- Потерянный track немедленно прекращает autonomous motion.
- Stale timestamp не используется для движения по старым данным.
- Manual operator command должен иметь определённый priority и способ отменить lock.
- Неуверенное распознавание не должно приводить к автоматическому reacquire другого объекта.
Механика и питание задают реальные границы
- Первая версия рассчитана на positional hobby servos; continuous-rotation servos без позиционной обратной связи не подходят.
- Ориентир точности 0,5–1° и примерно 180° на ось относится к проектной цели, а не к измеренному KairOS‑подвесу.
- Stall current сервоприводов может перезапустить SBC, поэтому им требуется отдельный 5 V regulator и общая земля.
- Механические упоры, направление осей, neutral PWM и travel limits калибруются до запуска closed loop.
- 500 Hz — target loop, который нужно подтвердить на выбранной плате, IMU, kernel scheduling и driver path.