[ROS2] TF2 can't find existing frame inside a node

asked 2021-02-26 04:32:43 -0500

avzmpy gravatar image

updated 2021-02-26 05:09:35 -0500

Node says: Timed out waiting for transform from base_link to odom to become available, tf error: Invalid frame ID "odom" passed to canTransform argument target_frame - frame does not exist. But transformation is actually available and transform tolerance is set to 1s.

ros2 run tf2_ros tf2_monitor base_link odom returns:

RESULTS: for base_link to odom Chain is: base_link Net delay avg = 0.00163495: max = 0.028209 Frames: Frame: base_link, published by <no authority available>, Average Delay: 0.00286788, Max Delay: 0.0139816 All Broadcasters: Node: <no authority available> 312.691 Hz, Average Delay: 0.0101854 Max Delay: 0.753335

How is that possible and what could cause that?

P.S. this happens only after restarting the node couple of times, when launching the whole system again transformation is detected

edit retag flag offensive close merge delete


Please provide enough information to reproduce your problem. The most common reason for this sort of error is that you're not letting the buffer fill before you try to query it. This is more often at startup. And if it's not persistently a problem it might just be a startup sequencing issue that resolves itself in steady state. In a distributed system not all information is immediately available.

tfoote gravatar image tfoote  ( 2021-03-01 11:05:19 -0500 )edit