Skip to content

Add "plugins" Parameter to BT XML for Selective Clearing of Costmap Layers#5400

Closed
BCKSELFDRIVEWORLD wants to merge 64 commits intoros-navigation:mainfrom
BCKSELFDRIVEWORLD:clear_costmap_pluginss
Closed

Add "plugins" Parameter to BT XML for Selective Clearing of Costmap Layers#5400
BCKSELFDRIVEWORLD wants to merge 64 commits intoros-navigation:mainfrom
BCKSELFDRIVEWORLD:clear_costmap_pluginss

Conversation

@BCKSELFDRIVEWORLD
Copy link
Contributor

@BCKSELFDRIVEWORLD BCKSELFDRIVEWORLD commented Jul 29, 2025


Basic Info

Info Please fill out this column
Ticket(s) this addresses (#4963)
Primary OS tested on (Ubuntu, MacOS, Windows)
Robotic platform tested on (Steve's Robot, gazebo simulation of Tally, hardware turtlebot)
Does this PR contain AI generated software? (No; Yes and it is marked inline in the code)
Was this PR description generated by AI software? Out of respect for maintainers, AI for human-to-human communications are banned

Description of contribution in a few bullet points

Description of documentation updates required from your changes

Description of how this change was tested


Future work that may be required in bullet points

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 29, 2025

@BCKSELFDRIVEWORLD, 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).

Copy link
Member

@SteveMacenski SteveMacenski left a comment

Choose a reason for hiding this comment

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

LGTM with small changes. Rebase on main when I merge #5409 (should be in the next hour or so) to get CI to turn over. We're hitting some limits I'm working around. Once these small changes are made and CI is passing I can merge!

Checkout the linting failure jobs, those should be fixed as well

@SteveMacenski
Copy link
Member

@BCKSELFDRIVEWORLD any update?

@mergify
Copy link
Contributor

mergify bot commented Sep 23, 2025

@BCKSELFDRIVEWORLD, 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).

Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
@mergify
Copy link
Contributor

mergify bot commented Sep 23, 2025

@BCKSELFDRIVEWORLD, 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 Sep 23, 2025

@BCKSELFDRIVEWORLD, 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).

@codecov
Copy link

codecov bot commented Sep 23, 2025

Codecov Report

❌ Patch coverage is 90.79070% with 99 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
nav2_costmap_2d/src/clear_costmap_service.cpp 18.75% 26 Missing ⚠️
...tmap_2d/plugins/costmap_filters/keepout_filter.cpp 53.06% 23 Missing ⚠️
..._map_server/src/vo_server/vector_object_shapes.cpp 96.81% 7 Missing ⚠️
...clude/nav2_behavior_tree/bt_action_server_impl.hpp 79.31% 6 Missing ⚠️
...vior_tree/plugins/action/clear_costmap_service.cpp 66.66% 4 Missing ⚠️
...r_tree/plugins/control/pause_resume_controller.cpp 94.28% 4 Missing ⚠️
...v2_graceful_controller/src/graceful_controller.cpp 75.00% 4 Missing ⚠️
nav2_map_server/src/vo_server/main.cpp 0.00% 4 Missing ⚠️
...avior_tree/plugins/control/persistent_sequence.cpp 89.28% 3 Missing ⚠️
...cking/opennav_docking/src/simple_charging_dock.cpp 95.52% 3 Missing ⚠️
... and 9 more
Files with missing lines Coverage Δ
nav2_amcl/src/amcl_node.cpp 66.76% <100.00%> (ø)
...nclude/nav2_behavior_tree/behavior_tree_engine.hpp 100.00% <ø> (ø)
...ee/include/nav2_behavior_tree/bt_action_server.hpp 83.33% <100.00%> (ø)
...vior_tree/plugins/action/clear_costmap_service.hpp 100.00% <100.00%> (ø)
...r_tree/plugins/action/controller_selector_node.hpp 100.00% <ø> (ø)
...tree/plugins/action/goal_checker_selector_node.hpp 100.00% <ø> (ø)
...vior_tree/plugins/action/planner_selector_node.hpp 100.00% <ø> (ø)
.../plugins/action/progress_checker_selector_node.hpp 100.00% <ø> (ø)
...ior_tree/plugins/action/smoother_selector_node.hpp 100.00% <ø> (ø)
...tree/plugins/action/truncate_path_local_action.hpp 100.00% <ø> (ø)
... and 117 more

... and 29 files with indirect coverage changes

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

BCKSELFDRIVEWORLD and others added 18 commits September 23, 2025 21:02
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.com>
Signed-off-by: SteveMacenski <stevenmacenski@gmail.com>
* Moving MPPI, Smac to secondary job

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

* Use xlarge resource class

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

* Bump the cache

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

