Robotiq Gripper via Universal Robot Failure
Hi,
I am attempting to use the Robotiq Hand-E gripper on a UR3e. Unfortunately, there seems to be a connection issue to the Robotiq gripper.
The following command seems to run successfully. Communication with the UR is enabled, communication with the gripper seems successful as the file at /tmp/ttyUR is created. There are variables I have omitted because their default values are correct (baud, parity, etc)
$ roslaunch ur_robot_driver ur3e_bringup.launch robot_ip:=192.168.1.94 use_tool_communication:=true tool_device_name:=/tmp/ttyUR
The following node fails and afterward the file no longer exists at /tmp/ttyUR
$ rosrun robotiq_2f_gripper_control Robotiq2FGripperRtuNode.py /tmp/ttyUR
Error:
/home/xavier/august_demo_ws/src/robot_arm_demo_v2/robotiq/robotiq_2f_gripper_control/nodes/Robotiq2FGripperRtuNode.py:65: SyntaxWarning: The publisher should be created with an explicit keyword argument 'queue_size'. Please see http://wiki.ros.org/rospy/Overview/Publishers%20and%20Subscribers for more information.
pub = rospy.Publisher('Robotiq2FGripperRobotInput', inputMsg.Robotiq2FGripper_robot_input)
Traceback (most recent call last):
File "/home/xavier/august_demo_ws/src/robot_arm_demo_v2/robotiq/robotiq_2f_gripper_control/nodes/Robotiq2FGripperRtuNode.py", line 89, in <module>
mainLoop(sys.argv[1])
File "/home/xavier/august_demo_ws/src/robot_arm_demo_v2/robotiq/robotiq_2f_gripper_control/nodes/Robotiq2FGripperRtuNode.py", line 75, in mainLoop
status = gripper.getStatus()
File "/home/xavier/august_demo_ws/src/robot_arm_demo_v2/robotiq/robotiq_2f_gripper_control/src/robotiq_2f_gripper_control/baseRobotiq2FGripper.py", line 107, in getStatus
status = self.client.getStatus(6);
File "/home/xavier/august_demo_ws/src/robot_arm_demo_v2/robotiq/robotiq_modbus_rtu/src/robotiq_modbus_rtu/comModbusRtu.py", line 95, in getStatus
output.append((response.getRegister(i) & 0xFF00) >> 8)
AttributeError: 'ModbusIOException' object has no attribute 'getRegister'
Extra Info:
xavier@xavier-desktop:~$ ls -l /tmp/ttyUR
lrwxrwxrwx 1 xavier xavier 10 May 18 10:44 /tmp/ttyUR -> /dev/pts/0
- The gripper works as expected with the URCap on the UR touchpad -> hardware must be fine
- rs485 URCap Version: 1.0.0 (from ROS-I UR Package)
- External Control 1.0.5 (from ROS-I UR Package)
- Jetson Xavier as ROS host
- Jetpack 4.5.1
- Universal Robots Software: URSoftware 5.9.1
- ROS Melodic
- Universal Robot Driver
- Robotiq ROS-I Package
- The robotiq Hand-E gripper should work fine with the 2f controller as all the registers for control are exactly the same.
I've experienced similar issues when using a 3F-Gripper from robotiq, but the device wasn't gone for me after the failed startup. In the end, multiple retries eventually made it work, but this is, of course, not a solution. See also this issue