moveit / moveit_tutorials

A sphinx-based centralized documentation repo for MoveIt
https://moveit.github.io/moveit_tutorials/
BSD 3-Clause "New" or "Revised" License
469 stars 690 forks source link

Can't see Panda Robot model in RViz #720

Open gdubuque opened 2 years ago

gdubuque commented 2 years ago

Description

Similar to issue #155 with RViz2, but using RViz and ROS Noetic.

Following the MoveIt Quickstart in RViz tutorial, but the Panda visual model does not appear in RViz. And like the other issue, the collision model can be seen, but not the robot's mesh.

Your environment

Steps to reproduce

Followed the MoveIt Quickstart in RViz tutorial. Launched the demo with or without rviz_tutorial:=true: roslaunch panda_moveit_config demo.launch rviz_tutorial:=true roslaunch panda_moveit_config demo.launch

After adding the Motion Planning Plugin, and ensuring the Show Robot Visual boxes are checked.

Expected behaviour

The beautiful Panda robot model in all its glory should be seen in RViz.

:(

welcome[bot] commented 2 years ago

Thanks for reporting an issue. Because we're a volunteer community, providing a pull request with suggested changes is always welcomed.

rhaschke commented 2 years ago

This is an WSLg issue: https://github.com/microsoft/wslg/issues/744. Try to use software rendering: LIBGL_ALWAYS_SOFTWARE=true

MightyMirko commented 2 years ago

This is an WSLg issue: microsoft/wslg#744. Try to use software rendering: LIBGL_ALWAYS_SOFTWARE=true

I got the same issue but having it virtualized as a vm on proxmox server without gpu passthrough. Your suggestion wasn't the solution :( ubu2004 ros2 galactic

rhaschke commented 2 years ago

@MightyMirko, figure out how to render OpenGL stuff in general with your VM.

MightyMirko commented 2 years ago

@rhaschke It should work - glxgears and co. are running good

rhaschke commented 2 years ago

Maybe, it's the locale problem: https://github.com/ros-visualization/rviz/issues/1151#issuecomment-345726355?

MightyMirko commented 2 years ago

Uff ... wow - it worked :D

rhaschke commented 2 years ago

So, you need the locale setting? I just tried with a non-default locale and it still worked for me.

MightyMirko commented 2 years ago

Hmm i also installed some spice libraries for a problem with virtviewer.. i'll uninstall them and try again

sudo apt install 
mesa-utils
xserver-xorg-video-qxl
xserver-xspice
spice-vdagent

grafik

MightyMirko commented 2 years ago

yupp... if i set
export LC_NUMERIC="de_DE.UTF-8"

it does not show any panda anymore.

It works with rdp and also with ssh -X

EDIT: Found the corresponding line which only appears with de_DE.. rviz2-1] [ERROR] [1662547064.760901552] [moveit_background_processing.background_processing]: Exception caught while processing action 'loadRobotModel': parameter 'panda_arm.kinematics_solver_timeout' has invalid type: Wrong parameter type, parameter {panda_arm.kinematics_solver_timeout} is of type {double}, setting it to {string} is not allowed.

rhaschke commented 2 years ago

These libs shouldn't affect rviz.

If I set export LC_NUMERIC="de_DE.UTF-8" it does not show any panda anymore.

It does work for me! Which version of urdfdom do you use?

> dpkg -l | grep liburdf
ii  liburdfdom-dev:amd64                                       1.0.4+ds-2                                    amd64        URDF DOM - development files
ii  liburdfdom-headers-dev                                     1.0.4-1                                       amd64        URDF DOM - header files
MightyMirko commented 2 years ago

mirko@s25v-ubu2004-ros2-gui:~/move_ws$ dpkg -l | grep liburdf
ii  liburdfdom-dev:amd64                                1.0.4+ds-2                                    amd64        URDF DOM - development files
ii  liburdfdom-headers-dev                              1.0.4-1                                       amd64        URDF DOM - header files
ii  liburdfdom-model:amd64                              1.0.4+ds-2                                    amd64        URDF DOM - model library
ii  liburdfdom-model-state:amd64                        1.0.4+ds-2                                    amd64        URDF DOM - model state library
ii  liburdfdom-sensor:amd64                             1.0.4+ds-2                                    amd64        URDF DOM - sensor library
ii  liburdfdom-world:amd64                              1.0.4+ds-2    
MightyMirko commented 2 years ago

to clarify - i am on moveit2

rhaschke commented 2 years ago

Please file your issue then over at https://github.com/ros-planning/moveit2_tutorials or https://github.com/ros2/rviz, depending on whether you also don't see the standard rviz RobotModel.

GBW48 commented 1 year ago

I found an answer to the "Can't see Panda Robot model in RViz" problem. I'm currently running the following:

In addition here is version specific information related to the CUDA, and Mesa graphics environment:

Nvidia-smi

Glxinfo | grep “OpenGL version”

What follows is a verified solution. After the fix, When I run “roslaunch panda_moveit_config demo.launch rviz_tutorial:=true”, I can now see the Panda arm.

After additional research, I found the following post in ROS Answers: robot-meshes-not-visible-in-rviz-windows11-wsl2

In the post user “adrgru” makes the following comment: “Hi, I am using ROS Noetic on Ubuntu 20.04 Windows11 WSL2. When I try to load my robot into rviz or into the MoveIt setup, no meshes are visible. I don't get any errors at all. Here is a picture of rviz( you can only see the two boxes which are the gripper pads):” gripper pads after which it worked as expected, though I did get a lot of warnings regarding the URDF collision defaults.”

Later in the post, user “Sayaki” makes the following observation: “I faced the same issue ( running Noetic + Win11 + WSL2 ). It turns out the problem is with OpenGL. It was using version 3.1. I used a VM to confirm that OpenGL was the culprit, and after updating my mesa-utils by using the instructions given here: Can wsl2 support a higher version of OpenGL? after which it worked as expected, though I did get a lot of warnings regarding the URDF collision defaults.”

With this information and the fact that I was using OpenGl 3.1, I tried following the mesa-utils upgrade instructions, but after two upgrade attempts, I was still using OpenGL 3.1 and Mesa 21.2.6. Not to be deterred, I found another post: How to Install Mesa Drivers on Ubuntu which discussed how to “Install the latest stable version of Mesa driver in Ubuntu [Latest point release] “.

I used the “Kisak-mesa PPA” repository for the latest point release of Mesa and ran the following terminal commands:

I then checked the OpenGL and Mesa versions using the glxinfo | grep "OpenGL version" command and got the following results:

Since my OpenGL version was now at 4.2, I decided to run “roslaunch panda_moveit_config demo.launch rviz_tutorial:=true”. When RViz opened and I added MotionPlanning to the Display, I saw the Panda arm (when the Planning Group was set to “panda_arm”): panda_arm

When the Planning Group was set to “panda_manipulator”, I saw the Panda manipulator. panda manipulator. panda_manipulator

v-xchen-v commented 5 months ago

try export LIBGL_ALWAYS_SOFTWARE=true

DingYoWu commented 2 months ago

export LIBGL_ALWAYS_SOFTWARE=true

This command works successfully! Thanks! Before that, my robot model also can't show correctly ,but it can show the scene of robot collision area , after using this command , I can now see my panda robot model