Чистый контроллер преследования

Чистое преследование является алгоритмом отслеживания пути. Он вычисляет команду скорости вращения, которая перемещает робота из его текущего положения, чтобы достичь некоторой дальней точки перед роботом. Линейная скорость принята постоянной, поэтому вы можете изменить линейную скорость робота в любой точке. Затем алгоритм перемещает перспективную точку на пути на основе текущего положения робота до последней точки пути. Можно думать об этом как о роботе, постоянно преследующем точку перед ним. Свойство LookAheadDistance определяет, как далеко помещена точка обзора.

The controllerPurePursuit объект не является традиционным контроллером, но действует как алгоритм отслеживания для следующих целей пути. Ваш контроллер уникален для заданного списка путевых точек. Могут быть заданы желаемая линейная и максимальная скорости вращения. Эти свойства определяются на основе спецификаций транспортного средства. Учитывая положение и ориентацию транспортного средства в качестве входов, объект может использоваться, чтобы вычислить команды линейных и угловых скоростей для робота. Как робот использует эти команды, зависит от системы, которую вы используете, поэтому примите во внимание, как роботы могут выполнять движение, учитывая эти команды. Конечным важным свойством является LookAheadDistance, который сообщает роботу, как далеко на пути проследить к. Это свойство объяснено более подробно в разделе ниже.

Ссылочная система координат

Важно понять исходную систему координат, используемую алгоритмом чистого преследования, для его входов и выходов. На рисунке ниже показана система координат ссылки. Входные точки пути [x y] координаты, которые используются для вычисления команд скорости робота. Положение робота вводится как положение и ориентирование (theta) списка точек следующим [x y theta]. Положительные x и y направления расположены в правом и восходящем направлениях соответственно (синие на рисунке). Значение theta является угловой ориентацией робота, измеренной против часовой стрелки в радианах от оси x (робот в настоящее время в 0 радианы).

Посмотрите вперед расстояние

The LookAheadDistance свойство является основным свойством настройки для контроллера. Расстояние опережающего взгляда - это то, как далеко вдоль пути робот должен выглядеть из текущего положения, чтобы вычислить команды скорости вращения. Рисунок ниже показывает робота и точку обзора. Как показано на этом изображении, обратите внимание, что фактический путь не соответствует прямой линии между путевыми точками.

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

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

Ограничения

Существует несколько ограничений, чтобы отметить об этом чистом алгоритме преследования:

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

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

Ссылки

[1] Coulter, R. Реализация алгоритма отслеживания пути чистого преследования. Университет Карнеги Меллон, Питтсбург, Пенсильвания, Ян 1990.

См. также

|