reedsSheppPathSegment

Ридс-Шепп сегмент контура соединяющий два положения

Описание

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

  • Прямо

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

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

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

Создание

Чтобы сгенерировать reedSheppPathSegment объект, использовать connect функция со reedsSheppConnection объект:

reedsPathSegObj = connect(connectionObj,start,goal) соединяет начальное и целевое положения с помощью заданного объекта типа соединения.

Для конкретного определения сегмента контура:

reedsPathSegObj = reedsSheppPathSegment(connectionObj,start,goal,motionLengths,motionTypes) задает тип соединения Ридс-Шепп, начальное и целевое положения, а также соответствующие длины и типы движения. Эти значения заданы в соответствующих свойствах объекта.

Свойства

расширить все

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

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

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

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

Начальное положение транспортного средства в начале сегмента контура, заданное как вектор [x, y, Θ]. x и y в метрах. Θ находится в радианах.

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

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

Целевое положение транспортного средства в конце сегмента контура, заданное как вектор [x, y, Θ]. x и y в метрах. Θ находится в радианах.

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

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

Длина каждого движения в сегменте контура, заданная как пятиэлементный числовой вектор в метрах. Каждая длина движения соответствует типу движения, заданному в MotionTypes.

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

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

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

Тип движенияОписание
"S"Прямая (вперед, p или наоборот, n)
"L"

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

"R"

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

"N"Движения нет

Если сегмент контура имеет менее пяти типов движения, остальные элементы "N" (без движения).

Пример: {"L","S","R","L","R"}

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

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

Направление каждого движения в сегменте контура, заданное как пятиэлементный вектор на 1с (движение вперед) и -1с (движение назад). Каждое направление движения соответствует длине движения, заданной в MotionLengths и тип движения, заданный в MotionTypes.

Когда движение не происходит, то есть когда MotionTypes значение "N", затем соответствующее MotionDirections элемент 1.

Пример: [-1 1 -1 1 1]

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

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

Длина сегмента контура, заданная как положительная скалярная величина в метрах. Эта длина является просто суммой элементов в MotionLengths.

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

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

interpolateИнтерполируйте положения вдоль сегмента контура
showВизуализация сегмента контура

Примеры

свернуть все

Создайте 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.

Ссылки

[1] Ридс, Дж. А. и Л. А. Шепп. Оптимальные пути для автомобиля, который идет как вперед, так и назад. Pacific Journal of Mathematics. Том 145, № 2, 1990, стр. 367-393.

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

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

.

См. также

Объекты

Функции

Введенный в R2019b