-
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 <anaelle.sarazin@robocc.com>
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 <anaelle.sarazin@robocc.com>
be63b55
to
1860732
Compare
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 <anaelle.sarazin@robocc.com> * optimization Signed-off-by: asarazin <anaelle.sarazin@robocc.com> * add tests Signed-off-by: asarazin <anaelle.sarazin@robocc.com> --------- Signed-off-by: asarazin <anaelle.sarazin@robocc.com> Co-authored-by: asarazin <anaelle.sarazin@robocc.com>
* 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 <stevenmacenski@gmail.com> * docs and linting * adding unit tests Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Publish optimal trajectory as a Path message (#4640) * Publish optimal trajectory as a Path message Signed-off-by: Alyssa Agnissan <alyssa.agnissan@quantillion.io> * move publish_optimal_path to TrajectoryVisualizer + minor refactoring Signed-off-by: Alyssa Agnissan <alyssa.agnissan@quantillion.io> * tests added for optimal path publication Signed-off-by: Alyssa Agnissan <alyssa.agnissan@quantillion.io> * populate optimal path message in add() Signed-off-by: Alyssa Agnissan <alyssa.agnissan@quantillion.io> * move path population in add_marker Signed-off-by: Alyssa Agnissan <alyssa.agnissan@quantillion.io> --------- Signed-off-by: Alyssa Agnissan <alyssa.agnissan@quantillion.io> * [collision monitor] Select the observation sources used with each polygon (#4227) * Collision monitor: select specific observation sources for polygon Signed-off-by: asarazin <anaelle.sarazin@robocc.com> * optimization Signed-off-by: asarazin <anaelle.sarazin@robocc.com> * add tests Signed-off-by: asarazin <anaelle.sarazin@robocc.com> --------- Signed-off-by: asarazin <anaelle.sarazin@robocc.com> Co-authored-by: asarazin <anaelle.sarazin@robocc.com> * Restore exported BT test utils header files after cmake revamp (#4652) (#4654) Signed-off-by: Mike Wake <michael.wake@aosgrp.com.au> * fix(bt_nodes): Correct default `server_timeout` behavior by using `getInputPortOrBlackboard()` (#4649) Signed-off-by: Alan Xue <alan.xuefei@googlemail.com> * PoseStamped vector specialization (#4607) * PoseStamped vector specialization Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * merge master Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * add path Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * fix size check Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * fix test Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * Revert "fix test" This reverts commit 51f54eb. * fix test Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> --------- Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> * [DWB] Option to limit velocity commands in trajectory generator (#4663) * Option to limit vel cmd through traj generator Signed-off-by: huiyulhy <lhyleonghuiyu@gmail.com> * Cleanup Signed-off-by: huiyulhy <lhyleonghuiyu@gmail.com> * fix linting Signed-off-by: huiyulhy <lhyleonghuiyu@gmail.com> * Update linting Signed-off-by: huiyulhy <lhyleonghuiyu@gmail.com> * uncrustify Signed-off-by: huiyulhy <lhyleonghuiyu@gmail.com> * uncrustify Signed-off-by: huiyulhy <lhyleonghuiyu@gmail.com> --------- Signed-off-by: huiyulhy <lhyleonghuiyu@gmail.com> * Adding planner server timeout for costmap waiting (#4673) * Adding planner server timeout for costmap waiting Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Adding controller server's costmap timeout as well Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fixing path longer on approach (#4622) * fixing path longer on approach Signed-off-by: Pradheep <padhupradheep@gmail.com> * removing the short circuit Signed-off-by: Pradheep <padhupradheep@gmail.com> * adding additional layer of check Signed-off-by: Pradheep <padhupradheep@gmail.com> --------- Signed-off-by: Pradheep <padhupradheep@gmail.com> * fix to bt action server logging before bt execution result being ready (#4677) Signed-off-by: DreamWest <sirjamestsao@gmail.com> * Correct paper name for graceful controller Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * 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 <tiwa@reindeere.ca> * fix: added other missing action clients to robot_navigator(BasicNavigator) destroy_node Signed-off-by: Tiwa Ojo <tiwa@reindeere.ca> --------- Signed-off-by: Tiwa Ojo <tiwa@reindeere.ca> * Fixing SGF in MPPI and Smoother (#4669) Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fix: handle transition failures in all servers (#4708) * fix: handle transition failures in planner/controller/smoother servers Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> * adding support for rest of servers + review comments Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Replacing throws with error and failed lifecycle transitions Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fix vel smoother unit tests Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fixing docking server unit testing Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fixing last bits Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Kemal Bektas <kemal.bektas@node-robotics.com> * [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 <antoine.gennart@quimesis.be> * Added parameter `rotate_to_heading_once` (#4721) Signed-off-by: Daniil Khaninaev <khaninaev@yahoo.com> * [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 <antoine.gennart@quimesis.be> Co-authored-by: agennart <antoine.gennart@quimesis.be> * [loopback_sim] Publish clock, [nav2_costmap_2d] Fix Qos (#4726) * Publish /clock from loopback sim Signed-off-by: Adi Vardi <adi.vardi@enway.ai> * [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 <adi.vardi@enway.ai> * [nav2_smac_planner] fix typos Signed-off-by: Adi Vardi <adi.vardi@enway.ai> * Use single quotes Signed-off-by: Adi Vardi <adi.vardi@enway.ai> --------- Signed-off-by: Adi Vardi <adi.vardi@enway.ai> * Fix incorrect doxygen comment (#4741) Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com> * Updating error logging in Smac collision detector object (#4743) * Updating error logging in Smac configs Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * linting Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * [map_io] Replace std logs by rclcpp logs (#4720) * replace std logs by rclcpp logs Signed-off-by: Guillaume Doisy <guillaume@dexory.com> * RCLCPP_DEBUG to RCLCPP_INFO for visibility Signed-off-by: Guillaume Doisy <guillaume@dexory.com> --------- Signed-off-by: Guillaume Doisy <guillaume@dexory.com> Co-authored-by: Guillaume Doisy <guillaume@dexory.com> * manual backport to Jazzy of 6b2e244 Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * bump to 1.3.3 for jazzy sync Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fixing backport issue Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * fixing backport of docking linking changes Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Alyssa Agnissan <alyssa.agnissan@quantillion.io> Signed-off-by: asarazin <anaelle.sarazin@robocc.com> Signed-off-by: Mike Wake <michael.wake@aosgrp.com.au> Signed-off-by: Alan Xue <alan.xuefei@googlemail.com> Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> Signed-off-by: huiyulhy <lhyleonghuiyu@gmail.com> Signed-off-by: Pradheep <padhupradheep@gmail.com> Signed-off-by: DreamWest <sirjamestsao@gmail.com> Signed-off-by: Tiwa Ojo <tiwa@reindeere.ca> Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> Signed-off-by: Daniil Khaninaev <khaninaev@yahoo.com> Signed-off-by: agennart <antoine.gennart@quimesis.be> Signed-off-by: Adi Vardi <adi.vardi@enway.ai> Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com> Signed-off-by: Guillaume Doisy <guillaume@dexory.com> Co-authored-by: alyquantillion <158563995+alyquantillion@users.noreply.github.com> Co-authored-by: anaelle-sw <63144493+anaelle-sw@users.noreply.github.com> Co-authored-by: asarazin <anaelle.sarazin@robocc.com> Co-authored-by: aosmw <116058035+aosmw@users.noreply.github.com> Co-authored-by: Alan <alan.xuefei@googlemail.com> Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com> Co-authored-by: Huiyu Leong <26198479+huiyulhy@users.noreply.github.com> Co-authored-by: Pradheep Krishna <padhupradheep@gmail.com> Co-authored-by: DreamWest <sirjamestsao@gmail.com> Co-authored-by: Tiwa Ojo <55967921+tiwaojo@users.noreply.github.com> Co-authored-by: Kemal Bektas <kemal.bektas@node-robotics.com> Co-authored-by: Saitama <gennartan@users.noreply.github.com> Co-authored-by: agennart <antoine.gennart@quimesis.be> Co-authored-by: Daniil Khaninaev <khaninaev@yahoo.com> Co-authored-by: Adi Vardi <57910756+adivardi@users.noreply.github.com> Co-authored-by: Ryan <25047695+Ryanf55@users.noreply.github.com> Co-authored-by: Guillaume Doisy <doisyg@users.noreply.github.com> Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
…ygon (ros-navigation#4227) * Collision monitor: select specific observation sources for polygon Signed-off-by: asarazin <anaelle.sarazin@robocc.com> * optimization Signed-off-by: asarazin <anaelle.sarazin@robocc.com> * add tests Signed-off-by: asarazin <anaelle.sarazin@robocc.com> --------- Signed-off-by: asarazin <anaelle.sarazin@robocc.com> Co-authored-by: asarazin <anaelle.sarazin@robocc.com> Signed-off-by: Joseph Duchesne <josephgeek@gmail.com>
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: