-
Notifications
You must be signed in to change notification settings - Fork 179
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 <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
… is WIP Signed-off-by: Michael X. Grey <[email protected]>
…n_server.rs Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Co-authored-by: Nathan Wiebe Neufeldt <[email protected]> Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
… binding generation Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
…bindings Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
Signed-off-by: Michael X. Grey <[email protected]>
|
@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 <[email protected]>
|
@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. |
esteve
left a comment
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 <[email protected]>
Signed-off-by: Esteve Fernandez <[email protected]>
* Remove lockfiles from being tracked Signed-off-by: Michael X. Grey <[email protected]> * Port draft action implementation from #410 Signed-off-by: Michael X. Grey <[email protected]> * Rework readiness for waitables Signed-off-by: Michael X. Grey <[email protected]> * Reworking action server goal handle lifecycles Signed-off-by: Michael X. Grey <[email protected]> * Fleshing out the state machines for action server goals -- cancelling is WIP Signed-off-by: Michael X. Grey <[email protected]> * Finished action server goal state machine API -- need to finish action_server.rs Signed-off-by: Michael X. Grey <[email protected]> * Progress on action_server implementation Signed-off-by: Michael X. Grey <[email protected]> * Action server finished -- needs testing Signed-off-by: Michael X. Grey <[email protected]> * Creating action server and action goal receiver -- needs testing Signed-off-by: Michael X. Grey <[email protected]> * Introducing action clients into the wait set processing Signed-off-by: Michael X. Grey <[email protected]> * Incorporate action clients into wait sets Signed-off-by: Michael X. Grey <[email protected]> * Fleshing out implementation of action clients Signed-off-by: Michael X. Grey <[email protected]> * Implementing goal status client Signed-off-by: Michael X. Grey <[email protected]> * Implementing goal result client Signed-off-by: Michael X. Grey <[email protected]> * CancellationClient API in progress Signed-off-by: Michael X. Grey <[email protected]> * Finish action cancellation request API Signed-off-by: Michael X. Grey <[email protected]> * Finish API for action clients -- needs testing Signed-off-by: Michael X. Grey <[email protected]> * Link against rcl_action Signed-off-by: Michael X. Grey <[email protected]> * Add initial tests and improve ergonomics Signed-off-by: Michael X. Grey <[email protected]> * Add co-author credit Co-authored-by: Nathan Wiebe Neufeldt <[email protected]> Signed-off-by: Michael X. Grey <[email protected]> * Re-export traits from rosidl_runtime_rs Signed-off-by: Michael X. Grey <[email protected]> * Update bindings to include actions -- added script for automating the binding generation Signed-off-by: Michael X. Grey <[email protected]> * Apply cargo fmt Signed-off-by: Michael X. Grey <[email protected]> * Update bindings for kilted Signed-off-by: Michael X. Grey <[email protected]> * Update bindings for humble Signed-off-by: Michael X. Grey <[email protected]> * Update bindings for rolling Signed-off-by: Michael X. Grey <[email protected]> * Fix use of serde Signed-off-by: Michael X. Grey <[email protected]> * Use desktop image so it includes rcl_action which we need for action bindings Signed-off-by: Michael X. Grey <[email protected]> * Fix serde Signed-off-by: Michael X. Grey <[email protected]> * Finish documentation for GoalClientStream Signed-off-by: Michael X. Grey <[email protected]> * Enable serde for goal status info Signed-off-by: Michael X. Grey <[email protected]> * Fix action cancellation pipeline Signed-off-by: Michael X. Grey <[email protected]> * More trait re-exports Signed-off-by: Michael X. Grey <[email protected]> * Add tests for action cancellation Signed-off-by: Michael X. Grey <[email protected]> * Fix use of action client options Signed-off-by: Michael X. Grey <[email protected]> * Fix style Signed-off-by: Michael X. Grey <[email protected]> * Remove use of .clear_poison because it is not stable in 1.75 Signed-off-by: Michael X. Grey <[email protected]> * chore: revert bindings-related changes (#5) Signed-off-by: Esteve Fernandez <[email protected]> * update rosidl_runtime_rs for action support (#6) Signed-off-by: Esteve Fernandez <[email protected]> * revert bindings generation changes --------- Signed-off-by: Michael X. Grey <[email protected]> Signed-off-by: Michael X. Grey <[email protected]> Signed-off-by: Esteve Fernandez <[email protected]> Co-authored-by: Nathan Wiebe Neufeldt <[email protected]> Co-authored-by: Esteve Fernandez <[email protected]>
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.