Получите контуры дорог
Создайте сценарий вождения, содержащий изогнутую дорогу, две прямые дороги и двух актёров: автомобиль и велосипед. Оба актёра двигаются по дороге на 60 секунд.
Создайте объект сценария вождения.
scenario = drivingScenario('SampleTime',0.1','StopTime',60);
Создайте изогнутую дорогу с помощью точек центра дороги, следующих за дугой окружности с радиусом 800 метров. Дуга начинается с 0 °, заканчивается с 90 ° и дискретизируется с шагами 5 °.
angs = [0:5:90]'; R = 800; roadcenters = R*[cosd(angs) sind(angs) zeros(size(angs))]; roadwidth = 10; road(scenario,roadcenters,roadwidth);
Добавьте две прямые дороги шириной по умолчанию, используя точки центра дороги на каждом конце.
roadcenters = [700 0 0; 100 0 0]; road(scenario,roadcenters)
ans = Road with properties: Name: "" RoadID: 2 RoadCenters: [2x3 double] RoadWidth: 6 BankAngle: [2x1 double]
roadcenters = [400 400 0; 0 0 0]; road(scenario,roadcenters)
ans = Road with properties: Name: "" RoadID: 3 RoadCenters: [2x3 double] RoadWidth: 6 BankAngle: [2x1 double]
Получите контуры дорог.
rbdry = roadBoundaries(scenario);
Добавьте в сценарий автомобиль и велосипед. Поместите автомобиль в начале первой прямой дороги.
car = vehicle(scenario,'ClassID',1,'Position',[700 0 0], ... 'Length',3,'Width',2,'Height',1.6);
Расположите велосипед дальше по дороге.
bicycle = actor(scenario,'ClassID',3,'Position',[706 376 0]', ... 'Length',2,'Width',0.45,'Height',1.5);
Постройте график сценария.
plot(scenario,'Centerline','on','RoadCenters','on'); title('Scenario');
Отображение положений и профилей актёра.
poses = actorPoses(scenario)
poses=2×1 struct array with fields:
ActorID
Position
Velocity
Roll
Pitch
Yaw
AngularVelocity
profiles = actorProfiles(scenario)
profiles=2×1 struct array with fields:
ActorID
ClassID
Length
Width
Height
OriginOffset
MeshVertices
MeshFaces
RCSPattern
RCSAzimuthAngles
RCSElevationAngles
Создайте сценарий вождения, содержащий рисунок-8 дорогу, заданную в мировых координатах сценария. Преобразуйте мировые координаты сценария в систему координат автомобиля , оборудованного датчиком.
Создайте пустой сценарий вождения.
scenario = drivingScenario;
Добавьте рисунка -8 дорогу к сценарию. Просмотрите сценарий.
roadCenters = [0 0 1 20 -20 1 20 20 1 -20 -20 1 -20 20 1 0 0 1]; roadWidth = 3; bankAngle = [0 15 15 -15 -15 0]; road(scenario,roadCenters,roadWidth,bankAngle); plot(scenario)
Добавьте автомобиля , оборудованного датчиком к сценарию. Поместите транспортное средство в мировые координаты (20, -20) и ориентируйте его под углом рыскания -15 степеней.
ego = actor(scenario,'ClassID',1,'Position',[20 -20 0],'Yaw',-15);
Получите контуры дороги в координатах автомобиль , оборудованный датчиком при помощи roadBoundaries
функция. Задайте автомобиль , оборудованный датчиком как входной параметр.
rbEgo1 = roadBoundaries(ego);
Отображение результата на графике птичьего глаза.
bep = birdsEyePlot; lbp = laneBoundaryPlotter(bep,'DisplayName','Road'); plotLaneBoundary(lbp,rbEgo1)
Получите контуры дорог в мировых координатах с помощью roadBoundaries
функция. Задайте сценарий как входной параметр.
rbScenario = roadBoundaries(scenario);
Получите контуры дороги в координатах автомобиль , оборудованный датчиком при помощи driving.scenario.roadBoundariesToEgo
функция.
rbEgo2 = driving.scenario.roadBoundariesToEgo(rbScenario,ego);
Отображение контуров дороги на графике птичьего глаза.
bep = birdsEyePlot; lbp = laneBoundaryPlotter(bep,'DisplayName','Road boundaries'); plotLaneBoundary(lbp,{rbEgo2})
scenario
- Сценарий вожденияdrivingScenario
объектСценарий вождения, заданный как drivingScenario
объект.
ac
- АктёрActor
| объекта Vehicle
объектАктёр, принадлежащий к drivingScenario
объект, заданный как Actor
или Vehicle
объект. Чтобы создать эти объекты, используйте actor
и vehicle
функций, соответственно.
rbdry
- контуры дорогКонтуры дорог, возвращенные как массив ячеек. Каждая камера в массиве ячеек содержит матрицу N-на-3, представляющую контур дороги в сценарии, где N количество контуров дороги. Каждая строка матрицы соответствует (x, y, z) координатам краевой вершины дороги.
Когда входной параметр является сценарием вождения, координаты дороги соответствуют мировым координатам сценария вождения. Когда входной параметр является актером, координаты дороги соответствуют системе координат актёра.
Рисунки показывают количество контуров дорог, которые rbdry
содержит для различных типов дорог.
Одна дорога - одна дорога Контура | Перекресток - Одна дорога Контура |
---|---|
|
|
Круговая развязка - два контуров дорог | Фигура -8 - Трехсторонний Контур |
---|---|
|
|
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.