exponenta event banner

показать

Визуализация сегмента пути

Описание

пример

show(pathSeg) строит график сегмента пути с позициями начала и цели и их заголовками.

show(pathSeg,Name,Value) также указывает Name,Value пар для управления настройками отображения.

Примеры

свернуть все

Создать dubinsConnection объект.

dubConnObj = dubinsConnection;

Определить начало и цель как [x y theta] векторы.

startPose = [0 0 0];
goalPose = [1 1 pi];

Вычислите допустимый сегмент пути для соединения поз.

[pathSegObj, pathCosts] = connect(dubConnObj,startPose,goalPose);

Отображение созданного пути.

show(pathSegObj{1})

Figure contains an axes. The axes contains 12 objects of type line, scatter. These objects represent Path, Start Position, Goal Position.

Создать reedsSheppConnection объект.

reedsConnObj = reedsSheppConnection;

Определить начало и цель как [x y theta] векторы.

startPose = [0 0 0];
goalPose = [1 1 pi];

Вычислите допустимый сегмент пути для соединения поз.

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);

Отображение созданного пути. Обратите внимание на направление поворотов.

show(pathSegObj{1})

Figure contains an axes. The axes contains 13 objects of type line, scatter. These objects represent Forward Path, Reverse Path, Start Position, Goal Position.

pathSegObj{1}.MotionTypes
ans = 1x5 cell
    {'L'}    {'R'}    {'L'}    {'N'}    {'N'}

pathSegObj{1}.MotionDirections
ans = 1×5

     1    -1     1     1     1

Отключите эту конкретную последовательность движения в новом объекте соединения. Уменьшите MinTurningRadius если робот более маневренный. Увеличение затрат на обратное направление для уменьшения вероятности использования обратных направлений. Снова подключите позы, чтобы получить другой путь.

reedsConnObj = reedsSheppConnection('DisabledPathTypes',{'LpRnLp'});
reedsConnObj.MinTurningRadius = 0.5;
reedsConnObj.ReverseCost = 5;

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);
pathSegObj{1}.MotionTypes
ans = 1x5 cell
    {'L'}    {'S'}    {'L'}    {'N'}    {'N'}

show(pathSegObj{1})
xlim([0 1.5])
ylim([0 1.5])

Figure contains an axes. The axes contains 10 objects of type line, scatter. These objects represent Forward Path, Start Position, Goal Position.

Создать dubinsConnection объект.

dubConnObj = dubinsConnection;

Определить начало и цель как [x y theta] векторы.

startPose = [0 0 0];
goalPose = [1 1 pi];

Вычислите допустимый сегмент пути для соединения поз.

[pathSegObj,pathCosts] = connect(dubConnObj,startPose,goalPose);

Отображение созданного пути.

show(pathSegObj{1})

Figure contains an axes. The axes contains 12 objects of type line, scatter. These objects represent Path, Start Position, Goal Position.

Интерполяция позирует вдоль пути. Получайте позу каждые 0,2 метра, включая переходы между поворотами.

length = pathSegObj{1}.Length;
poses = interpolate(pathSegObj{1},0:0.2:length)
poses = 32×3

         0         0         0
    0.1987   -0.0199    6.0832
    0.3894   -0.0789    5.8832
    0.5646   -0.1747    5.6832
    0.7174   -0.3033    5.4832
    0.8309   -0.4436    5.3024
    0.8418   -0.4595    5.3216
    0.9718   -0.6110    5.5216
    1.1293   -0.7337    5.7216
    1.3081   -0.8226    5.9216
      ⋮

Используйте quiver функция для построения графика этих поз.

quiver(poses(:,1),poses(:,2),cos(poses(:,3)),sin(poses(:,3)),0.5)

Figure contains an axes. The axes contains an object of type quiver.

Входные аргументы

свернуть все

Сегмент пути, указанный как dubinsPathSegment или reedsSheppPathSegment объект.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Headings',{'transitions'}

Оси для построения траектории, указанные как Axes рукоятка.

Углы заголовка для отображения, заданные как массив ячеек вектора символов или строковых скаляров. Опции - это любое сочетание 'start','goal', и 'transitions'. Чтобы отключить отображение всех заголовков, укажите {''}.

Позиции для отображения, указанные как 'both', 'start', 'goal', или 'none'. Начальная позиция помечается зеленым цветом, а целевая позиция - красным.

Длина курса, заданная как положительный числовой скаляр. По умолчанию значение вычисляется согласно x- и y- пределы оси графика.

Типы данных: double

Представлен в R2019b