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