exponenta event banner

показать

Визуализация траекторий

Описание

show(planner) визуализирует опорную траекторию и траекторию из кандидатов, сгенерированных plan функция. Траектория отображается как линейный график. График также включает режим datatip, который можно использовать для визуализации вектора осуществимости и индекса траектории из свойства TrajectiveList.

пример

show(planner,Name,Value) задает дополнительные параметры с использованием одного или нескольких Name,Value аргументы пары.

axHandle = show(planner) возвращает маркер перемещения осей фигуры, используемый для построения траектории.

Примеры

свернуть все

В этом примере показано, как планировать оптимальную траекторию с помощью trajectoryOptimalFrenet объект.

Создание и назначение карты средству проверки состояния

Создание объекта проверки состояния для проверки конфликтов.

stateValidator = validatorOccupancyMap;

Создайте карту сетки препятствий.

grid = zeros(50,100);
grid(24:26,48:53) = 1;

Создать binaryOccupancyMap с картой сетки.

map = binaryOccupancyMap(grid);

Назначьте карту средству проверки состояния.

stateValidator.Map = map;

Планирование и визуализация траектории

Создайте путь ссылки для плановика.

refPath = [0,25;100,25];

Инициализируйте объект планировщика путем ссылки и средством проверки состояния.

planner = trajectoryOptimalFrenet(refPath,stateValidator);

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

planner.TerminalStates.Longitudinal = 100;
planner.TerminalStates.Lateral = -10:5:10;
planner.FeasibilityParameters.MaxAcceleration = 10;

Укажите значение смещения отклонения, близкое к состоянию левой боковой клеммы, чтобы определить приоритет изменений левой полосы движения.

planner.DeviationOffset = 5;

Планирование траектории

Начальное декартово состояние транспортного средства.

initCartState = [0 25 pi/9 0 0 0];

Преобразовать декартово состояние транспортного средства в состояние Френета.

initFrenetState = cart2frenet(planner,initCartState);

Запланируйте траекторию из начального состояния Френета.

plan(planner,initFrenetState);

Визуализация траектории

Визуализируйте карту и траектории.

show(map)
hold on
show(planner,'Trajectory','all')

Figure contains an axes. The axes with title Binary Occupancy Grid contains 5 objects of type image, line, patch. These objects represent Waypoints, Reference Path, Optimal Trajectory.

В этом примере показано, как разделить продольные терминальные состояния при оптимальном планировании траектории с помощью trajectoryOptimalFrenet объект.

Создание и назначение карты средству проверки состояния

Создание объекта проверки состояния для проверки конфликтов.

statevalidator = validatorOccupancyMap; 

Создайте карту сетки препятствий.

grid = zeros(50,100);
grid(25:27,28:33) = 1;
grid(16:18,37:42) = 1;
grid(29:31,72:77) = 1;

Создать binaryOccupancyMap с картой сетки.

map = binaryOccupancyMap(grid);

Назначьте карту средству проверки состояния.

statevalidator.Map = map; 

Планирование и визуализация траектории

Создайте путь ссылки для плановика.

refPath = [0,25;30,30;75,20;100,25];

Инициализируйте объект планировщика путем ссылки и средством проверки состояния.

planner = trajectoryOptimalFrenet(refPath,statevalidator);

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

planner.TerminalStates.Longitudinal = 100;
planner.TerminalStates.Lateral = -5:5:5;
planner.FeasibilityParameters.MaxAcceleration = 10;

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

planner.NumSegments = 3;

Планирование траектории

Начальное состояние Френета транспортного средства.

initFrenetState = zeros(1,6);

Запланируйте траекторию из начального состояния Френета.

plan(planner,initFrenetState);

Визуализация траектории

Визуализируйте карту и траектории.

show(map)
hold on
show(planner,'Trajectory','all')
hold on

Создание границ полос движения

Вычислите конец опорного пути как состояние Frenet.

refPathEnd = cart2frenet(planner,[planner.Waypoints(end,:) 0 0 0 0]);

Расчет смещений полосы движения по обеим сторонам боковых концевых состояний со значением ширины половины полосы движения.

laneOffsets = unique([planner.TerminalStates.Lateral+2.5 planner.TerminalStates.Lateral-2.5]);

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

numLaneOffsets = numel(laneOffsets);
xRefPathEnd = ceil(refPathEnd(1));
laneXY = zeros((numLaneOffsets*xRefPathEnd)+numLaneOffsets,2);
xIndex = 0;

for laneID = 1:numLaneOffsets
    for x = 1:xRefPathEnd
        laneCart = frenet2cart(planner,[x 0 0 laneOffsets(laneID) 0 0]);
        xIndex = xIndex + 1;
        laneXY(xIndex,:) = laneCart(1:2);
    end
    xIndex = xIndex + 1;
    laneXY(xIndex,:) = NaN(1,2);
end

Печать границ полос движения.

plot(laneXY(:,1),laneXY(:,2),'LineWidth',0.5,'Color',[0.5 0.5 0.5],'DisplayName','Lane Boundaries','LineStyle','--')

Figure contains an axes. The axes with title Binary Occupancy Grid contains 6 objects of type image, line, patch. These objects represent Waypoints, Reference Path, Optimal Trajectory, Lane Boundaries.

Входные аргументы

свернуть все

Оптимальный планировщик траектории в пространстве Френета, указанный как trajectoryOptimalFrenet объект.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Trajectory','all'

Оси для построения траектории, указанные как разделенная запятыми пара, состоящая из 'Parent' и либо Axes или UIAxes объект. Посмотрите axes или uiaxes.

Опция отображения траектории, заданная как разделенная запятыми пара, состоящая из 'Trajectory' и либо 'optimal' или 'all'.

Опция отображения ссылочного пути, заданная как разделенная запятыми пара, состоящая из 'ReferencePath' и либо 'on' или 'off'.

Опция отображения цвета траектории, заданная как разделенная запятыми пара, состоящая из 'TrajectoryColor' и одно из следующих:

  • 'acceleration'

  • 'cost'

  • 'velocity'

  • 'none'

Это свойство используется для отображения заданной траектории в виде градиента цвета вдоль заданной траектории.

Выходные аргументы

свернуть все

Маркер перемещения осей, используемый для построения траектории, возвращаемый как axes, или uiaxes объект.

См. также

|

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