# patchwork-plusplus **Repository Path**: primer007/patchwork-plusplus ## Basic Information - **Project Name**: patchwork-plusplus - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-29 - **Last Updated**: 2024-08-29 ## 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.
[YouTubeLInk]: https://www.youtube.com/watch?v=fogCM159GRk [arXivlink]: https://arxiv.org/abs/2207.11919 [patchworklink]: https://github.com/LimHyungTae/patchwork [SemanticKITTIlink]: http://www.semantic-kitti.org/ [benchmarklink]: https://github.com/url-kaist/Ground-Segmentation-Benchmark ## :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++! [roslink]: https://github.com/url-kaist/patchwork-plusplus-ros [sourcecodelink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/cpp/patchworkpp [pybind11link]: https://github.com/pybind/pybind11 [wraplink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/python/patchworkpp [cppexamplelink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/cpp [pyexamplelink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/python [rosexamplelink]: https://github.com/url-kaist/patchwork-plusplus/tree/master/ros ## :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} } ``` [patchworkppIEEElink]: https://ieeexplore.ieee.org/document/9981561 [patchworkarXivlink]: https://arxiv.org/abs/2108.05560 [patchworkIEEElink]: https://ieeexplore.ieee.org/document/9466396 ## :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 [sjlink]: https://github.com/seungjae24 [htlink]: https://github.com/LimHyungTae --- ## 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