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

Figure contains an axes. The axes with title Occupancy Grid contains 3 objects of type image, line.

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

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

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

| |

Введенный в R2019b