Визуализация траекторий
show( визуализирует ссылочный путь и траекторию от кандидатов, сгенерированных planner)plan функция. Траектория показывается линейным графиком. График также включает режим всплывающих подсказок, который может использоваться, чтобы визуализировать вектор выполнимости и индекс траектории от TrajectoryList свойство.
show( задает дополнительные опции с помощью одного или нескольких planner,Name,Value)Name,Value парные аргументы. Заключите каждое имя в одинарных кавычках ('').
В этом примере показано, как запланировать оптимальную траекторию с помощью trajectoryOptimalFrenet объект.
Создайте и присвойте карту блоку проверки допустимости состояния
Создайте объект блока проверки допустимости состояния для проверки столкновения.
stateValidator = validatorOccupancyMap;
Создайте карту сетки препятствия.
grid = zeros(700,700); grid(296:305,150:175) = 1; grid(286:295,300:325) = 1; grid(306:315,300:325) = 1; grid(296:305,450:475) = 1; grid(286:295,600:625) = 1; grid(306:315,600:625) = 1;
Создайте binaryOccupancyMap с картой сетки.
map = binaryOccupancyMap(grid);
Присвойте карту блоку проверки допустимости состояния.
stateValidator.Map = map;
Запланируйте и визуализируйте траекторию
Создайте ссылочный путь для планировщика, чтобы следовать.
refPath = [10,400;700,400];
Объявите, что указатель функции стоимости приоритизирует оставленный изменения маршрута.
leftLaneChangeCost = @(states)((states(end,2) < refPath(end,2))*10);
Инициализируйте объект планировщика со ссылочным путем, блоком проверки допустимости состояния и пользовательской функцией стоимости.
plannerObj = trajectoryOptimalFrenet(refPath,stateValidator,'CostFunction',leftLaneChangeCost);Присвойте боковые значения отклонения.
plannerObj.TerminalStates.Lateral = -10:10:10;
Генерация траектории
Инициализируйте переменные для цикла перепланирования.
previousDeviationValue = 0; deviationValue = 0; initState = zeros(1,6);
Повторно запланируйте, пока итоговый waypoint не является самым близким к терминальному состоянию.
for j = 1:150 % Deviation from the current reference path if initState(4) > 5 deviationValue = 10; elseif initState(4) < -5 deviationValue = -10; end % Move reference path to the current lane if previousDeviationValue ~= deviationValue % Shift the waypoints by the deviation value plannerObj.Waypoints = [plannerObj.Waypoints(:,1), plannerObj.Waypoints(:,2) + deviationValue]; % Shift the terminal states such that they remain fixed in world frame plannerObj.TerminalStates.Lateral = plannerObj.TerminalStates.Lateral - deviationValue; % Store the deviation value previousDeviationValue = deviationValue; % Update initState variable with the new planner object initState = cart2frenet(plannerObj,trajectory(10,1:6)); end % Generate a trajectory from initState trajectory = plan(plannerObj,initState); % Use 10th state of the current trajectory as a starting point for % replanning initState = cart2frenet(plannerObj,trajectory(10,1:6)); % Visualize every 5th iteration if mod(j,5)==0 show(map) hold on; show(plannerObj,'TrajectoryColor','none'); drawnow end end

planner — Оптимальный планировщик траектории на пробеле сети с бесплатным доступомtrajectoryOptimalFrenet объектОптимальный планировщик траектории на пробеле сети с бесплатным доступом, заданном как trajectoryOptimalFrenet объект.
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Trajectory','all''Trajectory' — Параметр отображения траектории'optimal' (значение по умолчанию) | 'all'Параметр отображения траектории, заданный как разделенная запятой пара, состоящая из 'Trajectory' и любой 'optimal' или 'all'.
'ReferencePath' — Ссылочный параметр отображения пути'on' (значение по умолчанию) | 'off'Ссылочный параметр отображения пути, заданный как разделенная запятой пара, состоящая из 'ReferencePath' и любой 'on' или 'off'.
'TrajectoryColor' — Параметр цветного дисплея траектории'velocity' (значение по умолчанию) | 'acceleration' | 'cost' | 'none'Параметр цветного дисплея траектории, заданный как разделенная запятой пара, состоящая из 'TrajectoryColor' и одно из следующего:
'acceleration'
'cost'
'velocity'
'none'
Установите это свойство отобразить заданную траекторию как цветовой градиент вдоль заданного пути.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.