Skip to content

Conversation

@ThomasHaley-neya
Copy link

Backport of footprint_collision_checker to Nav2 Humble


Basic Info

Info A simple backport of the FootprintCollisionChecker API to Nav2 Humble
Ticket(s) this addresses (4898)
Primary OS tested on Ubuntu
Robotic platform tested on Custom Gazebo Sim
Does this PR contain AI generated software? No

Description of contribution in a few bullet points

  • Basically just copied FootPrintCollision checker to the Humble branch. One line change at the bottom of worldToMapValidated to make compatible with the Humble version of PyCostmap2D

Description of documentation updates required from your changes

  • Unsure if any docs need changed.

Description of how this change was tested

  • Tested in simulation, was able to use footprintCost and lineCost to detect a collision on my bot.

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

Backport of footprint_collision_checker to Nav2 Humble

Signed-off-by: ThomasHaley-neya <thaley@neyarobotics.com>
@mergify
Copy link
Contributor

mergify bot commented Feb 3, 2025

@ThomasHaley-neya, all pull requests must be targeted towards the main development branch.
Once merged into main, it is possible to backport to @humble, but it must be in main
to have these changes reflected into new distributions.

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.

@ThomasHaley-neya just sanity check me that you've tested this generally speaking and it works / doesn't crash from incorrect members.

@SteveMacenski SteveMacenski linked an issue Feb 4, 2025 that may be closed by this pull request
@ThomasHaley-neya
Copy link
Author

@ThomasHaley-neya just sanity check me that you've tested this generally speaking and it works / doesn't crash from incorrect members.

Yep, just went back and tested all member functions and everything seems kosher.
Screenshot from 2025-02-03 19-46-12
Screenshot from 2025-02-03 19-46-31

A crash can happen if the user calls setCostmap() and passes something other than an occupancy grid, but that is the same behavior that occurs on main. Maybe another ticket should be opened to add a check there?

@SteveMacenski SteveMacenski merged commit e7f37b9 into ros-navigation:humble Feb 4, 2025
2 of 3 checks passed
@SteveMacenski
Copy link
Member

If the wrong thing is passed in, then I suppose that should be expected in Python without type checking

RBT22 pushed a commit to EnjoyRobotics/navigation2 that referenced this pull request Feb 4, 2025
Backport of footprint_collision_checker to Nav2 Humble

Signed-off-by: ThomasHaley-neya <thaley@neyarobotics.com>
emilnovak pushed a commit to EnjoyRobotics/navigation2 that referenced this pull request Feb 11, 2025
* Update Smac Planner for rounding to closest bin rather than flooring (ros-navigation#4636) (ros-navigation#4760)

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* fixing path longer on approach (ros-navigation#4622) (ros-navigation#4766)

* fixing path longer on approach



* removing the short circuit



* adding additional layer of check



---------

Signed-off-by: Pradheep <padhupradheep@gmail.com>

* Add acceleration limits to DriveOnHeading and BackUp behaviors (backport ros-navigation#4810) (ros-navigation#4877)

* Add acceleration limits to DriveOnHeading and BackUp behaviors (ros-navigation#4810)

* Add acceleration constraints

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Cleanup code

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Format code

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Add <limits> header to drive_on_heading.hpp

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Remove vel pointer

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Use the limits only if both of them is set

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Fix onActionCompletion params

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Add default acc params and change decel sign

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Add minimum speed parameter

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Update minimum speed parameter to 0.10

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Log warning when acceleration or deceleration limits are not set

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Add param sign assert

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Remove unnecessary param checking

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Refactor acceleration limits to handle forward and backward movement separately

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Fix sign checking condition

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Replace throwing with silent sign correction

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

---------

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Update parameter defaults to zero

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Add off condition

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Move forward outside

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

---------

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Add option to use open-loop control with Rotation Shim (backport ros-navigation#4880) (ros-navigation#4896)

* Add option to use open-loop control with Rotation Shim (ros-navigation#4880)

* Initial implementation

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* replace feedback param with closed_loop

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Reset last_angular_vel_ in activate method

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Add closed_loop parameter to dynamicParametersCallback

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Add tests

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Override reset function

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

---------

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Remove reset

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

---------

Signed-off-by: RBT22 <rozgonyibalint@gmail.com>

* Create footprint_collision_checker.py (ros-navigation#4899)

Backport of footprint_collision_checker to Nav2 Humble

Signed-off-by: ThomasHaley-neya <thaley@neyarobotics.com>

---------

Signed-off-by: Pradheep <padhupradheep@gmail.com>
Signed-off-by: RBT22 <rozgonyibalint@gmail.com>
Signed-off-by: ThomasHaley-neya <thaley@neyarobotics.com>
Co-authored-by: LinusTxtonomy <152272158+LinusTxtonomy@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Pradheep Krishna <padhupradheep@gmail.com>
Co-authored-by: ThomasHaley-neya <thaley@neyarobotics.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.

Add FootprintCollisionChecker to Humble branch

2 participants