-
Notifications
You must be signed in to change notification settings - Fork 175
Async actions #503
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
Async actions #503
Conversation
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
… is WIP Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
…n_server.rs Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Co-authored-by: Nathan Wiebe Neufeldt <wn.nathan@gmail.com> Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
… binding generation Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <mxgrey@intrinsic.ai>
Signed-off-by: Michael X. Grey <mxgrey@intrinsic.ai>
Signed-off-by: Michael X. Grey <mxgrey@intrinsic.ai>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
…bindings Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
|
@esteve I've done one more iteration, and I believe this PR is in a good state to review now. Every aspect of actions is implemented, and there are test cases for a good number of action state transitions and server-client interactions. I think I'd recommend adding more complex and comprehensive test cases before anyone puts this into production, but as it is, it should be a very strong debut for action support. |
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
|
@esteve Earlier today I noticed that there was a CI failure for MSRV 1.75 from using an unstable function. I've removed it, and now the CI is green. Let me know if you encounter any other blockers for this PR. I'm happy to help move this along with whatever is needed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Signed-off-by: Esteve Fernandez <esteve@apache.org>
Signed-off-by: Esteve Fernandez <esteve@apache.org>
* Remove lockfiles from being tracked Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Port draft action implementation from #410 Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Rework readiness for waitables Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Reworking action server goal handle lifecycles Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Fleshing out the state machines for action server goals -- cancelling is WIP Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Finished action server goal state machine API -- need to finish action_server.rs Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Progress on action_server implementation Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Action server finished -- needs testing Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Creating action server and action goal receiver -- needs testing Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Introducing action clients into the wait set processing Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Incorporate action clients into wait sets Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Fleshing out implementation of action clients Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Implementing goal status client Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Implementing goal result client Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * CancellationClient API in progress Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Finish action cancellation request API Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Finish API for action clients -- needs testing Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Link against rcl_action Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Add initial tests and improve ergonomics Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Add co-author credit Co-authored-by: Nathan Wiebe Neufeldt <wn.nathan@gmail.com> Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Re-export traits from rosidl_runtime_rs Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Update bindings to include actions -- added script for automating the binding generation Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Apply cargo fmt Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Update bindings for kilted Signed-off-by: Michael X. Grey <mxgrey@intrinsic.ai> * Update bindings for humble Signed-off-by: Michael X. Grey <mxgrey@intrinsic.ai> * Update bindings for rolling Signed-off-by: Michael X. Grey <mxgrey@intrinsic.ai> * Fix use of serde Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Use desktop image so it includes rcl_action which we need for action bindings Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Fix serde Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Finish documentation for GoalClientStream Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Enable serde for goal status info Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Fix action cancellation pipeline Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * More trait re-exports Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Add tests for action cancellation Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Fix use of action client options Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Fix style Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * Remove use of .clear_poison because it is not stable in 1.75 Signed-off-by: Michael X. Grey <greyxmike@gmail.com> * chore: revert bindings-related changes (#5) Signed-off-by: Esteve Fernandez <esteve@apache.org> * update rosidl_runtime_rs for action support (#6) Signed-off-by: Esteve Fernandez <esteve@apache.org> * revert bindings generation changes --------- Signed-off-by: Michael X. Grey <greyxmike@gmail.com> Signed-off-by: Michael X. Grey <mxgrey@intrinsic.ai> Signed-off-by: Esteve Fernandez <esteve@apache.org> Co-authored-by: Nathan Wiebe Neufeldt <wn.nathan@gmail.com> Co-authored-by: Esteve Fernandez <33620+esteve@users.noreply.github.com>
This PR builds off of #410 to fully implement action clients and action servers that utilize the new async execution capabilities of rclrs.
This PR depends on both ros2-rust/rosidl_runtime_rs#15 and ros2-rust/rosidl_rust#7. Anyone testing it out should make sure to fetch those branches of
rosidl_generator_rsandrosidl_rust.In the coming week, I will update this PR description with a thorough description of what's been implemented and how it should be used. In the meantime I just wanted to get this PR up for visibility in the upcoming working group meeting.
The implementation is finished, along with some initial tests. All that's left to do is add more documentation, add usage examples, and add comprehensive tests.