[ros-users] sensor origin

Enea Scioni enea.scioni at student.unife.it
Tue Aug 31 12:24:59 UTC 2010


Hi Safdar,
Unfortunately, I never worked with RosAria, so I don't know how it works;
probably Eitan or another ros-user can help you more than me. anyway:

>I get /map,/odom,/base_link,/base_footprint,/laser frames 
Are you sure that this chain is ok? I think it should be
/map->/odom->/base_footprint->/base_link->/laser
Please, check also if all names are ok (for istance, check if the laser
frame is "/laser" everywhere and not "base_link_laser". Sometimes I made
mistakes with names).

In anycase, the odom frame should be fixed because is the frame about the
internal origin coordinate of your robot; so If you set your initial pose,
the odom frame should be in that pose. In a nutshell, that's ok.

>[ WARN] [1283251862.553893140]: Failed to transform initial pose in time
(You requested a transform that is 0.056 >miliseconds in the past,
>but the most recent transform in the tf buffer is 94.754 miliseconds old.

I got this message in the past for some, different reasons. Just a simple
question: how are you communicating with your robot? I mean, If you're using
a pioneer robot, I guess you're using a serial connection in order to
communicate with the firmware,but where are you running all your nodes?

I saw that you got different poses using the command "rostopic echo
particlecloud": are you moving the robot?
If yes, it's fine: these poses are the estimated pose by amcl. If you're not
moving the robot, it's not ok, because the pose is not changing.
For see if the estimated pose are ok, you can try to move your robot one
meter forward and see if the next estimated pose is one meter more in one
direction; do the same in other directions. Also you can set in your room
some checkpoint, in according with your room and the map that you built
before and see if it's ok; you can check using rviz if your laser's
measurement are ok respect the obstacles/walls in your room, and so on.

The Costmap2DROS transform timeout or control loop missed are warnings;
these warning happen when you are in late to compute your stuff: this could
happen because your hardware is too slow, it could happen if you have a
communication problem, it could happen if you didn't set the parameters in a
good way (I guess you're using PR2 parameters, but these parameters could
not be ok for your robot) - of course you can increase the timeout, but this
is not a good way to solve the problem!
In particular, that warning is printed when this condition happens (line
780, file costmap_2d_ros.cpp in cost:
current_time.toSec() - global_pose.stamp_.toSec() > transform_tolerance_
Of course you can increase the transform_tolerance_, but the meaning is that
the warning advise you that you spend too much time to do a transform, so
something could be wrong; if you just increase the tolerance, you will not
have a good warning feedback, but it also depending about your hardware (I
guess).
In a nutshell, there are a lot of reasons to get these warnings and it's not
so easy figure out why this happen in your case (also here Eitan can have
more ideas than me..).

Enea Scioni

-- 
View this message in context: http://ros-users.122217.n3.nabble.com/sensor-origin-tp1388170p1393975.html
Sent from the ROS-Users mailing list archive at Nabble.com.



More information about the ros-users mailing list