The main problem with this revolute joint is that some ROS packages we are using make use of the URDF file of the robot and due to this problem with the tf, these packages don't work properly.
Regarding the collisions, I have not found any strange behaviour.
could you provide us some more details to trace down the error? E.g. log-files (preferably debug level) or a description of the situation when it happend?
How big was this "jump"? It could be related to a feature that resets the workpiece to a random position in case of a collision (including robot-workpiece collisions!) In this case, the target_frame is also reset to rivet_home - did this happen?
In my case, those jumps happen even when the robot is far from the workpiece and stopped (I am planning the path for example). The /target_frame does not change.
The previous comment may point to the right direction, the jump is similar to the ones which happen when some object/element is instantiated in Gazebo.
Is there expected to solve the problem with the tool_link_c definition? (it is revolute instead of fixed)
Your solution of the transform publisher solves the issue of the error in robot model in Rviz but this kind of definition of the robot causes inconveniences with packages like MoveIt!.
Another solution would be to publish the joint with a libgazebo_ros_joint_state_publisher. This however means two alternating joint state messages, which in turn makes a lot of other things rather inconvenient