ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

TF_OLD_DATA ignoring data from the past for frame base_footprint

asked 2017-09-08 06:33:42 -0600

maziarser gravatar image

updated 2017-09-08 06:34:40 -0600

I am new in working with Turtlebot 3 and ROS.

I am working with TurtleBot 3-Burger (Rasberry Pi 3) and ROS Kinetic.

I have a lunch file to lunch all my necessary nodes. When I run the lunch file in the workstation PC, I will get this error:

Warning: TF_OLD_DATA ignoring data from the past for frame base_link at time 26.5 according to authority unknown_publisher
Possible reasons are listed at
     at line 277 in /tmp/binarydeb/ros-kinetic-tf2-0.5.16/src/buffer_core.cpp

I run roscore on the workstation PC and run roslaunch turtlebot3_bringup turtlebot3_robot.launch on robot PC. Then, I launch mt launch file.

My launch file code:

<!-- PC: roscore-->
<!-- ROBOT: roslaunch turtlebot3_bringup turtlebot3_robot.launch-->

<!-- PC-run this launcher: roslaunch tb3Navigation mapNavigation.launch !!!!!-->
<!-- PC-run the code: rosrun tb3Navigation map_navigation !!!!!-->

  <param name="use_sim_time" value="true"/>

  <!-- roslaunch turtlebot3_bringup turtlebot3_model.launch-->
  <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger]"/>
  <include file="$(find turtlebot3_bringup)/launch/includes/description.launch.xml">
    <arg name="model" value="$(arg model)" />

 <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" output="screen">
    <param name="publish_frequency" type="double" value="50.0" />

  <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
    <param name="use_gui" value="true"/>

  <!--<node name="rviz1" pkg="rviz" type="rviz" args="-d $(find turtlebot3_description)/rviz/model.rviz"/>-->

  <!-- Map -->
  <!-- call Map and World file -->
  <arg name="map_file"       default=" $(find tb3Navigation)/maps/mapFloor01.yaml"/>
  <arg name="world_file"     default=" $(find tb3Navigation)/maps/stage/"/>

 <!-- Stage -->
  <node pkg="stage_ros" type="stageros" name="stageros" args="$(arg world_file)">
    <param name="base_watchdog_timeout" value="0.5"/>
    <remap from="odom" to="odom"/>
    <remap from="base_pose_ground_truth" to="base_pose_ground_truth"/>
    <remap from="cmd_vel" to="mobile_base/commands/velocity"/>
    <remap from="base_scan" to="scan"/>

<node pkg="nodelet" type="nodelet" name="mobile_base_nodelet_manager" args="manager"/>
  <node pkg="nodelet" type="nodelet" name="cmd_vel_mux" args="load yocs_cmd_vel_mux/CmdVelMuxNodelet mobile_base_nodelet_manager">
    <param name="yaml_cfg_file" value="$(find turtlebot_bringup)/param/mux.yaml"/>
    <remap from="cmd_vel_mux/output" to="mobile_base/commands/velocity"/>

  <!-- Map server -->
  <node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)">
    <param name="frame_id" value="/map"/>

  <!-- need to change -->
  <arg name="initial_pose_x" default="3.31"/>
  <arg name="initial_pose_y" default="4.20"/>
  <arg name="initial_pose_a" default="0.0"/>

  <!-- AMCL - the first location -->
  <include file="$(find turtlebot3_navigation)/launch/amcl.launch.xml">
    <arg name="scan_topic" value="scan"/>
    <!--<arg name="use_map_topic" value="true"/>-->
    <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)"/>

  <!-- Move_base -->
  <arg name="cmd_vel_topic" default="/cmd_vel" />
  <arg name="odom_topic" default="odom" />
  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">

    <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />

    <rosparam file="$(find turtlebot3_navigation)/param/costmap_common_params_$(arg model).yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find turtlebot3_navigation)/param/costmap_common_params_$(arg model).yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find turtlebot3_navigation)/param/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find turtlebot3_navigation)/param/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find turtlebot3_navigation)/param/move_base_params.yaml" command="load" />
    <rosparam file="$(find turtlebot3_navigation)/param/dwa_local_planner_params.yaml" command="load" />

    <remap from="cmd_vel" to="$(arg cmd_vel_topic)"/>
    <remap from="odom ...
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2017-09-08 07:00:17 -0600

This line

<param name="use_sim_time" value="true"/>

in your launch file means that all nodes within the launch file (and all others started after the launch file has been run) try to use simulation time. This feature is intended mainly for simulation (see the Clock wiki page) and mis-using can lead to all sorts of problems. There's a good chance that removing that line will make things work (if you remove it, make sure you start new roscore, as otherwise the param stays on the parameter server).

edit flag offensive delete link more


Thank you for your answer. It was part of the problem. The other mistake was about the "stage" part and also the "world" file that we do not need them.

maziarser gravatar image maziarser  ( 2017-09-08 11:17:18 -0600 )edit

Obviously :) I stopped further looking at the launch file when I saw the "use_sim_time" as that alone doesn't make sense on a real system (in 99.9% of cases). Starting simulation does not, either :)

Stefan Kohlbrecher gravatar image Stefan Kohlbrecher  ( 2017-09-11 04:58:15 -0600 )edit

Question Tools



Asked: 2017-09-08 06:33:42 -0600

Seen: 5,343 times

Last updated: Sep 08 '17