reedsSheppConnection

Тип соединения Ридс-Шепп путь

Описание

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

  • Прямо

  • Поворот влево на максимальном руле

  • Поворот вправо на максимальном руле

  • Нет движения

Сегмент контура Ридса-Шеппа поддерживает движение как вперед, так и назад.

Используйте этот объект соединения для определения параметров для модели движения транспортного средства, включая минимальный радиус поворота и опции для типов путей. Чтобы сгенерировать сегмент контура между положениями, используя этот тип соединения, вызовите 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.

Для соединений Ридса-Шеппа существует 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})

Figure contains an axes. The axes contains 13 objects of type line, scatter. These objects represent Forward Path, Reverse 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.

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

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

.

См. также

Объекты

Функции

Введенный в R2019b