GithubHelp home page GithubHelp logo

jbehley / suma Goto Github PK

View Code? Open in Web Editor NEW
530.0 18.0 167.0 4.77 MB

Surfel-based Mapping for 3d Laser Range Data (SuMa)

License: MIT License

CMake 1.02% C++ 84.73% C 4.45% GLSL 9.80%
rss2018 opengl slam velodyne kitti-dataset

suma's Introduction

Surfel-based Mapping using 3D Laser Range Data

Mapping of 3d laser range data from a rotating laser range scanner, e.g., the Velodyne HDL-64E. For representing the map, we use surfels that enables fast rendering of the map for point-to-plane ICP and loop closure detection.

Publication

If you use our implementation in your academic work, please cite the corresponding paper:

J. Behley, C. Stachniss. Efficient Surfel-Based SLAM using 3D Laser Range Data in Urban Environments, Proc. of Robotics: Science and Systems (RSS), 2018.

The BibTeX entry for the paper is:

@inproceedings{behley2018rss, 
		author = {Jens Behley and Cyrill Stachniss},
		title  = {Efficient Surfel-Based SLAM using 3D Laser Range Data in Urban Environments},
		booktitle = {Proc.~of Robotics: Science and Systems~(RSS)},
		year = {2018}  
}

Dependencies

  • Qt5 >= 5.2.1
  • OpenGL >= 3.3
  • libEigen >= 3.2

In Ubuntu 22.04/20.04: Installing all dependencies is accomplished by:

  $  sudo apt-get install -y build-essential cmake libeigen3-dev libboost-all-dev qtbase5-dev libglew-dev

Build

  $ mkdir build && cd build
  $ cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=430 -DENABLE_NVIDIA_EXT=YES
  $ make -j5

Where you have to set OPENGL_VERSION to the supported OpenGL core profile version of your system, which you can query as follows:

$ glxinfo | grep "version"
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 4.3.0 NVIDIA 367.44
OpenGL core profile shading language version string: 4.30 NVIDIA [...]
OpenGL version string: 4.5.0 NVIDIA 367.44
OpenGL shading language version string: 4.50 NVIDIA

Here the line OpenGL core profile version string: 4.3.0 NVIDIA 367.44 is important and therefore you should use -DOPENGL_VERSION = 430. If you are unsure you can also leave it on the default version 330, which should be supported by all OpenGL-capable devices.

If you have a NVIDIA device, like a Geforce or Quadro graphics card, you should also activate the NVIDIA extensions using -DENABLE_NVIDIA_EXT=YES for info about the current GPU memory usage of the program.

Now the project root directory should contain a bin directory containing the visualizer.

How to run and use it?

All binaries are copied to the bin directory of the source folder of the project. Thus,

  1. run visualizer in the bin directory,
  2. open a Velodyne directory from the KITTI Visual Odometry Benchmark and select a ".bin" file,
  3. start the processing of the scans via the "play button" in the GUI.

In the config directory, different configuration files are given, which can be used as reference to set parameters for some experiments with other data. Specifying the right "vertical Field-of-View" (data_fov_up and data_fov_down) and the right number of scan lines (data_height) are the most important parameters.

See also the project page for configuration files used for the evaluation in the paper.

License

Copyright 2018 Jens Behley, University of Bonn.

This project is free software made available under the MIT License. For details see the LICENSE file.

suma's People

Contributors

jbehley avatar tano297 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

suma's Issues

segmentation fault

hi, thanks for your code!!!

I meet the same question as some issues, and I use 'gdb ./visualizer' and input 'bt' and 'r' , it shows these:

xdt@xdt:~/catkin_ws2/src/SuMa/bin$ gdb ./visualizer
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./visualizer...done.

(gdb) bt
No stack.

(gdb) r
Starting program: /home/xdt/catkin_ws2/src/SuMa/bin/visualizer
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffeba04700 (LWP 19741)]
[New Thread 0x7fffe0c99700 (LWP 19742)]
[New Thread 0x7fffdbfff700 (LWP 19743)]
[New Thread 0x7fffda785700 (LWP 19744)]
OpenGL Context Version 4.6 core profile
GLEW initialized.
OpenGL context version: 4.6
OpenGL vendor string : NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1650 Ti/PCIe/SSE2
Extracting surfel maps partially.
Thread 1 "visualizer" received signal SIGSEGV, Segmentation fault.
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x203d206e6f697469)
at /usr/include/c++/7/bits/shared_ptr_base.h:151
151 if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1)

could you please tell me what should I do?
Best wishes!

Segmentation fault

Hello.

I'm trying to run ./visualizer but there was "Segmentation fault".
I think I tried to solve this problem with related issues like #20 and https://github.com/PRBonn/semantic_suma/issues/14.

My Eigen and gtsam versions are 3.3.7 and 4.0.0, respectively.

And I also compiled gtsam with eigen.

make GTSAM_USE_SYSTEM_EIGEN='on'
make install

But a similar problem still remains.

$ gdb ./visualizer 
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./visualizer...done.
(gdb) run
Starting program: /home/vdclab/catkin_ws/src/SuMa/bin/visualizer 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe8b73700 (LWP 13785)]
[New Thread 0x7fffde5f4700 (LWP 13787)]
[New Thread 0x7fffdddf3700 (LWP 13788)]
[New Thread 0x7fffd7fff700 (LWP 13789)]
OpenGL Context Version 4.6 core profile
GLEW initialized.
OpenGL context version: 4.6
OpenGL vendor string  : NVIDIA Corporation
OpenGL renderer string: GeForce GTX 980 Ti/PCIe/SSE2
Thread 1 "visualizer" received signal SIGSEGV, Segmentation fault.
0x0000000000450056 in Eigen::internal::pload<float __vector(8)>(Eigen::internal::unpacket_traits<float __vector(8)>::type const*) (from=<optimized out>)
    at /usr/local/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h:214
214	template<> EIGEN_STRONG_INLINE Packet8f pload<Packet8f>(const float*   from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm256_load_ps(from); }

Should I downgrade my Eigen version to 3.2.1 or 3.2.10 like https://github.com/PRBonn/semantic_suma/issues/14?
Please let me know how to solve this problem.

Thank you.

Run on custom dataset

Thank you for making your work open source. Amazing work. I wanted to generate poses.txt for point cloud annotation tool https://github.com/jbehley/point_labeler. My dataset doesn't have point cloud of 360 view, it only have front point clouds of 120 degree.
When I open my .bin files your tool and click on play button, after 2-3 frames most of point clouds comes on the right side and doesn't very well localize the points.

Do I have to do any configuration to tell the tool that I don't have 360 point cloud, but I have only front 120 degree point clouds.

Thanks,
Jagdish Bhanushali

OpenGL Error

Hello dear friends!
Thank you for the amazing work.
I have install Ubuntu16.04 on my computer.
I download and compile your project follow the steps in the README.md.
when i run the ./visualizer i get the information as bellow

OpenGL Context Version 3.3 core profile
GLEW initialized.
OpenGL context version: 3.3
OpenGL vendor string : VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 256 bits)
Extracting surfel maps partially.
OpenGL Error: invalid enumerant(1280)
In: /home/rogers/catkin_ws/src/SuMa/src/core/SurfelMap.cpp on Line: 298
terminate called after throwing an instance of 'std::runtime_error'
what(): OpenGL error detected.
Aborted (core dumped)

I don't know what is the problem. Could you help me find this problem out? Thank you very much.

How to save poses?

Hello, i want to get poses of every timestamp. How to use the "Save poses..." button?
There is nothing When i click it, thank you.

what is the difference between these five images

Hello, I think that Fig.1(left and right), Fig.2 and Fig.4 are normal map.
Fig.3 and Fig.5 are vertex map(depth map).
I found that Fig.4 and Fig.5 are the current normal map(N_{D}) and vertex map(V_{D}) respectively.
And I guess that Fig.2 and Fig.3 are the rendered normal map(N_{M}) and vertex map(V_{M}) respectively. Because I found that the dynamic objects had been filtered from the Fig.2 and Fig.3.
There is no label beside to the images, which makes me confused.
Plz point out if I didn't understand it correctly!

image

Segmentation fault

Hi! Thank you for your contribution!

When I run ./visualizer, segmentation fault occurs, and I use gdb:
(base) juneyoung@juneyoung:/catkin_ws_suma/src/SuMa/bin$ gdb ./visualizer
GNU gdb (Ubuntu 9.2-0ubuntu1
20.04.1) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./visualizer...
(gdb) r
Starting program: /home/juneyoung/catkin_ws_suma/src/SuMa/bin/visualizer
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff302f700 (LWP 140139)]
[New Thread 0x7fffe6608700 (LWP 140140)]
[New Thread 0x7fffe5e07700 (LWP 140141)]
[New Thread 0x7fffe559e700 (LWP 140142)]
[Thread 0x7fffe5e07700 (LWP 140141) exited]
OpenGL Context Version 4.6 core profile
GLEW initialized.
OpenGL context version: 4.6
OpenGL vendor string : Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics (TGL GT1)

Thread 1 "visualizer" received signal SIGSEGV, Segmentation fault.
Frame::Frame (this=0x5555556a78d0, w=, h=)
at /home/juneyoung/catkin_ws_suma/src/SuMa/src/core/Frame.h:30
30 residual_map(width, height, glow::TextureFormat::RGBA_FLOAT) {
(gdb) bt
#0 Frame::Frame (this=0x5555556a78d0, w=, h=)
at /home/juneyoung/catkin_ws_suma/src/SuMa/src/core/Frame.h:30
#1 0x00005555555befe0 in __gnu_cxx::new_allocator::construct<Frame, int, int> (this=, __p=0x5555556a78d0) at /usr/include/c++/9/new:174
#2 std::allocator_traits<std::allocator >::construct<Frame, int, int> (
__a=..., __p=0x5555556a78d0) at /usr/include/c++/9/bits/alloc_traits.h:483
#3 std::_Sp_counted_ptr_inplace<Frame, std::allocator, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<int, int> (__a=..., this=0x5555556a7890)
at /usr/include/c++/9/bits/shared_ptr_base.h:548
#4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<Frame, std::allocator, int, int> (__a=..., __p=,
this=) at /usr/include/c++/9/bits/shared_ptr_base.h:679
#5 std::__shared_ptr<Frame, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator, int, int> (__tag=..., this=)
at /usr/include/c++/9/bits/shared_ptr_base.h:1344
#6 std::shared_ptr::shared_ptr<std::allocator, int, int> (
__tag=..., this=)
at /usr/include/c++/9/bits/shared_ptr.h:359
#7 std::allocate_shared<Frame, std::allocator, int, int> (__a=...)
at /usr/include/c++/9/bits/shared_ptr.h:702
#8 std::make_shared<Frame, int, int> ()
at /usr/include/c++/9/bits/shared_ptr.h:718
#9 ViewportWidget::ViewportWidget (this=0x555555819790,
--Type for more, q to quit, c to continue without paging--c
parent=, shareWidget=, f=...) at /home/juneyoung/catkin_ws_suma/src/SuMa/src/visualizer/ViewportWidget.cpp:34
#10 0x00005555555db04d in Ui_MainWindow::setupUi (this=this@entry=0x7fffffffd0b0, MainWindow=MainWindow@entry=0x7fffffffd080) at /home/juneyoung/anaconda3/include/qt/QtCore/qflags.h:121
#11 0x00005555555cc791 in VisualizerWindow::VisualizerWindow (this=0x7fffffffd080) at /home/juneyoung/catkin_ws_suma/src/SuMa/src/visualizer/VisualizerWindow.cpp:34
#12 0x0000555555586171 in main (argc=, argv=0x7fffffffd9e8) at /home/juneyoung/catkin_ws_suma/src/SuMa/src/visualizer/visualizer.cpp:19

I cannot find any solution to it.

Thank you for your reply!

terminate when running SurfelMap.cpp

Hi, Could you help me with this problem? Thank you very much!
I run this command
./bin/visualizer ./SuMa/config/default.xml
Terminal output is following :

