updateOccupancy

Integrate probability observations at locations

Description

example

updateOccupancy(map,xy,obs) probabilistically integrates the observation values, obs, to each coordinate specified in xy. Observation values are determined based on the Inverse Sensor Model.

updateOccupancy(map,ij,occval,'grid') probabilistically integrates the occupancy values, occval, to the specified grid locations, ij, instead of world coordinates.

Examples

collapse all

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)

Input Arguments

collapse all

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 free.

World coordinates, specified as an n-by-2 vertical matrix of [x y] pairs, where n is the number of world coordinates.

Data Types: double

Grid positions, specified as an n-by-2 matrix of [i j] pairs in [rows cols] format, where n is the number of grid positions.

Data Types: double

Probability observation values, specified as a scalar or an n-by-1 column vector the same size as either xy or ij.

obs values can be any value from 0 to 1, but if obs 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 casting. If obs is a numeric or a logical scalar, the value is applied to all coordinates in xy or ij.

Probability occupancy values, specified as a scalar or a column vector the same size as either xy or ij. A scalar input is applied to all coordinates in either xy or ij.

Values close to 0 represent a high probability that the cell is not occupied and obstacle free.

More About

collapse all

Inverse Sensor Model

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 updated.

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.

Introduced in R2019b