We are experiencing the C4A1 error frequently on a CB3.0 robot with Polyscope 3.13 when using our URCap.
The service manual mentions overloading the communication between the Safety Control Board and Motherboard as a possible reason, but what does it mean exactly, and which software versions are affected?
Our URCap contains a daemon process with some functions written in pure C++ that run quickly and requires very little cpu and memory, so I would exclude this module from the possible reasons. On the other side, the main robot program performs a lot of calculations, written in pure URScript, but URScript is running inside the URControl process, so that should not overload the communication either.
So my question: in what cicrumstances can the communication be overloaded and how can we locate the problem?
Additional info: in older Polyscope versions, we experienced often the runtime error “The program used too much time without instructing the robot what to do.” This error seems to be removed from recent Polyscope versions, but is it possible that C4A1 is a side-effect of this improvement?
I think there are several issue that can cause C4A1. If the issue is caused be high load on the URController due to your calculations, I will recommend you to insert some "sync()"s if you do not need the answer immediately.
Thanks for your answer @Ebbe, are there any simulation tools available for reproducing such communication overloads without a real robot? URSim does not include the simulation of the communication with the safety subsystem, as far as I know.
No, the embedded safety part is not a part of the simulation. I am not aware if anyone have tried to make a guest system that is targeting to deliver processing power equal to the robot(s). But since the also OS differs I will assume it to be a challenge to make identical.