← Quay lại Blog
navigationamrslamnavigation

SLAM và Navigation: Cách robot tự định vị và di chuyển

Tìm hiểu cách robot sử dụng SLAM để xây dựng bản đồ, tự định vị và lập kế hoạch đường đi với ROS 2 Nav2 stack.

Nguyễn Anh Tuấn1 tháng 7, 20254 phút đọc
SLAM và Navigation: Cách robot tự định vị và di chuyển

SLAM là gì?

SLAM (Simultaneous Localization and Mapping) là bài toán kinh điển trong robotics: robot phải đồng thời xây dựng bản đồ môi trường xung quanh và xác định vị trí của chính mình trên bản đồ đó. Đây là nền tảng để robot tự hành hoạt động trong không gian chưa biết trước.

Bài toán này khó vì hai yếu tố phụ thuộc lẫn nhau — muốn định vị chính xác cần bản đồ tốt, nhưng muốn bản đồ tốt lại cần định vị chính xác.

Các phương pháp SLAM phổ biến

LiDAR SLAM

Sử dụng cảm biến laser để quét môi trường 2D hoặc 3D. Các thuật toán phổ biến:

Visual SLAM

Chỉ cần camera, chi phí thấp hơn LiDAR nhiều lần:

Robot tự hành sử dụng SLAM để mapping và navigation

ROS 2 Nav2 Stack

Nav2 là bộ navigation hoàn chỉnh cho ROS 2, bao gồm toàn bộ pipeline từ SLAM đến điều khiển chuyển động.

Kiến trúc Nav2

Sensor Data → SLAM → Map
                       ↓
Goal Position → Planner → Controller → Motor Commands
                       ↑
                  Costmap (obstacle layer + inflation layer)

Cấu hình Nav2 cơ bản

File nav2_params.yaml là trung tâm cấu hình:

bt_navigator:
  ros__parameters:
    global_frame: map
    robot_base_frame: base_link
    default_bt_xml_filename: navigate_w_replanning_and_recovery.xml

controller_server:
  ros__parameters:
    controller_frequency: 20.0
    FollowPath:
      plugin: "dwb_core::DWBLocalPlanner"
      max_vel_x: 0.5
      min_vel_x: -0.1
      max_vel_theta: 1.0

Launch Nav2 với SLAM

# Khởi động SLAM (tạo bản đồ mới)
ros2 launch nav2_bringup slam_launch.py

# Hoặc dùng bản đồ đã lưu (localization mode)
ros2 launch nav2_bringup localization_launch.py map:=/path/to/map.yaml

# Khởi động navigation
ros2 launch nav2_bringup navigation_launch.py

Costmap và tránh vật cản

Nav2 sử dụng costmap — bản đồ chi phí phân lớp để quyết định đường đi:

Mỗi ô trên costmap có giá trị từ 0 (tự do) đến 254 (vật cản). Planner sẽ tìm đường đi có tổng chi phí thấp nhất.

Hệ thống cảm biến và costmap cho robot tự hành tránh vật cản

Ứng dụng thực tế tại Việt Nam

Robot giao hàng trong nhà máy: Sử dụng RPLiDAR A2 (khoảng 5 triệu VNĐ) kết hợp Nav2 để robot AMR di chuyển giữa các trạm sản xuất, là thành phần cốt lõi trong quản lý đội robot. Bản đồ nhà máy thường ổn định nên chỉ cần chạy SLAM một lần, sau đó chuyển sang chế độ localization.

Robot phục vụ nhà hàng: Visual SLAM với camera Intel RealSense D435 giúp giảm chi phí phần cứng đáng kể so với LiDAR, phù hợp cho môi trường có nhiều người di chuyển.

Mẹo triển khai thực tế

  1. Chọn sensor phù hợp: LiDAR cho môi trường công nghiệp (độ chính xác cao), camera cho ứng dụng tiêu dùng (chi phí thấp)
  2. Calibrate cẩn thận: Transform giữa sensor và base_link phải chính xác, sai 1-2 cm có thể gây drift nghiêm trọng
  3. Test recovery behavior: Robot sẽ bị kẹt — cấu hình spin, backup và wait recovery trong behavior tree
  4. Monitor bằng RViz2: Luôn visualize costmap và path planning khi debug

SLAM và navigation là hai kỹ năng cốt lõi cho bất kỳ robot tự hành nào. Với ROS 2 Nav2, bạn có thể triển khai hệ thống navigation hoàn chỉnh mà không cần viết lại từ đầu.

Bài viết liên quan

Bài viết liên quan

Multi-robot Coordination: Thuật toán phân công task
fleetamrprogramming

Multi-robot Coordination: Thuật toán phân công task

Các thuật toán phân công nhiệm vụ cho đội robot — từ Hungarian algorithm, auction-based đến RL-based task allocation.

20/3/202612 phút đọc
Wheeled Humanoid: Tương lai robot logistics và warehouse
humanoidfleetamr

Wheeled Humanoid: Tương lai robot logistics và warehouse

Robot hình người trên bánh xe — tại sao thiết kế hybrid này đang thay đổi ngành logistics và vận hành kho hàng.

3/3/202611 phút đọc
Deep DiveOutdoor Navigation và Multi-Robot Coordination
navigationmulti-robotoutdoormapfvda5050Phần 5

Outdoor Navigation và Multi-Robot Coordination

GPS-denied navigation, terrain classification, multi-robot traffic management với VDA5050, và MAPF algorithms cho robot fleet.

20/2/202611 phút đọc