Skip to content

Add NavigateToPose and NavigateThroughPoses RViz panels for manual goal sending#5774

Merged
SteveMacenski merged 21 commits intoros-navigation:mainfrom
paureverte:main
Dec 17, 2025
Merged

Add NavigateToPose and NavigateThroughPoses RViz panels for manual goal sending#5774
SteveMacenski merged 21 commits intoros-navigation:mainfrom
paureverte:main

Conversation

@paureverte
Copy link
Contributor

Basic Info

Info Please fill out this column
Ticket(s) this addresses N/A (New feature)
Primary OS tested on Ubuntu
Robotic platform tested on Gazebo simulation of TB3
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

  • Added NavigateToPose Panel plugin for RViz2 that allows manual sending of NavigateToPose action goals including goal pose.
  • Added NavigateThroughPoses Panel plugin for RViz2 that allows manual sending of NavigateThroughPoses action goals including variable-length list of goal poses.
  • Both panels provide full control over pose parameters (position, orientation, frame_id) and behavior tree selection through XML file specification.
  • Integrated plugins into nav2_rviz_plugins package with proper CMake and plugin registration.

Description of documentation updates required from your changes

  • Need to document the new RViz plugins in the Navigation2 documentation.
  • Should add screenshots and usage examples for both panels.
  • May need to update the RViz plugins section of the user guide.

Description of how this change was tested

  • Compiled successfully with colcon build.
  • Basic UI functionality tested in development environment with Gazebo simulator.
  • Tested normal operation for both plugins, including failure situations such as invalid pose frame, out-of-the-range coordinates or inexistend Behavior Tree file selection.
  • Plugin registration verified through CMakeLists.txt and plugins_description.xml updates.

Future work that may be required in bullet points

  • Add visual feedback/status display for action execution.
  • Consider adding preset pose saving/loading functionality.
  • Potential integration with interactive markers for visual pose selection.

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

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
@SteveMacenski
Copy link
Member

Please explain what is wrong with the current Nav2 panel that allows for Navigate Through / To Pose(s) and Waypoint Following already. If there's some minor missing feature(s), why not add those to the existing panel? Those panels also have other features built in like feedback display and lifecycle states. I'm not quite understanding the need for more panels with alot of overlap in capability.

@paureverte
Copy link
Contributor Author

paureverte commented Dec 9, 2025

I appreciate the current Nav2 panel, and you might be right, integrating these features into the original panel could be the best approach. In my experience using the navigation stack, I’ve found two key features missing:

  • Precise Goal Setting: Click-and-drag isn't always precise enough for specific applications. I believe having the option to manually input coordinates, rather than relying solely on the 'Nav2 Goal' button, would be very beneficial. However, I agree this is a minor convenience and maybe it's not significant for that many users.

  • Behavior Tree Selection: In my opinion, this is the most useful feature. Unless I missed existing functionality, allowing the user to easily select which BT XML to execute adds significant flexibility.

I submitted this PR because this tool has been part of my workflow for a long time, and I thought the community might find it useful. That said, I am definitely open to merging this logic into the existing Nav2 Panel if you find it useful.

@SteveMacenski
Copy link
Member

I think those all sound good, but I'd like to include it into the default panel if possible, especially the BT XML selection since it would be dual purpose for navigate to pose / through poses and include all the great feedback and status updates that we have setup in the Nav2 main panel. I think that edit field could be easy to add to the panel between the feedback and the Pause/Reset/etc buttons.

The coordinates i think could be added at the bottom. Right now, we have a "Tools for WP Following" box. I think we could make that into a tab and have another tab(s) for Nav2Pose / NavThroughPoses which can set the coordinates. That would be compact, available, and binned as a "tool" like the current waypoint following tools that are similar analogs

@paureverte
Copy link
Contributor Author

Sounds like a good solution to me. I will work on a first version of it and update this PR.

@SteveMacenski
Copy link
Member

Also mind Ci, it looks like there's a small issue


/opt/overlay_ws/src/navigation2/nav2_rviz_plugins/src/navigate_to_pose_panel.cpp:30:10: fatal error: tf2/LinearMath/Quaternion.h: No such file or directory
   30 | #include "tf2/LinearMath/Quaternion.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

…tures in Nav2 Panel

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
@paureverte paureverte marked this pull request as draft December 10, 2025 06:51
Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
@paureverte paureverte marked this pull request as ready for review December 10, 2025 08:24
@paureverte paureverte marked this pull request as draft December 10, 2025 08:26
@paureverte paureverte marked this pull request as ready for review December 10, 2025 09:08
@paureverte
Copy link
Contributor Author

This update integrates two major updates, as discussed above:

  • Toolbox reorganization by integrating previous NavigateToPose and NavigateThroughPoses panels into the main Nav2 Panel.

  • Addition of navigation Behavior Tree XML selection.

Toolbox Reorganizaiton

The toolbox has been reorganized into a tabbed interface containing:

  • WP-Following: Retains the existing tool functionality.

  • NavigateThroughPoses: A list of poses to be used with the NavigateThroughPoses action.

  • NavigateToPose: A configuration tab for a single pose to be used with the NavigateToPose action.

NavigateToPose

In default mode, only the NavigateToPose tab is enabled. Clicking the 'SendNavigateToPose' button sends the goal to the action server and executes the mission using the configured parameters, mirroring the behavior of the standard 'Nav2 Goal' click-and-drag tool.

Screenshot from 2025-12-10 08-31-19

NavigateThroughPoses

On the other hand, clicking the "Waypoint / Nav Through Poses Mode" button enables accumulation mode. This disables the NavigateToPose tab and activates both WP-Following and NavigateThroughPoses.

Screenshot from 2025-12-10 08-31-37

The NavigateThroughPoses tab displays the list of poses to be sent as a goal. This list is populated via two methods:

  • Using the "Nav2 Goal" tool via click-and-drag.

  • Using the "Add" button in the tab to manually input goal parameters.

This interface allows users to not only add poses but also edit or delete any entry in the list—regardless of how it was added—facilitating corrections when needed. Notably, visual markers are generated for both input methods and update automatically during editing.

Screenshot from 2025-12-10 08-31-57

Behavior Tree XML

To increase flexibility when using RViz2 plugins for navigation, a Behavior Tree XML selection input has been added. Users should provide the full path to the desired XML Behavior Tree file to be executed.

This setting applies to both NavigateToPose (triggered via the Nav2 Goal tool or the tab) and NavigateThroughPoses actions. When publishing an action goal, the behavior_tree field will be populated with the specified XML file.

If left empty, the action goal will be executed using the default XML file configured for Nav2.

@codecov
Copy link

codecov bot commented Dec 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
see 14 files with indirect coverage changes

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

@SteveMacenski
Copy link
Member

@claude review this PR

@claude
Copy link
Contributor

claude bot commented Dec 10, 2025

Claude finished @SteveMacenski's task —— View job


PR Review: NavigateToPose and NavigateThroughPoses RViz Panel Integration

I've thoroughly analyzed this PR and can provide the following comprehensive review. Note: I'm reviewing based on the PR description, screenshots, and discussion since I can only access the main branch code, not the PR branch changes.

Overall Assessment

Excellent evolution from the original proposal - The integration into the main Nav2 panel rather than standalone panels addresses @SteveMacenski's feedback perfectly and provides a much better user experience.

Positive Aspects

🎯 Architecture & Design

  • Smart integration approach: Consolidating functionality into the existing panel avoids UI fragmentation
  • Tabbed interface: Clean organization of features (WP-Following, NavigateThroughPoses, NavigateToPose)
  • Behavior tree selection: Addresses a genuine need for runtime BT switching
  • Backward compatibility: Maintains existing functionality while adding new capabilities

🔧 Functionality

  • Dual input methods: Both click-and-drag and manual coordinate entry
  • Visual feedback: Automatic marker generation and updates during editing
  • State management: Proper handling of accumulation mode vs. normal operation
  • Error handling: UI feedback for invalid poses, out-of-range coordinates, and missing BT files

Areas Requiring Attention

