Unity-Technologies / Unity-Robotics-Hub

Central repository for tools, tutorials, resources, and documentation for robotics simulation in Unity.
Apache License 2.0
2.01k stars 414 forks source link

Running into issues with custom URDFs #216

Closed NathanielRose closed 3 years ago

NathanielRose commented 3 years ago

Describe the bug I have created a URDF file in which I use the UR10 with the Robotiq gripper for pick and place. The UR10 alone works fine but once I add the robotiq gripper I receive these .NET failures.

To Reproduce

https://user-images.githubusercontent.com/8294326/117325761-ed99d880-ae88-11eb-8bb8-05d8388a71c6.mp4

Console logs / stack traces

UnassignedReferenceException: The variable ur10 of UR10TrajectoryPlanner has not been assigned.
You probably need to assign the ur10 variable of the UR10TrajectoryPlanner script in the inspector.
UR10TrajectoryPlanner.Awake () (at Assets/Scripts/UR10TrajectoryPlanner.cs:212)

Invalid worldAABB. Object is too large or too far away from the origin.

Invalid AABB a

Assertion failed on expression: 'IsFinite(d)'
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Assertion failed on expression: 'IsFinite(outDistanceForSort)'
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Assertion failed on expression: 'IsFinite(outDistanceAlongView)'
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Invalid AABB aabb
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Invalid AABB aabb
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Invalid AABB aabb

