Skip to content

pointcloud_preprocessor#

Purpose#

The pointcloud_preprocessor is a package that includes the following filters:

  • removing outlier points
  • cropping
  • concatenating pointclouds
  • correcting distortion
  • downsampling

Inner-workings / Algorithms#

Detail description of each filter's algorithm is in the following links.

Filter Name Description Detail
concatenate_data subscribe multiple pointclouds and concatenate them into a pointcloud link
crop_box_filter remove points within a given box link
distortion_corrector compensate pointcloud distortion caused by ego vehicle's movement during 1 scan link
downsample_filter downsampling input pointcloud link
outlier_filter remove points caused by hardware problems, rain drops and small insects as a noise link
passthrough_filter remove points on the outside of a range in given field (e.g. x, y, z, intensity) link
pointcloud_accumulator accumulate pointclouds for a given amount of time link
vector_map_filter remove points on the outside of lane by using vector map link

Inputs / Outputs#

Input#

Name Type Description
~/input/points sensor_msgs::msg::PointCloud2 reference points
~/input/indices pcl_msgs::msg::Indices reference indices

Output#

Name Type Description
~/output/points sensor_msgs::msg::PointCloud2 filtered points

Parameters#

Node Parameters#

Name Type Default Value Description
input_frame string " " input frame id
output_frame string " " output frame id
max_queue_size int 5 max queue size of input/output topics
use_indices bool false flag to use pointcloud indices
latched_indices bool false flag to latch pointcloud indices
approximate_sync bool false flag to use approximate sync option

Assumptions / Known limits#

pointcloud_preprocessor::Filter is implemented based on pcl_perception [1] because of this issue.

(Optional) Error detection and handling#

(Optional) Performance characterization#

[1] https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/src/pcl_ros/filters/filter.cpp

(Optional) Future extensions / Unimplemented parts#

Back to top