Transform from [robot_name]/base_footprint to map

asked 2016-07-16 19:18:22 -0500

David_Zizu gravatar image

updated 2016-07-16 23:29:26 -0500

I have a problem configuring and running navigation stack on a turtlebot 2 kobuki base. In general, I try to make a system of multiple turtlebots which navigate using one map. That is why I have one map frame and multiple turtlebots' frames which have a map as common parent. When I run my launch file for each turtlebot I get the following error:

Waiting on transform from pinky/base_footprint to map to become available before running costmap, tf error:

As I understood there is no transform between pinky/base_footprint and map. However, it works when don't specify tf_prefix and group name. Therefore, I am not sure where is the problem. I checked all the launch files and changed global paths (e.g. /base_footprint to /pinky/base_footprint). Does it mean that I have to specify the transformation manually? (e.g. static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 1.0 /map /pinky/odom 100). When I specify the transformation between pinky/odom and map frames using this command rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 1.0 /map /pinky/odom 100 It says everything is ok and the tree looks normal but when I try to send goal to my turtlebot "pinky" I get warning: MessageFilter [target=map ]: Dropped 100.00% of messages so far. Please turn the [ros.costmap_2d.message_notifier] rosconsole logger to DEBUG for more information. Here is the code for my launch file:

   <group ns="pinky">
  <param name="tf_prefix" value="pinky" />
  <include file="$(find turtlebot_bringup)/launch/3dsensor.launch">
     <arg name="rgb_processing" value="false" />
     <arg name="depth_registration" value="false" />
     <arg name="depth_processing" value="false" />

     <!-- We must specify an absolute topic name because if not it will be prefixed by "$(arg camera)".
     Probably is a bug in the nodelet manager: --> 
     <arg name="scan_topic" value="/pinky/scan" />

 <arg name="initial_pose_x" default="0.0"/> <!-- Use 17.0 for willow's map in simulation -->
 <arg name="initial_pose_y" default="0.0"/> <!-- Use 17.0 for willow's map in simulation -->
 <arg name="initial_pose_a" default="0.0"/>

 <include file="$(find turtlebot_navigation)/launch/includes/DG_amcl.launch.xml">
     <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 file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml"/>

In the move_base.launch.xml file I also remapped topic map to /map (because I want to make map shareable between all the turtlebots). In addition I have changed robot_base_frame global and local cotmap params.

It looks to me that the problem in the DG_amcl.launch.xml file. Here is this file:

<arg name="use_map_topic"  default="false"/>
<arg name="scan_topic"     default="scan"/>
<arg name="initial_pose_x" default="0.0"/>
<arg name="initial_pose_y" default="0.0"/>
<arg name="initial_pose_a" default="0.0"/>

<node pkg="amcl" type="amcl" name="amcl">
  <param name="use_map_topic"             value="$(arg use_map_topic)"/>
  <!-- Publish scans from best pose at a max of 10 Hz ...
edit retag flag offensive close merge delete