stateSpaceReedsShepp

Пространство состояний для транспортных средств Ридса-Шеппа

Описание

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

Создание

Описание

пример

space = stateSpaceReedsShepp создает объект пространства состояний Ридса-Шеппа с ограничениями по умолчанию для 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);

Создайте карту заполнения из примера карты и установите разрешение карты 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++ с помощью Coder™ MATLAB ®

.
Введенный в R2019b