show
Display 3-D occupancy map
Description
displays the occupancy map, axes
= show(map3D
)map3D
, in the current axes,
with the axes labels representing the world coordinates.
The function displays the 3-D environment using 3-D voxels for areas with
occupancy values greater than the OccupiedThreshold
property value specified in map3D
. The color of the 3-D
plot is strictly height-based.
Examples
Get Ray Intersection Points on 3-D Occupancy Map
Import a 3-D occupancy map.
map3D = importOccupancyMap3D("citymap.ot")
map3D = occupancyMap3D with properties: ProbabilitySaturation: [1.0000e-03 0.9990] Resolution: 1 OccupiedThreshold: 0.6500 FreeThreshold: 0.2000
Inflate the occupied areas by a radius of 1 m. Display the map.
inflate(map3D,1) show(map3D)
Find the intersection points of rays and occupied map cells.
numRays = 10; angles = linspace(-pi/2,pi/2,numRays); directions = [cos(angles); sin(angles); zeros(1,numRays)]'; sensorPose = [55 40 1 1 0 0 0]; maxrange = 15; [intersectionPts,isOccupied] = rayIntersection(map3D,sensorPose,directions,maxrange)
intersectionPts = 10×3
55.0000 32.0000 1.0000
57.9118 32.0000 1.0000
61.7128 32.0000 1.0000
67.9904 32.5000 1.0000
69.0000 37.5314 1.0000
69.0000 42.4686 1.0000
67.9904 47.5000 1.0000
64.6418 51.4907 1.0000
58.2757 49.0000 1.0000
55.0000 49.0000 1.0000
isOccupied = 10×1
1
1
1
-1
1
1
-1
-1
1
1
Plot the intersection points and plot rays from the pose to the intersection points.
hold on plotTransforms(sensorPose(1:3),sensorPose(4:end),... 'FrameSize',5,'MeshFilePath','groundvehicle.stl') % Vehicle sensor pose for i = 1:numRays plot3([sensorPose(1),intersectionPts(i,1)],... [sensorPose(2),intersectionPts(i,2)],... [sensorPose(3),intersectionPts(i,3)],'-b') % Plot rays if isOccupied(i) == 1 plot3(intersectionPts(i,1),intersectionPts(i,2),intersectionPts(i,3),'*r') % Intersection points end end
Visualize 3-D Occupancy Maps with Varying Search Depths
Create a 3-D occupancy map and set 25 random coordinates in the occupancy map as occupied.
map = occupancyMap3D; rng(0); for i = 1:25 pt = (rand(1,3)-.5)*20; map.setOccupancy(pt,1); end
Visualize the voxels with the default search depth value, 16
.
show(map) axis equal grid on
Decrease the search depth in increments of 1 and notice that the resolution drops as you decrease the search depth.
show(map,SearchDepth=15) axis equal grid on
show(map,SearchDepth=14) axis equal grid on
show(map,SearchDepth=13) axis equal grid on
Input Arguments
map3D
— 3-D occupancy map
occupancyMap3D
object
3-D occupancy map, specified as an occupancyMap3D
object.
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: show(map,SearchDepth=14)
SearchDepth
— Voxel search depth
16
(default) | integer in the range
[0
,16
]
Voxel search depth, specified as an integer in the range
[0
,16
], which determines the
level-of-detail at which the map is displayed. The maximum depth is
16
, corresponding to voxels whose edge length is
equal to 1/map.Resolution
. Each level above the
maximum depth doubles this minimum voxel size.
Output Arguments
Version History
Introduced in R2019b
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)