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
Graph Convolutional Networks for Temporal Action Localization (ICCV2019)

Graph Convolutional Networks for Temporal Action Localization This repo holds the codes and models for the PGCN framework presented on ICCV 2019 Graph

Runhao Zeng 318 Dec 06, 2022
PyTorch code for Composing Partial Differential Equations with Physics-Aware Neural Networks

FInite volume Neural Network (FINN) This repository contains the PyTorch code for models, training, and testing, and Python code for data generation t

Cognitive Modeling 20 Dec 18, 2022
Causal Imitative Model for Autonomous Driving

Causal Imitative Model for Autonomous Driving Mohammad Reza Samsami, Mohammadhossein Bahari, Saber Salehkaleybar, Alexandre Alahi. arXiv 2021. [Projec

VITA lab at EPFL 8 Oct 04, 2022
COLMAP - Structure-from-Motion and Multi-View Stereo

COLMAP About COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface.

4.7k Jan 07, 2023
A tool to estimate time varying instantaneous reproduction number during epidemics

EpiEstim A tool to estimate time varying instantaneous reproduction number during epidemics. It is described in the following paper: @article{Cori2013

MRC Centre for Global Infectious Disease Analysis 78 Dec 19, 2022
PyGCL: Graph Contrastive Learning Library for PyTorch

PyGCL: Graph Contrastive Learning for PyTorch PyGCL is an open-source library for graph contrastive learning (GCL), which features modularized GCL com

GCL: Graph Contrastive Learning Library for PyTorch 594 Jan 08, 2023
Fast and exact ILP-based solvers for the Minimum Flow Decomposition (MFD) problem, and variants of it.

MFD-ILP Fast and exact ILP-based solvers for the Minimum Flow Decomposition (MFD) problem, and variants of it. The solvers are implemented using Pytho

Algorithmic Bioinformatics Group @ University of Helsinki 4 Oct 23, 2022
Universal Adversarial Triggers for Attacking and Analyzing NLP (EMNLP 2019)

Universal Adversarial Triggers for Attacking and Analyzing NLP This is the official code for the EMNLP 2019 paper, Universal Adversarial Triggers for

Eric Wallace 248 Dec 17, 2022
Repository for open research on optimizers.

Open Optimizers Repository for open research on optimizers. This is a test in sharing research/exploration as it happens. If you use anything from thi

Ariel Ekgren 6 Jun 24, 2022
SHRIMP: Sparser Random Feature Models via Iterative Magnitude Pruning

SHRIMP: Sparser Random Feature Models via Iterative Magnitude Pruning This repository is the official implementation of "SHRIMP: Sparser Random Featur

Bobby Shi 0 Dec 16, 2021
git《USD-Seg:Learning Universal Shape Dictionary for Realtime Instance Segmentation》(2020) GitHub: [fig2]

USD-Seg This project is an implement of paper USD-Seg:Learning Universal Shape Dictionary for Realtime Instance Segmentation, based on FCOS detector f

Ruolin Ye 80 Nov 28, 2022
zeus is a Python implementation of the Ensemble Slice Sampling method.

zeus is a Python implementation of the Ensemble Slice Sampling method. Fast & Robust Bayesian Inference, Efficient Markov Chain Monte Carlo (MCMC), Bl

Minas Karamanis 197 Dec 04, 2022
Implementation of Graph Transformer in Pytorch, for potential use in replicating Alphafold2

Graph Transformer - Pytorch Implementation of Graph Transformer in Pytorch, for potential use in replicating Alphafold2. This was recently used by bot

Phil Wang 97 Dec 28, 2022
Sarus implementation of classical ML models. The models are implemented using the Keras API of tensorflow 2. Vizualization are implemented and can be seen in tensorboard.

Sarus published models Sarus implementation of classical ML models. The models are implemented using the Keras API of tensorflow 2. Vizualization are

Sarus Technologies 39 Aug 19, 2022
Build Graph Nets in Tensorflow

Graph Nets library Graph Nets is DeepMind's library for building graph networks in Tensorflow and Sonnet. Contact DeepMind 5.2k Jan 05, 2023

[AAAI22] Reliable Propagation-Correction Modulation for Video Object Segmentation

Reliable Propagation-Correction Modulation for Video Object Segmentation (AAAI22) Preview version paper of this work is available at: https://arxiv.or

Xiaohao Xu 70 Dec 04, 2022
Pyramid addon for OpenAPI3 validation of requests and responses.

Validate Pyramid views against an OpenAPI 3.0 document Peace of Mind The reason this package exists is to give you peace of mind when providing a REST

Pylons Project 79 Dec 30, 2022
Deep learning image registration library for PyTorch

TorchIR: Pytorch Image Registration TorchIR is a image registration library for deep learning image registration (DLIR). I have integrated several ide

Bob de Vos 40 Dec 16, 2022
Quantization library for PyTorch. Support low-precision and mixed-precision quantization, with hardware implementation through TVM.

HAWQ: Hessian AWare Quantization HAWQ is an advanced quantization library written for PyTorch. HAWQ enables low-precision and mixed-precision uniform

Zhen Dong 293 Dec 30, 2022
This is the formal code implementation of the CVPR 2022 paper 'Federated Class Incremental Learning'.

Official Pytorch Implementation for GLFC [CVPR-2022] Federated Class-Incremental Learning This is the official implementation code of our paper "Feder

Race Wang 57 Dec 27, 2022