Added Footprint Collision Checker (Simple Commander API)#3280
Added Footprint Collision Checker (Simple Commander API)#3280SteveMacenski merged 38 commits intoros-navigation:mainfrom afifswaidan:main
Conversation
|
@afifswaidan, please properly fill in PR template in the future. @SteveMacenski, use this instead.
|
|
@SteveMacenski This is the initial commit, I still need to add documentation, docstrings and test cases. But I wanted to take your opinion if there are any specific test cases that I should implement? |
SteveMacenski
left a comment
There was a problem hiding this comment.
LGTM for a first run, just a little cleanup and should be able to merge in soon!
nav2_simple_commander/nav2_simple_commander/footprint_collision_checker.py
Show resolved
Hide resolved
nav2_simple_commander/nav2_simple_commander/footprint_collision_checker.py
Outdated
Show resolved
Hide resolved
nav2_simple_commander/nav2_simple_commander/footprint_collision_checker.py
Outdated
Show resolved
Hide resolved
nav2_simple_commander/nav2_simple_commander/footprint_collision_checker.py
Outdated
Show resolved
Hide resolved
nav2_simple_commander/nav2_simple_commander/footprint_collision_checker.py
Outdated
Show resolved
Hide resolved
|
I added the doc strings, migrated to Polygon and Point32 messages, and renamed the validity function. |
|
Looked it all over and resolved the comments solved + added more recommendations! |
|
any update? I would like this in before Christmas to button up that ticket for 2022 😄 |
I was sick for the past week so I couldn't work or contribute. I already implemented some test cases, I'll continue the rest and commit on the weekend as usual. Is that okay? 😊 |
|
Awesome, totally understand. Feel better! I appreciate the help :-) |
|
Awesome! i think the last thing was the verified worldtomap None return for 1 call! |
This was already implemented a few commits back. Now the function returns None in case of invalid inputs, else, it returns the [X,Y] coordinates from world coordinates to map coordinates. EDIT: Also I added this explanation in the |
|
We talked about changing that to |
Ah yes correct, I modified the function but still kept calling it more than one time. |
| LETHAL_OBSTACLE = 254 | ||
|
|
||
|
|
||
| class TestFootprintCollisionChecker(unittest.TestCase): |
There was a problem hiding this comment.
Last thing : the unit tests should have some that have non-zero costs in them to make sure things are working properly. If you make a 100x100 map with a 10x10 block of cost in the middle (or something) and then run these same tests to make sure we're picking things up correctly.
Then this is good to merge! Thanks!
|
nav2_simple_commander.test.test_footprint_collision_checker.TestFootprintCollisionChecker failed Also a linting error |
|
@afifswaidan I forgot - can you add docs https://navigation.ros.org/commander_api/index.html about this feature? |
Sure thing! My 2nd question is, its my first time of adding/modifying a docs website, how do you usually do it for ros2 nav2 docs? Sorry if its a basic question but I'd like to know how and do it! Thanks :) |
|
Thank you so much for the credits! Please ping me whenever there are some pending issues that needs contributors, I've been working with ROS Navigation since 2017 and I hope I can be a good help for the development of ROS. |
|
https://github.com/ros-planning/navigation.ros.org/blob/master/commander_api/index.rst Basically just modify this file under the |
|
Something that would be very helpful if you were interested is #3205. The idea is that if you create a |
Okay sure I'll do that either tomorrow or on Saturday. |
Okay sure, I can look into it. Thanks for telling me about it as well. |
|
I don't expect much to get done from tomorrow to the end of the year from anyone 😆 When you have time and interest :-) If this doesn't interest you, there are plenty of things in the issue tracker and would very much appreciate contributions where you would have interest! |
Yeah exactly its the holidays and end of year season 😆 Okay I'll check it out and let you know. I'll check the other issues as well. |
|
Hello Steve, I will be looking into all the stuff you told me about later in the first week of January 2023. |
|
Unfortunately, that’s to do with your git configurations and not something I can control. Perhaps its possible in Git to manually manipulate that, but it would be wrong (and possibly problematic legally) for me to do that as a representative of a company. What we can do instead though is revert the commit so its out of the git history and you can resubmit a new PR under your preferred address. Its mostly problematic for me as a 3rd party to reassign the commit. For you, its fine if its more properly representative. |
Thanks for for the quick reply. |
I modified the file based on previous APIs (costmap and commander) |
…ion#3280) * Added Line Iterator * Updated Line Iterator to a new iteration method * Added the resolution as a parameter/ fixed linting * Added the resolution as a parameter/ fixed linting * Added unittests for the line iterator * Added unittests based on "unittest" package * Fixed __init__.py and rephrased some docstrings * Fixed linting errors * Fixed Linting Errors * Added some unittests and removed some methods * Dummy commit for CircleCI Issue * Initial commit for python collision checker * Initial commit for footprint_collision_checker * Added docstrings and renamed the validity function * implemented worldToMapValidated and added tests * fixed wrong imports * Fixed test cases linting errors * Fixed one line comment error * Fixed docstring colon error * Fixed docstring dashed line error * Added return None to keep consistent docstrings * Changed worldToMapValidated to 1 call only * Fixed linting error and added none-zero cost test case * Fixed linting errors * Fixed linting errors Co-authored-by: Afif Swaidan <afif.swaidan@spexal.com>

Basic Info
Description of contribution in a few bullet points
For Maintainers: