exponenta event banner

stateSpaceSE2

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

Описание

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

Создание

Описание

пример

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

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

Свойства

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

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

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

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

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

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

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

  • В третьей строке указываются нижние и верхние границы в радианах.

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

Вес, применяемый к вычислению расстояния x и y, определяемый как неотрицательный действительный скаляр.

В объекте расстояние вычисляется следующим образом:

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

wxy - вес, применяемый к координатам x и y, а w dx, dy и - расстояния в направлении x, y и, соответственно.

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

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

В объекте расстояние вычисляется следующим образом:

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

wxy - вес, применяемый к координатам x и y, а w dx, dy и - расстояния в направлении 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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2019b