OpenGL Context Version 3.3 core profile
GLEW initialized.
OpenGL context version: 3.3
OpenGL vendor string : VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 8.0, 256 bits)
Extracting surfel maps partially.
OpenGL Error: invalid enumerant(1280)
In: /home/Mine/slam/code/catkin_suma/src/SuMa/src/core/SurfelMap.cpp on Line: 298
terminate called after throwing an instance of 'std::runtime_error'
what(): OpenGL error detected.

Error in compilation

Any idea of the following error when performing catkin build --save-config -i --cmake-args -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=430 -DENABLE_NVIDIA_EXT=YES?

/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_3b2ac.dir/CheckFunctionExists.c.o -o cmTC_3b2ac  -lpthreads
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_3b2ac.dir/build.make:98: recipe for target 'cmTC_3b2ac' failed
make[1]: *** [cmTC_3b2ac] Error 1
make[1]: Leaving directory '/workspace/catkin_ws/build/surfel_mapping/CMakeFiles/CMakeTmp'
Makefile:127: recipe for target 'cmTC_3b2ac/fast' failed
make: *** [cmTC_3b2ac/fast] Error 2

Questions on the equation (10) in the paper

Hi!
Thank you for sharing your work!
I have a question on the equation (10) in your paper. According to your definition of the clamp , the denominator of (10) is always 0.5 since the first term(a cos value within [-1,1]) in clamp is always less than the third term. I wonder if I have any misunderstanding here.
image

For other Lidar sensor

I want to test SuMa for other type of LiDAR. And I formulate the point cloud in .bin file which is similar with KITTI format. After that, I change the default.xml in first several lines :
param name="data_width" type="integer">450
param name="data_height" type="integer">64
param name="data_fov_up" type="float">10.0373
param name="data_fov_down" type="float">-30.078

The algorithm seems works fine but with some small problem:
a.there are no points shown in visualizer. Only can see the odometry trajectory.
b.the results error seems serious comparing with KITTI dataset results.

I wander if there are something I missed?

runtime error

Hello author, thank you for sharing, but unfortunately, I encountered a problem while running your code
when I run the ./visualizer and l open the KITTI 001
an error appear :
In: /home/zhou/suma/src/glow/src/glow/GlFramebuffer.cpp on Line: 25
terminate called after throwing an instance of 'std::runtime_error'
what(): OpenGL error detected.
I can't solve this problem .
I need your help
Thanks you very much

Question about the getConfidenceThreshold() in SurfelMapping.cpp?

I'm confused about the confidence calculation in SurfelMapping.cpp, which used for SurfelMap->render();
image Are there some reference about this confidence calculation ?I'm sorry to bothering you about this, but I really search for your paper and some references about it, but I still confused about it. I'd really appreiciate it for your help!

some problems in running and using SuMa

Thank you for making your work open source. Amazing work!
After running the following command cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=410, I couldn't find anything in the bin directory of the source folder of the project, as shown below:
1714028528744
1714028552478
So I wonder where to find visualizer in the bin directory. Could you tell me what's wrong in this process?
Thank you very much!

terminate called after throwing an instance of 'rv::XmlError'

OpenGL Context Version 4.5 core profile
GLEW initialized.
OpenGL context version: 4.5
OpenGL vendor string : NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1060/PCIe/SSE2
terminate called after throwing an instance of 'rv::XmlError'
what(): Error while parsing in line 1

Visualizer not found

Hey there!

I have been trying to set up SuMa on my workstation with VNC. The building runs without any problems, see here:

Command: cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=450 -DENABLE_NVIDIA_EXT=YES

Output:

cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=330 -DENABLE_NVIDIA_EXT=YES
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- [SuMa] Fetching glow.
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- Found GLEW: /usr/include (found version "2.1.0")
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: filesystem system
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Enabling Nvidia OpenGL extensions.
-- Using OpenGL version 430.
-- [SuMa] Fetching GTSAM v4.2.0.
-- GTSAM Version: 4.2a9
-- Performing Test COMPILER_HAS_WSUGGEST_OVERRIDE
-- Performing Test COMPILER_HAS_WSUGGEST_OVERRIDE - Success
-- Performing Test COMPILER_HAS_WMISSING_OVERRIDE
-- Performing Test COMPILER_HAS_WMISSING_OVERRIDE - Failed
-- GTSAM_POSE3_EXPMAP=ON, enabling GTSAM_ROT3_EXPMAP as well
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.65") found components: serialization system filesystem thread program_options date_time timer chrono regex
-- Found Eigen version: 3.3.7
-- Looking for execinfo.h
-- Looking for execinfo.h - found
-- Looking for getline
-- Looking for getline - found
-- checking for thread-local storage - found
-- Could NOT find MKL (missing: MKL_INCLUDE_DIR MKL_LIBRARIES)
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Could NOT find TBB (missing: TBB_INCLUDE_DIRS TBB_LIBRARIES tbb tbbmalloc) (Required is at least version "4.4")
-- Building 3rdparty
-- Could NOT find GeographicLib (missing: GeographicLib_LIBRARY_DIRS GeographicLib_LIBRARIES GeographicLib_INCLUDE_DIRS)
-- Building base
-- Building basis
-- Building geometry
-- Building inference
-- Building symbolic
-- Building discrete
-- Building hybrid
-- Building linear
-- Building nonlinear
-- Building sam
-- Building sfm
-- Building slam
-- Building navigation
-- GTSAM Version: 4.2.0
-- Install prefix: /usr/local
-- Building GTSAM - shared: ON
-- Wrote /mnt/scratch/SuMa/build/_deps/gtsam-build/GTSAMConfig.cmake
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- ===============================================================
-- ================ Configuration Options ======================
-- CMAKE_CXX_COMPILER_ID type : GNU
-- CMAKE_CXX_COMPILER_VERSION : 9.4.0
-- CMake version : 3.16.3
-- CMake generator : Unix Makefiles
-- CMake build tool : /usr/bin/make
-- Build flags
-- Build Tests : Disabled
-- Build examples with 'make all' : Disabled
-- Build timing scripts with 'make all' : Disabled
-- Build shared GTSAM libraries : Enabled
-- Put build type in library name : Enabled
-- Build libgtsam_unstable : Disabled
-- Build GTSAM unstable Python : Disabled
-- Build MATLAB Toolbox for unstable : Disabled
-- Build for native architecture : Disabled
-- Build type : Release
-- C compilation flags : -O3 -DNDEBUG
-- C++ compilation flags : -O3 -DNDEBUG
-- GTSAM_COMPILE_FEATURES_PUBLIC : cxx_std_11
-- GTSAM_COMPILE_OPTIONS_PUBLIC :
-- GTSAM_COMPILE_DEFINITIONS_PUBLIC :
-- GTSAM_COMPILE_OPTIONS_PUBLIC_RELEASE :
-- GTSAM_COMPILE_DEFINITIONS_PUBLIC_RELEASE :
-- Use System Eigen : On (Using version: 3.3.7)
-- Use System Metis : OFF
-- Using Boost version : 1.71.0
-- Use Intel TBB : TBB not found
-- Eigen will use MKL : MKL not found
-- Eigen will use MKL and OpenMP : OpenMP found but GTSAM_WITH_EIGEN_MKL is disabled
-- Default allocator : STL
-- Cheirality exceptions enabled : YES
-- Build with ccache : No
-- Packaging flags
-- CPack Source Generator : TGZ
-- CPack Generator : TGZ
-- GTSAM flags
-- Quaternions as default Rot3 : Disabled
-- Runtime consistency checking : Disabled
-- Rot3 retract is full ExpMap : Enabled
-- Pose3 retract is full ExpMap : Enabled
-- Allow features deprecated in GTSAM 4.2 : Enabled
-- Metis-based Nested Dissection : Enabled
-- Use tangent-space preintegration : Enabled
-- MATLAB toolbox flags
-- Install MATLAB toolbox : Disabled
-- Python toolbox flags
-- Build Python module with pybind : Disabled
-- ===============================================================
CMake Warning at build/_deps/gtsam-src/cmake/HandleFinalChecks.cmake:3 (message):
TBB 4.4 or newer was not found - this is ok, but note that GTSAM
parallelization will be disabled. Set GTSAM_WITH_TBB to 'Off' to avoid
this warning.
Call Stack (most recent call first):
build/_deps/gtsam-src/CMakeLists.txt:143 (include)

-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: filesystem system timer date_time
-- [SuMa] Enabling Nvidia OpenGL extensions.
-- [SuMa] Using OpenGL version 430.
-- [SuMa] Fetching GTest.
-- Found Python: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter
-- Found Threads: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/scratch/SuMa/build

The problem is that the /mnt/scratch/SuMa/bin directory is empty, even though there is supposed to the Visualizer.

I would appreciate some help! Thanks!

error when ./visualizer

Dear author:

When I finished compiling and was ready to run visualizer, the following error occurred

OpenGL Context Version 4.6 core profile
GLEW initialized.
OpenGL context version: 4.6
OpenGL vendor string  : NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2
Segmentation fault (core dumped)

So I use the gdb command,gdb ./visualizer

GNU gdb (Ubuntu 10.2-0ubuntu1~20.04~1) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./visualizer...

then (gdb) run

Starting program: /home/gao/robot/src/semantic_suma/bin/visualizer 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffb5fe9000 (LWP 38225)]
[New Thread 0x7fffb55c2000 (LWP 38226)]
OpenGL Context Version 4.6 core profile
GLEW initialized.
OpenGL context version: 4.6
OpenGL vendor string  : NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2

Thread 1 "visualizer" received signal SIGSEGV, Segmentation fault.
Frame::Frame (this=0x5555560aac50, w=<optimized out>, h=<optimized out>) at /home/gao/robot/src/semantic_suma/src/core/Frame.h:32
32	  residual_map(width, height, glow::TextureFormat::RGBA_FLOAT)

at last (gdb) bt

#0  Frame::Frame (this=0x5555560aac50, w=<optimized out>, h=<optimized out>) at /home/gao/robot/src/semantic_suma/src/core/Frame.h:32
#1  0x00005555555b9aa1 in __gnu_cxx::new_allocator<Frame>::construct<Frame, int, int> (this=<optimized out>, __p=0x5555560aac50) at /usr/include/c++/9/new:174
#2  std::allocator_traits<std::allocator<Frame> >::construct<Frame, int, int> (__a=..., __p=0x5555560aac50) at /usr/include/c++/9/bits/alloc_traits.h:483
#3  std::_Sp_counted_ptr_inplace<Frame, std::allocator<Frame>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<int, int> (__a=..., this=0x5555560aac30)
    at /usr/include/c++/9/bits/shared_ptr_base.h:548
#4  std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<Frame, std::allocator<Frame>, int, int> (__a=..., __p=<optimized out>, this=<optimized out>)
    at /usr/include/c++/9/bits/shared_ptr_base.h:679
#5  std::__shared_ptr<Frame, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<Frame>, int, int> (__tag=..., this=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1344
#6  std::shared_ptr<Frame>::shared_ptr<std::allocator<Frame>, int, int> (__tag=..., this=<optimized out>) at /usr/include/c++/9/bits/shared_ptr.h:359
#7  std::allocate_shared<Frame, std::allocator<Frame>, int, int> (__a=...) at /usr/include/c++/9/bits/shared_ptr.h:702
#8  std::make_shared<Frame, int, int> () at /usr/include/c++/9/bits/shared_ptr.h:718
#9  ViewportWidget::ViewportWidget (this=0x555555f807d0, parent=<optimized out>, shareWidget=<optimized out>, f=...) at /home/gao/robot/src/semantic_suma/src/visualizer/ViewportWidget.cpp:37
#10 0x00005555555df2c2 in Ui_MainWindow::setupUi (this=this@entry=0x7fffffffc568, MainWindow=MainWindow@entry=0x7fffffffc520) at /home/gao/anaconda3/include/qt/QtCore/qflags.h:123
#11 0x00005555555cf39d in VisualizerWindow::VisualizerWindow (this=0x7fffffffc520, argc=<optimized out>, argv=<optimized out>)
    at /home/gao/robot/src/semantic_suma/src/visualizer/VisualizerWindow.cpp:35
