Gazebo projectors only work on links connected with revolute joints? [closed]

I have a work-around for some very unexpected behavior with using projectors in Gazebo, I'm posting some findings here so searches can find it before probably creating a bug report.

So far what is working mostly reliably is to place a projector on a link that is connected via a revolute joint to another link. Aiming the projector is accomplished by adjusting the joint xyz rpy, not the projector pose. The link needs to have inertial properties.

This is the expected output for a projector pointing at the horizon:

If the joint is fixed, it can cause the projected texture to disappear, or work in a glitchy way. If projector pose is adjusted it either has no effect at all, or produces glitchy output like seen below:

This is another case where sections of the image are projected backwards (the small version of the texture is a projector hooked up to the 'head' link of the robot, since it is attached to base_link by a fixed joint I can't aim it at all with the projector pose):

This is part of an investigation that also led to http://answers.gazebosim.org/question... and http://answers.gazebosim.org/question... (the latter is maybe partially solved though I need to document it). I thought I'd try out the ros site for this one since those two haven't generated any responses.

There is an example robot in https://github.com/lucasw/testbot that demonstrates most of the behavior, roslaunch testbot_gazebo testbot_gazebo.launch should bring it up.

edit retag reopen merge delete