Patchwork
Official page of "Patchwork: Concentric Zone-based Region-wise Ground Segmentation with Ground Likelihood Estimation Using a 3D LiDAR Sensor", which is accepted by RA-L with IROS'21 option
Video] [Preprint Paper] [Project Wiki]
[Patchwork | Concept of our method (CZM & GLE) |
---|---|
It's an overall updated version of R-GPF of ERASOR [Code] [Paper].
Demo
KITTI 00
Rough Terrain
Characteristics
-
Single hpp file (
include/patchwork/patchwork.hpp
) -
Robust ground consistency
As shown in the demo videos and below figure, our method shows the most promising robust performance compared with other state-of-the-art methods, especially, our method focuses on the little perturbation of precision/recall as shown in this figure.
Please kindly note that the concept of traversable area and ground is quite different! Please refer to our paper.
Contents
Test Env.
The code is tested successfully at
- Linux 18.04 LTS
- ROS Melodic
Requirements
ROS Setting
-
- Install ROS on a machine.
-
- Thereafter, jsk-visualization is required to visualize Ground Likelihood Estimation status.
sudo apt-get install ros-melodic-jsk-recognition
sudo apt-get install ros-melodic-jsk-common-msgs
sudo apt-get install ros-melodic-jsk-rviz-plugins
-
- Compile compile this package. We use catkin tools,
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/LimHyungTae/patchwork.git
cd .. && catkin build patchwork
How to Run Patchwork
We provide three examples
- Offline KITTI dataset
- Online (ROS Callback) KITTI dataset
- Own dataset using pcd files
Offline KITTI dataset
-
Download SemanticKITTI Odometry dataset (We also need labels since we also open the evaluation code! :)
-
Set the
data_path
inlaunch/offline_kitti.launch
for your machine.
The data_path
consists of velodyne
folder and labels
folder as follows:
data_path (e.g. 00, 01, ..., or 10)
_____velodyne
|___000000.bin
|___000001.bin
|___000002.bin
|...
_____labels
|___000000.label
|___000001.label
|___000002.label
|...
_____...
- Run launch file
roslaunch patchwork offline_kitti.launch
You can directly feel the speed of Patchwork!
Online (ROS Callback) KITTI dataset
We also provide rosbag example. If you run our patchwork via rosbag, please refer to this example.
- Download readymade rosbag
wget https://urserver.kaist.ac.kr/publicdata/patchwork/kitti_00_xyzilid.bag
- After building this package, run the roslaunch as follows:
roslaunch patchwork rosbag_kitti.launch
- Then play the rosbag file in another command
rosbag play kitti_00_xyzilid.bag
Own dataset using pcd files
Please refer to /nodes/offilne_own_data.cpp
.
(Note that in your own data format, there may not exist ground truth labels!)
Be sure to set right params. Otherwise, your results may be wrong as follows:
W/ wrong params | After setting right params |
---|---|
For better understanding of the parameters of Patchwork, please read our wiki, 4. IMPORTANT: Setting Parameters of Patchwork in Your Own Env..
Offline (Using *.pcd or *.bin file)
-
Utilize
/nodes/offilne_own_data.cpp
-
Please check the output by following command and corresponding files:
roslaunch patchwork offline_ouster128.launch
Online (via rosbag)
-
Utilize
rosbag_kitti.launch
. -
To do so, remap the topic of subscriber, e.g. add remap line as follows:
<remap from="/node" to="$YOUR_LIDAR_TOPIC_NAME$"/>
- In addition, minor modification of
ros_kitti.cpp
is necessary by refering tooffline_own_data.cpp
.
Citation
If you use our code or method in your work, please consider citing the following:
@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}
}
Description
All explanations of parameters and other experimental results will be uploaded in wiki
Contact
If you have any questions, please let me know:
- Hyungtae Lim {[email protected]}
TODO List
- Add ROS support
- Add preprint paper
- Add demo videos
- Add own dataset examples
- Update wiki