Skip to content

Conversation

@adivardi
Copy link
Contributor


Basic Info

Info Please fill out this column
Ticket(s) this addresses -
Primary OS tested on Ubuntu
Robotic platform tested on gazebo simulation , Jazzy
Does this PR contain AI generated software? No

Description of contribution in a few bullet points

Supersedes #5138

This PR uses fixed values for the threshold saved to the yaml file, in Trinary mode. Similarly to ROS 1.
With this change, Trinary maps loaded created and loaded with the map_server, will now load correctly. This is because the pixel values saved in this mode are constants, so when loading the map the thresholds must lie between the pixel values for correct loading. The thresholds supplied by the user are still used for thresholding the input map before saving (to reduce noise)

Description of documentation updates required from your changes

None

Description of how this change was tested

  • Use ros2 run nav2_map_server map_saver_cli with various arguments. The threshold saved should be fixed to 0.65 and 0.196 in Trinary mode. Other modes should not be affected.

Future work that may be required in bullet points

For Maintainers:

  • Check that any new parameters added are updated in docs.nav2.org
  • Check that any significant change is added to the migration guide
  • Check that any new features OR changes to existing behaviors are reflected in the tuning guide
  • Check that any new functions have Doxygen added
  • Check that any new features have test coverage
  • Check that any new plugins is added to the plugins page
  • If BT Node, Additionally: add to BT's XML index of nodes for groot, BT package's readme table, and BT library lists

@adivardi adivardi force-pushed the av/save_map_thresh branch from db43f8c to 30b22ed Compare June 17, 2025 06:51
@codecov
Copy link

codecov bot commented Jun 17, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Files with missing lines Coverage Δ
nav2_map_server/src/map_io.cpp 92.51% <100.00%> (+0.10%) ⬆️

... and 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@SteveMacenski SteveMacenski merged commit 829e683 into ros-navigation:main Jun 17, 2025
6 checks passed
mergify bot pushed a commit that referenced this pull request Jun 17, 2025
Signed-off-by: Adi Vardi <[email protected]>
(cherry picked from commit 829e683)
mergify bot pushed a commit that referenced this pull request Jun 17, 2025
Signed-off-by: Adi Vardi <[email protected]>
(cherry picked from commit 829e683)
SteveMacenski pushed a commit that referenced this pull request Jun 17, 2025
(cherry picked from commit 829e683)

Signed-off-by: Adi Vardi <[email protected]>
Co-authored-by: Adi Vardi <[email protected]>
SteveMacenski pushed a commit that referenced this pull request Jun 17, 2025
(cherry picked from commit 829e683)

Signed-off-by: Adi Vardi <[email protected]>
Co-authored-by: Adi Vardi <[email protected]>
@adivardi
Copy link
Contributor Author

adivardi commented Jun 18, 2025

@SteveMacenski Could you please also backport to Jazzy?

mergify bot pushed a commit that referenced this pull request Jun 18, 2025
Signed-off-by: Adi Vardi <[email protected]>
(cherry picked from commit 829e683)
SteveMacenski pushed a commit that referenced this pull request Jun 18, 2025
(cherry picked from commit 829e683)

Signed-off-by: Adi Vardi <[email protected]>
Co-authored-by: Adi Vardi <[email protected]>
@SteveMacenski
Copy link
Member

Done

@adivardi adivardi deleted the av/save_map_thresh branch June 26, 2025 05:21
SakshayMahna pushed a commit to SakshayMahna/navigation2 that referenced this pull request Jul 6, 2025
Sushant-Chavan added a commit to Sushant-Chavan/navigation2 that referenced this pull request Aug 5, 2025
* 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>
RBT22 pushed a commit to EnjoyRobotics/navigation2 that referenced this pull request Sep 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants