Создайте контроллер, чтобы следовать за набором waypoints
controllerPurePursuit
Система object™ создает объект контроллера, используемый, чтобы заставить транспортное средство дифференциального диска следовать за набором waypoints. Объект вычисляет линейное и скорости вращения для транспортного средства, учитывая текущее положение. Последовательные вызовы объекта с обновленными положениями обеспечивают обновленные скоростные команды для транспортного средства. Используйте MaxAngularVelocity
и DesiredLinearVelocity
свойства обновить скорости на основе эффективности транспортного средства.
LookaheadDistance
свойство вычисляет предварительную точку на пути, который является локальной целью для транспортного средства. Команда скорости вращения вычисляется на основе этой точки. Изменение LookaheadDistance
оказывает значительное влияние на эффективность алгоритма. Более высокое предварительное расстояние приводит к более сглаженной траектории для транспортного средства, но может заставить транспортное средство сокращать углы вдоль пути. Низкое предварительное расстояние может привести к колебаниям в отслеживании пути, вызвав нестабильное поведение. Для получения дополнительной информации о чистом алгоритме преследования смотрите Чистый Контроллер Преследования.
Примечание
Запуск в R2016b, вместо того, чтобы использовать step
метод, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x)
и y = obj(x)
выполните эквивалентные операции.
Чтобы вычислить линейный и скорость вращения управляют командами:
Создайте controllerPurePursuit
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.
создает чистый объект преследования, который использует чистый алгоритм преследования, чтобы вычислить линейные входные параметры и входные параметры скорости вращения для дифференциального транспортного средства диска.controller
= controllerPurePursuit
создает чистый объект преследования с дополнительными опциями, заданными одним или несколькими controller
= controllerPurePursuit(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)