Vì sao cần TF2
Mọi dữ liệu robot trong ROS 2 — vị trí, cảm biến, bản đồ — đều vô nghĩa nếu không biết nó tính từ đâu. "Robot ở (1.5, 2.0)" so với cái gì? So với bản đồ? So với lúc robot khởi động? So với chính thân robot?
TF2 (Transform Framework, phiên bản 2) là lớp hạ tầng ROS 2 dùng để trả lời câu hỏi đó một cách thống nhất: mọi vị trí đều gắn với một frame có tên, và TF2 biết cách quy đổi giữa các frame với nhau.
Sau module này bạn sẽ
- Phân biệt được frame và transform
- Đọc được một cây TF (TF tree) và biết vì sao nó luôn là cây, không phải đồ thị tùy ý
- Giải thích được vì sao ROS tách riêng frame
mapvàodomthay vì gộp làm một - Dùng được
view_frames,tf2_echođể debug TF — bộ lệnh sẽ dùng hàng ngày từ Module 4 trở đi
Chuẩn bị
Module này giả định bạn đã xong Module 0 và Module 1 — đặc biệt bài Topic, Publisher/Subscriber, vì TF chỉ là một lớp tiện ích xây trên pub/sub, không phải cơ chế gì mới.
cd ~/atlas_sim
colcon build --packages-select ros2_basics
source install/setup.bash
Bản đồ module
Frame & TransformMột gốc tọa độ, và độ lệch giữa 2 gốc
TF treeGhép nhiều transform thành 1 cây
REP-103 / REP-105Quy ước đơn vị, trục, và chuỗi frame chuẩn
Công cụ debugview_frames, tf2_echo, static_transform_publisher