Skip to content

Conversation

@roncapat
Copy link
Contributor

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

Info Please fill out this column
Ticket(s) this addresses #1182
Primary OS tested on Ubuntu
Robotic platform tested on proprietary simulation & HW
Does this PR contain AI generated software? No
Was this PR description generated by AI software? No

Description of contribution in a few bullet points

Construct tf2_ros::TransformListener instances passing a node pointer, so that no additional nodes with randomized names are spawned on the ROS graph (less pollution, better auditing), but enabling the spin_thread flag, so that we ensure TF subscriptions are not interleaved with other nav2-related callbacks in the same executor.

For Maintainers:

  • Check that any new parameters added are updated in docs.nav2.org
  • Check that any significant change is added to the migration guide
  • Check that any new features OR changes to existing behaviors are reflected in the tuning guide
  • Check that any new functions have Doxygen added
  • Check that any new features have test coverage
  • Check that any new plugins is added to the plugins page
  • If BT Node, Additionally: add to BT's XML index of nodes for groot, BT package's readme table, and BT library lists
  • Should this be backported to current distributions? If so, tag with backport-*.

@mergify
Copy link
Contributor

mergify bot commented Jul 30, 2025

@roncapat, your PR has failed to build. Please check CI outputs and resolve issues.
You may need to rebase or pull in main due to API changes (or your contribution genuinely fails).

@SteveMacenski
Copy link
Member

SteveMacenski commented Jul 31, 2025

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

@SteveMacenski
Copy link
Member

... huh. Alot of tests failed. I'm rerunning but if they fail again, I think this introduces a regression

@roncapat
Copy link
Contributor Author

roncapat commented Aug 1, 2025

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!

@SteveMacenski
Copy link
Member

SteveMacenski commented Aug 1, 2025

impressively well

How so? big perf boost? I wouldn't have expected that

@roncapat
Copy link
Contributor Author

roncapat commented Aug 1, 2025

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.

@SteveMacenski
Copy link
Member

SteveMacenski commented Aug 1, 2025

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)

@roncapat
Copy link
Contributor Author

roncapat commented Aug 3, 2025

I began to study deeper the tf2_ros::TransformListener.

What I assessed, basically, is that current nav2 code uses the constructor:
TransformListener(tf2::BufferCore & buffer, bool spin_thread = true, bool static_only = false)
Notice the default spin_thread = true.

This is to say, the "only" difference introduced in this PR is the node used by TransformListerer implementation, not the spinning logic, that is exactly kept the same.

Of course, here we are passing a LifecycleNode, from which the TransformListener costructor will extract a set of NodeInterfaces. I will probably focus in the upcoming days on possible subtle implications of this - for example, whether the LifecycleNode current state could influence the correct working of TransformListener.

Moreover, it seems the only place where we have problems in the tests is the costmap_2d_ros. Reverting modifications only for that node makes all the tests pass. This may be an hint on specific way of using the TransformListener that can cause such issue w.r.t. other use cases, restricting the "search area" for the issue.

Will update you if I discover something more in the upcoming days.

@roncapat
Copy link
Contributor Author

roncapat commented Aug 3, 2025

Ok, I may have undestood the issue.
costmap_2d_ros expect TF to be received during the on_activate call.

Per https://design.ros2.org/articles/node_lifecycle.html, in the inactive mode ...the node will not receive any execution time to read topics, perform processing of data, respond to functional service requests, etc.

Two options:

  • explicitly create a non-lifecycle-node and explicitly pass to the TransformListener -> node name can be customized***
  • defer the canTransform call to the "active" state of costmap_2d_ros

*** https://github.com/ros2/geometry2/blob/2b1742c80a4e91a411e5798eec78573928391a7c/tf2_ros/src/transform_listener.cpp#L46-L56


My personal take (a bit phylosophic, take this with a grain of salt):

I fully understand why canTransform is called there, but I think that it reveals a (minor) flaw in the choice of adopting a LifecycleNode-based architecture - basically by expecting to receive something during the on_activate transition -this currently works because this responsibility is deferred to a "classic" node, hidden in TransformListener.
This also reveals that, when the costmap node is inactive, the listener is still receiving /tf messages - while being 100% strict, in principle, it should be "disabled" (not receiving) too.

@SteveMacenski
Copy link
Member

SteveMacenski commented Aug 4, 2025

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.

defer the canTransform call to the "active" state of costmap_2d_ros

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.

This also reveals that, when the costmap node is inactive, the listener is still receiving /tf messages - while being 100% strict, in principle, it should be "disabled" (not receiving) too.

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.

@roncapat
Copy link
Contributor Author

roncapat commented Aug 5, 2025

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 TransformListener, also that subscription will not receive any execution time to read topics. I don't understand how, will try to study more the rclcpp_lifecycle code.

@SteveMacenski
Copy link
Member

SteveMacenski commented Aug 5, 2025

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)

@ros-navigation ros-navigation deleted a comment from claude bot Aug 5, 2025
@ros-navigation ros-navigation deleted a comment from claude bot Aug 5, 2025
@roncapat
Copy link
Contributor Author

roncapat commented Aug 5, 2025

I agree!
I think I have found the issue. Took this screenshot while running some failing tests:
image
/tf and /tf_static get namespaced!

Will check a simple way to avoid this.


