-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Fix compilation of nav2_smac_planner on Windows #5291
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
Conversation
Signed-off-by: Silvio <[email protected]>
Codecov ReportAll modified and coverable lines are covered by tests ✅
... and 3 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Signed-off-by: Silvio <[email protected]>
* Revert "Fix Ci from key signing (ros-navigation#5220)" (ros-navigation#5237) * Revert "Fix Ci from key signing (ros-navigation#5220)" This reverts the changes to the Dockerfile done in 1345c22. Signed-off-by: Nils-Christian Iseke <[email protected]> * Update Cache Version Signed-off-by: Nils-Christian Iseke <[email protected]> --------- Signed-off-by: Nils-Christian Iseke <[email protected]> * enable_groot_monitoring_ false (ros-navigation#5246) Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> * Updating readme table for kilted release (ros-navigation#5249) * updating readme table for kilted release Signed-off-by: Steve Macenski <[email protected]> * Updating table lint Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * Add min_distance_to_obstacle parameter to RPP (ros-navigation#4543) * min_distance_to_obstacle Signed-off-by: Guillaume Doisy <[email protected]> * suggestion to time base and combine Signed-off-by: Guillaume Doisy <[email protected]> * typo Signed-off-by: Guillaume Doisy <[email protected]> * use min_approach_linear_velocity Signed-off-by: Guillaume Doisy <[email protected]> --------- Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> * Fixing builds for message filters API change while retaining Jazzy, Kilted, and Rolling support (ros-navigation#5251) * Update amcl_node.hpp Signed-off-by: Steve Macenski <[email protected]> * Update amcl_node.cpp Signed-off-by: Steve Macenski <[email protected]> * Working for Kilted, Jazzy Signed-off-by: Steve Macenski <[email protected]> * Update amcl_node.cpp Signed-off-by: Steve Macenski <[email protected]> * Update amcl_node.cpp Signed-off-by: Steve Macenski <[email protected]> * Update amcl_node.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * Change max_cost default to 254 (ros-navigation#5256) Signed-off-by: Tony Najjar <[email protected]> * Route server corner smoothing (ros-navigation#5226) * added edge length method Signed-off-by: Alexander Yuen <[email protected]> * Added corner arc class Signed-off-by: Alexander Yuen <[email protected]> * replaced double vectors with Coordinates, added methods to return start and end coordinates Signed-off-by: Alexander Yuen <[email protected]> * using Coordinates, fixed direction of tangents Signed-off-by: Alexander Yuen <[email protected]> * added corner arc in header, added logger in protected variable Signed-off-by: Alexander Yuen <[email protected]> * first pass of corner smoothing algorithm Signed-off-by: Alexander Yuen <[email protected]> * reassigning next edge to have a different start, if a corner occurs before it Signed-off-by: Alexander Yuen <[email protected]> * using unique pointer instead of raw pointers for new edges and nodes Signed-off-by: Alexander Yuen <[email protected]> * added smoothing parameter Signed-off-by: Alexander Yuen <[email protected]> * made angle of interpolation a parameter Signed-off-by: Alexander Yuen <[email protected]> * const for return methods, added flag for smoothing corners Signed-off-by: Alexander Yuen <[email protected]> * moved getEdgeLength() into the Directional Edge struct Signed-off-by: Alexander Yuen <[email protected]> * using float instead of double Signed-off-by: Alexander Yuen <[email protected]> * smoothing radius is float, couple methods moved to protected Signed-off-by: Alexander Yuen <[email protected]> * removed signed_angle_ as a member variable Signed-off-by: Alexander Yuen <[email protected]> * removed unnecessary member variables Signed-off-by: Alexander Yuen <[email protected]> * removed angle of interpolation and inferring it from path density and radius instead Signed-off-by: Alexander Yuen <[email protected]> * consolidated corner arc into one header function Signed-off-by: Alexander Yuen <[email protected]> * readded newline Signed-off-by: Alexander Yuen <[email protected]> * changed corner arc to corner smoothing Signed-off-by: Alexander Yuen <[email protected]> * replaced the use of edges with coordinates to generate smoothing arc, removed storage of nodes and edges Signed-off-by: Alexander Yuen <[email protected]> * linting Signed-off-by: Alexander Yuen <[email protected]> * fixing cpplint Signed-off-by: Alexander Yuen <[email protected]> * linting for headers Signed-off-by: Alexander Yuen <[email protected]> * cpplinting Signed-off-by: Alexander Yuen <[email protected]> * Update nav2_route/src/path_converter.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_route/src/path_converter.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_route/src/path_converter.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_route/src/path_converter.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_route/include/nav2_route/corner_smoothing.hpp Signed-off-by: Steve Macenski <[email protected]> * fixed divide by zeros and accessing empty route.edges Signed-off-by: Alexander Yuen <[email protected]> * uncrustify linting Signed-off-by: Alexander Yuen <[email protected]> * cpp linting Signed-off-by: Alexander Yuen <[email protected]> * path converter linting Signed-off-by: Alexander Yuen <[email protected]> * changed all doubles to floats Signed-off-by: Alexander Yuen <[email protected]> * added check for edges that are colinear to avoid divide by 0, fixed final edge interpolation Signed-off-by: Alexander Yuen <[email protected]> * linting Signed-off-by: Alexander Yuen <[email protected]> * Update nav2_route/include/nav2_route/corner_smoothing.hpp Signed-off-by: Steve Macenski <[email protected]> * added doxygen for corner arc class Signed-off-by: Alexander Yuen <[email protected]> * added warning message if corner can't be smoothed Signed-off-by: Alexander Yuen <[email protected]> * added smooth_corners to the nav2 params file Signed-off-by: Alexander Yuen <[email protected]> * added smoothing flag and radius parameter to README.md' Signed-off-by: Alexander Yuen <[email protected]> * typo in README Signed-off-by: Alexander Yuen <[email protected]> * added testing for corner smoothing Signed-off-by: Alexander Yuen <[email protected]> * Update nav2_route/include/nav2_route/corner_smoothing.hpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Alexander Yuen <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]> * Conserve curvature with LIMIT action (ros-navigation#5255) * Conserve curvature with LIMIT action Signed-off-by: Tony Najjar <[email protected]> * fix format Signed-off-by: Tony Najjar <[email protected]> * fix test Signed-off-by: Tony Najjar <[email protected]> --------- Signed-off-by: Tony Najjar <[email protected]> * Parametrizing obstacle layer tf filter tolerance (ros-navigation#5261) Signed-off-by: Marco Bassa <[email protected]> * Add namespace support for rviz costmap cost tool (ros-navigation#5268) Signed-off-by: Maurice-1235 <[email protected]> * Fix/smac planner orientation goals (ros-navigation#5235) * cherry pick Signed-off-by: Stevedan Omodolor <[email protected]> * cherry pick 6a74ba6 Signed-off-by: Stevedan Omodolor <[email protected]> * cherrpy pick Signed-off-by: Stevedan Omodolor <[email protected]> * include x11 forwarding Signed-off-by: Stevedan Omodolor <[email protected]> * kind of working version Signed-off-by: Stevedan Omodolor <[email protected]> * cleanup Signed-off-by: Stevedan Omodolor <[email protected]> * formatting Signed-off-by: Stevedan Omodolor <[email protected]> * minor format change Signed-off-by: Stevedan Omodolor <[email protected]> * change naming Signed-off-by: Stevedan Omodolor <[email protected]> * minor changes Signed-off-by: Stevedan Omodolor <[email protected]> * working with new changes Signed-off-by: Stevedan Omodolor <[email protected]> * Revert "Fix Ci from key signing (ros-navigation#5220)" (ros-navigation#5237) * Revert "Fix Ci from key signing (ros-navigation#5220)" This reverts the changes to the Dockerfile done in 1345c22. Signed-off-by: Nils-Christian Iseke <[email protected]> * Update Cache Version Signed-off-by: Nils-Christian Iseke <[email protected]> --------- Signed-off-by: Nils-Christian Iseke <[email protected]> Signed-off-by: Stevedan Omodolor <[email protected]> * Revert back Signed-off-by: Stevedan Omodolor <[email protected]> * enable_groot_monitoring_ false (ros-navigation#5246) Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Signed-off-by: Stevedan Omodolor <[email protected]> * Updating readme table for kilted release (ros-navigation#5249) * updating readme table for kilted release Signed-off-by: Steve Macenski <[email protected]> * Updating table lint Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Stevedan Omodolor <[email protected]> * Add min_distance_to_obstacle parameter to RPP (ros-navigation#4543) * min_distance_to_obstacle Signed-off-by: Guillaume Doisy <[email protected]> * suggestion to time base and combine Signed-off-by: Guillaume Doisy <[email protected]> * typo Signed-off-by: Guillaume Doisy <[email protected]> * use min_approach_linear_velocity Signed-off-by: Guillaume Doisy <[email protected]> --------- Signed-off-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Signed-off-by: Stevedan Omodolor <[email protected]> * Fixing builds for message filters API change while retaining Jazzy, Kilted, and Rolling support (ros-navigation#5251) * Update amcl_node.hpp Signed-off-by: Steve Macenski <[email protected]> * Update amcl_node.cpp Signed-off-by: Steve Macenski <[email protected]> * Working for Kilted, Jazzy Signed-off-by: Steve Macenski <[email protected]> * Update amcl_node.cpp Signed-off-by: Steve Macenski <[email protected]> * Update amcl_node.cpp Signed-off-by: Steve Macenski <[email protected]> * Update amcl_node.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Stevedan Omodolor <[email protected]> * Change max_cost default to 254 (ros-navigation#5256) Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Stevedan Omodolor <[email protected]> * linter Signed-off-by: Stevedan Omodolor <[email protected]> * remove const Signed-off-by: Stevedan Omodolor <[email protected]> * pass const pointer by value Signed-off-by: Stevedan Omodolor <[email protected]> * pass const pointer by value Signed-off-by: Stevedan Omodolor <[email protected]> * remove unused param Signed-off-by: Stevedan Omodolor <[email protected]> --------- Signed-off-by: Stevedan Omodolor <[email protected]> Signed-off-by: Nils-Christian Iseke <[email protected]> Signed-off-by: Guillaume Doisy <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Co-authored-by: Nils-Christian Iseke <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Tony Najjar <[email protected]> * Fix backport compiler warning (ros-navigation#5277) Signed-off-by: Steve Macenski <[email protected]> * Fix ament mypy (ros-navigation#5280) * Configured nav2_loopback_sim to be compliant with mypy. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Configured nav2_simple_commander to be compliant with mypy. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Configured nav2_system_tests to be compliant with mypy. Signed-off-by: Leander Stephen D'Souza <[email protected]> --------- Signed-off-by: Leander Stephen D'Souza <[email protected]> * Publish zero velocitiy in case of goal failure (ros-navigation#5279) Signed-off-by: haider8645 <[email protected]> * Update PULL_REQUEST_TEMPLATE.md Signed-off-by: Steve Macenski <[email protected]> * Use fixed thresholds for Trinary yaml (ros-navigation#5278) Signed-off-by: Adi Vardi <[email protected]> * Add missing include of algorithm in differential_motion_model.cpp (ros-navigation#5293) Signed-off-by: Silvio Traversaro <[email protected]> * Remove unused unistd.h header from route_tool.cpp (ros-navigation#5292) Signed-off-by: Silvio Traversaro <[email protected]> * Fix compilation of nav2_smac_planner on Windows (ros-navigation#5291) Signed-off-by: Silvio <[email protected]> * Large Nav2 Node, Utils, and Interface Refactor (ros-navigation#5288) * initial unorganized prototype Signed-off-by: Steve Macenski <[email protected]> * break out files and add doxygen Signed-off-by: Steve Macenski <[email protected]> * Adding refactor for nav2_ros_common and new ROS interface factories Signed-off-by: Steve Macenski <[email protected]> * fixing CI - not sure how that got through merge conflicts Signed-off-by: Steve Macenski <[email protected]> * Lifecycle publisher a missing test Signed-off-by: Steve Macenski <[email protected]> * system tests Signed-off-by: Steve Macenski <[email protected]> * default Signed-off-by: Steve Macenski <[email protected]> * activating publishers Signed-off-by: Steve Macenski <[email protected]> * temp disable allow param qos overrides Signed-off-by: Steve Macenski <[email protected]> * API update for new constructor option Signed-off-by: Steve Macenski <[email protected]> * Supporting Jazzy and abstracting util Signed-off-by: Steve Macenski <[email protected]> * Review round 1 Signed-off-by: Steve Macenski <[email protected]> * Adding Nav2 Publisher and Subscriber objects to later build upon Signed-off-by: Steve Macenski <[email protected]> * Adding additional ::SharedPtr for readability Signed-off-by: Steve Macenski <[email protected]> * fix bug Signed-off-by: Steve Macenski <[email protected]> * fixing Jazzy support Signed-off-by: Steve Macenski <[email protected]> * missed one last spot Signed-off-by: Steve Macenski <[email protected]> * Adding migration instructions Signed-off-by: Steve Macenski <[email protected]> * more context Signed-off-by: Steve Macenski <[email protected]> * Adding migration context Signed-off-by: Steve Macenski <[email protected]> * precommit Signed-off-by: Steve Macenski <[email protected]> * adding missing dep Signed-off-by: Steve Macenski <[email protected]> * Updating system tess Signed-off-by: Steve Macenski <[email protected]> * more Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * Adding logging for matched events and dropped messages into pub/sub of new nav2_ros_common package. Also adding QoS overrides default ON (ros-navigation#5302) * Adding logging for matched events and dropped messages Signed-off-by: Steve Macenski <[email protected]> * toggle on Signed-off-by: Steve Macenski <[email protected]> * apply for smac 2D Signed-off-by: Steve Macenski <[email protected]> * Update interface_factories.hpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * Add LaunchConfigAsBool (Fixes ros-navigation#5233) (ros-navigation#5301) * Add LaunchConfigAsBool (Fixes ros-navigation#5233) Signed-off-by: nishalangovender <[email protected]> * Fix Linting Signed-off-by: nishalangovender <[email protected]> * Fix ament_mypy and pre-commit Signed-off-by: nishalangovender <[email protected]> * Added Type Annotations Signed-off-by: Nishalan Govender <[email protected]> * mypy ignore Signed-off-by: Nishalan Govender <[email protected]> * launch.Substitution Signed-off-by: Nishalan Govender <[email protected]> * Update All Bools in nav2_bringup Signed-off-by: Nishalan Govender <[email protected]> --------- Signed-off-by: nishalangovender <[email protected]> Signed-off-by: Nishalan Govender <[email protected]> * Create claude.yml Signed-off-by: Steve Macenski <[email protected]> * Update claude.yml Signed-off-by: Steve Macenski <[email protected]> * Update claude.yml Signed-off-by: Steve Macenski <[email protected]> * Update claude.yml for authorized users Signed-off-by: Steve Macenski <[email protected]> * Update claude.yml Signed-off-by: Steve Macenski <[email protected]> * Update claude.yml Signed-off-by: Steve Macenski <[email protected]> * Adding clear costmap around pose service option (ros-navigation#5309) * Adding clear costmap around pose impl Signed-off-by: Steve Macenski <[email protected]> * Update nav2_msgs/srv/ClearCostmapAroundPose.srv Signed-off-by: Steve Macenski <[email protected]> * Adding APIs for simple commander Signed-off-by: Steve Macenski <[email protected]> * linting Signed-off-by: Steve Macenski <[email protected]> * adding import Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Steve Macenski <[email protected]> * Fix compiler errors in nav2_map_server * Fix compiler errors in nav2_costmap_2d * Add support for enable_lifecycle_services parameter in LifecycleNode (ros-navigation#5307) Expose the enable_communication_interface parameter from rclcpp_lifecycle::LifecycleNode through nav2's LifecycleNode wrapper. This allows users to disable lifecycle communication interfaces when manually managing node lifecycle transitions. The parameter can be set via NodeOptions parameter overrides: ```cpp rclcpp::NodeOptions options; options.parameter_overrides({{"enable_lifecycle_services", false}}); ``` Fixes ros-navigation#5305 Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> --------- Signed-off-by: Nils-Christian Iseke <[email protected]> Signed-off-by: Guillaume Doisy <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Signed-off-by: Tony Najjar <[email protected]> Signed-off-by: Alexander Yuen <[email protected]> Signed-off-by: Marco Bassa <[email protected]> Signed-off-by: Maurice-1235 <[email protected]> Signed-off-by: Stevedan Omodolor <[email protected]> Signed-off-by: Leander Stephen D'Souza <[email protected]> Signed-off-by: haider8645 <[email protected]> Signed-off-by: Adi Vardi <[email protected]> Signed-off-by: Silvio Traversaro <[email protected]> Signed-off-by: Silvio <[email protected]> Signed-off-by: nishalangovender <[email protected]> Signed-off-by: Nishalan Govender <[email protected]> Co-authored-by: Nils-Christian Iseke <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Guillaume Doisy <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Co-authored-by: Tony Najjar <[email protected]> Co-authored-by: alexanderjyuen <[email protected]> Co-authored-by: Marco Bassa <[email protected]> Co-authored-by: mini-1235 <[email protected]> Co-authored-by: Stevedan Ogochukwu Omodolor <[email protected]> Co-authored-by: Leander Stephen D'Souza <[email protected]> Co-authored-by: Haider <[email protected]> Co-authored-by: Adi Vardi <[email protected]> Co-authored-by: Silvio Traversaro <[email protected]> Co-authored-by: Nishalan Govender <[email protected]> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
|
There seems to be an issue with the global shared variable export on Linux (with kilted at least) // in node_hybrid.hpp
NAV2_SMAC_PLANNER_COMMON_EXPORT static HybridMotionTable motion_table;The motion_model is initialized within the first call of createPlan(), and thus overwritten by the first createPlan() call of the second plugin. // in smac_planner_hybrid.cpp
nav_msgs::msg::Path SmacPlannerHybrid::createPlan(...)
{
...
_a_star->setCollisionChecker(&_collision_checker);
...// in a_star.cpp
template<typename NodeT>
void AStarAlgorithm<NodeT>::setCollisionChecker(GridCollisionChecker * collision_checker)
{
...
unsigned int x_size = _costmap->getSizeInCellsX();
unsigned int y_size = _costmap->getSizeInCellsY();
clearGraph();
if (getSizeX() != x_size || getSizeY() != y_size) {
_x_size = x_size;
_y_size = y_size;
NodeT::initMotionModel(_motion_model, _x_size, _y_size, _dim3_size, _search_info);
}
_expander->setCollisionChecker(_collision_checker);
}I don't know what is specifically fixed by the EXPORT in Windows, but it creates unexpected behavior on Linux. |
|
Hello @sebatztian, can you open a new issue explaining how to reproduce your problem? On Linux all symbols are exported by default, so I do not think it should make a difference to have or not to have |
|
I think this is related to #5118 @sebatztian if you remove |
|
@mini-1235 @traversaro thank you for the quick reply. Yes, the issue you linked seems to be the same thing. Sorry, then it is not related to I don't have a develop Nav2 Environment on the same machine, where I could recreate the problem, so it's not that easy, but judging from the date of the issue, this has to do with the static variable itself rather than the specific export. |
Basic Info
Description of contribution in a few bullet points
navigation2uses theCMAKE_WINDOWS_EXPORT_ALL_SYMBOLSto build shared libraries on Windows, see #1704 for more details. However,CMAKE_WINDOWS_EXPORT_ALL_SYMBOLScan't automatically export public static members, see https://www.kitware.com/create-dlls-on-windows-without-declspec-using-new-cmake-export-all-feature/ .In case that public static members are needed, it is necessary to manually annotate them with visibility macros. This PR does that for the static members that are actually used in the code, in
node_hybridandnode_latticefiles.Description of documentation updates required from your changes
None.
Description of how this change was tested
I compiled the package on Windows.
Future work that may be required in bullet points
None
For Maintainers:
backport-*.