show

Визуализируйте сегмент пути

Описание

пример

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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object contains an object of type quiver.

Входные параметры

свернуть все

Сегмент пути в виде dubinsPathSegment или reedsSheppPathSegment объект.

Аргументы name-value

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

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

Оси, чтобы построить путь на в виде Axes указатель.

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

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

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

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

Смотрите также

Функции

Объекты

Введенный в R2019b