reedsSheppConnection

Тип подключения пути тростников-Shepp

Описание

reedSheppConnection объект содержит информацию для вычисления reedsSheppPathSegment возразите, чтобы соединиться между положениями. Сегмент пути Тростников-Shepp соединяется два, изображает из себя последовательность пяти движений. Опции движения:

  • Прямо

  • Левый поворот в максимуме держится

  • Правый поворот в максимуме держится

  • Никакое перемещение

Сегмент пути Тростников-Shepp поддерживает и прямое и обратное движение.

Используйте этот объект связи задать параметры для модели движения транспортного средства, включая радиус превращения минимума и опции для типов пути. Чтобы сгенерировать сегмент пути между положениями с помощью этого типа подключения, вызовите connect функция.

Создание

Описание

пример

reedsConnObj = reedsSheppConnection создает объект с помощью значений свойств по умолчанию.

пример

reedsConnObj = reedsSheppConnection(Name,Value) задает значения свойств с помощью пар "имя-значение". Чтобы установить несколько свойств, задайте несколько пар "имя-значение".

Свойства

развернуть все

Радиус превращения минимума для транспортного средства, заданного как положительная скалярная величина в метрах. Радиус превращения минимума для самого маленького круга, который транспортное средство может сделать с максимумом, держатся в одном направлении.

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

Путь вводит, чтобы отключить, заданный как вектор скаляров строки или массива ячеек из символьных векторов.

Тип движенияОписание
"Sp"SN Прямо (p = вперед, n = реверс)
"Lp", "Ln"

Левый поворот под максимальным руководящим углом транспортного средства (p = вперед, n = реверс)

"Rp", "Rn"

Правый поворот под максимальным руководящим углом транспортного средства (p = вперед, n = реверс)

"N"Никакое движение

Если сегмент пути имеет меньше чем пять типов движения, остающимися элементами является "N" (никакое движение).

Чтобы видеть все доступные типы пути, смотрите AllPathTypes свойство.

Пример: ["LpSnLp","LnSnRpSn","LnSnRpSnLp"]

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

Это свойство доступно только для чтения.

Все возможные типы пути, заданные как массив ячеек из символьных векторов. Это списки свойств все типы. Чтобы отключить определенные типы, задайте типы из этого списка в DisabledPathTypes.

Для связей Тростников-Shepp существует 44 возможных комбинации типов движения.

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

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

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

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

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

Функции объекта

connectСоедините положения для данного типа подключения

Примеры

свернуть все

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

reedsConnObj = reedsSheppConnection;

Задайте запускаются, и цель изображает из себя [x y theta] векторы.

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

Вычислите допустимый сегмент пути, чтобы соединить положения.

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

Покажите сгенерированный путь.

show(pathSegObj{1})

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

reedsConnObj = reedsSheppConnection;

Задайте запускаются, и цель изображает из себя [x y theta] векторы.

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

Вычислите допустимый сегмент пути, чтобы соединить положения.

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

Покажите сгенерированный путь. Заметьте направление поворотов.

show(pathSegObj{1})

pathSegObj{1}.MotionTypes
ans = 1x5 cell array
    {'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 array
    {'L'}    {'S'}    {'L'}    {'N'}    {'N'}

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

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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

Объекты

Функции

Введенный в R2019b