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 <[email protected]>
|
@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 <[email protected]>
Signed-off-by: mini-1235 <[email protected]>
|
:( 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 <[email protected]>
|
Huge thanks to everybody involved in this PR! 🎉 |
* Add path goal checker plugin Signed-off-by: mini-1235 <[email protected]> * Use local plan's last pose as end pose Signed-off-by: mini-1235 <[email protected]> * Move path handler from plugin to controller level Signed-off-by: mini-1235 <[email protected]> * Add exact path following in path handler and parameter handler Signed-off-by: mini-1235 <[email protected]> * Move more parameters Signed-off-by: mini-1235 <[email protected]> * Rotation shim Signed-off-by: mini-1235 <[email protected]> * RPP Signed-off-by: mini-1235 <[email protected]> * Graceful Signed-off-by: mini-1235 <[email protected]> * MPPI Signed-off-by: mini-1235 <[email protected]> * Remove goal from MPPI Signed-off-by: mini-1235 <[email protected]> * Update setPlan api Signed-off-by: mini-1235 <[email protected]> * Fix naming and doxygen Signed-off-by: mini-1235 <[email protected]> * Remove path complete goal checker Signed-off-by: mini-1235 <[email protected]> * Revert "Use local plan's last pose as end pose" This reverts commit 145b2d9. Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Add prune distance Signed-off-by: Maurice <[email protected]> Signed-off-by: mini-1235 <[email protected]> * Add dynamic parameter Signed-off-by: mini-1235 <[email protected]> * Revert unrelated changes Signed-off-by: mini-1235 <[email protected]> * DWB Signed-off-by: mini-1235 <[email protected]> * Revert "Remove goal from MPPI" This reverts commit 5bc19f2da2649cd500ef11c374103f7de5a8116f. Signed-off-by: mini-1235 <[email protected]> * New idea Signed-off-by: mini-1235 <[email protected]> * Rename Signed-off-by: mini-1235 <[email protected]> * Use new api Signed-off-by: mini-1235 <[email protected]> * Make path handler a controller server's plugin Signed-off-by: mini-1235 <[email protected]> * Fix dynamic parameters handling Signed-off-by: mini-1235 <[email protected]> * Add mppi path handler Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Add path length checking in position goal checker Signed-off-by: mini-1235 <[email protected]> * Remove controller frequency in dynamic parameters Signed-off-by: mini-1235 <[email protected]> * Fix as suggested Signed-off-by: mini-1235 <[email protected]> * Add api, fix dynamic parameters Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Add mppi logic in simple path handler Signed-off-by: mini-1235 <[email protected]> * Simplify test logic Signed-off-by: mini-1235 <[email protected]> * Minor fix Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Add output port in FollowPath Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Always return local plan in odom frame Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Minor fix Signed-off-by: mini-1235 <[email protected]> * Revert tracking feedback output port Signed-off-by: mini-1235 <[email protected]> * Create post callback first Signed-off-by: mini-1235 <[email protected]> * Minor fix Signed-off-by: mini-1235 <[email protected]> * Add path length tolerance in dwb critic Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Format Signed-off-by: mini-1235 <[email protected]> * Activate dynamic parameters callback in Avtivate stage Signed-off-by: mini-1235 <[email protected]> * Fix tests for dynamic parameters Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Skip Signed-off-by: mini-1235 <[email protected]> * Fix as suggested Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Update CI key for codecov Signed-off-by: mini-1235 <[email protected]> * Increase code coverage Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Increase code coverage Signed-off-by: mini-1235 <[email protected]> * Move from controller_utils to path_utils Signed-off-by: mini-1235 <[email protected]> * Update params and rviz Signed-off-by: mini-1235 <[email protected]> * Update costmap update timeout Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Apply Tony's suggestions Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Feedback Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Rename Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Update rotation shim, path handler api, and constraint check Signed-off-by: mini-1235 <[email protected]> * Mark transformed global plan as const to prevent mutating it Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Update nav2_regulated_pure_pursuit_controller/src/regulated_pure_pursuit_controller.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_util/include/nav2_util/path_utils.hpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Apply suggestions Signed-off-by: mini-1235 <[email protected]> * Move to cpp Signed-off-by: mini-1235 <[email protected]> * Revert Signed-off-by: mini-1235 <[email protected]> * Revert Signed-off-by: mini-1235 <[email protected]> * Update nav2_util/src/path_utils.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Apply suggestions Signed-off-by: mini-1235 <[email protected]> * Fix early termination bug Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Add code coverage Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Add code coverage Signed-off-by: mini-1235 <[email protected]> * Apply suggestions Signed-off-by: mini-1235 <[email protected]> * Cleanup Signed-off-by: mini-1235 <[email protected]> * Check before logging Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Use try lock in controller server Signed-off-by: mini-1235 <[email protected]> * Retrigger CI Signed-off-by: mini-1235 <[email protected]> * Retrigger CI due to timeout Signed-off-by: mini-1235 <[email protected]> * Update prune distance in keepout filter test Signed-off-by: mini-1235 <[email protected]> --------- Signed-off-by: mini-1235 <[email protected]> Signed-off-by: Maurice <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Christopher Thompson <[email protected]>
* Add path goal checker plugin Signed-off-by: mini-1235 <[email protected]> * Use local plan's last pose as end pose Signed-off-by: mini-1235 <[email protected]> * Move path handler from plugin to controller level Signed-off-by: mini-1235 <[email protected]> * Add exact path following in path handler and parameter handler Signed-off-by: mini-1235 <[email protected]> * Move more parameters Signed-off-by: mini-1235 <[email protected]> * Rotation shim Signed-off-by: mini-1235 <[email protected]> * RPP Signed-off-by: mini-1235 <[email protected]> * Graceful Signed-off-by: mini-1235 <[email protected]> * MPPI Signed-off-by: mini-1235 <[email protected]> * Remove goal from MPPI Signed-off-by: mini-1235 <[email protected]> * Update setPlan api Signed-off-by: mini-1235 <[email protected]> * Fix naming and doxygen Signed-off-by: mini-1235 <[email protected]> * Remove path complete goal checker Signed-off-by: mini-1235 <[email protected]> * Revert "Use local plan's last pose as end pose" This reverts commit 145b2d9. Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Add prune distance Signed-off-by: Maurice <[email protected]> Signed-off-by: mini-1235 <[email protected]> * Add dynamic parameter Signed-off-by: mini-1235 <[email protected]> * Revert unrelated changes Signed-off-by: mini-1235 <[email protected]> * DWB Signed-off-by: mini-1235 <[email protected]> * Revert "Remove goal from MPPI" This reverts commit 5bc19f2da2649cd500ef11c374103f7de5a8116f. Signed-off-by: mini-1235 <[email protected]> * New idea Signed-off-by: mini-1235 <[email protected]> * Rename Signed-off-by: mini-1235 <[email protected]> * Use new api Signed-off-by: mini-1235 <[email protected]> * Make path handler a controller server's plugin Signed-off-by: mini-1235 <[email protected]> * Fix dynamic parameters handling Signed-off-by: mini-1235 <[email protected]> * Add mppi path handler Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Add path length checking in position goal checker Signed-off-by: mini-1235 <[email protected]> * Remove controller frequency in dynamic parameters Signed-off-by: mini-1235 <[email protected]> * Fix as suggested Signed-off-by: mini-1235 <[email protected]> * Add api, fix dynamic parameters Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Add mppi logic in simple path handler Signed-off-by: mini-1235 <[email protected]> * Simplify test logic Signed-off-by: mini-1235 <[email protected]> * Minor fix Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Add output port in FollowPath Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Always return local plan in odom frame Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Minor fix Signed-off-by: mini-1235 <[email protected]> * Revert tracking feedback output port Signed-off-by: mini-1235 <[email protected]> * Create post callback first Signed-off-by: mini-1235 <[email protected]> * Minor fix Signed-off-by: mini-1235 <[email protected]> * Add path length tolerance in dwb critic Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Format Signed-off-by: mini-1235 <[email protected]> * Activate dynamic parameters callback in Avtivate stage Signed-off-by: mini-1235 <[email protected]> * Fix tests for dynamic parameters Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Skip Signed-off-by: mini-1235 <[email protected]> * Fix as suggested Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Update CI key for codecov Signed-off-by: mini-1235 <[email protected]> * Increase code coverage Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Increase code coverage Signed-off-by: mini-1235 <[email protected]> * Move from controller_utils to path_utils Signed-off-by: mini-1235 <[email protected]> * Update params and rviz Signed-off-by: mini-1235 <[email protected]> * Update costmap update timeout Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Apply Tony's suggestions Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Feedback Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Rename Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Update rotation shim, path handler api, and constraint check Signed-off-by: mini-1235 <[email protected]> * Mark transformed global plan as const to prevent mutating it Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Update nav2_regulated_pure_pursuit_controller/src/regulated_pure_pursuit_controller.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_util/include/nav2_util/path_utils.hpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Apply suggestions Signed-off-by: mini-1235 <[email protected]> * Move to cpp Signed-off-by: mini-1235 <[email protected]> * Revert Signed-off-by: mini-1235 <[email protected]> * Revert Signed-off-by: mini-1235 <[email protected]> * Update nav2_util/src/path_utils.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Apply suggestions Signed-off-by: mini-1235 <[email protected]> * Fix early termination bug Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Add code coverage Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Add code coverage Signed-off-by: mini-1235 <[email protected]> * Apply suggestions Signed-off-by: mini-1235 <[email protected]> * Cleanup Signed-off-by: mini-1235 <[email protected]> * Check before logging Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Use try lock in controller server Signed-off-by: mini-1235 <[email protected]> * Retrigger CI Signed-off-by: mini-1235 <[email protected]> * Retrigger CI due to timeout Signed-off-by: mini-1235 <[email protected]> * Update prune distance in keepout filter test Signed-off-by: mini-1235 <[email protected]> --------- Signed-off-by: mini-1235 <[email protected]> Signed-off-by: Maurice <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
* Add path goal checker plugin Signed-off-by: mini-1235 <[email protected]> * Use local plan's last pose as end pose Signed-off-by: mini-1235 <[email protected]> * Move path handler from plugin to controller level Signed-off-by: mini-1235 <[email protected]> * Add exact path following in path handler and parameter handler Signed-off-by: mini-1235 <[email protected]> * Move more parameters Signed-off-by: mini-1235 <[email protected]> * Rotation shim Signed-off-by: mini-1235 <[email protected]> * RPP Signed-off-by: mini-1235 <[email protected]> * Graceful Signed-off-by: mini-1235 <[email protected]> * MPPI Signed-off-by: mini-1235 <[email protected]> * Remove goal from MPPI Signed-off-by: mini-1235 <[email protected]> * Update setPlan api Signed-off-by: mini-1235 <[email protected]> * Fix naming and doxygen Signed-off-by: mini-1235 <[email protected]> * Remove path complete goal checker Signed-off-by: mini-1235 <[email protected]> * Revert "Use local plan's last pose as end pose" This reverts commit 145b2d9. Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Add prune distance Signed-off-by: Maurice <[email protected]> Signed-off-by: mini-1235 <[email protected]> * Add dynamic parameter Signed-off-by: mini-1235 <[email protected]> * Revert unrelated changes Signed-off-by: mini-1235 <[email protected]> * DWB Signed-off-by: mini-1235 <[email protected]> * Revert "Remove goal from MPPI" This reverts commit 5bc19f2da2649cd500ef11c374103f7de5a8116f. Signed-off-by: mini-1235 <[email protected]> * New idea Signed-off-by: mini-1235 <[email protected]> * Rename Signed-off-by: mini-1235 <[email protected]> * Use new api Signed-off-by: mini-1235 <[email protected]> * Make path handler a controller server's plugin Signed-off-by: mini-1235 <[email protected]> * Fix dynamic parameters handling Signed-off-by: mini-1235 <[email protected]> * Add mppi path handler Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Add path length checking in position goal checker Signed-off-by: mini-1235 <[email protected]> * Remove controller frequency in dynamic parameters Signed-off-by: mini-1235 <[email protected]> * Fix as suggested Signed-off-by: mini-1235 <[email protected]> * Add api, fix dynamic parameters Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Add mppi logic in simple path handler Signed-off-by: mini-1235 <[email protected]> * Simplify test logic Signed-off-by: mini-1235 <[email protected]> * Minor fix Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Add output port in FollowPath Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Always return local plan in odom frame Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Minor fix Signed-off-by: mini-1235 <[email protected]> * Revert tracking feedback output port Signed-off-by: mini-1235 <[email protected]> * Create post callback first Signed-off-by: mini-1235 <[email protected]> * Minor fix Signed-off-by: mini-1235 <[email protected]> * Add path length tolerance in dwb critic Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Format Signed-off-by: mini-1235 <[email protected]> * Activate dynamic parameters callback in Avtivate stage Signed-off-by: mini-1235 <[email protected]> * Fix tests for dynamic parameters Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Skip Signed-off-by: mini-1235 <[email protected]> * Fix as suggested Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Update CI key for codecov Signed-off-by: mini-1235 <[email protected]> * Increase code coverage Signed-off-by: mini-1235 <[email protected]> * Linting Signed-off-by: mini-1235 <[email protected]> * Increase code coverage Signed-off-by: mini-1235 <[email protected]> * Move from controller_utils to path_utils Signed-off-by: mini-1235 <[email protected]> * Update params and rviz Signed-off-by: mini-1235 <[email protected]> * Update costmap update timeout Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Apply Tony's suggestions Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Feedback Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Rename Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Update rotation shim, path handler api, and constraint check Signed-off-by: mini-1235 <[email protected]> * Mark transformed global plan as const to prevent mutating it Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Update nav2_regulated_pure_pursuit_controller/src/regulated_pure_pursuit_controller.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_util/include/nav2_util/path_utils.hpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/src/controller_server.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Update nav2_controller/plugins/feasible_path_handler.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Apply suggestions Signed-off-by: mini-1235 <[email protected]> * Move to cpp Signed-off-by: mini-1235 <[email protected]> * Revert Signed-off-by: mini-1235 <[email protected]> * Revert Signed-off-by: mini-1235 <[email protected]> * Update nav2_util/src/path_utils.cpp Co-authored-by: Steve Macenski <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> * Apply suggestions Signed-off-by: mini-1235 <[email protected]> * Fix early termination bug Signed-off-by: mini-1235 <[email protected]> * Fix tests Signed-off-by: mini-1235 <[email protected]> * Add code coverage Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Add code coverage Signed-off-by: mini-1235 <[email protected]> * Apply suggestions Signed-off-by: mini-1235 <[email protected]> * Cleanup Signed-off-by: mini-1235 <[email protected]> * Check before logging Signed-off-by: mini-1235 <[email protected]> * Lint Signed-off-by: mini-1235 <[email protected]> * Use try lock in controller server Signed-off-by: mini-1235 <[email protected]> * Retrigger CI Signed-off-by: mini-1235 <[email protected]> * Retrigger CI due to timeout Signed-off-by: mini-1235 <[email protected]> * Update prune distance in keepout filter test Signed-off-by: mini-1235 <[email protected]> --------- Signed-off-by: mini-1235 <[email protected]> Signed-off-by: Maurice <[email protected]> Signed-off-by: Maurice Alexander Purnawan <[email protected]> Co-authored-by: Steve Macenski <[email protected]>
This PR continues the work in #4789
Fixes #4757
Fixes #4304