MRPT / mrpt

:zap: The Mobile Robot Programming Toolkit (MRPT)
https://docs.mrpt.org/reference/latest/
BSD 3-Clause "New" or "Revised" License
1.94k stars 630 forks source link

ICP Slam live view is blank over X11 server #825

Open andrewda opened 6 years ago

andrewda commented 6 years ago

Hi there!

Whenever I attempt to connect to my robot (a Jetson TX1 mounted on a roomba with a lidar) over X11 with MobaXterm, I get a strange blank window. When running with an HDMI monitor connected to the Jetson the map shows up fine. Not sure what the issue is here. Does anyone have any experience with anything similar? How do you all view your SLAM maps remotely?

blank

andrewda commented 6 years ago

A similar issue occurs when trying to use SceneViewer3D over X11, after having the following errors pop up:

nvidia@tegra-ubuntu:~/Desktop/dunk/build$ SceneViewer3D LOG_ICP-SLAM/buildingmap_04550.3Dscene
08:55:46: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1009,wx containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1011,wx containers,compatible with 2.8).
../src/gtk/window.cpp(2963): assert "(m_widget != __null)" failed in DoGetClientSize(): invalid window
../src/gtk/window.cpp(2831): assert "m_widget" failed in DoSetSize(): invalid window
../src/gtk/window.cpp(2831): assert "m_widget" failed in DoSetSize(): invalid window

The errors seem unrelated, but at least worth mentioning just in case. Again, running the same command physically on the device works perfectly.

blank

jlblancoc commented 6 years ago

Thanks for reporting!

I'm not sure about this one (I think I have only tested X11 from another Ubuntu machine, not cross OS), but it might be a limitation of the X client on Windows? Just my wild guess without much further research.

One solution, which has been used in some products (not in the released code for MRPT, though) is to render the map to images and send the images for displaying. One could even render the full 3D scene with mrpt::opengl::CFBORender.

Sorry, I don't know any better solution...

andrewda commented 6 years ago

I'll take a go at it with a MacBook and see if that solves it. Otherwise the approach you suggested seems like the best solution.

andrewda commented 6 years ago

Tested on OSX and same issues seem to be occurring. For now I'll render the image and setup a web server to host it, but it would be awesome to be able to use the GUI. I'll keep investigating and see if I can find anything.

screen shot 2018-09-11 at 8 16 11 pm

jlblancoc commented 5 years ago

Not sure it's related to Mac, but just in case: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900678

It seems one has to set the env var GDK_BACKEND=x11 for OpenGL to work in some cases...