Fast and robust clustering of point clouds generated with a Velodyne sensor.

Overview

Depth Clustering

Build Status Coverage Status

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.

Check out a video that shows all objects outlined in orange: Segmentation illustration

Prerequisites

I recommend using a virtual environment in your catkin workspace ( in this readme) and will assume that you have it set up throughout this readme. Please update your commands accordingly if needed. I will be using pipenv that you can install with pip.

Set up workspace and catkin

Regardless of your system you will need to do the following steps:

cd <catkin_ws>            # navigate to the workspace
pipenv shell --fancy      # start a virtual environment
pip install catkin-tools  # install catkin-tools for building
mkdir src                 # create src dir if you don't have it already
# Now you just need to clone the repo:
git clone https://github.com/PRBonn/depth_clustering src/depth_clustering

System requirements

You will need OpenCV, QGLViewer, FreeGLUT, QT4 or QT5 and optionally PCL and/or ROS. The following sections contain an installation command for various Ubuntu systems (click folds to expand):

Ubuntu 14.04

Install these packages:

sudo apt install libopencv-dev libqglviewer-dev freeglut3-dev libqt4-dev
Ubuntu 16.04

Install these packages:

sudo apt install libopencv-dev libqglviewer-dev freeglut3-dev libqt5-dev
Ubuntu 18.04

Install these packages:

sudo apt install libopencv-dev libqglviewer-dev-qt5 freeglut3-dev qtbase5-dev 

You might also need the latest GoogleTest binary installed on your systems. As Ubuntu is not shipped with these binaries by default, you would have to install them yourself or adapt the build script to build them from source.

Optional requirements

If you want to use PCL clouds and/or use ROS for data acquisition you can install the following:

  • (optional) PCL - needed for saving clouds to disk
  • (optional) ROS - needed for subscribing to topics

How to build?

This is a catkin package. So we assume that the code is in a catkin workspace and CMake knows about the existence of Catkin. It should be already taken care of if you followed the instructions here. Then you can build it from the project folder:

mkdir build
cd build
cmake ..
make -j4
ctest -VV  # run unit tests, optional

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 reconsider your decision.

How to run?

See examples. There are ROS nodes as well as standalone binaries. Examples include showing axis oriented bounding boxes around found objects (these start with show_objects_ prefix) as well as a node to save all segments to disk. The examples should be easy to tweak for your needs.

Run on real world data

Go to folder with binaries:

cd 
   
    /build/devel/lib/depth_clustering

   

Frank Moosmann's "Velodyne SLAM" Dataset

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

Run a binary to show detected objects:

./show_objects_moosmann --path data/scenario1/

Alternatively, you can run the data from Qt GUI (as in video):

./qt_gui_app

Once the GUI is shown, click on OpenFolder button and choose the folder where you have unpacked the png files, e.g. data/scenario1/. Navigate the viewer with arrows and controls seen on screen.

Other data

There are also examples on how to run the processing on KITTI data and on ROS input. Follow the --help output of each of the examples for more details.

Also you can load the data from the GUI. Make sure you are loading files with correct extension (*.txt and *.bin for KITTI, *.png for Moosmann's data).

Documentation

You should be able to get Doxygen documentation by running:

cd doc/
doxygen Doxyfile.conf

Related publications

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},
}
Comments
  • subscribing to clusters/bounding boxes

    subscribing to clusters/bounding boxes

    Thanks for creating this awesome tool!

    I noticed that it can subscribe to ros topics to obtain pointclouds to cluster, but was wondering if there are any ways to subscribe to the bounding boxes or clusters as well.

    If not, how would you recommend going about doing this?

    Thanks, Banti

    question 
    opened by bgheneti 14
  • how can this publish topics represent the bounding box?

    how can this publish topics represent the bounding box?

    Hi
    Thanks for your work on this package, how can the bounding box be published as a topic after the segmentation? after catkin build, it seems that they is no rosnode related to the following two file: ``

    1. save_clusters_node.cpp 2.show_objects_node.cpp `` Best Welson
    opened by weisongwen 12
  • Eigen fatal when runing

    Eigen fatal when runing

    Hi, @niosus , thank you for sharing your excellent work. I try to run the code and show objects using moosmann dataset, but failed.

    The running environment is ubuntu 16.04 with ros kinetic and eigen 3.3.4.

    I got some feedback as follow:

    INFO: Reading from: /home/lee/depth_clustering_ws/data/scenario1/
    INFO: running on Moosman data
    INFO: Getting file paths from folder: /home/lee/depth_clustering_ws/data/scenario1/
    INFO: There are 2513 '.png' files in the folder.
    INFO: Getting file paths from folder: /home/lee/depth_clustering_ws/data/scenario1/
    INFO: There are 1 'img.cfg' files in the folder.
    INFO: Set en_US.UTF-8 locale.
    INFO: Reading config.
    INFO: Skipping commentary:
    # imgHSize; imgVSize; horizStartAngle(grad); horizStopAngle(grad); vertAngle_1; vertAngle_2; ...; vertAngle_n
    start:180.000000, stop:-180.000000, span:360.000000, step:-0.413793
    INFO: Params sucessfully read. Rows: 64, Cols: 870
    
    ===================== Setting Connection =====================
    || Sender: DepthGroundRemover (id: 3)
    || Type: STREAMER
    || |
    || V
    || Client: ImageBasedClustere<(short)1, (short)1> > (id: 5)
    ==============================================================
    
    ===================== Setting Connection =====================
    || Sender: ImageBasedClustere<(short)1, (short)1> > (id: 5)
    || Type: STREAMER
    || |
    || V
    || Client: ObjectPtrStorer (id: 2)
    ==============================================================
    
    show_objects_moosmann: /usr/local/include/eigen3/Eigen/src/Core/DenseStorage.h:128:Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 32>::plain_array() [with T = float; int Size = 16; int MatrixOrArrayOptions = 0]: Assertion ‘(internal::UIntPtr(eigen_unaligned_array_assert_workaround_gcc47(array)) & (31)) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"’ Failed。
    

    I checked the web and found it's the problem caused by Eigen. Is there anyone know how to fix it? Many thanks!

    opened by LiShuaixin 9
  • Unable to build

    Unable to build

    I am unable to build using ROS Kinetic (ubuntu 16.04). Showing following error: error: call of overloaded ‘make_shared(PclCloud&)’ is ambiguous return make_shared(pcl_cloud); ^ error

    opened by bymbhaskar 8
  • build error

    build error

    some error when I build

    Errors << depth_clustering:make /home/dgist/workspace/git-folder/clustering_ws/logs/depth_clustering/build.make.002.log CMakeFiles/depth_clustering_test.dir/test_pose.cpp.o: In function PoseDeathTest_TestLikelihood_Test::TestBody()': test_pose.cpp:(.text+0x585d): undefined reference totesting::internal::DeathTest::Create(char const*, testing::Matcher<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>, char const*, int, testing::internal::DeathTest**)' test_pose.cpp:(.text+0x5928): undefined reference to `testing::internal::DeathTest::Create(char const*, testing::Matcher<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>, char const*, int, testing::internal::DeathTest**)' collect2: error: ld returned 1 exit status make[2]: *** [/home/dgist/workspace/git-folder/clustering_ws/devel/.private/depth_clustering/lib/depth_clustering/depth_clustering_test] Error 1 make[1]: *** [test/CMakeFiles/depth_clustering_test.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [all] Error 2 cd /home/dgist/workspace/git-folder/clustering_ws/build/depth_clustering; catkin build --get-env depth_clustering | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd - ............................................................................... Failed << depth_clustering:make [ Exited with code 2 ]
    Failed <<< depth_clustering

    what is happen?

    my PC setting is

    1. Ubuntu 18.04
    2. ROS melodic
    3. install PCL

    my command is $ pip install catkin-tools $ catkin build depth_clustering

    opened by lejk8104 7
  • kernel problem

    kernel problem

    1 in GetSavitskyGolayKernel

          kernel = Mat::zeros(window_size, 1, CV_32F);
          kernel.at<float>(0, 0) = -3.0f;
          kernel.at<float>(0, 1) = 12.0f;
          kernel.at<float>(0, 2) = 17.0f;
          kernel.at<float>(0, 3) = 12.0f;
          kernel.at<float>(0, 4) = -3.0f;
    

    the kernel size first is window_size*1, why set value (0, 1) (0, 2)... does kernel size is 1*window_size?

    2 in GetUniformKernel

    Mat kernel = Mat::zeros(window_size, 1, type);
    kernel.at<float>(0, 0) = 1;
    kernel.at<float>(window_size - 1, 0) = 1;
    kernel /= 2;
    
    

    kernel /= 2 make kernel is like [[0.5, 0, 0.... 0, 0.5]] , but kernel value must be 1, why devidi by 2?

    opened by lonlonago 6
  • Implementation on velodyne lidar

    Implementation on velodyne lidar

    I am using Velodyne (VLP-32C) Lidar. Could you please let me know, if this Lidar gives range data (as 32 rows and many columns, used in your method) or I need to create this kind of format using the point cloud. Creating a cylindrical projection from a point cloud increases the run time to great extent..

    opened by bymbhaskar 5
  • clustering problems

    clustering problems

    Hello,

    First of all, very nice tool! I have been testing these nodes with our VLP16 and they worked very well. We drove around with our car and had similar results as in your movies. Now we have created a simulator that calculates the interference of the lidar rays and some objects. This simulator creates pointclouds as the VLP16 would do, but I don't get the nice results as on the tests with the real VLP16. I'm not sure what is going wrong, but maybe you have an idea.

    The simulated environment is a flat surface with some vertical walls and every wall should in fact be seen as one cluster. I don't see any clustering going on if I do not set the minimal cluster size to 10. But then I see that the calculated clusters are only like vertical small boxes. Is there a limitation towards how far the points can be apart form each other and is this direction dependent? I have put some screenshots below.

    I appreciate your help very much!

    image

    image

    image

    image

    opened by FlexiPro 5
  • wip: introduce an image with debug info published by labeler

    wip: introduce an image with debug info published by labeler

    I want to be able to easily visualize the angle image produced from the depth image. For this I want a nice interface for sending back an image to anyone who decides to ask for it as a client.

    opened by niosus 5
  • *** Error in `./show_objects_moosman': realloc(): invalid pointer: 0x00007fae44ebb820 ***

    *** Error in `./show_objects_moosman': realloc(): invalid pointer: 0x00007fae44ebb820 ***

    *** Error in `./show_objects_moosman': realloc(): invalid pointer: 0x00007fae44ebb820 ***
    ======= Backtrace: =========
    /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fae480ae7e5]
    /lib/x86_64-linux-gnu/libc.so.6(realloc+0x348)[0x7fae480bae58]
    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN9QListData7reallocEi+0x1f)[0x7fae433e09cf]
    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN9QListData6appendEi+0x81)[0x7fae433e0aa1]
    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x1d6d78)[0x7fae434acd78]
    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_Z21qRegisterResourceDataiPKhS0_S0_+0x2e6)[0x7fae434a8b16]
    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x7bcc3)[0x7fae43351cc3]
    /lib64/ld-linux-x86-64.so.2(+0x104ea)[0x7fae4b44c4ea]
    /lib64/ld-linux-x86-64.so.2(+0x105fb)[0x7fae4b44c5fb]
    /lib64/ld-linux-x86-64.so.2(+0xcfa)[0x7fae4b43ccfa]
    ======= Memory map: ========
    00400000-0041f000 r-xp 00000000 08:01 5143141                            /home/suijingfeng/source/depth_clustering/build/devel/lib/depth_clustering/show_objects_moosman
    0061f000-00620000 r--p 0001f000 08:01 5143141                            /home/suijingfeng/source/depth_clustering/build/devel/lib/depth_clustering/show_objects_moosman
    00620000-00621000 rw-p 00020000 08:01 5143141                            /home/suijingfeng/source/depth_clustering/build/devel/lib/depth_clustering/show_objects_moosman
    020ff000-02120000 rw-p 00000000 00:00 0                                  [heap]
    7fae38000000-7fae38021000 rw-p 00000000 00:00 0 
    7fae38021000-7fae3c000000 ---p 00000000 00:00 0 
    7fae3c6b6000-7fae3c6bb000 r-xp 00000000 08:01 1056915                    /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
    7fae3c6bb000-7fae3c8ba000 ---p 00005000 08:01 1056915                    /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
    7fae3c8ba000-7fae3c8bb000 r--p 00004000 08:01 1056915                    /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
    7fae3c8bb000-7fae3c8bc000 rw-p 00005000 08:01 1056915                    /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
    7fae3c8bc000-7fae3c8df000 r-xp 00000000 08:01 1057462                    /usr/lib/x86_64-linux-gnu/libgraphite2.so.3.0.1
    7fae3c8df000-7fae3cade000 ---p 00023000 08:01 1057462                    /usr/lib/x86_64-linux-gnu/libgraphite2.so.3.0.1
    7fae3cade000-7fae3cae0000 r--p 00022000 08:01 1057462                    /usr/lib/x86_64-linux-gnu/libgraphite2.so.3.0.1
    7fae3cae0000-7fae3cae1000 rw-p 00024000 08:01 1057462                    /usr/lib/x86_64-linux-gnu/libgraphite2.so.3.0.1
    7fae3cae1000-7fae3caec000 r-xp 00000000 08:01 1057634                    /usr/lib/x86_64-linux-gnu/libjbig.so.0
    7fae3caec000-7fae3cceb000 ---p 0000b000 08:01 1057634                    /usr/lib/x86_64-linux-gnu/libjbig.so.0
    7fae3cceb000-7fae3ccec000 r--p 0000a000 08:01 1057634                    /usr/lib/x86_64-linux-gnu/libjbig.so.0
    7fae3ccec000-7fae3ccef000 rw-p 0000b000 08:01 1057634                    /usr/lib/x86_64-linux-gnu/libjbig.so.0
    7fae3ccef000-7fae3cd10000 r-xp 00000000 08:01 4330043                    /lib/x86_64-linux-gnu/liblzma.so.5.0.0
    7fae3cd10000-7fae3cf0f000 ---p 00021000 08:01 4330043                    /lib/x86_64-linux-gnu/liblzma.so.5.0.0
    7fae3cf0f000-7fae3cf10000 r--p 00020000 08:01 4330043                    /lib/x86_64-linux-gnu/liblzma.so.5.0.0
    7fae3cf10000-7fae3cf11000 rw-p 00021000 08:01 4330043                    /lib/x86_64-linux-gnu/liblzma.so.5.0.0
    7fae3cf11000-7fae3cf15000 r-xp 00000000 08:01 4330160                    /lib/x86_64-linux-gnu/libuuid.so.1.3.0
    7fae3cf15000-7fae3d114000 ---p 00004000 08:01 4330160                    /lib/x86_64-linux-gnu/libuuid.so.1.3.0
    7fae3d114000-7fae3d115000 r--p 00003000 08:01 4330160                    /lib/x86_64-linux-gnu/libuuid.so.1.3.0
    7fae3d115000-7fae3d116000 rw-p 00004000 08:01 4330160                    /lib/x86_64-linux-gnu/libuuid.so.1.3.0
    7fae3d116000-7fae3d118000 r-xp 00000000 08:01 1056904                    /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
    7fae3d118000-7fae3d318000 ---p 00002000 08:01 1056904                    /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
    7fae3d318000-7fae3d319000 r--p 00002000 08:01 1056904                    /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
    7fae3d319000-7fae3d31a000 rw-p 00003000 08:01 1056904                    /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
    7fae3d31a000-7fae3d37c000 r-xp 00000000 08:01 1056941                    /usr/lib/x86_64-linux-gnu/libXt.so.6.0.0
    7fae3d37c000-7fae3d57c000 ---p 00062000 08:01 1056941                    /usr/lib/x86_64-linux-gnu/libXt.so.6.0.0
    7fae3d57c000-7fae3d57d000 r--p 00062000 08:01 1056941                    /usr/lib/x86_64-linux-gnu/libXt.so.6.0.0
    7fae3d57d000-7fae3d582000 rw-p 00063000 08:01 1056941                    /usr/lib/x86_64-linux-gnu/libXt.so.6.0.0
    7fae3d582000-7fae3d583000 rw-p 00000000 00:00 0 
    7fae3d583000-7fae3d5a9000 r-xp 00000000 08:01 4330007                    /lib/x86_64-linux-gnu/libexpat.so.1.6.0
    7fae3d5a9000-7fae3d7a9000 ---p 00026000 08:01 4330007                    /lib/x86_64-linux-gnu/libexpat.so.1.6.0
    7fae3d7a9000-7fae3d7ab000 r--p 00026000 08:01 4330007                    /lib/x86_64-linux-gnu/libexpat.so.1.6.0
    7fae3d7ab000-7fae3d7ac000 rw-p 00028000 08:01 4330007                    /lib/x86_64-linux-gnu/libexpat.so.1.6.0
    7fae3d7ac000-7fae3f062000 r-xp 00000000 08:01 1057582                    /usr/lib/x86_64-linux-gnu/libicudata.so.55.1
    7fae3f062000-7fae3f261000 ---p 018b6000 08:01 1057582                    /usr/lib/x86_64-linux-gnu/libicudata.so.55.1
    7fae3f261000-7fae3f262000 r--p 018b5000 08:01 1057582                    /usr/lib/x86_64-linux-gnu/libicudata.so.55.1
    7fae3f262000-7fae3f263000 rw-p 018b6000 08:01 1057582                    /usr/lib/x86_64-linux-gnu/libicudata.so.55.1
    7fae3f263000-7fae3f284000 r-xp 00000000 08:01 1058282                    /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
    7fae3f284000-7fae3f483000 ---p 00021000 08:01 1058282                    /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
    7fae3f483000-7fae3f484000 r--p 00020000 08:01 1058282                    /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
    7fae3f484000-7fae3f485000 rw-p 00021000 08:01 1058282                    /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
    7fae3f485000-7fae3f4f3000 r-xp 00000000 08:01 4330105                    /lib/x86_64-linux-gnu/libpcre.so.3.13.2
    7fae3f4f3000-7fae3f6f3000 ---p 0006e000 08:01 4330105                    /lib/x86_64-linux-gnu/libpcre.so.3.13.2
    7fae3f6f3000-7fae3f6f4000 r--p 0006e000 08:01 4330105                    /lib/x86_64-linux-gnu/libpcre.so.3.13.2
    7fae3f6f4000-7fae3f6f5000 rw-p 0006f000 08:01 4330105                    /lib/x86_64-linux-gnu/libpcre.so.3.13.2
    7fae3f6f5000-7fae3f6fc000 r-xp 00000000 08:01 1057287                    /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
    7fae3f6fc000-7fae3f8fb000 ---p 00007000 08:01 1057287                    /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
    7fae3f8fb000-7fae3f8fc000 r--p 00006000 08:01 1057287                    /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
    7fae3f8fc000-7fae3f8fd000 rw-p 00007000 08:01 1057287                    /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
    7fae3f8fd000-7fae3f961000 r-xp 00000000 08:01 1057853                    /usr/lib/x86_64-linux-gnu/libpcre16.so.3.13.2
    7fae3f961000-7fae3fb61000 ---p 00064000 08:01 1057853                    /usr/lib/x86_64-linux-gnu/libpcre16.so.3.13.2
    7fae3fb61000-7fae3fb62000 r--p 00064000 08:01 1057853                    /usr/lib/x86_64-linux-gnu/libpcre16.so.3.13.2
    7fae3fb62000-7fae3fb63000 rw-p 00065000 08:01 1057853                    /usr/lib/x86_64-linux-gnu/libpcre16.so.3.13.2
    7fae3fb63000-7fae3fbbf000 r-xp 00000000 08:01 1053708                    /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10000.1
    7fae3fbbf000-7fae3fdbf000 ---p 0005c000 08:01 1053708                    /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10000.1
    7fae3fdbf000-7fae3fdc0000 r--p 0005c000 08:01 1053708                    /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10000.1
    7fae3fdc0000-7fae3fdc1000 rw-p 0005d000 08:01 1053708                    /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10000.1
    7fae3fdc1000-7fae3fe0d000 r-xp 00000000 08:01 1057631                    /usr/lib/x86_64-linux-gnu/libjasper.so.1.0.0
    7fae3fe0d000-7fae4000c000 ---p 0004c000 08:01 1057631                    /usr/lib/x86_64-linux-gnu/libjasper.so.1.0.0
    7fae4000c000-7fae4000d000 r--p 0004b000 08:01 1057631                    /usr/lib/x86_64-linux-gnu/libjasper.so.1.0.0
    7fae4000d000-7fae40011000 rw-p 0004c000 08:01 1057631                    /usr/lib/x86_64-linux-gnu/libjasper.so.1.0.0
    7fae40011000-7fae40018000 rw-p 00000000 00:00 0 
    7fae40018000-7fae40087000 r-xp 00000000 08:01 1058071                    /usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
    7fae40087000-7fae40287000 ---p 0006f000 08:01 1058071                    /usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
    7fae40287000-7fae40288000 r--p 0006f000 08:01 1058071                    /usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
    7fae40288000-7fae4028b000 rw-p 00070000 08:01 1058071                    /usr/lib/x86_64-linux-gnu/libtiff.so.5.2.4
    7fae4028b000-7fae402e4000 r-xp 00000000 08:01 1058186                    /usr/lib/x86_64-linux-gnu/libwebp.so.5.0.4
    7fae402e4000-7fae404e4000 ---p 00059000 08:01 1058186                    /usr/lib/x86_64-linux-gnu/libwebp.so.5.0.4
    7fae404e4000-7fae404e5000 r--p 00059000 08:01 1058186                    /usr/lib/x86_64-linux-gnu/libwebp.so.5.0.4
    7fae404e5000-7fae404e7000 rw-p 0005a000 08:01 1058186                    /usr/lib/x86_64-linux-gnu/libwebp.so.5.0.4
    7fae404e7000-7fae4053e000 r-xp 00000000 08:01 1057638                    /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
    7fae4053e000-7fae4073e000 ---p 00057000 08:01 1057638                    /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
    7fae4073e000-7fae4073f000 r--p 00057000 08:01 1057638                    /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
    7fae4073f000-7fae40740000 rw-p 00058000 08:01 1057638                    /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
    7fae40740000-7fae407fa000 r-xp 00000000 08:01 1056599                    /usr/lib/nvidia-367/libGLdispatch.so.0
    7fae407fa000-7fae409fa000 ---p 000ba000 08:01 1056599                    /usr/lib/nvidia-367/libGLdispatch.so.0
    7fae409fa000-7fae40a09000 rw-p 000ba000 08:01 1056599                    /usr/lib/nvidia-367/libGLdispatch.so.0
    7fae40a09000-7fae40a29000 rw-p 00000000 00:00 0 
    7fae40a29000-7fae40a39000 r-xp 00000000 08:01 1056616                    /usr/lib/nvidia-367/libGLX.so.0
    7fae40a39000-7fae40c39000 ---p 00010000 08:01 1056616                    /usr/lib/nvidia-367/libGLX.so.0
    7fae40c39000-7fae40c3a000 rw-p 00010000 08:01 1056616                    /usr/lib/nvidia-367/libGLX.so.0
    7fae40c3a000-7fae40c5a000 rw-p 00000000 00:00 0 
    7fae40c5a000-7fae40c6b000 r-xp 00000000 08:01 1056917                    /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
    7fae40c6b000-7fae40e6a000 ---p 00011000 08:01 1056917                    /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
    7fae40e6a000-7fae40e6b000 r--p 00010000 08:01 1056917                    /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
    7fae40e6b000-7fae40e6c000 rw-p 00011000 08:01 1056917                    /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
    7fae40e6c000-7fae40e7b000 r-xp 00000000 08:01 1056925                    /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
    7fae40e7b000-7fae4107a000 ---p 0000f000 08:01 1056925                    /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
    7fae4107a000-7fae4107b000 r--p 0000e000 08:01 1056925                    /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
    7fae4107b000-7fae4107c000 rw-p 0000f000 08:01 1056925                    /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0
    7fae4107c000-7fae41092000 r-xp 00000000 08:01 1056770                    /usr/lib/x86_64-linux-gnu/libICE.so.6.3.0
    7fae41092000-7fae41291000 ---p 00016000 08:01 1056770                    /usr/lib/x86_64-linux-gnu/libICE.so.6.3.0
    7fae41291000-7fae41292000 r--p 00015000 08:01 1056770                    /usr/lib/x86_64-linux-gnu/libICE.so.6.3.0
    7fae41292000-7fae41293000 rw-p 00016000 08:01 1056770                    /usr/lib/x86_64-linux-gnu/libICE.so.6.3.0
    7fae41293000-7fae41296000 rw-p 00000000 00:00 0 
    7fae41296000-7fae4129d000 r-xp 00000000 08:01 1056890                    /usr/lib/x86_64-linux-gnu/libSM.so.6.0.1
    7fae4129d000-7fae4149c000 ---p 00007000 08:01 1056890                    /usr/lib/x86_64-linux-gnu/libSM.so.6.0.1
    7fae4149c000-7fae4149d000 r--p 00006000 08:01 1056890                    /usr/lib/x86_64-linux-gnu/libSM.so.6.0.1
    7fae4149d000-7fae4149e000 rw-p 00007000 08:01 1056890                    /usr/lib/x86_64-linux-gnu/libSM.so.6.0.1
    7fae4149e000-7fae414c2000 r-xp 00000000 08:01 4330117                    /lib/x86_64-linux-gnu/libpng12.so.0.54.0
    7fae414c2000-7fae416c1000 ---p 00024000 08:01 4330117                    /lib/x86_64-linux-gnu/libpng12.so.0.54.0
    7fae416c1000-7fae416c2000 r--p 00023000 08:01 4330117                    /lib/x86_64-linux-gnu/libpng12.so.0.54.0
    7fae416c2000-7fae416c3000 rw-p 00024000 08:01 4330117                    /lib/x86_64-linux-gnu/libpng12.so.0.54.0
    7fae416c3000-7fae416da000 r-xp 00000000 08:01 1057018                    /usr/lib/x86_64-linux-gnu/libaudio.so.2.4
    7fae416da000-7fae418da000 ---p 00017000 08:01 1057018                    /usr/lib/x86_64-linux-gnu/libaudio.so.2.4
    7fae418da000-7fae418db000 r--p 00017000 08:01 1057018                    /usr/lib/x86_64-linux-gnu/libaudio.so.2.4
    7fae418db000-7fae418dc000 rw-p 00018000 08:01 1057018                    /usr/lib/x86_64-linux-gnu/libaudio.so.2.4
    7fae418dc000-7fae41919000 r-xp 00000000 08:01 1048728                    /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.9.0
    7fae41919000-7fae41b18000 ---p 0003d000 08:01 1048728                    /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.9.0
    7fae41b18000-7fae41b1a000 r--p 0003c000 08:01 1048728                    /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.9.0
    7fae41b1a000-7fae41b1f000 rw-p 0003e000 08:01 1048728                    /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.9.0
    7fae41b1f000-7fae41b28000 r-xp 00000000 08:01 1056937                    /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
    7fae41b28000-7fae41d27000 ---p 00009000 08:01 1056937                    /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
    7fae41d27000-7fae41d28000 r--p 00008000 08:01 1056937                    /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
    7fae41d28000-7fae41d29000 rw-p 00009000 08:01 1056937                    /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
    7fae41d29000-7fae41dcd000 r-xp 00000000 08:01 1057335                    /usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1
    7fae41dcd000-7fae41fcc000 ---p 000a4000 08:01 1057335                    /usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1
    7fae41fcc000-7fae41fd2000 r--p 000a3000 08:01 1057335                    /usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1
    7fae41fd2000-7fae41fd3000 rw-p 000a9000 08:01 1057335                    /usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1
    7fae41fd3000-7fae42040000 r-xp 00000000 08:01 1056762                    /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
    7fae42040000-7fae42240000 ---p 0006d000 08:01 1056762                    /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
    7fae42240000-7fae42241000 r--p 0006d000 08:01 1056762                    /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
    7fae42241000-7fae42242000 rw-p 0006e000 08:01 1056762                    /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
    7fae42242000-7fae423c1000 r-xp 00000000 08:01 1057596                    /usr/lib/x86_64-linux-gnu/libicuuc.so.55.1
    7fae423c1000-7fae425c1000 ---p 0017f000 08:01 1057596                    /usr/lib/x86_64-linux-gnu/libicuuc.so.55.1
    7fae425c1000-7fae425d1000 r--p 0017f000 08:01 1057596                    /usr/lib/x86_64-linux-gnu/libicuuc.so.55.1
    7fae425d1000-7fae425d2000 rw-p 0018f000 08:01 1057596                    /usr/lib/x86_64-linux-gnu/libicuuc.so.55.1
    7fae425d2000-7fae425d6000 rw-p 00000000 00:00 0 
    7fae425d6000-7fae42828000 r-xp 00000000 08:01 1057584                    /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
    7fae42828000-7fae42a28000 ---p 00252000 08:01 1057584                    /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
    7fae42a28000-7fae42a37000 r--p 00252000 08:01 1057584                    /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
    7fae42a37000-7fae42a38000 rw-p 00261000 08:01 1057584                    /usr/lib/x86_64-linux-gnu/libicui18n.so.55.1
    7fae42a38000-7fae42b6d000 r-xp 00000000 08:01 1056900                    /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
    7fae42b6d000-7fae42d6d000 ---p 00135000 08:01 1056900                    /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
    7fae42d6d000-7fae42d6e000 r--p 00135000 08:01 1056900                    /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
    7fae42d6e000-7fae42d72000 rw-p 00136000 08:01 1056900                    /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
    7fae42d72000-7fae42e81000 r-xp 00000000 08:01 4330018                    /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.1
    7fae42e81000-7fae43080000 ---p 0010f000 08:01 4330018                    /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.1
    7fae43080000-7fae43081000 r--p 0010e000 08:01 4330018                    /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.1
    7fae43081000-7fae43082000 rw-p 0010f000 08:01 4330018                    /lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.1
    7fae43082000-7fae43083000 rw-p 00000000 00:00 0 
    7fae43083000-7fae430d5000 r-xp 00000000 08:01 1057442                    /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.1
    7fae430d5000-7fae432d4000 ---p 00052000 08:01 1057442                    /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.1
    7fae432d4000-7fae432d5000 r--p 00051000 08:01 1057442                    /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.1
    7fae432d5000-7fae432d6000 rw-p 00052000 08:01 1057442                    /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.1
    7fae432d6000-7fae4379b000 r-xp 00000000 08:01 1049465                    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.5.1
    7fae4379b000-7fae437a7000 r--p 004c4000 08:01 1049465                    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.5.1
    7fae437a7000-7fae437a8000 rw-p 004d0000 08:01 1049465                    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.5.1
    7fae437a8000-7fae437ac000 rw-p 00000000 00:00 0 
    7fae437ac000-7fae43cd3000 r-xp 00000000 08:01 1053684                    /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1
    7fae43cd3000-7fae43cd4000 ---p 00527000 08:01 1053684                    /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1
    7fae43cd4000-7fae43ce9000 r--p 00527000 08:01 1053684                    /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1
    7fae43ce9000-7fae43cef000 rw-p 0053c000 08:01 1053684                    /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1
    7fae43cef000-7fae43cf4000 rw-p 00000000 00:00 0 
    7fae43cf4000-7fae43cfb000 r-xp 00000000 08:01 4329741                    /lib/x86_64-linux-gnu/librt-2.23.so
    7fae43cfb000-7fae43efa000 ---p 00007000 08:01 4329741                    /lib/x86_64-linux-gnu/librt-2.23.so
    7fae43efa000-7fae43efb000 r--p 00006000 08:01 4329741                    /lib/x86_64-linux-gnu/librt-2.23.so
    7fae43efb000-7fae43efc000 rw-p 00007000 08:01 4329741                    /lib/x86_64-linux-gnu/librt-2.23.so
    7fae43efc000-7fae43eff000 r-xp 00000000 08:01 4329745                    /lib/x86_64-linux-gnu/libdl-2.23.so
    7fae43eff000-7fae440fe000 ---p 00003000 08:01 4329745                    /lib/x86_64-linux-gnu/libdl-2.23.so
    7fae440fe000-7fae440ff000 r--p 00002000 08:01 4329745                    /lib/x86_64-linux-gnu/libdl-2.23.so
    7fae440ff000-7fae44100000 rw-p 00003000 08:01 4329745                    /lib/x86_64-linux-gnu/libdl-2.23.so
    7fae44100000-7fae44119000 r-xp 00000000 08:01 4330167                    /lib/x86_64-linux-gnu/libz.so.1.2.8
    7fae44119000-7fae44318000 ---p 00019000 08:01 4330167                    /lib/x86_64-linux-gnu/libz.so.1.2.8
    7fae44318000-7fae44319000 r--p 00018000 08:01 4330167                    /lib/x86_64-linux-gnu/libz.so.1.2.8
    7fae44319000-7fae4431a000 rw-p 00019000 08:01 4330167                    /lib/x86_64-linux-gnu/libz.so.1.2.8
    7fae4431a000-7fae44533000 r-xp 00000000 08:01 5390682                    /opt/ros/kinetic/lib/libopencv_imgcodecs3.so.3.1.0
    7fae44533000-7fae44733000 ---p 00219000 08:01 5390682                    /opt/ros/kinetic/lib/libopencv_imgcodecs3.so.3.1.0
    7fae44733000-7fae44738000 r--p 00219000 08:01 5390682                    /opt/ros/kinetic/lib/libopencv_imgcodecs3.so.3.1.0
    7fae44738000-7fae4473b000 rw-p 0021e000 08:01 5390682                    /opt/ros/kinetic/lib/libopencv_imgcodecs3.so.3.1.0
    7fae4473b000-7fae447c8000 r-xp 00000000 08:01 1056583                    /usr/lib/nvidia-367/libGL.so.1.0.0
    7fae447c8000-7fae449c8000 ---p 0008d000 08:01 1056583                    /usr/lib/nvidia-367/libGL.so.1.0.0
    7fae449c8000-7fae449c9000 rw-p 0008d000 08:01 1056583                    /usr/lib/nvidia-367/libGL.so.1.0.0
    7fae449c9000-7fae449ca000 rw-p 00000000 00:00 0 
    7fae449ca000-7fae44cb1000 r-xp 00000000 08:01 1056864                    /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7
    7fae44cb1000-7fae44eb1000 ---p 002e7000 08:01 1056864                    /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7
    7fae44eb1000-7fae44ebb000 r--p 002e7000 08:01 1056864                    /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7
    7fae44ebb000-7fae44ebc000 rw-p 002f1000 08:01 1056864                    /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.7
    7fae44ebc000-7fae44ebd000 rw-p 00000000 00:00 0 
    7fae44ebd000-7fae45969000 r-xp 00000000 08:01 1056873                    /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.7
    7fae45969000-7fae45b68000 ---p 00aac000 08:01 1056873                    /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.7
    7fae45b68000-7fae45ba6000 r--p 00aab000 08:01 1056873                    /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.7
    7fae45ba6000-7fae45bad000 rw-p 00ae9000 08:01 1056873                    /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.7
    7fae45bad000-7fae45bb1000 rw-p 00000000 00:00 0 
    7fae45bb1000-7fae45caa000 r-xp 00000000 08:01 1063474                    /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4.8.7
    7fae45caa000-7fae45eaa000 ---p 000f9000 08:01 1063474                    /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4.8.7
    7fae45eaa000-7fae45ead000 r--p 000f9000 08:01 1063474                    /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4.8.7
    7fae45ead000-7fae45eb2000 rw-p 000fc000 08:01 1063474                    /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4.8.7
    7fae45eb2000-7fae45eb3000 rw-p 00000000 00:00 0 
    7fae45eb3000-7fae45f53000 r-xp 00000000 08:01 1056396                    /usr/lib/x86_64-linux-gnu/libQGLViewer.so.2.6.3
    7fae45f53000-7fae46153000 ---p 000a0000 08:01 1056396                    /usr/lib/x86_64-linux-gnu/libQGLViewer.so.2.6.3
    7fae46153000-7fae46155000 r--p 000a0000 08:01 1056396                    /usr/lib/x86_64-linux-gnu/libQGLViewer.so.2.6.3
    7fae46155000-7fae46157000 rw-p 000a2000 08:01 1056396                    /usr/lib/x86_64-linux-gnu/libQGLViewer.so.2.6.3
    7fae46157000-7fae46158000 rw-p 00000000 00:00 0 
    7fae46158000-7fae4625b000 r-xp 00000000 08:01 1061344                    /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.58.0
    7fae4625b000-7fae4645b000 ---p 00103000 08:01 1061344                    /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.58.0
    7fae4645b000-7fae4645f000 r--p 00103000 08:01 1061344                    /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.58.0
    7fae4645f000-7fae46460000 rw-p 00107000 08:01 1061344                    /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.58.0
    7fae46460000-7fae46477000 r-xp 00000000 08:01 1057052                    /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0
    7fae46477000-7fae46676000 ---p 00017000 08:01 1057052                    /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0
    7fae46676000-7fae46677000 r--p 00016000 08:01 1057052                    /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0
    7fae46677000-7fae46678000 rw-p 00017000 08:01 1057052                    /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0
    7fae46678000-7fae47d77000 r-xp 00000000 08:01 5390698                    /opt/ros/kinetic/lib/libopencv_imgproc3.so.3.1.0
    7fae47d77000-7fae47f76000 ---p 016ff000 08:01 5390698                    /opt/ros/kinetic/lib/libopencv_imgproc3.so.3.1.0
    7fae47f76000-7fae47f7f000 r--p 016fe000 08:01 5390698                    /opt/ros/kinetic/lib/libopencv_imgproc3.so.3.1.0
    7fae47f7f000-7fae47fa1000 rw-p 01707000 08:01 5390698                    /opt/ros/kinetic/lib/libopencv_imgproc3.so.3.1.0
    7fae47fa1000-7fae48037000 rw-p 00000000 00:00 0 
    7fae48037000-7fae481f6000 r-xp 00000000 08:01 4329746                    /lib/x86_64-linux-gnu/libc-2.23.so
    7fae481f6000-7fae483f6000 ---p 001bf000 08:01 4329746                    /lib/x86_64-linux-gnu/libc-2.23.so
    7fae483f6000-7fae483fa000 r--p 001bf000 08:01 4329746                    /lib/x86_64-linux-gnu/libc-2.23.so
    7fae483fa000-7fae483fc000 rw-p 001c3000 08:01 4329746                    /lib/x86_64-linux-gnu/libc-2.23.so
    7fae483fc000-7fae48400000 rw-p 00000000 00:00 0 
    7fae48400000-7fae48416000 r-xp 00000000 08:01 4330014                    /lib/x86_64-linux-gnu/libgcc_s.so.1
    7fae48416000-7fae48615000 ---p 00016000 08:01 4330014                    /lib/x86_64-linux-gnu/libgcc_s.so.1
    7fae48615000-7fae48616000 rw-p 00015000 08:01 4330014                    /lib/x86_64-linux-gnu/libgcc_s.so.1
    7fae48616000-7fae48788000 r-xp 00000000 08:01 1050753                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
    7fae48788000-7fae48988000 ---p 00172000 08:01 1050753                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
    7fae48988000-7fae48992000 r--p 00172000 08:01 1050753                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
    7fae48992000-7fae48994000 rw-p 0017c000 08:01 1050753                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
    7fae48994000-7fae48998000 rw-p 00000000 00:00 0 
    7fae48998000-7fae48ff1000 r-xp 00000000 08:01 1053701                    /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.5.1Aborted (core dumped)
    
    opened by suijingfeng 5
  • Segfault happens while running show_object_node with KITTI rosbag. show_object_kitti works fine with .bin files of the same sequence.

    Segfault happens while running show_object_node with KITTI rosbag. show_object_kitti works fine with .bin files of the same sequence.

    Hi @niosus , When I tried to run show_object_node with a KITTI rosbag, I have a segfault. However, if I use show_object_kitti with the raw data of the same sequence, it works fine. Here is the link to the screen video. I downloaded the kitti rosbag 2011_09_30_drive_18.bag from here and same sequence from the KITTI official website. The full trace back by gdb is:

    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0x7fffc097f700 (LWP 30258)]
    0x00007ffff7b485a4 in depth_clustering::BytesTo<unsigned short> (data=..., start_idx=2835384544)
        at /home/tuan/workshop_ws/src/depth_clustering/src/ros_bridge/cloud_odom_ros_subscriber.cpp:45
    45	    byte_array[i] = data[start_idx + i];
    (gdb) bt
    #0  0x00007ffff7b485a4 in depth_clustering::BytesTo<unsigned short> (data=..., start_idx=2835384544)
        at /home/tuan/workshop_ws/src/depth_clustering/src/ros_bridge/cloud_odom_ros_subscriber.cpp:45
    #1  0x00007ffff7b42e23 in depth_clustering::CloudOdomRosSubscriber::RosCloudToCloud (this=0x7fffffffa610, msg=...)
        at /home/tuan/workshop_ws/src/depth_clustering/src/ros_bridge/cloud_odom_ros_subscriber.cpp:150
    #2  0x00007ffff7b42a91 in depth_clustering::CloudOdomRosSubscriber::CallbackVelodyne (this=0x7fffffffa610, 
        msg_cloud=...) at /home/tuan/workshop_ws/src/depth_clustering/src/ros_bridge/cloud_odom_ros_subscriber.cpp:121
    #3  0x00007ffff7b64d00 in boost::_mfi::mf1<void, depth_clustering::CloudOdomRosSubscriber, boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>::operator() (this=0xd4b078, p=0x7fffffffa610, a1=...)
        at /usr/include/boost/bind/mem_fn_template.hpp:165
    #4  0x00007ffff7b60624 in boost::_bi::list2<boost::_bi::value<depth_clustering::CloudOdomRosSubscriber*>, boost::arg<1> >::operator()<boost::_mfi::mf1<void, depth_clustering::CloudOdomRosSubscriber, boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>, boost::_bi::list1<boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&> > (this=0xd4b088, f=..., a=...) at /usr/include/boost/bind/bind.hpp:313
    #5  0x00007ffff7b5b961 in boost::_bi::bind_t<void, boost::_mfi::mf1<void, depth_clustering::CloudOdomRosSubscriber, boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<depth_clustering::CloudOdomRosSubscriber*>, boost::arg<1> > >::operator()<boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&> (this=0xd4b078, a1=...) at /usr/include/boost/bind/bind.hpp:905
    #6  0x00007ffff7b5737e in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, depth_clustering::CloudOdomRosSubscriber, boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<depth_clustering::CloudOdomRosSubscriber*>, boost::arg<1> > >, void, boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>::invoke (
        function_obj_ptr=..., a0=...) at /usr/include/boost/function/function_template.hpp:159
    #7  0x00007ffff7b607b5 in boost::function1<void, boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>::operator() (this=0xd4b070, a0=...) at /usr/include/boost/function/function_template.hpp:773
    #8  0x00007ffff7b5bad9 in boost::detail::function::void_function_obj_invoker1<boost::function<void (boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&)>, void, boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const>) (function_obj_ptr=..., a0=...)
        at /usr/include/boost/function/function_template.hpp:159
    #9  0x00007ffff7b90a6e in boost::function1<void, boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> >::operator() (this=0xd4fe98, a0=...) at /usr/include/boost/function/function_template.hpp:773
    #10 0x00007ffff7b8f583 in message_filters::CallbackHelper1T<boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&, sensor_msgs::PointCloud2_<std::allocator<void> > >::call (this=0xd4fe90, event=..., 
        nonconst_force_copy=false) at /opt/ros/kinetic/include/message_filters/signal1.h:76
    #11 0x00007ffff7b54741 in message_filters::Signal1<sensor_msgs::PointCloud2_<std::allocator<void> > >::call (
        this=0xd4f838, event=...) at /opt/ros/kinetic/include/message_filters/signal1.h:119
    ---Type <return> to continue, or q <return> to quit---
    #12 0x00007ffff7b50a0b in message_filters::SimpleFilter<sensor_msgs::PointCloud2_<std::allocator<void> > >::signalMessage (this=0xd4f838, event=...) at /opt/ros/kinetic/include/message_filters/simple_filter.h:136
    #13 0x00007ffff7b4d507 in message_filters::Subscriber<sensor_msgs::PointCloud2_<std::allocator<void> > >::cb (
        this=0xd4f830, e=...) at /opt/ros/kinetic/include/message_filters/subscriber.h:206
    #14 0x00007ffff7b6589c in boost::_mfi::mf1<void, message_filters::Subscriber<sensor_msgs::PointCloud2_<std::allocator<void> > >, ros::MessageEvent<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>::operator() (
        this=0xd4f7f0, p=0xd4f830, a1=...) at /usr/include/boost/bind/mem_fn_template.hpp:165
    #15 0x00007ffff7b6126e in boost::_bi::list2<boost::_bi::value<message_filters::Subscriber<sensor_msgs::PointCloud2_<std::allocator<void> > >*>, boost::arg<1> >::operator()<boost::_mfi::mf1<void, message_filters::Subscriber<sensor_msgs::PointCloud2_<std::allocator<void> > >, ros::MessageEvent<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>, boost::_bi::list1<ros::MessageEvent<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&> >
        (this=0xd4f800, f=..., a=...) at /usr/include/boost/bind/bind.hpp:313
    #16 0x00007ffff7b5cb19 in boost::_bi::bind_t<void, boost::_mfi::mf1<void, message_filters::Subscriber<sensor_msgs::PointCloud2_<std::allocator<void> > >, ros::MessageEvent<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<message_filters::Subscriber<sensor_msgs::PointCloud2_<std::allocator<void> > >*>, boost::arg<1> > >::operator()<ros::MessageEvent<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&> (this=0xd4f7f0, a1=...) at /usr/include/boost/bind/bind.hpp:905
    #17 0x00007ffff7b5892f in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, message_filters::Subscriber<sensor_msgs::PointCloud2_<std::allocator<void> > >, ros::MessageEvent<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<message_filters::Subscriber<sensor_msgs::PointCloud2_<std::allocator<void> > >*>, boost::arg<1> > >, void, ros::MessageEvent<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>::invoke (function_obj_ptr=..., a0=...)
        at /usr/include/boost/function/function_template.hpp:159
    #18 0x00007ffff7b8fc5b in boost::function1<void, ros::MessageEvent<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&>::operator() (this=0xd4f7e8, a0=...) at /usr/include/boost/function/function_template.hpp:773
    #19 0x00007ffff7b8f461 in ros::SubscriptionCallbackHelperT<ros::MessageEvent<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&, void>::call (this=0xd4f7e0, params=...)
        at /opt/ros/kinetic/include/ros/subscription_callback_helper.h:144
    #20 0x00007ffff6d64e2d in ros::SubscriptionQueue::call() () from /opt/ros/kinetic/lib/libroscpp.so
    #21 0x00007ffff6d0a6f8 in ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) ()
       from /opt/ros/kinetic/lib/libroscpp.so
    #22 0x00007ffff6d0c0fb in ros::CallbackQueue::callAvailable(ros::WallDuration) ()
       from /opt/ros/kinetic/lib/libroscpp.so
    #23 0x00007ffff6d68344 in ros::AsyncSpinnerImpl::threadFunc() () from /opt/ros/kinetic/lib/libroscpp.so
    #24 0x00007fffefa2f5d5 in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.58.0
    #25 0x00007ffff71c86ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
    
    

    Do you have any idea how to fix this? Thanks!

    opened by tuandle 4
  • kitti dataset test error

    kitti dataset test error

    Thanks for your great work! I get wrong result with use kitti dataset ,how can i fix it ? The screenshot is as follows, looking forward to your reply image

    opened by lqql2012 2
  • Opencv verison

    Opencv verison

    Thanks a lot!! could you please tell me the version of Opencv you are using in this project ,cause when I run the code with opencv4.5.4 ,it turns out like this:

    INFO: Ground removed in 64543 us INFO: Ground removed in 29 us60 INFO: image based labeling took: 3363 us INFO: labels image sent to clients in: 6 us INFO: prepared clusters in: 4033 us terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(4.5.4) /home/zp/Downloads/opencv-4.5.4/modules/imgproc/src/convhull.cpp:143: error: (-215:Assertion failed) total >= 0 && (depth == CV_32F || depth == CV_32S) in function 'convexHull'

    opened by DavidZhaoP 0
  • compile err         error: ‘boost::filesystem’ has not been declared

    compile err error: ‘boost::filesystem’ has not been declared

    untill I add this line #include<boost/filesystem.hpp> in cloud_saver.cpp this problem has been solved! Just out of curiosity, how you guys make the code to work. Screenshot from 2022-02-13 14-23-21

    opened by DavidZhaoP 0
  •  subscribing to clusters

    subscribing to clusters

    I tried to make what has been mentioned here #19, but got the following:

    rosrun depth_clustering publish_clusters_node --num_beams 32

    ===================== Setting Connection ===================== || Sender: CloudOdomRosSubscriber (id: 1) || Type: STREAMER || | || V || Client: ImageBasedClustere<(short)1, (short)1> > (id: 3)

    ===================== Setting Connection ===================== || Sender: ImageBasedClustere<(short)1, (short)1> > (id: 3) || Type: STREAMER || | || V || Client: CloudOdomRosPublisher (id: 2)

    INFO: Running with angle tollerance: 10.000000 degrees

    any help please?

    opened by urbansound8K 0
  • Feature Request:  Support ROS pointclouds from Ouster 128-beam LIDAR

    Feature Request: Support ROS pointclouds from Ouster 128-beam LIDAR

    Ouster's OS0-128 outputs 128 lines of resolution in a standard pointcloud2 msg on the ROS topic, "/os_cloud_node/points". Per the link below, the ROS node assumes the standard Velodyne pointcloud topic and 16/32/64 projections. Feature request is to add support for 128-beam ROS pointclouds on arbitrary topics.

    https://github.com/PRBonn/depth_clustering/blob/fe9d6675b213926815bf2bbde593b28b55be4b98/examples/ros_nodes/save_clusters_node.cpp#L40-L68

    opened by Chambana 1
