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. 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