-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stopping containers doesn't disable motor torque #6
Comments
I tested this by adding the on_shutdown method to the hardware interface (seb/implement_on_shutdown)) but still not working - on_shutdown only gets called when stopping from within the container still. The issue seems to be more deeply connected with how Docker/ROS2 handle the shutdown signals, this seems relevant: ros2/launch#666 |
@sebtiburzio you are correct, Docker sends SIGTERM by default which isn't correctly handled yet so the launch process gets immediately terminated. Working on a fix here, it should work. An easier workaround though, and what we've been using up until now, is changing the stop signal Docker uses. You can pass |
Thanks @ciandonovan , but unfortunately this workaround doesn't seem to be working in our case. Maybe something for us to review again once the ROS2 signal handing changes have been made. For future reference I've tried |
@sebtiburzio try force ROS2 Launch to be in "non-interactive" mode so it manually forwards the SIGINT signal to your child process with the flag This is in addition to |
For whatever reason, in this case launching in non-interactive mode has the effect that the motors are no longer disabled even when shutting down with Thanks again for the help @ciandonovan , I think if I can figure out the problem of SIGINT handling at the ros2_control/dynamixel_hardware level, we will be able to use the |
Stopping containers from the host (
compose down
or ctrl-C) does not seem to properly shutdown the hardware interface/deactivate motor torque.Stopping from within the container (ctrl-C) does seem to deactivate the motors properly.
Probably something that can be fixed within the
dynamixel_hardware
interfaceon_deactivate()
callback method.The text was updated successfully, but these errors were encountered: