Restarting ros2_control must be followed by a restart of the RAPID program
I observed an issue with the driver/communication between the ROS side and the RAPID side when the connection is lost. Most notably, if the ros2_control is restarted while the RAPID program is already running will make it so that the robot no longer moves when the commands are sent.
To reproduce (with RobotStudio):
- Start the RAPID program that has EGM communication/control
- Start the ros2_control nodes
- Trigger a motion and wait that it concludes
- Restart the ros2_control nodes
- Trigger the motion again --> the robot does not move
https://github.com/user-attachments/assets/07cbf92b-3a45-4ab6-a095-7a424152c2dd
To get back into a controllable state, one needs to restart the RAPID program (stop, pp to main, start).
It is important to mention that I am using slightly modified lauchfiles. But the underlying code is the same. At this point, I did not have the opportunity to dig deeper why this happens. I also didn't try the exact same steps on the real robot but I do recall having some issues with restarts.
Did anyone note similar behavior?