To my knowledge, you can't do that with the ROS package as it is. You can only control the gripper if it is connected directly to the computer.
Hi @faizerd, by "modern driver" you mean this one: https://github.com/ThomasTimm/ur_modern_driver right?
There might be a way that you can try using the gripper connected to the teach pendant that don't use the robotiq ROS packages, but you'd still need the Robotiq URCaps. I've never tried this, but I think it might be feasible.
That driver subscribes to a topic called "ur_driver/URScript", where you can publish any script that you want and it'll execute on the robot side, including gripper commands by using the robotiq URcaps functions.
So what I would do, is to write in Polyscope the program you'd want to do. And then access the robot files and check the program you just made and see how the actual script is. That script you can send it via the topic mentioned above and it'll do exactly the same. You will see commands like these
rq_set_pos_norm(pos_norm)
rq_set_speed_norm(speed_norm)
rq_set_force_norm(force_norm)
Where all arguments goes from 0-1, for instance, or whatever other commands you use in your program.It's very likely that you'd need to send also the Robotiq preamble that you will find in the URCaps files here, where all Robotiq functions are defined, and you might need to call "rq_init_connection(gripper_sid=9)" to init the gripper everytime...
Now that I'm writing it, it seems a bit of overwork with the only advantage that you don't have an USB until the PC. If that is not a strict constraint, I'd strongly suggest to integrate in the PC using ROS, given that you need it anyway for the UR.
carlosjoserg said:
It's very likely that you'd need to send also the Robotiq preamble that you will find in the URCaps files here, where all Robotiq functions are defined, and you might need to call "rq_init_connection(gripper_sid=9)" to init the gripper everytime...
@carlosjoserg, I am reading your post on controlling the gripper that is connected to the UR controller from a remote computer. I checked the .script file from a gripper open/close program, if I understand your idea correct, we need to send the preamble functions like the one below named "rq_set_pos"?
def rq_set_pos(pos, gripper_socket="1"):
end
There is a while loop here keep checking if pre==pos, do you think we can send this function and while loop line by line to the ur_driver/URScript node? B
Hello,
We have a robot UR10 with a 2 finger gripper connected to the Robot controller through one of the USB port. We can manage to control the robot using the modern driver and ROS on another network computer. The gripper works using the teach pendant but we want to use ROS also to control the gripper and are unsure how to do this, as all the tutorials for using the gripper with ROS that we have found are for controlling it directly attached to a computer or network, not through a UR arm. Any idea where to start with this?
Thanks,
Faiz