Centralize path handler logic in controller server#5446
Centralize path handler logic in controller server#5446SteveMacenski merged 113 commits intoros-navigation:mainfrom
Conversation
|
@SteveMacenski before I go too far, can you take a quick look to make sure I am on the right track? I have only pushed the changes in nav2_controller, graceful_controller and RPP |
|
@mini-1235, your PR has failed to build. Please check CI outputs and resolve issues. |
|
I have spent some time reading into MPPI's path handler, I can see there are some improvements like #3659, #3443. Also, there is a related PR for RPP in #4763, maybe we need to check if these changes are applicable to all controllers? If yes, I guess it will be easier to move them in Controller Server I also noticed that the DWB/MPPI need the path from planner to find its goal, should we pass this plan via the setplan api or a new argument in computevelocitycommands? |
|
Hi, sorry to jump in here but just sharing my two cents: |
I think path_handler implementation from MPPI is more comprehensive as it also considers path up to inversion point. This would also be helpful when user uses Hybrid A* with reeds-shepp as the global planner. |
Thanks for sharing, I will try to implement this and compare with my current method |
|
@mini-1235, your PR has failed to build. Please check CI outputs and resolve issues. |
I agree with this general sentiment. I think it would be nice to review all the path handlers and make sure the key features of all are being respected in the server's implementation. There's a number of CI failures that should also be looked at, but I'm sure you know :-) |
Yes, I will continue this PR once #5496 and other future PRs targeting path handler are done |
145b2d9 to
ea45821
Compare
|
@mini-1235, your PR has failed to build. Please check CI outputs and resolve issues. |
|
@SteveMacenski I think you can start reviewing this when you have time, in the following days I plan to:
Things to debate:
I think this becomes problematic when enforce_path_inversion is set to true. In that case, the local goal ends up being the cusping point, and the robot may stop there once it satisfies the XY and yaw tolerances. Because of this, I believe we still need the global goal for the goal checker. But as @SteveMacenski suggested, we could add this directly into the simple goal checker, so by default the simple goal checker is checking both the global goal and local path length. Do you agree with this approach? @mamariomiamo
Previously, the transform tolerance in the controller server was obtained from
Before merging this, I also need to:
|
|
@mini-1235, your PR has failed to build. Please check CI outputs and resolve issues. |
|
OK will do! This is admittedly alot so this next round is going to be more high level.
Ah ok. That makes sense for the goal checker, though probably not the other elements right? When enforcing inversions is off, its the same either way since we just prune to the prune distance / costmap bounds. When is it enabled, then we prune to that which we want from the control algorithm's perspective, but not the goal checker.
Why not have it still acquire it from costmap2D, just stored and used at the controller server level? I suppose I prefer less parameters to more, but I'm OK either way.
Do both - first after the integrated distance, as long as that distance is within the costmap bounds. |
Yes, when it is on, the distance to the local goal can become very small. That's why I think this local goal is not suitable to use in the goal checker
For the controller plugins as well?
Not sure if I understand this, can you elaborate? |
Isn't that in effect what is done today?
Basically combine the two: navigation2/nav2_controller/src/path_handler.cpp Lines 134 to 146 in 3404f3a |
|
A good suggestion I received today: It would be great to make the path handler itself a plugin so that other users can replace this implementation if they see fit. A nice side effect is it makes us have to think a bit more about the API interfaces for it to make sure its generally good for a broad range of purposes and include all the information for the APIs other implementations may want that we have access to. Another would be possibly changing the pruning distance to be proportional to time instead, to prune the distance set out by that time by the maximum velocity. That way it wasn't something that needed to be tuned for changing velocity limits. Finally, maybe it would be good to provide feedback about the current idx of the path we're on to use in the BT Navigator for computing ETA, path length remaining, and so forth. That way we handle the issue of path looping using the wrong index globally |
|
I will think about it and reply tomorrow |
| xy_goal_tolerance: 0.25 | ||
| yaw_goal_tolerance: 0.25 | ||
| path_length_tolerance: 1.0 | ||
| PathHandler: |
There was a problem hiding this comment.
@mini-1235 isn't max_robot_pose_search_dist missing?
There was a problem hiding this comment.
I don't think we have this in the current config either, and in most cases I think costmap_size / 2 works well, so this isn't really something users need to tune. However, if you think it's necessary to add it here, I am happy to add it here and the docs PR
navigation2/nav2_bringup/params/nav2_params.yaml
Lines 118 to 142 in 4d9314d
There was a problem hiding this comment.
No strong opinion, I just thought that we expose in the yaml file everything that is a configurable parameter. But if the philosophy is rather to expose parameters that are likely to be tuned then I also understand that
There was a problem hiding this comment.
I'd leave as-is. Half the costmap size is good for most users and if we set it here, then that would be out of date if a user changes the costmap size. I think its actually a better out of the box behavior by not including it for that reason. One less thing to tune.
|
Amazing work! |
|
@mini-1235 I found a bug: Try setting a param e.g. Removing that lock fixes it but I know that has its drawbacks - I leave it to you to find best of both worlds |
Okay now I can say that aside from the deadlock issue, tests pass :) |
Thanks for reporting @tonynajjar, I didn't notice that the original implementation was using |
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
|
@mini-1235 I just tried your latest commit quickly and I don't think they fix the deadlocks, did it work for you? |
Yes, FollowPath.vx_max should not be locked because it satisfies the condition here I also tried setting |
|
One subtle issue I see is that the cli reports the parameter update as successful, even though it is actually rejected in our code. I am not sure if it makes sense to move the |
Well, I don't know what changed but now it also works for me 😄 (typical Friday night testing) Any estimate on when this can be merged? We would then proceed to get #5746 in |
@SteveMacenski any comments on my last commit? Could you also retrigger the CI for me? I suspect this is just flaky tests and not related to the PR, since all tests pass before I pulled in the main branch. But if it fails again, I will take a look |
Maybe you can just push a dummy commit to re-trigger? |
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
|
:( test is failing, I will check again tonight edit: I can sometimes reproduce the failing test locally, this seems to be related to #3098 problem2, so I update the prune distance to 1.0 |
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
|
Huge thanks to everybody involved in this PR! 🎉 |
* Add path goal checker plugin Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Use local plan's last pose as end pose Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move path handler from plugin to controller level Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add exact path following in path handler and parameter handler Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move more parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Rotation shim Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * RPP Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Graceful Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * MPPI Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Remove goal from MPPI Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update setPlan api Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix naming and doxygen Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Remove path complete goal checker Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert "Use local plan's last pose as end pose" This reverts commit 145b2d9. Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add prune distance Signed-off-by: Maurice <mauricepurnawan@gmail.com> Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add dynamic parameter Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert unrelated changes Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * DWB Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert "Remove goal from MPPI" This reverts commit 5bc19f2da2649cd500ef11c374103f7de5a8116f. Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * New idea Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Rename Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Use new api Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Make path handler a controller server's plugin Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix dynamic parameters handling Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add mppi path handler Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add path length checking in position goal checker Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Remove controller frequency in dynamic parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix as suggested Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add api, fix dynamic parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add mppi logic in simple path handler Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Simplify test logic Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Minor fix Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add output port in FollowPath Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Always return local plan in odom frame Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Minor fix Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert tracking feedback output port Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Create post callback first Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Minor fix Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add path length tolerance in dwb critic Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Format Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Activate dynamic parameters callback in Avtivate stage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests for dynamic parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Skip Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix as suggested Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update CI key for codecov Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Increase code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Increase code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move from controller_utils to path_utils Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update params and rviz Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update costmap update timeout Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Apply Tony's suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Feedback Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Rename Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update rotation shim, path handler api, and constraint check Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Mark transformed global plan as const to prevent mutating it Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update nav2_regulated_pure_pursuit_controller/src/regulated_pure_pursuit_controller.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_util/include/nav2_util/path_utils.hpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Apply suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move to cpp Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update nav2_util/src/path_utils.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Apply suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix early termination bug Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Apply suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Cleanup Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Check before logging Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Use try lock in controller server Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Retrigger CI Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Retrigger CI due to timeout Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update prune distance in keepout filter test Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> --------- Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Maurice <mauricepurnawan@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Christopher Thompson <cthompson@metalsharkboats.com>
* Add path goal checker plugin Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Use local plan's last pose as end pose Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move path handler from plugin to controller level Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add exact path following in path handler and parameter handler Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move more parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Rotation shim Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * RPP Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Graceful Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * MPPI Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Remove goal from MPPI Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update setPlan api Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix naming and doxygen Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Remove path complete goal checker Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert "Use local plan's last pose as end pose" This reverts commit 145b2d9. Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add prune distance Signed-off-by: Maurice <mauricepurnawan@gmail.com> Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add dynamic parameter Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert unrelated changes Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * DWB Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert "Remove goal from MPPI" This reverts commit 5bc19f2da2649cd500ef11c374103f7de5a8116f. Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * New idea Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Rename Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Use new api Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Make path handler a controller server's plugin Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix dynamic parameters handling Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add mppi path handler Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add path length checking in position goal checker Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Remove controller frequency in dynamic parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix as suggested Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add api, fix dynamic parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add mppi logic in simple path handler Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Simplify test logic Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Minor fix Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add output port in FollowPath Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Always return local plan in odom frame Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Minor fix Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert tracking feedback output port Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Create post callback first Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Minor fix Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add path length tolerance in dwb critic Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Format Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Activate dynamic parameters callback in Avtivate stage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests for dynamic parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Skip Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix as suggested Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update CI key for codecov Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Increase code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Increase code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move from controller_utils to path_utils Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update params and rviz Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update costmap update timeout Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Apply Tony's suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Feedback Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Rename Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update rotation shim, path handler api, and constraint check Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Mark transformed global plan as const to prevent mutating it Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update nav2_regulated_pure_pursuit_controller/src/regulated_pure_pursuit_controller.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_util/include/nav2_util/path_utils.hpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Apply suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move to cpp Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update nav2_util/src/path_utils.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Apply suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix early termination bug Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Apply suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Cleanup Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Check before logging Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Use try lock in controller server Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Retrigger CI Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Retrigger CI due to timeout Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update prune distance in keepout filter test Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> --------- Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Maurice <mauricepurnawan@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
* Add path goal checker plugin Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Use local plan's last pose as end pose Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move path handler from plugin to controller level Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add exact path following in path handler and parameter handler Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move more parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Rotation shim Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * RPP Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Graceful Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * MPPI Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Remove goal from MPPI Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update setPlan api Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix naming and doxygen Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Remove path complete goal checker Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert "Use local plan's last pose as end pose" This reverts commit 145b2d9. Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add prune distance Signed-off-by: Maurice <mauricepurnawan@gmail.com> Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add dynamic parameter Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert unrelated changes Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * DWB Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert "Remove goal from MPPI" This reverts commit 5bc19f2da2649cd500ef11c374103f7de5a8116f. Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * New idea Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Rename Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Use new api Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Make path handler a controller server's plugin Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix dynamic parameters handling Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add mppi path handler Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add path length checking in position goal checker Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Remove controller frequency in dynamic parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix as suggested Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add api, fix dynamic parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add mppi logic in simple path handler Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Simplify test logic Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Minor fix Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add output port in FollowPath Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Always return local plan in odom frame Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Minor fix Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert tracking feedback output port Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Create post callback first Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Minor fix Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add path length tolerance in dwb critic Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Format Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Activate dynamic parameters callback in Avtivate stage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests for dynamic parameters Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Skip Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix as suggested Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update CI key for codecov Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Increase code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Linting Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Increase code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move from controller_utils to path_utils Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update params and rviz Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update costmap update timeout Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Apply Tony's suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Feedback Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Rename Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update rotation shim, path handler api, and constraint check Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Mark transformed global plan as const to prevent mutating it Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update nav2_regulated_pure_pursuit_controller/src/regulated_pure_pursuit_controller.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_util/include/nav2_util/path_utils.hpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Apply suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Move to cpp Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Revert Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update nav2_util/src/path_utils.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> * Apply suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix early termination bug Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Fix tests Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Add code coverage Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Apply suggestions Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Cleanup Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Check before logging Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Lint Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Use try lock in controller server Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Retrigger CI Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Retrigger CI due to timeout Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> * Update prune distance in keepout filter test Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> --------- Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Maurice <mauricepurnawan@gmail.com> Signed-off-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
This PR continues the work in #4789
Fixes #4757
Fixes #4304