Получите дорожные контуры
rbdry = roadBoundaries(sc)
rbdry = roadBoundaries(ac)
Создайте ведущий сценарий, содержащий кривую дорогу, две дороги подряд и двух агентов: автомобиль и велосипед. Оба агента проходят дорога в течение 60 секунд.
Создайте ведущий объект сценария.
sc = 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(sc,roadcenters,roadwidth);
Добавьте две дороги подряд с шириной по умолчанию, с помощью дорожных центральных точек в каждом конце.
roadcenters = [700 0 0; 100 0 0]; road(sc,roadcenters) roadcenters = [400 400 0; 0 0 0]; road(sc,roadcenters)
Получите дорожные контуры.
rbdry = roadBoundaries(sc);
Добавьте автомобиль и велосипед к сценарию. Расположите автомобиль в начале первой дороги подряд.
car = vehicle(sc,'Position',[700 0 0],'Length',3,'Width',2,'Height',1.6);
Расположите велосипед дальше в будущем.
bicycle = actor(sc,'Position',[706 376 0]','Length',2,'Width',0.45,'Height',1.5);
Постройте сценарий.
plot(sc,'Centerline','on','RoadCenters','on'); title('Scenario');
Отобразите положения агента и профили.
poses = actorPoses(sc)
poses = 2x1 struct array with fields:
ActorID
Position
Velocity
Roll
Pitch
Yaw
AngularVelocity
profiles = actorProfiles(sc)
profiles = 2x1 struct array with fields:
ActorID
ClassID
Length
Width
Height
OriginOffset
RCSPattern
RCSAzimuthAngles
RCSElevationAngles
Создайте ведущий сценарий, содержащий дорогу фигуры 8, заданную в мировых координатах сценария. Преобразуйте мировые координаты сценария к системе координат автомобиля, оборудованного датчиком.
Создайте пустой ведущий сценарий.
sc = 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(sc,roadCenters,roadWidth,bankAngle); plot(sc)
Добавьте автомобиль, оборудованный датчиком в сценарий. Расположите автомобиль в мировых координатах (20, –20) и ориентируйте его под –15 углами отклонения от курса степени.
ego = actor(sc,'Position',[20 -20 0],'Yaw',-15);
Получите дорожные контуры в координатах автомобиля, оборудованного датчиком при помощи функции roadBoundaries
. Задайте автомобиль, оборудованный датчиком как входной параметр.
rbEgo1 = roadBoundaries(ego);
Отобразите результат на видимом с большого расстояния графике.
bep = birdsEyePlot; lbp = laneBoundaryPlotter(bep,'DisplayName','Road'); plotLaneBoundary(lbp,rbEgo1)
Получите дорожные контуры в мировых координатах при помощи функции roadBoundaries
. Задайте сценарий как входной параметр.
rbScenario = roadBoundaries(sc);
Получите дорожные контуры в координатах автомобиля, оборудованного датчиком при помощи функции driving.scenario.roadBoundariesToEgo
.
rbEgo2 = driving.scenario.roadBoundariesToEgo(rbScenario,ego);
Отобразите дорожные контуры на видимом с большого расстояния графике.
bep = birdsEyePlot; lbp = laneBoundaryPlotter(bep,'DisplayName','Road boundaries'); plotLaneBoundary(lbp,{rbEgo2})
sc
— Ведущий сценарийdrivingScenario
Ведущий сценарий, заданный как объект drivingScenario
.
ac
— АгентActor
| объект Vehicle
Агент, принадлежащий объекту drivingScenario
, заданному как объект Actor
или Vehicle
. Чтобы создать эти объекты, используйте actor
и функции vehicle
, соответственно.
rbdry
— Дорожные контурыДорожные контуры, возвращенные как массив ячеек. Каждая ячейка массива содержит N с действительным знаком-by-3 матрица, где N является количеством дорожных контуров. Каждая строка матрицы соответствует (x, y, z) координаты вершины дорожного контура.
Когда входной параметр является ведущим сценарием, дорожные координаты относительно мировых координат ведущего сценария. Когда входной параметр является агентом, дорожные координаты относительно системы координат агента.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.