-
Notifications
You must be signed in to change notification settings - Fork 44
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
RCLC Actions Implementation #170
Conversation
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.
Did a quick review and found minor points only. @JanStaschulat, could you please perform a thorough review as maintainer of rclc and developer of the Executor - but probably after the above TODOs are implemented.
141c8d9
to
bc9e747
Compare
97b9782
to
38b5ae1
Compare
@Acuadros95 I cannot add you as a reviewer, but at some point next week would be nice if you precheck this new API. |
c8adcea
to
6026045
Compare
Hello @ralph-lange and @JanStaschulat could you review this? It is done from our side and we want to merge it. @Acuadros95 could you detail the problems with the CI? |
Apart from my last comment, last CI failed on |
@mergify backport master |
🟠 Waiting for conditions to match
Hey, I reacted but my real name is @Mergifyio |
As type structs of the executor (e.g. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #170 +/- ##
==========================================
+ Coverage 60.84% 63.28% +2.44%
==========================================
Files 13 16 +3
Lines 1494 2160 +666
Branches 445 647 +202
==========================================
+ Hits 909 1367 +458
- Misses 379 475 +96
- Partials 206 318 +112 ☔ View full report in Codecov by Sentry. |
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.
Thanks you for updating the review. I am fine with all the changes except the verification of the while loops. Please document in more detail in which you show that the while loops always terminate (in semi-formal way) e.g. using
pre-condition:xxx
post-condition: xxx
Also rebase to main and create PR for Rolling
.
How about using a for-loop with just a state-checking condition?
|
I agree with the better performance argument, it will also simplify the code. Edit: @JanStaschulat After looking into it, using a for-loop approach can be tricky. I think the while approach is the best for this case. |
I was thinking about sometheing like this:
You might want to generalize this function with the condition-check as parameter function if you like. |
Edit: Are always the elements removed? Or only in some cases? At least in those cases, where elements are not removed, you could use a |
Maybe we can modify
Anyway, this can lead to infinite loops too. Edit: they are only removed in some cases, so yes, we can use the |
Signed-off-by: Jan Staschulat <jan.staschulat@de.bosch.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
Signed-off-by: Antonio Cuadros <acuadros1995@gmail.com>
5dfcd13
to
1191772
Compare
Co-authored-by: Jan Staschulat <jan.staschulat@de.bosch.com>
…r_new_data this flag is assigned again. Signed-off-by: Jan Staschulat (CR/ADA1.2) <jan.staschulat@de.bosch.com>
Signed-off-by: Jan Staschulat (CR/ADA1.2) <jan.staschulat@de.bosch.com>
… into feature/action_support_2
removed reset of |
DCO and we are done @Acuadros95 |
Please @JanStaschulat add your final review and we are ready to merge |
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.
LGTM
❌ No backport have been createdThe new Mergify permissions must be accepted to create pull request with |
This pull request has been mentioned on ROS Discourse. There might be relevant details there: https://discourse.ros.org/t/micro-ros-fully-supports-ros-2-features/23213/1 |
This pull request has been mentioned on ROS Discourse. There might be relevant details there: https://discourse.ros.org/t/ros-2-humble-hawksbill-released/25729/14 |
I propose here a draft implementation for ROS 2 Actions in the RCLC executor. By now I have integrated the Action server and client in the RCLC executor and created some utility functions.
The design should be discussed in the following points:
rclc_action_client_goal_callback_t
be hidden from the user and be called directly from the executor?Related:
TODO:
Client status(Is this neccesary?)Please feel free to add comments about the design or the implementation.
CC: @Acuadros95
Update API need to be modified, in RCLCPP user provides the following callbacks:
In the client, goal_response_callback should be optional and the executor should be in charge of request the result if goals were accepted. Feedback callback also should be optional and the middleware layer should be in charge of discard non-read messages. Result callback should be compulsory in RCLC Actions API.
Related: