-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
[collision monitor] Select the observation sources used with each polygon #4227
[collision monitor] Select the observation sources used with each polygon #4227
Conversation
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
f8d2bef
to
95174e9
Compare
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can do this more efficiently and straight forward
- Create the unordered map
- Adjust the current
for (std::shared_ptr<Source> source : sources_) {
loop to contain (1) creating an entry for a source name key with an empty vector as the value. (2) Capture the return ofinsert
will give you an iterator to that pair in the map - Pass into
getData
the reference to the value (vector) to populate. That eliminates an entire data copy. It also eliminates multiple calls togetData
to populate both the vector and map separately - Adjust the
processStopSlowdownLimit
/processApproach
/ etc functions to take in this map. The vector of points should no longer exist - Pass the map to the
isPointInside
- When iterating through the sources, use the sources names to decide if you want to use that one or not
This eliminates any extra looping and a bunch of data copies (and not parallel populating a map and a vector of data). Speed here is really key and copying pointclouds and laserscans is a pretty worst-case situation
This pull request is in conflict. Could you fix it @anaelle-sw? |
@anaelle-sw looks like some small changes needed from merging your other PR 😄 Can we get this one in next? I do really appreciate your time and effort to contribute this work back to Nav2, it is very useful and thank you! |
@anaelle-sw Hi! Any update here? |
Sorry, I haven't had the time to work on this properly lately. I will rebase the branch on main and begin to apply to changes you requested by the end of the week. |
Thanks @anaelle-sw :-) |
95174e9
to
8264866
Compare
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
1 similar comment
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
The MR is now rebased on current main branch. I have also applied your optimization suggestions. But I have not tested yet the behaviour with these changes. I entirely agree with most of the optimizations you asked for, but actually I have a slightly better solution about function You suggested to pass the entire map (which associates the sources names to their vector of points) to function But in the case of Approach polygons, the function To do so, I have kept the already existing |
5af93f6
to
b46fc72
Compare
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
b46fc72
to
3a067b9
Compare
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
It does not appear to be building properly, but I love this idea and looks good to me! A couple of tests for this feature would be nice - since this is a pretty low-level system that we should be especially careful about. |
3a067b9
to
1c672fa
Compare
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
1c672fa
to
3b7f4e4
Compare
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
3b7f4e4
to
1f132cf
Compare
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
1f132cf
to
8a036bd
Compare
Many of the collision monitor tests are now failing! |
Hi @anaelle-sw how can I help push this along? |
8a036bd
to
3186c2b
Compare
@anaelle-sw, your PR has failed to build. Please check CI outputs and resolve issues. |
@anaelle-sw Please rebase after I merge #4642 to fix the build issue. TF2 changed a header location on us :-) (and probably fix the linting/DCO issues while you're at it) Is this good for another review then? |
5e82501
to
19b8246
Compare
Signed-off-by: asarazin <[email protected]>
e53372f
to
3650cdc
Compare
Hi @SteveMacenski , sorry it took me so long to work on this and fix the tests. It should be good to be reviewed now, the branch is rebased, and DCO, linting and collision monitor tests are fixed. I also add 3 new tests for polygons:
And a test for collision monitor node: |
Codecov ReportAll modified and coverable lines are covered by tests ✅
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small nitpick, but overall looks good to me!
3650cdc
to
be63b55
Compare
Otherwise, LGTM, but you have a test failing so I can't see the coverage metrics to see if this covers the bulk of the important changes |
Signed-off-by: asarazin <[email protected]>
be63b55
to
1860732
Compare
Signed-off-by: asarazin <[email protected]>
1860732
to
b4c2925
Compare
LGTM! Any reason this is still a draft? I could merge this in I think! |
No, I just forgot to update it. It should be good now |
…ygon (#4227) * Collision monitor: select specific observation sources for polygon Signed-off-by: asarazin <[email protected]> * optimization Signed-off-by: asarazin <[email protected]> * add tests Signed-off-by: asarazin <[email protected]> --------- Signed-off-by: asarazin <[email protected]> Co-authored-by: asarazin <[email protected]>
* Adding non-charging dock support to docking server (for conveyers, pallots, etc) (#4627) * adding non-charging dock support to docking server Signed-off-by: Steve Macenski <[email protected]> * docs and linting * adding unit tests Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * Publish optimal trajectory as a Path message (#4640) * Publish optimal trajectory as a Path message Signed-off-by: Alyssa Agnissan <[email protected]> * move publish_optimal_path to TrajectoryVisualizer + minor refactoring Signed-off-by: Alyssa Agnissan <[email protected]> * tests added for optimal path publication Signed-off-by: Alyssa Agnissan <[email protected]> * populate optimal path message in add() Signed-off-by: Alyssa Agnissan <[email protected]> * move path population in add_marker Signed-off-by: Alyssa Agnissan <[email protected]> --------- Signed-off-by: Alyssa Agnissan <[email protected]> * [collision monitor] Select the observation sources used with each polygon (#4227) * Collision monitor: select specific observation sources for polygon Signed-off-by: asarazin <[email protected]> * optimization Signed-off-by: asarazin <[email protected]> * add tests Signed-off-by: asarazin <[email protected]> --------- Signed-off-by: asarazin <[email protected]> Co-authored-by: asarazin <[email protected]> * Restore exported BT test utils header files after cmake revamp (#4652) (#4654) Signed-off-by: Mike Wake <[email protected]> * fix(bt_nodes): Correct default `server_timeout` behavior by using `getInputPortOrBlackboard()` (#4649) Signed-off-by: Alan Xue <[email protected]> * PoseStamped vector specialization (#4607) * PoseStamped vector specialization Signed-off-by: Tony Najjar <[email protected]> * merge master Signed-off-by: Tony Najjar <[email protected]> * add path Signed-off-by: Tony Najjar <[email protected]> * fix size check Signed-off-by: Tony Najjar <[email protected]> * fix test Signed-off-by: Tony Najjar <[email protected]> * Revert "fix test" This reverts commit 51f54eb. * fix test Signed-off-by: Tony Najjar <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> * [DWB] Option to limit velocity commands in trajectory generator (#4663) * Option to limit vel cmd through traj generator Signed-off-by: huiyulhy <[email protected]> * Cleanup Signed-off-by: huiyulhy <[email protected]> * fix linting Signed-off-by: huiyulhy <[email protected]> * Update linting Signed-off-by: huiyulhy <[email protected]> * uncrustify Signed-off-by: huiyulhy <[email protected]> * uncrustify Signed-off-by: huiyulhy <[email protected]> --------- Signed-off-by: huiyulhy <[email protected]> * Adding planner server timeout for costmap waiting (#4673) * Adding planner server timeout for costmap waiting Signed-off-by: Steve Macenski <[email protected]> * Adding controller server's costmap timeout as well Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * fixing path longer on approach (#4622) * fixing path longer on approach Signed-off-by: Pradheep <[email protected]> * removing the short circuit Signed-off-by: Pradheep <[email protected]> * adding additional layer of check Signed-off-by: Pradheep <[email protected]> --------- Signed-off-by: Pradheep <[email protected]> * fix to bt action server logging before bt execution result being ready (#4677) Signed-off-by: DreamWest <[email protected]> * Correct paper name for graceful controller Signed-off-by: Steve Macenski <[email protected]> * Added missing action clients in robot_navigator(BasicNavigator) to destroy_node (#4698) * fix: added assisted_teleop_client to robot_navigator(BasicNavigator) destroy_node Signed-off-by: Tiwa Ojo <[email protected]> * fix: added other missing action clients to robot_navigator(BasicNavigator) destroy_node Signed-off-by: Tiwa Ojo <[email protected]> --------- Signed-off-by: Tiwa Ojo <[email protected]> * Fixing SGF in MPPI and Smoother (#4669) Signed-off-by: Steve Macenski <[email protected]> * fix: handle transition failures in all servers (#4708) * fix: handle transition failures in planner/controller/smoother servers Signed-off-by: Kemal Bektas <[email protected]> * adding support for rest of servers + review comments Signed-off-by: Steve Macenski <[email protected]> * Replacing throws with error and failed lifecycle transitions Signed-off-by: Steve Macenski <[email protected]> * fix vel smoother unit tests Signed-off-by: Steve Macenski <[email protected]> * fixing docking server unit testing Signed-off-by: Steve Macenski <[email protected]> * fixing last bits Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Kemal Bektas <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Kemal Bektas <[email protected]> * [RotationShimController] fix: rotate on short paths (#4716) Add header data to goal for short paths. Commit d8ae3c1 added the possibility to the rotation shim controller to rotate towards the goal when the goal was closer that the `forward_sampling_distance`. This feature was not fully working as the goal was missing proper header data, causing the rotation shim to give back control to the main controller. Co-authored-by: agennart <[email protected]> * Added parameter `rotate_to_heading_once` (#4721) Signed-off-by: Daniil Khaninaev <[email protected]> * [RotationShimController] fix: rotate to goal heading (#4724) Add frame_id to goal when rotating towards goal heading, otherwise the transform would fail. This bug was introduced in 30e2cde by not setting the frame_id. Signed-off-by: agennart <[email protected]> Co-authored-by: agennart <[email protected]> * [loopback_sim] Publish clock, [nav2_costmap_2d] Fix Qos (#4726) * Publish /clock from loopback sim Signed-off-by: Adi Vardi <[email protected]> * [nav2_costmap_2d] Fix obstacle_layer trying to use RELIABLE QoS Use QoS profile from rclcpp::SensorDataQoS() instead of rmw_qos_profile_t. This solves an issue where the subscriber uses RELIABLE setting even when initialized from rmw_qos_profile_sensor_data. In addition the Subscriber(..., rmw_qos_profile_t) constructor is deprecated in favor of Subscriber(..., rclcpp::QoS) Signed-off-by: Adi Vardi <[email protected]> * [nav2_smac_planner] fix typos Signed-off-by: Adi Vardi <[email protected]> * Use single quotes Signed-off-by: Adi Vardi <[email protected]> --------- Signed-off-by: Adi Vardi <[email protected]> * Fix incorrect doxygen comment (#4741) Signed-off-by: Ryan Friedman <[email protected]> * Updating error logging in Smac collision detector object (#4743) * Updating error logging in Smac configs Signed-off-by: Steve Macenski <[email protected]> * linting Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * [map_io] Replace std logs by rclcpp logs (#4720) * replace std logs by rclcpp logs Signed-off-by: Guillaume Doisy <[email protected]> * RCLCPP_DEBUG to RCLCPP_INFO for visibility Signed-off-by: Guillaume Doisy <[email protected]> --------- Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> * manual backport to Jazzy of 6b2e244 Signed-off-by: Steve Macenski <[email protected]> * bump to 1.3.3 for jazzy sync Signed-off-by: Steve Macenski <[email protected]> * fixing backport issue Signed-off-by: Steve Macenski <[email protected]> * fixing backport of docking linking changes Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Alyssa Agnissan <[email protected]> Signed-off-by: asarazin <[email protected]> Signed-off-by: Mike Wake <[email protected]> Signed-off-by: Alan Xue <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: huiyulhy <[email protected]> Signed-off-by: Pradheep <[email protected]> Signed-off-by: DreamWest <[email protected]> Signed-off-by: Tiwa Ojo <[email protected]> Signed-off-by: Kemal Bektas <[email protected]> Signed-off-by: Daniil Khaninaev <[email protected]> Signed-off-by: agennart <[email protected]> Signed-off-by: Adi Vardi <[email protected]> Signed-off-by: Ryan Friedman <[email protected]> Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: alyquantillion <[email protected]> Co-authored-by: anaelle-sw <[email protected]> Co-authored-by: asarazin <[email protected]> Co-authored-by: aosmw <[email protected]> Co-authored-by: Alan <[email protected]> Co-authored-by: Tony Najjar <[email protected]> Co-authored-by: Huiyu Leong <[email protected]> Co-authored-by: Pradheep Krishna <[email protected]> Co-authored-by: DreamWest <[email protected]> Co-authored-by: Tiwa Ojo <[email protected]> Co-authored-by: Kemal Bektas <[email protected]> Co-authored-by: Saitama <[email protected]> Co-authored-by: agennart <[email protected]> Co-authored-by: Daniil Khaninaev <[email protected]> Co-authored-by: Adi Vardi <[email protected]> Co-authored-by: Ryan <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]>
…ygon (ros-navigation#4227) * Collision monitor: select specific observation sources for polygon Signed-off-by: asarazin <[email protected]> * optimization Signed-off-by: asarazin <[email protected]> * add tests Signed-off-by: asarazin <[email protected]> --------- Signed-off-by: asarazin <[email protected]> Co-authored-by: asarazin <[email protected]> Signed-off-by: Joseph Duchesne <[email protected]>
Basic Info
Description of contribution in a few bullet points
New string vector parameter
<polygon_name>.sources_names
. Only the sources which names are specified in parameter are used to check collision with current polygon. If the parameter is not set, all the observation sources are used.Description of documentation updates required from your changes
Add new parameter
<polygon_name>.sources_names
to default configs, documentation page, and migration guideFuture work that may be required in bullet points
For Maintainers: