Skip to content

Patchwork++: Fast and robust ground segmentation method for 3D LiDAR scans. @ IROS'22

License

Notifications You must be signed in to change notification settings

url-kaist/patchwork-plusplus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9c97f17 Β· Dec 6, 2024

History

77 Commits
Dec 6, 2024
Dec 6, 2024
Jul 24, 2022
May 30, 2024
Dec 6, 2024
May 31, 2024
May 30, 2024
Apr 14, 2024
Aug 25, 2022
May 30, 2024
May 30, 2024

Repository files navigation

Patchwork++



Video   β€’   Install   β€’   ROS2   β€’   Paper   β€’   Contact Us

animated

Patchwork++, an extension of Patchwork, is a fast, robust, and self-adaptive ground segmentation algorithm on 3D point cloud.

πŸ“‚ What's in this repo

If you are familiar with ROS1, you can also visit here and try executing ROS1-based Patchwork++!

πŸ“¦ Prerequisite packages

What we need are just minimal dependencies.

sudo apt-get install g++ build-essential libeigen3-dev python3-pip python3-dev cmake -y

βš™οΈ How to build & Run

Python

Pure installation

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.

make pyinstall_with_demo

How to run Python demos is explained here.

C++

Pure installation

make cppinstall

Installation with demo

Only Open3D (> 0.17.0) is additionally installed for visualization purposes.

make cppinstall_with_demo

How to run the C++ demos is explained here.

ROS2

You should not need any extra dependency, just clone and build:

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.

πŸ“ Citation

If you use our codes, please cite our paper (arXiv, IEEE Xplore)

@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, IEEE Xplore)

@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}
}

🚩 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

πŸ“« Contact Information

If you have any questions, please do not hesitate to contact us


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