Создайте контроллер, чтобы следовать набору путевых точек
The controllerPurePursuit
System object™ создает объект контроллера, используемый для выполнения дифференциального привода транспортного средства с набором путевых точек. Объект вычисляет линейную и угловую скорости для транспортного средства, учитывая положение тока. Последующие вызовы объекта с обновленными положениями обеспечивают обновленные команды скорости для транспортного средства. Используйте MaxAngularVelocity
и DesiredLinearVelocity
свойства для обновления скоростей на основе эффективности транспортного средства.
The LookaheadDistance
свойство вычисляет перспективную точку на пути, которая является локальной целью для транспортного средства. Команда скорости вращения вычисляется на основе этой точки. Изменение LookaheadDistance
оказывает значительное влияние на эффективность алгоритма. Более высокое расстояние обзора приводит к более плавной траектории для транспортного средства, но может заставить транспортное средство срезать углы вдоль пути. Низкое расстояние обзора может привести к колебаниям в отслеживании пути, вызывая нестабильное поведение. Для получения дополнительной информации об алгоритме чистого преследования смотрите Pure Pursuit Controller.
Примечание
Начиная с R2016b, вместо использования step
метод для выполнения операции, заданной системным объектом, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x)
и y = obj(x)
выполнять эквивалентные операции.
Для вычисления команд линейного и углового управления скоростью:
Создайте controllerPurePursuit
Объекту и установите его свойства.
Вызывайте объект с аргументами, как будто это функция.
Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».
создает чистый объект преследования, который использует алгоритм чистого преследования, чтобы вычислить линейные и угловые входные параметры скорости для дифференциального привода.controller
= controllerPurePursuit
создает чистый объект преследования с дополнительными опциями, заданными одним или несколькими controller
= controllerPurePursuit(Name,Value)Name,Value
пар. Имя (Name) - это имя свойства, а значение (Value) - соответствующее значение. Имя должно находиться внутри одинарных кавычек (' '
). Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN
. Не заданные свойства сохраняют значения по умолчанию.
controller = controllerPurePursuit('DesiredLinearVelocity', 0.5)
[
возвращает перспективную точку, которая является расположением на пути, используемом для вычисления команд скорости. Это расположение на пути вычисляется с помощью vel
,angvel
,lookaheadpoint
]
= controller(pose
)LookaheadDistance
свойство на controller
объект.
Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj
, используйте следующий синтаксис:
release(obj)
binaryOccupancyMap
| mobileRobotPRM
| occupancyMap
(Navigation Toolbox)