Custom URScript with ROS 2 not working


I am trying to use my robotiq hand-e gripper on a UR3e robot from a remote PC. So far, I have successfully been able to use the ur_robot_driver with ROS 2 Humble (see documentation here) to control my robot on my remote PC by sending URScript commands directly to the robot using commands such as:

ros2 topic pub /urscript_interface/script_command std_msgs/msg/String '{data: popup("hello")}' --once

Note that my robot is in “remote mode” and the ur_robot_driver was started in “headless mode.” I can verify the program ran on the robot by seeing a log message on the teach pendent.

The Robotiq_Grippers UR cap adds additional UR script commands to my robot. For example, on the teach pendent, I can use the commands rq_reset(1) and rq_reset_and_activate(1) commands activate the gripper, which results in it opening and closing. However, when I switch to remote mode and try the command

ros2 topic pub /urscript_interface/script_command std_msgs/msg/String '{data: rq_reset(1)}' --once

nothing happens. I think that the robot doesn’t recognize the message rq_reset(1) and so it silently ignores the program, and nothing is logged to the teach pendent logs. The exact same result happens when I try to send an unknown or misspelled command such as ssleep(1.).

Is there a way for me to send these “new” URScript commands to the robot without it simply ignoring them?


P.S. if there is another way to control the gripper using ROS 2 humble that would be amazing.