робототехника. ReedsSheppConnection

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

Описание

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

  • Прямо

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

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

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

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

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

Создание

Синтаксис

reedsConnObj = robotics.ReedsSheppConnection
reedsConnObj = robotics.ReedsSheppConnection(Name,Value)

Описание

пример

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

пример

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

Свойства

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

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

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

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

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

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

"Rp", "Rn"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

reedsConnObj = robotics.ReedsSheppConnection;

Задайте начальное и целевое положения как векторы[x y theta].

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

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

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

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

show(pathSegObj{1})

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

reedsConnObj = robotics.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 = 1×5 cell array
    {'L'}    {'R'}    {'L'}    {'N'}    {'N'}

pathSegObj{1}.MotionDirections
ans = 1×5

     1    -1     1     1     1

Отключите эту определенную последовательность движения в новом объекте связи. Уменьшайте MinTurningRadius, если робот более manueverable. Увеличьте противоположную стоимость, чтобы уменьшать вероятность используемых обратных направлений. Соедините положения снова, чтобы получить различный путь.

reedsConnObj = robotics.ReedsSheppConnection('DisabledPathTypes',{'LpRnLp'});
reedsConnObj.MinTurningRadius = 0.5;
reedsConnObj.ReverseCost = 5;

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);
pathSegObj{1}.MotionTypes
ans = 1×5 cell array
    {'L'}    {'S'}    {'L'}    {'N'}    {'N'}

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

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

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

Введенный в R2018b