Skip to content

Adding NodeInterfaces API Design#714

Merged
ahcorde merged 5 commits intoros2:rollingfrom
CursedRock17:node_templating
Aug 27, 2025
Merged

Adding NodeInterfaces API Design#714
ahcorde merged 5 commits intoros2:rollingfrom
CursedRock17:node_templating

Conversation

@CursedRock17
Copy link
Contributor

Meant to resolve #698 this pull request deprecates and replaces all instances of NodeT within the geometry2 repo with rclcpp::node_interfaces::NodeInterfaces. This PR also replaces #661 to close #95.

While the key is to deprecate the old templated node methods there are some kinks, particularly in the StaticTransformBroadcaster and TransformBroadcaster classes in which a dereferenced node will prefer this templated version opposed to an implicit conversion. This is fine if we decide to keep the NodeT constructors in addition to the NodeInterfaces ones, but I feel that's pointless as we're trying to remove as template code here as we can.

Copy link
Contributor

@ahcorde ahcorde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see many error in the job build https://build.ros2.org/job/Rpr__geometry2__ubuntu_noble_amd64/116/

Let me know when do you need a review.

Signed-off-by: CursedRock17 <mtglucas1@gmail.com>
Signed-off-by: CursedRock17 <mtglucas1@gmail.com>
Signed-off-by: Lucas Wendland <mtglucas1@gmail.com>
@CursedRock17 CursedRock17 marked this pull request as ready for review August 15, 2025 03:56
@CursedRock17
Copy link
Contributor Author

Evening @ahcorde, this pull request is now ready for review if you have the bandwidth. A couple things I'd like to stress:

  • To force the compiler to prefer the non-templated variants over the now deprecated constructors, my resolution was to check if the NodeT was actually a shared_ptr, then deference it. So I brought in rcpputils, is this ok?
  • I added deprecated forms of many tests to continously check the deprecated constructors, it adds a bunch of extra tests, but those can be removed in M-turtle.
  • There's now going to be an abundance of deprecation warnings, for many repositories, just TransformBroadcaster has 12K results alone. Is this something that needs to be announced in any capacity, or should I just fix the "main" dependencies?

Signed-off-by: Lucas Wendland <mtglucas1@gmail.com>
@CursedRock17
Copy link
Contributor Author

Headers and Cleanup Changes Implemented.

@ahcorde
Copy link
Contributor

ahcorde commented Aug 25, 2025

Pulls: #714
Gist: https://gist.githubusercontent.com/ahcorde/aeb266edba13e8d794f7b6a215113e94/raw/e8164211ede5998be08b658c6d7e5e6580094ef4/ros2.repos
BUILD args: --packages-above-and-dependencies test_tf2 tf2_ros
TEST args: --packages-above test_tf2 tf2_ros
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/16788

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

Copy link
Contributor

@ahcorde ahcorde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Signed-off-by: Lucas Wendland <mtglucas1@gmail.com>
@CursedRock17
Copy link
Contributor Author

Whoops, forgot visibility headers! Those changes are in, along with some loose deprecation warnings that have been cleaned up.

@ahcorde
Copy link
Contributor

ahcorde commented Aug 27, 2025

Pulls: #714
Gist: https://gist.githubusercontent.com/ahcorde/6d434e18a5e696d403b1985760f1128c/raw/e8164211ede5998be08b658c6d7e5e6580094ef4/ros2.repos
BUILD args: --packages-above-and-dependencies test_tf2 tf2_ros
TEST args: --packages-above test_tf2 tf2_ros
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/16793

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@ahcorde ahcorde merged commit 46220a6 into ros2:rolling Aug 27, 2025
2 checks passed
@CursedRock17 CursedRock17 deleted the node_templating branch August 27, 2025 12:48
nbbrooks added a commit to moveit/moveit2 that referenced this pull request Oct 12, 2025
* Fix image_common NodeT deprecation warnings from ros-perception/image_common#352 - migrate to NodeInterfaces

* Fix image_common rmw_qos_profile_t deprecation warnings from ros-perception/image_common#364 - migrate to rclcpp::QoS

* Fix rviz update float deprecation warnings from ros2/rviz#1533 - migrate to std::chrono::duration

* Fix geometry2 tf2_ros .h deprecation warnings from ros2/geometry2#805 - migrate Kilted and Rolling to .hpp

* Fix geometry2 tf2_ros NodeT deprecation warnings from ros2/geometry2#714 - migrate to NodeInterfaces

* Fix rclcpp spin_some deprecation warnings from ros2/rclcpp#2848 - migrate to SingleThreadedExecutor

---------

Co-authored-by: Andrea <realeandrea@yahoo.it>
helen9975 pushed a commit to personalrobotics/moveit2 that referenced this pull request Feb 17, 2026
* Fix image_common NodeT deprecation warnings from ros-perception/image_common#352 - migrate to NodeInterfaces

* Fix image_common rmw_qos_profile_t deprecation warnings from ros-perception/image_common#364 - migrate to rclcpp::QoS

* Fix rviz update float deprecation warnings from ros2/rviz#1533 - migrate to std::chrono::duration

* Fix geometry2 tf2_ros .h deprecation warnings from ros2/geometry2#805 - migrate Kilted and Rolling to .hpp

* Fix geometry2 tf2_ros NodeT deprecation warnings from ros2/geometry2#714 - migrate to NodeInterfaces

* Fix rclcpp spin_some deprecation warnings from ros2/rclcpp#2848 - migrate to SingleThreadedExecutor

---------

Co-authored-by: Andrea <realeandrea@yahoo.it>
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.

Instead of templating on NodeT, use rclcpp::node_interfaces::NodeInterfaces instead Lifecycle node support for tf2_ros::MessageFilter

2 participants