Skip to content

Conversation

@SteveMacenski
Copy link
Member

Expose the enable_communication_interface parameter from rclcpp_lifecycle::LifecycleNode through nav2's LifecycleNode wrapper. This allows users to disable lifecycle communication interfaces when manually managing node lifecycle transitions.

The parameter can be set via NodeOptions parameter overrides:

rclcpp::NodeOptions options;
options.parameter_overrides({{"enable_lifecycle_services", false}});

Fixes #5305

Generated by Claude Sonnet 4

Expose the enable_communication_interface parameter from rclcpp_lifecycle::LifecycleNode
through nav2's LifecycleNode wrapper. This allows users to disable lifecycle communication
interfaces when manually managing node lifecycle transitions.

The parameter can be set via NodeOptions parameter overrides:
```cpp
rclcpp::NodeOptions options;
options.parameter_overrides({{"enable_lifecycle_services", false}});
```

Fixes #5305

Co-authored-by: Steve Macenski <SteveMacenski@users.noreply.github.com>
@codecov
Copy link

codecov bot commented Jun 27, 2025

Codecov Report

Attention: Patch coverage is 80.00000% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
..._common/include/nav2_ros_common/lifecycle_node.hpp 80.00% 1 Missing ⚠️
Files with missing lines Coverage Δ
..._common/include/nav2_ros_common/lifecycle_node.hpp 92.39% <80.00%> (-0.80%) ⬇️

... and 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@roncapat
Copy link
Contributor

roncapat commented Jun 27, 2025

@SteveMacenski thanks! Will check this morning.
Meanwhile, why this PR and not the second Claude output (this commit)?

It may need some fixes due to double call to declare_parameter_if_not_declared, but at least one usage was not one of your requests in the last prompt?

Anyway, will do some test and apply any required modification, then report to you.

@roncapat
Copy link
Contributor

roncapat commented Jun 27, 2025

Tested both ways. Works like a charm!

  • I prefer the solution from this PR, without the extra temp node
  • Downsides:
    • does not take from YAML the param (but if someone writes its own bringup logic, this is not an issue at all)
    • subnodes (global_costmap, local_costmap) need that override to be forwarded via NodeOptions (but Pass node options to costmap node #5202 should have fixed it)

@SteveMacenski
Copy link
Member Author

SteveMacenski commented Jun 27, 2025

Meanwhile, why this PR and not the second Claude output (this commit)?

I do not accept the idea of a fake internal node being registered. I've worked hard to make that not occur in the stack! There was once a time we had many internal nodes and now we only have 2 in the 2 exact situations where they make sense (costmap + internal BT node for the BT Nodes to do with as they wish). It would break my soul a little bit to add in a temp node like that 🥲

does not take from YAML the param (but if someone writes its own bringup logic, this is not an issue at all)

It should - did you try that? The parameter overrides should have that content from the yaml file.

Edit: I see now that it wouldn't. Does this still work for your needs? Posting a short workflow for how you use it in this PR before we merge would be nice breadcrumb documentation for someone that might want to follow in these steps.

@roncapat
Copy link
Contributor

As I said, works pretty well for me. As I have custom C++ code to load the node, I already make use in various other situation of parameter overrides and I'm fine with it.

I too had a situation in the past where I had to deal with temporary nodes, but they are indeed bad by design. However, I may propose in the future a node-less approach for taking in ordinary ROS parameter (I use something similar in other contexts).

For the time being, this is performing great :)

@roncapat
Copy link
Contributor

I will try to provide some example code tomorrow :)

@SteveMacenski
Copy link
Member Author

Please! OK I'll wait for that but will plan to merge at that point

@roncapat
Copy link
Contributor

roncapat commented Jun 28, 2025

I'll try to summarize down here below the "full picture", since it will be Markdown maybe it could also be added to some repo README if you like. Feel free also to directly edit my comment if you like to apply some touch ups.


Nav2 comprises many ROS 2 nodes, all of them being specifically LifecycleNodes. LifecycleNodes share a common interface that allow their current status to be managed externally.

LifecycleNodes feature the following management I/Fs:

  • C++ API
    • configure() method
    • activate() method
    • deactivate() method
    • cleanup() method
    • shutdown() method
  • ROS 2 services
    • change_state
    • get_state
    • get_available_states
    • get_available_transitions
    • get_transition_graph

This means that for every LifecycleNode in the ROS 2 graph, 5 services servers are created.

The CLI tool ros2 lifecycle allows to manually interact with such services with a slightly better user experience than directly calling them via ros2 service call.

