Tf timeout with multiple machines
Hi! I try to get the navigation stack running on my robot. I've got ROS running on the robot and on an PC used for visualization in Rviz and, if possible, for calculation like gmapping.
Nodes i need: odometry_publisher; base_control; tf_broadcaster; rviz; gmapping; depth_to laserscan; freenect(kinect); move_base.
I tried to distribute the nodes on the two PC in so may different combinations. But i allways get the same problem:
When i start all the nodes on my robot like: Odometry_publisher, freenect(kinect) and base_control everything looks good. Then i start the rest of the nodes on the other PC.
In rviz it needs one minute until the laser scan in shown( before it tells that there is no transform from base_link to map). even if the laser scan is not visible in rviz, gmapping is building map After that minute all of my nodes work fine. the is tha map made by gmapping and all the sensordata is published.
BUT: Starting the Navigation stack produces that Warning and does nothing afterwards:
[ WARN] [1532685774.079683838]: Timed out waiting for transform from base_link to map to become available before running costmap, tf error: Lookup would require extrapolation into the past. Requested time 1532685692.802003361 but the earliest data is at time 1532685767.757000016, when looking up transform from frame [base_link] to frame [map]. Transform returned after 0.100864 timeout was 0.1.
btw i does make no change where the master runs I think my time is completely messed up. anyone an idea how to fix that?
thanks you so much!
First thing to check: are the clocks between all involved machines in-sync? If they are not, you'll run into the issues you describe.
See #q11570.
thanks for the hint! I try that:
and got:
so i think the machines are in sync, right?
No, I don't think so:
I would say this means that synchronisation failed.
Please check the question I linked and their use of
chrony
.ok, do you have a simple tutorial how to setup chrony. Im a bit lost :) thanks!!
what i did so far:
add this line to /etc/chrony/chrony.conf: server ros-robot minpoll 0 maxpoll 5 maxdelay .1
restart Pc
i properly did something wrong =)
Perhaps How to use chrony to synchronize timestamp on two computers helps.
thank you, i've got chrony runnning but still 0.308 s offset between the machines. so now the Warning is:
so I'm realy close to a working time!