Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature plugin container layer #4780

Conversation

alexanderjyuen
Copy link
Contributor


Basic Info

Info Please fill out this column
Ticket(s) this addresses N/A
Primary OS tested on Ubuntu
Robotic platform tested on gazebo simulation of turtlebot
Does this PR contain AI generated software? No

Description of contribution in a few bullet points

  • Added a new costmap layer plugin to nav2_costmap_2d called plugin container layer which allows users to specify different submaps within a costmap. For example if one would like to apply a certain set of inflation layer settings to the static layer, and a different set of inflation layer settings to an obstacle layer, in the same overall costmap, one could group those different layers under different plugin container layers

  • Modified nav2_costmap_2d integrated testing to also run tests for the plugin container layer

  • included nav2_params_plugin_container_layer.yaml to run turtlebot example

Description of documentation updates required from your changes

  • Configuring Costmap needs to include plugin container layer in the Plugin Parameters section
  • A new page has been added to outline how to configure the plugin container layer
  • Navigation Plugins need to include plugin container layer in Costmap Layer section
  • Tuning Guide needs to include plugin container layer in the Costmap2D Plugins section

Future work that may be required in bullet points

  • This could be possible extended to be used with costmap filters, although filters don't necessarily rely on each other

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

alexanderjyuen and others added 20 commits December 3, 2024 15:47
… (ros-navigation#4711)

* mppi parameters_handler: Improve verbose handling (ros-navigation#4704)

The "verbose" parameter of the parameters_handler is
a special case that needs registration before the
dynamic parameter handler callback is registered.

In verbose mode make the parameter handler info/warn/debug
messages more expressive.

Signed-off-by: Mike Wake <[email protected]>

* Address review comments. (ros-navigation#4704)

* remove comments.
* Use RCLCPP_DEBUG instead of INFO for low level messages.
* Add test for trying to access parameters that are not declared.

Signed-off-by: Mike Wake <[email protected]>

* mppi parameters_handler: Improve static/dynamic/not defined logging (ros-navigation#4704)

Attempts to change undefined parameters will not be successful
and will log an error.

Attempts to change static parameters will be ignored, a debug
message is logged if a change in parameters is attempted.

Signed-off-by: Mike Wake <[email protected]>

* mppi parameters_handler: populate SetParametersResult (ros-navigation#4704)

Provide a mechanism to populate an rcl_interfaces::msg::SetParametersResult
with the reasons for unsuccessful parameter setting, so that it may be
propogated back to a set parameter client.

The mechanism provides feedback when attempting to set undefined
parameters, static parameters and could be used to validate dynamic
parameters and provide a reason for rejection.

NOTE: This changes public interface of ParametersHandler class.
s/setDynamicParamCallback/setParamCallback
s/addDynamicParamCallback/addParamCallback which takes
a callback function that is able to populate a
rcl_interfaces::msg::SetParametersResult.

In order to indicate an unsuccessful parameter change and the
reason, callback functions should append a "\n"
to the reason before appending to if it is not empty.

Signed-off-by: Mike Wake <[email protected]>

* mppi parameters_handler: fix reason handling and improve tests

Signed-off-by: Mike Wake <[email protected]>

---------

Signed-off-by: Mike Wake <[email protected]>
Signed-off-by: alexander <[email protected]>
* Added collision detection for docking

Signed-off-by: Alberto Tudela <[email protected]>

* Minor fixes

Signed-off-by: Alberto Tudela <[email protected]>

* Improve collision  while undocking and test

Signed-off-by: Alberto Tudela <[email protected]>

* Fix smoke testing

Signed-off-by: Alberto Tudela <[email protected]>

* Rename dock_collision_threshold

Signed-off-by: Alberto Tudela <[email protected]>

* Added docs and params

Signed-off-by: Alberto Tudela <[email protected]>

* Minor changes in README

Signed-off-by: Alberto Tudela <[email protected]>

---------

Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: alexander <[email protected]>
* Use BT.cpp sleep

Signed-off-by: Tony Najjar <[email protected]>

* Implement BT Loop Rate

Signed-off-by: Tony Najjar <[email protected]>

* Fix formatting

Signed-off-by: Tony Najjar <[email protected]>

* Fix formatting

Signed-off-by: Tony Najjar <[email protected]>

* move to nav2_behavior_tree

Signed-off-by: Tony Najjar <[email protected]>

* fix

Signed-off-by: Tony Najjar <[email protected]>

* fix lint

Signed-off-by: Tony Najjar <[email protected]>

* cache

Signed-off-by: Tony Najjar <[email protected]>

---------

Signed-off-by: Tony Najjar <[email protected]>
Signed-off-by: alexander <[email protected]>
Signed-off-by: alexander <[email protected]>
Signed-off-by: alexander <[email protected]>
Signed-off-by: alexander <[email protected]>
…ruction, changed addPlugin to take layer name as an argument

Signed-off-by: alexander <[email protected]>
* Add IsStoppedBTNode

Signed-off-by: Tony Najjar <[email protected]>

* add topic name + reformat

Signed-off-by: Tony Najjar <[email protected]>

* fix comment

Signed-off-by: Tony Najjar <[email protected]>

* fix abs

Signed-off-by: Tony Najjar <[email protected]>

* remove log

Signed-off-by: Tony Najjar <[email protected]>

* add getter functions for raw twist

Signed-off-by: Tony Najjar <[email protected]>

* remove unused code

Signed-off-by: Tony Najjar <[email protected]>

* use odomsmoother

Signed-off-by: Tony Najjar <[email protected]>

* fix formatting

Signed-off-by: Tony Najjar <[email protected]>

* update groot

Signed-off-by: Tony Najjar <[email protected]>

* Add test

Signed-off-by: Tony Najjar <[email protected]>

* reset at success

Signed-off-by: Tony Najjar <[email protected]>

* FIX velocity_threshold_

Signed-off-by: Tony Najjar <[email protected]>

* Fix stopped Node

Signed-off-by: Tony Najjar <[email protected]>

* Add tests  to odometry_utils

Signed-off-by: Tony Najjar <[email protected]>

* fix linting

Signed-off-by: Tony Najjar <[email protected]>

---------

Signed-off-by: Tony Najjar <[email protected]>
Signed-off-by: alexander <[email protected]>
* WIP single robot namespacing working

Signed-off-by: Luca Della Vedova <[email protected]>

* Remove manual namespace substitution

Signed-off-by: Luca Della Vedova <[email protected]>

* Remove all multirobot specific configs

Signed-off-by: Luca Della Vedova <[email protected]>

* Refactor parsing function to common, add for rest of layers

Signed-off-by: Luca Della Vedova <[email protected]>

* Fix dwb_critics test

Signed-off-by: Luca Della Vedova <[email protected]>

* Add alternative API for costmap construction

Signed-off-by: Luca Della Vedova <[email protected]>

* Address review feedback

Signed-off-by: Luca Della Vedova <[email protected]>

* Remove remaining usage of `use_namespace` parameter

Signed-off-by: Luca Della Vedova <[email protected]>

* Always join with parent namespace

Signed-off-by: Luca Della Vedova <[email protected]>

* Use private parameter for parent namespace

Signed-off-by: Luca Della Vedova <[email protected]>

* Fix integration test

Signed-off-by: Luca Della Vedova <[email protected]>

* Revert "Use private parameter for parent namespace"

This reverts commit 0c958dc.

Signed-off-by: Luca Della Vedova <[email protected]>

* Revert "Fix integration test"

This reverts commit 137d577.

Signed-off-by: Luca Della Vedova <[email protected]>

* Remove global map_topic parameter

Signed-off-by: Luca Della Vedova <[email protected]>

* Simplify Costmap2DROS constructor

Signed-off-by: Luca Della Vedova <[email protected]>

---------

Signed-off-by: Luca Della Vedova <[email protected]>
Signed-off-by: Luca Della Vedova <[email protected]>
Signed-off-by: alexander <[email protected]>
Signed-off-by: alexander <[email protected]>
@alexanderjyuen alexanderjyuen force-pushed the feature-plugin-container-layer branch from 2cb9f8e to b066ca5 Compare December 3, 2024 23:48
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.

5 participants