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
Official PyTorch implementation of PICCOLO: Point-Cloud Centric Omnidirectional Localization (ICCV 2021)

Official PyTorch implementation of PICCOLO: Point-Cloud Centric Omnidirectional Localization (ICCV 2021)

16 Nov 19, 2022
PyTorch implementation of SmoothGrad: removing noise by adding noise.

SmoothGrad implementation in PyTorch PyTorch implementation of SmoothGrad: removing noise by adding noise. Vanilla Gradients SmoothGrad Guided backpro

SSKH 143 Jan 05, 2023
Wafer Fault Detection using MlOps Integration

Wafer Fault Detection using MlOps Integration This is an end to end machine learning project with MlOps integration for predicting the quality of wafe

Sethu Sai Medamallela 0 Mar 11, 2022
Embeds a story into a music playlist by sorting the playlist so that the order of the music follows a narrative arc.

playlist-story-builder This project attempts to embed a story into a music playlist by sorting the playlist so that the order of the music follows a n

Dylan R. Ashley 0 Oct 28, 2021
Learning Correspondence from the Cycle-consistency of Time (CVPR 2019)

TimeCycle Code for Learning Correspondence from the Cycle-consistency of Time (CVPR 2019, Oral). The code is developed based on the PyTorch framework,

Xiaolong Wang 706 Nov 29, 2022
A transformer which can randomly augment VOC format dataset (both image and bbox) online.

VocAug It is difficult to find a script which can augment VOC-format dataset, especially the bbox. Or find a script needs complex requirements so it i

Coder.AN 1 Mar 05, 2022
Privacy-Preserving Machine Learning (PPML) Tutorial Presented at PyConDE 2022

PPML: Machine Learning on Data you cannot see Repository for the tutorial on Privacy-Preserving Machine Learning (PPML) presented at PyConDE 2022 Abst

Valerio Maggio 10 Aug 16, 2022
PyTorch implementation of SwAV (Swapping Assignments between Views)

Unsupervised Learning of Visual Features by Contrasting Cluster Assignments This code provides a PyTorch implementation and pretrained models for SwAV

Meta Research 1.7k Jan 04, 2023
Code repository for the paper "Doubly-Trained Adversarial Data Augmentation for Neural Machine Translation" with instructions to reproduce the results.

Doubly Trained Neural Machine Translation System for Adversarial Attack and Data Augmentation Languages Experimented: Data Overview: Source Target Tra

Steven Tan 1 Aug 18, 2022
PyTorch implementation HoroPCA: Hyperbolic Dimensionality Reduction via Horospherical Projections

HoroPCA This code is the official PyTorch implementation of the ICML 2021 paper: HoroPCA: Hyperbolic Dimensionality Reduction via Horospherical Projec

HazyResearch 52 Nov 14, 2022
Code for "CloudAAE: Learning 6D Object Pose Regression with On-line Data Synthesis on Point Clouds" @ICRA2021

CloudAAE This is an tensorflow implementation of "CloudAAE: Learning 6D Object Pose Regression with On-line Data Synthesis on Point Clouds" Files log:

Gee 35 Nov 14, 2022
DeepFashion2 is a comprehensive fashion dataset.

DeepFashion2 Dataset DeepFashion2 is a comprehensive fashion dataset. It contains 491K diverse images of 13 popular clothing categories from both comm

switchnorm 1.8k Jan 07, 2023
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
Ensembling Off-the-shelf Models for GAN Training

Data-Efficient GANs with DiffAugment project | paper | datasets | video | slides Generated using only 100 images of Obama, grumpy cats, pandas, the Br

MIT HAN Lab 1.2k Dec 26, 2022
Trajectory Extraction of road users via Traffic Camera

Traffic Monitoring Citation The associated paper for this project will be published here as soon as possible. When using this software, please cite th

Julian Strosahl 14 Dec 17, 2022
Official Tensorflow implementation of U-GAT-IT: Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normalization for Image-to-Image Translation (ICLR 2020)

U-GAT-IT — Official TensorFlow Implementation (ICLR 2020) : Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normalization fo

Junho Kim 6.2k Jan 04, 2023
Code and description for my BSc Project, September 2021

BSc-Project Disclaimer: This repo consists of only the additional python scripts necessary to run the agent. To run the project on your own personal d

Matin Tavakoli 20 Jul 19, 2022
Pytorch implementation of Depth-conditioned Dynamic Message Propagation forMonocular 3D Object Detection

DDMP-3D Pytorch implementation of Depth-conditioned Dynamic Message Propagation forMonocular 3D Object Detection, a paper on CVPR2021. Instroduction T

Li Wang 32 Nov 09, 2022
Code + pre-trained models for the paper Keeping Your Eye on the Ball Trajectory Attention in Video Transformers

Motionformer This is an official pytorch implementation of paper Keeping Your Eye on the Ball: Trajectory Attention in Video Transformers. In this rep

Facebook Research 192 Dec 23, 2022
Source code for the BMVC-2021 paper "SimReg: Regression as a Simple Yet Effective Tool for Self-supervised Knowledge Distillation".

SimReg: A Simple Regression Based Framework for Self-supervised Knowledge Distillation Source code for the paper "SimReg: Regression as a Simple Yet E

9 Oct 15, 2022