ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

[Nav2] Suggestions around single plan - controller only reactive navigation

asked 2023-05-18 15:01:02 -0500

Pepis gravatar image

Hi!

Reading through some notes and material around nav2 I found a couple of mentions to a navigation setup often referred to as “reactive navigation”, which takes out continuous re-planning from the stack and replaces it for a single plan at the beginning of the navigation that connects the poses to navigate through with minimum cost lines; when there’s no static map those may as well be just straight lines.

I’m currently working on a robot that ought to work in large outdoors suburban-like environments navigating through sidewalks of different widths: some of them may barely fit the robot but are not usually populated with obstacles, while others are very wide but are very frequently populated with people moving around the robot.

I tried to set up this “reactive navigation” style on a simulated world with no static map using the DWB controller and an 8x8m local costmap, however, despite lowering the scale of the path-related critics and raising the obstacle-related, I struggled a lot to to make the robot go around even static objects that were in the way marked by the initial “straight line plan”. These obstacles would have been easily dodged by a navigation system using continuous replanning, as they would have been marked in the global costmap and the path for the controller to follow would have accounted for them. However it is not possible to mark them in a “static layer” beforehand because even though they may be static to the robot, they may be there just temporarily (ex: a parked car slightly blocking the sidewalk).

Has anyone had experience with this setup of the navigation stack? How did you set up your critics? Are there any guidelines for tuning the DWB controller for achieving a good balance between obstacle avoidance and path following? I expect the controller to dodge obstacles of all sizes, from a football ball to a full golf-car parked on the sidewalk or a big group of people the robot cannot go through, meaning it would have to be able to go pretty far away from the “straight line path”.

Do you think this setup would be more suited for dynamic outdoors environments instead of having continuous replanning at a relatively high frequency on a limited window around the robot while having the controller tuned more for path following? What would be the advantages of each approach?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
2

answered 2023-05-18 17:58:32 -0500

updated 2023-05-18 17:59:22 -0500

This is definitely a tuning thing and unfortunately there's no substitution for good tuning in a critic based system. Between DWB and MPPI, there's definitely the behavior you want possible but its going to take some time to tune the system for what you want if it doesn't do what you want out of the box. As much as I try my hardest to make things work well out of the box, the local trajectory planners are a unique instance that when you want something different than what I pre-tuned for you, its going to be a few days of tuning and building that intuition for yourself to get things in a good spot for the behavior you desire. No other advanced trajectory planning technique with dynamic behavior is going to be much, if at all, easier.

There are some other somewhat hacky solutions (depending on your view point) that could be played to make it easier, but I don't want to digress too much in this ticket. But I'll leave the point that just because you have a global plan, doesn't mean you could also have a local-global plan for the local-local planner to track for handling large but static deviations. Small and dynamic deviations the local planner should be able to be tuned to handle (probably also large / static too. The choice of one vs the other cannot really be made without trying both to see what behavioral trade-off is best for your application)

edit flag offensive delete link more

Comments

Thanks for your answer steve!

its going to be a few days of tuning and building that intuition for yourself to get things in a good spot for the behavior you desire

Is there any good sequence of steps that could make tuning faster / easier for tuning the DWB controller especially for this type of reactive behavior? Ex: tune A critic first until you reach behavior B, then tune critic C...

But I'll leave the point that just because you have a global plan, doesn't mean you could also have a local-global plan for the local-local planner to track for handling large but static deviations

Could you elaborate on this? what in the the global-global plan would be the input to the local-global plan?

The choice of one vs the other cannot really be made without trying both to see what behavioral trade-off is best for your application ...

(more)
Pepis gravatar image Pepis  ( 2023-05-19 14:35:16 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2023-05-18 15:01:02 -0500

Seen: 314 times

Last updated: May 18 '23