Releases(v2.0.0)
  • v2.0.0(May 13, 2020)

    This is a release that transfers most of the code to be under the MIT licence. The only parts left under GPL are the ones interfacing directly with libQGLViewer.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(May 13, 2020)

Owner
Photogrammetry & Robotics Bonn
Photogrammetry & Robotics Lab at the University of Bonn
Photogrammetry & Robotics Bonn
This repository contains the implementation of the following paper: Cross-Descriptor Visual Localization and Mapping

Cross-Descriptor Visual Localization and Mapping This repository contains the implementation of the following paper: "Cross-Descriptor Visual Localiza

Mihai Dusmanu 81 Oct 06, 2022
Code of paper "Compositionally Generalizable 3D Structure Prediction"

Compositionally Generalizable 3D Structure Prediction In this work, We bring in the concept of compositional generalizability and factorizes the 3D sh

Songfang Han 30 Dec 17, 2022
K-Nearest Neighbor in Pytorch

Pytorch KNN CUDA 2019/11/02 This repository will no longer be maintained as pytorch supports sort() and kthvalue on tensors. git clone https://github.

Chris Choy 65 Dec 01, 2022
ncnn is a high-performance neural network inference framework optimized for the mobile platform

ncnn ncnn is a high-performance neural network inference computing framework optimized for mobile platforms. ncnn is deeply considerate about deployme