* back to large

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

* fix

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

* Add route server

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

* Shift more packages over

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

---------

Signed-off-by: SteveMacenski <stevenmacenski@gmail.com>
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
* [DEX] limit comparison precision

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

* EPSILON 1e-5

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

---------

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
…s for CircleCI limits (ros-navigation#5409)

* Moving Nav2 behaviors to the system build job

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

* Adding Docking

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

* moving more over to balance jobs

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

---------

Signed-off-by: SteveMacenski <stevenmacenski@gmail.com>
)

* Add pause and seq with bb memory BT nodes

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Requested changes

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Lint

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Restructure pause, rename unpaused state to resumed

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Add PauseResumeController test

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Implement tests using xml_txt trees and dummy nodes

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Update include

Signed-off-by: redvinaa <redvinaa@gmail.com>

* One more fix because of sync

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Fix build

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Add tests

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Remove unreachable code

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Fix tests

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Update copyrights

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Fix size calc

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Rename to PersistentSequence

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Fix docstring

Signed-off-by: redvinaa <redvinaa@gmail.com>

---------

Signed-off-by: redvinaa <redvinaa@gmail.com>
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
Signed-off-by: Sushant Chavan <gitecsvc@gmail.com>
…ros-navigation#5420)

* fix: Add KDTree type definition to include unsigned int for IndexType

Signed-off-by: Ericsii <ericfengx@foxmail.com>

* code format

Signed-off-by: Ericsii <ericfengx@foxmail.com>

---------

Signed-off-by: Ericsii <ericfengx@foxmail.com>
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Move nav_2d_util to nav2_util

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

* Rename frame

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

* Replace OdomSubscriber with OdomSmoother

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

* Use transformPoseInTargetFrame in all controllers

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

---------

Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
…s-navigation#5406)

* Construct TF listeners passing nodes, spinning on separate thread

Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>

* (tentative) pin down of the impacting change

Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>

---------

Signed-off-by: Patrick Roncagliolo <ronca.pat@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
…ation#5423)

* Smooth path even if goal pose is so much near to the robot

Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com>

* Apply suggestions

Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com>

* Remove unnecessary diff

Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com>

---------

Signed-off-by: CihatAltiparmak <cihataltiparmak1@gmail.com>
…5427)

* Make pause resume controller use nav2::LifecycleNode

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Fix tests

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Use new nav2 create_service

Signed-off-by: redvinaa <redvinaa@gmail.com>

* Use attribues from parent, fix future wait, update docstring

Signed-off-by: redvinaa <redvinaa@gmail.com>

---------

Signed-off-by: redvinaa <redvinaa@gmail.com>
* Updating readme info

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

* Adding configuration guide

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

* Conciseness

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

---------

Signed-off-by: SteveMacenski <stevenmacenski@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
emersonknapp and others added 27 commits September 23, 2025 21:02
…s-navigation#5452)

* nav2_route vizualization marker use sphere_list and line_list for rendering performance

Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>

* Fix unit test and break out magic constants into named values

Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>

---------

Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>
* Fix SmacPlannerLattice dynamic parameter early exit

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

* remove comment

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

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
…n#5490)

Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* fix-duplicate-poses

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

* Update nav2_planner/src/planner_server.cpp

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* Revert "Add double spin_some in some BT nodes (ros-navigation#5055)"

This reverts commit 4e8469e.

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

* Update spin some to use spin all

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

* Replace 50 ms with bt loop duration

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

---------

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

* Add custom window size and poly order in SG filter

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

* Fix linting and benchmark tool

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

* Cmakelist

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

* Adding comments

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

* Add blog

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

---------

Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
Signed-off-by: SteveMacenski <stevenmacenski@gmail.com>
Added 3Laws Robotics to the list of partners.

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
* Fix segmentation fault

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

* fix linting

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

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
…s-navigation#5507)

* Fixes for route graph

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

* Fix route graph vis

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

---------

Signed-off-by: SteveMacenski <stevenmacenski@gmail.com>
Signed-off-by: SteveMacenski <stevenmacenski@gmail.com>
…ion#5499)

* Fix pose timestamp when using transformPoseInTargetFrame

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

* Fix frame

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

* Update nav2_route/src/goal_intent_extractor.cpp

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>

---------

Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* Implement integral distance for critics

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

* .

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

* linting

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

* more linting

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

* fix tests

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

* reset path length

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

* fix sign

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

* fix return value

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

* Revert "fix return value"

This reverts commit 8b21e89.

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

* remove extra variable

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

* add doxygen

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

* rename getCriticGoalPathDistance

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

* delete withinPositionGoalTolerance

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

* use only one path distance

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

* cleanup

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

* linting

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

* reorder

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

* format

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

