# TurtleBot3 Burger - Gz Sim to ROS 2 Bridge Configuration
# For use with ros_gz_bridge bridge_node
#
# Key migration notes (Gazebo Classic -> Gazebo Sim):
#   1. gz-sim-diff-drive publishes Odometry but NOT TF (unlike Classic).
#      TF is bridged from /world/<world>/pose/info (gz.msgs.Pose_V -> TFMessage).
#   2. Sensor frame_ids use Gazebo scoped names (e.g. burger/base_scan/...).
#      Overridden below via 'frame_id' field to match URDF/robot_state_publisher tree.

# === TF: bridge Gazebo model tf to ROS2 /tf ===
# /model/burger/tf publishes gz.msgs.Pose_V (NOT Pose!)
# ros_gz_bridge converts Pose_V -> TFMessage correctly.
- ros_topic_name: /tf
  ros_type_name: tf2_msgs/msg/TFMessage
  gz_topic_name: /model/burger/tf
  gz_type_name: gz.msgs.Pose_V
  direction: GZ_TO_ROS

# === Sensor bridges ===
- ros_topic_name: /scan_raw
  ros_type_name: sensor_msgs/msg/LaserScan
  gz_topic_name: /world/default/model/burger/link/base_scan/sensor/hls_lfcd_lds/scan
  gz_type_name: gz.msgs.LaserScan
  direction: GZ_TO_ROS

- ros_topic_name: /clock
  ros_type_name: rosgraph_msgs/msg/Clock
  gz_topic_name: /clock
  gz_type_name: gz.msgs.Clock
  direction: GZ_TO_ROS

- ros_topic_name: /cmd_vel
  ros_type_name: geometry_msgs/msg/Twist
  gz_topic_name: /model/burger/cmd_vel
  gz_type_name: gz.msgs.Twist
  direction: ROS_TO_GZ

- ros_topic_name: /odom
  ros_type_name: nav_msgs/msg/Odometry
  gz_topic_name: /model/burger/odometry
  gz_type_name: gz.msgs.Odometry
  direction: GZ_TO_ROS
