-
Notifications
You must be signed in to change notification settings - Fork 946
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
Preempt trajectory execution if one controller aborts #1299
Comments
Thanks for reporting an issue. We will have a look asap. If you can think of a fix, please consider providing it as a pull request. |
Thanks for reporting this issue. I agree, that trajectory execution shouldn't continue when one controller aborts. Unfortunately, MoveIt doesn't provide an API in ControllerHandles to report status changes via callbacks. For this reason you had to implement an ugly busy loop. |
I also looked into this, but adding callbacks would require a lot of changes. Maybe it could be refactored at some point.
It is ugly, I agree. But since it has been a busy loop before, not much changed in that regard.
Ok, I will do that. I am leaving this open for now for further discussion. |
What about launching threads for all controller handles to perform the actual Btw, before it wasn't necessarily a busy loop. All implementations of |
That would be a possibility. However, we could also directly poll the states of the controllers using |
Yes, I think you are right. |
* Modified URDF Infrastructure * Control Xacro Config * URDF Modifications Widget * Use same base class for ROS2Controllers and MoveItControllers (widget/config/setup_step) * Further cleanup * Fix ModifiedURDF Generation * Apply suggestions from code review Co-authored-by: AndyZe <[email protected]> * Rename button variable * Clang line length fix Co-authored-by: AndyZe <[email protected]>
Description
In the current trajectory execution handling, if one goal aborts, the other goals are executed regardless. An aborted goal is likely due to a malfunction of the respective controller/hardware. A collision-free execution can no longer be guaranteed and a further execution of the trajectory is very unsafe. Therefore, I suggest to monitor the state of all controllers and preempt all goals if one goal is aborted.
This issue is related to aborted goal handling of the joint_trajectory_controller ros-controls/ros_controllers#395
I implemented the necessary changes here. I am not sure if further changes are required, it works in my setup. If there is interest to merge this, I will open a PR.
The text was updated successfully, but these errors were encountered: