This is a fast and robust algorithm to segment point clouds taken with Velodyne sensor into objects. It works with all available Velodyne sensors, i.e. 16, 32 and 64 beam ones. With user provided Configuration it is even possible to work with any typical Laserscanner. But the one, who uses general configuration, must ensure that fundemantal algorithm makes sense to be implemented. Due to the enviroment, a robot is operating in, appropriate configuration must be tuned (f.E. depth_ground_removal or tunnel_ground_removal)
Check out a video that shows all objects which have a bounding box of less than 10 squared meters:
- Catkin.
- OpenCV:
sudo apt-get install libopencv-dev
- PCL
- ROS
This is a catkin package. So we assume that the code is in a catkin workspace and CMake knows about the existence of Catkin. Then you can build it from the project folder:
mkdir build
cd build
cmake ..
make -j4
- (optional)
ctest -VV
It can also be built with catkin_tools
if the code is inside catkin
workspace:
catkin build depth_clustering
P.S. in case you don't use catkin build
you should.
Install it by sudo pip install catkin_tools
.
'roslaunch depth_clustering ....' create your own launch file in ./launch/ (read depth_clusterer.launch) create your own configuration files in ./config/clusterer and ./config/projection (read defaults)
Go to folder with binaries:
cd <path_to_project>/build/devel/lib/depth_clustering
Get the data:
mkdir data/; wget http://www.mrt.kit.edu/z/publ/download/velodyneslam/data/scenario1.zip -O data/moosmann.zip; unzip data/moosmann.zip -d data/; rm data/moosmann.zip
Default configuration is for Moosmann's Dataset: edit parameter from_path in default.yaml to the path:
roslaunch depth_clustering depth_clusterer.launch
You should be able to get Doxygen documentation by running:
cd doc/
doxygen Doxyfile.conf
Please cite related papers if you use this code:
@InProceedings{bogoslavskyi16iros,
title = {Fast Range Image-Based Segmentation of Sparse 3D Laser Scans for Online Operation},
author = {I. Bogoslavskyi and C. Stachniss},
booktitle = {Proc. of The International Conference on Intelligent Robots and Systems (IROS)},
year = {2016},
url = {http://www.ipb.uni-bonn.de/pdfs/bogoslavskyi16iros.pdf}
}
@Article{bogoslavskyi17pfg,
title = {Efficient Online Segmentation for Sparse 3D Laser Scans},
author = {I. Bogoslavskyi and C. Stachniss},
journal = {PFG -- Journal of Photogrammetry, Remote Sensing and Geoinformation Science},
year = {2017},
pages = {1--12},
url = {https://link.springer.com/article/10.1007%2Fs41064-016-0003-y},
}