#12 0x0000555555583d88 in main (argc=<optimized out>, argv=0x7fffffffce88) at /home/gao/robot/src/semantic_suma/src/visualizer/visualizer.cpp:19

Can you please help me with this?

segmentation fault

two days ago i successfully built and use for pose estimation,but today it turns to segmentation fault,here's the gdb imformation:
Program received signal SIGSEGV, Segmentation fault.
__GI___libc_free (mem=0x20) at malloc.c:3113
3113 malloc.c. no such or directory.

i met seg fault for the very beginning and i"get gtsam version 4.0.0-alpha2 and try it with GTSAM_USE_SYSTEM_EIGEN activated."to solve the problem.

hope that somthing wrong can be found.

What is the relationship between execution files genvideo and visualizer?

Hi,

  1. Is execution file genvideo is for generating video? then this video can be loaded in visualizer for visualization?

  2. Another question is when I follow the instruction of the section 'How to run and use it?' but when push play button, it only runs 1 frames and then stops.

Thanks in advance.

Try to understand the file pose.txt

Hi,

I try to understand the pose.txt file. If I look inside the file, each row has 12 items.

For example: 0.999932 -0.0110913 0.00372999 0.132322 0.0110829 0.999936 0.00228526 0.0384668 -0.0037551 -0.00224376 0.99999 0.0203489

My question is: what represent the 12 entries?

there are some questions using VLP-16 Lidar sensor

Hello.
I try to simulate a new dataset collected by VLP-16, which with the vertical angle of view:+15°- -15°,depth:100m, so i modify the "default.xml"

<param name="data_width" type="integer">900</param>
<param name="data_height" type="integer">64</param>
<param name="data_fov_up" type="float">15.0</param>
<param name="data_fov_down" type="float">-15.0</param>
<param name="max_depth" type="float">100.0</param>
<param name="model_width" type="integer">900</param>
<param name="model_height" type="integer">64</param>
<param name="model_fov_up" type="float">15.0</param>
<param name="model_fov_down" type="float">-15.0</param>

but there are some problems:

  1. the trajectory seems not right, the car turns around on the Z-axis.
  2. there are only some points on the normal map(2D).
    i have some questions:
  3. what's the meaning of data_height & data_width? from the code, i think they are the height&width of normal map. According to different Lidar, how do i modify the parameter?
  4. KITTI use HDL-64E, and my Lidar is VLP-16, does the difference of beams influence a lot?
    Hope for your reply, thank you.

about the input to Suma

Hello, thanks for your code releasing!
I have some questions about the input to Suma:

  1. Does the visualizer default to using config/default.xml and how can i change config file to another one (for example vlp16.xml)?
  2. If I just only feed Lidar data to Suma (there is no calib.txt and other files) , when I execute Save Poses, is the pose in output file poses.txt referenced to the first frame of the Lidar data?

Unknown CMake command "COMPILE_SHADERS"

The errors occurred when I compile the program in Ubuntu 16.04

xiesc@xiesc-ThinkPad-T460p:~/xieshichao/surfel_based_mapping$ catkin build --save-config -i --cmake-args -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=450 -DENABLE_NVIDIA_EXT=YES

Profile: default
Extending: [cached] /opt/ros/kinetic
Workspace: /home/xiesc/xieshichao/surfel_based_mapping

Source Space: [exists] /home/xiesc/xieshichao/surfel_based_mapping/src
Log Space: [exists] /home/xiesc/xieshichao/surfel_based_mapping/logs
Build Space: [exists] /home/xiesc/xieshichao/surfel_based_mapping/build
Devel Space: [exists] /home/xiesc/xieshichao/surfel_based_mapping/devel
Install Space: [unused] /home/xiesc/xieshichao/surfel_based_mapping/install
DESTDIR: [unused] None

Devel Space Layout: linked
Install Space Layout: None

Additional CMake Args: -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=430 -DENABLE_NVIDIA_EXT=YES -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=450 -DENABLE_NVIDIA_EXT=YES -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=450 -DENABLE_NVIDIA_EXT=YES -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=450 -DENABLE_NVIDIA_EXT=YES -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=450 -DENABLE_NVIDIA_EXT=YES -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=450 -DENABLE_NVIDIA_EXT=YES -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=450 -DENABLE_NVIDIA_EXT=YES -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=450 -DENABLE_NVIDIA_EXT=YES
Additional Make Args: None
Additional catkin Make Args: None
Internal Make Job Server: True
Cache Job Environments: False

Whitelisted Packages: None
Blacklisted Packages: None

Workspace configuration appears valid.

NOTE: Forcing CMake to run for each package.

