Use teb local planner for turtlebot
Hi guys, I want to use the teb local planner for the turtlebot instead of the dwa planner. However, I am a bit confused about how to setup the navigation stack discussed on tutorial 3: http://wiki.ros.org/teb_local_planner...
According to the tutorial, one can use the teb planner by adding the following line to the move_base.launch file:
<param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
However, even after doing so the published plan is "/move_base/TrajectoryPlannerROS/local_plan". So I am confused about what I did wrong as I closely followed the tutorial. My custom launch file can be seen below:
<launch>
<include file="$(find turtlebot_navigation)/launch/includes/velocity_smoother.launch.xml"/>
<arg name="odom_frame_id" default="odom"/>
<arg name="base_frame_id" default="base_footprint"/>
<arg name="global_frame_id" default="map"/>
<arg name="odom_topic" default="odom" />
<arg name="laser_topic" default="scan" />
<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
<rosparam file="$(find turtlebot_navigation)/param/costmap_common_params.yaml" command="load"
ns="global_costmap" />
<rosparam file="$(find turtlebot_navigation)/param/costmap_common_params.yaml" command="load" ns="local_costmap" />
<rosparam file="$(find turtlebot_navigation)/param/local_costmap_params.yaml" command="load" />
<rosparam file="$(find turtlebot_navigation)/param/global_costmap_params.yaml" command="load" />
<rosparam file="$(find teb_local_planner_tutorials)/launch/custom/dwa_local_planner_params.yaml" command="load" />
<param name="dwa_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
<param name="controller_frequency" value="5.0" />
<param name="controller_patience" value="15.0" />
<remap from="cmd_vel" to="navigation_velocity_smoother/raw_cmd_vel"/>
<remap from="odom" to="$(arg odom_topic)"/>
<remap from="scan" to="$(arg laser_topic)"/>
</node>
</launch>
In order to load the map I have created a custom amcl launch file (modified version of amcl_demo.launch):
<launch>
<!-- Map server -->
<arg name="map_file" default="$(env TURTLEBOT_GAZEBO_MAP_FILE)"/>
<arg name="3d_sensor" default="$(env TURTLEBOT_3D_SENSOR)"/> <!-- r200, kinect, asus_xtion_pro -->
<node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" />
<!-- Localization -->
<arg name="initial_pose_x" default="0.0"/>
<arg name="initial_pose_y" default="0.0"/>
<arg name="initial_pose_a" default="0.0"/>
<arg name="custom_amcl_launch_file" default="$(find turtlebot_navigation)/launch/includes/amcl/$(arg 3d_sensor)_amcl.launch.xml"/>
<include file="$(arg custom_amcl_launch_file)">
<arg name="initial_pose_x" value="$(arg initial_pose_x)"/>
<arg name="initial_pose_y" value="$(arg initial_pose_y)"/>
<arg name="initial_pose_a" value="$(arg initial_pose_a)"/>
</include>
<!-- teb -->
<include file="$(find teb_local_planner_tutorials)/launch/custom/turtle_teb.launch"/>
</launch>
To run Gazebo : "roslaunch turtlebot_gazebo turtlebot_world.launch",
AMCL: "roslaunch teb_local_planner_tutorials amcl_teb.launch map_file:=/opt/ros/kinetic/share/turtlebot_gazebo/maps/playground.yaml "
The example itself ("roslaunch teb_local_planner_tutorials robot_diff_drive_in_stage.launch") seems to work fine. I would really appreaciate any help, as I have no idea on how to solve this issue.