ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Instead of messing with move_base source, as mentioned in the question you have linked, you can write a planner which will get goal from move_base and pass to your desired planner in a conditional manner.
In move_base side, you will have one active planner which is your parent planner. It will never change. But in your planner you will initialize all planners you might use and pass the goal obtained from move_base to desired planner. Even you can change active planner with dynamic reconfigure.
2 | No.2 Revision |
Instead of messing with move_base source, as mentioned in the question you have linked, you can write a planner which will get goal from move_base and pass to your desired planner in a conditional manner.
In move_base side, you will have one active planner which is your parent planner. It will never change. But in your planner you will initialize all planners you might use and pass the goal obtained from move_base to desired planner. Even you can change active planner with dynamic reconfigure.
Additional explanation:
You will not change anything in move_base source. Just write a new global planner plugin (http://wiki.ros.org/navigation/Tutorials/Writing%20A%20Global%20Path%20Planner%20As%20Plugin%20in%20ROS), then use this planner as your global planner. In initialize
method of your new plugin, initialize other global plugins you desire (like navfn or global_planner) then in makePlan
method of your new plugin, just pass start
, goal
and plan
parameters directly to makePlan
method of the planner you want. And of course, return methods accordingly.
Hope this explains better.