* fix tests

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

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ts (ros-navigation#5485)

* Publish criticsStats

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

* linting

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

* change header to stamp

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

* make unique_pointer

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

* typo

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

* Add readme

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

* add to readme

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

* fixes

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

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
…_dependencies (ros-navigation#5514)

Signed-off-by: JPLDevMaster <joao.penha.lopes@tecnico.ulisboa.pt>
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
* Add Vector Object server

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Meet review comments

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>

* Simplify shapes param configuring

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Rename getROSParameter() to getParameter()

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Return back getMaskData() to nav2_costmap_2d

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Add composition node support

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>

* Remove redundant methods

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Update nav2_map_server/src/vo_server/vector_object_server.cpp

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Avoid shapes clearing

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Optimize switchMapUpdate() method

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Switch to vector of shapes

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Minor fixes

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Meet review comments

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Move isPointInside algorithm to nav2_util

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Testcases covering new functionality

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Fix linting issues

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Adjust for Vector Objects demonstration

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Code clean-up
* Corrected headers
* Functions ordering
* Comment fixes

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Additional code facelift
* Correct licensing years
* Fix Vector Object server dependencies
* Funcion rename for better readability
* Improve/fix comments

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>

* Minor fixing after rebase

Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Rename vector object server

Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Minor changes

Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Update tests

Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Merge branch 'main' into feature/vector_object_server

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Fix merge issues and pre-commit checks

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Change tf2_ros headers from `.h` to `.hpp`

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Fix race condition in pub-sub of VO map

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Cleanup

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Remove use of ament_target_dependencies

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Fix review comments

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Fix linter errors

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Fix exception handling

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Update nav2_map_server/include/nav2_map_server/vector_object_utils.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_util/include/nav2_util/raytrace_line_2d.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Add error logs

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Fix cpplint

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

---------

Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Co-authored-by: Alexey Merzlyakov <60094858+AlexeyMerzlyakov@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Alberto Tudela <ajtudela@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add missing dependency declaration

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

* Remove unused header

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>

---------

Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
* Get rid of rclcpp spin all and spin some

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

* Linting

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

* Vector object server

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

* Linting

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

* Update nav2_rviz_plugins/src/utils.cpp

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

* Error log

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

---------

Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
… dock plugins (ros-navigation#5015) (ros-navigation#5218)

* feat(opennav_docking): Add dynamic lifecycle for external detectors

This change introduces an API to dynamically enable and disable external
docking detectors, such as those based on AI, to conserve system
resources when not actively docking.

Key changes:
- Added `startDetectionProcess()` and `stopDetectionProcess()` to the
  docking plugin interface (`ChargingDock` and `NonChargingDock`).
- Implemented this logic in `SimpleChargingDock` and
  `SimpleNonChargingDock` using a `std_srvs/Trigger` service call and
  dynamic topic subscription to manage the detector's lifecycle.
- The `DockingServer` now ensures `stopDetectionProcess()` is called
  on all exit paths, including success, failure, and cancellation,
  to prevent dangling resources.
- Added new parameters (`detector_service_name`, `subscribe_toggle`, etc.)
  to configure this behavior and updated the README documentation.
- Added comprehensive C++ unit tests to verify the new detector
  lifecycle logic, specifically covering service failure cases and
  proper cleanup on action termination.

Closes ros-navigation#5015
Signed-off-by: Koensgen Benjamin <b.koensgen@gmail.com>

-

updtae

Signed-off-by: Koensgen Benjamin <b.koensgen@gmail.com>
Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* fix: Address review feedback and fix unit tests

Signed-off-by: Koensgen Benjamin <b.koensgen@gmail.com>

fix(docking): Change subscribe_toggle default to false

Signed-off-by: Koensgen Benjamin <b.koensgen@gmail.com>

-

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* refactor(docking): Improve plugin lifecycle and resource management

This commit addresses several code review suggestions to improve the design and robustness of the docking plugins.

- Replaced the `DetectorState` enum with a simpler `bool detector_enabled_` for clarity.
- Encapsulated the detection process lifecycle within the plugin itself. The `deactivate` method now ensures `stopDetectionProcess` is called, improving encapsulation and simplifying the `DockDatabase`.
- Refactored the `configure` method in plugins to group related logic, improving readability.
- Cleaned up redundant checks and calls in both the plugins and the `DockingServer` for more robust and intentional code.

Signed-off-by: Koensgen Benjamin <b.koensgen@gmail.com>
Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* fix(plugins): Resolve race condition by setting enabled state in callback

The previous refactoring introduced a race condition where the detector
was marked as 'enabled' in startDetection() before a message was
actually received.

This caused tests to fail because getRefinedPose() would be called
with an enabled state but no valid/recent data.

This commit fixes the issue by moving the `detector_enabled_ = true`
assignment into the subscription callback. This ensures the plugin's
state accurately reflects that it has received at least one valid
data point before being considered active.

Signed-off-by: Koensgen Benjamin <b.koensgen@gmail.com>
Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* refactor(docking): migrate to nav2_ros_common (node_utils, LifecycleNode, QoS)

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* build(opennav_docking): update deps (std_srvs, package.xml + CMakeLists)

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* refactor(Docking): migrate to nav2::LifecycleNode

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* refactor(docking): use nav2::qos::StandardTopicQoS for subscriptions

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* refactor(opennav_docking): replace raw queue size with rclcpp::QoS(1) in pubs/subs

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* refactor(tests): migrate nav2_util::NodeThread to nav2::NodeThread

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* refactor(tests): migrate to 3-args service callbacks

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* style(test): apply ament_uncrustify

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* refactor(opennav_docking) migrate detector Trigger service to node_->create_client()

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* docking: use nav2 types for pubs/subs in SimpleChargingDock and add explicit detection state flags

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* docking: use nav2 types for pubs/subs in SimpleNonChargingDock and add explicit detection state flags

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* docking: split detection state in SimpleChargingDock (detection_started_ vs initial_pose_received_) and warn before first pose

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* docking: split detection state in SimpleNonChargingDock (detection_started_ vs initial_pose_received_) and warn before first pose

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* tests: adapt SimpleChargingDockTestable to initial_pose_received_ state

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* tests: adapt SimpleNonChargingDockTestable to initial_pose_received_ state

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* docs(docking): clarify external detection gating and subscribe_toggle behavior (default=false)

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* fix(docking): keep SimpleNonChargingDock registered as ChargingDock (stay in-scope)

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* docs(docking): revert README note to pre-e881de19 state

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* fix(docking_server): remove redundant null-check before stopDetectionProcess() in terminal cleanup

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* style(docking_server): unify terminal order (stash->publishZeroVelocity->stopDetection->terminate)

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* lint

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* fix(docking): inline detection process

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* chore(docking): drop redundant detector comment

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* chore(docking): clarify detector logs

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* fix(docking): activate lifecycle publishers

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* chore(docking): reuse dock pose subscription

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* lint

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* fix(docking_server): drop redundant DB deactivate on cleanup

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* refactor(docking): rename detection state flag to detection_active

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

* fix(docking): reset detection flags on cleanup

Signed-off-by: bkoensgen <b.koensgen@gmail.com>

---------

Signed-off-by: Koensgen Benjamin <b.koensgen@gmail.com>
Signed-off-by: bkoensgen <b.koensgen@gmail.com>
* Added BT ID finder and used createTree to resolve btcpp warning

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Support using either bt file path or bt id

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Not necessarily a file name

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fix logic

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fix function definition

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fixed unit test

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fixed BB variable

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fixed error msg

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fixed variable and its getter naming

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fixed definition

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fix xml check

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fix bt unit test

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* test

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* added back test

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* check bt id using the root or bt id

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* using tinyxml2 instead of regex

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fixed var name

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* fixed var name

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* check if arg is already a BT ID

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* check if arg is already a BT ID

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Test was failing due to same BT ID MainTree among all registred trees

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Fixed error msg to be compliant

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* python linting

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Removed unused createTreeFromFile since its replaced with createTree

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* PR fixes

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Added new line at the end of BT xml

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Should cover most of the cases

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* format

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Fixed BT format

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Removed redundant check

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Allow usage of file paths with a warning, while keeping BT ID usage as the recommended option

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Additional test

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

* Test coverage

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>

---------

Signed-off-by: Jad El Hajj <jad.elhajj@inmind.ai>
…p, ArePosesNear to nav2_tree_nodes.xml (ros-navigation#5534)

Signed-off-by: Jonas Otto <jonas.otto@ipa.fraunhofer.de>
…ation#5493)

* Added std_srvs package to dependencies

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Declared service and callback for enabling/disabling collision monitor

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Declared a variable to store collision monitor enable/disable state

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Added initialization for collision monitor enable/disable service

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Implemented service callback for collision monitor enable/disable service

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Removed std_srvs package dependency

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Added Toggle interface

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Replaced Trigger interface with the new Toggle interface

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Added default initialization for enabled flag

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Fixed toggle service name

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Updated toggle logic for collision monitor

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Added a new line at the end of file

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Update nav2_collision_monitor/src/collision_monitor_node.cpp

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Update nav2_collision_monitor/src/collision_monitor_node.cpp

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Added enabled check for logging

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Added a unit test for toggle service

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Made the getter const and added a comment

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

* Replaced rclcpp::spin_some

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>

---------

Signed-off-by: Abhishekh Reddy <helloarm@pm.me>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: BCKSELFDRIVEWORLD <bckselfdrive@gmail.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.