алгоритм «Чистое преследование» — добавлена простая альтернатива ПИД алгоритму руления на автопилоте Юнибоат

Чистое преследование учит нас мудрости: иногда чтобы достичь цели, нужно смотреть не на нее, а на путь к ней.

Ранее такой алгоритм уже был реализован в автопилоте UNIBOAT но, к точке перед «носом» он стремился используя ПИД регулятор (закладка «Компасс-Всегда идти к линии курса впереди на» активируется если ввести значение в метрах более 0). Это давало отличный результат, но только если вы нормально настроили ПИД. Теперь, вы можете использовать аналогичный принцип не используя ПИД. Чтобы плыть на точку впереди себя в нескольких метрах ПИД не особо нужен. Тесты на воде показали особо хороший мгновенный и оптимальный поворот к цели на алгоритме «Чистое преследование» вообще без каких то настроек. Это отличие сразу бросилось в газа. Ход на точку сразу был не совсем стабилен, были немного заметны виляния в стороны, но подкорректировав единственный коэффициент с 0.8 на 0.5 курс выровнялся. Больше ничего настраивать не пришлось. Как следствие, быстрые и оптимальные развороты позволили отправлять на точки в трех метрах стоя кормой к точке назначения. Кораблик разворачивался на месте и почти сразу поднимал бункер. Никаких лишних движений и пере регулировок от ПИД. ПИД алгоритм обучается по ходу движения, поэтому ему всегда надо какое то время чтобы подстроиться под ситуацию. А тут уже нет никакого накопления и сложного анализа информации, руль ставится сразу туда куда нужно без какого либо обучения. ПИД обычно настроить не так просто и обычно при развороте расстояние поворота было больше раза в два-три. В целом параметры для «Чистого преследования» настраивать нет необходимости, а сами они достаточно просты для понимания. В целом, я считаю ПИД алгоритм управления более стабильным по манере движения кораблика особенно на дистанции, кораблик плавает более плавно и уверенно. однако он имеет значительный (хотя и относительный) минус — требует от пользователя кропотливой настройки. Используйте «Чистое преследование», алгоритм показал себя на отлично. Если есть желание можете попробовать другой алгоритм реализованный в автопилоте Юнибот — «Векторное поле» который так же является простой альтернативой «ПИД».

Подробное объяснение «на пальцах»

Основная аналогия: Вождение автомобиля

Представьте, что вы ведете машину по дороге:

  • Вы НЕ смотрите прямо на точку назначения за 10 км
  • Вы смотрите на точку на дороге в 50-100 метрах впереди
  • И плавно ведете машину к этой точке

Чистое преследование работает ТОЧНО ТАК ЖЕ!

Параметры по умолчанию находятся справа чтобы не забыть, если хотите вернуть обратно.

Чувствительность руля (Коеф пропорц.упр.)

«Насколько резко катер следует за точкой-проводником»

  • Высокая (0.8-1.0):
    «Резкие движения» может начать вилять
    Быстрая реакция, но возможны рывки и «виляние»
  • Низкая (0.3-0.5):
    «Ленивое покачивание»
    Плавно, но катер долго «думает» перед маневром
  • Идеал (0.5-0.7):
    «Уверенные движения»
    Естественные повороты без суеты

Мертвая зона

«Игнорирование мелких шажков»

  • Маленькая (1-2°):
    «Перфекционист»
    Руль постоянно подрагивает, пытаясь исправить микроскопические отклонения
  • Большая (5-8°):
    «Рассеянный профессор»
    Катер заметно отклоняется от курса прежде чем начать корректировку
  • Идеал (2-4°):
    «Внимательный, но не педантичный»
    Игнорирует волновую качку, но держит общее направление

БАЗОВАЯ ДИСТАНЦИЯ (8-12м)

«Основной шаг»

На каком расстоянии катер обычно следует за точкой-проводником

  • Маленький катер (2-3м): 6-8м
    «Короткий шаг» — для точных маневров
  • Средний катер (4-6м): 8-12м
    «Стандартный шаг» — универсальный вариант
  • Большой катер (7м+): 10-15м
    «Широкий шаг» — для плавности

🚨 МИНИМАЛЬНАЯ ДИСТАНЦИЯ (3-5м)

«Личное пространство»

Ниже этого расстояния катер не приближается к точке

Зачем нужна:

  • ❌ Не дает катеру «зациклиться» у цели
  • ❌ Предотвращает бесконечные микроповороты
  • ✅ Сохраняет достоинство в финале танца (Это значит, что катер не будет унизительно метаться вокруг конечной точки, как неумелый танцор, который не знает, как закончить танец.)

Как настроить: 30-50% от базовой дистанции


🚀 МАКСИМАЛЬНАЯ ДИСТАНЦИЯ (20-30м)

«Взгляд на горизонт»

Насколько далеко может убежать точка на высокой скорости

Зачем нужна:

  • 🌊 На волнении — больше дистанция для плавности
  • 💨 На скорости — точка убегает дальше
  • 🏞️ На открытой воде — широкий обзор

Как настроить: 200-300% от базовой дистанции

Появится в меню если выбрать этот алгоритм

Алгоритм векторного поля разберем позднее