EDIT 1:
I tried to add remappings like

    rclcpp::NodeOptions().arguments({
    "--ros-args", "-r", std::string("__ns:=") + nav2_util::add_namespaces(parent_namespace, local_namespace),
    "--ros-args", "-r", nav2_util::add_namespaces(parent_namespace, local_namespace) + "/tf:=/tf",
    "--ros-args", "-r", nav2_util::add_namespaces(parent_namespace, local_namespace) + "/tf_static:=/tf_static",
    "--ros-args", "-r", "tf:=/tf",
    "--ros-args", "-r", "tf_static:=/tf_static",
    "--ros-args", "-p", "use_sim_time:=" + std::string(use_sim_time ? "true" : "false"),

in costmap_2d_ros.cpp but they won't work.
Apparently the issue lies in the nav2_system_test launchfile test_error_codes_launch.py, where:

    remappings = [('/tf', 'tf'), ('/tf_static', 'tf_static')]

is found, like in many nav2_bringup files.
Emptying that list will do the trick. Of course, it is not the right solution.
It seems that remapping from CLI forcefully override any hardcoded override.

@mergify
Copy link
Contributor

mergify bot commented Aug 5, 2025

@roncapat, your PR has failed to build. Please check CI outputs and resolve issues.
You may need to rebase or pull in main due to API changes (or your contribution genuinely fails).

@mergify
Copy link
Contributor

mergify bot commented Aug 6, 2025

@roncapat, your PR has failed to build. Please check CI outputs and resolve issues.
You may need to rebase or pull in main due to API changes (or your contribution genuinely fails).

1 similar comment
@mergify
Copy link
Contributor

mergify bot commented Aug 6, 2025

@roncapat, your PR has failed to build. Please check CI outputs and resolve issues.
You may need to rebase or pull in main due to API changes (or your contribution genuinely fails).

@roncapat
Copy link
Contributor Author

roncapat commented Aug 6, 2025

(temporarily applied #5381 to solve CircleCI faliures, but seems the cache kicks in, how do I solve?)

@roncapat roncapat marked this pull request as draft August 6, 2025 08:16
@roncapat
Copy link
Contributor Author

roncapat commented Aug 6, 2025

Managed to run all tests locally (it has been hard to set up everything because normally I skip building stuff like slam_toolbox, has troubles with yaml-cpp as its dependency and many more issues...).

I can confirm that the issue lies in the typical remap setup present in many navigation2 and nav2_minimal_turtlebot_simulation launch files.

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 /tf and /tf_static to be relative topic names. There is no way to block this from happening inside the code. CLI args takes the precedence. Since we are now piggy-backing TransformListener on existing nodes, this means that the node namespace gets forcefully composed to /tf and /tf_static.

Locally, to pass all tests, I temporarily emptied the remappings list.

Now, IMHO we need to find a proper way to:

  • retain the overall launch file goal of "namespacing a robot" alongside its /tfs.
  • avoid that such rules apply to "nested" nodes

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 namespace is a LaunchConfiguration object, hence the string is not already valid. Something like the workings of PathJoinSubstitution should be implemented to join the namespace to the topic name, prepending the "/" if the namespace is non-empty.

@SteveMacenski what do you think?

@SteveMacenski
Copy link
Member

SteveMacenski commented Aug 6, 2025

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:

  • Get the node options from the parent costmap node (which we do in main), find the TF remapping from the CLI (should be there?), and manually modify it using that function
  • Change the TF Listener API to accept a topic name to use for the TF topic as an optional argument.

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 ( 🤞 )

@roncapat roncapat marked this pull request as ready for review August 7, 2025 09:07
@roncapat
Copy link
Contributor Author

roncapat commented Aug 7, 2025

Pull in main and you should be good to go on the TF headers now.

Just pushed! Thanks.

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

Good for me, I kept only non-costmap-related changes.

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:

  • Get the node options from the parent costmap node (which we do in main), find the TF remapping from the CLI (should be there?), and manually modify it using that function

CLI remaps are taken from the rclcpp::context -> you can't see them in the NodeOptions unfortunately

  • Change the TF Listener API to accept a topic name to use for the TF topic as an optional argument.

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 geometry2 issue per-se.

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 ( 🤞 )

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 :)

@roncapat
Copy link
Contributor Author

roncapat commented Aug 7, 2025

CI failure due to (unrelated?) code coverage failure.
As I have just changed a bunch of params towards an external library, I think it is not my fault this time 🥲

@SteveMacenski SteveMacenski merged commit 1468484 into ros-navigation:main Aug 7, 2025
12 of 15 checks passed
@SteveMacenski
Copy link
Member

OK! Merged!

SakshayMahna pushed a commit to SakshayMahna/navigation2 that referenced this pull request Aug 8, 2025
…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]>
@mini-1235
Copy link
Collaborator

Can we backport this to Jazzy?

@SteveMacenski
Copy link
Member

Sure -- Tags and Mergify, do yo thing!

mergify bot pushed a commit that referenced this pull request Aug 8, 2025
)

* 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
mergify bot pushed a commit that referenced this pull request Aug 8, 2025
)

* 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)
SteveMacenski pushed a commit that referenced this pull request Aug 8, 2025
) (#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]>
SteveMacenski added a commit that referenced this pull request Aug 8, 2025
…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]>
RBT22 pushed a commit to EnjoyRobotics/navigation2 that referenced this pull request Sep 11, 2025
…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]>
BCKSELFDRIVEWORLD pushed a commit to BCKSELFDRIVEWORLD/navigation2 that referenced this pull request Sep 23, 2025
…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]>
RBT22 pushed a commit to EnjoyRobotics/navigation2 that referenced this pull request Dec 1, 2025
…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]>
redvinaa pushed a commit to EnjoyRobotics/navigation2 that referenced this pull request Dec 3, 2025
* 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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants