Постройте запланированный путь к автомобилю
plot(refPath)
plot(refPath,Name,Value)
plot(
задает опции с помощью одного или нескольких аргументов пары "имя-значение". Например, refPath
,Name,Value
)plot(path,'Vehicle','off')
строит путь, не отображая автомобиль.
Запланируйте путь к автомобилю через парковку при помощи оптимального быстро исследующего случайного дерева (RRT*) алгоритм. Проверяйте, что путь допустим, и затем постройте положения перехода вдоль пути.
Загрузите costmap парковки. Постройте costmap, чтобы видеть парковку и раздутые области для автомобиля, чтобы избежать.
data = load('parkingLotCostmap.mat');
costmap = data.parkingLotCostmap;
plot(costmap)
Задайте запускаются и целевые положения для автомобиля как [x, y, Θ] векторы. Мировые модули для (x, y) местоположения исчисляются в метрах. Мировые модули для Θ углов ориентации в градусах.
startPose = [4, 4, 90]; % [meters, meters, degrees]
goalPose = [30, 13, 0];
Используйте объект pathPlannerRRT
запланировать путь от положения запуска до целевого положения.
planner = pathPlannerRRT(costmap); refPath = plan(planner,startPose,goalPose);
Проверяйте, что путь допустим.
isPathValid = checkPathValidity(refPath,costmap)
isPathValid = logical
1
Интерполируйте положения перехода вдоль пути.
transitionPoses = interpolate(refPath);
Постройте запланированный путь и положения перехода на costmap.
hold on plot(refPath,'DisplayName','Planned Path') scatter(transitionPoses(:,1),transitionPoses(:,2),[],'filled', ... 'DisplayName','Transition Poses') hold off
refPath
— Запланированный путь к автомобилюdriving.Path
Запланированный путь к автомобилю, заданный как объект driving.Path
.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Inflation','off'
'Parent'
— Объект осейобъект осей
Объект осей, в котором можно построить график, заданный как пара, разделенная запятой, состоящая из 'Parent'
и объекта axes
. Если вы не задаете Parent
, новая фигура создается.
'Vehicle'
— Отобразите автомобиль'on'
(значение по умолчанию) | 'off'
Отобразите автомобиль, заданный как пара, разделенная запятой, состоящая из 'Vehicle'
и 'on'
или 'off'
. Установка этого аргумента к 'on'
отображает автомобиль вдоль пути.
'VehicleDimensions'
— Размерности автомобиляvehicleDimensions
Размерности автомобиля, заданного как пара, разделенная запятой, состоящая из 'VehicleDimensions'
и объекта vehicleDimensions
.
DisplayName
Имя записи в легенде''
(значение по умолчанию) | вектор символов | представляет скаляр в виде строкиИмя записи в легенде, заданной как пара, разделенная запятой, состоящая из 'DisplayName'
и вектора символов или скаляра строки.
'Color'
— Цвет путиЦвет пути, заданный как пара, разделенная запятой, состоящая из 'Color'
и названия цвета, короткого названия цвета или триплета RGB.
Для пользовательского цвета укажите триплет RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7].
Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета и эквивалентные значения триплета RGB.
Название цвета | Цветное краткое название | Триплет RGB | Внешний вид |
---|---|---|---|
'red' | 'r' | [1 0 0] |
|
'green' | 'g' | [0 1 0] |
|
'blue' | 'b' | [0 0 1] |
|
'cyan'
| 'c'
| [0 1 1] |
|
'magenta' | 'm' | [1 0 1] |
|
'yellow' | 'y' | [1 1 0] |
|
'black' | 'k' | [0 0 0] |
|
'white' | 'w' | [1 1 1] |
|
Пример: 'Color',[1 0 1]
Пример: 'Color','m'
Пример: 'Color','magenta'
Тег
Пометьте, чтобы идентифицировать путь''
(значение по умолчанию) | вектор символов | представляет скаляр в виде строкиПометьте, чтобы идентифицировать путь, заданный как пара, разделенная запятой, состоящая из 'Tag'
и вектора символов или представить скаляр в виде строки.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.