Документация Engee

Pure Pursuit

Команды линейного и криволинейного управления.

Тип: PurePursuit

Путь в библиотеке:

/Navigation/Control algorithms/Pure Pursuit

Описание

Блок Pure Pursuit вычисляет команды линейной скорости и кривизны для следования по траектории, используя набор путевых точек и текущее положение транспортного средства, похожего на автомобиль, или транспортного средства с дифференциальным приводом. Блок использует обновленные положения для обновления команд линейной скорости и кривизны, чтобы транспортное средство следовало по траектории вдоль заданного набора путевых точек. Используйте параметры Maximum angular velocity (rad/s) и Desired linear velocity (m/s) для обновления кривизны и линейной скорости соответственно, в зависимости от характеристик транспортного средства.

Порт и параметр просматриваемого расстояния вычисляют точку опережения на траектории, которая является мгновенной локальной целью для транспортного средства. На основе этой точки вычисляется команда кривизны. Изменение просматриваемого расстояния оказывает существенное влияние на производительность алгоритма. Большее просматриваемое расстояние приводит к более плавной траектории движения транспортного средства, но может привести к срезанию углов на траектории. Слишком малое просматриваемое расстояние может привести к колебаниям при отслеживании траектории, вызывая нестабильное поведение.

Порты

Вход

# Pose — текущее положение транспортного средства
матрица

Details

Текущее положение транспортного средства, заданное в виде матрицы [x y theta], элементы которой соответствует положению по осям и и углу ориентации . Положительные углы измеряются против часовой стрелки от положительной оси .

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

# Waypoints — путевые точки
[] (по умолчанию) | массив

Details

Путевые точки, заданные в виде массива пар [x y] размером на , где — количество путевых точек. Путевые точки можно задать в виде массива в Engee.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

# Desired Linear Velocity — линейная скорость
скаляр

Details

Желаемая линейная скорость, заданная в виде скаляра в м/с. Контроллер предполагает, что транспортное средство движется с постоянной линейной скоростью и вычисленная кривизна не зависит от линейной скорости.

Зависимости

Чтобы использовать этот порт, установите флажок Specify desired linear velocity from input port.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

# Lookahead Distance — просматриваемое расстояние
скаляр

Details

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

Зависимости

Чтобы использовать этот порт, установите флажок Specify lookahead distance from input port.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

Выход

# Linear Velocity — линейная скорость
скаляр

Details

Линейная скорость, возвращаемая в виде скаляра в м/с.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

# Angular Velocity — угловая скорость
скаляр

Details

Угловая скорость, возвращаемая в виде положительного вещественного скаляра в рад/с. Угловая скорость вычисляется умножением кривизны на линейную скорость.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

# Target Direction — направление движения транспортного средства
скаляр

Details

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

Зависимости

Чтобы использовать этот порт, установите флажок Show Target Direction output port.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

Параметры

Основные

# Specify desired linear velocity from input port — активация входного порта для желаемых линейных скоростей
Logical

Details

Установите этот флажок, чтобы разрешить ввод желаемых линейных скоростей через входной порт Desired Linear Velocity.

Снимите этот флажок, чтобы задать желаемую линейную скорость с помощью параметра Desired linear velocity (m/s).

Значение по умолчанию

false (выключено)

Имя для программного использования

DesiredLinearVelocityPort

Настраиваемый

Нет

Вычисляемый

Нет

# Desired linear velocity (m/s) — линейная скорость
Real number

Details

Желаемая линейная скорость, заданная в виде скаляра в м/с. Контроллер предполагает, что транспортное средство движется с постоянной линейной скоростью и вычисленная кривизна не зависит от линейной скорости.

Зависимости

Чтобы использовать этот параметр, снимите флажок Specify desired linear velocity from input port.

Значение по умолчанию

0.1

Имя для программного использования

DesiredLinearVelocity

Настраиваемый

Да

Вычисляемый

Да

# Maximum angular velocity (rad/s) — угловая скорость
Real number

Details

Максимальная угловая скорость, заданная в виде положительного вещественного скаляра в рад/с.

Значение по умолчанию

1.0

Имя для программного использования

MaxAngularVelocity

Настраиваемый

Да

Вычисляемый

Да

# Specify lookahead distance from input port — активация входного порта для определения просматриваемого расстояния
Logical

Details

Установите этот флажок, чтобы разрешить ввод просматриваемых расстояний через входной порт Lookahead Distance.

Снимите этот флажок, чтобы задать желаемое просматриваемое расстояние с помощью параметра Lookahead distance (m).

Значение по умолчанию

false (выключено)

Имя для программного использования

LookaheadDistancePort

Настраиваемый

Нет

Вычисляемый

Нет

# Lookahead distance (m) — просматриваемое расстояние
Real number

Details

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

Зависимости

Чтобы использовать этот параметр, снимите флажок Specify lookahead distance from input port.

Значение по умолчанию

1.0

Имя для программного использования

LookaheadDistance

Настраиваемый

Да

Вычисляемый

Да

# Show Target Direction output port — индикатор направления цели
Logical

Details

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

Значение по умолчанию

false (выключено)

Имя для программного использования

TargetDirPort

Настраиваемый

Нет

Вычисляемый

Нет