[ros-users] TF_OLD data error while using scan_assembler on bag files

Hai Nguyen haidai at gmail.com
Fri Jul 30 19:29:15 UTC 2010


OK, I think I know what's going on.  In the tutorial, the
periodic_snapshotter seems to be calling the assemble_scans service
with the system time (I thought --clock fixes this?), which will work
if you're running on a live sensor stream but won't work if the data
is being replayed from a bag file as the base_assembler
(laser_assembler/base_assembler.h) compares the times in its service
call with the laser message's header.stamp.

-H

On Tue, Jul 27, 2010 at 7:35 PM, Hai Nguyen <haidai at gmail.com> wrote:
> Ah I see, that makes sense.  Although this still doesn't explain why
> the laser_assembler is returning clouds of size 0 to the
> periodic_snapshotter even when the system first starts up.  If it
> helps with debugging I'm using the laser.bag file from the tutorial
> and the following launch file (also nabbed from the tutorial):
>
> <launch>
>  <node type="laser_scan_assembler" pkg="laser_assembler" name="my_assembler">
>    <remap from="scan" to="tilt_scan"/>
>    <param name="max_scans" type="int" value="400" />
>    <param name="fixed_frame" type="string" value="base_link" />
>  </node>
> </launch>
>
> On Tue, Jul 27, 2010 at 6:07 PM, Tully Foote <tfoote at willowgarage.com> wrote:
>> Hai,
>> The tf library is not robust to time jumping backwards.  The first time you
>> playback it will work, but the second time time the incoming data will be
>> older than the tf buffer and be tossed on on
>> reciept. http://www.ros.org/wiki/tf/Errors%20explained#Error:_TF_OLD_DATA
>> Tully
>>
>> On Tue, Jul 27, 2010 at 12:35 PM, Hai Nguyen <haidai at gmail.com> wrote:
>>>
>>> Hi,
>>> Hi,
>>>
>>> I'm trying to assemble some laser scans into a point cloud using
>>> laser_assembler tutorial [1] but the periodic_snapshotter keeps
>>> reporting that it is only publishing empty messages with zero points:
>>>    [ INFO] [1280258736.674914761, 1275001489.217034967]: Published
>>> Cloud with 0 points
>>>
>>> On closer investigation this seems to be caused by a TF_OLD_DATA error
>>> generated by scan_assembler.  Is there a recent change to how the time
>>> mechanism works in ROS?  I'm running all these nodes on the same
>>> computer, using --clock with "rosbag play" (on the provided bag file
>>> laser.bag), and tried to run with /use_sim_time=True but the error
>>> still persist.
>>>
>>> TF error:
>>> Node: /scan_assembler
>>> Time: 1275001492.698066055
>>> Severity: Warn
>>> Location:
>>> /opt/ros/cturtle/stacks/geometry/tf/src/tf.cpp:Transformer::setTransform:179
>>> Published Topics: /rosout
>>>
>>> TF_OLD_DATA ignoring data from the past for frame /sensor_mount_link
>>> at time 1.275e+09 according to authority /play_1280258731455287347
>>> Possible reasons are listed at
>>>
>>> My launch file for laser_assembler:
>>> <launch>
>>> <node pkg="laser_assembler" type="point_cloud_assembler"
>>> name="scan_assembler">
>>>    <remap from="scan" to="tilt_scan"/>
>>>    <param name="fixed_frame" value="base_footprint"/>
>>> </node>
>>> </launch>
>>>
>>>
>>>
>>> [1]
>>> http://www.ros.org/wiki/laser_assembler/Tutorials/HowToAssembleLaserScans
>>> --
>>> Hai Nguyen
>>> CS, Robotics
>>> _______________________________________________
>>> ros-users mailing list
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/listinfo/ros-users
>>
>>
>>
>> --
>> Tully Foote
>> Systems Engineer
>> Willow Garage, Inc.
>> tfoote at willowgarage.com
>> (650) 475-2827
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>>
>
>
>
> --
> Hai Nguyen
> CS, Robotics
>



-- 
Hai Nguyen
CS, Robotics



More information about the ros-users mailing list