TRAVEL for RA-L'22 w/ IROS Option
Official page of "TRAVEL: Traversable Ground and Above-Ground Object Segmentation using Graph Representation for 3D LiDAR Scans", which is accepted by RA-L with IROS'22 option.
Demo
Keywords
Object segmentation, Traversable ground segmentation, Graph search, Autonomous navigation, LiDAR
To Do
- This archive is still being updated. Up until the IROS'22 presentation, I will update the final version.
- runnable node on general setting.
- Add the application codes
- Update for docker users
Contributors
- Minho Oh & Euigon Jung
- email:
- Minho Oh: [email protected]
- Euigon Jung: [email protected]
- Advised from Hyungtae Lim and Hyun Myung @ KAIST
Test Env.
- Ubuntu 18.04 LTS
- ROS Melodic
How to Build
- Dependencies
sudo apt install cmake libeigen3-dev libboost-all-dev 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
- Build
mkdir -p catkin_ws/src/ cd catkin_ws/src/ git clone https://github.com/url-kaist/TRAVEL.git ../ catkin_make
How to Run In KITTI
roslaunch travel run_kitti.launch data_dir:=${ABS_DIRECTORY_OF_KITTI} seq:=${SEQUENCE_ID}
# for example,
# then, the bin files in `/home/shapelim/qbench/kitti/00/velodyne` are loaded in the ascending order
roslaunch travel run_kitti.launch data_dir:=/home/shapelim/qbench/kitti seq:=00
Download our dataset
-
rough_terrain_1 (24.5GB) and rough_terrain_2 (15.4GB) are our rough terrain dataset.
wget https://urserver.kaist.ac.kr/publicdata/TRAVEL_22/rough_terrain_1.bag wget https://urserver.kaist.ac.kr/publicdata/TRAVEL_22/rough_terrain_2.bag
How to Run TRAVEL
- RUN!
roslaunch travel run.launch
On your setting.
- Include two header files in your source. "tgs.hpp" & "aos.hpp"
- Initialize "travel::TravelGroundSeg" and "travel::ObjectCluster"
- Use the "setParams()" function in each class to set the parameters.
- Use "travel::TravelGroundSeg.estimateGround()" function for traversable ground segmentation
- Use "travel::ObjectCluster.segmentObjects()" function for above-ground object segmentation
- I will upload an example ros node that subscribes to sensor data.
- If you want to use TRAVEL with python code, then visit here (https://github.com/darrenjkt/TRAVEL). Thank you Darren :)
Aplications
-
Local terrain map.
-
Global traversable map.
-
Global static traversable map by using TRAVEL with ERASOR
Citation
If our research has been helpful, please cite the below papers:
@ARTICLE{oh2022travel,
author={Oh, Minho and Jung, Euigon and Lim, Hyungtae and Song, Wonho and Hu, Sumin and Lee, Eungchang Mason and Park, Junghee and Kim, Jaekyung and Lee, Jangwoo and Myung, Hyun},
journal={IEEE Robotics and Automation Letters},
title={TRAVEL: Traversable Ground and Above-Ground Object Segmentation Using Graph Representation of 3D LiDAR Scans},
volume={7},
number={3},
pages={7255-7262},
year={2022},
}
@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 Robot. Autom. Lett.},
volume={6},
number={4},
pages={6458--6465},
year={2021},
}
@article{lim2021erasor,
title={ERASOR: Egocentric Ratio of Pseudo Occupancy-Based Dynamic Object Removal for Static 3D Point Cloud Map Building},
author={Lim, Hyungtae and Hwang, Sungwon and Myung, Hyun},
journal={IEEE Robotics and Automation Letters},
volume={6},
number={2},
pages={2272--2279},
year={2021},
publisher={IEEE}
}