How to reconnect driver after "restart_safety" call
Summary
Calling the restart_safety service causes the driver to lose the connection with the robot, which forces me to restart the node. Is there a way around that?
Versions
- ROS Driver version: 2.0.0
- Affected Robot Software Version(s): 5.9.3
- Affected Robot Hardware Version(s): UE10e
- URCaps Software version(s): External Control: 1.0.5
Impact
The robot is unable to autonomously recover from collisions, I have to manually restart the driver.
Issue details
Hello, First, thank you for providing this driver!
I have been using it to control a UR10e for some time now, and everything works fine.
However, when the robot goes into emergency stop after a collision, the only solution I have found is to call the /ur_hardware_interface/dashboard/restart_safety service which does reset the robot, but also causes the driver connection to drop:
[ WARN] [1686658080.478251539]: Failed to read from stream, reconnecting in 64 seconds...
[ERROR] [1686658080.491336357]: Could not get fresh data package from robot
[ERROR] [1686658080.591479936]: Could not get fresh data package from robot
[ERROR] [1686658080.691613176]: Could not get fresh data package from robot
[ERROR] [1686658080.791734523]: Could not get fresh data package from robot
...
I tried using the connect service, but it does not seem to change anything.
I am using a dedicated network, but could not use the RT kernel since I need the NVIDIA driver.
Things work again if I kill the node and restart it; but is there a way to regain control without having to resort to that?