-
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
fix bug mentioned in #3958 #3972
Conversation
I think this is a clever and fine solution to the problem, just some questions to answer |
add space for code style
We specially name nodes like our suggestion is: these child-LifecycleNode should have some basic specialist like:
such mechanism could be like:
Perhaps such mechanism could be used for any program in ROS2 ? |
At present, the unit test of CI takes nav2_ costmap_2d is considered as an independent LifecycleNode for launch and shutdown tests, which goes against the premise of our proposed modification proposal
For this, we have three suggestions to address different development needs that may exist in the future. 1. modify the unit-testIf it can be guaranteed that in current nav2 program usage and subsequent development, It's only in need to modify the 2: create a new class
|
If there is anymore work that requires our assistance, we'd like to have a try within our capabilities O(∩_∩)O |
What might you be interested in doing? I can always certainly find projects :-) Taking a stab at #3303 would be very helpful - Alexey made some changes to rclcpp::Rate to make it better supportable of different clocks https://github.com/AlexeyMerzlyakov/rclcpp/blob/rolling/rclcpp/include/rclcpp/rate.hpp#L141 |
WOW! That's cool ! Thanks a lot ~ |
add childLifecycleNode mode to costmap_2d_ros
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3972 +/- ##
==========================================
+ Coverage 90.20% 90.27% +0.06%
==========================================
Files 417 417
Lines 18605 18608 +3
==========================================
+ Hits 16783 16798 +15
+ Misses 1822 1810 -12 ☔ View full report in Codecov by Sentry. |
if only considering current nav2, we're very sure that such uncovered checks could be removed. However, perhaps it may be still worried that any future changes may make these checks work again. anyway, whether remove or retain them, I am very willing to make modifications based on your futher suggestions (●'◡'●) |
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 in concept, but we can play some games and make it cleaner
comment modification
missing line
The failure of CI test may show that some unit tests may need to change their constructor choice ? |
* @brief as a child-LifecycleNode : | ||
* sometimes costmap may be launched by another LifecycleNode and work as a child-thread | ||
* child-LifecycleNodes should wait for their parents to handle the shutdown, which includes this module | ||
* Thus, it's neccessary to set NodeOption is_lifecycle_follower_ as true |
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.
* Thus, it's neccessary to set NodeOption is_lifecycle_follower_ as true | |
* Thus, it's neccessary to set NodeOption is_lifecycle_follower_ as true |
Delete.
Sorry, just some changes to be clear in technical language, Delete that last line and that should be good |
great of thanks for your patience ~ |
delete last line
@GoesM I retriggered CI a few times, |
delete last line
change test fit to NodeOptions
Great! Thanks for the iteration! |
* 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 Co-authored-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp Co-authored-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp Co-authored-by: Steve Macenski <[email protected]> * 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]>
* 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 Co-authored-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp Co-authored-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp Co-authored-by: Steve Macenski <[email protected]> * 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]> Signed-off-by: gg <[email protected]>
* 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 Co-authored-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp Co-authored-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp Co-authored-by: Steve Macenski <[email protected]> * 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]> Signed-off-by: enricosutera <[email protected]>
* 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]>
* 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]>
…avigation#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]>
* 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
Description of documentation updates required from your changes
bug description
costmap is set as a Nav2::util LifecycleNode : ../nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp#L 73
all LifecycleNode would react to Ctrl+C ../nav2_util/src/lifecycle_node.cpp#L 90
all LifecycleNode would react to rcl_preshutdown randomly, and similar issue has been discussed before : ../ros2/rclcpp/issues/2096
this explanation should have been clear enough: ../nav2_planner/src/planner_server.cpp #L 214-L225
the bug happening in ISSUE: #3958 is caused by this.
because during shutdown_period,
costmap_ros_
may react rcl_preshutdown earlier, so that planner/controller may try to access thecostmap_ros_
though it has been a nullptr.our provided solution
it seems that
costmap
is only used as a child-thread of planner/controller, ../nav2_planner/src/planner_server.cpp#L 89so can we make it do nothing when reacting to Ctrl+C ?
doing so, its lifecycle would be completely bond to planner/controller's lifecycle, and also going to death in order.
because the
costmp_ros_
is just a thread created by planner/controller,whether program shutdown correctly or not, or even dead unexpectably, the child-thread could be closed all the time since parent-LifecycleNode sub-process dead.
Thus there's no need to worry whether it would be still alive after whole program exit finally.
in addition
if our solution being adopted, many checks could be removed :
double check in planner_server->on_deactivate()
double check in planner_server->on_cleanup()
double check in controller_server->on_deactivate()
double check in controller_server->on_cleanup()
these double checks are also designed to face to bugs in situation that
costmap_ros_
may be closed earlier than planner/controller. After our code modification, these checks are useless anymore.what's more, our solution performs perfectly during our local tests, much more than our past solutions mentioned in #3958
Future work that may be required in bullet points
For Maintainers: