I am using a UR5e robot for a medical application. I would like to define a safety plane which restricts the robot from entering any critical region while the medical process is ongoing.
Since the medical personnel will be using the GUI that I’m building to control the robot and not the UR teach pendant, is it possible to define the safety plane using RTDE or URScript? If not, is there any suggestion on how can I define safety planes without using teach pendant?
Probably not, but if it’s a simple plane you can spin up a thread that tests your TCP position and sends a halt command if the robot tries to exceed it. Not safety rated really but pretty flexible.
If it’s an angled plane, maybe dust of some lin alg skills to get parallel distance to plane.
Thanks @terryc for the response. Your suggestion sounds good. But since we need this function for medical use cases I wonder is there no other way to directly play around with the safety parameters in the controller?
Well. The whole idea with the safety settings is that they’re not just for playing around with. Safety is supposed to be set up once by the integrator based on a risk analysis.
I don’t know of another way to change the safety settings if not by changing them directly in PolyScope.
@efn Thanks for the reply. Your reasoning makes sense. For our use case, we want to provide a flexibility to the medical staff/ engineering experts to set safety parameters using the medical app / GUI that we are developing. This GUI makes use of the RTDE at the back-end to communicate with the robot.
I fully agree with @efn, safety planes and safety functions are bound to a robot installation and risk assessment, not to a particular program. So they must be activated/deactivated very carefully.
If you do NOT want this to be a safety behaviour, maybe you can try the new struct datatype on Polyscope 5.14 which can help a lot to setup complex data structures needed for checking 3D volumes and zones.
Here an example to check if robot is inside a cube zone:
Here how the URscript run on simulation environment: