A ROS library for robust plane segmentation from LIDAR, depth camera data, and elevation maps using normal-based clustering.
Plane Seg is a ROS library for robust plane segmentation from 3D sensor data like LIDAR, depth cameras, and elevation maps. It clusters planar points with similar normals to extract contact regions and terrain geometry, solving the problem of perceiving navigable surfaces and obstacles for robots in unstructured environments.
Robotics researchers and engineers working on perception for legged robots, autonomous navigation, or manipulation tasks that require real-time plane extraction from depth data.
Developers choose Plane Seg for its proven robustness with real robot data (e.g., ANYmal), efficient performance on dense point clouds, and seamless ROS integration—making it ideal for extracting geometrically meaningful contact regions in dynamic environments.
Plane Segmentation Utilites
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses normal-based clustering to effectively handle noisy depth data, proven in real-world applications like ANYmal climbing stairs, as shown in the README videos and performance metrics.
Directly processes ROS PointCloud2 and GridMap data types with dedicated launch files, enabling quick integration into existing ROS-based robotic systems for perception pipelines.
Achieves ~0.3 seconds processing time on 18k-point elevation maps from real robot data, making it suitable for real-time navigation tasks in unstructured environments.
Extracts line segments from detected planes to identify steps and obstacles, enhancing terrain perception for autonomous robots, as detailed in the edge detection package.
The README explicitly states that the code assumes planar regions are convex and does not properly handle concave areas, which is a significant drawback for complex terrain segmentation.
Tightly coupled with ROS and PCL, making it incompatible with non-ROS projects and adding setup complexity for cross-platform or minimal-dependency environments.
Processing 76k points takes 2.5 seconds, which may be too slow for real-time applications with high-density sensors like detailed LIDAR scans, as noted in the performance section.