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
    {'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])

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

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

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

Объекты

Функции

Введенный в R2019b