stateSpaceSE2

SE (2) пространство состояний

Описание

stateSpaceSE2 параметры объектно-ориентированной памяти и состояния в SE (2) пространство состояний, которое состоит из векторов состояния, представленных [x, y, θ]. x и y являются Декартовы координаты, и θ является углом ориентации. Объект использует Евклидово расстояние, чтобы вычислить расстояние и использует линейную интерполяцию, чтобы вычислить перевод и вращение состояния.

Создание

Описание

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

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

Свойства

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

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

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

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

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

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

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

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

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

Вес применился к расчету расстояния X и Y, заданному как неотрицательный действительный скаляр.

В объекте, расстояние, вычисленное как:

d=(wxy(dx2+dy2))+wθdθ2

w xy является весом, применился к x и координатам y, и w, θ является весом, применился к координате θ. d x, d y и d θ является расстояниями в x, y и направлении θ, соответственно.

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

Вес применился к расчету расстояния θ, заданному как неотрицательный действительный скаляр.

В объекте, расстояние, вычисленное как:

d=(wxy(dx2+dy2))+wθdθ2

w xy является весом, применился к x и координатам y, и w, θ является весом, применился к координате θ. d x, d y и d θ является расстояниями в x, y и направлении θ, соответственно.

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

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

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

Примеры

свернуть все

Создайте SE (2) пространство состояний.

ss = stateSpaceSE2;

Создайте 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'); % for repeatable result
[pthObj,solnInfo] = planner.plan(start,goal);

Визуализируйте результаты.

map.show; 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