Hi there,
we are testing our URCaps node in a loop that is supposed to go on for many hours continuously.
Our node is embedded in a loop with movej/movep
commands in between, like this:
while(True):
- movep(…)
- movej(…)
- our urcaps program
- sleep(0.2)
(We run a block with those 4 lines actually 8 times within the while(True)
loop with different movep/movej params.)
Now in our first run we were able to run this for 24h but when we attempted this a second time, the robot stopped after 2 hours.
I attached our node’s code below. I copied it from the whole program’s .script
representation so this should be as close to execution as possible.
Now here is the state we found the robot in:
- Robot was standing still, doing nothing (for several hours)
- There was no error whatsoever on Polyscope or in the log
- Robot was still turned on
- Robot was still executing our node’s block in the program
- The very last message in the log was the very last command of our node:
Stopping main loop...
Now I know it is hard to debug this but we think this must be a problem on the UR side, since our program has executed everything properly and should hand control back to the next node.
Is there anything that you could think off which could cause this? Or does anyone know what we could try to isolate this problem?
Polyscope version: 3.7.0.40195
# begin: URCap Program Node
# Source: ...
# Type: ...
$ 58 "MyProgram"
enable_external_ft_sensor(True, sensor_mass =1.27, sensor_measuring_offset = [0.0, 0.0, 0.0], sensor_cog = [0.0, 0.0, 0.0175])
rtde_set_watchdog("external_force_torque", 125, "ignore")
myprogram_xmlrpc.execute_skill(2)
textmsg("Executed skill:", "2")
has_started = False
while(True):
if (read_input_float_register(6) == 1):
has_started = True
end
if (read_input_float_register(6) == -1):
textmsg("got break register value")
if has_started:
textmsg("breaking")
break
else:
textmsg("has_started not set, not breaking")
end
end
velocity = [read_input_float_register(0), read_input_float_register(1), read_input_float_register(2), read_input_float_register(3), read_input_float_register(4), read_input_float_register(5)]
textmsg("Register 6: ", read_input_float_register(6))
speedj(velocity, 5, 0.05)
sync()
end
textmsg("Stopping main loop...")
# end: URCap Program Node