CM/CD: Add polygon source#3885
Conversation
|
@tonynajjar, your PR has failed to build. Please check CI outputs and resolve issues. |
|
@SteveMacenski @AlexeyMerzlyakov that's a first draft, a lot of small improvements can still be made but wanted your opinion on the idea before spending more time refining it. Thanks |
SteveMacenski
left a comment
There was a problem hiding this comment.
Test coverage?
I'd think for polygon-source types, we would want to make the minimum number of points 1 for this special case
|
I thin most points have been addressed, please have another look. |
|
@AlexeyMerzlyakov please re-review @tonynajjar this file has the most missing coverage of the Collision Monitor files https://app.codecov.io/gh/ros-planning/navigation2/blob/add-polygon-source-main/nav2_collision_monitor%2Fsrc%2Fpolygon_source.cpp#L179 please fill in the gaps. I'm not worried about the At this point, the rest of the code here is approved except the actual polygon_source hpp/cpp's implementation of the polygon deconfliction |
SteveMacenski
left a comment
There was a problem hiding this comment.
Generally looks good, but I don't think the are polygons similar approach is valid general approach to this. This assumes alot about what specifically these polygons are, how often they're published, and that they're spatially near each other due to that regular frequency
nav2_collision_monitor/include/nav2_collision_monitor/polygon_source.hpp
Show resolved
Hide resolved
|
@tonynajjar when you're back, rebase and fix the API changes for |
There was a problem hiding this comment.
The main challenge here - is how to solve moving polygon task, where polygon changing its coordinates during the time.
Whether should we use unique_identifier_msgs/msg/UUID.msg (in newly added nav2_msgs message or by resolved ros2/common_interfaces#230 task); or get back to previous implementation when all polygons are being published once per a time, or might be something else (which I did not note).
|
Addressed most of the comments, I'll wait for the result of ros2/common_interfaces#230 to continue this PR and the tests. It's also my preferred solution to the problem |
|
@tonynajjar, your PR has failed to build. Please check CI outputs and resolve issues. |
|
@tonynajjar Polygons with IDs have been added! ros2/common_interfaces#232 (comment) That can be used now to implement this PR to get over the issue :-) |
|
Awesome! In the meantime I left my old company that needed this and am quite busy with my new one. @jplapp maybe you want to take over? If not I'll try to eventually find the time but can't promise when. |
|
It should be straight forward now if using those messages. All of the |
|
Thanks for review! Sure, I'll find someone to complete this, but cannot promise a timeline |
|
@jplapp I have cycles to pick this up; it seems there is one use of arePolygonsSimilar to replace, so this should be straightforward. LMK if that works for you |
|
I am attempting to copy the branch associated with the PR to my own fork of nav2 in github, as I presume (and have not tested) I do not have commit access to the repo currently associated with the merge. Will see how the build goes tomorrow, fingers crossed |
|
This pull request is in conflict. Could you fix it @tonynajjar? |
|
@oldtopos did you happen to get a chance to play with this? It was largely done and it would be a shame to let this die on the vine if you'd get use from it |
|
@tonynajjar, your PR has failed to build. Please check CI outputs and resolve issues. |
Basic Info
Description of contribution in a few bullet points
We would like to add a source to the collision monitor and that is an array of arbitrary PolygonStamped fed from a topic. Our specific use case is that we would like to prevent collisions with some tracked objects.
Note: Adding these tracked objects to the global/local costmap was tried, however this was not enough as the controller makes a "best effort" to avoid the collisions; we need more decisive logic to stop the robot and therefore need the collision monitor
Description of documentation updates required from your changes
Future work that may be required in bullet points
For Maintainers: