Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switching Controller/Planner #65

Closed
predoli opened this issue Apr 11, 2018 · 9 comments
Closed

Switching Controller/Planner #65

predoli opened this issue Apr 11, 2018 · 9 comments
Labels
details needed The reported should provide further explanations about the issue

Comments

@predoli
Copy link

predoli commented Apr 11, 2018

Hey, great work with move_base flex!
I want to implement a additional planner layer that runs on execution time.
So maybe one idea was to implement this as local planner and then call them in a sequence. Is this already possible in move_base_flex?

@spuetz
Copy link
Member

spuetz commented Apr 11, 2018

You are welcome. Can you explain your idea in detail. I don't get it. Thank you.

@predoli
Copy link
Author

predoli commented Apr 11, 2018

Thanks to the fast response @spuetz
Sorry for my bad declaration.
Basically i want a behavioral layer between local and global planner that runs in real time and modifies the global plan and adding a velocity profile to it (by using the time stamps).
My local planner already uses them.
My initial plan was to write a own plug-in type and crush that into the standard move base.
But since I saw this package i thought i could avoid that, by defining my behavioral layer as a controller and switch controller after in every time step. Like Plan path -> Execute control using behav. planner -> switch controller to local planner -> execute control using standard local planner -> switch back to behav. layer planner and so on.

@corot
Copy link
Collaborator

corot commented Apr 29, 2018

Hi @predoli! So... If I understand well, wouldn't be enough if the local planner planner can follow a continuous stream of global plans, and switch immediately to the latest one?
If not, I'm afraid I need more explanation to understand your idea

@corot corot added the details needed The reported should provide further explanations about the issue label Jun 28, 2018
@spuetz
Copy link
Member

spuetz commented Jul 3, 2018

@predoli Would it make sens to run these two controllers simultaneously? Like using #36 ?

  • execute control using behav. planner
  • execute control using standard local planner

@predoli
Copy link
Author

predoli commented Jul 3, 2018

Hey @spuetz @corot thanks for your responds.
As of now i just broke the standard move base and implement everything proprietary.

Would it make sens to run these two controllers simultaneously? Like using #36 ?

It would totally make sens to do this, but they must share some memory. Since the standard local planners input path (normally the global path) in my case, is the result of the behav. planner. To get a better understanding what i did, i created a simple picture, where the arrows show the CONTROLLING cycle of move base.

image4144

Oli

@corot
Copy link
Collaborator

corot commented Aug 24, 2018

Hello bacj @predoli; we have merged the concurrency feature: now you can run N planners and M controllers in parallel. Not sure if this will help you with your architecture. If not, feel free to close this issue.

Maybe would make sense to propose your usecase for the ongoing discussion about ROS2 navigation

@spuetz
Copy link
Member

spuetz commented Oct 8, 2018

Hey @predoli, you could run your problem now: If your behav_planner is calling the ExePath action with controller = local_planner on another concurrency_slot after it modified the plan it got. And also your local_planner needs to call the ExePath with controller = behav_planner on the original concurrency_slot.

@spuetz
Copy link
Member

spuetz commented Nov 12, 2018

@predoli Any news?

@predoli
Copy link
Author

predoli commented Nov 13, 2018

@spuetz yes, i have a small example running, related to the tutorial with SMACH. Thanks a lot for your work.

@predoli predoli closed this as completed Nov 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
details needed The reported should provide further explanations about the issue
Projects
None yet
Development

No branches or pull requests

3 participants