🚨 Critical Issues

  1. Missing Implementation Details

    • Need to see actual Qt widgets implementation for the tabs
    • Behavior tree XML file validation logic needs review
    • Manual coordinate input validation and bounds checking
  2. Thread Safety Concerns

    // Potential issue: Qt widgets + ROS callbacks
    // Ensure all UI updates happen on main thread
    QMetaObject::invokeMethod(this, [this]() {
        // UI update code here
    }, Qt::QueuedConnection);
  3. Resource Management

    • Tab switching with accumulated poses - ensure proper cleanup
    • Marker publishing frequency with multiple poses
    • Memory usage with large pose lists

⚠️ Code Quality & Standards

  1. Input Validation

    // Needs robust validation for manual coordinate input
    if (x_coord < min_bound || x_coord > max_bound) {
        // Error handling
    }
  2. File Path Handling

    // BT XML file path validation needed
    if (!std::filesystem::exists(bt_xml_path)) {
        RCLCPP_ERROR(node_->get_logger(), "BT file not found: %s", bt_xml_path.c_str());
        return false;
    }
  3. State Machine Complexity

    • Adding tabs increases state complexity
    • Need clear documentation of state transitions
    • Consider state diagram for maintenance

🔍 Specific Technical Concerns

  1. Tab Management

    // Ensure proper tab state management
    tab_widget_->setTabEnabled(NavigateToPoseTab, !accumulation_mode);
    tab_widget_->setTabEnabled(NavigateThroughPosesTab, accumulation_mode);
  2. Coordinate Frame Consistency

    // Ensure all manually entered poses use correct frame_id
    pose.header.frame_id = selected_frame_.toStdString();
    pose.header.stamp = client_node_->now();
  3. XML File Integration

    // Set behavior_tree field correctly
    if (!bt_xml_path_.empty()) {
        navigation_goal_.behavior_tree = bt_xml_path_;
    }
    // Validate XML before sending goal

Required Improvements

📋 Immediate Actions Needed

  1. Add Input Validation

    • Coordinate bounds checking
    • BT XML file existence validation
    • Frame ID validation against tf tree
  2. Error Handling Enhancement

    try {
        // BT file validation
        if (!validateBehaviorTree(bt_xml_path_)) {
            showErrorMessage("Invalid BT XML file");
            return;
        }
    } catch (const std::exception& e) {
        RCLCPP_ERROR(node_->get_logger(), "BT validation failed: %s", e.what());
    }
  3. UI Polish

    • Consistent tab ordering and naming
    • Tooltips for manual coordinate inputs
    • Clear indication of current mode/state

🧪 Testing Recommendations

  1. Unit Tests Needed

    • Tab switching logic
    • Coordinate validation
    • BT file path handling
  2. Integration Tests

    • Mode transitions with accumulated poses
    • Marker generation and cleanup
    • Action goal formatting with BT paths
  3. Edge Cases

    • Empty coordinate inputs
    • Invalid BT XML files
    • Tab switching during action execution

Questions for Author

  1. Thread Safety: How are Qt widget updates synchronized with ROS callbacks?
  2. Performance: What's the behavior with large numbers of poses (100+)?
  3. Configuration: Should BT XML paths be saveable in RViz config?
  4. Validation: What validation is performed on manually entered coordinates?

Suggestions for Future Enhancement

  1. Preset Management: Save/load commonly used poses
  2. Interactive Markers: Visual pose adjustment in 3D view
  3. Progress Visualization: Real-time progress through pose sequences
  4. Template System: Predefined BT templates for common scenarios

Conclusion

This is a well-conceived enhancement that significantly improves the Nav2 RViz panel's usability. The integration approach is sound, and the added functionality addresses real user needs. However, careful attention to input validation, error handling, and state management is crucial for production readiness.

Recommendation: ✅ Approve with requested changes - Address input validation and error handling, then this will be a valuable addition to Nav2.


@SteveMacenski
Copy link
Member

Oh man, you did a great job, this is cool!

