[ros-users] About tf and synchronization

Rodrigo Baravalle rbaravalle at gmail.com
Tue Dec 21 15:07:33 UTC 2010


Hello everyone!

I am trying to build a 3D map of the surrounding environment of a
robot. I am using a swissranger SR4000 camera and a xsens mti sensor:
the first gives me the 3D point cloud and the second the values of the
rotation of the camera at each moment.

Each sensor is well integrated with ROS and is broadcasting its values
correctly. I am also using amcl to get the actual pose of the robot
with a 2D map I have already constructed. These sensors are mounted on
a wheelchair which has a 2D laser in the center. The sensors are a bit
displaced from the center of the wheelchair, and so I have constructed
the transformation of the camera (using sendTransform from the package
tf) to the center of the robot.

I want to use the values of the xsens sensor (rotation) and amcl
(translation) at the same time to know where to put each incoming
point cloud. For better synchronization, what I do is to call the
camera and the xsens when I receive a new position by amcl. The first
step I  do is to transform the point cloud to the frame "/map", which
is returned by amcl, so then I could sum all the incomings point
clouds.

The problem is that I always get an error message like this:

"You requested a transform that is 12.571 miliseconds in the past,
but the most recent transform in the tf buffer is 49.194 miliseconds old.
 When trying to transform between /swissranger and /map."

At this moment, the chain of frames is: map - odom - base_link - swissranger

I have already tried with "waitForTransform" between the two frames,
but nothing seems to happen. I can see by using "rosrun tf
view_frames" that amcl is publishing things in the future: "
Broadcaster: /amcl ... Most recent transform: -0.086 sec old ... ".

I changed the value "transform_tolerance" from the amcl launch to 0.0,
but it does not changed the result.

What can I do to solve this problem? Maybe it is not necessary to
transform between swissranger and map, and I could use directly the
values from amcl and the xsens sensor to transform the point cloud?
The last option seems to be a bit dirty, also.

Thanks in advance.

------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
ros-users mailing list
ros-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ros-users



More information about the ros-users mailing list