-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Construct TF listeners passing nodes, spinning on separate thread #5406
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
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 <[email protected]>
|
... 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 <[email protected]>
|
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 <[email protected]> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <[email protected]> --------- Signed-off-by: Patrick Roncagliolo <[email protected]>
|
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 <[email protected]> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <[email protected]> --------- Signed-off-by: Patrick Roncagliolo <[email protected]> (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 <[email protected]> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <[email protected]> --------- Signed-off-by: Patrick Roncagliolo <[email protected]> (cherry picked from commit 1468484)
) (#5432) * Construct TF listeners passing nodes, spinning on separate thread * (tentative) pin down of the impacting change --------- (cherry picked from commit 1468484) Signed-off-by: Patrick Roncagliolo <[email protected]> Co-authored-by: Patrick Roncagliolo <[email protected]>
…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 <[email protected]> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <[email protected]> --------- Signed-off-by: Patrick Roncagliolo <[email protected]> (cherry picked from commit 1468484) # Conflicts: # nav2_route/src/route_server.cpp * Delete nav2_route/src/route_server.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Patrick Roncagliolo <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
…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 <[email protected]> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <[email protected]> --------- Signed-off-by: Patrick Roncagliolo <[email protected]> (cherry picked from commit 1468484) # Conflicts: # nav2_route/src/route_server.cpp * Delete nav2_route/src/route_server.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Patrick Roncagliolo <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
…s-navigation#5406) * Construct TF listeners passing nodes, spinning on separate thread Signed-off-by: Patrick Roncagliolo <[email protected]> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <[email protected]> --------- Signed-off-by: Patrick Roncagliolo <[email protected]>
…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 <[email protected]> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <[email protected]> --------- Signed-off-by: Patrick Roncagliolo <[email protected]> (cherry picked from commit 1468484) # Conflicts: # nav2_route/src/route_server.cpp * Delete nav2_route/src/route_server.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Patrick Roncagliolo <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
* Jazzy Sync 7: May 29 2025 (ros-navigation#5211) * Dynamic param patterns (ros-navigation#4971) * redesign dynamic param patterns Signed-off-by: Nils-ChristianIseke <[email protected]> * change cache version Signed-off-by: Nils-ChristianIseke <[email protected]> * check that parameter of type double are >=0.0 Signed-off-by: Nils-ChristianIseke <[email protected]> --------- Signed-off-by: Nils-ChristianIseke <[email protected]> * [nav2_behavior_tree] Add force_use_current_pose to ComputePathToPoseAction (ros-navigation#4925) * Add force_use_current_pose Signed-off-by: Guillaume Doisy <[email protected]> * xml update Signed-off-by: Guillaume Doisy <[email protected]> * rename to use_start Signed-off-by: Guillaume Doisy <[email protected]> * lint Signed-off-by: Guillaume Doisy <[email protected]> * descriptions Signed-off-by: Guillaume Doisy <[email protected]> * simplify logic Signed-off-by: Guillaume Doisy <[email protected]> --------- Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> * [CostmapTopicCollisionChecker] Alternative constructor with footprint string (ros-navigation#4926) * [CostmapTopicCollisionChecker] Alternative constructor with footprint Signed-off-by: Guillaume Doisy <[email protected]> * raw pointer Signed-off-by: Guillaume Doisy <[email protected]> * suggestions from review Signed-off-by: Guillaume Doisy <[email protected]> --------- Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> * 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 <[email protected]> * Update pre-commit config changes Signed-off-by: Vignesh T <[email protected]> * Use Eigen approach instead of OpenCV Signed-off-by: Vignesh T <[email protected]> * Update pre-commit changes Signed-off-by: Vignesh T <[email protected]> * Update include header include order Signed-off-by: Vignesh T <[email protected]> * Remove intermediary alpha matrix Signed-off-by: Vignesh T <[email protected]> * Add comments for the code understanding Signed-off-by: Vignesh T <[email protected]> * Fix else braces rule issue Signed-off-by: Vignesh T <[email protected]> * Create and use alpha_matrix when applying mask Signed-off-by: Vignesh T <[email protected]> * Update pre-commit changes Signed-off-by: Vignesh T <[email protected]> * Take flip part out of if-else Signed-off-by: Vignesh T <[email protected]> * Update pre-commit changes Signed-off-by: Vignesh T <[email protected]> --------- Signed-off-by: Vignesh T <[email protected]> * Precompute yaw trigonometric values in smac planner (ros-navigation#5109) Signed-off-by: mini-1235 <[email protected]> * removing the start navigation message in the paused state from rviz buttons (ros-navigation#5137) Signed-off-by: Pradheep <[email protected]> * 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 <[email protected]> * Update nav2_mppi_controller/src/critics/cost_critic.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Tony Najjar <[email protected]> * Update nav2_smac_planner/include/nav2_smac_planner/utils.hpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Tony Najjar <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * Prevent MPPI controller from resetting speed limits upon goal execution. (ros-navigation#5165) Signed-off-by: Leander Stephen D'Souza <[email protected]> * Fixing docking server when already docked at the requeste ddock (ros-navigation#5171) Signed-off-by: Steve Macenski <[email protected]> * Adding parameter util to node utils (ros-navigation#5154) * Adding declare_or_get_param util to node utils Signed-off-by: Marco Bassa <[email protected]> * Adding test for declare_or_get_param util Signed-off-by: Marco Bassa <[email protected]> * Adding declare_or_get_parameter function by type, using explicit variable names, disabling param warnings by default Signed-off-by: Marco Bassa <[email protected]> * Update nav2_util/test/test_node_utils.cpp Signed-off-by: Steve Macenski <[email protected]> * Fixing codecove test Signed-off-by: Marco Bassa <[email protected]> * Catching possible exception in declare_or_get_by_type Signed-off-by: Marco Bassa <[email protected]> * Templating return type of declare parameter by value Signed-off-by: Marco Bassa <[email protected]> --------- Signed-off-by: Marco Bassa <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * added config for laserscan in lb-sim (ros-navigation#5174) * added config for laserscan in lb-sim Signed-off-by: RamanaBotta <[email protected]> * fixing ament_flake8 errors Signed-off-by: RamanaBotta <[email protected]> * review: use_inf is default:true and added parameters on readme ros-navigation#4992 Signed-off-by: RamanaBotta <[email protected]> * refactor: meaningfull value for scan_angle_increment Signed-off-by: RamanaBotta <[email protected]> --------- Signed-off-by: RamanaBotta <[email protected]> Co-authored-by: RamanaBotta <[email protected]> * Publish planned footprints after smoothing (ros-navigation#5155) * Publish planned footprints after smoothing Signed-off-by: Tony Najjar <[email protected]> * Revert "Publish planned footprints after smoothing" This reverts commit c9b349a. * Add smoothed footprints publishing Signed-off-by: Tony Najjar <[email protected]> * fix formatting Signed-off-by: Tony Najjar <[email protected]> * Fix indentation for publisher creation in SmacPlannerHybrid and SmacPlannerLattice Signed-off-by: Tony Najjar <[email protected]> * address PR comments Signed-off-by: Tony Najjar <[email protected]> * fixes Signed-off-by: Tony Najjar <[email protected]> * fix build error Signed-off-by: Tony Najjar <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> * fixing deprecation warning (ros-navigation#5182) Signed-off-by: Steve Macenski <[email protected]> * Adding missing dep to loopback sim (ros-navigation#5204) * Adding missing dep Signed-off-by: Steve Macenski <[email protected]> * typo Signed-off-by: Steve Macenski <[email protected]> * updating fix Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * 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 <[email protected]> * Adding parameter strict_param_loading for optionally throwing an exception if parameter overrides are missing Signed-off-by: Marco Bassa <[email protected]> * Using default false declaration instead of declare_or_get in param util Signed-off-by: Marco Bassa <[email protected]> --------- Signed-off-by: Marco Bassa <[email protected]> * bumping to 1.3.7 for release Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Nils-ChristianIseke <[email protected]> Signed-off-by: Guillaume Doisy <[email protected]> Signed-off-by: Vignesh T <[email protected]> Signed-off-by: mini-1235 <[email protected]> Signed-off-by: Pradheep <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Leander Stephen D'Souza <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Marco Bassa <[email protected]> Signed-off-by: RamanaBotta <[email protected]> Co-authored-by: Nils-Christian Iseke <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Sandeep Dutta <[email protected]> Co-authored-by: Vignesh T <[email protected]> Co-authored-by: mini-1235 <[email protected]> Co-authored-by: Pradheep Krishna <[email protected]> Co-authored-by: Tony Najjar <[email protected]> Co-authored-by: Leander Stephen D'Souza <[email protected]> Co-authored-by: Marco Bassa <[email protected]> Co-authored-by: Raman <[email protected]> Co-authored-by: RamanaBotta <[email protected]> * Fixing Jazzy CI via new ROS 2 keys Signed-off-by: Steve Macenski <[email protected]> * 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 <[email protected]> * Update Cache Version Signed-off-by: Nils-Christian Iseke <[email protected]> --------- Signed-off-by: Nils-Christian Iseke <[email protected]> (cherry picked from commit 7f561b0) # Conflicts: # .circleci/config.yml * Update config.yml Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Nils-Christian Iseke <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * Backport bidirectional settings ros-navigation#4954 (ros-navigation#5260) Signed-off-by: Tatsuro Sakaguchi <[email protected]> * Add namespace support for rviz costmap cost tool (ros-navigation#5271) Signed-off-by: Maurice-1235 <[email protected]> * Use fixed thresholds for Trinary yaml (ros-navigation#5278) (ros-navigation#5286) (cherry picked from commit 829e683) Signed-off-by: Adi Vardi <[email protected]> Co-authored-by: Adi Vardi <[email protected]> * 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 <[email protected]> * Linting Signed-off-by: dw25628 <[email protected]> * Removed __init__.py that came in with cherry pick Signed-off-by: dw25628 <[email protected]> --------- Signed-off-by: dw25628 <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * 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 <[email protected]> * Default off Signed-off-by: Steve Macenski <[email protected]> * Join conditions Signed-off-by: Steve Macenski <[email protected]> * spell check Signed-off-by: Steve Macenski <[email protected]> * copilot suggestions Signed-off-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/plugins/costmap_filters/keepout_filter.cpp Co-authored-by: Leander Stephen D'Souza <[email protected]> Signed-off-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/plugins/costmap_filters/keepout_filter.cpp Co-authored-by: Leander Stephen D'Souza <[email protected]> Signed-off-by: Steve Macenski <[email protected]> * Update keepout_filter.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Leander Stephen D'Souza <[email protected]> * Revert bringup params changes Signed-off-by: Maurice <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Maurice <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Co-authored-by: Leander Stephen D'Souza <[email protected]> * 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 <[email protected]> (cherry picked from commit 40a0451) # Conflicts: # nav2_collision_monitor/src/pointcloud.cpp * Update pointcloud.cpp Signed-off-by: Steve Macenski <[email protected]> * Update pointcloud.cpp Signed-off-by: Steve Macenski <[email protected]> * Update sources_test.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * 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 <[email protected]> * (tentative) pin down of the impacting change Signed-off-by: Patrick Roncagliolo <[email protected]> --------- Signed-off-by: Patrick Roncagliolo <[email protected]> (cherry picked from commit 1468484) # Conflicts: # nav2_route/src/route_server.cpp * Delete nav2_route/src/route_server.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Patrick Roncagliolo <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * Fix lifecycle manager deadlock during shutdown (ros-navigation#5448) Signed-off-by: Jacob Visser <[email protected]> * fix 5456 (ros-navigation#5458) Signed-off-by: David G <[email protected]> * backport the fix for setting binary_state as the default (ros-navigation#5459) Signed-off-by: olaghattas <[email protected]> * 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 <[email protected]> * fix format Signed-off-by: Tony Najjar <[email protected]> * fix test Signed-off-by: Tony Najjar <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> * Adding epsilon for voxel_layer precision loss (ros-navigation#5314) * Adding epsilon for voxel_layer precision loss Signed-off-by: bhx <[email protected]> * Update nav2_costmap_2d/plugins/voxel_layer.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/plugins/voxel_layer.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_costmap_2d/plugins/voxel_layer.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: bhx <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * 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 <[email protected]> * Update test_regulated_pp.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: SteveMacenski <[email protected]> Signed-off-by: Steve Macenski <[email protected]> * Eexception rethrow in dockRobot method (ros-navigation#5364) Signed-off-by: Alberto Tudela <[email protected]> * Add global min obstacle height in voxel layer (ros-navigation#5389) * Add min obstacle height in voxel layer Signed-off-by: mini-1235 <[email protected]> * Fix linting Signed-off-by: Maurice <[email protected]> --------- Signed-off-by: mini-1235 <[email protected]> Signed-off-by: Maurice <[email protected]> * [DEX] Enforce 3 digits precision (ros-navigation#5398) Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> * [static_layer] limit comparison precision (ros-navigation#5405) * [DEX] limit comparison precision Signed-off-by: Guillaume Doisy <[email protected]> * EPSILON 1e-5 Signed-off-by: Guillaume Doisy <[email protected]> --------- Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> * 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 <[email protected]> * Apply suggestions Signed-off-by: CihatAltiparmak <[email protected]> * Remove unnecessary diff Signed-off-by: CihatAltiparmak <[email protected]> --------- Signed-off-by: CihatAltiparmak <[email protected]> * Fix KeepoutFilter on the ARM architecture (ros-navigation#5436) Signed-off-by: Sushant Chavan <[email protected]> * Fix missing dependency (ros-navigation#5460) * bump to 1.3.8 for Jazzy release Aug 19, 2025 Signed-off-by: SteveMacenski <[email protected]> * load balance CI Signed-off-by: SteveMacenski <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: bhx <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: SteveMacenski <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> Signed-off-by: mini-1235 <[email protected]> Signed-off-by: Maurice <[email protected]> Signed-off-by: Guillaume Doisy <[email protected]> Signed-off-by: CihatAltiparmak <[email protected]> Signed-off-by: Sushant Chavan <[email protected]> Co-authored-by: Tony Najjar <[email protected]> Co-authored-by: hutao <[email protected]> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Alberto Tudela <[email protected]> Co-authored-by: mini-1235 <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Cihat Kurtuluş Altıparmak <[email protected]> Co-authored-by: Sushant Chavan <[email protected]> Co-authored-by: Tim Clephas <[email protected]> * 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 <[email protected]> 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 <[email protected]> Co-authored-by: mini-1235 <[email protected]> * Manual Backport Route Server to Jazzy (ros-navigation#5517) * Manual backport of Route Server to Jazzy Signed-off-by: Steve Macenski <[email protected]> * linting Signed-off-by: Steve Macenski <[email protected]> * Fix backport error Signed-off-by: Steve Macenski <[email protected]> * lint Signed-off-by: Steve Macenski <[email protected]> * Adding in Nav2 BT + Launch Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * 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 <[email protected]> * remove comment Signed-off-by: Tony Najjar <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> * Fix duplicate poses with computePlanThroughPoses (ros-navigation#5488) * fix-duplicate-poses Signed-off-by: Tony Najjar <[email protected]> * Update nav2_planner/src/planner_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Tony Najjar <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * Fix seg fault (ros-navigation#5501) * Fix segmentation fault Signed-off-by: Tony Najjar <[email protected]> * fix linting Signed-off-by: Tony Najjar <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> * Add a service for enabling/disabling the collision monitor (ros-navigation#5493) * Added std_srvs package to dependencies Signed-off-by: Abhishekh Reddy <[email protected]> * Declared service and callback for enabling/disabling collision monitor Signed-off-by: Abhishekh Reddy <[email protected]> * Declared a variable to store collision monitor enable/disable state Signed-off-by: Abhishekh Reddy <[email protected]> * Added initialization for collision monitor enable/disable service Signed-off-by: Abhishekh Reddy <[email protected]> * Implemented service callback for collision monitor enable/disable service Signed-off-by: Abhishekh Reddy <[email protected]> * Removed std_srvs package dependency Signed-off-by: Abhishekh Reddy <[email protected]> * Added Toggle interface Signed-off-by: Abhishekh Reddy <[email protected]> * Replaced Trigger interface with the new Toggle interface Signed-off-by: Abhishekh Reddy <[email protected]> * Added default initialization for enabled flag Signed-off-by: Abhishekh Reddy <[email protected]> * Fixed toggle service name Signed-off-by: Abhishekh Reddy <[email protected]> * Updated toggle logic for collision monitor Signed-off-by: Abhishekh Reddy <[email protected]> * Added a new line at the end of file Signed-off-by: Abhishekh Reddy <[email protected]> * Update nav2_collision_monitor/src/collision_monitor_node.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Abhishekh Reddy <[email protected]> * Update nav2_collision_monitor/src/collision_monitor_node.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Abhishekh Reddy <[email protected]> * Added enabled check for logging Signed-off-by: Abhishekh Reddy <[email protected]> * Added a unit test for toggle service Signed-off-by: Abhishekh Reddy <[email protected]> * Made the getter const and added a comment Signed-off-by: Abhishekh Reddy <[email protected]> * Replaced rclcpp::spin_some Signed-off-by: Abhishekh Reddy <[email protected]> --------- Signed-off-by: Abhishekh Reddy <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * bump Jazzy to 1.3.9 for release Signed-off-by: SteveMacenski <[email protected]> * Change service type for collision monitor Signed-off-by: Steve Macenski <[email protected]> * Fix backport error Signed-off-by: SteveMacenski <[email protected]> * update Signed-off-by: SteveMacenski <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Abhishekh Reddy <[email protected]> Signed-off-by: SteveMacenski <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Tony Najjar <[email protected]> Co-authored-by: Abhishekh Reddy <[email protected]> * Update package version from 1.1.0 to 1.3.9 Signed-off-by: Steve Macenski <[email protected]> * 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 <[email protected]> Co-authored-by: mini-1235 <[email protected]> * Fix bad_weak_ptr in createBond() by using shared_ptr (backport ros-navigation#5341) (ros-navigation#5563) Signed-off-by: ymd-stella <[email protected]> * Fixed crash due to incorrect string construction (ros-navigation#5606) (ros-navigation#5613) (cherry picked from commit 48e7e06) Signed-off-by: Jay Herpin <[email protected]> Co-authored-by: Jay Herpin <[email protected]> * Add dependency on nav2_route in package.xml (ros-navigation#5639) Signed-off-by: Steve Macenski <[email protected]> * Revert ros-navigation#4971 in Jazzy (ros-navigation#5640) * Revert ros-navigation#4971 in Jazzy Signed-off-by: mini-1235 <[email protected]> * Add Signed-off-by: mini-1235 <[email protected]> --------- Signed-off-by: mini-1235 <[email protected]> * Bumping to 1.3.10 for urgent jazzy regression fixes (ros-navigation#5650) Signed-off-by: SteveMacenski <[email protected]> * 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 <[email protected]> * 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 <[email protected]> --------- Signed-off-by: Greg Anderson <[email protected]> --------- Signed-off-by: Nils-ChristianIseke <[email protected]> Signed-off-by: Guillaume Doisy <[email protected]> Signed-off-by: Vignesh T <[email protected]> Signed-off-by: mini-1235 <[email protected]> Signed-off-by: Pradheep <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Leander Stephen D'Souza <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Marco Bassa <[email protected]> Signed-off-by: RamanaBotta <[email protected]> Signed-off-by: Tatsuro Sakaguchi <[email protected]> Signed-off-by: Maurice-1235 <[email protected]> Signed-off-by: Adi Vardi <[email protected]> Signed-off-by: dw25628 <[email protected]> Signed-off-by: Maurice <[email protected]> Signed-off-by: Jacob Visser <[email protected]> Signed-off-by: David G <[email protected]> Signed-off-by: olaghattas <[email protected]> Signed-off-by: bhx <[email protected]> Signed-off-by: SteveMacenski <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> Signed-off-by: CihatAltiparmak <[email protected]> Signed-off-by: Sushant Chavan <[email protected]> Signed-off-by: Abhishekh Reddy <[email protected]> Signed-off-by: ymd-stella <[email protected]> Signed-off-by: Jay Herpin <[email protected]> Signed-off-by: Greg Anderson <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Co-authored-by: Nils-Christian Iseke <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Sandeep Dutta <[email protected]> Co-authored-by: Vignesh T <[email protected]> Co-authored-by: mini-1235 <[email protected]> Co-authored-by: Pradheep Krishna <[email protected]> Co-authored-by: Tony Najjar <[email protected]> Co-authored-by: Leander Stephen D'Souza <[email protected]> Co-authored-by: Marco Bassa <[email protected]> Co-authored-by: Raman <[email protected]> Co-authored-by: RamanaBotta <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Tatsuro Sakaguchi <[email protected]> Co-authored-by: Adi Vardi <[email protected]> Co-authored-by: dw25628 <[email protected]> Co-authored-by: Patrick Roncagliolo <[email protected]> Co-authored-by: cboostjvisser <[email protected]> Co-authored-by: DavidG-Develop <[email protected]> Co-authored-by: olaghattas <[email protected]> Co-authored-by: hutao <[email protected]> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Alberto Tudela <[email protected]> Co-authored-by: Cihat Kurtuluş Altıparmak <[email protected]> Co-authored-by: Sushant Chavan <[email protected]> Co-authored-by: Tim Clephas <[email protected]> Co-authored-by: Abhishekh Reddy <[email protected]> Co-authored-by: ymd-stella <[email protected]> Co-authored-by: Jay Herpin <[email protected]> Co-authored-by: Greg Anderson <[email protected]>

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-*.