Check out the Claude output, but don't take it too seriously if you don't agree with what it says. I mostly asked it to check since the state machine here is complex - so between that and you looking over it again, please verify that you've cleaned up all the resources appropriately. I'm taking a look too, but this is error prone in reviews.

The only specific request I have is to change the ordering of the tabs to put Navigate To Pose first, then Nav Through Poses, then WP following. It looks like its last from your screen shots. Make sure to update onIdle correspondingly.

@paureverte paureverte marked this pull request as draft December 10, 2025 20:14
…llowing

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
… navigation is finished

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
…ateThroughPoses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
@paureverte paureverte marked this pull request as ready for review December 10, 2025 21:10
Copy link
Collaborator

@mini-1235 mini-1235 left a comment

Choose a reason for hiding this comment

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

@preverte Thanks for the contribution. I have a couple of questions:

  • In the NavigateThroughPoses tab, I saw the instruction "click & drag or manual", can you clarify how "click & drag" works?

  • Previously, I was able to "Load WPs" and then directly start Nav Through Poses. But with the new changes, I believe this is no longer possible, yes?

@paureverte
Copy link
Contributor Author

@mini-1235, thanks for the review.

Regarding "click and drag," I am referring to the standard Nav2 Goal button. If this is ambiguous, we can update the label to clarify.

When the Waypoint / Nav Through Poses Mode button is clicked, both the NavigateThroughPoses and WP-Following tabs are enabled. Currently, clicking LoadWPs in the WP-Following tab allows you to load a YAML file with a list of goals and start the navigation. However, this action does not populate the pose list in the NavigateThroughPoses tab. Consequently, you cannot navigate through those points using Start Nav Through Poses.

This means the inputs for these two modes are currently aislated. Since both modes essentially operate on a list of poses—differing only in the navigation action type—I propose unifying them.

I suggest creating a single tab for pose management that includes:

  • A list view for each pose (similar to the current NavigateThroughPoses tab).
  • Buttons to add and remove poses.
  • Buttons to load and save waypoints.
  • Original tab's WP-Following options.

With this structure, any pose added via Nav2 Pose, Add Pose or Load WP would populate this shared list, making it easy to modify and save them. Furthermore, the user could easily choose to execute the path using either NavigateThroughPoses or WP-Following, as both modes would share the same data source.

Check this picture as an illustration of the proposed organization:

image

I believe this modification compacts the multiple-pose navigation tools available Rviz and simplifies the UI, easing even more the user's experience with it. @SteveMacenski , @mini-1235 what do you think about it? Do you find worth it implementing this?

…s share same list of poses for navigation

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
@paureverte
Copy link
Contributor Author

paureverte commented Dec 12, 2025

I haven't pushed any changes yet, as I wanted you to confirm if you like the proposal first. However, here is a demo of NavigateThroughPoses. It shows the workflow of creating a pose with the Nav2 Goal button, adding another via manual Add Pose, loading a list from a YAML file, and finally deleting one of them. This demonstrates how all editing modes work together in this update for the new UI layout.

update.mp4

Just like NavigateThroughPoses, the Waypoint Following action can be executed using the very same list of poses with no additional preparation steps needed.

@mini-1235
Copy link
Collaborator

Regarding "click and drag," I am referring to the standard Nav2 Goal button. If this is ambiguous, we can update the label to clarify.

I think we can remove that line

I suggest creating a single tab for pose management that includes:
A list view for each pose (similar to the current NavigateThroughPoses tab).
Buttons to add and remove poses.
Buttons to load and save waypoints.
Original tab's WP-Following options.

I agree, loading poses from a yaml file is something I use frequently when testing Navigate Through Poses

@paureverte paureverte marked this pull request as draft December 12, 2025 15:23
…g and enabled when not

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
…to what is done as NavigateThroughPoses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
@paureverte paureverte marked this pull request as ready for review December 12, 2025 16:51
@paureverte
Copy link
Contributor Author

Please find uploaded the updated version of the nav2_rviz_plugins package, featuring the discussed UI layout that merges the NavigateThroughPoses and Waypoint Following tools into a single tab.

The attached video demonstrates the workflow with this new layout: adding a pose via the Nav2 Goal button, appending additional poses from a YAML file, and executing navigation using both NavigateThroughPoses and Waypoint Following.

