# patchwork-plusplus **Repository Path**: duanyuanchao123/patchwork-plusplus ## Basic Information - **Project Name**: patchwork-plusplus - **Description**: ros2地面滤波 - **Primary Language**: Unknown - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-04 - **Last Updated**: 2025-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Patchwork++



Video   •   Install   •   ROS2   •   Paper   •   Contact Us

animated

[Patchwork++][arxivlink], an extension of [Patchwork][patchworklink], is **a fast, robust, and self-adaptive ground segmentation algorithm** on 3D point cloud.
## :open_file_folder: What's in this repo - C++ source code of Patchwork++ ([patchworkpp][sourcecodelink]) - Python binding of Patchwork++ using pybind11 ([python_wrapper][wraplink]) - Examples codes of [C++][cppexamplelink], [Python][pyexamplelink], and [ROS2][rosexamplelink] :thumbsup: > If you are familiar with ROS1, you can also visit [here][roslink] and try executing ROS1-based Patchwork++! ## :package: Prerequisite packages > What we need are just minimal dependencies. ```commandline sudo apt-get install g++ build-essential libeigen3-dev python3-pip python3-dev cmake -y ``` ## :gear: How to build & Run ### Python **Pure installation** ```commandline make pyinstall ``` Then, you can use Patchwork++ by `import pypatchworkpp`, which is super simple! **Installation to run demo** Only Open3D (> 0.17.0) is additionally installed for visualization purposes. ```commandline make pyinstall_with_demo ``` How to run Python demos is explained [here][pyexamplelink]. ### C++ **Pure installation** ```commandline make cppinstall ``` **Installation with demo** Only Open3D (> 0.17.0) is additionally installed for visualization purposes. ```commandline make cppinstall_with_demo ``` How to run the C++ demos is explained [here][cppexamplelink]. ### ROS2 You should not need any extra dependency, just clone and build: ```commandline mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src git clone https://github.com/url-kaist/patchwork-plusplus.git cd ~/ros2_ws colcon build --packages-select patchworkpp source ./install/setup.bash ``` How to launch ROS2 nodes is explained [here][rosexamplelink]. ## :pencil: Citation If you use our codes, please cite our paper ([arXiv][arxivlink], [IEEE *Xplore*][patchworkppieeelink]) ``` @inproceedings{lee2022patchworkpp, title={{Patchwork++: Fast and robust ground segmentation solving partial under-segmentation using 3D point cloud}}, author={Lee, Seungjae and Lim, Hyungtae and Myung, Hyun}, booktitle={Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst.}, year={2022}, pages={13276-13283} } ``` In addition, you can also check the paper of our baseline, Patchwork. ([arXiv][patchworkarxivlink], [IEEE *Xplore*][patchworkieeelink]) ``` @article{lim2021patchwork, title={Patchwork: Concentric Zone-based Region-wise Ground Segmentation with Ground Likelihood Estimation Using a 3D LiDAR Sensor}, author={Lim, Hyungtae and Minho, Oh and Myung, Hyun}, journal={IEEE Robotics and Automation Letters}, year={2021} } ``` ## :triangular_flag_on_post: Tested Environment - Ubuntu ~~18.04 and~~ 20.04 and 22.04 - CMake 3.25.1 (>=3.20, min. Required to install Open3D) - In `scripts/install_open3d.bash`, the installation of the higher version of CMake is already implemented. - Open3D ~~0.15.2~~ 0.18.0 - pybind11 v2.2.3 - Eigen 3.3.7 ## :mailbox: Contact Information If you have any questions, please do not hesitate to contact us - [Seungjae Lee][sjlink] :envelope: sj98lee `at` kaist `ac` kr - [Hyungtae Lim][htlink] :envelope: shapelim `at` kaist `ac` kr ______________________________________________________________________ ## Todo List - \[ \] Support intensity for RNR in `master` branch - \[ \] Support `Patchwork` mode for users who use this repository for baseline comparison purposes - \[ \] Integrate TBB and optimize the performance [arxivlink]: https://arxiv.org/abs/2207.11919 [cppexamplelink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/cpp [htlink]: https://github.com/LimHyungTae [patchworkarxivlink]: https://arxiv.org/abs/2108.05560 [patchworkieeelink]: https://ieeexplore.ieee.org/document/9466396 [patchworklink]: https://github.com/LimHyungTae/patchwork [patchworkppieeelink]: https://ieeexplore.ieee.org/document/9981561 [pyexamplelink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/python [rosexamplelink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/ros [roslink]: https://github.com/url-kaist/patchwork-plusplus-ros [sjlink]: https://github.com/seungjae24 [sourcecodelink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/cpp/patchworkpp [wraplink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/python/patchworkpp