Дорожная карта обученияСредний

Следование по траектории для роботов: дорожная карта обучения

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

Планирование и следование — разные задачи, а большинство материалов по робототехнике обучает только первой. A* даёт маршрут; ничто в нём не сообщает колёсам, что делать. Этот путь — недостающая ступень между списком опорных точек и роботом, который действительно их проезжает.

Проходите узлы по порядку. Каждый задаёт основу для следующего, а пропуск любого из них приводит к тому, что робот сбивается с пути по причине, которую невозможно изолировать.

Прежде чем начать

Вам нужно уметь управлять роботом с дифференциальным приводом — двумя двигателями, драйвером и циклом с постоянной частотой. Путь по управлению двигателями охватывает всё это, и данный путь предполагает предварительное его изучение. Теория управления не требуется: pure pursuit основан на геометрии, а не на ПИД-регуляторе (PID).

Чему вы сможете научиться

  • Преобразовывать показания энкодеров колёс в оценку положения и ориентации и указать, насколько она накапливает ошибку на каждый пройденный метр по вашему покрытию.
  • Объединять гироскоп с абсолютным источником для получения курса, который не уходит от исходного значения за время выполнения задачи.
  • Реализовать pure pursuit по формуле кривизны примерно в двенадцати строках и объяснить каждую из них.
  • Выбирать расстояние упреждения по измеренному запаздыванию управления робота, а не методом проб, и задавать его в зависимости от скорости.
  • Измерять поперечную ошибку относительно эталонных данных и сообщать среднеквадратичное отклонение (RMS), максимальную ошибку и участок траектории, на котором сосредоточена ошибка.
  • Объяснить, почему на необработанных данных GPS тот же регулятор работает в четырнадцать раз хуже, и исправить это без изменения регулятора.

Где обычно возникают трудности

Настройка регулятора, когда проблема заключается в оценке. Если робот считает, что находится на траектории, он сообщает нулевую ошибку и уверенно направляется в куст. До изменения коэффициентов измеряйте по внешнему источнику — рулетка подходит.

Доверие к симулятору без запаздывания. Идеально кинематический pure pursuit становится лучше при уменьшении упреждения, поэтому модель без задержки рекомендует единственный параметр, вызывающий колебания на реальном оборудовании. Добавьте постоянную времени рулевого управления и задержку измерения в любую модель, по которой настраиваете систему.

Глобальный поиск ближайшей точки. Это очевидная реализация, и она молча работает неправильно на любой траектории, которая возвращается назад, сопоставляя отрезок, пройденный минуту назад. Отслеживайте длину дуги, ищите в окне вокруг этой точки и не допускайте отката пройденного пути.

Разрешение неоднозначности в вершине в пользу входящего отрезка. После поворота оба соседних отрезка проецируются в одну точку на одинаковом расстоянии. Если оставить неправильный, регулятор по ошибке курса и бокового отклонения увидит примерно нулевые значения обеих величин и поедет прямо с траектории. Это самая незаметная ошибка на странице.

Соберите передвижного робота с навигацией по опорным точкам GPS, который точно следует этой последовательности: сначала в помещении по энкодерам, затем на улице по объединённым данным GPS.

Что понадобится

Что Зачем это нужно пути Примечания
Энкодеры на обоих колёсах Оценка положения, которую использует всё остальное Здесь не опционально: путь посвящён оценке положения
Гироскоп или инерциальный измерительный модуль (IMU) Колёса не могут измерить поворот, при котором проскользнули Достаточно MPU-6050
Цикл с постоянной частотой И модуль оценки, и регулятор интегрируют данные по времени Фиксированный интервал или передача фактического прошедшего времени
Источник для измерений Без эталонных данных невозможно настроить следование Меловая линия и рулетка лучше любого объёма телеметрии
GPS-модуль (только для части работы на улице) Последние два узла В помещении он вообще не сможет определить положение

Почему путь устроен именно так

