stateSpaceDubins

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

Описание

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

Создание

Описание

пример

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

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

Свойства

расширить все

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

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

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

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

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

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

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

Типы данных: 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++ с помощью Coder™ MATLAB ®

.
Введенный в R2019b