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

Create footprint_collision_checker.py #4899

Merged
merged 1 commit into from
Feb 4, 2025

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 <[email protected]>
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 <[email protected]>
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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Cleanup code

Signed-off-by: RBT22 <[email protected]>

* Format code

Signed-off-by: RBT22 <[email protected]>

* Add <limits> header to drive_on_heading.hpp

Signed-off-by: RBT22 <[email protected]>

* Remove vel pointer

Signed-off-by: RBT22 <[email protected]>

* Use the limits only if both of them is set

Signed-off-by: RBT22 <[email protected]>

* Fix onActionCompletion params

Signed-off-by: RBT22 <[email protected]>

* Add default acc params and change decel sign

Signed-off-by: RBT22 <[email protected]>

* Add minimum speed parameter

Signed-off-by: RBT22 <[email protected]>

* Update minimum speed parameter to 0.10

Signed-off-by: RBT22 <[email protected]>

* Log warning when acceleration or deceleration limits are not set

Signed-off-by: RBT22 <[email protected]>

* Add param sign assert

Signed-off-by: RBT22 <[email protected]>

* Remove unnecessary param checking

Signed-off-by: RBT22 <[email protected]>

* Refactor acceleration limits to handle forward and backward movement separately

Signed-off-by: RBT22 <[email protected]>

* Fix sign checking condition

Signed-off-by: RBT22 <[email protected]>

* Replace throwing with silent sign correction

Signed-off-by: RBT22 <[email protected]>

---------

Signed-off-by: RBT22 <[email protected]>

* Update parameter defaults to zero

Signed-off-by: RBT22 <[email protected]>

* Add off condition

Signed-off-by: RBT22 <[email protected]>

* Move forward outside

Signed-off-by: RBT22 <[email protected]>

---------

Signed-off-by: RBT22 <[email protected]>

* 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 <[email protected]>

* replace feedback param with closed_loop

Signed-off-by: RBT22 <[email protected]>

* Reset last_angular_vel_ in activate method

Signed-off-by: RBT22 <[email protected]>

* Add closed_loop parameter to dynamicParametersCallback

Signed-off-by: RBT22 <[email protected]>

* Add tests

Signed-off-by: RBT22 <[email protected]>

* Override reset function

Signed-off-by: RBT22 <[email protected]>

---------

Signed-off-by: RBT22 <[email protected]>

* Remove reset

Signed-off-by: RBT22 <[email protected]>

---------

Signed-off-by: RBT22 <[email protected]>

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

Backport of footprint_collision_checker to Nav2 Humble

Signed-off-by: ThomasHaley-neya <[email protected]>

---------

Signed-off-by: Pradheep <[email protected]>
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: ThomasHaley-neya <[email protected]>
Co-authored-by: LinusTxtonomy <[email protected]>
Co-authored-by: Steve Macenski <[email protected]>
Co-authored-by: Pradheep Krishna <[email protected]>
Co-authored-by: ThomasHaley-neya <[email protected]>
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