Этот путь необычен: первые пять узлов вообще не о рулевом управлении. Они строят оценку положения, поскольку регулятор траектории, действующий на неверные данные, выходит из строя точно как плохо настроенный регулятор: робот сообщает нулевую ошибку, направляясь в куст. Если сначала получить верную оценку, то при настройке коэффициентов можно будет доверять измерениям.

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

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

Профили движения идут перед pure pursuit, поскольку алгоритм следования непрерывно задаёт скорость, а скачкообразная команда приводит к рывкам и проскальзыванию робота — то есть возвращает ошибку одометрии, на борьбу с которой вы потратили время на трёх предыдущих узлах.

Сначала pure pursuit, затем лабораторная работа, затем поперечная ошибка. Регулятор занимает примерно двенадцать строк, а его геометрия проста; сложнее выбрать упреждение и оценить результат. Лабораторная работа позволяет увидеть компромисс при выборе упреждения, а узел поперечной ошибки превращает утверждение «робот едет хорошо» в число со значением RMS и максимальной ошибкой.

GPS — последним и только последним. Он ничего не меняет в регуляторе и всё в оценке положения. Благодаря этому порядку, когда точность траектории ухудшится в четырнадцать раз, вы уже точно знаете, что причина не в регуляторе.

Контрольные точки: как проверить усвоение этапа

Этап Проверка Признак успешного прохождения
Энкодеры Вручную протолкните робота на 2 m вдоль меловой линии Показания преобразуются в 2000 mm с точностью 2% на обоих колёсах
Одометрия Проедьте квадрат 1 m и вернитесь в начало Расчётная траектория замыкается с точностью до нескольких сантиметров, и вы можете назвать ошибку на метр
Проскальзывание Выполните разворот и сравните курс по гироскопу с курсом одометрии Значения различаются, и вы можете назвать разницу — это проскальзывание
Объединение с IMU Медленно поверните робота на 360°, затем оставьте неподвижным на две минуты Курс возвращается к исходному и не дрейфует на месте
Профили движения Задайте скачкообразное и профилированное изменение скорости При профилированном движении шины не визгят, а при скачкообразном — да
Pure pursuit Проведите по прямой со смещением старта 0.5 m Сходится без перерегулирования, и вы можете назвать упреждение в метрах
Настройка упреждения Намеренно уменьшите упреждение вдвое Возникают колебания: теперь вы знаете режим отказа и почему его скрывает симулятор без задержки
Поперечная ошибка Проедьте восьмёрку и запишите ошибку относительно эталонных данных Можно сообщить RMS и максимальную ошибку, а также указать участок, где она достигается
GPS Запишите координаты, не перемещая робота, в течение десяти минут Видно, насколько метров блуждают координаты, за которыми иначе гнался бы регулятор

Где заканчивается этот путь

Этот путь получает заданную траекторию и проезжает по ней. Он не создаёт траекторию — этим занимается планирование пути и построение карт, и вместе эти части образуют полный стек навигации.

Он также не охватывает три вещи. Обход препятствий во время следования — реакция на объект, появившийся на уже выбранной траектории, — требует локального планировщика, работающего совместно с алгоритмом следования, и является объективно более сложной задачей, чем каждая половина по отдельности. Руление по модели Аккермана и омнидирекционное руление изменяют геометрию: pure pursuit легко адаптируется к роботу с рулевым управлением, но здесь переход от кривизны к скоростям колёс относится именно к дифференциальному приводу; для платформы, которая может двигаться вбок, начните с омнидирекционного привода и учтите, что омнидирекционный робот может обеспечить строго лучший результат, чем оба регулятора здесь, поскольку способен корректировать положение, не изменяя курс. И RTK GPS (GPS с коррекцией в реальном времени), повышающий точность определения положения на улице с метров до сантиметров, — именно то, что делает следование по траектории на улице по-настоящему точным; стоит знать о его существовании, прежде чем считать, что навигация на улице просто неточна.

Дорожная карта обучения

Путь

