What is the scope of a local controller?
Hello,
I'm trying to nail down the scope of local controllers, local planners, and global planners. First I will summarize what I think I understand.
- Global planners are responsible for finding paths.
- Typically from point to point.
- Ideally dynamically feasible and collision free.
- Local planners are greedy planners that have a limited look ahead?
- Vulnerable to planning into a corner (a local minima).
- Finds a control motion/path that avoids obstacles and navigates the environment e.g., the DWA.
- Local controllers are for executing a path (outputs a twist command).
- Finds a control motion that follows the path.
What is unclear to me is the division lines between these planners and controllers. For example we have the DWA controller in NAV2 and we have the DWA planner. Am I to understand that local controllers can contain local planners or are they suppose exist outside of the controllers?
As a follow up question, what part of the software would be responsible for detecting that the robot is stuck? To me this would need access to the local planner, otherwise how would it know what the planner can and cannot navigate.