stateSpaceSE2

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

Описание

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

Создание

Описание

пример

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

space = 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

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

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

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

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

|

Введенный в R2019b