Создайте контроллер, чтобы следовать за набором waypoints
Система robotics.PurePursuit
object™ создает объект контроллера, используемый, чтобы заставить робота с дифференциальным приводом следовать за набором waypoints. Объект вычисляет линейные и угловые скорости для робота, учитывая текущее положение робота. Последовательные вызовы объекта с обновленными положениями обеспечивают обновленные скоростные команды для робота. Используйте свойства MaxAngularVelocity
и DesiredLinearVelocity
обновить скорости на основе производительности робота.
Свойство LookaheadDistance
вычисляет предварительную точку на пути, который является локальной целью для робота. Угловая скоростная команда вычисляется на основе этой точки. Изменение LookaheadDistance
оказывает значительное влияние на производительность алгоритма. Более высокое предварительное расстояние приводит к более сглаженной траектории для робота, но может заставить робота сокращать углы вдоль пути. Низкое предварительное расстояние может привести к колебаниям в отслеживании пути, вызвав нестабильное поведение. Для получения дополнительной информации о чистом алгоритме преследования смотрите Чистый Контроллер Преследования.
При запуске в R2016b, вместо того, чтобы использовать метод step
, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x)
и y = obj(x)
выполняют эквивалентные операции.
Чтобы вычислить линейную и угловую скорость управляют командами:
Создайте объект robotics.PurePursuit
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
controller = robotics.PurePursuit
controller = robotics.PurePursuit(Name,Value)
создает чистый объект преследования, который использует чистый алгоритм преследования, чтобы вычислить линейные и угловые скоростные входные параметры для робота с дифференциальным приводом.controller
= robotics.PurePursuit
создает чистый объект преследования с дополнительными опциями, заданными одной или несколькими парами controller
= robotics.PurePursuit(Name,Value)Name,Value
. Имя является именем свойства, и Значение является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' ').
Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN
. Свойства, не заданные, сохраняют свои значения по умолчанию.
controller = robotics.PurePursuit('DesiredLinearVelocity', 0.5)
[vel,angvel]
= controller(pose)
[vel,angvel,lookaheadpoint]
= controller(pose)
[
возвращает предварительную точку, которая является местоположением на пути, используемом, чтобы вычислить скоростные команды. Это местоположение на пути вычисляется с помощью свойства vel
,angvel
,lookaheadpoint
]
= controller(pose
)LookaheadDistance
на объекте controller
.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
robotics.BinaryOccupancyGrid
| robotics.OccupancyGrid
| robotics.PRM