[build] Found '1' packages in 0.0 seconds.
[build] Package table is up to date.
Starting >>> surfel_mapping
[surfel_mapping:loadenv] Loading environment from: /home/xiesc/xieshichao/surfel_based_mapping/devel/env.sh
[surfel_mapping:cmake] Not searching for unused variables given on the command line.
[surfel_mapping:cmake] -- Boost version: 1.58.0
[surfel_mapping:cmake] -- Found the following Boost libraries:
[surfel_mapping:cmake] -- filesystem
[surfel_mapping:cmake] -- system
[surfel_mapping:cmake] -- GTSAM include directory: /usr/local/lib/cmake/GTSAM/../../../include;/usr/include
[surfel_mapping:cmake] -- Using CATKIN_DEVEL_PREFIX: /home/xiesc/xieshichao/surfel_based_mapping/devel/.private/surfel_mapping
[surfel_mapping:cmake] -- Using CMAKE_PREFIX_PATH: /home/xiesc/xieshichao/surfel_based_mapping/devel;/opt/ros/kinetic
[surfel_mapping:cmake] -- This workspace overlays: /home/xiesc/xieshichao/surfel_based_mapping/devel;/opt/ros/kinetic
[surfel_mapping:cmake] -- Using PYTHON_EXECUTABLE: /usr/bin/python
[surfel_mapping:cmake] -- Using Debian Python package layout
[surfel_mapping:cmake] -- Using empy: /usr/bin/empy
[surfel_mapping:cmake] -- Using CATKIN_ENABLE_TESTING: ON
[surfel_mapping:cmake] -- Call enable_testing()
[surfel_mapping:cmake] -- Using CATKIN_TEST_RESULTS_DIR: /home/xiesc/xieshichao/surfel_based_mapping/build/surfel_mapping/test_results
[surfel_mapping:cmake] -- Found gmock sources under '/usr/src/gmock': gmock will be built
[surfel_mapping:cmake] -- Found gtest sources under '/usr/src/gmock': gtests will be built
[surfel_mapping:cmake] -- Using Python nosetests: /usr/bin/nosetests-2.7
[surfel_mapping:cmake] -- catkin 0.7.14
[surfel_mapping:cmake] -- Could NOT find glow (missing: glow_DIR)
[surfel_mapping:cmake] Enabling Nvidia OpenGL extensions.
[surfel_mapping:cmake] CMake Error at /home/xiesc/xieshichao/surfel_based_mapping/src/SuMa-master/CMakeLists.txt:54 (COMPILE_SHADERS):
[surfel_mapping:cmake] Unknown CMake command "COMPILE_SHADERS".
[surfel_mapping:cmake]
[surfel_mapping:cmake]
[surfel_mapping:cmake] -- Using OpenGL version 450.
[surfel_mapping:cmake] -- Configuring incomplete, errors occurred!
[surfel_mapping:cmake] See also "/home/xiesc/xieshichao/surfel_based_mapping/build/surfel_mapping/CMakeFiles/CMakeOutput.log".
[surfel_mapping:cmake] See also "/home/xiesc/xieshichao/surfel_based_mapping/build/surfel_mapping/CMakeFiles/CMakeError.log".
Failed <<< surfel_mapping [ 0.8 seconds ]
[build] Summary: 0 of 1 packages succeeded.
[build] Ignored: None.
[build] Warnings: None.
[build] Abandoned: None.
[build] Failed: 1 packages failed.
[build] Runtime: 0.9 seconds total.

CUDA porting

Hi,
this project is awesome! thank you very much for sharing your work.
I was thinking to port this project to CUDA, i know that openGL is much more portable but maybe in CUDA it will gain in performances.
I though that even before starting to work is better to ask the author :)
Do you think the porting is possible?
Do you think it will gain some performance?

thanks,
Francesco

error in run `visualizer` in the `bin` directory

(suma) jyzhang@sumig-System-Product-Name:~/catkin_ws/src/SuMa/bin$ ./visualizer 段错误 (核心已转储)
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./visualizer...done.
(gdb) run
Starting program: /home/jyzhang/catkin_ws/src/SuMa/bin/visualizer
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
__GI___libc_free (mem=0x20) at malloc.c:3113
3113 malloc.c: 没有那个文件或目录.
(gdb)

Do you plan to open the "Point Labeler" in the future.

In the paper

Behley, Jens, et al. "A Dataset for Semantic Segmentation of Point Cloud Sequences." arXiv preprint arXiv:1904.01416 (2019).

you provide an attractive tool(Figure 6) for labeling large point cloud. Do you plan to open this tool for people who are interested in extending this dataset?

image

Segmentation Fault (OpenGL renderer string: AMD RENOIR)

Hi jbehley! Thanks for the open source code.
I encontered a segmentation error when trying to run the visualizer.
I have checked all the issues posted around the Eigen and gtsam.
However, I still can not the segmentation error when using Eigen 3.2.7/3.3.7 and gtsam 4.0.0 alpha2.

I use the gdb ./visualizer run and bt, the result shows as below.
(gdb) r
Starting program: /home/ziyuli/catkin_ws/src/SuMa/bin/visualizer
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff2a4e700 (LWP 78180)]
[New Thread 0x7ffff15f5700 (LWP 78181)]
[New Thread 0x7ffff0c9f700 (LWP 78182)]
[New Thread 0x7fffe4f35700 (LWP 78183)]
[New Thread 0x7fffd7fff700 (LWP 78184)]
[New Thread 0x7fffcf7fe700 (LWP 78185)]
[New Thread 0x7fffd77fe700 (LWP 78186)]
[New Thread 0x7fffd6ffd700 (LWP 78187)]
[New Thread 0x7fffd67fc700 (LWP 78188)]
[New Thread 0x7fffd5ffb700 (LWP 78189)]
[New Thread 0x7fffd57fa700 (LWP 78190)]
[New Thread 0x7fffd4ff9700 (LWP 78191)]
[New Thread 0x7fffcffff700 (LWP 78192)]
[New Thread 0x7fffceffd700 (LWP 78193)]
[New Thread 0x7fffce7fc700 (LWP 78194)]
[New Thread 0x7fffcdffb700 (LWP 78195)]
[New Thread 0x7fffcd7fa700 (LWP 78196)]
[New Thread 0x7fffccff9700 (LWP 78197)]
[New Thread 0x7fff97fff700 (LWP 78198)]
[New Thread 0x7fff977fe700 (LWP 78199)]
[New Thread 0x7fff96ffd700 (LWP 78200)]
[New Thread 0x7fff967fc700 (LWP 78201)]
[New Thread 0x7fff95ffb700 (LWP 78202)]
[New Thread 0x7fff957fa700 (LWP 78203)]
[New Thread 0x7fff94ff9700 (LWP 78204)]
[Thread 0x7fff957fa700 (LWP 78203) exited]
OpenGL Context Version 4.6 core profile
GLEW initialized.
OpenGL context version: 4.6
OpenGL vendor string : AMD
OpenGL renderer string: AMD RENOIR (DRM 3.40.0, 5.11.0-40-generic, LLVM 12.0.0)
[New Thread 0x7fff957fa700 (LWP 78205)]

Thread 9 "visualizer:sh1" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd6ffd700 (LWP 78187)]
0x00007fffe7516582 in ?? () from /lib/x86_64-linux-gnu/libLLVM-12.so.1

and

(gdb) bt
#0 0x00007fffe7516582 in ?? () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#1 0x00007fffe75168e7 in ?? () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#2 0x00007fffe750a79e in ?? () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#3 0x00007fffe75094e9 in ?? () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#4 0x00007fffe738081b in ?? () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#5 0x00007fffe6254811 in llvm::AsmPrinter::emitFunctionBody() () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#6 0x00007fffe72eb58b in ?? () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#7 0x00007fffe5e18e2e in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#8 0x00007fffe5c3636d in llvm::FPPassManager::runOnFunction(llvm::Function&) () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#9 0x00007fffe6accde6 in ?? () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#10 0x00007fffe5c369bf in llvm::legacy::PassManagerImpl::run(llvm::Module&) () from /lib/x86_64-linux-gnu/libLLVM-12.so.1
#11 0x00007fffeb187c4a in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#12 0x00007fffeb0b0ba5 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#13 0x00007fffeb0b2f81 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#14 0x00007fffeb0af764 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#15 0x00007fffeb1155a5 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#16 0x00007fffea833f35 in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#17 0x00007fffea833a7b in ?? () from /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
#18 0x00007ffff662f609 in start_thread (arg=) at pthread_create.c:477
#19 0x00007ffff67df293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

How may I solve my problem?
I am looking forward to your help ,thanks a lot !

OpenGL Error: out of memory(1285)

when i run visualizer, i got error:
Extracting surfel maps partially.
OpenGL Error: out of memory(1285)
In: /home/***/catkin_ws/src/SuMa/src/core/SurfelMap.cpp on Line: 298
terminate called after throwing an instance of 'std::runtime_error'
what(): OpenGL error detected.
Aborted (core dumped)

The visualizer crashed when click start button, something wrong with opengl

Hi Behley, Could you help me with this problem? Thank you very much! Following is what in the terminal when I open visualizer and open one bin file and last click the start button:

./visualizer
OpenGL Context Version 4.3 core profile
GLEW initialized.
OpenGL context version: 4.3
OpenGL vendor string : nouveau
OpenGL renderer string: NV117
Extracting surfel maps partially.
Performing frame-to-model matching.
Gtk-Message: 15:12:49.587: GtkDialog mapped without a transient parent. This is discouraged.
calibration filename: /media/weitongwu/Elements/Data/kitti/00/calib.txt...loaded.
ground truth filename: /media/weitongwu/Elements/Data/poses/00.txt
4541 poses read.
Performing frame-to-model matching.
OpenGL Error: invalid value(1281)
In: /home/weitongwu/suma_ws/src/glow/src/glow/GlFramebuffer.cpp on Line: 25
terminate called after throwing an instance of 'std::runtime_error'
what(): OpenGL error detected.
已放弃 (核心已转储)

Question regarding merging 3 VLP-16

Hello, I am working with a setup which merges 3 VLP-16 together and publishes the combined point cloud w.r.t baselink. Among the 3 llidars. one is placed horizontally and other 2 are tilted at a certain angle. So I was wondering what things I have to change inside config/vlp16_example.xml file.
N.B: When I imported my combined point cloud data with vlp16_example.xml file, it was looking good. I can see the point clouds and the rings generated by 3 different pointclouds well. Though it looks satisfactory visually, I wanted to reassure that I am not loosing any pointcloud data after importing inside SuMa.

Visualization raises a segment error

Hi!
Thanks for excellent work. When I finished compiling and running the visual executable, a segment error was triggered.
I checked the source code, the problem may appear new operator.
The code that causes the error is
std::shared_ptr fusion = std::shared_ptr(new SurfelMapping(params));
which in visualizer.cpp.
the error is that
zpw@msi:~/slam/suma_ws/src/SuMa/bin$ ./visualizer
OpenGL Context Version 4.6 core profile
GLEW initialized.
OpenGL context version: 4.6
OpenGL vendor string : NVIDIA Corporation
OpenGL renderer string: GeForce RTX 2060/PCIe/SSE2
段错误 (核心已转储)
Do you have this error when you run the code? Can you give some solutions?

Thanks

Is it possible to add a ros wrapper?

HI @jbehley , thanks a lot for sharing this great work! I tested it using KITTI. The visualization of point cloud result is good.

Then I tried to write a ros warper for SuMa, so as to test it on real robots/cars with a 3D lidar. Just like what is used in the qt wrapper /visualizer/VisualizerWindow.cpp and implementation /visualizer/visualizer.cpp, I create a class SuMaRosWarper with a member of std::shared_ptr<SurfelMapping> fusion_, then created a std::shared_ptr<SurfelMapping> pointer to initialize it. However, a segment fault was thrown in the construction of SurfelMapping. I backtraced the code and found the error occurred when called glGenBuffers(1, &id_);:

2019-09-27 16-34-35屏幕截图

BUT I can run your qt version smoothly. What's wrong with this? any suggestion?

How to exploit created map ?

Hi ,
Thanks for excellent work. I have created a a map using my data, now I would like to port the created map, where is this map stored at and what is the extension like, .pcd or .bin ?. I would like to visualize the map with PCL, is there any built in function that can give me map ?

Thank you for your time

"1 package failed" when i do catkin build

