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

Allow inflation_layer inheritance #3721

Closed
BriceRenaudeau opened this issue Jul 28, 2023 · 2 comments
Closed

Allow inflation_layer inheritance #3721

BriceRenaudeau opened this issue Jul 28, 2023 · 2 comments

Comments

@BriceRenaudeau
Copy link
Contributor

The obstacles_critics of MPPI and SMAC_planner are tightly related to the nav2_costmap_2d::InflationLayer.

https://github.com/ros-planning/navigation2/blob/2f1f9e4a225f912c4c1ae9821fb7eb31ac192c16/nav2_mppi_controller/src/critics/obstacles_critic.cpp#L52-L55

To use a custom version of the inflation layer with the MPPI/SMAC, the custom layer needs to inherit from the inflation layer.
But the inflation_layer isn't adapted to inheritance, there are private members and methods.

Required Info:

  • Operating System:
    • Ubuntu 22.04
  • ROS2 Version:
    • Iron
  • Version or commit hash:
    • main
  • DDS implementation:
    • cycloneDDS

Expected behavior

When using a child class of inflation_layer, all the methods should work.

Actual behavior

When using a child class of inflation_layer, the attributes are not shared, so some methods, like getCostScalingFactor(), don't return the real value.

Implementation considerations

We fixed this by removing the private: keyword in the inflation_layer header file.

https://github.com/ros-planning/navigation2/blob/2f1f9e4a225f912c4c1ae9821fb7eb31ac192c16/nav2_costmap_2d/include/nav2_costmap_2d/inflation_layer.hpp#L185-L191C9

@SteveMacenski
Copy link
Member

Perhaps just make private protected so derived classes can use them? Seems very reasonable to me!

@SteveMacenski
Copy link
Member

#3722

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

No branches or pull requests

2 participants