URDF transform to world fails

Hey everyone,

I am working on a project where i connect a robotiq 85 2f gripper to a ur10. I did this by making an urdf (xacro) file that describes my toplevel system. In the urdf I include the UR10 and gripper urdf. Then i link them together as follows:

  <joint name="gripper_joint" type="fixed">
<origin xyz="0.0 -0.01 0.03" rpy="1.5706 -1.5706 0.0" />
</joint>


When i launch the launch file which uploads this urdf to param server and launches rviz it gets weird.

If i click my robot model it says: "No transform from [robotiq_85_left_finger_link] to [world]" for all the links. How can i fix this?

I noticed that if i make a static_transform_publish node where i connect the link tf's to the parents tf's it would work, but this is not the right way to do it is it?

Some general info:

ubuntu 16.04

ros kinetic

RViz version 1.12.17 (kinetic). Compiled against Qt version 5.5.1. Compiled against OGRE version 1.9.0 (Ghadamon)

Kind regards Jan Tromp.

edit retag close merge delete

Sort by » oldest newest most voted

Update: I have found a workaroud for the problem. I found out the problem was being caused by something going wrong in the grippers' finger joints. I still haven't figured out what is exactly the problem but for my application the following work-around is enough for me:

I changed the gripper file and made all the joints fixed, then linked the gripper base to the sensor like this:

  <joint name="gripper_joint" type="fixed">
<origin xyz="0.0 -0.01 0.03" rpy="1.5706 -1.5706 0.0" />
</joint>


Then everything worked fine. Note that this will make it so that the gripper cannot close anymore!

Kind regards, Jan Tromp

more

1

Likely cause is that there are no JointState msgs published that contain the gripper's joints. That would result in no transforms published for those frames, leading to the error you showed.

( 2019-05-07 03:17:07 -0500 )edit

Seems logic, but when I launch the launch file provided with the package, which uploads just the gripper connected to the world URDF, it does show properly. No big deal though, i found a solution which will work for me. And thanks for your response

( 2019-05-08 00:45:57 -0500 )edit

when I launch the launch file provided with the package, which uploads just the gripper connected to the world URDF, it does show properly.

Which launch file? If that includes a joint_state_publisher, then that would again make sense, as a joint_state_publisher will publish "fake" joint states for all joints in your urdf.

( 2019-05-08 03:28:53 -0500 )edit

Yes it does, It uploads the URDF, starts joint_state_published node, starts robot_state_publisher node and starts rviz node so in the end it does make sense :p Thanks for your response!

( 2019-05-09 02:24:02 -0500 )edit

Perhaps you can update your answer, as what you posted is not actually an answer, but more of a work-around. If you don't care about the actual state of the gripper (ie: fingers) then changing all joints to be a fixed type is fine of course, but it seems like a rather large limitation to me, as your model will now not correspond to the real world.

( 2019-05-09 05:00:29 -0500 )edit