Tencent 16.2k Jan 05, 2023
Torch-ngp - A pytorch implementation of the hash encoder proposed in instant-ngp

HashGrid Encoder (WIP) A pytorch implementation of the HashGrid Encoder from ins

hawkey 1k Jan 01, 2023
🔥 Cannlytics-powered artificial intelligence 🤖

Cannlytics AI 🔥 Cannlytics-powered artificial intelligence 🤖 🏗️ Installation 🏃‍♀️ Quickstart 🧱 Development 🦾 Automation 💸 Support 🏛️ License ?

Cannlytics 3 Nov 11, 2022
A user-friendly research and development tool built to standardize RL competency assessment for custom agents and environments.

Built with ❤️ by Sam Showalter Contents Overview Installation Dependencies Usage Scripts Standard Execution Environment Development Environment Benchm

SRI-AIC 1 Nov 18, 2021
SpinalNet: Deep Neural Network with Gradual Input

SpinalNet: Deep Neural Network with Gradual Input This repository contains scripts for training different variations of the SpinalNet and its counterp

H M Dipu Kabir 142 Dec 30, 2022
Pytorch implementation of 'Fingerprint Presentation Attack Detector Using Global-Local Model'

RTK-PAD This is an official pytorch implementation of 'Fingerprint Presentation Attack Detector Using Global-Local Model', which is accepted by IEEE T

