I have just gotten our SolidWorks assembly of a custom robotic arm converted into URDF format and its joint states are successfully being updated in rviz. The issue I am currently having is an odd transparency issue where certain joint meshes are being displayed over other joint meshes when they shouldn't. Its difficult to see details of the 3d model because of this overlapping display issue. An example screenshot from rviz is below, where the left orange part should be half hidden by the grey linkage in front of it:
I have the materials with opacity of 1 like so:
<material name="Black"> <color rgba="0.0 0.0 0.0 1.0"/> </material> <material name="Grey"> <color rgba="0.2 0.2 0.2 1.0"/> </material> etc...
And geometry defined as:
<geometry> <mesh filename="../cad/arm_assemblies/stl/shoulder_pitch_link.STL" scale=".001 .001 .001" /> </geometry>
The meshes are SolidWorks stl files. I know there have been many issues with stl file binary format being wrong, but I don't think that is the issue since as you see it mostly displays correctly. Perhaps the bug was fixed in the latest version of SolidWorks. I tried converting to .dae collada format using MeshLab on Windows but those files did not display correctly in rviz at all.
Any suggestions?
Update 1/16/11: I am still having issues with rviz displaying my robot model correctly on an Ubuntu PC. However, using the exact same code/urdf/configuration on an Ubuntu Virtual Machine (VirtualBox) running on a Mac, the model is being displayed correctly with correct transparencies. I just have to use "export OGRE_RTT_MODE=Copy" in the terminal. Using that on the PC does not work.
The main difference that I can see then is the glx vendor/driver. You can see this info by running "glxinfo".
In the working virutal machine I get this data:
name of display: :0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: Chromium
server glx version string: 1.3 Chromium
server glx extensions:
GLX_ARB_multisample, GLX_EXT_texture_from_pixmap, GLX_SGIX_fbconfig,
GLX_ARB_get_proc_address
client glx vendor string: Chromium
client glx version string: 1.3 Chromium
client glx extensions:
GLX_ARB_multisample, GLX_EXT_texture_from_pixmap, GLX_SGIX_fbconfig,
GLX_ARB_get_proc_address
GLX version: 1.3
GLX extensions:
GLX_ARB_multisample, GLX_EXT_texture_from_pixmap, GLX_SGIX_fbconfig,
GLX_ARB_get_proc_address
OpenGL vendor string: Humper
OpenGL renderer string: Chromium
OpenGL version string: 2.1 Chromium 1.9
OpenGL shading language version string: 1.20
OpenGL extensions:
In the non-working Ubuntu PC:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_MESA_copy_sub_buffer, GLX_INTEL_swap_event
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
GLX_INTEL_swap_event
GLX version: 1.4
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_INTEL_swap_event
OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 2.1 Mesa 7.10.2
OpenGL shading language version string: 1.20
OpenGL extensions:
Originally posted by Dave Coleman on ROS Answers with karma: 1396 on 2011-12-19
Post score: 0
Original comments
Comment by Dave Coleman on 2012-01-20:
The Ubuntu PC is using an NVIDIA card. I have not tried installing proprietary drivers, I'll do so now.
Comment by ahendrix on 2012-01-16:
I notice that you're using the software renderer on your Ubuntu machine. What graphics hardware do you have? Have you tried installing the proprietary drivers?