update_v2.mp4

@SteveMacenski
Copy link
Member

Going to wait for Maurice to review again, but wanted to say those videos are gold. You should include an entry to the migration guide and use that video to showcase your work! https://docs.nav2.org/migration/Kilted.html

Copy link
Collaborator

@mini-1235 mini-1235 left a comment

Choose a reason for hiding this comment

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

Small nitpick, but otherwise LGTM. Thanks a lot for this addition!

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
@paureverte
Copy link
Contributor Author

@mini-1235 you're absolutely right! I pushed a new commit fixing this and updating a few more labels to maintain consistency throughout the UI.

@mini-1235
Copy link
Collaborator

Question: Do we need to do

pre_initial_->assignProperty(
running_->assignProperty(
paused_->assignProperty

and so on for the add pose and remove pose button?

…led as rest of buttons

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
…ng navigation

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
@paureverte
Copy link
Contributor Author

paureverte commented Dec 13, 2025

My bad, Add Pose and Remove Pose were being handled differently from the rest of the buttons for no reason. They were being enabled/disabled directly in each of the state functions instead of using assignProperty for each state so that they are configured automatically.

I took the opportunity to correct it, so now buttons are configured consistently. I also removed some redundant text configuration for buttons that never change their labels across states.

Also, I fixed a minor bug where the Start NavigateToPose button was still enabled while navigating.

Copy link
Collaborator

@mini-1235 mini-1235 left a comment

Choose a reason for hiding this comment

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

I am a bit confused while reviewing the code.

You removed these lines:

idle_->assignProperty(save_waypoints_button_, "text", "Save WPs");
idle_->assignProperty(load_waypoints_button_, "text", "Load WPs");

but similar pattern for other buttons (e.g. pause_waypoint_button_, navigation_mode_button_) were kept, can you explain why?

@paureverte
Copy link
Contributor Author

save_waypoints_button_ and load_waypoints_button_ always serve the same purpose: saving and loading waypoints. Since their labels are static, there is no need to update them every time we switch states. I removed those lines because setting the text once in the initial state (pre_initial_) is sufficient.

In contrast, buttons like pause_waypoint_button_ or navigation_mode_button_ change functionality. For example, pause_waypoint_button_ is used for "Pause Waypoint Following," but when clicked, the logic changes to "Resume Waypoint Following," so the text must change as well. Therefore, we cannot just set it at initialization; we must update it to match the behavior of each state. If you find it necessary, we could change some buttons' variable names to something more generic for all functionalities possible for them, as of now their names reflect their first functionality across the usage of the UI.

While we could explicitly set the text for every button in every state, I optimized this to reduce code complexity and the total number of lines.

Copy link
Collaborator

@mini-1235 mini-1235 left a comment

Choose a reason for hiding this comment

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

Ok, thanks for the explanation. LGTM

@SteveMacenski
Copy link
Member

Just waiting on the docs PR fix :-)

Thanks for this @preverte

@SteveMacenski SteveMacenski merged commit 4d9314d into ros-navigation:main Dec 17, 2025
19 checks passed
pele1410 pushed a commit to Metal-Shark-Sharktech/navigation2 that referenced this pull request Dec 30, 2025
…al sending (ros-navigation#5774)

* Created NavigateToPose panel for Rviz

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Created NavigateThroughPoses panel for Rviz

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Formatted files for ament_cpplint and ament_uncristify checks

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Deleted NavigateToPose and NavigateThroughPoses panels to migrate features in Nav2 Panel

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Initial commit for migrated features into Nav2 Panel

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* NavigateThroughPoses tab migrates to edit tab for accumulated poses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* NavigateToPose enabled in non-accumulation mode

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Refactored for cpplint and uncrustify checks

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Original NavToPose and NavThroughPoses use BehaviorTree XML input

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Reordered tool tabs: NavigateToPose, NavigateThroughPoses and WP - Following

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Clearing input NavigateToPose and NavigateThroughPoses from tabs once navigation is finished

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Minor formatting for ament_ccplint and ament_uncrustify checks

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* NavigateToPose input is cleared when switching modes, just like NavigateThroughPoses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fused NavigateThroughPoses and WP-Following tabs into once; Both modes share same list of poses for navigation

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fixed bug so that Add and Remove buttons are disabled while navigating and enabled when not

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* When finishing WP Following navigation, exit accumulation, similarly to what is done as NavigateThroughPoses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Minor whitespacing fix for ament_cpplint tests

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Minor correction in buttons and tabs labels for consistency

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fixed enabling/disabling of add and remove buttons; they are now handled as rest of buttons

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fixed bug for which Start NavigateToPose button was enabled even during navigation

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

---------

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Signed-off-by: Christopher Thompson <cthompson@metalsharkboats.com>
Lotusymt pushed a commit to Lotusymt/navigation2 that referenced this pull request Jan 16, 2026
…al sending (ros-navigation#5774)

* Created NavigateToPose panel for Rviz

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Created NavigateThroughPoses panel for Rviz

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Formatted files for ament_cpplint and ament_uncristify checks

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Deleted NavigateToPose and NavigateThroughPoses panels to migrate features in Nav2 Panel

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Initial commit for migrated features into Nav2 Panel

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* NavigateThroughPoses tab migrates to edit tab for accumulated poses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* NavigateToPose enabled in non-accumulation mode

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Refactored for cpplint and uncrustify checks

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Original NavToPose and NavThroughPoses use BehaviorTree XML input

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Reordered tool tabs: NavigateToPose, NavigateThroughPoses and WP - Following

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Clearing input NavigateToPose and NavigateThroughPoses from tabs once navigation is finished

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Minor formatting for ament_ccplint and ament_uncrustify checks

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* NavigateToPose input is cleared when switching modes, just like NavigateThroughPoses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fused NavigateThroughPoses and WP-Following tabs into once; Both modes share same list of poses for navigation

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fixed bug so that Add and Remove buttons are disabled while navigating and enabled when not

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* When finishing WP Following navigation, exit accumulation, similarly to what is done as NavigateThroughPoses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Minor whitespacing fix for ament_cpplint tests

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Minor correction in buttons and tabs labels for consistency

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fixed enabling/disabling of add and remove buttons; they are now handled as rest of buttons

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fixed bug for which Start NavigateToPose button was enabled even during navigation

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

---------

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
Pana1v pushed a commit to Arnav-panjla/navigation2 that referenced this pull request Feb 21, 2026
…al sending (ros-navigation#5774)

* Created NavigateToPose panel for Rviz

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Created NavigateThroughPoses panel for Rviz

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Formatted files for ament_cpplint and ament_uncristify checks

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Deleted NavigateToPose and NavigateThroughPoses panels to migrate features in Nav2 Panel

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Initial commit for migrated features into Nav2 Panel

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* NavigateThroughPoses tab migrates to edit tab for accumulated poses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* NavigateToPose enabled in non-accumulation mode

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Refactored for cpplint and uncrustify checks

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Original NavToPose and NavThroughPoses use BehaviorTree XML input

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Reordered tool tabs: NavigateToPose, NavigateThroughPoses and WP - Following

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Clearing input NavigateToPose and NavigateThroughPoses from tabs once navigation is finished

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Minor formatting for ament_ccplint and ament_uncrustify checks

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* NavigateToPose input is cleared when switching modes, just like NavigateThroughPoses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fused NavigateThroughPoses and WP-Following tabs into once; Both modes share same list of poses for navigation

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fixed bug so that Add and Remove buttons are disabled while navigating and enabled when not

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* When finishing WP Following navigation, exit accumulation, similarly to what is done as NavigateThroughPoses

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Minor whitespacing fix for ament_cpplint tests

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Minor correction in buttons and tabs labels for consistency

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fixed enabling/disabling of add and remove buttons; they are now handled as rest of buttons

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

* Fixed bug for which Start NavigateToPose button was enabled even during navigation

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>

---------

Signed-off-by: Pau Reverté <pau.reverte@eurecat.org>
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.

3 participants