0
$\begingroup$

Rosanswers logo

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.


Originally posted by 130s on ROS Answers with karma: 10937 on 2011-12-16

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by DimitriProsser with karma: 11163 on 2011-12-16

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by 130s on 2011-12-21:
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.

Comment by DimitriProsser on 2011-12-19:
"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.

Comment by 130s on 2011-12-18:
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?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.