Визуализация траекторий
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.