6 Aug 01, 2022
Deep Unsupervised 3D SfM Face Reconstruction Based on Massive Landmark Bundle Adjustment.

(ACMMM 2021 Oral) SfM Face Reconstruction Based on Massive Landmark Bundle Adjustment This repository shows two tasks: Face landmark detection and Fac

BoomStar 51 Dec 13, 2022
An image processing project uses Viola-jones technique to detect faces and then use SIFT algorithm for recognition.

Attendance_System An image processing project uses Viola-jones technique to detect faces and then use LPB algorithm for recognition. Face Detection Us

8 Jan 11, 2022
A repository with exploration into using transformers to predict DNA ↔ transcription factor binding

Transcription Factor binding predictions with Attention and Transformers A repository with exploration into using transformers to predict DNA ↔ transc

Phil Wang 62 Dec 20, 2022
This repository contains the code for "SBEVNet: End-to-End Deep Stereo Layout Estimation" paper by Divam Gupta, Wei Pu, Trenton Tabor, Jeff Schneider

SBEVNet: End-to-End Deep Stereo Layout Estimation This repository contains the code for "SBEVNet: End-to-End Deep Stereo Layout Estimation" paper by D

Divam Gupta 19 Dec 17, 2022
Official implementation of the paper "Lightweight Deep CNN for Natural Image Matting via Similarity Preserving Knowledge Distillation"

