exponenta event banner

navPath

Описание

navPath в объекте хранятся контуры, которые обычно создаются планировщиками геометрических контуров. Точки пути сохраняются как состояния в соответствующем пространстве состояний.

Создание

Описание

path = navPath создает объект-контур, path, используя пространство состояния SE2 с настройками по умолчанию.

пример

path = navPath(space) создает объект-путь с пространством состояний, указанным space. space также задает значение свойства StateSpace.

path = navPath(space,states) позволяет инициализировать путь с выборками состояния, заданными states. Определить states в виде матрицы выборок состояний. Государства, которые находятся за пределами StateBounds государства space объекты сводятся к границам. states ввод также задает значение свойства States.

Свойства

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

Пространство состояния для пути, указанное как объект пространства состояния. Каждое состояние в пути является образцом из указанного пространства состояний. Можно использовать такие объекты, как stateSpaceSE2, stateSpaceDubins, или stateSpaceReedsShepp как государственный космический объект. Можно также настроить состояние объекта пространства с помощью nav.StateSpace объект.

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

Состояния пути, определяемые как вещественно-значная матрица M-by-N. M - количество состояний в тракте, а N - размерность каждого состояния. Это свойство можно задать только во время создания объекта или с помощью append функция.

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

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

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

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

appendДобавление состояний в конец пути
copyСоздать копию объекта-пути
interpolateИнтерполяция точек вдоль траектории
pathLengthДлина пути

Примеры

свернуть все

Создайте объект navPath на основе нескольких ППМ в пространстве Dubins.

dubinsSpace = stateSpaceDubins([0 25; 0 25; -pi pi])
dubinsSpace = 
  stateSpaceDubins with properties:

   SE2 Properties
                 Name: 'SE2 Dubins'
          StateBounds: [3×2 double]
    NumStateVariables: 3

   Dubins Vehicle Properties
     MinTurningRadius: 1

pathobj = navPath(dubinsSpace)
pathobj = 
  navPath with properties:

    StateSpace: [1×1 stateSpaceDubins]
        States: [0×3 double]
     NumStates: 0

waypoints = [...
    8 10 pi/2;
    10 12 pi/4;
    12 17 pi/2;
    11 10 -pi];
append(pathobj, waypoints);

Интерполировать этот путь так, чтобы он содержал ровно 250 точек.

interpolate(pathobj, 250)

Визуализируйте интерполированный путь и исходные ППМ.

figure;
grid on;
axis equal;
hold on;
plot(pathobj.States(:,1), pathobj.States(:,2), ".b");
plot(waypoints(:,1), waypoints(:,2), "*r", "MarkerSize", 10)

Рассчитать длину пути.

len = pathLength(pathobj);
disp("Path length = " + num2str(len))
Path length = 19.37
Представлен в R2019b