Skip to content

Commit 266c08f

Browse files
mxgreynwnesteve
authored
feat: async actions (#503)
* 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]>
1 parent b4a5e32 commit 266c08f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+7821
-135
lines changed

rclrs/Cargo.toml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,43 @@ path = "src/lib.rs"
1717
# Needed for dynamically finding type support libraries
1818
ament_rs = { version = "0.2", optional = true }
1919

20+
# Needed to create the GoalClientStream
21+
async-stream = "*"
22+
2023
# Needed for uploading documentation to docs.rs
2124
cfg-if = "1.0.0"
2225

2326
# Needed for clients
2427
futures = "0.3"
2528

29+
# Needed for racing futures
30+
futures-lite = { version = "2.6", features = ["std", "race"] }
31+
2632
# Needed for the runtime-agnostic timeout feature
2733
async-std = "1.13"
2834

2935
# Needed for dynamic messages
3036
libloading = { version = "0.8", optional = true }
3137

3238
# Needed for the Message trait, among others
33-
rosidl_runtime_rs = "0.4"
39+
rosidl_runtime_rs = "0.5"
3440

3541
# Needed for serliazation and deserialization of vendored messages
3642
serde = { version = "1", optional = true, features = ["derive"] }
3743
serde-big-array = { version = "0.5.1", optional = true }
3844

45+
# Needed to watch for the cancel signal for actions. Note that this only brings
46+
# in the sync module of tokio, which is a fairly light weight dependency. The
47+
# channels in this module work with any async runtime, so this does not lock us
48+
# into the tokio runtime.
49+
tokio = { version = "1", features = ["sync"] }
50+
51+
# Needed to combine concurrent streams for easier ergonomics in action clients
52+
tokio-stream = "0.1"
53+
54+
# Needed by action clients to generate UUID values for their goals
55+
uuid = { version = "1", features = ["v4"] }
56+
3957
[dev-dependencies]
4058
# Needed for e.g. writing yaml files in tests
4159
tempfile = "3.3.0"

rclrs/build.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ fn main() {
5555
}
5656

5757
println!("cargo:rustc-link-lib=dylib=rcl");
58+
println!("cargo:rustc-link-lib=dylib=rcl_action");
5859
println!("cargo:rustc-link-lib=dylib=rcl_yaml_param_parser");
5960
println!("cargo:rustc-link-lib=dylib=rcutils");
6061
println!("cargo:rustc-link-lib=dylib=rmw");

rclrs/generate_bindings.py

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)