Khóa học ROS 2 & Nav2 của Atlasbot — từ node đầu tiên tới robot tự đi giao hàng
Atlasbot · 10/10/2026 · 5 phút đọc
Phần lớn tài liệu ROS 2 dạy từng khái niệm riêng lẻ: một bài về topic, một bài về TF, một bài về Nav2. Đọc xong vẫn khó hình dung chúng ráp lại với nhau thành một robot tự hành như thế nào. Khóa học này đi theo hướng ngược lại. Ta dùng một robot duy nhất là Atlas (robot 2 bánh vi sai mô phỏng trong Gazebo) và đi cùng nó từ node đầu tiên tới lúc robot tự chạy kịch bản giao hàng hoàn chỉnh.
👉 Vào học ngay — Atlas Learn: ROS 2 & Navigation2
Điểm khác biệt: nhìn thấy dữ liệu chuyển động
Mỗi bài học đều có mô hình chạy trực tiếp trên trang. Bạn sẽ thấy message bay qua các tầng DDS, node tự tìm thấy nhau, hàng đợi QoS đầy dần, cây TF xoay theo robot, hạt của particle filter co cụm lại khi AMCL định vị xong. Có thể tạm dừng hoặc giảm tốc độ xuống 0.5× để quan sát kỹ từng bước.
Ngoài ra, mọi file cấu hình được phân tích trong khóa học đều là file thật đang chạy trong repo atlas_sim, không phải ví dụ rút gọn. Khóa học cũng giữ lại các lỗi thật gặp phải khi làm dự án (ví dụ vx_max/wz_max của controller vượt giới hạn phần cứng), kèm cách tìm ra và sửa chúng.
Lộ trình 14 module
| Module | Nội dung | Số bài |
|---|---|---|
| 0 | Cài đặt môi trường: ROS 2 Humble, Gazebo Fortress, clone và build repo | 1 |
| 1 | ROS 2 Core Concepts: DDS, node, topic/QoS, service, parameter, launch, package | 9 |
| 2 | TF2 & tọa độ: frame, transform, cây TF, REP-103/REP-105 | 6 |
| 3 | URDF/XACRO: link, joint, xacro, robot_state_publisher | 8 |
| 4 | Đưa robot vào Gazebo: world SDF, physics engine, ma sát, inertial | 8 |
| 5 | ros2_control: controller manager, diff_drive_controller, động học vi sai | 8 |
| 6 | Cảm biến LiDAR & IMU: sensor trong SDF, gz bridge, công cụ kiểm tra | 8 |
| 7 | Teleoperation & RViz: bàn phím/joystick, twist_mux, collision_monitor | 8 |
| 8 | SLAM: scan matching, pose graph, loop closure, slam_toolbox | 8 |
| 9 | Localization với AMCL: particle filter, so sánh với slam_toolbox localization | 7 |
| 10 | Nav2 core: costmap, global planner, local controller | 8 |
| 11 | Recovery & Behavior Tree: đọc cây BT XML thật, recovery behaviors | 6 |
| 12 | Waypoint & Nav2 Simple Commander: BasicNavigator, tự viết patrol_node.py | 4 |
| 13 | Đồ án cuối khóa: ghép tất cả thành kịch bản "Atlas Delivery" hoàn chỉnh | 3 |
Hầu hết các module đều kết thúc bằng một bài tập thực hành trên robot Atlas, ví dụ viết node temperature_monitor, tham số hóa kích thước robot, tự tạo world và hệ số ma sát riêng.
Cần chuẩn bị gì
- Máy chạy Ubuntu 22.04 (máy thật hoặc dual-boot là tốt nhất; máy ảo vẫn chạy được nhưng Gazebo sẽ chậm).
- Biết dùng terminal Linux cơ bản. Nếu chưa quen, hãy đọc trước chuyên mục Linux/Ubuntu/Jetson trên trang này.
- Đọc được Python cơ bản: các bài tập viết node bằng
rclpy. - Không cần robot thật. Toàn bộ khóa học chạy trong mô phỏng Gazebo.
- Quyền truy cập: Module 0–2 học ngay không cần tài khoản; đăng nhập miễn phí để học Module 3–7; Module 8–13 dành cho hội viên (trả một lần, học trọn đời).
Học như thế nào
- Mở trang khóa học và bắt đầu từ Module 0 để cài môi trường. Bước này chỉ làm một lần, các module sau chỉ cần copy lệnh.
- Học tuần tự từng module, vì mỗi module xây tiếp trên module trước. Ví dụ collision/inertial viết ở Module 3 chỉ "có hậu quả thật" khi sang Gazebo ở Module 4.
- Bấm "Đánh dấu đã học xong" cuối mỗi bài để theo dõi tiến độ. Tiến độ được lưu ngay trên trình duyệt của bạn, không cần tạo tài khoản.
Khi học xong, bạn có thể đọc tiếp các chuyên mục ROS2 Navigation/Nav2 để tinh chỉnh sâu hơn, hoặc xem các dự án robot thật để thấy những kiến thức này chạy trên phần cứng. Nếu cần tài nguyên tham khảo bên ngoài, xem bài Tài nguyên học ROS2 miễn phí.