Feature - load, save and loop waypoints#3165
Feature - load, save and loop waypoints#3165SteveMacenski merged 48 commits intoros-navigation:mainfrom
Conversation
|
@padhupradheep, please properly fill in PR template in the future. @SteveMacenski, use this instead.
|
|
Still have some work left such as updating the status for pausing in the RViz plugin and renaming the variables and / or functions. Hope to complete it on the weekend. |
SteveMacenski
left a comment
There was a problem hiding this comment.
I think the loop stuff in the WP follower is great!
|
any update? |
|
Not yet, still away on PTO, hopefully this should be up by mid October. Sorry for the delay. |
|
OK! Wow, what do I need to do to get that kind of PTO 😉 Hey, no worries, enjoy vacation! Sorry to bother. |
|
FYI, I'm back from my PTO. Hopefully would finish it ASAP. Just doing a rebase, so that I can catch up with all the changes made in the last month or so. |
87613aa to
74374f3
Compare
|
Okay now handling everything in the panel level. Now in the below video you can see that I'm able to select waypoints, set number of loops, start waypoint following and pausing the waypoint following at the middle and resuming it again. Additionally you can also see, there is a status on the panel saying at which waypoint and at which loop the current navigation is happening, also when you press the pause button, you also get a note saying that the last cancelled waypoint is stored, which could be resumed. save_load-2022-10-11_20.00.29.mp4It is not still yet perfect (need to solve edge cases), but just wanted to know, whether will this additional status stuff be interesting for you / users ? what do you think ? (sorry for the poor quality video and simulation performance, for some reason my graphics card is behaving weird in the 22.04, which slows down RViz a lot.) |
|
Yeah! Super useful! Question: if you have looping of waypoint following where you set the poses via rviz (not a file), does the initial robot point count as a starting point? That way if you loop you have the initial segment included as well? Should it? I'm not sure, but seems reasonable. Still not a fan of the |
No, If the user wants to use the initial starting point as well, then he has to select the initial starting pose as like the rest of the poses. I initially thought about adding the initial pose as part of the waypoint list, then anyways if the user wants it, then he's just a drag away.
I feel, this depends more on the use-case that the user wants to handle. Say if the user is starting from a docking area, then he definitely does not want the starting point included. Maybe we can just handle both the cases by having a check box for selecting if the start pose needs to be included or not. Leaving the choice to the users.
|
I like that
Oh? It was starting to grow on me a bit 😉 |
|
@padhupradheep, your PR has failed to build. Please check CI outputs and resolve issues. |
|
Nice! I do think the looping feature of the WP follower is valuable, I would actually like that logic back into the WPF server if possible. I can see that being a common feature request even outside of this navigation panel tool. |
No problem! Only thing is that, we also need the ‘goal_index’ back as well, that is very much essential for the waypoint follower to know about the pausing. As you said earlier in this thread I can set it’s default to 0. |
|
Ok! |
|
Would be nice to have some user feedback, before marking it ready for review. Our nice friend @jwallace42 has agreed to test it and provide some feedback tomorrow. Meanwhile, I'll also test it a bit more, making sure, there are no edge cases. |
|
Looks pretty good :). Here is what I found.
|
|
Also, pull in main :). |
97c579d to
405803d
Compare
|
Once again, thanks for the nice feedback. @jwallace42
do you mean during nav_through_poses? Edit: Never mind! Found it! |
Codecov ReportBase: 89.03% // Head: 88.97% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## main #3165 +/- ##
==========================================
- Coverage 89.03% 88.97% -0.07%
==========================================
Files 351 351
Lines 15658 15662 +4
==========================================
- Hits 13941 13935 -6
- Misses 1717 1727 +10
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
05a0c85 to
68abd75
Compare
|
I have added couple of additional checks to verify the specified waypoints are valid and there are no obstacle in that particular point in the map and also checked if the waypoints are specified inside the map bounds. @jwallace42 I think I have handled all your points and most of the other edge cases, do you mind testing it once again and giving again your feedback if you have time? Your insights were really helpful last time around. Nothing urgent though, anyways Steve is away for ROSCon. |
|
@padhupradheep I will test this today and if all goes well I will review the code :). Do you have a docs pr up? |
…ered footprint collsion
…tion to take it from params or the default
642d03e to
679b90a
Compare
SteveMacenski
left a comment
There was a problem hiding this comment.
I'm happy with this! Anything else before merging?
You should post on discourse about this!
I was actually looking for something to update in docs. But I think the plugin is easy to understand, there is not much of a trick there.
Sure, I'll take it to our community.. |
|
I think a migration guide entry just to acknowledge the changes would be good! I'm also going to re-run CI, I see the WPF test failed and given there are substantive changes there, its important that passes |
|
@padhupradheep definitely post on discourse with a nice video / gif of this is action! |
Sure! Thanks for the consistent motivation and bearing with me through the feature design. 😃 |
|
No worries at all, glad to have this in! Only took... 3 months largely due to my delays in reviews 😆 |
* able to loop, load and save wp using json * replacing the file format to yaml from json * feedback received and ready to be handled for pause and resume * handling loops in waypoint follower server and adding the corresponding variables in the waypoint action * handling goal_index * adding pause and resume functionality for waypoint following * handling loops and making it available only for nav through poses * handling exceptions when invalid files are loaded * input the file name in which waypoints need to be saved * satisfying linters * update * publish waypoints after loading * add logs for the loops * handling everything at the panel level * fix missing * handling loops from the wp follower * fixing linters * removing rclcpp expression * setting the default of goal_index to 0 * adding comments * correction * Update nav2_waypoint_follower/src/waypoint_follower.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * update review * add the missing feedback * fixes * adding a pause state indicator, handling zero waypoints, handling cancel during pause * greying out number of loops during nav_through_poses * handling edge cases * adding option to save waypoints while paused * checking for the validity of waypoint, if it is inside the map and not in an obstacle w.r.t global costmap * Fix pre_initial states * solving further edge cases * sanity check for the loaded waypoints * clearing loaded acumulated poses, when navigating to single goal * function name change * renaming variable * handling invalid punctuation * making costmap_subs as uniqur_ptrs * checking if the selected waypoints will be in collision - also considered footprint collsion * jumping to accumulating state once waypoint or nav_through_pose is complete * updates for handling 1st goal in the 1st loop + fixed pausing issue * updates after review + adding small logo * review fix - 1 * map frame is derived from accumulated_poses and base_frame has the option to take it from params or the default * removing mistakes from merge * re-add reset for navigation feedback indicator * minors * review update Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
…s-navigation#3354) Signed-off-by: TzuShianYang <tzushian@cavedu.com>

Basic Info
Description of contribution in a few bullet points
Description of documentation updates required from your changes
Future work that may be required in bullet points
For Maintainers: