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