-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
bt_service_node and bt_action_node: Don't block BT loop #4214
bt_service_node and bt_action_node: Don't block BT loop #4214
Conversation
@christophfroehlich, your PR has failed to build. Please check CI outputs and resolve issues. |
1 similar comment
@christophfroehlich, your PR has failed to build. Please check CI outputs and resolve issues. |
Maybe we've hit the edges of my knowledge on So, instead I think we should make this non-zero (so we can wait a bit to get an immediate response if possible) but your point has been made that waiting the full timeout will keep the BT ticking at approximately the set rate, but occasionally violate. Perhaps we should make this 1ms (which would limit the tree's tick rate to 100hz) or some percentage of the total tick rate (i.e. 50%, 80%, 90%). Also, I think this exact same logic should be done in the |
I tested it for some days now within our setup, and I haven't seen any problems. If the service result is not there, it resumes with the tick. Otherwise it takes the result. I don't know the rclcpp code very well, I just have seen the API docs and thought I could give the non-blocking option a try
|
I'm less concerned about today and more concerned about tomorrow. Right, it would be easy for a contributor to
and seemingly both are correct, If we have a timeout of Does that make sense? We could just add a multiplier on the BT loop time (0.5 - 0.9) so that we use less than the loop time for waiting on the service / action so we meet out timeout deadlines, but have more time waiting to be immediately reactive with results to move on in the system. I figure ~half is a good metric |
I understand your concerns, that makes sense to me. I still hope that such behaviour-braking changes won't get merged silently in core packages ;) I'll test your proposal and will report back |
Same, but I noticed that there are no tests using |
ef63ed3
to
1fa30e3
Compare
@christophfroehlich, your PR has failed to build. Please check CI outputs and resolve issues. |
1 similar comment
@christophfroehlich, your PR has failed to build. Please check CI outputs and resolve issues. |
1fa30e3
to
9ab9552
Compare
@christophfroehlich, your PR has failed to build. Please check CI outputs and resolve issues. |
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.
Can this be expanded to the BT action node as well? They have the same characteristics and I'd be surprised if for some reason that didn't cause you to lose loop rate as well
I never had problems with the action node. However, I tried the same already in the following section |
Maybe there was a bug in the service node then? That's the same design pattern in both (literally I copy + pasted it over and modified for services) so I don't know why services would sometimes exceed but actions do not. Can you look into some potential mishandling of the timeout in the service node before we merge this in? Perhaps there's some error that resolves this instead of setting a fraction Also, heed the DCO and linting failures, those must be fixed before merge |
Signed-off-by: Christoph Froehlich <[email protected]>
9ab9552
to
27db6f0
Compare
@christophfroehlich, your PR has failed to build. Please check CI outputs and resolve issues. |
I investigated this now: I introduced an error with the factor, the operator The difference is that the service node waits with An explicit cast does the job: max_timeout_ = std::chrono::duration_cast<std::chrono::milliseconds>(bt_loop_duration * 0.5); This works now with both nodes. |
Signed-off-by: Christoph Froehlich <[email protected]>
Signed-off-by: Christoph Froehlich <[email protected]>
@christophfroehlich, your PR has failed to build. Please check CI outputs and resolve issues. |
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.
I've tested the changes, LGTM so far.
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.
Makes sense, glad I inquired!
How do you handle backports in nav2? Is it possible to backport this up to humble? |
Yes it can be, I'll handle it next sync. We're in a weird state right now with CI and such so things are a bit unpredictable. It'll get in there though first opportunity |
…on#4214) * Set smaller timeout for service node Signed-off-by: Christoph Froehlich <[email protected]> * Fix timeout calculation for service node Signed-off-by: Christoph Froehlich <[email protected]> * Add a feasible timeout also for action node Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]>
…on#4214) * Set smaller timeout for service node Signed-off-by: Christoph Froehlich <[email protected]> * Fix timeout calculation for service node Signed-off-by: Christoph Froehlich <[email protected]> * Add a feasible timeout also for action node Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]>
…on#4214) * Set smaller timeout for service node Signed-off-by: Christoph Froehlich <[email protected]> * Fix timeout calculation for service node Signed-off-by: Christoph Froehlich <[email protected]> * Add a feasible timeout also for action node Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]> Signed-off-by: enricosutera <[email protected]>
@SteveMacenski May I ping you again and ask for a backport? |
If it wasn't backported (which it looks like it could have been?) it was due to huge merge conflicts on cherry picking. If you'd like this in iron, please submit a PR against Sorry about the manual-ness, the automated tools must have failed badly enough that I judged it not possible at the time. |
…on#4214) * Set smaller timeout for service node Signed-off-by: Christoph Froehlich <[email protected]> * Fix timeout calculation for service node Signed-off-by: Christoph Froehlich <[email protected]> * Add a feasible timeout also for action node Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]>
I cherry-picked this one and the other two PRs on top of the humble branch, without big issues. Would you consider them if I submit manual backports for iron and humble? (I'm stuck to humble in an industry project..) |
The main rules are that:
If it meets these, then its a candidate for backporting |
…on#4214) * Set smaller timeout for service node Signed-off-by: Christoph Froehlich <[email protected]> * Fix timeout calculation for service node Signed-off-by: Christoph Froehlich <[email protected]> * Add a feasible timeout also for action node Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]>
…on#4214) * Set smaller timeout for service node Signed-off-by: Christoph Froehlich <[email protected]> * Fix timeout calculation for service node Signed-off-by: Christoph Froehlich <[email protected]> * Add a feasible timeout also for action node Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]>
…) (#4408) * bt_service_node and bt_action_node: Don't block BT loop (#4214) * Set smaller timeout for service node Signed-off-by: Christoph Froehlich <[email protected]> * Fix timeout calculation for service node Signed-off-by: Christoph Froehlich <[email protected]> * Add a feasible timeout also for action node Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]> * Increasing test count from timeout handling changes (#4234) Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
…-navigation#4214) (ros-navigation#4408) * bt_service_node and bt_action_node: Don't block BT loop (ros-navigation#4214) * Set smaller timeout for service node Signed-off-by: Christoph Froehlich <[email protected]> * Fix timeout calculation for service node Signed-off-by: Christoph Froehlich <[email protected]> * Add a feasible timeout also for action node Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]> * Increasing test count from timeout handling changes (ros-navigation#4234) Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
…) (#4408) (#4475) * bt_service_node and bt_action_node: Don't block BT loop (#4214) * Set smaller timeout for service node * Fix timeout calculation for service node * Add a feasible timeout also for action node --------- * Increasing test count from timeout handling changes (#4234) --------- Signed-off-by: Christoph Froehlich <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
…on#4214) * Set smaller timeout for service node Signed-off-by: Christoph Froehlich <[email protected]> * Fix timeout calculation for service node Signed-off-by: Christoph Froehlich <[email protected]> * Add a feasible timeout also for action node Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]>
…-navigation#4214) (ros-navigation#4408) (ros-navigation#4475) * bt_service_node and bt_action_node: Don't block BT loop (ros-navigation#4214) * Set smaller timeout for service node * Fix timeout calculation for service node * Add a feasible timeout also for action node --------- * Increasing test count from timeout handling changes (ros-navigation#4234) --------- Signed-off-by: Christoph Froehlich <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
* replace throw-error with error-log to avoid UAF mentioned in ros-navigation#4175 (ros-navigation#4180) (ros-navigation#4305) * replace throw-error with error-log to avoid UAF * fix typo --------- Signed-off-by: GoesM <[email protected]> Co-authored-by: GoesM <[email protected]> * Cherry-pick from 15c9be0 (ros-navigation#4317) Convert all wall timers and wall rates to ROS clock respecting rates and timers (ros-navigation#4000) * Convert all wall timers and wall rates to ROS clock respecting rates and timers * linty mclint face * WPF wait plugin respect time * move duration metrics to use local clocks * bumping version for cache to break it * complete timing refactor * remove old variable * Add dynamic parameter (ros-navigation#4319) To fix ros-navigation#4315 Signed-off-by: Huy Nguyen Van <[email protected]> * Humble release 11: May 23, 2024 (ros-navigation#4365) * Scale cost critic's weight when dynamically updated (ros-navigation#4246) * Scale cost critic's weight when dynamically updated Signed-off-by: pepisg <[email protected]> * sign off Signed-off-by: pepisg <[email protected]> --------- Signed-off-by: pepisg <[email protected]> * Add expanding the ~/ to the full home dir of user in the path to the map yaml. (ros-navigation#4258) * Add user home expander of home sequence Signed-off-by: Wiktor Bajor <[email protected]> * Add passing home dir as string instead of const char* Signed-off-by: Wiktor Bajor <[email protected]> * Add docs Signed-off-by: Wiktor Bajor <[email protected]> * Fix function declaration Signed-off-by: Wiktor Bajor <[email protected]> * Fix linter issues Signed-off-by: Wiktor Bajor <[email protected]> * Uncrustify linter Signed-off-by: Wiktor Bajor <[email protected]> * Uncrustify linter Signed-off-by: Wiktor Bajor <[email protected]> * Uncrustify linter: remove remove whitespace Signed-off-by: Wiktor Bajor <[email protected]> --------- Signed-off-by: Wiktor Bajor <[email protected]> * Implement Critic for Velocity Deadband Hardware Constraints (ros-navigation#4256) * Adding new velocity deadband critic. - add some tests - cast double to float - add new features from "main" branch - fix formating - add cost test - fix linting issue - add README Signed-off-by: Denis Sokolov <[email protected]> * Remove velocity deadband critic from defaults Signed-off-by: Denis Sokolov <[email protected]> * remove old weight Signed-off-by: Denis Sokolov <[email protected]> * fix velocity deadband critic tests Signed-off-by: Denis Sokolov <[email protected]> --------- Signed-off-by: Denis Sokolov <[email protected]> * removing clearable layer param (unused) (ros-navigation#4280) * provide message validation check API (ros-navigation#4276) * provide validation_message.hpp Signed-off-by: goes <[email protected]> * fix typo Signed-off-by: goes <[email protected]> * add test_validation_messages.cpp Signed-off-by: goes <[email protected]> * change include-order Signed-off-by: goes <[email protected]> * reformat Signed-off-by: goes <[email protected]> * update test Signed-off-by: goes <[email protected]> --------- Signed-off-by: goes <[email protected]> Co-authored-by: goes <[email protected]> * Add footprint clearing for static layer (ros-navigation#4282) * Add footprint clearing for static layer Signed-off-by: Tony Najjar <[email protected]> * fix flckering --------- Signed-off-by: Tony Najjar <[email protected]> * Fix ros-navigation#4268 (ros-navigation#4296) Signed-off-by: Steve Macenski <[email protected]> * Update README.md of nav2_bt_navigator (ros-navigation#4309) Update link to docs Signed-off-by: João Britto <[email protected]> * Fix undefined symbols in `libpf_lib.so` (ros-navigation#4312) When I build `nav2_amcl` with `-Wl,--no-undefined` I noticed `libpf_lib.so` has undefined symbols. This PR correctly links `libpf_lib.so` to `libm` so all symbols can be found. You can verify this by executing the following command: ``` ldd -r ./build/nav2_amcl/src/pf/libpf_lib.so linux-vdso.so.1 (0x00007ffd1f8c0000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000074e909a00000) /lib64/ld-linux-x86-64.so.2 (0x000074e909e60000) undefined symbol: ceil (./build/nav2_amcl/src/pf/libpf_lib.so) undefined symbol: atan2 (./build/nav2_amcl/src/pf/libpf_lib.so) undefined symbol: sin (./build/nav2_amcl/src/pf/libpf_lib.so) undefined symbol: hypot (./build/nav2_amcl/src/pf/libpf_lib.so) undefined symbol: cos (./build/nav2_amcl/src/pf/libpf_lib.so) undefined symbol: log (./build/nav2_amcl/src/pf/libpf_lib.so) undefined symbol: sqrt (./build/nav2_amcl/src/pf/libpf_lib.so) undefined symbol: floor (./build/nav2_amcl/src/pf/libpf_lib.so) ``` Signed-off-by: Ramon Wijnands <[email protected]> * msg validation check for `/initialpose` in `nav2_amcl` (ros-navigation#4301) * add validation check for PoseWithCovarianceStamped Signed-off-by: goes <[email protected]> * remove rebundant check before Signed-off-by: goes <[email protected]> * reformat Signed-off-by: goes <[email protected]> * typo fixed Signed-off-by: goes <[email protected]> * change the type-name Signed-off-by: goes <[email protected]> * update test Signed-off-by: goes <[email protected]> * reformat Signed-off-by: goes <[email protected]> * . Signed-off-by: goes <[email protected]> * add comment Signed-off-by: goes <[email protected]> * update comment Signed-off-by: goes <[email protected]> * change header Signed-off-by: goes <[email protected]> * update test Signed-off-by: goes <[email protected]> * typo fixed Signed-off-by: goes <[email protected]> --------- Signed-off-by: goes <[email protected]> Co-authored-by: goes <[email protected]> * 4320: Changed precision of calculations of the HybridNode MotionTable::getClosestAngularBin. (ros-navigation#4324) Signed-off-by: Krzysztof Pawełczyk <[email protected]> Co-authored-by: Krzysztof Pawełczyk <[email protected]> * [LifecycleNode] add bond_heartbeat_period (ros-navigation#4342) * add bond_heartbeat_period Signed-off-by: Guillaume Doisy <[email protected]> * lint Signed-off-by: Guillaume Doisy <[email protected]> --------- Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> * Update path_longer_on_approach.cpp (ros-navigation#4344) Fix the bug that isPathUpdated function will return false for the reason that it compare the timestaped between new path and old path's last pose Signed-off-by: StetroF <[email protected]> * [LifecycleManagerClient] clean set_initial_pose and navigate_to_pose (ros-navigation#4346) Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> * Move projectState after getPointsInside (ros-navigation#4356) * Modify test to check fix Signed-off-by: Brice <[email protected]> * Add static polygon check before simulation Signed-off-by: Brice <[email protected]> --------- Signed-off-by: Brice <[email protected]> * adding final pose in analytic expansion to check (ros-navigation#4353) * fix sync merge conflicts * bump humble to 1.1.15 for release * Revert "[LifecycleNode] add bond_heartbeat_period (ros-navigation#4342)" This reverts commit 6e44178. --------- Signed-off-by: pepisg <[email protected]> Signed-off-by: Wiktor Bajor <[email protected]> Signed-off-by: Denis Sokolov <[email protected]> Signed-off-by: goes <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: João Britto <[email protected]> Signed-off-by: Ramon Wijnands <[email protected]> Signed-off-by: Krzysztof Pawełczyk <[email protected]> Signed-off-by: Guillaume Doisy <[email protected]> Signed-off-by: StetroF <[email protected]> Signed-off-by: Brice <[email protected]> Co-authored-by: Pedro Alejandro González <[email protected]> Co-authored-by: Wiktor Bajor <[email protected]> Co-authored-by: Sokolov Denis <[email protected]> Co-authored-by: GoesM <[email protected]> Co-authored-by: goes <[email protected]> Co-authored-by: Tony Najjar <[email protected]> Co-authored-by: João Britto <[email protected]> Co-authored-by: Ramon Wijnands <[email protected]> Co-authored-by: AzaelCicero <[email protected]> Co-authored-by: Krzysztof Pawełczyk <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: StetroF <[email protected]> Co-authored-by: BriceRenaudeau <[email protected]> * adding mutex lock around map resizing due to dynamic parameter changes and associated processes (ros-navigation#4373) (ros-navigation#4378) (cherry picked from commit b0abc78) Co-authored-by: Steve Macenski <[email protected]> * Make BT nodes have configurable wait times (Backport ros-navigation#3960 ros-navigation#4178 ros-navigation#4203) (ros-navigation#4409) * WIP: Make BT nodes have configurable wait times. (ros-navigation#3960) * Make BT nodes have configurable wait times. Previous solution provided hardcoded 1s value. Right now the value can be configured for BT Action, Cancel and Service nodes. [ros-navigation#3920] Signed-off-by: Adam Galecki <[email protected]> * Make BT nodes have configurable wait times. Previous solution provided hardcoded 1s value. Right now the value can be configured for BT Action, Cancel and Service nodes. [ros-navigation#3920] Signed-off-by: Adam Galecki <[email protected]> * Fix typos, linting errors and value type from float to int * Fix extra underscores * Fix extra underscore * Update unit tests with blackboard parameter Signed-off-by: Adam Galecki <[email protected]> * Fix formatting errors Signed-off-by: Adam Galecki <[email protected]> * Update system tests to match new parameter Signed-off-by: Adam Galecki <[email protected]> --------- Signed-off-by: Adam Galecki <[email protected]> Signed-off-by: Christoph Froehlich <[email protected]> * chore(nav2_behavior_tree): log actual wait period in bt_action_node (ros-navigation#4178) Signed-off-by: Felix <[email protected]> Co-authored-by: Felix <[email protected]> Signed-off-by: Christoph Froehlich <[email protected]> * fix missing param declare (ros-navigation#4203) Signed-off-by: nelson <[email protected]> Signed-off-by: Christoph Froehlich <[email protected]> * Fix error messages (ros-navigation#4411) Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Adam Galecki <[email protected]> Signed-off-by: Christoph Froehlich <[email protected]> Signed-off-by: Felix <[email protected]> Signed-off-by: nelson <[email protected]> Co-authored-by: Adam Gałecki <[email protected]> Co-authored-by: bi0ha2ard <[email protected]> Co-authored-by: Felix <[email protected]> Co-authored-by: nelson <[email protected]> * Enable reloading BT xml file with same name (ros-navigation#4209) (ros-navigation#4422) * Let BtActionServer overwrite xml * Make a ROS parameter for it * Rename flag to always reload BT xml file --------- Signed-off-by: Johannes Huemer <[email protected]> Signed-off-by: Christoph Froehlich <[email protected]> Co-authored-by: Johannes Huemer <[email protected]> * fix bug mentioned in ros-navigation#3958 (ros-navigation#3972) (ros-navigation#4463) * bug fixed * add space * Update planner_server.cpp * add space for code style * add childLifecycleNode mode to costmap_2d_ros * add childLifecycleNode mode to costmap_2d_ros * add childLifecycleNode mode to costmap_2d_ros * add childLifecycleNode mode in costmap_2d_ros * add childLifecycleNode mode in costmap_2d_ros * add childLifecycleNode mode in costmap_2d_ros * add ChildLifecycleNode mode in costmap_2d_ros * NodeOption: is_lifecycle_follower_ * NodeOption: is_lifecycle_follower_ * fit to NodeOption: is_lifecycle_follower_ * NodeOption: is_lifecycle_follower_ * fit to NodeOption: is_lifecycle_follower * fit to NodeOption: is_lifecycle_follower * fit reorder Werror * fix wrong use of is_lifecycle_follower * remove blank line * NodeOption: is_lifecycle_follower_ * NodeOption: is_lifecycle_follower_ * Add files via upload * NodeOption: is_lifecycle_follower_ * NodeOption:is_lifecycle_follower_ * NodeOption:is_lifecycle_follower * NodeOption:is_lifecycle_follower * NodeOption:is_lifecycle_follower * change default * add NodeOption for costmap_2d_ros * add node options for costmap2dros as an independent node * code style reformat * fit to NodeOption of Costmap2DROS * fit to NodeOption of Costmap2DROS * fit to NodeOption of Costmap2DROS * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp * changes * comment changes * change get_parameter into =false * comment modification * missing line * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp * delete last line * change lifecycle_test fit to NodeOption --------- Co-authored-by: GoesM <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * bt_service_node and bt_action_node: Don't block BT loop (backport ros-navigation#4214) (ros-navigation#4408) (ros-navigation#4475) * bt_service_node and bt_action_node: Don't block BT loop (ros-navigation#4214) * Set smaller timeout for service node * Fix timeout calculation for service node * Add a feasible timeout also for action node --------- * Increasing test count from timeout handling changes (ros-navigation#4234) --------- Signed-off-by: Christoph Froehlich <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * Behavior tree node for extracting pose from path (ros-navigation#4518) (ros-navigation#4525) * add get pose from path action Signed-off-by: MarcM0 <[email protected]> * cleanup from PR suggestions Signed-off-by: MarcM0 <[email protected]> * Updates for main compatibility Signed-off-by: MarcM0 <[email protected]> * Lint and build fix Signed-off-by: MarcM0 <[email protected]> * More Lint and warnings Signed-off-by: MarcM0 <[email protected]> * More Lint and build Signed-off-by: MarcM0 <[email protected]> * remove code left over from older file Signed-off-by: MarcM0 <[email protected]> * fix test blackboard var name Signed-off-by: MarcM0 <[email protected]> * only populate pose frame if empty Signed-off-by: MarcM0 <[email protected]> * lint Signed-off-by: MarcM0 <[email protected]> --------- Signed-off-by: MarcM0 <[email protected]> (cherry picked from commit 12a9c1d) Co-authored-by: Marc Morcos <[email protected]> * Make ros-navigation#4525 compile on humble (ros-navigation#4526) * Make it compile on humble Signed-off-by: Christoph Froehlich <[email protected]> * Remove formatting Signed-off-by: Christoph Froehlich <[email protected]> --------- Signed-off-by: Christoph Froehlich <[email protected]> * Fix backward motion for graceful controller (ros-navigation#4527) (ros-navigation#4566) * Fix backward motion for graceful controller Signed-off-by: Alberto Tudela <[email protected]> * Update smooth_control_law.cpp Signed-off-by: Alberto Tudela <[email protected]> --------- Signed-off-by: Alberto Tudela <[email protected]> (cherry picked from commit d1ad640) Co-authored-by: Alberto Tudela <[email protected]> * nav2_collision_monitor dynamic parameters polygon and source enabled for Humble (ros-navigation#4615) * Copy modification from c2d84df into humble collision_monitor for dynamic parameter enabled in polygon * Add the enabled dynamic parameter for source. Signed-off-by: Enzo Ghisoni <[email protected]> * Start backport action_state_ declaration in collision_monitor_node_test.cpp Signed-off-by: EnzoGhisoni <[email protected]> --------- Signed-off-by: EnzoGhisoni <[email protected]> Co-authored-by: EnzoGhisoni <[email protected]> * Humble release 12: August 23 (ros-navigation#4644) * Add configure and cleanup transitions to lifecycle manager and client (ros-navigation#4371) Signed-off-by: Joni Pöllänen <[email protected]> * [RotationShimController] Rotate to goal heading (ros-navigation#4332) When arriving in the goal xy tolerance, the rotation shim controller takes back the control to command the robot to rotate in the goal heading orientation. The initial goal of the rotationShimController was to rotate the robot at the beginning of a navigation towards the paths orientation because some controllers are not good at performing in place rotations. For the same reason, the rotationShimController should be able to rotate the robot towards the goal heading. Signed-off-by: Antoine Gennart <[email protected]> * [RotationShimController] Fix test for rotate to goal heading (ros-navigation#4289) (ros-navigation#4391) * Fix rotate to goal heading tests Signed-off-by: Antoine Gennart <[email protected]> * reset laser_scan_filter before reinit (ros-navigation#4397) Signed-off-by: goes <[email protected]> Co-authored-by: goes <[email protected]> * Warn if inflation_radius_ < inscribed_radius_ (ros-navigation#4423) * Warn if inflation_radius_ < inscribed_radius_ Signed-off-by: Tony Najjar <[email protected]> * convert to error Signed-off-by: Tony Najjar <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> * chore: cleanup ros1 leftovers (ros-navigation#4446) Signed-off-by: Rein Appeldoorn <[email protected]> * precomputeDistanceHeuristic is now computed once (ros-navigation#4451) Signed-off-by: Vincent Belpois <[email protected]> Co-authored-by: SiddharthaUpase <[email protected]> * shutdown services in destructor of `ClearCostmapService` (ros-navigation#4495) Signed-off-by: GoesM_server <[email protected]> Co-authored-by: GoesM_server <[email protected]> * fix(nav2_costmap_2d): make obstacle layer not current on enabled toggle (ros-navigation#4507) Signed-off-by: Kemal Bektas <[email protected]> Co-authored-by: Kemal Bektas <[email protected]> * min_turning_r_ getting param fix (ros-navigation#4510) * min_turning_r_ getting param fix Signed-off-by: Ivan Radionov <[email protected]> * Update nav2_mppi_controller/include/nav2_mppi_controller/motion_models.hpp Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Ivan Radionov <[email protected]> --------- Signed-off-by: Ivan Radionov <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Ivan Radionov <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * Return out of map update if frames mismatch. Signed-off-by Joey Yang (ros-navigation#4517) Signed-off-by: Joey Yang <[email protected]> * check nullptr in smoothPlan() (ros-navigation#4544) * check nullptr in smoothPlan() Signed-off-by: GoesM <[email protected]> * code-style Signed-off-by: GoesM <[email protected]> * code-style Signed-off-by: GoesM <[email protected]> * simple change Signed-off-by: GoesM <[email protected]> --------- Signed-off-by: GoesM <[email protected]> Co-authored-by: GoesM <[email protected]> * bump to 1.1.15 Signed-off-by: Steve Macenski <[email protected]> * Revert "Add configure and cleanup transitions to lifecycle manager and client (ros-navigation#4371)" This reverts commit 06ec958. * fix merge conflict with humble sync * fix merge conflict with humble sync --------- Signed-off-by: Joni Pöllänen <[email protected]> Signed-off-by: Antoine Gennart <[email protected]> Signed-off-by: Antoine Gennart <[email protected]> Signed-off-by: goes <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Rein Appeldoorn <[email protected]> Signed-off-by: Vincent Belpois <[email protected]> Signed-off-by: GoesM_server <[email protected]> Signed-off-by: Kemal Bektas <[email protected]> Signed-off-by: Ivan Radionov <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Joey Yang <[email protected]> Signed-off-by: GoesM <[email protected]> Co-authored-by: Joni Pöllänen <[email protected]> Co-authored-by: Saitama <[email protected]> Co-authored-by: GoesM <[email protected]> Co-authored-by: goes <[email protected]> Co-authored-by: Tony Najjar <[email protected]> Co-authored-by: Rein Appeldoorn <[email protected]> Co-authored-by: Vincent <[email protected]> Co-authored-by: SiddharthaUpase <[email protected]> Co-authored-by: Kemal Bektas <[email protected]> Co-authored-by: Kemal Bektas <[email protected]> Co-authored-by: Ivan Radionov <[email protected]> Co-authored-by: Ivan Radionov <[email protected]> Co-authored-by: Joey Yang <[email protected]> * Fixing ros-navigation#4661: MPPI ackermann reversing taking incorrect sign sometimes (ros-navigation#4664) (ros-navigation#4668) * Fixing ros-navigation#4661: MPPI ackermann reversing taking incorrect sign sometimes Signed-off-by: Steve Macenski <[email protected]> * fixing unit test for type implicit cast Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> (cherry picked from commit 7eb47d8) Co-authored-by: Steve Macenski <[email protected]> --------- Signed-off-by: GoesM <[email protected]> Signed-off-by: Huy Nguyen Van <[email protected]> Signed-off-by: pepisg <[email protected]> Signed-off-by: Wiktor Bajor <[email protected]> Signed-off-by: Denis Sokolov <[email protected]> Signed-off-by: goes <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: João Britto <[email protected]> Signed-off-by: Ramon Wijnands <[email protected]> Signed-off-by: Krzysztof Pawełczyk <[email protected]> Signed-off-by: Guillaume Doisy <[email protected]> Signed-off-by: StetroF <[email protected]> Signed-off-by: Brice <[email protected]> Signed-off-by: Adam Galecki <[email protected]> Signed-off-by: Christoph Froehlich <[email protected]> Signed-off-by: Felix <[email protected]> Signed-off-by: nelson <[email protected]> Signed-off-by: Johannes Huemer <[email protected]> Signed-off-by: EnzoGhisoni <[email protected]> Signed-off-by: Joni Pöllänen <[email protected]> Signed-off-by: Antoine Gennart <[email protected]> Signed-off-by: Antoine Gennart <[email protected]> Signed-off-by: Rein Appeldoorn <[email protected]> Signed-off-by: Vincent Belpois <[email protected]> Signed-off-by: GoesM_server <[email protected]> Signed-off-by: Kemal Bektas <[email protected]> Signed-off-by: Ivan Radionov <[email protected]> Signed-off-by: Joey Yang <[email protected]> Signed-off-by: GoesM <[email protected]> Co-authored-by: GoesM <[email protected]> Co-authored-by: GoesM <[email protected]> Co-authored-by: Benjamin-Tan <[email protected]> Co-authored-by: Huy Nguyen Van <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Co-authored-by: Pedro Alejandro González <[email protected]> Co-authored-by: Wiktor Bajor <[email protected]> Co-authored-by: Sokolov Denis <[email protected]> Co-authored-by: Tony Najjar <[email protected]> Co-authored-by: João Britto <[email protected]> Co-authored-by: Ramon Wijnands <[email protected]> Co-authored-by: AzaelCicero <[email protected]> Co-authored-by: Krzysztof Pawełczyk <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: StetroF <[email protected]> Co-authored-by: BriceRenaudeau <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Christoph Fröhlich <[email protected]> Co-authored-by: Adam Gałecki <[email protected]> Co-authored-by: bi0ha2ard <[email protected]> Co-authored-by: Felix <[email protected]> Co-authored-by: nelson <[email protected]> Co-authored-by: Johannes Huemer <[email protected]> Co-authored-by: Marc Morcos <[email protected]> Co-authored-by: Alberto Tudela <[email protected]> Co-authored-by: Enzo Ghisoni <[email protected]> Co-authored-by: EnzoGhisoni <[email protected]> Co-authored-by: Joni Pöllänen <[email protected]> Co-authored-by: Saitama <[email protected]> Co-authored-by: Rein Appeldoorn <[email protected]> Co-authored-by: Vincent <[email protected]> Co-authored-by: SiddharthaUpase <[email protected]> Co-authored-by: Kemal Bektas <[email protected]> Co-authored-by: Kemal Bektas <[email protected]> Co-authored-by: Ivan Radionov <[email protected]> Co-authored-by: Ivan Radionov <[email protected]> Co-authored-by: Joey Yang <[email protected]>
Basic Info
Description of contribution in a few bullet points
spin_until_future_complete
introduced with Use incremental timeouts in spin_until_future_calls during BT execution to handle large server timeouts #2320 waits exactlybt_loop_duration_
, which means thatloopRate.sleep()
might return false if anything else needs more time in the BT to finish the loop.spin_until_future_complete
to be non-blocking, which works fine in our setups.Description of documentation updates required from your changes
none
Future work that may be required in bullet points
Please backport also to iron and humble if possible.
For Maintainers: