Skip to content

Backport RouteTool RViz plugin to Jazzy (#5663)#5722

Closed
Prathmesh2931 wants to merge 1 commit intoros-navigation:jazzyfrom
Prathmesh2931:jazzy
Closed

Backport RouteTool RViz plugin to Jazzy (#5663)#5722
Prathmesh2931 wants to merge 1 commit intoros-navigation:jazzyfrom
Prathmesh2931:jazzy

Conversation

@Prathmesh2931
Copy link

Basic Info

##Info
Ticket(s) this addresses - #5663
Primary OS tested on - Ubuntu 24.04
platform tested on - Docker container (nav2:jazzy-built)

Description of contribution in a few bullet points

  • Backported the RouteTool RViz panel from Rolling to Jazzy branch
  • Fixed namespace compatibility issues for Jazzy (nav2::nav2_util:: and rclcpp::)
  • Added nav2_route dependency to nav2_rviz_plugins package
  • Fixed nav2_route CMakeLists include export paths to work with downstream packages
  • Added UI resources (route_tool.ui), launch files, and RViz config for RouteTool

How this change was tested:

  • Built successfully using colcon build --packages-select nav2_route nav2_rviz_plugins in ROS 2 Jazzy Docker environment
  • Verified plugin symbols present in library using nm -D
  • Confirmed plugin registration in plugins_description.xml
  • Verified all dependencies link correctly using ldd
  • Confirmed ROS 2 can discover the plugin package

Future work that may be required :

  • Full GUI testing with RViz2 (requires X11 setup)
  • Integration testing with Nav2 route server for graph publishing
  • Documentation for route graph file format and workflow

Adds the RouteTool panel to nav2_rviz_plugins for creating and editing
route graphs in RViz2.

Changes:
- Add route_tool.hpp/cpp with Jazzy-compatible namespaces
- Add nav2_route dependency to nav2_rviz_plugins
- Fix nav2_route include export paths
- Add UI resources and launch files for RouteTool

Jazzy compatibility fixes:
- Use nav2_util::LifecycleNode instead of nav2::LifecycleNode
- Use rclcpp::Subscription instead of nav2::Subscription

Tested: Builds successfully, plugin loads in RViz2
@mergify
Copy link
Contributor

mergify bot commented Nov 26, 2025

@Prathmesh2931, all pull requests must be targeted towards the main development branch.
Once merged into main, it is possible to backport to @jazzy, but it must be in main
to have these changes reflected into new distributions.

@Prathmesh2931
Copy link
Author

@merphy @SteveMacenski

Just to clarify - RouteTool already exists in main, so this is a backport to Jazzy.

The issue is that the main version uses nav2::LifecycleNode and nav2::Subscription, which don't exist in Jazzy. When I tried cherry-picking the commit from main, I got conflicts because Jazzy needs nav2_util::LifecycleNode and rclcpp::Subscription instead.

I fixed the namespace incompatibilities so it builds on Jazzy. The alternative would be changing main to use the Jazzy namespaces first, but that would break Rolling.

You can see the conflicts here if you try cherry-picking to main:
https://github.com/ros-navigation/navigation2/blob/main/nav2_rviz_plugins/include/nav2_rviz_plugins/route_tool.hpp#L103

The linting errors from the first commit have been fixed now (c4861d1).

@mini-1235
Copy link
Collaborator

@Prathmesh2931, nav2_ros_common does not exist in Jazzy, so using nav2_util::LifecycleNode and rclcpp::Subscription is actually the correct approach.

@Prathmesh2931
Copy link
Author

@mini-1235, I have made the New PR #5727
Please Review it and let me know if changes to be made.

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.

2 participants