stateSpaceDubins

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

Описание

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

Создание

Описание

пример

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

ss = stateSpaceDubins;
ss.MinTurningRadius = 0.2;

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

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

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

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

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

| |

Введенный в R2019b