probabilistic_occupancy_grid_map#
Purpose#
This package outputs the probability of having an obstacle as occupancy grid map.

References/External links#
Settings#
Occupancy grid map is generated on map_frame, and grid orientation is fixed.
You may need to choose scan_origin_frame and gridmap_origin_frame which means sensor origin and gridmap origin respectively. Especially, set your main LiDAR sensor frame (e.g. velodyne_top in sample_vehicle) as a scan_origin_frame would result in better performance.
Each config parameters#
Config parameters are managed in config/*.yaml and here shows its outline.
- Pointcloud based occupancy grid map
| Ros param name | Default value |
|---|---|
| map_frame | "map" |
| base_link_frame | "base_link" |
| scan_origin_frame | "base_link" |
| gridmap_origin_frame | "base_link" |
| use_height_filter | true |
| enable_single_frame_mode | false |
| filter_obstacle_pointcloud_by_raw_pointcloud | false |
| map_length | 150.0 [m] |
| map_resolution | 0.5 [m] |
| use_projection | false |
| projection_dz_threshold | 0.01 |
| obstacle_separation_threshold | 1.0 |
| input_obstacle_pointcloud | true |
| input_obstacle_and_raw_pointcloud | true |
- Laserscan based occupancy grid map
| Ros param name | Default value |
|---|---|
| map_length | 150 [m] |
| map_width | 150 [m] |
| map_resolution | 0.5 [m] |
| use_height_filter | true |
| enable_single_frame_mode | false |
| map_frame | "map" |
| base_link_frame | "base_link" |
| scan_origin_frame | "base_link" |
| gridmap_origin_frame | "base_link" |
Other parameters#
Additional argument is shown below:
| Name | Default | Description |
|---|---|---|
use_multithread |
false |
whether to use multithread |
use_intra_process |
false |
|
map_origin |
`` | parameter to override map_origin_frame which means grid map origin |
scan_origin |
`` | parameter to override scan_origin_frame which means scanning center |
output |
occupancy_grid |
output name |
use_pointcloud_container |
false |
|
container_name |
occupancy_grid_map_container |
|
input_obstacle_pointcloud |
false |
only for laserscan based method. If true, the node subscribe obstacle pointcloud |
input_obstacle_and_raw_pointcloud |
true |
only for laserscan based method. If true, the node subscribe both obstacle and raw pointcloud |
Downsample input pointcloud(Optional)#
If you set downsample_input_pointcloud to true, the input pointcloud will be downsampled and following topics are also used. This feature is currently only for the pointcloud based occupancy grid map.
- pointcloud_based_occupancy_grid_map method
# downsampled raw and obstacle pointcloud
/perception/occupancy_grid_map/obstacle/downsample/pointcloud
/perception/occupancy_grid_map/raw/downsample/pointcloud
- multi_lidar_pointcloud_based_point_cloud
# downsampled raw and obstacle pointcloud
/perception/occupancy_grid_map/obstacle/downsample/pointcloud
/perception/occupancy_grid_map/<sensor_name>/raw/downsample/pointcloud
Test#
This package provides unit tests using gtest.
You can run the test by the following command.
colcon test --packages-select probabilistic_occupancy_grid_map --event-handlers console_direct+
Test contains the following.
- Unit test for cost value conversion function
- Unit test for utility functions
- Unit test for occupancy grid map fusion functions
- Input/Output test for pointcloud based occupancy grid map