-
DEPRECATED point_cloud_topic (string, default: "/points")
The name of the distance measurements topic. Use input_sources instead.
-
input_sources (list of input sources, default: none)
Here you specify your inputs to elevation mapping, currently "pointcloud" inputs are supported.
Example configuration:
input_sources:
front: # A name to identify the input source
type: pointcloud # Supported types: pointcloud
topic: /lidar_front/depth/points
queue_size: 1
publish_on_update: true # Wheter to publish the elevation map after a callback from this source.
rear:
type: pointcloud
topic: /lidar_rear/depth/points
queue_size: 5
publish_on_update: false
No input sources can be configured with an empty array:
input_sources: []
-
robot_pose_topic (string, default: "/robot_state/pose")
The name of the robot pose and covariance topic.
-
base_frame_id (string, default: "/robot")
The id of the robot base tf frame.
-
map_frame_id (string, default: "/map")
The id of the tf frame of the elevation map.
-
track_point_frame_id (string, default: "/robot")
The elevation map is moved along with the robot following a track point. This is the id of the tf frame in which the track point is defined.
-
track_point_x, track_point_y, track_point_z (double, default: 0.0, 0.0, 0.0)
The elevation map is moved along with the robot following a track point. This is the position of the track point in the track_point_frame_id.
-
robot_pose_cache_size (int, default: 200, min: 0)
The size of the robot pose cache.
-
min_update_rate (double, default: 2.0)
The mininum update rate (in Hz) at which the elevation map is updated either from new measurements or the robot pose estimates.
-
fused_map_publishing_rate (double, default: 1.0)
The rate for publishing the entire (fused) elevation map.
-
relocate_rate (double, default: 3.0)
The rate (in Hz) at which the elevation map is checked for relocation following the tracking point.
-
length_in_x, length_in_y (double, default: 1.5, min: 0.0)
The size (in m) of the elevation map.
-
position_x, position_y (double, default: 0.0)
The position of the elevation map center, in the elevation map frame. This parameter sets the planar position offsets between the generated elevation map and the frame in which it is published (map_frame_id). It is only useful if no track_point_frame_id parameter is used.
-
resolution (double, default: 0.01, min: 0.0)
The resolution (cell size in m/cell) of the elevation map.
-
min_variance, max_variance (double, default: 9.0e-6, 0.01)
The minimum and maximum values for the elevation map variance data.
-
mahalanobis_distance_threshold (double, default: 2.5)
Each cell in the elevation map has an uncertainty for its height value. Depending on the Mahalonobis distance of the existing height distribution and the new measurements, the incoming data is fused with the existing estimate, overwritten, or ignored. This parameter determines the threshold on the Mahalanobis distance which determines how the incoming measurements are processed.
-
sensor_processor/ignore_points_above (double, default: inf)
A hard threshold on the height of points introduced by the depth sensor. Points with a height over this threshold will not be considered valid during the data collection step.
-
sensor_processor/ignore_points_below (double, default: -inf)
A hard threshold on the height of points introduced by the depth sensor. Points with a height below this threshold will not be considered valid during the data collection step.
-
multi_height_noise (double, default: 9.0e-7)
Noise added to measurements that are higher than the current elevation map at that particular position. This noise-adding process is only performed if a point falls over the Mahalanobis distance threshold. A higher value is useful to adapt faster to dynamic environments (e.g., moving objects), but might cause more noise in the height estimation.
-
min_horizontal_variance, max_horizontal_variance (double, default: pow(resolution / 2.0, 2), 0.5)
The minimum and maximum values for the elevation map horizontal variance data.
-
enable_visibility_cleanup (bool, default: true)
Enable/disable a separate thread that removes elements from the map which are not visible anymore, by means of ray-tracing, originating from the sensor frame.
-
visibility_cleanup_rate (double, default: 1.0)
The rate (in Hz) at which the visibility clean-up is performed.
-
enable_continuous_cleanup (bool, default: false)
Enable/disable a continuous clean-up of the elevation map. If enabled, on arrival of each new sensor data the elevation map will be cleared and filled up only with the latest data from the sensor. When continuous clean-up is enabled, visibility clean-up will automatically be disabled since it is not needed in this case.
-
num_callback_threads (int, default: 1, min: 1)
The number of threads to use for processing callbacks. More threads results in higher throughput, at cost of more resource usage.
-
postprocessor_pipeline_name (string, default: postprocessor_pipeline)
The name of the pipeline to execute for postprocessing. It expects a pipeline configuration to be loaded in the private namespace of the node under this name.
E.g.:
<node pkg="elevation_mapping" type="elevation_mapping" name="elevation_mapping" output="screen">
...
<rosparam command="load" file="$(find elevation_mapping_demos)/config/postprocessor_pipeline.yaml" />
</node>
A pipeline is a grid_map_filter chain, see grid_map_demos/filters_demo.yaml and ros / filters for more information.
-
postprocessor_num_threads (int, default: 1, min: 1)
The number of threads to use for asynchronous postprocessing. More threads results in higher throughput, at cost of more resource usage.
-
scanning_duration (double, default: 1.0)
The sensor's scanning duration (in s) which is used for the visibility cleanup. Set this roughly to the duration it takes between two consecutive full scans (e.g. 0.033 for a ToF camera with 30 Hz, or 3 s for a rotating laser scanner). Depending on how dense or sparse your scans are, increase or reduce the scanning duration. Smaller values lead to faster dynamic object removal and bigger values help to reduce faulty map cleanups.
-
sensor_cutoff_min_depth, sensor_cutoff_max_depth (double, default: 0.2, 2.0)
The minimum and maximum values for the length of the distance sensor measurements. Measurements outside this interval are ignored.
-
sensor_model_normal_factor_a, sensor_model_normal_factor_b, sensor_model_normal_factor_c, sensor_model_lateral_factor (double)
The data for the sensor noise model.
-
initialize_elevation_map (bool),
initialization_method (int),
length_in_x_init_submap (double, m),
length_in_y_init_submap (double, m),
init_submap_height_offset (double, m),
init_submap_variance (double),
target_frame_init_submap (string)
If enabled (initialize_elevation_map: true),
initializes a plane (initialization_method: 0) of size (submap_length_x, submap_length_y)
at a height offset of init_submap_height_offset around the origin of target_frame_init_submap.
The variance is set to init_submap_variance.
-
increase_height_alpha (double, default: 0.0, min: 0.0, max: 0.99)
elevation = increase_height_alpha * previous_z + (1.0 - increase_height_alpha) * new_measured_z
Convex combination parameter to form a new, fused height observation for out of distribution points.
Observations with a height above the upper mahalanobis threshold for cells that have not been observed for scanning_duration
trigger a re-initialization of the height estimate. The re-initialization is parameterized as convex combination of the prior height
estimate and the observation:
- 0.0: The new observation serves as is to initialize a new mode, prior data is discarded.
- 1.0: The new observation of a higher, out of distribution, point from the current scan is not put into account. The prior is kept as
mode.
- In between: A higher value puts more bias on the existing, prior estimate. A convex combination of both height and variance between
estimate and measurement will be formed to initialize the new gaussian height distribution.