Bỏ qua để đến nội dung

Bản đồ lưới chiếm dụng ROS

Trong hệ sinh thái ROS, “bản đồ lưới chiếm dụng” (occupancy grid map) là cặp file map.pgm (ảnh bản đồ) và map.yaml (metadata), biểu diễn môi trường xung quanh robot nhìn từ trên xuống dạng 2D.

Navigation stack của ROSnav1 map_server, nav2 map_server — đọc định dạng này. Các package SLAM như gmapping, Cartographerslam_toolbox xuất ra định dạng này.

File .pgm là định dạng ảnh grayscale đơn giản Portable Gray Map. Giá trị pixel biểu thị trạng thái từng vị trí:

  • Pixel tối: bị chiếm (có tường hoặc chướng ngại vật)
  • Pixel sáng: không gian tự do (có thể đi qua)
  • Giá trị gray nhất định (thường là 205): chưa quan sát

File .yaml là metadata ánh xạ ảnh sang hệ tọa độ đơn vị mét:

image: map.pgm
resolution: 0.05 # mét mỗi pixel
origin: [-12.2, -28.5, 0.0] # tọa độ thực của góc dưới trái ảnh (x, y, yaw)
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

Với resolutionorigin, có thể chuyển đổi qua lại giữa tọa độ pixel và tọa độ thực.

Thường theo các luồng sau:

  1. Điều khiển robot thủ công, đưa odometry và 2D LiDAR vào gmapping / slam_toolbox để xây bản đồ và lưu lại.
  2. Chạy Cartographer offline trên bag file đã ghi, xuất ra dạng occupancy grid.
  3. Chuyển đổi từ định dạng khác (.bt, projection OctoMap, định dạng riêng, v.v.).

Bản đồ đầu ra được truyền qua map_server đến localization (AMCL) và path planning (nav2).

drawtonomy đọc cặp .pgm + .yaml và cho phép chú thích bản đồ lưới chiếm dụng trực tiếp trên trình duyệt:

  • Dùng resolutionorigin từ yaml để hiển thị đúng tỉ lệ trên canvas.
  • Thêm làn đường, giao lộ, phương tiện, người đi bộ, biển báo, mũi tên, văn bản lên trên.
  • Lớp chú thích được quản lý riêng, không ghi đè file .pgm gốc.
  • Có thể dùng cho hình trong bài báo (bản đồ SLAM có vẽ tuyến đường), tài liệu giảng dạy (hiển thị thế giới mà Planner đang nhìn), hoặc gán nhãn ground truth đơn giản.

Lưu ý: nhập là một chiều. drawtonomy không thay thế công cụ chỉnh sửa bản đồ cho nav2. Hãy coi đây là công cụ “thêm chú thích dễ đọc lên bản đồ SLAM”.

Xem thêm tại Nhập bản đồ lưới chiếm dụng ROS.