Atlas Robotics
Bài 1/6 · khoảng 6 phút

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 map và odom thay 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