Получить границы дорог
Создайте сценарий вождения, содержащий кривую дорогу, две прямые дороги и двух актеров: автомобиль и велосипед. Оба актёра двигаются по дороге в течение 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)
Добавьте ego-транспортное средство к сценарию. Расположите транспортное средство в точке с мировыми координатами (20, -20) и сориентируйте его под углом рыскания -15 градусов.
ego = actor(scenario,'ClassID',1,'Position',[20 -20 0],'Yaw',-15);

Получение границ дорог в координатах эго-транспортного средства с помощью roadBoundaries функция. Укажите средство ego в качестве входного аргумента.
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-by-3, представляющую границу дороги в сценарии, где N - количество границ дороги. Каждая строка матрицы соответствует координатам (x, y, z) вершины границы дороги.
Когда входным аргументом является сценарий вождения, координаты дороги соответствуют мировым координатам сценария вождения. Когда входным аргументом является актер, координаты дороги соответствуют системе координат актера.
На рисунках показано количество границ дорог, rbdry содержит для различных типов дорог.
| Одиночная дорога - граница одной дороги | Перекресток - граница одной дороги |
|---|---|
|
|
|
| Круговой перекресток - две границы дорог | Figure-8 - Три границы дорог |
|---|---|
|
|
|
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.