We are developing a URCap to perform interactive record and playback tasks with a UR5 and our end-effector, but we are facing an unexpected behavior. The problem comes up when the Python XML-RPC daemon tries to save the recorded trajectory points in a file located on a usb memory connected to the teach pendant. The python module used is the pickle one, which actually load and dump the data correctly everytime (using respectively, pickle.load() and pickle.dump()). However, when I click the “save changes” button on the GUI which call the RPC to dump the recorded waypoints, the robot enters in the protection mode with the followings log:
Update: after some experiments I’ve noted that the exact same failure happens occasionally during the recording phase. This is a bit annoying since I have to restart the robot everytime.
Update 2: I forgot to mention that this problem has never happened during the simulation on my PC.
Is there a verbose log to investigate what cause the fault?
My python daemon stores few waypoints during the record phase in a object list, and it writes to file only when a GUI button is pressed. It writes every time the whole list of about 16 objects which can be arbitrarily filled with waypoints (no more than 10 elements per object) or not. And it does not matter if I change just one waypoint or many, it always crashes (e.g. even if the whole list is empty).
@ajp that’s what I believe too, but the python methods are indivisible anyway.
The python script is something like the following: