Closed LiShuaixin closed 4 years ago
Since SuMa uses OpenGL for computation, you always need a opengl context in the same (!) thread. Updates and everything must also happen in this thread.
With ROS you have to take into account that nodes might not run on the same thread.
See for instance glow::X11OffscreenContext
for a headless/windowless context.
But with this you still need a X server running. A true X free context you could get with EGL.
Thanks a lot!
Hi, @jbehley Do you think it's possible to use ros rviz to create a opengl context for SuMa?
If you manage to run it in the same thread, then it could work. But I never tried this. So no guarantees.
@LiShuaixin Were you able to use rviz with suma?
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 classSuMaRosWarper
with a member ofstd::shared_ptr<SurfelMapping> fusion_
, then created astd::shared_ptr<SurfelMapping>
pointer to initialize it. However, a segment fault was thrown in the construction ofSurfelMapping
. I backtraced the code and found the error occurred when calledglGenBuffers(1, &id_);
:BUT I can run your qt version smoothly. What's wrong with this? any suggestion?