Universal_Robots_ROS_Driver: ROS + moveit for robotiq 2f_85 with UR5e (next steps and errors)
Summary
Hello all. I need to control both the UR5e and robotiq 2f_85 with ROS and moveit!. I have two basic issues and the most important is: I am not which is the next step so I can have access to the gripper. I can control the UR5e with moveit. Also, a bit of a n00b when it comes to manipulators, so apologies in advance in case I have missed something. NOTE: 2f_85 is connected to the control box via USB and not to the flange of the robot.
So I run the ur_robot_driver ur5e_bringup.launch
and things are ok. I test with moveit and it works. Now from what I understand, the next step is to somehow set the communication tools. This is where things get blurry and also I get errors.
When I run the rosrun ur_robot_driver tool_communication
command I get the following:
[INFO] [1643296476.184035]: Remote device is available at '/tmp/ttyUR'
[INFO] [1643296476.185039]: Starting socat with following command:
socat pty,link=/tmp/ttyUR,raw,ignoreeof,waitslave tcp:10.161.5.10:54321
So the thing is: I am a bit lost. I have read most of the other threads but it looks like there is information that I am somehow missing because I just don’t seem to be able to move forward.
From my understanding, the next step would be to run rosrun robotiq_2f_gripper_control Robotiq2FGripperRtuNode.py /tmp/ttyUR
but when I run that I get the following error:
rosrun robotiq_2f_gripper_control Robotiq2FGripperRtuNode.py /tmp/tty
URTraceback (most recent call last):
File "/home/control/control_ws/src/robotiq/robotiq_2f_gripper_control/nodes/Robotiq2FGripperRtuNode.py", line 90, in <module>
mainLoop(sys.argv[1])
File "/home/control/control_ws/src/robotiq/robotiq_2f_gripper_control/nodes/Robotiq2FGripperRtuNode.py", line 76, in mainLoop
status = gripper.getStatus()
File "/home/control/control_ws/src/robotiq/robotiq_2f_gripper_control/src/robotiq_2f_gripper_control/baseRobotiq2FGripper.py", line 107, in getStatus
status = self.client.getStatus(6);
File "/home/control/control_ws/src/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'
I understand that this has been an issue to several people. I have tried a couple of solutions and even tried to post this error to the robotiq issues, but what they kindly told me is that (and this is part of the probable thing that I was missing as info) the communication tools is for when the gripper is connected to the flange of the robot and I should probably post it here.
So then the main question i have is the following: If I connect the robotiq 2f_85 gripper to control box via USB, how can I have access to it? Is it still via the communication tools? Because if this is the case there is an error when i run the gripper control. Or is it better to connect it to the ROS external computer?
I am a bit lost and apologies if there is any similar thread I might have missed.
Thank you very much for your time and any help is highly appreciated!
Introduction to the issue
Versions
- ROS Driver version: melodic
- Affected Robot Software Version(s): 5.11.0
- Affected Robot Hardware Version(s): UR5e
- Robot Serial Number: x
- UR+ product(s) installed: ?
- URCaps Software version(s): external control (1.0.5), RS485 (1.0.0)
Use Case and Setup
What does the setup look like and what are the objectives? I am trying to get our system (UR5e+ robotiq 2f_85) to work, especially via ROS and moveit. The gripper is connected to the control box of the UR5e via USB and to the 24v. I have uninstalled (given the advice of several posts) the robotiq URCaps and I have installed the following: external control and RS485 on the teach pendant. And the RS-485 daemon runs.
When I ssh the system and I do:
dmesg | grep tty
[ 0.000000] Kernel command line: BOOT_IMAGE=(hd0,3)/vmlinuz root=LABEL=rootfs.0 rootfstype=ext3 console=ttyS0,115200 consoleblank=0 net.ifnames=0 biosdevname=0 panic=60 intel_idle.max_cstate=0 processor.max_cstate=0 sdhci_pci.max_freq=0 idle=poll splash quiet rauc.slot=A isolcpus=3
[ 0.000000] console [ttyS0] enabled
[ 3.553684] 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 7.531730] systemd[1]: Expecting device dev-ttyS0.device...
[ 8.341233] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0
I run the external control and by running the ur_robot_driver ur5e_bringup.launch
I can actually control the arm with rviz and moveit. The problem is the gripper.
The ur5e bringup has the following parameters:
use_tool_communication = true
tool_voltage = 24
tool_parity = 0
tool_baud_rate = 115200
tool_stop_bits = 1
tool_rx_idle_chars = 1.5
tool_tx_idle_chars = 3.5
tool_device_name = =/tmp/ttyUR
Also:
ls -l /tmp/ttyUR
lrwxrwxrwx 1 control control 10 Jan 27 19:33 /tmp/ttyUR -> /dev/pts/5
I have installed in the same workspace the robotiq packages from the ros robotiq repo.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 19
You must install only external-control and rs485 urcap. Be sure that you installed the right drivers and packages as explained here. Yes that’s right. You run the robot bringup, start the external-control from pendant, and once the connection is established you can run the gripper control.