# Навигация: сравнение и предварительный выбор

**19.10.2026:** [подборка Open Boat Projects](41_open_boat_projects_review.md)
дополняет архитектуру методами приборного обмена и диагностики. Для дальнейшей
интеграции используется `calculations/navigation/open-boat-projects/data-contract.yaml`:
источник, единицы, знаки, физическая точка, калибровка и свежесть. Повторитель
не должен делать старое измерение новым. SensESP v3 рассматривается для ESP32;
старые примеры ESP8266 и прошлых API проверяются отдельно. Основная связка
OpenCPN + Signal K + pypilot сохраняется, AvNav/BoatOS — кандидаты для сравнения.

Пользователь подтвердил: подразумевался **pypilot**, а openboat — общее направление
открытых лодочных систем. Matplotlib/pyplot остаётся инструментом графиков расчётов.

| Компонент | Основная роль | Место в предлагаемой системе |
|---|---|---|
| OpenCPN *(отдельный исходник не входит в этот комплект / external source not included)* | Карты, AIS, маршруты, плагины | Картплоттер и планирование |
| Signal K *(отдельный исходник не входит в этот комплект / external source not included)* | Формат, сервер и API морских данных | Общая телеметрия и журнал |
| pypilot *(отдельный исходник не входит в этот комплект / external source not included)* | Судовой автопилот | Курс, руль, ветровые режимы |
| OpenPlotter *(отдельный исходник не входит в этот комплект / external source not included)* | Интеграция приложений и датчиков | Кандидат бортового окружения Raspberry Pi |
| Open Boat Projects *(отдельный исходник не входит в этот комплект / external source not included)* | Сообщество аппаратных и программных проектов | Подбор приборов и открытых интерфейсов |
| Отдельный контроллер кайта | Полёт, тяга, запуск/возврат | Разрабатываемая подсистема |
| Локальный ИИ | Маршрут, управление движением и координация систем | Обязательный будущий бортовой компонент; ещё не реализован |

**Предварительный выбор:** локальный ИИ + OpenCPN + Signal K + pypilot, отдельный контроллер кайта;
OpenPlotter оценить как способ сборки бортового компьютера.
Это решение по архитектуре, а не утверждение о готовой интеграции и не окончательная закупка.
Основание: документированные открытые интерфейсы и совместимость ролей.

Документация OpenPlotter *(отдельный исходник не входит в этот комплект / external source not included)* допускает Debian/Ubuntu desktop,
но часть функций GPIO на ноутбуке отсутствует. Исследовательская рабочая станция
и бортовой вычислитель имеют разные задачи и энергетические требования.

## Требования океанской автономности

Карты, документация, конфигурации и исполняемые программы доступны локально.
Планировать обновление карт и прогнозов до выхода, срок свежести каждого набора данных
и режим работы без интернета. OpenCPN бесплатен, но это не делает любую карту бесплатной;
легальные источники покрытия подбираются для фактического маршрута.

Погода/течение/волны: Copernicus *(отдельный исходник не входит в этот комплект / external source not included)* как исследовательский источник;
для плавания нужен проверенный процесс получения и оценки актуальных данных.
AIS и GNSS не достаточны для оценки зоны полёта кайта и препятствий над водой.

## Интерфейс кайта

Предложение расширения (ещё не стандарт Signal K):
`propulsion.kite.mode`, `propulsion.kite.tetherForce`, `propulsion.kite.elevation`,
`propulsion.kite.azimuth`, `propulsion.kite.lineLength`, `propulsion.kite.fault`.
Сначала проверить существующие схемы/расширения и выбрать согласованные имена.

Шина передаёт статус и допустимые цели; непосредственные приводы замкнуты локально.
Задания курса/тяги имеют срок годности и подтверждение принятия.
Потеря GNSS, задержка сети и изменение источника ветра входят в испытания интеграции.
Общие часы, преобразование координат и запись сырых данных обязательны для анализа.

## Стенд перед монтажом

