Skip to content

TF

Troubleshooting Banner


TF Troubleshooting#

odom → base_footprint TF is missing or conflicts with another source#

Symptom: ros2 run tf2_ros tf2_echo odom base_footprint times out, or RViz warns about a TF conflict.

Cause 1: The EKF node is not running or publish_tf: true is not set in rl_ekf.yaml.

Cause 2: enable_odom_tf is set to true in micipsa_control/config/controllers.yaml, causing the DiffDriveController to also publish the same transform and creating a conflict.

Fix: Verify publish_tf: true in rl_ekf.yaml. Verify enable_odom_tf: false in controllers.yaml. Only one source should own the odom → base_footprint transform, that source is this EKF node.


map → odom TF missing#

  • Verify LiDAR is publishing at the expected rate: ros2 topic hz /scan
  • Verify the odom → base_footprint TF exists: ros2 run tf2_ros tf2_echo odom base_footprint
  • Check that frame IDs in mapper_params_online_async.yaml (odom_frame, base_frame, map_frame) exactly match what your robot publishes
  • Check slam_toolbox node logs for initialisation errors: ros2 node list then ros2 node info /slam_toolbox

If robot_localization (or similar package) is not running or not publishing the odom → base_footprint transform, SLAM Toolbox will fail silently, it requires this transform to integrate scans.