A ROS filter that removes points belonging to a robot's own body from laser scans and point clouds.
robot_body_filter is a ROS-based filter that removes points corresponding to a robot's own body from laser scans and point clouds. It solves the problem of self-occlusion in robotic perception, where the robot's body appears in its sensor data, corrupting tasks like mapping, obstacle detection, and navigation. The filter uses the robot's URDF model and TF transforms to identify and filter out these points through containment and ray-tracing tests.
ROS developers and roboticists working on perception systems for mobile manipulators, autonomous vehicles, or any robot with onboard sensors that can see its own body. It is particularly useful for those using lidars, RGB-D cameras, or laser scanners in dynamic environments.
Developers choose robot_body_filter for its improved accuracy over predecessors like robot_self_filter, its support for both organized and unorganized point clouds, and its extensive configurability for different sensor modalities and robot motions. The ability to compute bounding shapes and provide detailed debugging outputs makes it a versatile tool for robust perception pipelines.
Filters the robot's body out of point clouds and laser scans.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Combines clipping, containment tests, and shadow tests to comprehensively remove robot body points, as described in the general overview for robust data cleaning.
Supports both all-at-once and point-by-point acquisition modes with proper temporal interpolation, essential for sensors like spinning lidars, per the data acquisition modes section.
Publishes visualization markers and point clouds for each filtering class (INSIDE, CLIP, SHADOW), aiding in setup and verification as highlighted in the debug operation section.
Allows parameters to limit processed links, shadow test distance, and model update frequency to balance accuracy and CPU usage, detailed in the performance tips.
With over 50 parameters and nuanced TF frame settings, initial setup requires significant effort, as admitted in the tutorial and examples folder for inspiration.
Shadow tests involve ray-tracing and can be slow, especially with complex mesh models, necessitating performance optimizations that may reduce accuracy, per the performance tips.
The oriented bounding box computation is described as 'very bad conditioned' and 'non-satisfying' in the README, limiting its usefulness for precise volume estimation.