Large Parking Lot

Large parking lot 3D environment

Description

The Large Parking Lot scene is a 3D environment of a large parking lot that contains cones, curbs, traffic signs, and parked vehicles. The scene is rendered using the Unreal Engine® from Epic Games®.

To simulate a driving algorithm within this scene:

  1. Add a Simulation 3D Scene Configuration block to your Simulink® model.

  2. In this block, set the Scene description parameter to Large parking lot.

Explore Large Parking Lot Scene

Explore the 3D Large Parking Lot scene and inspect its dimensions by using a corresponding 2D top-view image of the scene.

You can use this image to inspect the scene before simulation and choose starting coordinates for vehicles. For details on using these images to select waypoints for path-following applications, see the Select Waypoints for 3D Simulation example.

Load the 2D spatial referencing object that corresponds to the scene. This imref2d object describes the relationship between the pixels in the image and the world coordinates of the scene.

data = load('sim3d_SpatialReferences.mat');
spatialRef = data.spatialReference.LargeParkingLot
spatialRef = 
  imref2d with properties:

           XWorldLimits: [-78.5000 61.5000]
           YWorldLimits: [-75 65]
              ImageSize: [4845 4845]
    PixelExtentInWorldX: 0.0289
    PixelExtentInWorldY: 0.0289
    ImageExtentInWorldX: 140
    ImageExtentInWorldY: 140
       XIntrinsicLimits: [0.5000 4.8455e+03]
       YIntrinsicLimits: [0.5000 4.8455e+03]

Display the image corresponding to the scene. Use the spatial referencing object to display the axes in the world coordinates of the scene. Units are in meters.

By default, the imshow function displays Y-axis values that increase from top to bottom. To align with the Automated Driving Toolbox™ world coordinate system, set the Y-direction to 'normal' so that Y-axis values increase from bottom to top.

Place a marker at the origin of the scene.

figure
fileName = 'sim3d_LargeParkingLot.jpg';
I = imshow(fileName,spatialRef);
set(gca,'YDir','normal')
xlabel('X (m)')
ylabel('Y (m)')

hold on
plot(0,0,'o','MarkerFaceColor','r','MarkerEdgeColor','k','MarkerSize',8)
offset = 3; % px
text(offset,offset,'(0,0)','Color','w','FontWeight','bold','FontSize',12)
hold off