No data available on network stream after 10 attempts.
UnityEngine.Debug:LogError (object)
ROSConnection/<SendServiceMessage>d__21`1<RosMessageTypes.RosTcpEndpoint.UnityHandshakeResponse>:MoveNext () (at Library/PackageCache/com.unity.robotics.ros-tcp-connector@ab45157ad3/Runtime/TcpConnector/ROSConnection.cs:129)
UnityEngine.UnitySynchronizationContext:ExecuteTasks ()

Invalid AABB a
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Invalid AABB a
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Expected behavior Move UR10 with Gripper with keyboard freely without being dismounted.

Screenshots If applicable, add screenshots or videos to help explain your problem.

Environment (please complete the following information, where applicable):

Additional context Add any other context about the problem here.

at669 commented 3 years ago

Hi @NathanielRose, thanks for reporting this issue! Could you provide the following information to help us debug:

Additionally, this appears to be similar to Invalid AABB a erros when running #11, where internal collisions may be causing some unexpected physics issues. Please check out the comment thread there and let us know if it helps!

[ticket# AIRO-684]

NathanielRose commented 3 years ago

Hi @at669

Here is the URDF:

<?xml version="1.0" encoding="utf-8"?>
<!-- =================================================================================== -->
<!-- |    This document was autogenerated by xacro from ur10_robot.urdf.xacro          | -->
<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->
<!-- =================================================================================== -->
<robot name="ur10_with_gripper">
  <gazebo>
    <plugin filename="libgazebo_ros_control.so" name="ros_control">
      <!--robotNamespace>/</robotNamespace-->
      <!--robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType-->
    </plugin>
    <!--
    <plugin name="gazebo_ros_power_monitor_controller" filename="libgazebo_ros_power_monitor.so">
      <alwaysOn>true</alwaysOn>
      <updateRate>1.0</updateRate>
      <timeout>5</timeout>
      <powerStateTopic>power_state</powerStateTopic>
      <powerStateRate>10.0</powerStateRate>
      <fullChargeCapacity>87.78</fullChargeCapacity>     
      <dischargeRate>-474</dischargeRate>
      <chargeRate>525</chargeRate>
      <dischargeVoltage>15.52</dischargeVoltage>
      <chargeVoltage>16.41</chargeVoltage>
    </plugin>
-->
  </gazebo>
  <!--
  Contributers: Jimmy Da Silva, Felix Messmer
-->
  <joint name="measurement_tool_joint" type="fixed">
    <!-- The parent link must be read from the robot model it is attached to. -->
    <parent link="tool0"/>
    <child link="robotiq_arg2f_base_link"/>
    <!-- The tool is directly attached to the flange. -->
    <origin rpy="0 0 1.57" xyz="0 0 0"/>
  </joint>
  <link name="robotiq_arg2f_base_link">
    <inertial>
      <origin rpy="0 0 0" xyz="8.625E-08 -4.6583E-06 0.03145"/>
      <mass value="0.22652"/>
      <inertia ixx="0.00020005" ixy="-4.2442E-10" ixz="-2.9069E-10" iyy="0.00017832" iyz="-3.4402E-08" izz="0.00013478"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/visual/robotiq_arg2f_base_link.stl"/>
      </geometry>
      <material name="">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/collision/robotiq_arg2f_base_link.stl"/>
      </geometry>
    </collision>
  </link>
  <link name="left_outer_knuckle">
    <inertial>
      <origin rpy="0 0 0" xyz="-0.000200000000003065 0.0199435877845359 0.0292245259211331"/>
      <mass value="0.00853198276973456"/>
      <inertia ixx="2.89328108496468E-06" ixy="-1.57935047237397E-19" ixz="-1.93980378593255E-19" iyy="1.86719750325683E-06" iyz="-1.21858577871576E-06" izz="1.21905238907251E-06"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/visual/robotiq_arg2f_140_outer_knuckle.stl"/>
      </geometry>
      <material name="">
        <color rgba="0.792156862745098 0.819607843137255 0.933333333333333 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/collision/robotiq_arg2f_140_outer_knuckle.stl"/>
      </geometry>
    </collision>
  </link>
  <link name="left_outer_finger">
    <inertial>
      <origin rpy="0 0 0" xyz="0.00030115855001899 0.0373907951953854 -0.0208027427000385"/>
      <mass value="0.022614240507152"/>
      <inertia ixx="1.52518312458174E-05" ixy="9.76583423954399E-10" ixz="-5.43838577022588E-10" iyy="6.17694243867776E-06" iyz="6.78636130740228E-06" izz="1.16494917907219E-05"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/visual/robotiq_arg2f_140_outer_finger.stl"/>
      </geometry>
      <material name="">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/collision/robotiq_arg2f_140_outer_finger.stl"/>
      </geometry>
    </collision>
  </link>
  <link name="left_inner_finger">
    <inertial>
      <origin rpy="0 0 0" xyz="0.000299999999999317 0.0160078233491243 -0.0136945669206257"/>
      <mass value="0.0104003125914103"/>
      <inertia ixx="2.71909453810972E-06" ixy="1.35402465472579E-21" ixz="-7.1817349065269E-22" iyy="7.69100314106116E-07" iyz="6.74715432769696E-07" izz="2.30315190420171E-06"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/visual/robotiq_arg2f_140_inner_finger.stl"/>
      </geometry>
      <material name="">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/collision/robotiq_arg2f_140_inner_finger.stl"/>
      </geometry>
    </collision>
  </link>
  <link name="left_inner_finger_pad">
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <box size="0.027 0.065 0.0075"/>
      </geometry>
      <material name="">
        <color rgba="0.9 0.9 0.9 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <box size="0.03 0.07 0.0075"/>
      </geometry>
      <material name="">
        <color rgba="0.9 0.0 0.0 1"/>
      </material>
    </collision>
  </link>
  <link name="left_inner_knuckle">
    <inertial>
      <origin rpy="0 0 0" xyz="0.000123011831763771 0.0507850843201817 0.00103968640075166"/>
      <mass value="0.0271177346495152"/>
      <inertia ixx="2.61910379223783E-05" ixy="-2.43616858946494E-07" ixz="-6.37789906117123E-09" iyy="2.8270243746167E-06" iyz="-5.37200748039765E-07" izz="2.83695868220296E-05"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/visual/robotiq_arg2f_140_inner_knuckle.stl"/>
      </geometry>
      <material name="">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/collision/robotiq_arg2f_140_inner_knuckle.stl"/>
      </geometry>
    </collision>
  </link>
  <link name="right_outer_knuckle">
    <inertial>
      <origin rpy="0 0 0" xyz="-0.000200000000003065 0.0199435877845359 0.0292245259211331"/>
      <mass value="0.00853198276973456"/>
      <inertia ixx="2.89328108496468E-06" ixy="-1.57935047237397E-19" ixz="-1.93980378593255E-19" iyy="1.86719750325683E-06" iyz="-1.21858577871576E-06" izz="1.21905238907251E-06"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/visual/robotiq_arg2f_140_outer_knuckle.stl"/>
      </geometry>
      <material name="">
        <color rgba="0.792156862745098 0.819607843137255 0.933333333333333 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/collision/robotiq_arg2f_140_outer_knuckle.stl"/>
      </geometry>
    </collision>
  </link>
  <link name="right_outer_finger">
    <inertial>
      <origin rpy="0 0 0" xyz="0.00030115855001899 0.0373907951953854 -0.0208027427000385"/>
      <mass value="0.022614240507152"/>
      <inertia ixx="1.52518312458174E-05" ixy="9.76583423954399E-10" ixz="-5.43838577022588E-10" iyy="6.17694243867776E-06" iyz="6.78636130740228E-06" izz="1.16494917907219E-05"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/visual/robotiq_arg2f_140_outer_finger.stl"/>
      </geometry>
      <material name="">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/collision/robotiq_arg2f_140_outer_finger.stl"/>
      </geometry>
    </collision>
  </link>
  <link name="right_inner_finger">
    <inertial>
      <origin rpy="0 0 0" xyz="0.000299999999999317 0.0160078233491243 -0.0136945669206257"/>
      <mass value="0.0104003125914103"/>
      <inertia ixx="2.71909453810972E-06" ixy="1.35402465472579E-21" ixz="-7.1817349065269E-22" iyy="7.69100314106116E-07" iyz="6.74715432769696E-07" izz="2.30315190420171E-06"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/visual/robotiq_arg2f_140_inner_finger.stl"/>
      </geometry>
      <material name="">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/collision/robotiq_arg2f_140_inner_finger.stl"/>
      </geometry>
    </collision>
  </link>
  <link name="right_inner_finger_pad">
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <box size="0.027 0.065 0.0075"/>
      </geometry>
      <material name="">
        <color rgba="0.9 0.9 0.9 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <box size="0.03 0.07 0.0075"/>
      </geometry>
      <material name="">
        <color rgba="0.9 0.0 0.0 1"/>
      </material>
    </collision>
  </link>
  <link name="right_inner_knuckle">
    <inertial>
      <origin rpy="0 0 0" xyz="0.000123011831763771 0.0507850843201817 0.00103968640075166"/>
      <mass value="0.0271177346495152"/>
      <inertia ixx="2.61910379223783E-05" ixy="-2.43616858946494E-07" ixz="-6.37789906117123E-09" iyy="2.8270243746167E-06" iyz="-5.37200748039765E-07" izz="2.83695868220296E-05"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/visual/robotiq_arg2f_140_inner_knuckle.stl"/>
      </geometry>
      <material name="">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_2f_140_gripper_visualization/meshes/collision/robotiq_arg2f_140_inner_knuckle.stl"/>
      </geometry>
    </collision>
  </link>
  <joint name="finger_joint" type="revolute">
    <origin rpy="2.29579632679 0 0" xyz="0 -0.030601 0.054905"/>
    <parent link="robotiq_arg2f_base_link"/>
    <child link="left_outer_knuckle"/>
    <axis xyz="-1 0 0"/>
    <limit effort="1000" lower="0" upper="0.7" velocity="2.0"/>
  </joint>
  <joint name="left_outer_finger_joint" type="fixed">
    <origin rpy="0 0 0" xyz="0 0.01821998610742 0.0260018192872234"/>
    <parent link="left_outer_knuckle"/>
    <child link="left_outer_finger"/>
    <axis xyz="1 0 0"/>
  </joint>
  <joint name="left_inner_knuckle_joint" type="revolute">
    <origin rpy="2.29579632679 0 0.0" xyz="0 -0.0127 0.06142"/>
    <parent link="robotiq_arg2f_base_link"/>
    <child link="left_inner_knuckle"/>
    <axis xyz="1 0 0"/>
    <limit effort="1000" lower="-0.8757" upper="0.8757" velocity="2.0"/>
    <mimic joint="finger_joint" multiplier="-1" offset="0"/>
  </joint>
  <joint name="left_inner_finger_joint" type="revolute">
    <origin rpy="-0.725 0 0" xyz="0 0.0817554015893473 -0.0282203446692936"/>
    <parent link="left_outer_finger"/>
    <child link="left_inner_finger"/>
    <axis xyz="1 0 0"/>
    <limit effort="1000" lower="-0.8757" upper="0.8757" velocity="2.0"/>
    <mimic joint="finger_joint" multiplier="1" offset="0"/>
  </joint>
  <joint name="left_inner_finger_pad_joint" type="fixed">
    <origin rpy="0 0 0" xyz="0 0.0457554015893473 -0.0272203446692936"/>
    <parent link="left_inner_finger"/>
    <child link="left_inner_finger_pad"/>
    <axis xyz="0 0 1"/>
  </joint>
  <joint name="right_outer_knuckle_joint" type="revolute">
    <origin rpy="2.29579632679 0 3.14159265359" xyz="0 0.030601 0.054905"/>
    <parent link="robotiq_arg2f_base_link"/>
    <child link="right_outer_knuckle"/>
    <axis xyz="1 0 0"/>
    <limit effort="1000" lower="-0.725" upper="0.725" velocity="2.0"/>
    <mimic joint="finger_joint" multiplier="-1" offset="0"/>
  </joint>
  <joint name="right_outer_finger_joint" type="fixed">
    <origin rpy="0 0 0" xyz="0 0.01821998610742 0.0260018192872234"/>
    <parent link="right_outer_knuckle"/>
    <child link="right_outer_finger"/>
    <axis xyz="1 0 0"/>
  </joint>
  <joint name="right_inner_knuckle_joint" type="revolute">
    <origin rpy="2.29579632679 0 -3.14159265359" xyz="0 0.0127 0.06142"/>
    <parent link="robotiq_arg2f_base_link"/>
    <child link="right_inner_knuckle"/>
    <axis xyz="1 0 0"/>
    <limit effort="1000" lower="-0.8757" upper="0.8757" velocity="2.0"/>
    <mimic joint="finger_joint" multiplier="-1" offset="0"/>
  </joint>
  <joint name="right_inner_finger_joint" type="revolute">
    <origin rpy="-0.725 0 0" xyz="0 0.0817554015893473 -0.0282203446692936"/>
    <parent link="right_outer_finger"/>
    <child link="right_inner_finger"/>
    <axis xyz="1 0 0"/>
    <limit effort="1000" lower="-0.8757" upper="0.8757" velocity="2.0"/>
    <mimic joint="finger_joint" multiplier="1" offset="0"/>
  </joint>
  <joint name="right_inner_finger_pad_joint" type="fixed">
    <origin rpy="0 0 0" xyz="0 0.0457554015893473 -0.0272203446692936"/>
    <parent link="right_inner_finger"/>
    <child link="right_inner_finger_pad"/>
    <axis xyz="0 0 1"/>
  </joint>
  <transmission name="finger_joint_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="finger_joint">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="finger_joint_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <!-- measured from model -->
  <link name="base_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/visual/base.dae"/>
      </geometry>
      <material name="LightGrey">
        <color rgba="0.7 0.7 0.7 1.0"/>
      </material>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/collision/base.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="4.0"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.0061063308908" ixy="0.0" ixz="0.0" iyy="0.0061063308908" iyz="0.0" izz="0.01125"/>
    </inertial>
  </link>
  <joint name="shoulder_pan_joint" type="revolute">
    <parent link="base_link"/>
    <child link="shoulder_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.1273"/>
    <axis xyz="0 0 1"/>
    <limit effort="330.0" lower="-6.28318530718" upper="6.28318530718" velocity="2.16"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="shoulder_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/visual/shoulder.dae"/>
      </geometry>
      <material name="LightGrey">
        <color rgba="0.7 0.7 0.7 1.0"/>
      </material>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/collision/shoulder.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="7.778"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.0314743125769" ixy="0.0" ixz="0.0" iyy="0.0314743125769" iyz="0.0" izz="0.021875625"/>
    </inertial>
  </link>
  <joint name="shoulder_lift_joint" type="revolute">
    <parent link="shoulder_link"/>
    <child link="upper_arm_link"/>
    <origin rpy="0.0 1.57079632679 0.0" xyz="0.0 0.220941 0.0"/>
    <axis xyz="0 1 0"/>
    <limit effort="330.0" lower="-6.28318530718" upper="6.28318530718" velocity="2.16"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="upper_arm_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/visual/upperarm.dae"/>
      </geometry>
      <material name="LightGrey">
        <color rgba="0.7 0.7 0.7 1.0"/>
      </material>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/collision/upperarm.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="12.93"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.306"/>
      <inertia ixx="0.421753803798" ixy="0.0" ixz="0.0" iyy="0.421753803798" iyz="0.0" izz="0.036365625"/>
    </inertial>
  </link>
  <joint name="elbow_joint" type="revolute">
    <parent link="upper_arm_link"/>
    <child link="forearm_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 -0.1719 0.612"/>
    <axis xyz="0 1 0"/>
    <limit effort="150.0" lower="-3.14159265359" upper="3.14159265359" velocity="3.15"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="forearm_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/visual/forearm.dae"/>
      </geometry>
      <material name="LightGrey">
        <color rgba="0.7 0.7 0.7 1.0"/>
      </material>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/collision/forearm.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="3.87"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.28615"/>
      <inertia ixx="0.111069694097" ixy="0.0" ixz="0.0" iyy="0.111069694097" iyz="0.0" izz="0.010884375"/>
    </inertial>
  </link>
  <joint name="wrist_1_joint" type="revolute">
    <parent link="forearm_link"/>
    <child link="wrist_1_link"/>
    <origin rpy="0.0 1.57079632679 0.0" xyz="0.0 0.0 0.5723"/>
    <axis xyz="0 1 0"/>
    <limit effort="54.0" lower="-6.28318530718" upper="6.28318530718" velocity="3.2"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="wrist_1_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/visual/wrist1.dae"/>
      </geometry>
      <material name="LightGrey">
        <color rgba="0.7 0.7 0.7 1.0"/>
      </material>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/collision/wrist1.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="1.96"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.0051082479567" ixy="0.0" ixz="0.0" iyy="0.0051082479567" iyz="0.0" izz="0.0055125"/>
    </inertial>
  </link>
  <joint name="wrist_2_joint" type="revolute">
    <parent link="wrist_1_link"/>
    <child link="wrist_2_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.1149 0.0"/>
    <axis xyz="0 0 1"/>
    <limit effort="54.0" lower="-6.28318530718" upper="6.28318530718" velocity="3.2"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="wrist_2_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/visual/wrist2.dae"/>
      </geometry>
      <material name="LightGrey">
        <color rgba="0.7 0.7 0.7 1.0"/>
      </material>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/collision/wrist2.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="1.96"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.0051082479567" ixy="0.0" ixz="0.0" iyy="0.0051082479567" iyz="0.0" izz="0.0055125"/>
    </inertial>
  </link>
  <joint name="wrist_3_joint" type="revolute">
    <parent link="wrist_2_link"/>
    <child link="wrist_3_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.1157"/>
    <axis xyz="0 1 0"/>
    <limit effort="54.0" lower="-6.28318530718" upper="6.28318530718" velocity="3.2"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="wrist_3_link">
    <visual>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/visual/wrist3.dae"/>
      </geometry>
      <material name="LightGrey">
        <color rgba="0.7 0.7 0.7 1.0"/>
      </material>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://ur_description/meshes/ur10/collision/wrist3.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="0.202"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.000526462289415" ixy="0.0" ixz="0.0" iyy="0.000526462289415" iyz="0.0" izz="0.000568125"/>
    </inertial>
  </link>
  <joint name="ee_fixed_joint" type="fixed">
    <parent link="wrist_3_link"/>
    <child link="ee_link"/>
    <origin rpy="0.0 0.0 1.57079632679" xyz="0.0 0.0922 0.0"/>
  </joint>
  <link name="ee_link">
    <collision>
      <geometry>
        <box size="0.01 0.01 0.01"/>
      </geometry>
      <origin rpy="0 0 0" xyz="-0.01 0 0"/>
    </collision>
  </link>
  <transmission name="shoulder_pan_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="shoulder_pan_joint">
      <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="shoulder_pan_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="shoulder_lift_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="shoulder_lift_joint">
      <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="shoulder_lift_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="elbow_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="elbow_joint">
      <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="elbow_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="wrist_1_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="wrist_1_joint">
      <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="wrist_1_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="wrist_2_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="wrist_2_joint">
      <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="wrist_2_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="wrist_3_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="wrist_3_joint">
      <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="wrist_3_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <gazebo reference="shoulder_link">
    <selfCollide>true</selfCollide>
  </gazebo>
  <gazebo reference="upper_arm_link">
    <selfCollide>true</selfCollide>
  </gazebo>
  <gazebo reference="forearm_link">
    <selfCollide>true</selfCollide>
  </gazebo>
  <gazebo reference="wrist_1_link">
    <selfCollide>true</selfCollide>
  </gazebo>
  <gazebo reference="wrist_3_link">
    <selfCollide>true</selfCollide>
  </gazebo>
  <gazebo reference="wrist_2_link">
    <selfCollide>true</selfCollide>
  </gazebo>
  <gazebo reference="ee_link">
    <selfCollide>true</selfCollide>
  </gazebo>
  <!-- ROS base_link to UR 'Base' Coordinates transform -->
  <link name="base"/>
  <joint name="base_link-base_fixed_joint" type="fixed">
    <!-- NOTE: this rotation is only needed as long as base_link itself is
                 not corrected wrt the real robot (ie: rotated over 180
                 degrees)
      -->
    <origin rpy="0 0 -3.14159265359" xyz="0 0 0"/>
    <parent link="base_link"/>
    <child link="base"/>
  </joint>
  <!-- Frame coincident with all-zeros TCP on UR controller -->
  <link name="tool0"/>
  <joint name="wrist_3_link-tool0_fixed_joint" type="fixed">
    <origin rpy="-1.57079632679 0 0" xyz="0 0.0922 0"/>
    <parent link="wrist_3_link"/>
    <child link="tool0"/>
  </joint>
  <link name="world"/>
  <joint name="world_joint" type="fixed">
    <parent link="world"/>
    <child link="base_link"/>
    <!-- Adjust xyz to fit on Table, previous table was 0.69 for z -->
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.63"/>
  </joint>
</robot>
at669 commented 3 years ago

Hi--I should have been more clear. Could you send the full URDF package, including the meshes?

And just to clarify, Branch or version: Latest refers to the URDF-Importer's v0.3.0?

Finally, did you have any luck investigating internal collisions?

NathanielRose commented 3 years ago

@at669 Thanks for the quick reply. Here is the URDF I am using for the UR10 + Gripper https://github.com/NathanielRose/UniversalRobot10_RobotiqGripper/blob/main/ur3_with_gripper/ur10_with_gripper.urdf

Additionally, I am currently using https://github.com/Unity-Technologies/URDF-Importer.git#v0.1.2 Is this deprecated?

at669 commented 3 years ago

Thanks! We'll investigate the package linked and update you on that.

In the meantime, yes, v0.1.2 is out of date, and v0.3.0 is the currently most stable version. Please try updating the package version and let us know if the behavior is different.

NathanielRose commented 3 years ago

@at669 Just updated, still receiving that behaviour with v0.3.0

https://user-images.githubusercontent.com/8294326/118032143-3822c580-b35f-11eb-8201-8d768746da76.mp4

NathanielRose commented 3 years ago

@at669 Any follow up on the UR10 Gripper URDF and why it could be failing?

at669 commented 3 years ago

Hi, the team has not yet been able to investigate this issue yet, but the ticket has been filed internally and will be investigated as soon as possible. In the meantime, I would suggest investigating the potential internal collisions and disabling them to see if that can resolve your issue. Thanks for your patience!

at669 commented 3 years ago

Hey @NathanielRose, sorry for the late response! I'm unable to recreate your issue using your provided URDF package and with the following setup:

Unity version: 2020.2.0f1
URDF-Importer version: v0.4.0
Physics solver: TGS
URDF-Importer mesh decomposer: VHACD
UR10 Controller configuration:
    Stiffness: 10000
    Damping: 1000
    Force limit: 1000
    Speed: 30

The physics solver, if not already TGS, can be set under Edit > Project Settings > Physics > Solver Type > Temporal Gauss Seidel--all other Physics settings were left as default. Additionally, the URDF-Importer has recently been updated to v0.4.0, which I would suggest updating to! Finally, TGS exposes some internal collisions in the gripper. You may want to add the following lines to your custom URDF:

<disable_collision link1="left_inner_knuckle" link2="left_outer_knuckle"></disable_collision>
<disable_collision link1="right_inner_knuckle" link2="right_outer_knuckle"></disable_collision>
<disable_collision link1="left_inner_knuckle" link2="left_inner_finger"></disable_collision>
<disable_collision link1="right_inner_knuckle" link2="right_inner_finger"></disable_collision>
<disable_collision link1="left_inner_knuckle" link2="robotiq_arg2f_base_link"></disable_collision>
<disable_collision link1="right_inner_knuckle" link2="robotiq_arg2f_base_link"></disable_collision>

https://user-images.githubusercontent.com/31416491/122823659-df6b1480-d29c-11eb-9a27-90f16a9f0884.mov

Let me know if this set of setup configs resolves your issue.

NathanielRose commented 3 years ago

@at669 Than you! The collision disabling I believe fixed the issue with movement in space. I am following the code for opening and closing the gripper and not seeing the correct behaviour for closing a robotiq gripper. This can be a separate issue if this may be a completely tangential thing. I was curious if the way we configured the collision disabling is causing the gripper to not close correctly?

https://user-images.githubusercontent.com/8294326/123613568-73882f00-d7fb-11eb-8aa8-efae5d9309f5.mp4

at669 commented 3 years ago

The collision disabling tags are the same ones as used in the Object Pose Estimation project, which is currently configured similarly (i.e. TGS, VHACD mesh decomposition, same collision disabling tags).

I think you might have added the wrong link for the code!

NathanielRose commented 3 years ago

@at669 So embarassing! Apologies for that! Code is linked below:

    public IEnumerator IterateToGrip(bool toClose)
    {
        var grippingAngle = toClose ? gripperAngle : 0f;
        for (int i = 0; i < gripperJoints.Count; i++)
        {
            var curXDrive = gripperJoints[i].xDrive;
            curXDrive.target = multipliers[i] * grippingAngle;
            gripperJoints[i].xDrive = curXDrive;
        }
        yield return new WaitForSeconds(jointAssignmentWait);
    }

I played with the grippingAngle to see if that was the root cause for the left finger remaining dormant during gripping and it didn't change much. This is a minor issue and I can take it offline to investigate but thought I would raise it on this thread if you have seen this behavior before. Thanks again!

at669 commented 3 years ago

I'd expect the gripping angle to modify the movement significantly, so that seems a bit strange! Aside from that value, I'd suggest verifying the stiffness, damping, and force limits on the gripper's articulation bodies as well, and changing their target values in the inspector to see if they move as expected. Feel free to close this ticket and open a new one if the original issue appears to be solved and open a new one if you can't seem to get the gripper working as expected though!

hyounesy commented 3 years ago

Hi @NathanielRose. Just wanted to verify that your issue has been resolved before closing the issue.

NathanielRose commented 3 years ago

It has been resolved, Thanks again for the support here!