TF
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_footprintTF 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_toolboxnode logs for initialisation errors:ros2 node listthenros2 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.
