Changing global and local planner according to specific requirements

Hello!
I am learnig ROS Navigation and studied the different performance of each planner and is it possible to change the global planner directly in move_base running?For instance, the navfn global planner for living room and carrot planner for kitchen.

Best Regards
Aye

Hi there!

From what I know, there is no existing package to do that.

However, what you mention is possible, but it requieres some work. If you are planning to do this, feel free to let us know and share our idea !

To give a quick hint, a planner finds the (shortest) path between two vertecies in a graph. On the schematic below, letters represent vertecies (like rooms) and they are linked with edges (like the corridor between two rooms). the number near the edges is the cost to take this path. Generally, the goal of the planner is to find the path with the lowest cost.
algorithm - Find cheapest cycle in an undirected weighted graph - Stack Overflow
In your case, each vertecies can represent a room. So, instead of directly finding the path in your map, you can create a package that:

  • Find the path between two rooms. For example on the schematic above, the shortest path from A to H is “A->D->E->H”.
  • Call the planner to find the path on the map for each “smaller path” (so from A to D then D to E etc…) with the specific needs you have.

I hope those things help you !

Kind regards,
Sylvain

Thank you for your precious suggestion.
Is it not possible to execute base_global_planner:navfn for one defined goal and execute base_global_planner:carrotplanner for another defined goal of move_base/goal in parameter configuration.? Move_base uses only one global planner at a time but i am thinking of using two configurations for changing from one to one although not clearly know it can be or not.

Best Regards
Aye

Hello,

I believe it is possible, but I don’t think Move_base has the feature integrated, which means you have to configure it on your own.

I found this, it might help you: How to switch the planner of move_base during the navigation - ROS Answers: Open Source Q&A Forum

Kind regards,
Sylvain

Is it more prefered to write a new planner plugin?
Thank you for your kindly support.

Best Regards
Aye

I don’t think it is the easiest way, I bet it is easier to craete a new node that will organise which planner to use when.
You can take a look at ROSPlan, a taskplanning framwork, it might be useful for you
https://kcl-planning.github.io/ROSPlan/

and for ROS2: https://plansys2.github.io/

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.