raulmur / ORB_SLAM2

Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities
Other
9.5k stars 4.71k forks source link

Pangolin x11: unable to retrieve framebuffer options #617

Open xuwh15 opened 6 years ago

xuwh15 commented 6 years ago

@raulmur I am trying to run the ORB-SLAM2 code with TUM dataset on a ubuntu 16.04 google cloud VM. While performing this command: ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml PATH_TO_SEQUENCE_FOLDER I got this error: image I tried to fix it according to stevenlovegrove/Pangolin#74 (comment) but the new Pangolin version has no GLX_SAMPLE_BUFFERS and GLX_SAMPLES defined in the code now. So how can I solve my problem now?

mromanelli9 commented 6 years ago

I followed the procedure described here https://github.com/stevenlovegrove/Pangolin/issues/260#issuecomment-386968496 and it worked.

dnwls commented 5 years ago

https://woojjang.tistory.com/52

catproof commented 3 years ago

how do people find solutions to these problems? It kind of blows my mind... what tools would I use for debugging Pangolin?

catproof commented 3 years ago

also, after I make changed to Pangolin, do I just go into my Pangolin build directory and type:

cmake .. cmake --build .

or do I have to delete something first?... Do i have to rebuild Orb Slam as well?

codieboomboom commented 3 years ago

@NickPerezCarletonUniversity Since Pangolin is a depedency of ORB-SLAM, it is safe to rebuild ORB-SLAM2 as well. Meaning you will have to build the modified Pangolin, then run the build.sh script again for ORB-SLAM2

For my case, where I was cross-compiling Pangolin for an embedded platform, I quickly learnt that the graphic libraries are really a pain to deal with and just decide to switch off Pangolin usage from the orb-slam2 itself. If you are working towards ORB-SLAM2 on ROS, i suggest finding some wrapper repository on the internet that can allow you to stream the trajectory to a trajectory server, such as hector-trajectory-server and then use RVIZ to visualize it. The default usage of Pangolin might be quite inflexible in my opinion.

You can check out this wrapper for ORB-SLAM3 which is pretty neat, pretty sure there has been some similar work with ORB-SLAM2 as well

catproof commented 3 years ago

@xuwh15 Applications on Linux using OpenGL won't work over remote desktop. It is apparently a well known problem. I haven't found any solutions to it.

catproof commented 3 years ago

@AnhTuDo1998 do you have a repository you can upload showing your changes? and also a brief tutorial on how to set it up? I see I am not the only one who has to navigate around using Pangolin. did you try that orb-slam3 ROS wrapper? I wonder if it is buggy at all... I've noticed people have mentioned a few bugs in the main Orb-Slam3 repo.

zoldaten commented 2 years ago

nano ~/Pangolin/components/pango_windowing/src/display_x11.cpp correct as in https://woojjang.tistory.com/52 pointed out (right spelling below): GLXFBConfig* fbc = glXGetFBConfigs(display, DefaultScreen(display), &fbcount); and //throw std::runtime_error("Pangolin X11: Invalid GLX version. Require GLX >= 1.3");

no need GLX_SAMPLE_BUFFERS change. rebuild ONLY Pangolin not ORB_SLAM:

cmake -B build -GNinja
cmake --build build