Integrate probability observations at locations
Create a 10 m-by-10 m empty map.
map = occupancyMap(10,10,10);
Update the occupancy of world locations with specific probability values and display the map.
x = [1.2; 2.3; 3.4; 4.5; 5.6]; y = [5.0; 4.0; 3.0; 2.0; 1.0]; pvalues = [0.2 0.4 0.6 0.8 1]; updateOccupancy(map,[x y],pvalues) figure show(map)
Inflate occupied areas by a radius of 0.5 m. Larger occupancy values overwrite the smaller values.
inflate(map,0.5) figure show(map)
Get grid locations from world locations.
ij = world2grid(map,[x y]);
Set grid locations to occupied locations.
setOccupancy(map,ij,ones(5,1),'grid') figure show(map)
map— Map representation
Map representation, specified as a
occupancyMap object. This object
represents the environment of the vehicle. The
object contains a matrix grid with values
representing the probability of the occupancy of
that cell. Values close to 1 represent a high
probability that the cell contains an obstacle.
Values close to 0 represent a high probability
that the cell is not occupied and obstacle
xy— World coordinates
World coordinates, specified as an
n-by-2 vertical matrix of
y] pairs, where
n is the number of world
ij— Grid positions
Grid positions, specified as an
n-by-2 matrix of
j] pairs in
cols] format, where
n is the number of grid
obs— Probability observation values
obs values can be any
value from 0 to 1, but if
is a logical vector, the default observation
values of 0.7 (
true) and 0.4
false) are used. These values
correlate to the inverse sensor model for ray
obs is a numeric
or a logical scalar, the value is applied to all
occval— Probability occupancy values
The inverse sensor model
determines how values are set along a ray from a
range sensor reading to the obstacles in the map.
NaN range values are ignored.
Range values greater than
maxrange are not
Grid locations that contain range readings are updated with the occupied probability. Locations before the reading are updated with the free probability. All locations after the reading are not updated.