Construct TF listeners passing nodes, spinning on separate thread#5406
Construct TF listeners passing nodes, spinning on separate thread#5406SteveMacenski merged 3 commits intoros-navigation:mainfrom
Conversation
|
@roncapat, your PR has failed to build. Please check CI outputs and resolve issues. |
|
Pull in / rebase on main once #5409 is merged to get CI to turn over. Sorry about that, we hit the wall with circleci limits and needing to load balance the builds. Also makes sure to sign off with DCO |
Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>
|
... huh. Alot of tests failed. I'm rerunning but if they fail again, I think this introduces a regression |
|
Also noticed right now... I will be able to investigate as early as next week, sorry. Will be interesting to see what is the cause, since in my real testing scenario it works impressively well. Hope to learn something and have a fix! |
How so? big perf boost? I wouldn't have expected that |
|
Nah I mean more like "without surprises" - but I am 99% sure that by using the node, it will benefit from enabled IPC on the /tf subscribers. It has been maybe two years or so, I have pushed in the past some patches for IPC in the TransformListener, need to check again in which conditions it gets enabled or not. |
|
yeah this is still failing completely - I think there's something awry here. I sampled 2 of the 16 tests and the lifecycle transition never completes while its waiting for a transform to be available (which seems awfully related, so I don't think its a CI fluke) |
Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>
|
I began to study deeper the What I assessed, basically, is that current nav2 code uses the constructor: This is to say, the "only" difference introduced in this PR is the node used by Of course, here we are passing a Moreover, it seems the only place where we have problems in the tests is the Will update you if I discover something more in the upcoming days. |
|
Ok, I may have undestood the issue. Per https://design.ros2.org/articles/node_lifecycle.html, in the Two options:
My personal take (a bit phylosophic, take this with a grain of salt): I fully understand why |
|
Mhm, I don't think we can activate until we have all the inputs required to actually be able to process something. Unlike other things like having services available from other nodes that we can make sure are available intrinsically by the ordering of lifecycle transitions, the setting of the robot's initial pose is a user-application defined task (or SLAM if running SLAM) that we cannot know is completed without checking.
We could move it to the already actived state, but then requests are able to be submitted without actually being processable. At the moment, I think we should leave this as-is but can be reopened designwise. I suppose we could have a timer or possibly in the update map thread check for this transform and have the similar delay after activation. That would complicate the implementation a bit, but nothing terrible. My biggest concern there is that we have a timeout feature for waiting for that transform. If we cannot return a failure on a state transition when that timeout is exceeded, then the server becomes in an unrecoverable state. If we have some ideas around that, I wouldn't object to a redesign of this handling.
TF is not lifecycle enabled, so that's no surprise. This isn't doing 'work' or given 'execution time' on the application though so I think that's fine. The lifecycle transition quote you gave from the design document I think is talking about the work in the transition function to block the completion of transition. While perhaps TF could technically do some work given a message, the transition isn't dependent on it, so that's fine. How we use TF to block for the available transform however does break that principle. But your point is understood. If we wanted to be aggressively pure on Lifecycle Nodes, there are many ROS libraries that would need to have activate/deactivate functions enabled. Anyway, but why does change with using the spinning thread and node not work? I'm a little unclear as to that, since there is no lifecycle subscription for the subscription within TF to not be processing. The spin thread should be creating its own executor spun in its own thread as well so that should be all working independently, from first glance. |
I may have misunderstood the design document (at least the part I quoted), but it seems to me that since we are using the Lifecycle Node interfaces to create the subscription inside |
|
I think this has more to with the TF code spinning w.r.t. the main node. Maybe some print statements would help clarify. I think we should understand the 'why' before we merge, but once we do I'm happy to merge assuming we don't find its just hiding something buggy (or we find that this change is actually buggy and costmap2D is the only place showing the problem to us immediately) |
|
@roncapat, your PR has failed to build. Please check CI outputs and resolve issues. |
|
@roncapat, your PR has failed to build. Please check CI outputs and resolve issues. |
1 similar comment
|
@roncapat, your PR has failed to build. Please check CI outputs and resolve issues. |
|
(temporarily applied #5381 to solve CircleCI faliures, but seems the cache kicks in, how do I solve?) |
|
Managed to run all tests locally (it has been hard to set up everything because normally I skip building stuff like I can confirm that the issue lies in the typical remap setup present in many Currently, we find this snippet: # Map fully qualified names to relative ones so the node's namespace can be prepended.
# In case of the transforms (tf), currently, there doesn't seem to be a better alternative
# https://github.com/ros/geometry2/issues/32
# https://github.com/ros/robot_state_publisher/pull/30
# TODO(orduno) Substitute with `PushNodeRemapping`
# https://github.com/ros2/launch_ros/issues/56
remappings = [('/tf', 'tf'), ('/tf_static', 'tf_static')]which basically forces Locally, to pass all tests, I temporarily emptied the Now, IMHO we need to find a proper way to:
My feeling is that we should change all occurencies of the above with more specific rules that keeps the topics absolute, but namespaced as the user desires: namespace = LaunchConfiguration('namespace')
...
remappings = [
('/tf', `/` + namespace + '/tf'),
('/tf_static', `/` + namespace + '/tf_static')
]NOTE: this won't work / is not valid code (take it as pseudocode), since @SteveMacenski what do you think? |
|
Pull in main and you should be good to go on the TF headers now. I think maybe we should merge in the non-costmap ones first to not let the enemy of perfection be forward progress. I'm OK with partial solutions that gets us 80%+ of the way there (as long as the 20% isn't disruptive, which this isn't). Something to consider is that we have joinWithParentNamespace in Costmap 2D for similar reasons used in the layers for interpreting the topic to use for a relative sensor topic. This strips out the node's namespace but applies the global system namespace so that relative topics can be used (its relatively new). That seems to me to be very similar to what you want here, though I'm not sure if you can apply it to the NodeOptions for the costmap node without the CLI taking over. I think (?) the only way to use that would be to:
This is largely only required for costmap 2D due to legacy reasons of having the costmap node in its own node name's namespace. Unfortunately this is just debt we need to incur for users to have a smooth ROS 1 -> ROS 2 transition. In a few years we can strip that out, but by that time I'm hoping that Costmap 2D is depreciated for something else ( 🤞 ) |
Just pushed! Thanks.
Good for me, I kept only non-costmap-related changes.
CLI remaps are taken from the rclcpp::context -> you can't see them in the
Not sure this is the right approach. External CLI remaps would always kick in + I don't see added values as those names are already re-mappable via NodeOptions. The issue here lies in the CLI remaps, it's not a
I believe that the costmap sub-namespace is ok to keep, in fact I was not proposing to remove it. Instead, my proposal would have just required to write possibly better (?) remap rules in launch file to let everything work as usual. But we can merge this and maybe track down the proposal / residual TransformListener to address in a separate Issue I will open after merge :) |
|
CI failure due to (unrelated?) code coverage failure. |
|
OK! Merged! |
…s-navigation#5406) * Construct TF listeners passing nodes, spinning on separate thread Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> --------- Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>
|
Can we backport this to Jazzy? |
|
Sure -- Tags and Mergify, do yo thing! |
) * Construct TF listeners passing nodes, spinning on separate thread Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> --------- Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> (cherry picked from commit 1468484) # Conflicts: # nav2_route/src/route_server.cpp
) * Construct TF listeners passing nodes, spinning on separate thread Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> --------- Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> (cherry picked from commit 1468484)
…ckport #5406) (#5431) * Construct TF listeners passing nodes, spinning on separate thread (#5406) * Construct TF listeners passing nodes, spinning on separate thread Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> --------- Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> (cherry picked from commit 1468484) # Conflicts: # nav2_route/src/route_server.cpp * Delete nav2_route/src/route_server.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Patrick Roncagliolo <ronca.pat@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
…ckport ros-navigation#5406) (ros-navigation#5431) * Construct TF listeners passing nodes, spinning on separate thread (ros-navigation#5406) * Construct TF listeners passing nodes, spinning on separate thread Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> --------- Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> (cherry picked from commit 1468484) # Conflicts: # nav2_route/src/route_server.cpp * Delete nav2_route/src/route_server.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Patrick Roncagliolo <ronca.pat@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
…s-navigation#5406) * Construct TF listeners passing nodes, spinning on separate thread Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> --------- Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>
…ckport ros-navigation#5406) (ros-navigation#5431) * Construct TF listeners passing nodes, spinning on separate thread (ros-navigation#5406) * Construct TF listeners passing nodes, spinning on separate thread Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> --------- Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> (cherry picked from commit 1468484) # Conflicts: # nav2_route/src/route_server.cpp * Delete nav2_route/src/route_server.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Patrick Roncagliolo <ronca.pat@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* Jazzy Sync 7: May 29 2025 (ros-navigation#5211) * Dynamic param patterns (ros-navigation#4971) * redesign dynamic param patterns Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com> * change cache version Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com> * check that parameter of type double are >=0.0 Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com> --------- Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com> * [nav2_behavior_tree] Add force_use_current_pose to ComputePathToPoseAction (ros-navigation#4925) * Add force_use_current_pose Signed-off-by: Guillaume Doisy <guillaume@dexory.com> * xml update Signed-off-by: Guillaume Doisy <guillaume@dexory.com> * rename to use_start Signed-off-by: Guillaume Doisy <guillaume@dexory.com> * lint Signed-off-by: Guillaume Doisy <guillaume@dexory.com> * descriptions Signed-off-by: Guillaume Doisy <guillaume@dexory.com> * simplify logic Signed-off-by: Guillaume Doisy <guillaume@dexory.com> --------- Signed-off-by: Guillaume Doisy <guillaume@dexory.com> Co-authored-by: Guillaume Doisy <guillaume@dexory.com> * [CostmapTopicCollisionChecker] Alternative constructor with footprint string (ros-navigation#4926) * [CostmapTopicCollisionChecker] Alternative constructor with footprint Signed-off-by: Guillaume Doisy <guillaume@dexory.com> * raw pointer Signed-off-by: Guillaume Doisy <guillaume@dexory.com> * suggestions from review Signed-off-by: Guillaume Doisy <guillaume@dexory.com> --------- Signed-off-by: Guillaume Doisy <guillaume@dexory.com> Co-authored-by: Guillaume Doisy <guillaume@dexory.com> * Merged Fix navfn_planner from humble PR ros-navigation#5087 (ros-navigation#5092) * merged changes from humble for goal.header fix * reverted back, error in merge * ported goal.header fix in navfn_planner.cpp from humble * reverted to navfn_planner.cpp to origin/main * merged navfn_planner.cpp from humble * fixed the merge * Update map_io library to use Eigen method for faster map loading (ros-navigation#5071) * Update map_io library to use opencv method for faster map loading Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Update pre-commit config changes Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Use Eigen approach instead of OpenCV Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Update pre-commit changes Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Update include header include order Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Remove intermediary alpha matrix Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Add comments for the code understanding Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Fix else braces rule issue Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Create and use alpha_matrix when applying mask Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Update pre-commit changes Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Take flip part out of if-else Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Update pre-commit changes Signed-off-by: Vignesh T <vignesh.t@kabam.ai> --------- Signed-off-by: Vignesh T <vignesh.t@kabam.ai> * Precompute yaw trigonometric values in smac planner (ros-navigation#5109) Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * removing the start navigation message in the paused state from rviz buttons (ros-navigation#5137) Signed-off-by: Pradheep <padhupradheep@gmail.com> * Show error if inflation radius is smaller than circumscribed radius (ros-navigation#5148) * Warn if inflation radius is smaller than circumscribed radius Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * Update nav2_mppi_controller/src/critics/cost_critic.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Tony Najjar <t03578624@gmail.com> * Update nav2_smac_planner/include/nav2_smac_planner/utils.hpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Tony Najjar <t03578624@gmail.com> --------- Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> Signed-off-by: Tony Najjar <t03578624@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * Prevent MPPI controller from resetting speed limits upon goal execution. (ros-navigation#5165) Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> * Fixing docking server when already docked at the requeste ddock (ros-navigation#5171) Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Adding parameter util to node utils (ros-navigation#5154) * Adding declare_or_get_param util to node utils Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> * Adding test for declare_or_get_param util Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> * Adding declare_or_get_parameter function by type, using explicit variable names, disabling param warnings by default Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> * Update nav2_util/test/test_node_utils.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Fixing codecove test Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> * Catching possible exception in declare_or_get_by_type Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> * Templating return type of declare parameter by value Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> --------- Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * added config for laserscan in lb-sim (ros-navigation#5174) * added config for laserscan in lb-sim Signed-off-by: RamanaBotta <ramanab@bosonmotors.com> * fixing ament_flake8 errors Signed-off-by: RamanaBotta <ramanab@bosonmotors.com> * review: use_inf is default:true and added parameters on readme ros-navigation#4992 Signed-off-by: RamanaBotta <ramanab@bosonmotors.com> * refactor: meaningfull value for scan_angle_increment Signed-off-by: RamanaBotta <ramanab@bosonmotors.com> --------- Signed-off-by: RamanaBotta <ramanab@bosonmotors.com> Co-authored-by: RamanaBotta <ramanab@bosonmotors.com> * Publish planned footprints after smoothing (ros-navigation#5155) * Publish planned footprints after smoothing Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * Revert "Publish planned footprints after smoothing" This reverts commit c9b349a. * Add smoothed footprints publishing Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * fix formatting Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * Fix indentation for publisher creation in SmacPlannerHybrid and SmacPlannerLattice Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * address PR comments Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * fixes Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * fix build error Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> --------- Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * fixing deprecation warning (ros-navigation#5182) Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Adding missing dep to loopback sim (ros-navigation#5204) * Adding missing dep Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * typo Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * updating fix Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Adding parameter warn_when_defaulting_parameters to control default parameter warnings (ros-navigation#5189) * Adding a parameter warn_when_defaulting_parameters to control default parameter warnings instead of using a flag Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> * Adding parameter strict_param_loading for optionally throwing an exception if parameter overrides are missing Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> * Using default false declaration instead of declare_or_get in param util Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> --------- Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> * bumping to 1.3.7 for release Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com> Signed-off-by: Guillaume Doisy <guillaume@dexory.com> Signed-off-by: Vignesh T <vignesh.t@kabam.ai> Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Pradheep <padhupradheep@gmail.com> Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> Signed-off-by: Tony Najjar <t03578624@gmail.com> Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> Signed-off-by: RamanaBotta <ramanab@bosonmotors.com> Co-authored-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Co-authored-by: Guillaume Doisy <doisyg@users.noreply.github.com> Co-authored-by: Guillaume Doisy <guillaume@dexory.com> Co-authored-by: Sandeep Dutta <quark01@gmail.com> Co-authored-by: Vignesh T <vignesh.t@kabam.ai> Co-authored-by: mini-1235 <mauricepurnawan@gmail.com> Co-authored-by: Pradheep Krishna <padhupradheep@gmail.com> Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com> Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> Co-authored-by: Marco Bassa <101661130+MarcoMatteoBassa@users.noreply.github.com> Co-authored-by: Raman <52356167+RamanRobotics@users.noreply.github.com> Co-authored-by: RamanaBotta <ramanab@bosonmotors.com> * Fixing Jazzy CI via new ROS 2 keys Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Revert "Fix Ci from key signing (ros-navigation#5220)" (backport ros-navigation#5237) (ros-navigation#5239) * Revert "Fix Ci from key signing (ros-navigation#5220)" (ros-navigation#5237) * Revert "Fix Ci from key signing (ros-navigation#5220)" This reverts the changes to the Dockerfile done in 1345c22. Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com> * Update Cache Version Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com> --------- Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com> (cherry picked from commit 7f561b0) # Conflicts: # .circleci/config.yml * Update config.yml Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * Backport bidirectional settings ros-navigation#4954 (ros-navigation#5260) Signed-off-by: Tatsuro Sakaguchi <tatsuro.sakaguchi@g.softbank.co.jp> * Add namespace support for rviz costmap cost tool (ros-navigation#5271) Signed-off-by: Maurice-1235 <mauricepurnawan@gmail.com> * Use fixed thresholds for Trinary yaml (ros-navigation#5278) (ros-navigation#5286) (cherry picked from commit 829e683) Signed-off-by: Adi Vardi <adi.vardi@enway.ai> Co-authored-by: Adi Vardi <57910756+adivardi@users.noreply.github.com> * Clear costmap around pose jazzy (backport ros-navigation#5309) (ros-navigation#5318) * Adding clear costmap around pose service option (ros-navigation#5309) (cherry picked from commit c0bf67e Signed-off-by: dw25628 <dwoodwell@vermeer.com> * Linting Signed-off-by: dw25628 <dwoodwell@vermeer.com> * Removed __init__.py that came in with cherry pick Signed-off-by: dw25628 <dwoodwell@vermeer.com> --------- Signed-off-by: dw25628 <dwoodwell@vermeer.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * Backport "Option to Reduce Lethal to High-Cost Navigable To Get Out of Keepout Zones if Wandered In" (ros-navigation#5378) * Option to Reduce Lethal to High-Cost Navigable To Get Out of Keepout Zones if Wandered In (ros-navigation#5187) * Adding toggle option of keepout zone Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Default off Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Join conditions Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * spell check Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * copilot suggestions Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_costmap_2d/plugins/costmap_filters/keepout_filter.cpp Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_costmap_2d/plugins/costmap_filters/keepout_filter.cpp Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update keepout_filter.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> * Revert bringup params changes Signed-off-by: Maurice <mauricepurnawan@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice <mauricepurnawan@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> * Adding minimum range to PC2 in collision monitor (backport ros-navigation#5392) (ros-navigation#5393) * Adding minimum range to PC2 in collision monitor (ros-navigation#5392) Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> (cherry picked from commit 40a0451) # Conflicts: # nav2_collision_monitor/src/pointcloud.cpp * Update pointcloud.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update pointcloud.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update sources_test.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * Construct TF listeners passing nodes, spinning on separate thread (backport ros-navigation#5406) (ros-navigation#5431) * Construct TF listeners passing nodes, spinning on separate thread (ros-navigation#5406) * Construct TF listeners passing nodes, spinning on separate thread Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> --------- Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com> (cherry picked from commit 1468484) # Conflicts: # nav2_route/src/route_server.cpp * Delete nav2_route/src/route_server.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Patrick Roncagliolo <ronca.pat@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * Fix lifecycle manager deadlock during shutdown (ros-navigation#5448) Signed-off-by: Jacob Visser <jacob.visser@cboost.nl> * fix 5456 (ros-navigation#5458) Signed-off-by: David G <david.randommail1@gmail.com> * backport the fix for setting binary_state as the default (ros-navigation#5459) Signed-off-by: olaghattas <olaghattas@hotmail.com> * Sync Jazzy Aug 19, 2025 1.4.1 (ros-navigation#5469) * Conserve curvature with LIMIT action (ros-navigation#5255) * Conserve curvature with LIMIT action Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * fix format Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * fix test Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> --------- Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * Adding epsilon for voxel_layer precision loss (ros-navigation#5314) * Adding epsilon for voxel_layer precision loss Signed-off-by: bhx <1273698633@qq.com> * Update nav2_costmap_2d/plugins/voxel_layer.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_costmap_2d/plugins/voxel_layer.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_costmap_2d/plugins/voxel_layer.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: bhx <1273698633@qq.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * fix: correct ThroughActionResult type alias in would_a_planner_recovery_help_condition (ros-navigation#5326) The ThroughActionResult type alias was incorrectly referencing Action::Result instead of ThroughAction::Result, causing the condition to not work properly for ComputePathThroughPoses actions. Fixes ros-navigation#5324 Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> * Adding slow down at target heading to RPP Controller (ros-navigation#5361) * Adding slow down at target heading to RPP Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> * Update test_regulated_pp.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Eexception rethrow in dockRobot method (ros-navigation#5364) Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Add global min obstacle height in voxel layer (ros-navigation#5389) * Add min obstacle height in voxel layer Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix linting Signed-off-by: Maurice <mauricepurnawan@gmail.com> --------- Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Maurice <mauricepurnawan@gmail.com> * [DEX] Enforce 3 digits precision (ros-navigation#5398) Signed-off-by: Guillaume Doisy <guillaume@dexory.com> Co-authored-by: Guillaume Doisy <guillaume@dexory.com> * [static_layer] limit comparison precision (ros-navigation#5405) * [DEX] limit comparison precision Signed-off-by: Guillaume Doisy <guillaume@dexory.com> * EPSILON 1e-5 Signed-off-by: Guillaume Doisy <guillaume@dexory.com> --------- Signed-off-by: Guillaume Doisy <guillaume@dexory.com> Co-authored-by: Guillaume Doisy <guillaume@dexory.com> * Smooth path even if goal pose is so much near to the robot (ros-navigation#5423) * Smooth path even if goal pose is so much near to the robot Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com> * Apply suggestions Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com> * Remove unnecessary diff Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com> --------- Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com> * Fix KeepoutFilter on the ARM architecture (ros-navigation#5436) Signed-off-by: Sushant Chavan <gitecsvc@gmail.com> * Fix missing dependency (ros-navigation#5460) * bump to 1.3.8 for Jazzy release Aug 19, 2025 Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> * load balance CI Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> --------- Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> Signed-off-by: bhx <1273698633@qq.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Maurice <mauricepurnawan@gmail.com> Signed-off-by: Guillaume Doisy <guillaume@dexory.com> Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com> Signed-off-by: Sushant Chavan <gitecsvc@gmail.com> Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com> Co-authored-by: hutao <108395177+coderbaibai@users.noreply.github.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Alberto Tudela <ajtudela@gmail.com> Co-authored-by: mini-1235 <mauricepurnawan@gmail.com> Co-authored-by: Guillaume Doisy <doisyg@users.noreply.github.com> Co-authored-by: Guillaume Doisy <guillaume@dexory.com> Co-authored-by: Cihat Kurtuluş Altıparmak <cihataltiparmak1@gmail.com> Co-authored-by: Sushant Chavan <gitecsvc@gmail.com> Co-authored-by: Tim Clephas <tim.clephas@nobleo.nl> * fix: Move SmootherParams declaration outside smooth_path conditional (ros-navigation#5473) (ros-navigation#5474) Fixes crash when dynamically changing smooth_path parameter from false to true. The issue occurred because SmootherParams were only declared when smooth_path was initially true, causing ParameterModifiedInCallbackException when trying to declare parameters within the dynamic parameter callback. Now SmootherParams are always declared, making them available for dynamic reconfiguration regardless of the initial smooth_path value. Fixes ros-navigation#5472 (cherry picked from commit 69a60df) Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> * Replace last pose if only orientation differs in Navfn (ros-navigation#5490) (ros-navigation#5492) (cherry picked from commit ff80727) Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Co-authored-by: mini-1235 <mauricepurnawan@gmail.com> * Manual Backport Route Server to Jazzy (ros-navigation#5517) * Manual backport of Route Server to Jazzy Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * linting Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Fix backport error Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * lint Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Adding in Nav2 BT + Launch Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Jazzy Sync Sept 19, 2025 1.3.9 (ros-navigation#5540) * Fix dynamic param SmacPlannerLattice (ros-navigation#5478) * Fix SmacPlannerLattice dynamic parameter early exit Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * remove comment Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> --------- Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * Fix duplicate poses with computePlanThroughPoses (ros-navigation#5488) * fix-duplicate-poses Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * Update nav2_planner/src/planner_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> --------- Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * Fix seg fault (ros-navigation#5501) * Fix segmentation fault Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * fix linting Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> --------- Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * Add a service for enabling/disabling the collision monitor (ros-navigation#5493) * Added std_srvs package to dependencies Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Declared service and callback for enabling/disabling collision monitor Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Declared a variable to store collision monitor enable/disable state Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Added initialization for collision monitor enable/disable service Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Implemented service callback for collision monitor enable/disable service Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Removed std_srvs package dependency Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Added Toggle interface Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Replaced Trigger interface with the new Toggle interface Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Added default initialization for enabled flag Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Fixed toggle service name Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Updated toggle logic for collision monitor Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Added a new line at the end of file Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Update nav2_collision_monitor/src/collision_monitor_node.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Update nav2_collision_monitor/src/collision_monitor_node.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Added enabled check for logging Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Added a unit test for toggle service Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Made the getter const and added a comment Signed-off-by: Abhishekh Reddy <helloarm@pm.me> * Replaced rclcpp::spin_some Signed-off-by: Abhishekh Reddy <helloarm@pm.me> --------- Signed-off-by: Abhishekh Reddy <helloarm@pm.me> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * bump Jazzy to 1.3.9 for release Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> * Change service type for collision monitor Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Fix backport error Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> * update Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> --------- Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> Signed-off-by: Abhishekh Reddy <helloarm@pm.me> Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com> Co-authored-by: Abhishekh Reddy <helloarm@pm.me> * Update package version from 1.1.0 to 1.3.9 Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Add support for dynamically changing keepout zone (ros-navigation#5429) (ros-navigation#5542) * Add support for dynamically changing keepout zone * Linting * Revert binary and speed changes --------- (cherry picked from commit e690ef0) Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Co-authored-by: mini-1235 <mauricepurnawan@gmail.com> * Fix bad_weak_ptr in createBond() by using shared_ptr (backport ros-navigation#5341) (ros-navigation#5563) Signed-off-by: ymd-stella <world.applepie@gmail.com> * Fixed crash due to incorrect string construction (ros-navigation#5606) (ros-navigation#5613) (cherry picked from commit 48e7e06) Signed-off-by: Jay Herpin <jherpin@metalsharkboats.com> Co-authored-by: Jay Herpin <159202566+JayHerpin@users.noreply.github.com> * Add dependency on nav2_route in package.xml (ros-navigation#5639) Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Revert ros-navigation#4971 in Jazzy (ros-navigation#5640) * Revert ros-navigation#4971 in Jazzy Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> --------- Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Bumping to 1.3.10 for urgent jazzy regression fixes (ros-navigation#5650) Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> * Backporting custom height point field into Jazzy. (ros-navigation#5646) * Summary commit of all changes for adding custom pointcloud field height. (ros-navigation#5586) Doing this to clear out unsigned commits from history. Signed-off-by: Greg Anderson <107634795+greganderson-vermeer@users.noreply.github.com> * Corrected parameter declaration methods that aren't part of Jazzy. Fixed parameter typo from some manual merging in pointcloud.cpp Signed-off-by: Greg Anderson <107634795+greganderson-vermeer@users.noreply.github.com> --------- Signed-off-by: Greg Anderson <107634795+greganderson-vermeer@users.noreply.github.com> --------- Signed-off-by: Nils-ChristianIseke <nilsmailiseke@gmail.com> Signed-off-by: Guillaume Doisy <guillaume@dexory.com> Signed-off-by: Vignesh T <vignesh.t@kabam.ai> Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Pradheep <padhupradheep@gmail.com> Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> Signed-off-by: Tony Najjar <t03578624@gmail.com> Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Marco Bassa <marco.bassa@idealworks.com> Signed-off-by: RamanaBotta <ramanab@bosonmotors.com> Signed-off-by: Tatsuro Sakaguchi <tatsuro.sakaguchi@g.softbank.co.jp> Signed-off-by: Maurice-1235 <mauricepurnawan@gmail.com> Signed-off-by: Adi Vardi <adi.vardi@enway.ai> Signed-off-by: dw25628 <dwoodwell@vermeer.com> Signed-off-by: Maurice <mauricepurnawan@gmail.com> Signed-off-by: Jacob Visser <jacob.visser@cboost.nl> Signed-off-by: David G <david.randommail1@gmail.com> Signed-off-by: olaghattas <olaghattas@hotmail.com> Signed-off-by: bhx <1273698633@qq.com> Signed-off-by: SteveMacenski <stevenmacenski@gmail.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com> Signed-off-by: Sushant Chavan <gitecsvc@gmail.com> Signed-off-by: Abhishekh Reddy <helloarm@pm.me> Signed-off-by: ymd-stella <world.applepie@gmail.com> Signed-off-by: Jay Herpin <jherpin@metalsharkboats.com> Signed-off-by: Greg Anderson <107634795+greganderson-vermeer@users.noreply.github.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Co-authored-by: Guillaume Doisy <doisyg@users.noreply.github.com> Co-authored-by: Guillaume Doisy <guillaume@dexory.com> Co-authored-by: Sandeep Dutta <quark01@gmail.com> Co-authored-by: Vignesh T <vignesh.t@kabam.ai> Co-authored-by: mini-1235 <mauricepurnawan@gmail.com> Co-authored-by: Pradheep Krishna <padhupradheep@gmail.com> Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com> Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com> Co-authored-by: Marco Bassa <101661130+MarcoMatteoBassa@users.noreply.github.com> Co-authored-by: Raman <52356167+RamanRobotics@users.noreply.github.com> Co-authored-by: RamanaBotta <ramanab@bosonmotors.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Tatsuro Sakaguchi <tatsuro.sakaguchi@g.softbank.co.jp> Co-authored-by: Adi Vardi <57910756+adivardi@users.noreply.github.com> Co-authored-by: dw25628 <108828484+dw25628@users.noreply.github.com> Co-authored-by: Patrick Roncagliolo <ronca.pat@gmail.com> Co-authored-by: cboostjvisser <89262699+cboostjvisser@users.noreply.github.com> Co-authored-by: DavidG-Develop <147402604+DavidG-Develop@users.noreply.github.com> Co-authored-by: olaghattas <98136555+olaghattas@users.noreply.github.com> Co-authored-by: hutao <108395177+coderbaibai@users.noreply.github.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Alberto Tudela <ajtudela@gmail.com> Co-authored-by: Cihat Kurtuluş Altıparmak <cihataltiparmak1@gmail.com> Co-authored-by: Sushant Chavan <gitecsvc@gmail.com> Co-authored-by: Tim Clephas <tim.clephas@nobleo.nl> Co-authored-by: Abhishekh Reddy <helloarm@pm.me> Co-authored-by: ymd-stella <7959916+ymd-stella@users.noreply.github.com> Co-authored-by: Jay Herpin <159202566+JayHerpin@users.noreply.github.com> Co-authored-by: Greg Anderson <107634795+greganderson-vermeer@users.noreply.github.com>

See #1182 - this is a re-assessment after 6 years.
Advantages: easier auditing of TF2 subscriptions across the ROS graph. The nav2 node(s) name(s) will appear for example when issuing
ros2 topic info -v /tf.Basic Info
Description of contribution in a few bullet points
Construct
tf2_ros::TransformListenerinstances passing a node pointer, so that no additional nodes with randomized names are spawned on the ROS graph (less pollution, better auditing), but enabling thespin_threadflag, so that we ensure TF subscriptions are not interleaved with other nav2-related callbacks in the same executor.For Maintainers:
backport-*.