Feature/vector object server#5479
Conversation
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
* Corrected headers * Functions ordering * Comment fixes Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]>
* Correct licensing years * Fix Vector Object server dependencies * Funcion rename for better readability * Improve/fix comments Signed-off-by: Alexey Merzlyakov <[email protected]>
Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Alberto Tudela <[email protected]>
Signed-off-by: Sushant Chavan <[email protected]>
Signed-off-by: Sushant Chavan <[email protected]>
Signed-off-by: Sushant Chavan <[email protected]>
Signed-off-by: Sushant Chavan <[email protected]>
Signed-off-by: Sushant Chavan <[email protected]>
Signed-off-by: Sushant Chavan <[email protected]>
There was a problem hiding this comment.
I did a medium level review, knowing that some of the details were written by Alexey and I can do a detailed review of that level in the next round. I wanted to get things I thought you should fix and will verify functionality in the next one after these are resolved.
Generally looks good to me though. I don't think I'm going to find much I object to.
Signed-off-by: Sushant Chavan <[email protected]>
Signed-off-by: Sushant Chavan <[email protected]>
Signed-off-by: Sushant Chavan <[email protected]>
There was a problem hiding this comment.
Pull Request Overview
This PR implements a Vector Object Server feature that allows dynamic addition, removal, and management of vector shapes (polygons and circles) on occupancy grid maps. The main purpose is to enable runtime manipulation of keepout zones, speed limit areas, and other regions on navigation maps using geometric primitives instead of static map files.
- Adds VectorObjectServer lifecycle node for managing vector shapes on maps
- Implements polygon and circle geometric primitives with transformation support
- Provides service interfaces for adding, removing, and querying vector objects
Reviewed Changes
Copilot reviewed 39 out of 39 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| nav2_msgs/ | Adds message definitions and service interfaces for vector objects |
| nav2_util/ | Implements utility functions for raytracing, occupancy grid operations, and geometric calculations |
| nav2_map_server/ | Core implementation of vector object server with shape management |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <[email protected]> Signed-off-by: Steve Macenski <[email protected]>
Co-authored-by: Copilot <[email protected]> Signed-off-by: Steve Macenski <[email protected]>
SteveMacenski
left a comment
There was a problem hiding this comment.
Small changes for logging and otherwise happy with this! This should be mergable immediately on these updates
Signed-off-by: Sushant Chavan <[email protected]>
Signed-off-by: Sushant Chavan <[email protected]>
|
Thanks @Sushant-Chavan for testing and refining for your application, @ajtudela for doing the hard work of continuing this from @AlexeyMerzlyakov - and of course Alexey for his core contributions here! |
|
Great! I'm glad this has finally been merged. |
* Add Vector Object server Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Meet review comments Signed-off-by: Alexey Merzlyakov <[email protected]> * Simplify shapes param configuring Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Rename getROSParameter() to getParameter() Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Return back getMaskData() to nav2_costmap_2d Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Add composition node support Signed-off-by: Alexey Merzlyakov <[email protected]> * Remove redundant methods Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Update nav2_map_server/src/vo_server/vector_object_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Avoid shapes clearing Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Optimize switchMapUpdate() method Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Switch to vector of shapes Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Minor fixes Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Meet review comments Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Move isPointInside algorithm to nav2_util Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Testcases covering new functionality Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Fix linting issues Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Adjust for Vector Objects demonstration Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Code clean-up * Corrected headers * Functions ordering * Comment fixes Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Additional code facelift * Correct licensing years * Fix Vector Object server dependencies * Funcion rename for better readability * Improve/fix comments Signed-off-by: Alexey Merzlyakov <[email protected]> * Minor fixing after rebase Signed-off-by: Alberto Tudela <[email protected]> * Rename vector object server Signed-off-by: Alberto Tudela <[email protected]> * Minor changes Signed-off-by: Alberto Tudela <[email protected]> * Update tests Signed-off-by: Alberto Tudela <[email protected]> * Merge branch 'main' into feature/vector_object_server Signed-off-by: Sushant Chavan <[email protected]> * Fix merge issues and pre-commit checks Signed-off-by: Sushant Chavan <[email protected]> * Change tf2_ros headers from `.h` to `.hpp` Signed-off-by: Sushant Chavan <[email protected]> * Fix race condition in pub-sub of VO map Signed-off-by: Sushant Chavan <[email protected]> * Cleanup Signed-off-by: Sushant Chavan <[email protected]> * Remove use of ament_target_dependencies Signed-off-by: Sushant Chavan <[email protected]> * Fix review comments Signed-off-by: Sushant Chavan <[email protected]> * Fix linter errors Signed-off-by: Sushant Chavan <[email protected]> * Fix exception handling Signed-off-by: Sushant Chavan <[email protected]> * Update nav2_map_server/include/nav2_map_server/vector_object_utils.hpp Co-authored-by: Copilot <[email protected]> Signed-off-by: Steve Macenski <[email protected]> * Update nav2_util/include/nav2_util/raytrace_line_2d.hpp Co-authored-by: Copilot <[email protected]> Signed-off-by: Steve Macenski <[email protected]> * Add error logs Signed-off-by: Sushant Chavan <[email protected]> * Fix cpplint Signed-off-by: Sushant Chavan <[email protected]> --------- Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> Signed-off-by: Sushant Chavan <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Alexey Merzlyakov <[email protected]> Co-authored-by: Alexey Merzlyakov <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Co-authored-by: Alberto Tudela <[email protected]> Co-authored-by: Copilot <[email protected]>
* Add Vector Object server Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Meet review comments Signed-off-by: Alexey Merzlyakov <[email protected]> * Simplify shapes param configuring Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Rename getROSParameter() to getParameter() Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Return back getMaskData() to nav2_costmap_2d Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Add composition node support Signed-off-by: Alexey Merzlyakov <[email protected]> * Remove redundant methods Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Update nav2_map_server/src/vo_server/vector_object_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Avoid shapes clearing Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Optimize switchMapUpdate() method Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Switch to vector of shapes Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Minor fixes Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Meet review comments Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Move isPointInside algorithm to nav2_util Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Testcases covering new functionality Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Fix linting issues Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Adjust for Vector Objects demonstration Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Code clean-up * Corrected headers * Functions ordering * Comment fixes Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> * Additional code facelift * Correct licensing years * Fix Vector Object server dependencies * Funcion rename for better readability * Improve/fix comments Signed-off-by: Alexey Merzlyakov <[email protected]> * Minor fixing after rebase Signed-off-by: Alberto Tudela <[email protected]> * Rename vector object server Signed-off-by: Alberto Tudela <[email protected]> * Minor changes Signed-off-by: Alberto Tudela <[email protected]> * Update tests Signed-off-by: Alberto Tudela <[email protected]> * Merge branch 'main' into feature/vector_object_server Signed-off-by: Sushant Chavan <[email protected]> * Fix merge issues and pre-commit checks Signed-off-by: Sushant Chavan <[email protected]> * Change tf2_ros headers from `.h` to `.hpp` Signed-off-by: Sushant Chavan <[email protected]> * Fix race condition in pub-sub of VO map Signed-off-by: Sushant Chavan <[email protected]> * Cleanup Signed-off-by: Sushant Chavan <[email protected]> * Remove use of ament_target_dependencies Signed-off-by: Sushant Chavan <[email protected]> * Fix review comments Signed-off-by: Sushant Chavan <[email protected]> * Fix linter errors Signed-off-by: Sushant Chavan <[email protected]> * Fix exception handling Signed-off-by: Sushant Chavan <[email protected]> * Update nav2_map_server/include/nav2_map_server/vector_object_utils.hpp Co-authored-by: Copilot <[email protected]> Signed-off-by: Steve Macenski <[email protected]> * Update nav2_util/include/nav2_util/raytrace_line_2d.hpp Co-authored-by: Copilot <[email protected]> Signed-off-by: Steve Macenski <[email protected]> * Add error logs Signed-off-by: Sushant Chavan <[email protected]> * Fix cpplint Signed-off-by: Sushant Chavan <[email protected]> --------- Signed-off-by: Alexey Merzlyakov <[email protected]> Signed-off-by: Alberto Tudela <[email protected]> Signed-off-by: Sushant Chavan <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Alexey Merzlyakov <[email protected]> Co-authored-by: Alexey Merzlyakov <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Co-authored-by: Alberto Tudela <[email protected]> Co-authored-by: Copilot <[email protected]>
Basic Info
Description of contribution in a few bullet points
This PR continues from the open but non-active PR #4680. The following additional updates were performed:
.hppinstead of.htf2_ros headersDescription of documentation updates required from your changes
The PR for the corresponding documentation can be found at: ros-navigation/docs.nav2.org#766
Description of how this change was tested
Future work that may be required in bullet points
N/A
For Maintainers:
backport-*.