targetMeshes
Description
Examples
Display Actor Meshes in Driving Scenario
Display actors in a driving scenario by using their mesh representations instead of their cuboid representations.
Create a driving scenario, and add a 25-meter straight road to the scenario.
scenario = drivingScenario; roadcenters = [0 0 0; 25 0 0]; road(scenario,roadcenters);
Add a pedestrian and a vehicle to the scenario. Specify the mesh dimensions of the actors using prebuilt meshes.
Specify the pedestrian mesh as a
driving.scenario.pedestrianMesh
object.Specify the vehicle mesh as a
driving.scenario.carMesh
object.
p = actor(scenario,'ClassID',4, ... 'Length',0.2,'Width',0.4, ... 'Height',1.7,'Mesh',driving.scenario.pedestrianMesh); v = vehicle(scenario,'ClassID',1, ... 'Mesh',driving.scenario.carMesh);
Add trajectories for the pedestrian and vehicle.
Specify for the pedestrian to cross the road at 1 meter per second.
Specify for the vehicle to follow the road at 10 meters per second.
waypointsP = [15 -3 0; 15 3 0]; speedP = 1; smoothTrajectory(p,waypointsP,speedP); wayPointsV = [v.RearOverhang 0 0; (25 - v.Length + v.RearOverhang) 0 0]; speedV = 10; smoothTrajectory(v,wayPointsV,speedV)
Add an egocentric plot for the vehicle. Turn the display of meshes on.
chasePlot(v,'Meshes','on')
Create a bird's-eye plot in which to display the meshes. Also create a mesh plotter and lane boundary plotter. Then run the simulation loop.
Obtain the road boundaries of the road the vehicle is on.
Obtain the mesh vertices, faces, and colors of the actor meshes, with positions relative to the vehicle.
Plot the road boundaries and actor meshes on the bird's-eye plot.
Pause the scenario to allow time for the plots to update. The chase plot updates every time you advance the scenario.
bep = birdsEyePlot('XLim',[-25 25],'YLim',[-10 10]); mPlotter = meshPlotter(bep); lbPlotter = laneBoundaryPlotter(bep); legend('off') while advance(scenario) rb = roadBoundaries(v); [vertices,faces,colors] = targetMeshes(v); plotLaneBoundary(lbPlotter,rb) plotMesh(mPlotter,vertices,faces,'Color',colors) pause(0.01) end
Input Arguments
ac
— Actor
Actor
object | Vehicle
object
Actor belonging to a drivingScenario
object, specified as an
Actor
or Vehicle
object. To create these objects, use the
actor
and vehicle
functions, respectively.
Output Arguments
vertices
— Mesh vertices of each actor
N-element cell array
Mesh vertices of each actor, returned as an N-element cell array, where N is the number of actors.
Each element in vertices
must be a V-by-3
real-valued matrix containing the vertices of an actor, where:
V is the number of vertices.
Each row defines the 3-D (x,y,z) position of a vertex. The vertex positions are relative to the position of the input actor
ac
. Units are in meters.
faces
— Mesh faces of each actor
N-element cell array
Mesh faces of each actor, returned as an N-element cell array, where N is the number of actors.
Each element in faces
must be an F-by-3
integer-valued matrix containing the faces of an actor, where:
F is the number of faces.
Each row defines a triangle of vertex IDs that make up the face. The vertex IDs correspond to row numbers within
vertices
.
Suppose the first face of the i
th element of
faces
has these vertex IDs.
faces{i}(1,:)
ans = 1 2 3
In the i
th element of vertices
, rows 1, 2,
and 3 contain the (x, y, z)
positions of the vertices that make up this face.
vertices{i}(1:3,:)
ans = 3.7000 0.9000 0.8574 3.7000 -0.9000 0.8574 3.7000 -0.9000 0.3149
colors
— Color of mesh faces for each actor
N-by-3 matrix of N RGB triplets
Color of the mesh faces for each actor, returned as an N-by-3
matrix of RGB triplets. N is the number of actors and is equal to the
number of elements in vertices
and
faces
.
The i
th row of colors
is the RGB color value
of the faces in the i
th element of faces
. The
function applies the same color to all mesh faces of an actor.
An RGB triplet is a three-element row vector whose elements specify the intensities
of the red, green, and blue components of the color. The intensities must be in the
range [0, 1]. For example, [0.4 0.6 0.7]
.
More About
Meshes
In driving scenarios, a mesh is a triangle-based 3-D representation of an object. Mesh representations of objects are more detailed than the default cuboid (box-shaped) representations of objects. Meshes are useful for generating synthetic point cloud data from a driving scenario.
This table shows the difference between a cuboid representation and a mesh representation of a vehicle in a driving scenario.
Cuboid | Mesh |
---|---|
Version History
Introduced in R2020b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)