Lightweight-Deep-CNN-for-Natural-Image-Matting-via-Similarity-Preserving-Knowledge-Distillation Introduction Accepted at IEEE Signal Processing Letter

DongGeun-Yoon 19 Jun 07, 2022
Multi-Objective Loss Balancing for Physics-Informed Deep Learning

Multi-Objective Loss Balancing for Physics-Informed Deep Learning Code for ReLoBRaLo. Abstract Physics Informed Neural Networks (PINN) are algorithms

Rafael Bischof 16 Dec 12, 2022
TorchX: A PyTorch Extension Library for More Efficient Deep Learning

TorchX TorchX: A PyTorch Extension Library for More Efficient Deep Learning. @misc{torchx, author = {Ansheng You and Changxu Wang}, title = {T

Donny You 8 May 28, 2022
Code for Understanding Pooling in Graph Neural Networks

Select, Reduce, Connect This repository contains the code used for the experiments of: "Understanding Pooling in Graph Neural Networks" Setup Install

Daniele Grattarola 37 Dec 13, 2022
Paddle implementation for "Highly Efficient Knowledge Graph Embedding Learning with Closed-Form Orthogonal Procrustes Analysis" (NAACL 2021)

ProcrustEs-KGE Paddle implementation for Highly Efficient Knowledge Graph Embedding Learning with Orthogonal Procrustes Analysis 🙈 A more detailed re

Lincedo Lab 4 Jun 09, 2021
Code for the paper "Spatio-temporal Self-Supervised Representation Learning for 3D Point Clouds" (ICCV 2021)

Spatio-temporal Self-Supervised Representation Learning for 3D Point Clouds This is the official code implementation for the paper "Spatio-temporal Se

Hesper 63 Jan 05, 2023
A small demonstration of using WebDataset with ImageNet and PyTorch Lightning

A small demonstration of using WebDataset with ImageNet and PyTorch Lightning

Tom 50 Dec 16, 2022