Hi all, when I run Flatsim, I find the robot is sometimes stuck in a local place, constantly changing global path in different directions and running circles. Does anyone have idea how to tune it? Thx!
There are different things that might happen, my best guess is the robot is navigating in narrow area when it happens. First let me explain what is going on for context, then I will make some suggestions on what you can do to address this issue.
The global planner is supposed to keep the previous plan whenever possible, however if the previous plan is invalid then a replaning will be triggered. The reason why a path becomes invalid can be:
- A static obstacle was on the path (not possible in flatsim though)
- In case of navigation in narrow space:
- if the robot deviate slightly from the path (control error), it’s possible the path becomes invalid
- similarly, if the localization jumps a bit, the path might become invalid.
Once the replanning is triggered, it’s possible that another path looks better to the planner.
While we are working on improving this, there is not perfect solution at the moment, there is however a couple of things that can be done:
- You can disable obstacles replanning from the Global Planner: empty the list in the config: “navigation.planner.global_plan / isaac.planner.GlobalPlanner / dynamic_obstacle_names”
- You can add a new PolygonLayer in map (similar to restricted_area) and add polygons in the area the robot tends to get stuck. Then add this new obstacles in the dynamic_obstacle_names fields above. This should help the planner to avoid those area as much as possible.
We are working on improving the planner, in the meantime I hope one of these suggestion will work for you.