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

Add a min_obstacle_height param to the nav2_costmap_2d's ObstacleLayer plugin #3211

Merged
merged 1 commit into from
Sep 22, 2022

Conversation

milidam
Copy link
Contributor

@milidam milidam commented Sep 22, 2022

Basic Info

Info Please fill out this column
Ticket(s) this addresses /
Primary OS tested on Ubuntu 22.04
Robotic platform tested on gazebo simulation

Description of contribution in a few bullet points

When using a PointCloud2 source, nav2_costmap_2d's ObstacleLayer plugin won't clear obstacles detected on the ground when they move away, as the <source>.min_obstacle_height parameter either will filter out the ground for the raytracing (if set to > 0.0) or detect it as an obstacle (if set to 0.0).
This problem is similar to #662.

This PR adds a new global min_obstacle_height parameter, allowing the per-source one to be extended to include the range to be taken into account for the retracing, while still filtering obstacles down to that new limit.

Description of documentation updates required from your changes

/


Future work that may be required in bullet points

/

For Maintainers:

  • Check that any new parameters added are updated in navigation.ros.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

…r plugin

This allows considering full range observations, specified by the
  <data source>.min_obstacle_height
and
  <data source>.max_obstacle_height
especially used for the raytracing, but to still be able to specify a
minimum obstacle height to report obstacles onto the costmap.

This is in particular required in the case a PointCloud2 source points
slightly towards the ground, sometimes detecting obstacles, that should be
cleared once the ground reappears behind the obstacle when it has moved
away: we don't want to detect the ground as an obstacle, but still want it
to be used in the raytracing to clear the previously detected obstacle.
@mergify
Copy link
Contributor

mergify bot commented Sep 22, 2022

@milidam, please properly fill in PR template in the future. @SteveMacenski, use this instead.

  • Check that any new parameters added are updated in navigation.ros.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

@SteveMacenski SteveMacenski merged commit 0b4179b into ros-navigation:main Sep 22, 2022
mergify bot pushed a commit that referenced this pull request Sep 22, 2022
…r plugin (#3211)

This allows considering full range observations, specified by the
  <data source>.min_obstacle_height
and
  <data source>.max_obstacle_height
especially used for the raytracing, but to still be able to specify a
minimum obstacle height to report obstacles onto the costmap.

This is in particular required in the case a PointCloud2 source points
slightly towards the ground, sometimes detecting obstacles, that should be
cleared once the ground reappears behind the obstacle when it has moved
away: we don't want to detect the ground as an obstacle, but still want it
to be used in the raytracing to clear the previously detected obstacle.

(cherry picked from commit 0b4179b)
mergify bot pushed a commit that referenced this pull request Sep 22, 2022
…r plugin (#3211)

This allows considering full range observations, specified by the
  <data source>.min_obstacle_height
and
  <data source>.max_obstacle_height
especially used for the raytracing, but to still be able to specify a
minimum obstacle height to report obstacles onto the costmap.

This is in particular required in the case a PointCloud2 source points
slightly towards the ground, sometimes detecting obstacles, that should be
cleared once the ground reappears behind the obstacle when it has moved
away: we don't want to detect the ground as an obstacle, but still want it
to be used in the raytracing to clear the previously detected obstacle.

(cherry picked from commit 0b4179b)

# Conflicts:
#	nav2_costmap_2d/plugins/obstacle_layer.cpp
SteveMacenski pushed a commit that referenced this pull request Sep 22, 2022
…r plugin (#3211) (#3215)

This allows considering full range observations, specified by the
  <data source>.min_obstacle_height
and
  <data source>.max_obstacle_height
especially used for the raytracing, but to still be able to specify a
minimum obstacle height to report obstacles onto the costmap.

This is in particular required in the case a PointCloud2 source points
slightly towards the ground, sometimes detecting obstacles, that should be
cleared once the ground reappears behind the obstacle when it has moved
away: we don't want to detect the ground as an obstacle, but still want it
to be used in the raytracing to clear the previously detected obstacle.

(cherry picked from commit 0b4179b)

Co-authored-by: milidam <milidam@users.noreply.github.com>
hyunseok-yang pushed a commit to lge-ros2/navigation2 that referenced this pull request Oct 6, 2022
…r plugin (ros-navigation#3211) (ros-navigation#3215)

This allows considering full range observations, specified by the
  <data source>.min_obstacle_height
and
  <data source>.max_obstacle_height
especially used for the raytracing, but to still be able to specify a
minimum obstacle height to report obstacles onto the costmap.

This is in particular required in the case a PointCloud2 source points
slightly towards the ground, sometimes detecting obstacles, that should be
cleared once the ground reappears behind the obstacle when it has moved
away: we don't want to detect the ground as an obstacle, but still want it
to be used in the raytracing to clear the previously detected obstacle.

(cherry picked from commit 0b4179b)

Co-authored-by: milidam <milidam@users.noreply.github.com>
jwallace42 pushed a commit to jwallace42/navigation2 that referenced this pull request Dec 14, 2022
…r plugin (ros-navigation#3211)

This allows considering full range observations, specified by the
  <data source>.min_obstacle_height
and
  <data source>.max_obstacle_height
especially used for the raytracing, but to still be able to specify a
minimum obstacle height to report obstacles onto the costmap.

This is in particular required in the case a PointCloud2 source points
slightly towards the ground, sometimes detecting obstacles, that should be
cleared once the ground reappears behind the obstacle when it has moved
away: we don't want to detect the ground as an obstacle, but still want it
to be used in the raytracing to clear the previously detected obstacle.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants