Waypoint integration at global planner #5985
Replies: 1 comment 7 replies
|
Its not absent; check out NavigateThroughPoses 😉 I think what you're communicating is that you want a spline generator for connecting sparse waypoints together as a planner implementation. That could very well be something that is added, however I would ask you how you plan to address potential collisions in this case? That's a major reason this isn't used - its not going to promise you that this is valid and the planner server is about 'freespace' planning. We have the Route Server now that has more restricted planning on established lanes that's vaguely adjacent to what you bring up, but I say this as an example of where Nav2 does not require freespace planning in order to work well within this framework (unlike movebase flex and others). How we could do this is to create a new behavior plugin for the behavior server or entire task server (depending on the collision checking question or general complexity of what needs to happen) that would create a plan from a set of waypoints, continuously. A new behavior tree node would call this action to generate the plan and return it for use in the BT logic as if it were from any other system. The only question in my mind is if we want to enable multiple types of splines/interpolation or there's a few agreed upon approaches that we need to focus on only. That would largely depend if we should pluginize the algorithm, which starts to approach the complexity that this may want to be its own server rather than simply a behavior server plugin. Two other decent options:
So I think there's 3 options:
What do you think? I think #3 makes alot of sense. Would you be open to contributing this -- that would be a useful capability (and not really much in the way of meaningful application-specific IP [someone could literally vibe code this in 2 hours with testing hah]) |
Uh oh!
There was an error while loading. Please reload this page.
I've worked in a situation where the global planner needs to be fed route based waypoints generated at a fleet manager level. At that point, I refactored move_base_flex to expand the action server for the global planner to accept waypoints as part of the action.
I've been curious about it's absence from move_base, move_base_flex, and nav2. Calling the planner on multiple goals and stitching the plans incurs overhead that is unnecessary while spline generators could generate a spline in one iteration if all waypoints are available at the start itself.
Anyone have insight on why this feature was never added to Nav2 and if there is merit to adding it now?
All reactions