stateSpaceDubins

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

Описание

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

Создание

Описание

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

Создайте пространство состояний Dubins и установите минимум Тьюринг readius к 0.2.

ss = stateSpaceDubins;
ss.MinTurningRadius = 0.2;

Создайте 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