Hi, when i do " catkin build --save-config -i --cmake-args -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=430 -DENABLE_NVIDIA_EXT=YES",there shows 1 package failed
here is the specific error:
[surfel_mapping:cmake] CMake Error at /home/lvsijie/catkin_ws/src/SuMa/CMakeLists.txt:175 (add_executable):
[surfel_mapping:cmake] Target "genvideo" links to target "Boost::serialization" but the target was
[surfel_mapping:cmake] not found. Perhaps a find_package() call is missing for an IMPORTED
[surfel_mapping:cmake] target, or an ALIAS target is missing?
[surfel_mapping:cmake]
[surfel_mapping:cmake]
[surfel_mapping:cmake] CMake Error at /home/lvsijie/catkin_ws/src/SuMa/CMakeLists.txt:175 (add_executable):
[surfel_mapping:cmake] Target "genvideo" links to target "Boost::thread" but the target was not
[surfel_mapping:cmake] found. Perhaps a find_package() call is missing for an IMPORTED target, or
[surfel_mapping:cmake] an ALIAS target is missing?
[surfel_mapping:cmake]
[surfel_mapping:cmake]
[surfel_mapping:cmake] CMake Error at /home/lvsijie/catkin_ws/src/SuMa/CMakeLists.txt:175 (add_executable):
[surfel_mapping:cmake] Target "genvideo" links to target "Boost::date_time" but the target was not
[surfel_mapping:cmake] found. Perhaps a find_package() call is missing for an IMPORTED target, or
[surfel_mapping:cmake] an ALIAS target is missing?
[surfel_mapping:cmake]
[surfel_mapping:cmake]
[surfel_mapping:cmake] CMake Error at /home/lvsijie/catkin_ws/src/SuMa/CMakeLists.txt:175 (add_executable):
[surfel_mapping:cmake] Target "genvideo" links to target "Boost::regex" but the target was not
[surfel_mapping:cmake] found. Perhaps a find_package() call is missing for an IMPORTED target, or
[surfel_mapping:cmake] an ALIAS target is missing?

and my OPENGL version is:
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 4.5.0 NVIDIA 415.27
OpenGL core profile shading language version string: 4.50 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 415.27
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 415.27
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,

What's the problem?Could you give me some advice?
Thank you.

Error: KIT robot model not found

Hello, when I run the Kitti dataset and SuMa, I found some problems.
When I imported a frame of data, it showed "Error: KIT robot model not found." and then I clicked the"play button" and the terminal was over.
How can I solve? I'm looking forward to your reply. Thanks.

Segmentation fault

hello, when i compiled this project over, i tried to run ./visualizer in bin fold, the error happend:
'''
OpenGL Context Version 4.5 core profile
GLEW initialized.
OpenGL context version: 4.5
OpenGL vendor string : NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1050 Ti/PCIe/SSE2
Extracting surfel maps partially.
Performing frame-to-model matching.
Segmentation fault
'''
any one no why this happended, and how to do to solve this

How to use the simulation_reader ?

Hi, I have noticed that the io files have the simulation_reader about the SLAM tests in simulation environment. But I don't know which simulation platform can provide these simulation data, could you give me some hint ?

Invalid framebuffer object. Code 36061(GL_FRAMEBUFFER_UNSUPPORTED)

Hello, I run kiitti dataset and suffer from this problem when play second scan:

reason Invalid framebuffer object. Code 36061(GL_FRAMEBUFFER_UNSUPPORTED)
terminate called after throwing an instance of 'glow::GlFramebufferError'
what(): Invalid framebuffer object. Code 36061(GL_FRAMEBUFFER_UNSUPPORTED)

and gdb show:

(gdb) bt
#0  0x00007ffff3fb2428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff3fb402a in __GI_abort () at abort.c:89
#2  0x00007ffff45ec84d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-    gnu/libstdc++.so.6
#3  0x00007ffff45ea6b6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff45ea701 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff45ea919 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff793334a in glow::GlFramebuffer::bind() () from /home/fjy/code/offline/suma_ws/devel/.private/glow/lib/libglow.so
#7  0x00007ffff7b8c015 in Frame2Model::jacobianProducts (this=0x230cfa0, JtJ=..., Jtf=...) at /home/fjy/code/offline/suma_ws/src/SuMa/src/core/Frame2Model.cpp:176
#8  0x00007ffff7ba2de8 in LieGaussNewton::step (this=this@entry=0x2393070) at /home/fjy/code/offline/suma_ws/src/SuMa/src/core/LieGaussNewton.cpp:60
#9  0x00007ffff7ba3d6f in LieGaussNewton::minimize (this=0x2393070, F=..., T0=...) at /home/fjy/code/offline/suma_ws/src/SuMa/src/core/LieGaussNewton.cpp:30
#10 0x00007ffff7b73c1b in SurfelMapping::updatePose (this=this@entry=0x1396890) at /home/fjy/code/offline/suma_ws/src/SuMa/src/core/SurfelMapping.cpp:396
#11 0x00007ffff7b77e27 in SurfelMapping::processScan (this=0x1396890, scan=...) at /home/fjy/code/offline/suma_ws/src/SuMa/src/core/SurfelMapping.cpp:191
#12 0x0000000000478610 in VisualizerWindow::setScan (this=0x7fffffffcbf0, idx=<optimized out>) at /home/fjy/code/offline/suma_ws/src/SuMa/src/visualizer/VisualizerWindow.cpp:728
#13 0x00007ffff4b93d2a in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff57f285e in QAbstractSlider::valueChanged(int) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff55586ed in QAbstractSlider::setValue(int) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00000000004721a6 in VisualizerWindow::nextScan (this=0x7fffffffcbf0) at /home/fjy/code/offline/suma_ws/src/SuMa/src/visualizer/VisualizerWindow.cpp:609
#17 0x00007ffff4b93d2a in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007ffff4ba05c8 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff4b94bb3 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff545805c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff545d516 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff4b6538b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff4bba5ed in QTimerInfoList::activateTimers() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff4bbaaf1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007fffed192197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fffed1923f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fffed19249c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff4bbb7cf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007ffff4b62b4a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007ffff4b6abec in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x000000000042d25e in main (argc=1, argv=0x7fffffffd498) at /home/fjy/code/offline/suma_ws/src/SuMa/src/visualizer/visualizer.cpp:41

error occur in core/Frame2Model.cpp fbo_blend_.bind();

before fbo_blend_.bind()

fbo_blend_.attach(FramebufferAttachment::COLOR0, JtJJtf_blend_);
return fbo_blend_.valid() is false
and
fbo_blend_.attach(FramebufferAttachment::DEPTH_STENCIL, rbo2);
return fbo_blend_.valid() is also false

and how can solve

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.