Ask Your Question
0

Local planner's concrete class is defined where in move_base?

asked 2011-12-16 04:56:45 -0500

130s gravatar image

updated 2011-12-16 05:35:24 -0500

I'm trying to utilize turtlebot_navigation and replace local planner with my planner. Can someone tell me where in turtlebot_navigation concrete class for local planner is specified?

I understand move_base pkg employs "interface programming" based on pluginlib to call local planner's functions w/o knowing the name of the local planner (nav_core)'s concrete class. To achieve that, some other pkgs (base_local_planner etc.) contain the plugin description files (as blp_plugin.xml), but the pkg I'm about to utilize doesn't seem to have that file. The only possible description that I found in turtlebot_navigation about specifying concrete class is in config/base_local_planner_params.yaml where there's a TrajectoryPlannerROS section.

Is the yaml description above the one? Or is it something like, if there's no plugin description file found then default class (I assume base_local_planner in this case) gets automatically used? Thanks.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2011-12-16 05:36:02 -0500

DimitriProsser gravatar image

Turtlebot uses the same nav_stack that other ROS robots use. In order to develop your own planner for it, you must make your own plugin for base_local_planner interface type, which is specified in nav_core. base_local_planner is move_base's default local planner. In order to change it, you can add the following lines to turtlebot_navigation/config/move_base_turtlebot.launch inside of the move_base node:

<param name="base_local_planner" value="your_local_planner/YourLocalPlanner" />

You build your own plugin package, develop your own blp_plugin.xml, and load it in place of base_local_planner.

edit flag offensive delete link more

Comments

Thanks. I assume for local planner that 'name="base_local_planner"' is fixed, and then "your_local_planner" is namespace and "YourLocalPlanner" is class name?
130s gravatar image 130s  ( 2011-12-18 07:24:43 -0500 )edit
"your_local_planner" is the namespace that you define for your controller in the plugin.xml, and "YourLocalPlanner" is the type that you give to it. Typically, convention is to use your_class_namespace/YourClassName.
DimitriProsser gravatar image DimitriProsser  ( 2011-12-19 00:22:39 -0500 )edit
Thx, now my plugin started working. I also missed exporting (http://www.ros.org/wiki/pluginlib#Exporting_a_Plugin) and combining xml file and exporting steps, now everything makes sense.
130s gravatar image 130s  ( 2011-12-21 04:13:41 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2011-12-16 04:56:45 -0500

Seen: 279 times

Last updated: Dec 16 '11