If SafeGuard Stop occurs during program execution, I want to stop the Gripper.
To do this, my code should run even if SafeGuard Stop occurs while my Node is not running.
How can I do this?
If this doesn’t work, please let me know how to check that SafeGuard Stop has occurred even when my node is running.
I think you need to run a service/daemon in background checking the controller: RTDE / Realtime Interface from python.
RealTime Interface: Safety Mode or Safety Status will provide information Client_Interface_V3.12andV5.6.xlsx (last tab)
RTDE Outputs: safety_status_bits, safety_mode, safety_statusRTDE Guide
In robot program I would implement a thread which is permanently checking the service for changes.
How do you stop the gripper? Are you able to stop your gripper by the service/daemon cause of if the program will stop I suspect you wont be able to fire a cmd to the gripper via urscript.
@URTeam this would be a nice feature: events. eg if an event happens like “critical stop” and urscript will go from run to stop-mode a handler to fire an action.
I some time ago requested that they put it as a safe electrical signal just like Emg. Stop (Safeguard Stopped as Electrical Output).
If you could use that to stop the robot please take the time to upvote the feature - I think it is a largely underrated feature when it comes to making the UR a safe collaborative robot which is connected to other HW components.