Воспроизведение NMEA/Signal K → картплоттер → команда курса → автопилот в симуляции →
ограничение кайта → логи. Проверить неверные единицы, старые пакеты, разрыв соединения,
переход на ручной режим и перезапуск всех процессов.
В этой итерации подключения датчиков, карт и физического автопилота нет.

<a id="local-ai"></a>

## Локальный ИИ: маршрут и управление катамараном

**AI-CONTROL-001, требование пользователя от 10 октября 2026.** ИИ работает
локально на борту, прокладывает и корректирует маршрут, участвует в управлении
катамараном и связан со всеми бортовыми системами. Ни конкретная модель ИИ,
ни вычислитель, ни уровень самостоятельности пока не выбраны.

### Предлагаемые функции и интерфейсы

| Подсистема | Данные для ИИ | Управление / координация |
|---|---|---|
| Навигация и обстановка | Карты, глубины, GNSS, AIS, доступные датчики препятствий, погода и течение с отметкой свежести | Маршрут, перепланирование, допустимые зоны, скорость и курс |
| pypilot и рулевые приводы | Курс, движение судна, состояние автопилота и приводов | Проверенные задания курса/режима через интерфейс автопилота |
| Кайт и запуск | Натяжение, углы, длина строп, ветер, состояние полёта, лебёдок и отказов | Целевая тяга, сектор, запрос запуска/возврата/депауэра через контроллер кайта |
| BLDC и винты | Ток, обороты, температура, доступная мощность и неисправности каждого привода | Ограниченные задания тяги, режим движения и координация двух приводов |
| PV, MPPT, АКБ и питание | Генерация, SOC, температуры, токи, ограничения BMS и состояние защиты | Энергетический план, управление разрешёнными нагрузками и сохранение резерва |
| Вода и бытовые системы | Запасы, состояние опреснителя, насосов, вентиляции и климатических систем | Расписание и режимы в пределах установленных ограничений |
| Аварийные и сервисные системы | Осушение, пожарные/температурные датчики, связь, состояние оборудования и запасов | Оповещение, диагностика и разрешённые действия; независимые защиты сохраняются |

Таблица задаёт охват интеграции, а не подтверждает наличие всех приборов на борту.
Все последующие подсистемы включать в реестр интерфейсов. Для чисто измерительных
или аппаратно защищённых устройств связь с ИИ может быть только наблюдением.

### Полномочия и работа без сети

Предусмотреть режим рекомендаций, автоматическое выполнение в согласованных
границах и ручной режим; критерии перехода ещё определить. Во всех режимах
экипаж имеет приоритет. Задания проверяются на допустимость и срок действия;
исполнение подтверждается фактическим состоянием системы и записывается в журнал.
Защита BMS и быстрые контуры полёта/приводов работают независимо от ИИ.

Модели, карты, настройки, документация и журнал доступны локально. Интернет
может обновлять данные, но не является условием управления. Устаревший прогноз
или недостаточная уверенность должны быть видимы; действия при потере датчиков,
связи или вычислителя задаются явно. Типы моделей и распределение задач между
оптимизатором, оценкой состояния и языковым интерфейсом ещё предстоит выбрать.

### Что добавить к расчётам и испытаниям

- Учесть массу, среднее/пиковое энергопотребление, охлаждение и отдельный резерв
  питания вычислителя, накопителей и дополнительных датчиков.
- Проверить планирование маршрута с ограничениями глубины, зоны кайта,
  доступной тяги, энергии и времени; не считать один ответ языковой модели
  доказательством проходимости маршрута.
- Испытать на записанных данных и в симуляции неверные единицы, устаревшие
  измерения, ошибочные команды, потерю сети, остановку ИИ и ручной перехват.
- Проверить задержки и взаимодействие кайта, рулей и моторов на стенде,
  затем расширять условия натурных испытаний по программе проекта.

Это постановка задачи для разработки. Установка навигационных программ
на рабочей станции не означает реализацию локального ИИ или готовность
автономного управления судном.
