Ask Your Question
3

rviz in ROS electric

asked 2011-09-07 22:15:19 -0600

Reza gravatar image

Hi, I have recently installed ROS electric and found out that rviz comes with following error:

NODES
  /
    rviz (rviz/rviz)

ROS_MASTER_URI=http://192.168.0.101:11311

core service [/rosout] found
process[rviz-1]: started with pid [2976]
[ERROR] [1315474799.086848538]: Caught exception while loading: OGRE EXCEPTION(7:InternalErrorException): Cannot create GL vertex buffer in GLHardwareVertexBuffer::GLHardwareVertexBuffer at /tmp/buildd/ros-electric-visualization-common-1.6.0/debian/ros-electric-visualization-common/opt/ros/electric/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/RenderSystems/GL/src/OgreGLHardwareVertexBuffer.cpp (line 46)
^C[rviz-1] killing on exit
[rviz-1] escalating to SIGTERM
[rviz-1] escalating to SIGKILL
Shutdown errors:
 * process[rviz-1, pid 2976]: required SIGKILL. May still be running.
shutting down processing monitor...
... shutting down processing monitor complete
done

I wonder if anyone knows what is the problem.

edit retag flag offensive close merge delete

Comments

The same happens to me
martimorta gravatar imagemartimorta ( 2011-09-08 01:46:19 -0600 )edit
To help you, we need a lot more information. What graphics hardware do you have? What OS version? X server settings? ROS installed from binary or source? Etc.?
joq gravatar imagejoq ( 2011-09-08 02:40:39 -0600 )edit
I have Ubuntu 10.04, graphics card: nVidia Corporation G92 [GeForce 9800 GT], ros installed from .deb (synaptic). Furthermore, rviz has worked fine in cturtle and diamondback.
martimorta gravatar imagemartimorta ( 2011-09-11 21:23:17 -0600 )edit

8 Answers

Sort by » oldest newest most voted
4

answered 2011-09-12 08:24:14 -0600

hersh gravatar image

We need more information. Can you please run rviz with the "-l" option to generate an Ogre.log file? Like:

rosrun rviz rviz -l

This will cause rviz to generate an Ogre.log file. When the Ogre 3D library has problems, it puts most of its useful output in Ogre.log (but only if you run with -l).

Also, see the rviz troubleshooting page for info on some common issues and a guide to making useful bug reports.

edit flag offensive delete link more
6

answered 2011-09-14 10:35:56 -0600

hersh gravatar image

So far I have found 2 ways to get this failure:

  • Run rviz remotely

Running rviz remotely is not supported.

  • Have a misconfigured nvidia-OpenGL setup.

Having a misconfigured nvidia-OpenGL setup seems pretty easy. I ran into that myself while trying to duplicate this error by reverting to an old driver version. This page was the seed that got me started on the fix. Ultimately my problem was that rviz was linking against a version of libGL.so that did not match the driver.

I saw this by running

glxinfo | grep version

and seeing

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL version string: 3.3.0 NVIDIA 270.41.06
OpenGL shading language version string: 3.30 NVIDIA via Cg compiler

So my installed OpenGL NVIDIA driver was version 270.41.06.

when i ran

roscd rviz
ldd bin/rviz | grep libGL

I saw this:

libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f344c19e000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00007f344bf2c000)
libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x00007f34439dc000)

and then I ran

ls -l /usr/lib/libGL.so.1

and saw

lrwxrwxrwx 1 root root       18 2011-09-14 09:59 libGL.so.1 -> libGL.so.195.36.24

In other words, rviz was linking against a libGL from NVIDIA version 195.36.24.

To fix it, I just removed the offending library files:

sudo rm /usr/lib/libGL.so
sudo rm /usr/lib/libGL.so.1
sudo rm /usr/lib/libGL.so.195.36.24

The correct library files were already installed in the /usr/lib/nvidia-current directory, and they were automatically found when I ran rviz again.

edit flag offensive delete link more

Comments

:_) Worked great! thanks!!
martimorta gravatar imagemartimorta ( 2011-09-14 20:06:54 -0600 )edit
It worked. Great!
Pablo Iñigo Blasco gravatar imagePablo Iñigo Blasco ( 2011-09-14 22:45:23 -0600 )edit
many thanks, it worked.
Reza gravatar imageReza ( 2011-09-15 19:37:36 -0600 )edit
1

