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.
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.
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.
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.
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/