Проходите узлы по порядку — каждый открывает следующий, когда вы его выполните. Ваш прогресс сохраняется на этом устройстве.

0 / 11 выполнено

100%
Симулятор

Настраивайте упреждение в реальном времени

Интерактивно

Открыть симулятор
Цель

Выполняйте маршрутную задачу

Навык открыт

Частые вопросы

Часто задаваемые вопросы

Чем планирование пути отличается от следования по траектории?

Планирование создаёт маршрут, а следование заставляет колёса его проехать. A* выдаёт список опорных точек и ничего не сообщает о рулевом управлении, скорости или действиях, когда робот оказался на полметра левее нужного места. Следование по траектории — недостающая половина: зная, где робот считает себя находящимся и куда идёт траектория, решите, что должны делать колёса в данный момент. Большинство материалов по робототехнике подробно обучает планированию и почти не рассматривает следование, поэтому робот с правильным планом так часто сбивается с пути.

Как выбрать расстояние упреждения для pure pursuit?

По измеренному запаздыванию управления вашего робота, а не методом проб. Дистанция упреждения должна быть достаточно большой, чтобы робот физически успел до выбранной точки добраться с учётом времени отклика рулевого управления: слишком малая вызывает колебания, слишком большая приводит к срезанию углов. Измерьте время между командой на поворот и фактическим поворотом робота, умножьте его на скорость и начните с этого значения. Затем задавайте дистанцию в зависимости от скорости: одному и тому же роботу на 1 m/s нужно большее упреждение, чем на 0.2 m/s, поскольку за это время он проходит большее расстояние.

Почему мой алгоритм следования работает в симуляторе, но колеблется на роботе?

Почти наверняка потому, что в симуляторе нет запаздывания. Чисто кинематическая модель pure pursuit монотонно улучшается при уменьшении упреждения, поэтому настройка по ней рекомендует самое короткое упреждение — именно тот параметр, который вызывает колебания на реальном роботе. Любая модель, по которой вы настраиваете систему, должна включать постоянную времени рулевого управления и задержку измерения, иначе она уверенно научит вас противоположному тому, что нужно роботу.

Pure pursuit или Stanley — какой регулятор траектории использовать?

Pure pursuit для роботов с дифференциальным приводом и гладких траекторий; Stanley, когда точность передней оси важнее плавности. Pure pursuit рулит к точке впереди на траектории, поэтому прощает неточности и обеспечивает естественную плавность, но срезает углы. Stanley непосредственно объединяет ошибку курса и поперечную ошибку, точнее отслеживает траекторию, но хуже переносит шумную оценку положения. Для небольшого робота, работающего в помещении, pure pursuit почти всегда является верным первым выбором.

Почему на улице при работе с GPS мой робот значительно хуже отслеживает траекторию?

Потому что регулятор исправен, а оценка положения — нет. Бытовой GPS-приёмник обновляется с частотой 1–10 Hz и имеет погрешность в несколько метров, тогда как одометрия колёс обеспечивает сантиметровую точность и обновляется с частотой считывания. Если передать одному и тому же регулятору координатное решение GPS, которое скачком смещается на два метра между обновлениями, регулятор будет следовать за этими скачками. Проблема не в регуляторе: нужно объединить GPS с одометрией и источником курса, чтобы регулятор получал сглаженное положение, а GPS корректировал медленный дрейф, а не управлял быстрым контуром.

Почему мой робот сходит с траектории сразу после поворота?

Это неоднозначность в вершине, самая незаметная ошибка на всём пути. Сразу после поворота оба соседних отрезка траектории проецируются в одну точку на одинаковом расстоянии, поэтому наивный поиск ближайшей точки может сопоставить уже пройденный отрезок. Регулятор, работающий по ошибке курса и бокового отклонения, затем видит примерно нулевые значения обеих величин и едет прямо с траектории, всё время сообщая об идеальном следовании. Отслеживайте длину дуги вдоль траектории, ищите только в окне вокруг последнего положения и не допускайте отката пройденного пути.