-
Notifications
You must be signed in to change notification settings - Fork 1.6k
[Graceful Controller] Fix Incorrect Motion Target Heading output by controller #5530
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
[Graceful Controller] Fix Incorrect Motion Target Heading output by controller #5530
Conversation
Signed-off-by: Sakshay Mahna <[email protected]>
|
@SakshayMahna, your PR has failed to build. Please check CI outputs and resolve issues. |
nav2_util/src/controller_utils.cpp
Outdated
| point.y - prev_pose_it->pose.position.y, | ||
| point.x - prev_pose_it->pose.position.x); | ||
|
|
||
| // Path tangent vector (prev -> goal) |
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.
Can you explain the logic here? I wonder if there's a more straight forward way... A hand-drawn diagram might be insightful
|
Can I have a general idea of how the motion target heading affects the performance of the Graceful Controller? Then I will know what to focus on other than the visualization issue. At a quick glance, I think it is being used here navigation2/nav2_graceful_controller/include/nav2_graceful_controller/ego_polar_coords.hpp Lines 66 to 67 in 547820f
|
|
The problem was that the calculated We calculate two vectors
We take their dot product to determine if they face in the same direction, and adjust the yaw value accordingly (adding As per what I understand the orientation of the next point is factored into the control equation, and affects the trajectory the robot takes. Here is the paper: https://web.eecs.umich.edu/~kuipers/papers/Park-icra-11.pdf |
|
Perhaps a dumb question, but isn't the point on the path? Therefore we can simply use: Since the angle should always be the same regardless? |
|
I can try that, but I think the problem may still persist. What I understand (correct me if I am wrong), the scenario that @mini-1235 described is taking place due to the output range of atan2 ( |
This is solving the issue. I am not seeing any problems which were pointed out earlier. Yes, it should work (my bad) because in the code I pushed now, we are comparing with I will push this. But I don't fully understand the reason, because |
Signed-off-by: Sakshay Mahna <[email protected]>
|
@SakshayMahna, your PR has failed to build. Please check CI outputs and resolve issues. |
|
Sorry for the late response, I was validating the changes here together with #5446, and I also took a deeper look into this problem today The problem seems to be in these lines: navigation2/nav2_util/src/controller_utils.cpp Lines 62 to 83 in d36bdd1
Where we previously have: auto goal_pose_it = std::find_if(
transformed_plan.poses.begin(), transformed_plan.poses.end(), [&](const auto & ps) {
return hypot(ps.pose.position.x, ps.pose.position.y) >= lookahead_dist;
});If I revert these lines, then atan(point-prev) also works I throw a log when the yaw jumps and points to the wrong direction:
This assumption seems to fail in this case navigation2/nav2_util/src/controller_utils.cpp Lines 116 to 120 in d36bdd1
I also took a look on #5003, but I could not find the discussion for these lines changed |
|
Ah, so this fails because the lookahead distance is no longer computed via the L2 distance but now integrated distance. That is subtle. This probably means that we're getting the incorrect exact lookahead distanced point in both use cases, yes? |
|
Welp, that's not good. @SakshayMahna what do you think? 🙃 |
|
Makes sense, that's why using the goal point instead of lookahead point corrects the orientation. |
|
I think I understand what is happening now.
auto goal_pose_it = std::find_if(
transformed_plan.poses.begin(), transformed_plan.poses.end(), [&](const auto & ps) {
return hypot(ps.pose.position.x, ps.pose.position.y) >= lookahead_dist;
});However, now we are using accumulated path distance, not the straight line L2 distance from the origin. That is why the |
|
Yup, that's my understanding too! Is this something you're open to contributing? I think this should be relatively straight forward as well - we could do something a bit more straight forward in linear interpolation? @vinnnyr I know this was something your company was interested in for RPP which is now shared. Can you provide some feedback if removing I would categorize this problem right now as pretty urgent since the current state of the code is broken. If someone wasn't going to make a change this week to fix this issue, I would consider reverting the original PR for enabling the path integral distance until such a time this is addressed (though not my preference!) |
|
Yes sure, this seems doable, probably over this weekend. Or we can retain the |
Great!
I suppose I'd rather a final solution, but this does help, so there's some value in a temporary stop-gap. If a solution would come early next week, we could wait instead. This isn't just problematic for the orientation but also selects the wrong point as well.
I'm not sure how we'd distinguish it for RPP vs Graceful, but that is an option. I don't think there'll be appreciable changes in the behavior so I think we could make it a global update. Also RPP now does integrated path distances too, no? We just don't see the breakage for RPP because it doesn't care about the orientation. |
|
Yes, RPP also uses integrated path distances now. And RPP does not use orientation so no problem for that. |
320d7d3 to
8ceba02
Compare
Signed-off-by: Sakshay Mahna <[email protected]>
Codecov Report✅ All modified and coverable lines are covered by tests.
... and 10 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
Teamwork makes the dream work; @mini-1235 does this resolve the issue for you? |
|
I'm pinging @vinnnyr to test since I think this impacts his work so as a sanity check of a deployed user |
|
Sorry I see this in my inbox but i’ve been out for the past few days.I expect to get back tomorrow so I can take a look then!On Oct 6, 2025, at 16:40, Steve Macenski ***@***.***> wrote:SteveMacenski left a comment (ros-navigation/navigation2#5530)
I'm pinging @vinnnyr to test since I think this impacts his work so as a sanity check of a deployed user
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Yes, I tested this with tb4, and it solves my issue |
Signed-off-by: Sakshay Mahna <[email protected]>
|
@SakshayMahna, your PR has failed to build. Please check CI outputs and resolve issues. |
|
Replacing the circular interpolation is OK from our perspective conceptually if it no longer makes sense. |
|
Making sure forward and reversing works with these changes (and the previous ones that this is fixing) is pretty key, I agree |
|
I checked with the earlier code, and briefly went through the Graceful Controller paper. I checked with the current code and the previous code (before the interpolation) it seems to be working fine. Is it failing in some case? Or anything that I am missing? |
|
I am trying feasible planners with graceful controller, here is my config: Before #5003, I can see both A and B when reversing 2025-10-09.02-45-37.mp4After #5003 and this PR, I can only see A 2025-10-09.02-49-19.mp4
If this is the case, I believe we can go ahead and merge this PR! |
|
Thanks @SakshayMahna for the follow up and iteration here! Nav2 only works because of great contributors like you and @mini-1235 :-) |
…ontroller (ros-navigation#5530) * Fix graceful controller lookahead bug Signed-off-by: Sakshay Mahna <[email protected]> * Shorten logic with goal_pose Signed-off-by: Sakshay Mahna <[email protected]> * Add Linear Interpolation Fix Signed-off-by: Sakshay Mahna <[email protected]> * Update const double and comments Signed-off-by: Sakshay Mahna <[email protected]> --------- Signed-off-by: Sakshay Mahna <[email protected]>
…ontroller (ros-navigation#5530) * Fix graceful controller lookahead bug Signed-off-by: Sakshay Mahna <[email protected]> * Shorten logic with goal_pose Signed-off-by: Sakshay Mahna <[email protected]> * Add Linear Interpolation Fix Signed-off-by: Sakshay Mahna <[email protected]> * Update const double and comments Signed-off-by: Sakshay Mahna <[email protected]> --------- Signed-off-by: Sakshay Mahna <[email protected]>
…ontroller (ros-navigation#5530) * Fix graceful controller lookahead bug Signed-off-by: Sakshay Mahna <[email protected]> * Shorten logic with goal_pose Signed-off-by: Sakshay Mahna <[email protected]> * Add Linear Interpolation Fix Signed-off-by: Sakshay Mahna <[email protected]> * Update const double and comments Signed-off-by: Sakshay Mahna <[email protected]> --------- Signed-off-by: Sakshay Mahna <[email protected]> Signed-off-by: Greg Anderson <[email protected]>
Squashed commit of the following: commit bf2e64c Author: Greg Anderson <[email protected]> Date: Tue Oct 21 14:41:42 2025 -0500 Add declaration for use_global_height parameter into add sources function. Signed-off-by: Greg Anderson <[email protected]> commit 8453632 Author: Greg Anderson <[email protected]> Date: Tue Oct 21 08:28:19 2025 -0500 Adjusted asserts in third test case for consistent results. Signed-off-by: Greg Anderson <[email protected]> commit 725f054 Author: Greg Anderson <[email protected]> Date: Mon Oct 20 21:04:51 2025 -0500 Add additional case for testing pointcloud with no height field. Signed-off-by: Greg Anderson <[email protected]> commit 2bb49aa Merge: b02713a cdccfe1 Author: Greg Anderson <[email protected]> Date: Mon Oct 20 18:01:24 2025 -0500 Merge branch 'main' into feat/CustomCollisionPointFields Signed-off-by: Greg Anderson <[email protected]> commit b02713a Author: Greg Anderson <[email protected]> Date: Mon Oct 20 17:53:36 2025 -0500 Cleaned up some un-needed parameter changes. commit 21eef62 Author: Greg Anderson <[email protected]> Date: Mon Oct 20 17:49:16 2025 -0500 Added test case for using global height parameter. commit cdccfe1 Author: Sushant Chavan <[email protected]> Date: Mon Oct 20 23:49:25 2025 +0200 Publish `is_active` status from LifecycleManager (ros-navigation#5627) * Publish `is_active` status from LifecycleManager Signed-off-by: Sushant Chavan <[email protected]> * Update nav2_lifecycle_manager/src/lifecycle_manager.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: Sushant Chavan <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Steve Macenski <[email protected]> commit b35a4b5 Author: Leander Stephen D'Souza <[email protected]> Date: Mon Oct 20 22:04:17 2025 +0100 Use the new declare_or_get_parameter API for nav2_controller. (ros-navigation#5624) * Migrate majority of parameter declarations to use the new parameter API. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Migrate controller_server.cpp to use declare_or_get_parameter API. Signed-off-by: Leander Stephen D'Souza <[email protected]> --------- Signed-off-by: Leander Stephen D'Souza <[email protected]> commit 62ebc54 Author: Steve Macenski <[email protected]> Date: Thu Oct 16 07:59:10 2025 -0700 Revert "[RPP] Prevent collision check premature termination (ros-navigation#5598)" (ros-navigation#5620) This reverts commit 6bc74e5. commit 01580bd Author: mini-1235 <[email protected]> Date: Thu Oct 16 02:02:29 2025 +0700 Redesign graceful controller dynamic parameters patterns (ros-navigation#5600) Signed-off-by: mini-1235 <[email protected]> commit b91eda5 Author: Abhishekh Reddy <[email protected]> Date: Tue Oct 14 14:47:14 2025 -0400 Check if the tolerance circle is feasible when validating goals for path planning. (ros-navigation#5593) * Implemented goal tolerance validity check Signed-off-by: Abhishekh Reddy <[email protected]> * Fixed description for getCoords function Signed-off-by: Abhishekh Reddy <[email protected]> * Added a test with lower tolerance for zone validity checking Signed-off-by: Abhishekh Reddy <[email protected]> * Updated tolerance check function implementation Signed-off-by: Abhishekh Reddy <[email protected]> * Updated isZoneValid function Signed-off-by: Abhishekh Reddy <[email protected]> * Updated isZoneValid function Signed-off-by: Abhishekh Reddy <[email protected]> --------- Signed-off-by: Abhishekh Reddy <[email protected]> commit 48e7e06 Author: Jay Herpin <[email protected]> Date: Tue Oct 14 12:45:59 2025 -0500 Fixed crash due to incorrect string construction (ros-navigation#5606) Signed-off-by: Jay Herpin <[email protected]> commit 7d37466 Author: Leander Stephen D'Souza <[email protected]> Date: Tue Oct 14 15:50:30 2025 +0100 Use the new parameter API in nav2_constrained_smoother. (ros-navigation#5608) Signed-off-by: Leander Stephen D'Souza <[email protected]> commit 3935038 Author: Steve Macenski <[email protected]> Date: Tue Oct 14 07:48:32 2025 -0700 Fixing CI Cache Misalignment causing builds to fail (ros-navigation#5607) * Aligning caches Signed-off-by: SteveMacenski <[email protected]> * Trigger linting (hopefully) Signed-off-by: SteveMacenski <[email protected]> * Fix action-ros-lint version format in lint.yml Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: SteveMacenski <[email protected]> Signed-off-by: Steve Macenski <[email protected]> commit 568174c Author: Leander Stephen D'Souza <[email protected]> Date: Tue Oct 14 01:41:25 2025 +0100 Update new_declare_or_get_parameter API for collision_monitor and map_server (ros-navigation#5588) * Use the new_declare_or_get_parameter API for nav2_collision_monitor. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Removed redundant set_parameter calls when preceeded by declare_parameter. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Use declare_or_get_parameter without a default value. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Simplified definitions that required to determine parameter type from template. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Removed self-definition of node_utils.hpp. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Address PR feedback: Remove unnecessary linebreaks and improve param docstring. Signed-off-by: Leander Stephen D'Souza <[email protected]> --------- Signed-off-by: Leander Stephen D'Souza <[email protected]> commit 6bc74e5 Author: Érico Meger <[email protected]> Date: Mon Oct 13 19:17:23 2025 -0300 [RPP] Prevent collision check premature termination (ros-navigation#5598) * prevent collision check premature termination Signed-off-by: EricoMeger <[email protected]> * improve comment wording Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Érico Meger <[email protected]> * fix linting error Signed-off-by: EricoMeger <[email protected]> --------- Signed-off-by: EricoMeger <[email protected]> Signed-off-by: Érico Meger <[email protected]> Co-authored-by: Steve Macenski <[email protected]> commit 4d28c13 Author: silanus <[email protected]> Date: Fri Oct 10 20:42:45 2025 +0300 Path distance feature (ros-navigation#5387) * geometry utils Signed-off-by: silanus23 <[email protected]> * fixed geometry utils adding 2d Signed-off-by: silanus23 <[email protected]> * created path_utils Signed-off-by: silanus23 <[email protected]> * added tests Signed-off-by: silanus23 <[email protected]> * minor changes in tests Signed-off-by: silanus23 <[email protected]> * lint issue Signed-off-by: silanus23 <[email protected]> * fixed reviews Signed-off-by: silanus23 <[email protected]> * doxygen fix Signed-off-by: silanus23 <[email protected]> * Last fixes. Signed-off-by: silanus23 <[email protected]> * Last fixes cpp. Signed-off-by: silanus23 <[email protected]> * Update nav2_util/include/nav2_util/path_utils.hpp Co-authored-by: Copilot <[email protected]> Signed-off-by: silanus <[email protected]> Signed-off-by: silanus23 <[email protected]> * Update nav2_util/include/nav2_util/path_utils.hpp Co-authored-by: Copilot <[email protected]> Signed-off-by: silanus <[email protected]> Signed-off-by: silanus23 <[email protected]> * Update nav2_util/test/test_path_utils.cpp Co-authored-by: Copilot <[email protected]> Signed-off-by: silanus <[email protected]> Signed-off-by: silanus23 <[email protected]> * Frame check fix Signed-off-by: silanus23 <[email protected]> * msg Signed-off-by: silanus23 <[email protected]> * controller server publisher Signed-off-by: silanus23 <[email protected]> * controller server publisher fix Signed-off-by: silanus23 <[email protected]> * cross_product Signed-off-by: silanus23 <[email protected]> * handled last_fixes Signed-off-by: silanus23 <[email protected]> * tracking error added to follow path side from side added to tracking error Signed-off-by: silanus23 <[email protected]> * arranged msgs Signed-off-by: silanus23 <[email protected]> * linting of msgs Signed-off-by: silanus23 <[email protected]> * last cpplint Signed-off-by: silanus23 <[email protected]> * frame check for distance_to_goal Signed-off-by: silanus23 <[email protected]> * fixes for follow_path Signed-off-by: silanus23 <[email protected]> * controller linting Signed-off-by: silanus23 <[email protected]> * changing tracking_error to tracking_error_feedback Signed-off-by: silanus23 <[email protected]> * adding remaining_path_length in tracking_error_feedback Signed-off-by: silanus23 <[email protected]> * Last fix Signed-off-by: silanus23 <[email protected]> * start_index_ Signed-off-by: silanus23 <[email protected]> * Name changes and optimizations in controller_server and nav2_util Signed-off-by: silanus23 <[email protected]> * Changing name to tracking_feedback Signed-off-by: silanus23 <[email protected]> * Documentation changes Signed-off-by: silanus23 <[email protected]> * Last lint Signed-off-by: silanus23 <[email protected]> * Update nav2_util/include/nav2_util/path_utils.hpp Co-authored-by: Copilot <[email protected]> Signed-off-by: silanus <[email protected]> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <[email protected]> * Last updates Signed-off-by: silanus23 <[email protected]> * update example_follow_path.py Signed-off-by: silanus23 <[email protected]> * update example_follow_path.py lint Signed-off-by: silanus23 <[email protected]> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <[email protected]> * Update nav2_util/src/path_utils.cpp Signed-off-by: Steve Macenski <[email protected]> * ordering problem Signed-off-by: silanus23 <[email protected]> * added deactivate to tracking_feedback_pub_ Signed-off-by: silanus23 <[email protected]> * typo Signed-off-by: silanus23 <[email protected]> * end_pose transform Signed-off-by: silanus23 <[email protected]> * creating the member variable end_pose_global_ and deleting nav_2d_msgs Signed-off-by: silanus23 <[email protected]> * deleting unnecessary transform Signed-off-by: silanus23 <[email protected]> * typo in controller Signed-off-by: silanus23 <[email protected]> * readding remaining path Signed-off-by: silanus23 <[email protected]> * placement of transformation Signed-off-by: silanus23 <[email protected]> * unnecessary comments Signed-off-by: silanus23 <[email protected]> * tests added Signed-off-by: silanus23 <[email protected]> * Increased test coverage Signed-off-by: silanus23 <[email protected]> * Every part of the result is covered Signed-off-by: silanus23 <[email protected]> * Increasing out of bounds index Signed-off-by: silanus23 <[email protected]> * lint Signed-off-by: silanus23 <[email protected]> * add missing line to cmake Signed-off-by: silanus23 <[email protected]> * unnecessary test Signed-off-by: silanus23 <[email protected]> * unexptected styling and last functional change Signed-off-by: silanus23 <[email protected]> * simplifying the tranformation of end_pose Signed-off-by: silanus23 <[email protected]> * doxygen fix Signed-off-by: silanus23 <[email protected]> * doxygen fix Signed-off-by: silanus23 <[email protected]> * doxygen fix Signed-off-by: silanus23 <[email protected]> * doxygen fix Signed-off-by: silanus23 <[email protected]> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <[email protected]> --------- Signed-off-by: silanus23 <[email protected]> Signed-off-by: silanus <[email protected]> Signed-off-by: Steve Macenski <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Steve Macenski <[email protected]> commit 04a3e22 Author: Steve Macenski <[email protected]> Date: Fri Oct 10 10:09:08 2025 -0700 Improve error message for missing robot footprint (ros-navigation#5597) Updated error message for footprint collision checking. Signed-off-by: Steve Macenski <[email protected]> commit ce6b439 Author: Alberto Tudela <[email protected]> Date: Fri Oct 10 00:12:57 2025 +0200 Following (ros-navigation#5565) * Following server Signed-off-by: Alberto Tudela <[email protected]> * feat: migrate to nav2_msgs for FollowObject action and remove opennav_following_msgs Signed-off-by: Alberto Tudela <[email protected]> * Fix mypy test Signed-off-by: Alberto Tudela <[email protected]> * Move FollowObject and FollowObjectCancel action nodes from bt package Signed-off-by: Alberto Tudela <[email protected]> * Update package and circle Signed-off-by: Alberto Tudela <[email protected]> * feat: add FollowObject action support in robot navigator and fix mypy Signed-off-by: Alberto Tudela <[email protected]> * Fix mypy issues Signed-off-by: Alberto Tudela <[email protected]> * feat: add follow_object action to bt_navigator parameters Signed-off-by: Alberto Tudela <[email protected]> * Update key and package Signed-off-by: Alberto Tudela <[email protected]> * Fix precommit Signed-off-by: Alberto Tudela <[email protected]> * Fix mypy? Signed-off-by: Alberto Tudela <[email protected]> * Fix mypy, round two Signed-off-by: Alberto Tudela <[email protected]> --------- Signed-off-by: Alberto Tudela <[email protected]> commit ed0d59f Author: Sakshay Mahna <[email protected]> Date: Thu Oct 9 03:39:30 2025 +0530 [Graceful Controller] Fix Incorrect Motion Target Heading output by controller (ros-navigation#5530) * Fix graceful controller lookahead bug Signed-off-by: Sakshay Mahna <[email protected]> * Shorten logic with goal_pose Signed-off-by: Sakshay Mahna <[email protected]> * Add Linear Interpolation Fix Signed-off-by: Sakshay Mahna <[email protected]> * Update const double and comments Signed-off-by: Sakshay Mahna <[email protected]> --------- Signed-off-by: Sakshay Mahna <[email protected]> commit 14660b4 Author: Vince Reda <[email protected]> Date: Wed Oct 8 17:14:57 2025 +0000 Fail PersistentSequence if input port is not set (ros-navigation#5589) * Fail if getInput fails Signed-off-by: redvinaa <[email protected]> * Add test with no input Signed-off-by: redvinaa <[email protected]> * Update error string Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Vince Reda <[email protected]> * Fix quotation marks Signed-off-by: redvinaa <[email protected]> --------- Signed-off-by: redvinaa <[email protected]> Signed-off-by: Vince Reda <[email protected]> Co-authored-by: Steve Macenski <[email protected]> commit aa2cdc5 Author: Greg Anderson <[email protected]> Date: Wed Oct 8 10:43:14 2025 -0500 Apply suggestions from code review Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Greg Anderson <[email protected]> commit 5636fc1 Author: Greg Anderson <[email protected]> Date: Tue Oct 7 15:37:13 2025 -0500 Implementing Steve's suggestion for performance and code simplicity. Signed-off-by: Greg Anderson <[email protected]> commit b2fbb06 Author: Greg Anderson <[email protected]> Date: Tue Oct 7 12:59:46 2025 -0500 Implemented additional changes for iterator feedback in PR. Signed-off-by: Greg Anderson <[email protected]> commit 1cdbc05 Author: Greg Anderson <[email protected]> Date: Tue Oct 7 12:12:31 2025 -0500 Add return false for error state. Signed-off-by: Greg Anderson <[email protected]> commit 869b5a9 Author: Greg Anderson <[email protected]> Date: Tue Oct 7 12:10:03 2025 -0500 Address PR formatting feedback. Remove run time error and replaced with log error. Signed-off-by: Greg Anderson <[email protected]> commit 11f04c7 Author: Greg Anderson <[email protected]> Date: Tue Oct 7 10:55:18 2025 -0500 Added some pointcloud field checking based on run time error found when running tests. Signed-off-by: Greg Anderson <[email protected]> commit ca49b05 Author: Greg Anderson <[email protected]> Date: Tue Oct 7 08:22:05 2025 -0500 Ran ament lint/style tools, cleaned up. Signed-off-by: Greg Anderson <[email protected]> commit 7e6ccc9 Author: Greg Anderson <[email protected]> Date: Tue Oct 7 08:08:01 2025 -0500 Add use_global_height_ parameter to allow configuration of height checking by end users. Signed-off-by: Greg Anderson <[email protected]> commit 0c20df2 Author: DylanDeCoeyer-Quimesis <[email protected]> Date: Mon Oct 6 22:29:17 2025 +0200 nav2_smac_planner: make A* return closest path found in case of timeout (ros-navigation#5578) Until now, a path computation timeout would systematically lead to a nav2_core::PlannerTimedOut error, even though a path was found within the tolerance. This commit makes the A* return the best path found if it's within the tolerance. Signed-off-by: Dylan De Coeyer <[email protected]> commit f78bac5 Author: Leander Stephen D'Souza <[email protected]> Date: Mon Oct 6 20:16:30 2025 +0100 Use the new declare_or_get_parameter API for nav2_behaviors. (ros-navigation#5583) Signed-off-by: Leander Stephen D'Souza <[email protected]> commit 269d480 Author: Leander Stephen D'Souza <[email protected]> Date: Mon Oct 6 20:13:52 2025 +0100 Improve type annotations for ament_mypy (ros-navigation#5575) * Enable tools directory to be mypy compliant. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Enable nav2_system_tests to be mypy compliant. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Enable nav2_docking to be mypy compliant. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Enable nav2_simple_commander to be mypy compliant. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Enable nav2_loopback_sim to be mypy compliant. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Removed unused ignores for packages for mypy compliance. Signed-off-by: Leander Stephen D'Souza <[email protected]> * Added nav2_msgs path fixes to mypy compliance. Signed-off-by: Leander Stephen D'Souza <[email protected]> --------- Signed-off-by: Leander Stephen D'Souza <[email protected]> commit 5860a27 Author: Greg Anderson <[email protected]> Date: Mon Oct 6 12:41:04 2025 -0500 Create iterator for custom height field in pointcloud. Signed-off-by: Greg Anderson <[email protected]> Signed-off-by: Greg Anderson <[email protected]>
…ontroller (ros-navigation#5530) * Fix graceful controller lookahead bug Signed-off-by: Sakshay Mahna <[email protected]> * Shorten logic with goal_pose Signed-off-by: Sakshay Mahna <[email protected]> * Add Linear Interpolation Fix Signed-off-by: Sakshay Mahna <[email protected]> * Update const double and comments Signed-off-by: Sakshay Mahna <[email protected]> --------- Signed-off-by: Sakshay Mahna <[email protected]> Signed-off-by: Greg Anderson <[email protected]>







Basic Info
Description of contribution in a few bullet points
Due to yaw value discontinuity, graceful controller was giving incorrect motion target heading. This PR fixes the discontinuity, by allowing continuous values of yaw in the direction of robot.
Description of documentation updates required from your changes
No
Description of how this change was tested
Tested multiple times on simulation.
Future work that may be required in bullet points
No
For Maintainers:
backport-*.