[ROS2] TF2 broadcasting very slow
Hi,
I have a node that broadcasts dynamic TF2 transforms (30 Hz ) and a robot_state_publisher
that broadcasts the static TF2 from an URDF file.
The problem is that in Rviz I notice a very slow propagation of the Transforms and using the command ros2 run tf2_ros tf2_echo
I indeed receive TF2 at about 1Hz that is a really low frequency.
For many links the TF propagation cannot be calculated at all.
What can be the problem?
Thank you Walter
UPDATE I noticed that the command works well for "static frames" but cannot connect "static frames" to "dynamic frames".
Considering the TF chain:
zed_left_camera_frame -> zed_camera_center -> base_link -> odom -> map
if I run the command $ ros2 run tf2_ros tf2_monitor zed_left_camera_frame map
I get this broken chain:
ros2 run tf2_ros tf2_monitor zed_left_camera_frame map
Waiting for transform chain to become available between zed_left_camera_frame and map
RESULTS: for zed_left_camera_frame to map
Chain is: zed_left_camera_frame -> zed_camera_center -> base_link
Net delay avg = 0.00394501: max = 0.0212562
Frames:
Frame: base_link, published by <no authority available>, Average Delay: 0.0107858, Max Delay: 0.0123577
All Broadcasters:
Node: <no authority available> 61.1384 Hz, Average Delay: 0.0105982 Max Delay: 0.0123577
It seems that the remaining chain base_link -> odom -> map
cannot be resolved and I cannot find the reason.
The weird thing is that $ ros2 run tf2_ros tf2_echo zed_left_camera_frame map 30
gives a correct result
How can I understand the cause of the problem?