ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Linking error between UR10e and Robotiq 3-fingers gripper

asked 2021-06-30 09:17:26 -0500

nndei gravatar image

Dear All,

I have been trying to create a URDF file for a collaborative arm (the Universal Robots UR10e) with a Robotiq gripper (the 3-fingers one).

I have downloaded the packages of Universal Robots here and Robotiq here.

I have also followed this guide on ROS wiki for installing dependencies for that Robotiq package.

I have, as per usual, git cloned the packages inside a folder called src located in ~/catkin_ws/. I have then ran catkin_make when in catkin_ws directory. I can play with the launch files of the UR and Robotiq packages without issues.

I am trying to create a custom URDF file inside of a package I made myself called cobot, which is located in the ~/catkin_ws/src/ directory with the other two packages. I have created it using catkin_create_pkg in the terminal. I have also created another package inside of cobot, called cobot_description (all these packages have been built too and I have sourced the setup.bash). Here I have made a urdf folder in which I have created a file with the following code:

<?xml version="1.0"?>
<robot xmlns:xacro="http://wiki.ros.org/xacro" name="ur10e_robotiq">

  <!-- common stuff -->
  <xacro:include filename="$(find ur_e_description)/urdf/common.gazebo.xacro" />

  <!-- include macros for UR10e and Robotiq 3f hand -->
  <xacro:include filename="$(find ur_e_description)/urdf/ur10e_robot.urdf.xacro" />
  <xacro:include filename="$(find robotiq_3f_gripper_visualization)/cfg/robotiq-3f-gripper_articulated_macro.xacro" />

  <!-- create the robot + eef combo itself as a macro -->
  <xacro:macro name="ur10e_with_robotiq" params="prefix">

    <!-- instantiate UR10e and Robotiq 3f hand -->
    <xacro:ur10e_robot prefix="${prefix}robot_" joint_limited="false"/>
    <xacro:robotiq-3f-gripper_articulated prefix="${prefix}gripper_" />

    <!-- attach gripper to UR10e -->
    <joint name="${prefix}ee_link-${prefix}robotiq_3f_base_link" type="fixed">
      <origin xyz="0 0 0" rpy="0 0 0" />
      <parent link="${prefix}ee_link" />
      <child link="${prefix}palm" />
    </joint>
  </xacro:macro>

<xacro:ur10e_with_robotiq prefix=""/>

</robot>

Following the ROS answers thread and ROS wiki guide.

As the code tells, I am including two macros from the packages of UR and Robotiq and trying to connect the Robotiq hand to the end effector of the UR: parent link="${prefix}ee_link". However, when visualizing the URDF through Visual Studio's ROS extension, using ROS:Preview URDF tool, the UR appears fine in the RViz windows, but the Robotiq hand appears under the UR base, at the origin. Changing the xyz and rpy values in the origin block inside the joint between the end effector and robotiq hand's palm doesn't change anything.

I have checked that inside the macro I call, robotiq-3f-gripper_articulated_macro.xacro the first link is called palm. Also, the end effector link of the UR10e is called ee_link. I have tried changing links here. I have also tried using another xacro from Robotiq's package, although I am sure this is the correct one.

Lastly, I have tried to browse and upload this URDF inside of MoveIt! Setup Assistant, obtaining this ... (more)

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-07-01 02:44:56 -0500

gvdhoorn gravatar image

The problem is likely with the parent link of the joint you use to couple the gripper to the robot.

You instantiate the robot xacro like this:

<xacro:ur10e_robot prefix="${prefix}robot_" joint_limited="false"/>

Note the value for prefix: robot_.

You then specify the following as the parent link:

<parent link="${prefix}ee_link" />

So basically: ee_link.

But the prefix for the robot's xacro:macro was robot_, so there is no ee_link, only robot_ee_link.

The same for the gripper.

You'll probably want to change things to:

<joint name="${prefix}ee_link-${prefix}robotiq_3f_base_link" type="fixed">
  <origin xyz="0 0 0" rpy="0 0 0" />
  <parent link="${prefix}robot_ee_link" />
  <child link="${prefix}gripper_palm" />
</joint>
edit flag offensive delete link more

Comments

Thank you, @gvdhoorn. You are absolutely correct and I am sorry for missing that out.

Hopefully, I will not make the same mistake again.

Best regards

nndei gravatar image nndei  ( 2021-07-01 03:32:46 -0500 )edit

No need to apologise. It's an easy thing to miss.

gvdhoorn gravatar image gvdhoorn  ( 2021-07-01 03:34:52 -0500 )edit

May I add here a question on which link is better suited for connecting the Robotiq gripper? Is my choice of ee_link correct or should I opt for tool0? Online info is contradictory.

nndei gravatar image nndei  ( 2021-07-01 03:53:28 -0500 )edit

It isn't recommended to post follow-up questions as comments under questions with already accepted answers. Visibility of such questions is really low.

It'd be better to post a new question (which refers to your previous one).

gvdhoorn gravatar image gvdhoorn  ( 2021-07-01 04:21:03 -0500 )edit

Question Tools

3 followers

Stats

Asked: 2021-06-30 09:17:26 -0500

Seen: 406 times

Last updated: Jul 01 '21