-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Feature/vector object server #5479
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
Feature/vector object server #5479
Conversation
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Corrected headers * Functions ordering * Comment fixes Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
* Correct licensing years * Fix Vector Object server dependencies * Funcion rename for better readability * Improve/fix comments Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
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 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.
nav2_map_server/include/nav2_map_server/vector_object_server.hpp
Outdated
Show resolved
Hide resolved
nav2_map_server/include/nav2_map_server/vector_object_utils.hpp
Outdated
Show resolved
Hide resolved
nav2_map_server/include/nav2_map_server/vector_object_utils.hpp
Outdated
Show resolved
Hide resolved
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
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.
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.
nav2_map_server/include/nav2_map_server/vector_object_utils.hpp
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
SteveMacenski
left a comment
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 changes for logging and otherwise happy with this! This should be mergable immediately on these updates
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com>
|
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 <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Meet review comments Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> * Simplify shapes param configuring Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Rename getROSParameter() to getParameter() Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Return back getMaskData() to nav2_costmap_2d Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Add composition node support Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> * Remove redundant methods Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Update nav2_map_server/src/vo_server/vector_object_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Avoid shapes clearing Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Optimize switchMapUpdate() method Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Switch to vector of shapes Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Minor fixes Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Meet review comments Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Move isPointInside algorithm to nav2_util Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Testcases covering new functionality Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Fix linting issues Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Adjust for Vector Objects demonstration Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Code clean-up * Corrected headers * Functions ordering * Comment fixes Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Additional code facelift * Correct licensing years * Fix Vector Object server dependencies * Funcion rename for better readability * Improve/fix comments Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> * Minor fixing after rebase Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Rename vector object server Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Minor changes Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Update tests Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Merge branch 'main' into feature/vector_object_server Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix merge issues and pre-commit checks Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Change tf2_ros headers from `.h` to `.hpp` Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix race condition in pub-sub of VO map Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Cleanup Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Remove use of ament_target_dependencies Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix review comments Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix linter errors Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix exception handling Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Update nav2_map_server/include/nav2_map_server/vector_object_utils.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_util/include/nav2_util/raytrace_line_2d.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Add error logs Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix cpplint Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> --------- Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Co-authored-by: Alexey Merzlyakov <60094858+AlexeyMerzlyakov@users.noreply.github.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Alberto Tudela <ajtudela@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add Vector Object server Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Meet review comments Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> * Simplify shapes param configuring Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Rename getROSParameter() to getParameter() Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Return back getMaskData() to nav2_costmap_2d Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Add composition node support Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> * Remove redundant methods Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Update nav2_map_server/src/vo_server/vector_object_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Avoid shapes clearing Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Optimize switchMapUpdate() method Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Switch to vector of shapes Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Minor fixes Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Meet review comments Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Move isPointInside algorithm to nav2_util Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Testcases covering new functionality Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Fix linting issues Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Adjust for Vector Objects demonstration Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Code clean-up * Corrected headers * Functions ordering * Comment fixes Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Additional code facelift * Correct licensing years * Fix Vector Object server dependencies * Funcion rename for better readability * Improve/fix comments Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> * Minor fixing after rebase Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Rename vector object server Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Minor changes Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Update tests Signed-off-by: Alberto Tudela <ajtudela@gmail.com> * Merge branch 'main' into feature/vector_object_server Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix merge issues and pre-commit checks Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Change tf2_ros headers from `.h` to `.hpp` Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix race condition in pub-sub of VO map Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Cleanup Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Remove use of ament_target_dependencies Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix review comments Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix linter errors Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix exception handling Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Update nav2_map_server/include/nav2_map_server/vector_object_utils.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_util/include/nav2_util/raytrace_line_2d.hpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Add error logs Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> * Fix cpplint Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> --------- Signed-off-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Signed-off-by: Alberto Tudela <ajtudela@gmail.com> Signed-off-by: Sushant Chavan <sushant.chavan@idealworks.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Alexey Merzlyakov <alexey.merzlyakov@samsung.com> Co-authored-by: Alexey Merzlyakov <60094858+AlexeyMerzlyakov@users.noreply.github.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Alberto Tudela <ajtudela@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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-*.