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 ROS — nav1 map_server, nav2 map_server — đọc định dạng này. Các package SLAM như gmapping, Cartographer và slam_toolbox xuất ra định dạng này.
Hai file
Phần tiêu đề “Hai file”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.pgmresolution: 0.05 # mét mỗi pixelorigin: [-12.2, -28.5, 0.0] # tọa độ thực của góc dưới trái ảnh (x, y, yaw)negate: 0occupied_thresh: 0.65free_thresh: 0.196Với resolution và origin, có thể chuyển đổi qua lại giữa tọa độ pixel và tọa độ thực.
Bản đồ được tạo ra từ đâu
Phần tiêu đề “Bản đồ được tạo ra từ đâu”Thường theo các luồng sau:
- Đ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.
- Chạy Cartographer offline trên bag file đã ghi, xuất ra dạng occupancy grid.
- 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).
Vị trí của drawtonomy
Phần tiêu đề “Vị trí của drawtonomy”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
resolutionvàorigintừ 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
.pgmgố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.