exponenta event banner

roadMesh

Сетчатое представление дорог вблизи актера

Описание

пример

mesh = roadMesh(ac) создает сеточное представление дорог, ближайших к указанному субъекту ac. Функция возвращает сетку как extendedObjectMesh объект. По умолчанию функция выполняет поиск дорог в радиусе 120 м от входного элемента.

mesh = roadMesh(ac,maxRadius)задает максимальный радиус поиска.

Примеры

свернуть все

Создание данных облака точек лидара для сценария управления с несколькими субъектами с помощью lidarPointCloudGenerator Системный объект. Создание сценария управления с помощью drivingScenario объект. Он содержит эго-транспортное средство, пешеходное и два других транспортных средства.

Создание и печать сценария вождения с несколькими транспортными средствами

Создайте сценарий управления.

scenario = drivingScenario;

Добавьте прямую дорогу к сценарию движения. Дорога имеет по одной полосе в каждом направлении.

roadCenters = [0 0 0; 70 0 0];
laneSpecification = lanespec([1 1]);
road(scenario,roadCenters,'Lanes',laneSpecification);

Добавьте транспортное средство ego в сценарий вождения.

egoVehicle = vehicle(scenario,'ClassID',1,'Mesh',driving.scenario.carMesh);
waypoints = [1 -2 0; 35 -2 0];
smoothTrajectory(egoVehicle,waypoints,10);

Добавьте грузовик, пешехода и велосипед в сценарий вождения и постройте график сценария.

truck = vehicle(scenario,'ClassID',2,'Length', 8.2,'Width',2.5,'Height',3.5, ...
  'Mesh',driving.scenario.truckMesh);
waypoints = [70 1.7 0; 20 1.9 0];
smoothTrajectory(truck,waypoints,15);

pedestrian = actor(scenario,'ClassID',4,'Length',0.24,'Width',0.45,'Height',1.7, ...
  'Mesh',driving.scenario.pedestrianMesh);
waypoints = [23 -4 0; 10.4 -4 0];
smoothTrajectory(pedestrian,waypoints,1.5);

bicycle = actor(scenario,'ClassID',3,'Length',1.7,'Width',0.45,'Height',1.7, ...
  'Mesh',driving.scenario.bicycleMesh);
waypoints = [12.7 -3.3 0; 49.3 -3.3 0];
smoothTrajectory(bicycle,waypoints,5);

plot(scenario,'Meshes','on')

Figure contains an axes. The axes contains 7 objects of type patch, line.

Создание и печать данных облака точек лидара

Создать lidarPointCloudGenerator Системный объект.

lidar = lidarPointCloudGenerator;

Добавьте профили акторов и идентификатор актора эго-транспортного средства из сценария вождения в объект System.

lidar.ActorProfiles = actorProfiles(scenario);
lidar.EgoVehicleActorID = egoVehicle.ActorID;

Постройте график данных облака точек.

bep = birdsEyePlot('Xlimits',[0 70],'YLimits',[-30 30]);
plotter = pointCloudPlotter(bep);
legend('off');
while advance(scenario)
    tgts = targetPoses(egoVehicle);
    rdmesh = roadMesh(egoVehicle);
    [ptCloud,isValidTime] = lidar(tgts,rdmesh,scenario.SimulationTime);
    if isValidTime
        plotPointCloud(plotter,ptCloud);
    end
end

Figure contains an axes. The axes contains 7 objects of type patch, line.

Figure contains an axes. The axes is empty.

Входные аргументы

свернуть все

Актер, принадлежащий drivingScenario объект, указанный как Actor или Vehicle объект. Для создания этих объектов используйте actor и vehicle соответственно.

Максимальный радиус области поиска, заданный как целое число в диапазоне [1, 500].

Типы данных: single | double | int16 | int32 | int64 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Сетчатое представление дорог вблизи актера, возвращенное как extendedObjectMesh объект.

Представлен в R2020a