answered 2011-12-03 06:10:17 -0600

jbarry gravatar image

I don't know if it helps at this late date, but I just encountered this problem. RViz worked in diamondback, but I got the segmentation fault in electric. For me, first setting the OGRE_RTT_MODE to Copy as described here:

http://www.ros.org/wiki/rviz/Troubleshooting#Segfault_during_startup

and then removing my .rviz directory worked. Note that neither one worked on their own, I had to do both to get it to start.

edit flag offensive delete link more
0

answered 2011-09-13 21:45:50 -0600

This is the information I've got after checking the rviz/Troubleshooting wiki page. I'd like to add that now I've got diamondback and electric.

If I am using diamondback rviz works fine, It's only with electric when I have the problems.

Thanks in advance

edit flag offensive delete link more

Comments

I have the same problem, look forward to finding solution, thanks.
Reza gravatar imageReza ( 2011-09-13 23:19:39 -0600 )edit
0

answered 2011-09-08 20:58:54 -0600

Hi, I have the same problem.

I have tried to uninstall the other ros versions (cturtle, diamondback), uninstall rviz completely and install it again and I haven't got any good result.

Any idea about this? I attach the output here:

$ rosrun rviz rviz 
[ INFO] [1315558395.641745111]: rviz revision number exported
[ INFO] [1315558395.641818514]: ogre_tools revision number exported
[ INFO] [1315558395.641840863]: compiled against OGRE version 1.7.1 (Cthugha)
[ INFO] [1315558395.987607781]: Loading general config from [/home/mmorta/.rviz/config]
[ INFO] [1315558395.993459295]: Loading display config from [/home/mmorta/.rviz/display_config]
[ INFO] [1315558396.080778011]: RTT Preferred Mode is PBuffer.
[ERROR] [1315558396.188419835]: Caught exception while loading: OGRE EXCEPTION(7:InternalErrorException): Cannot create GL vertex buffer in GLHardwareVertexBuffer::GLHardwareVertexBuffer at /tmp/buildd/ros-electric-visualization-common-1.6.0/debian/ros-electric-visualization-common/opt/ros/electric/stacks/visualization_common/ogre/build/ogre_src_v1-7-1/RenderSystems/GL/src/OgreGLHardwareVertexBuffer.cpp (line 46)
Segmentation fault
edit flag offensive delete link more
0

answered 2011-09-07 22:22:37 -0600

Ugo gravatar image

It may not be the same problem, but have you tried reinstalling the nvidia-cg-toolkit?

nvidia-cg-toolkit-installer --install

(as seen on this thread)

edit flag offensive delete link more

Comments

Which thread?
Mac gravatar imageMac ( 2011-09-08 10:13:14 -0600 )edit
Ugo gravatar imageUgo ( 2011-09-08 20:14:53 -0600 )edit
0

answered 2012-02-03 05:14:29 -0600

hersh gravatar image

These crashes on startup have been very difficult to track down.

My latest progress is that I've found that using the --sync option for the Electric version of rviz makes it work about 80% of the time for an affected computer I have (the Asus EEE PC laptop which came with my TurtleBot). Whatever the problem is, it only happens on startup. If rviz starts, it continues to run fine.

So, try this (on Electric):

rosrun rviz rviz --sync

If you are using the Unstable or Fuerte versions you only need one dash:

rosrun rviz rviz -sync
edit flag offensive delete link more
0

answered 2012-02-03 04:40:02 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hello, I've got the same error when starting the rviz, I've tried the suggestion of removing the GL files, but no way. I had to replace again, the it fails much sooner searching for these libs. Maybe I should install some GL driver, I do not know.....

Help will be really appreciatted.

The program 'rviz' received an X Window System error. This probably reflects a bug in the program. The error was 'BadDrawable (invalid Pixmap or Window parameter)'. (Details: serial 22 error_code 9 request_code 136 minor_code 3) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.)

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2011-09-07 22:15:19 -0600

Seen: 4,882 times

Last updated: Feb 03 '12