stateSpaceReedsShepp

Пространство состояний для транспортных средств Тростников-Shepp

Описание

stateSpaceReedsShepp параметры объектно-ориентированной памяти и состояния в пространстве состояний ReedsShepp, которое состоит из векторов состояния, представленных [x, y, θ]. x и y являются Декартовы координаты, и θ является углом ориентации. Пространство состояний Тростников-Shepp имеет нижний предел на поворачивающемся радиусе (заданный MinTurningRadius свойство в объекте) и вперед и противоположные затраты (заданный ForwardCost и ReverseCost свойства в объекте) для навигации между состояниями.

Создание

Описание

пример

space = stateSpaceReedsShepp создает объект пространства состояний Тростников-Shepp с границами состояния по умолчанию для x, y и θ.

sapce = stateSpaceReedsShepp(bounds) задает bounds для x, y и θ. Значения состояния вне границ являются усеченными к границам. Вход, bounds, устанавливает значение свойства StateBounds.

Свойства

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

Имя пространства состояний в виде строки.

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

Размерность пространства состояний в виде положительного целого числа.

Границы переменных состояния в виде 3 2 матрицы с действительным знаком.

  • Первая строка задает нижние и верхние границы для состояния x в метрах.

  • Вторая строка задает нижние и верхние границы для состояния y в метрах.

  • Третья строка задает нижние и верхние границы для состояния θ в радианах.

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

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

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

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

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

copyСоздайте копию объекта пространства состояний
distanceРасстояние между двумя состояниями
enforceStateBoundsОбеспечьте ложь состояния в границах состояния
interpolateИнтерполируйте между состояниями
sampleGaussianДемонстрационное состояние с помощью Распределения Гаусса
sampleUniformДемонстрационное состояние с помощью равномерного распределения

Примеры

свернуть все

Создайте пространство состояний ReedsShepp.

ss = stateSpaceReedsShepp;

Создайте occupanyMap- основанный блок проверки допустимости состояния, использующий созданное пространство состояний.

sv = validatorOccupancyMap(ss);

Создайте карту occupany из карты в качестве примера и и установите разрешение карты как 10 ячеек/метр.

load exampleMaps
map = occupancyMap(simpleMap,10);
sv.Map = map;

Установите расстояние валидации для блока проверки допустимости.

sv.ValidationDistance = 0.01;

Обновите границы пространства состояний, чтобы совпасть с пределами карты.

ss.StateBounds = [map.XWorldLimits;map.YWorldLimits; [-pi pi]];

Создайте планировщика пути и увеличьте макс. расстояние связи.

planner = plannerRRT(ss,sv);
planner.MaxConnectionDistance = 0.3;

Установите запуск и целевые состояния.

start = [0.5,0.5,0];
goal = [2.5,0.2,0];

Запланируйте путь с настройками по умолчанию.

rng(100,'twister'); % repeatable result
[pthObj,solnInfo] = planner.plan(start,goal);

Визуализируйте результаты.

show(map); 
hold on;
plot(solnInfo.TreeData(:,1),solnInfo.TreeData(:,2),'.-'); % tree expansion
plot(pthObj.States(:,1), pthObj.States(:,2),'r-','LineWidth',2) % draw path

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

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

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

| |

Введенный в R2019b