Moreover, in a typical nav2 setup, nav2_lifecycle_manager node is spawned (for example, by a launch file), to handle for you such transition - basically guaranteeing that nodes get correctly configured and activated. This node acts through the ROS 2 lifecycle services API.

However, robotic system integrators may require custom setups, with lower involvement of service calls, stricter control on the number of ROS 2 entities on the ROS graph (less nodes, less service endpoints) and maybe also custom lifecycle management strategy.

In this case, the lifecycle C++ API could be used instead. Developers can directly calls the appropriate methods to control the lifecycle of the robot.

Here's a snippet for creating a LifecycleNode and spinning it in a dedicated executor (this is the so called isolated node strategy) and appropriately transition it to the active state. This code can be put in a dedicated thread to let your application fit many nodes in the same process space, opening up to intra-process communication scenarios.

auto node = std::make_shared<NodeT>(options);
node->configure();
node->activate();
auto node_base = node->get_node_base_interface();
executor = std::make_shared<rclcpp::executors::SingleThreadedExecutor>();
executor->add_node(node_base);
executor->spin();
executor->remove_node(node_base); // Automatic shutdown transition on ctrl-c

In this scenario, lifecycle services could be not only superfluous, but an entry point for an user to interfere with the hardcoded lifecycle management logic.

However, rclcpp allows to optionally disable the lifecycle services.
Nav2 exposes this option via enable_lifecycle_services parameter, which can be only disabled via C++ API.
This makes sense because the user is already and presumably trying to control the node via C++ API, so it is not necessary to expose this toggle as a normally configurable parameter (CLI/YAML/...).
Notice that the user may expose a parameter of his own from his custom application to toggle the feature without a rebuild.

auto node = std::make_shared<NodeT>(options.parameter_overrides({{"enable_lifecycle_services", false}}));
node->configure();
node->activate();
auto node_base = node->get_node_base_interface();
executor = std::make_shared<rclcpp::executors::SingleThreadedExecutor>();
executor->add_node(node_base);
executor->spin();
executor->remove_node(node_base); // Automatic shutdown transition on ctrl-c

Remember: in this way, you will only be able to control the lifecycle node via C++ API calls. Even ros2 lifecycle will not detect your node as a lifecycle one. The only residual on the ROS graph telling somebody that the node is lifecycle-managed is the topic node_name/transition_event.

There's one additional thing to know about nav2 nodes specifically. They use the bond mechanism by default.
This typically enables the nav2_lifecycle_manager, even if residing in a different process (standalone node, not composed) to know whether the other nodes are alive or not.
As user, in the above example, will not need nav2_lifecycle_manager anymore, they may either reimplement the monitoring logic based on bond or disable it.

To disable such mechanism, every nav2 node needs the following parameters to be set (eg. via YAML file with wildcards):

/**:
  ros__parameters:
    bond_heartbeat_period: 0.0
    bond_timeout: 0.0

@SteveMacenski SteveMacenski merged commit 97e25ec into main Jun 30, 2025
15 of 17 checks passed
@SteveMacenski SteveMacenski deleted the claude/issue-5305-20250626_225935 branch June 30, 2025 20:16
OmarRebai pushed a commit to OmarRebai/navigation2 that referenced this pull request Jul 2, 2025
…os-navigation#5307)

Expose the enable_communication_interface parameter from rclcpp_lifecycle::LifecycleNode
through nav2's LifecycleNode wrapper. This allows users to disable lifecycle communication
interfaces when manually managing node lifecycle transitions.

The parameter can be set via NodeOptions parameter overrides:
```cpp
rclcpp::NodeOptions options;
options.parameter_overrides({{"enable_lifecycle_services", false}});
```

Fixes ros-navigation#5305

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Signed-off-by: orebai <omar.rebai@habemus.com>
SakshayMahna pushed a commit to SakshayMahna/navigation2 that referenced this pull request Jul 6, 2025
…os-navigation#5307)

Expose the enable_communication_interface parameter from rclcpp_lifecycle::LifecycleNode
through nav2's LifecycleNode wrapper. This allows users to disable lifecycle communication
interfaces when manually managing node lifecycle transitions.

The parameter can be set via NodeOptions parameter overrides:
```cpp
rclcpp::NodeOptions options;
options.parameter_overrides({{"enable_lifecycle_services", false}});
```

Fixes ros-navigation#5305

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
SteveMacenski added a commit that referenced this pull request Jul 17, 2025
#5300)

* fix: Add PushRosNamespace action to navigation launch file and update comments for parameter namespacing

Signed-off-by: orebai <omar.rebai@habemus.com>

* fix: Reorder import statements in navigation launch file for consistency

Signed-off-by: orebai <omar.rebai@habemus.com>

* fix: Correct formatting of comments in navigation launch file for clarity

Signed-off-by: orebai <omar.rebai@habemus.com>

* fix: Add PushRosNamespace action to multiple launch files for parameter namespacing

Signed-off-by: orebai <omar.rebai@habemus.com>

* fix: Add PushRosNamespace action to slam_launch.py for parameter namespacing

Signed-off-by: orebai <omar.rebai@habemus.com>

* Adding logging for matched events and dropped messages into pub/sub of new nav2_ros_common package. Also adding QoS overrides default ON (#5302)

* Adding logging for matched events and dropped messages

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* toggle on

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* apply for smac 2D

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update interface_factories.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* Add LaunchConfigAsBool (Fixes #5233) (#5301)

* Add LaunchConfigAsBool (Fixes #5233)

Signed-off-by: nishalangovender <nishalan.govender@gmail.com>

* Fix Linting

Signed-off-by: nishalangovender <nishalan.govender@gmail.com>

* Fix ament_mypy and pre-commit

Signed-off-by: nishalangovender <nishalan.govender@gmail.com>

* Added Type Annotations

Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>

* mypy ignore

Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>

* launch.Substitution

Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>

* Update All Bools in nav2_bringup

Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>

---------

Signed-off-by: nishalangovender <nishalan.govender@gmail.com>
Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* Create claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* Update claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* Update claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* Update claude.yml for authorized users

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* Update claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* Update claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* Adding clear costmap around pose service option (#5309)

* Adding clear costmap around pose impl

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_msgs/srv/ClearCostmapAroundPose.srv

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Adding APIs for simple commander

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* linting

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* adding import

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* Add support for enable_lifecycle_services parameter in LifecycleNode (#5307)

Expose the enable_communication_interface parameter from rclcpp_lifecycle::LifecycleNode
through nav2's LifecycleNode wrapper. This allows users to disable lifecycle communication
interfaces when manually managing node lifecycle transitions.

The parameter can be set via NodeOptions parameter overrides:
```cpp
rclcpp::NodeOptions options;
options.parameter_overrides({{"enable_lifecycle_services", false}});
```

Fixes #5305

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Signed-off-by: orebai <omar.rebai@habemus.com>

* fix: Rename PushRosNamespace to PushROSNamespace for consistency across launch files

Signed-off-by: orebai <omar.rebai@habemus.com>

---------

Signed-off-by: orebai <omar.rebai@habemus.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: nishalangovender <nishalan.govender@gmail.com>
Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>
Co-authored-by: orebai <omar.rebai@habemus.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Nishalan Govender <137301877+nishalangovender@users.noreply.github.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Sushant-Chavan added a commit to Sushant-Chavan/navigation2 that referenced this pull request Aug 5, 2025
* Revert "Fix Ci from key signing (ros-navigation#5220)" (ros-navigation#5237)

* Revert "Fix Ci from key signing (ros-navigation#5220)"

This reverts the changes to the Dockerfile done in 1345c22.

Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com>

* Update Cache Version

Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com>

---------

Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com>

* enable_groot_monitoring_ false (ros-navigation#5246)

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>

* Updating readme table for kilted release (ros-navigation#5249)

* updating readme table for kilted release

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Updating table lint

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Add min_distance_to_obstacle parameter to RPP (ros-navigation#4543)

* min_distance_to_obstacle

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

* suggestion to time base and combine

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

* typo

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

* use min_approach_linear_velocity

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

---------

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>

* Fixing builds for message filters API change while retaining Jazzy, Kilted, and Rolling support (ros-navigation#5251)

* Update amcl_node.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update amcl_node.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Working for Kilted, Jazzy

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update amcl_node.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update amcl_node.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update amcl_node.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Change max_cost default to 254 (ros-navigation#5256)

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Route server corner smoothing (ros-navigation#5226)

* added edge length method

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* Added corner arc class

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* replaced double vectors with Coordinates, added methods to return start and end coordinates

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* using Coordinates, fixed direction of tangents

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* added corner arc in header, added logger in protected variable

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* first pass of corner smoothing algorithm

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* reassigning next edge to have a different start, if a corner occurs before it

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* using unique pointer instead of raw pointers for new edges and nodes

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* added smoothing parameter

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* made angle of interpolation a parameter

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* const for return methods, added flag for smoothing corners

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* moved getEdgeLength() into the Directional Edge struct

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* using float instead of double

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* smoothing radius is float, couple methods moved to protected

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* removed signed_angle_ as a member variable

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* removed unnecessary member variables

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* removed angle of interpolation and inferring it from path density and radius instead

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* consolidated corner arc into one header function

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* readded newline

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* changed corner arc to corner smoothing

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* replaced the use of edges with coordinates to generate smoothing arc, removed storage of nodes and edges

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* linting

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* fixing cpplint

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* linting for headers

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* cpplinting

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* Update nav2_route/src/path_converter.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_route/src/path_converter.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_route/src/path_converter.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_route/src/path_converter.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_route/include/nav2_route/corner_smoothing.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* fixed divide by zeros and accessing empty route.edges

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* uncrustify linting

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* cpp linting

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* path converter linting

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* changed all doubles to floats

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* added check for edges that are colinear to avoid divide by 0, fixed final edge interpolation

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* linting

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* Update nav2_route/include/nav2_route/corner_smoothing.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* added doxygen for corner arc class

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* added warning message if corner can't be smoothed

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* added smooth_corners to the nav2 params file

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* added smoothing flag and radius parameter to README.md'

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* typo in README

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* added testing for corner smoothing

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>

* Update nav2_route/include/nav2_route/corner_smoothing.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Conserve curvature with LIMIT action (ros-navigation#5255)

* Conserve curvature with LIMIT action

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* fix format

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* fix test

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Parametrizing obstacle layer tf filter tolerance (ros-navigation#5261)

Signed-off-by: Marco Bassa <marco.bassa@idealworks.com>

* Add namespace support for rviz costmap cost tool (ros-navigation#5268)

Signed-off-by: Maurice-1235 <mauricepurnawan@gmail.com>

* Fix/smac planner orientation goals (ros-navigation#5235)

* cherry pick

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* cherry pick 6a74ba6

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* cherrpy pick

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* include x11 forwarding

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* kind of working version

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* cleanup

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* formatting

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* minor format change

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* change naming

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* minor changes

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* working with new changes

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* Revert "Fix Ci from key signing (ros-navigation#5220)" (ros-navigation#5237)

* Revert "Fix Ci from key signing (ros-navigation#5220)"

This reverts the changes to the Dockerfile done in 1345c22.

Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com>

* Update Cache Version

Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com>

---------

Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com>
Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* Revert back

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* enable_groot_monitoring_ false (ros-navigation#5246)

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* Updating readme table for kilted release (ros-navigation#5249)

* updating readme table for kilted release

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Updating table lint

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* Add min_distance_to_obstacle parameter to RPP (ros-navigation#4543)

* min_distance_to_obstacle

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

* suggestion to time base and combine

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

* typo

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

* use min_approach_linear_velocity

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

---------

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* Fixing builds for message filters API change while retaining Jazzy, Kilted, and Rolling support (ros-navigation#5251)

* Update amcl_node.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update amcl_node.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Working for Kilted, Jazzy

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update amcl_node.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update amcl_node.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update amcl_node.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* Change max_cost default to 254 (ros-navigation#5256)

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* linter

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* remove const

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* pass const pointer by value

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* pass const pointer by value

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

* remove unused param

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>

---------

Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>
Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com>
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com>
Co-authored-by: Guillaume Doisy <doisyg@users.noreply.github.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Fix backport compiler warning (ros-navigation#5277)

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Fix ament mypy (ros-navigation#5280)

* Configured nav2_loopback_sim to be compliant with mypy.

Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>

* Configured nav2_simple_commander to be compliant with mypy.

Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>

* Configured nav2_system_tests to be compliant with mypy.

Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>

---------

Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>

* Publish zero velocitiy in case of goal failure (ros-navigation#5279)

Signed-off-by: haider8645 <haider_lodhi@hotmail.com>

* Update PULL_REQUEST_TEMPLATE.md

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Use fixed thresholds for Trinary yaml (ros-navigation#5278)

Signed-off-by: Adi Vardi <adi.vardi@enway.ai>

* Add missing include of algorithm in differential_motion_model.cpp (ros-navigation#5293)

Signed-off-by: Silvio Traversaro <silvio@traversaro.it>

* Remove unused unistd.h header from route_tool.cpp (ros-navigation#5292)

Signed-off-by: Silvio Traversaro <silvio@traversaro.it>

* Fix compilation of nav2_smac_planner on Windows (ros-navigation#5291)

Signed-off-by: Silvio <silvio.traversaro@iit.it>

* Large Nav2 Node, Utils, and Interface Refactor (ros-navigation#5288)

* initial unorganized prototype

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* break out files and add doxygen

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Adding refactor for nav2_ros_common and new ROS interface factories

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* fixing CI - not sure how that got through merge conflicts

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Lifecycle publisher a missing test

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* system tests

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* default

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* activating publishers

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* temp disable allow param qos overrides

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* API update for new constructor option

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Supporting Jazzy and abstracting util

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Review round 1

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Adding Nav2 Publisher and Subscriber objects to later build upon

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Adding additional ::SharedPtr for readability

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* fix bug

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* fixing Jazzy support

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* missed one last spot

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Adding migration instructions

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* more context

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Adding migration context

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* precommit

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* adding missing dep

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Updating system tess

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* more

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Adding logging for matched events and dropped messages into pub/sub of new nav2_ros_common package. Also adding QoS overrides default ON (ros-navigation#5302)

* Adding logging for matched events and dropped messages

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* toggle on

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* apply for smac 2D

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update interface_factories.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Add LaunchConfigAsBool (Fixes ros-navigation#5233) (ros-navigation#5301)

* Add LaunchConfigAsBool (Fixes ros-navigation#5233)

Signed-off-by: nishalangovender <nishalan.govender@gmail.com>

* Fix Linting

Signed-off-by: nishalangovender <nishalan.govender@gmail.com>

* Fix ament_mypy and pre-commit

Signed-off-by: nishalangovender <nishalan.govender@gmail.com>

* Added Type Annotations

Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>

* mypy ignore

Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>

* launch.Substitution

Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>

* Update All Bools in nav2_bringup

Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>

---------

Signed-off-by: nishalangovender <nishalan.govender@gmail.com>
Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>

* Create claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update claude.yml for authorized users

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update claude.yml

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Adding clear costmap around pose service option (ros-navigation#5309)

* Adding clear costmap around pose impl

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_msgs/srv/ClearCostmapAroundPose.srv

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Adding APIs for simple commander

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* linting

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* adding import

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Fix compiler errors in nav2_map_server

* Fix compiler errors in nav2_costmap_2d

* Add support for enable_lifecycle_services parameter in LifecycleNode (ros-navigation#5307)

Expose the enable_communication_interface parameter from rclcpp_lifecycle::LifecycleNode
through nav2's LifecycleNode wrapper. This allows users to disable lifecycle communication
interfaces when manually managing node lifecycle transitions.

The parameter can be set via NodeOptions parameter overrides:
```cpp
rclcpp::NodeOptions options;
options.parameter_overrides({{"enable_lifecycle_services", false}});
```

Fixes ros-navigation#5305

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

---------

Signed-off-by: Nils-Christian Iseke <nilsmailiseke@gmail.com>
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Alexander Yuen <alex@polymathrobotics.com>
Signed-off-by: Marco Bassa <marco.bassa@idealworks.com>
Signed-off-by: Maurice-1235 <mauricepurnawan@gmail.com>
Signed-off-by: Stevedan Omodolor <stevedan.o.omodolor@gmail.com>
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
Signed-off-by: haider8645 <haider_lodhi@hotmail.com>
Signed-off-by: Adi Vardi <adi.vardi@enway.ai>
Signed-off-by: Silvio Traversaro <silvio@traversaro.it>
Signed-off-by: Silvio <silvio.traversaro@iit.it>
Signed-off-by: nishalangovender <nishalan.govender@gmail.com>
Signed-off-by: Nishalan Govender <nishalan.govender@gmail.com>
Co-authored-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com>
Co-authored-by: Guillaume Doisy <doisyg@users.noreply.github.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: alexanderjyuen <103065090+alexanderjyuen@users.noreply.github.com>
Co-authored-by: Marco Bassa <101661130+MarcoMatteoBassa@users.noreply.github.com>
Co-authored-by: mini-1235 <mauricepurnawan@gmail.com>
Co-authored-by: Stevedan Ogochukwu Omodolor <61468301+stevedanomodolor@users.noreply.github.com>
Co-authored-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
Co-authored-by: Haider <haider_lodhi@hotmail.com>
Co-authored-by: Adi Vardi <57910756+adivardi@users.noreply.github.com>
Co-authored-by: Silvio Traversaro <silvio@traversaro.it>
Co-authored-by: Nishalan Govender <137301877+nishalangovender@users.noreply.github.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

LifecycleNodes - support enable_communication_interface constr parameter

3 participants