exponenta event banner

stateSpaceDubins

Государственное пространство для дубинских транспортных средств

Описание

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

Создание

Описание

пример

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

Создание пространства состояния Дубинса и установка минимального радиуса тьюринга равным 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

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

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

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

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