Robotics & Automation hoạt động

Lập kế hoạch đường đi cho robot

Path Planning — Hoạch định đường đi

Đã chạy được. Mục này có công cụ tính toán thật trên nền tảng, không phải mô tả lộ trình.

Tìm đường trên lưới BFS thật trên bản đồ bạn nhập

Chạy tìm kiếm theo chiều rộng thật trên bản đồ bạn gõ vào và vẽ lại đường đi tìm được. Sửa vật cản rồi chạy lại để thấy đường đổi theo.

Đang chạy trên dữ liệu mẫu, không phải dữ liệu của bạn. Các ô còn nguyên mẫu dựng sẵn: Bản đồ ('#' vật cản, 'S' bắt đầu, 'E' đích). Chọn nguồn dữ liệu khác ở cột bên trái rồi chạy lại để có kết quả của riêng bạn.
Độ dài đường đi 31 bước
Khoảng cách Manhattan 15
Vòng do vật cản +16 bước
Số ô đã duyệt 45
Kết luận Vòng thêm 16 bước vì vật cản
① Nguồn dữ liệu

Nhận dấu phẩy, chấm phẩy hoặc tab; tự nhận dòng tiêu đề; hiểu cả 1.234.567 lẫn 1.234,56.

Chỉ tải http/https tới địa chỉ công khai; địa chỉ nội bộ bị từ chối.

Giá trị mặc định là ví dụ chạy được — bấm Tính ngay để xem kết quả, rồi thay dữ liệu của bạn vào.

Số ô mà BFS chạm ở mỗi mức khoảng cách

Số ô mà BFS chạm ở mỗi mức khoảng cách3.362.241.12-4.441e-160: 11: 22: 23: 24: 25: 26: 37: 28: 29: 210: 211: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 229: 130: 231: 10481216202428

Sóng lan đều ra mọi hướng vì BFS không biết đích ở đâu — nó chạm 45 ô để tìm đường 31 bước. A* dùng heuristic hướng về đích chính là để cắt phần lớn diện tích này.

Diễn giải nhanh

Đường đi 31 bước, dài hơn khoảng cách Manhattan 15 đúng 16 bước

Phần chênh là cái giá của vật cản. Bằng 0 nghĩa là có đường đi hoàn toàn theo bậc thang thẳng tới đích và bản đồ gần như không cản trở gì.

BFS lấy ra 45 ô khỏi hàng đợi để tìm đường 31 bước

Tỷ lệ 1.5 ô duyệt trên mỗi bước đường đi. BFS đảm bảo tối ưu nhưng trả giá bằng việc quét đều mọi hướng; đó là lý do bản đồ lớn cần A* hoặc Dijkstra có hàng đợi ưu tiên.

25/70 ô bị chặn (36% bản đồ)

Mật độ vật cản càng cao thì đường đi càng dễ bị ép sát tường. Bản đồ thật cần nới rộng vật cản thêm bán kính robot trước khi chạy tìm đường, nếu không đường tìm được sẽ không đi lọt.

Nếu cho đi chéo, giới hạn dưới chỉ còn 9 bước

BFS ở đây dùng 4 hướng nên đường chéo phải đi thành bậc thang. Cho phép 8 hướng rút ngắn đường nhưng phải đổi chi phí bước chéo thành √2, nếu không kết quả không còn là đường ngắn nhất thật.

Khi nào con số này sai: BFS trên lưới 4 hướng cho đường ngắn nhất theo SỐ Ô, không theo khoảng cách thật và không xét khoảng cách an toàn tới vật cản. Robot thật cần phạt việc đi sát tường, nếu không nó sẽ cọ vào góc.

Chi tiết

Kích thước lưới 10 × 7
Số ô vật cản 25
Thuật toán Breadth-first search, 4-connectivity
Đường đi
S.........
•####.###.
•••••#•••#
####•#•#•.
•••••#•#•#
•#####•#••
•••••••#.E

Số ô mà BFS chạm ở mỗi mức khoảng cách

Số ô mà BFS chạm ở mỗi mức khoảng cách3.362.241.12-4.441e-160: 11: 22: 23: 24: 25: 26: 37: 28: 29: 210: 211: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 229: 130: 231: 10481216202428

Sóng lan đều ra mọi hướng vì BFS không biết đích ở đâu — nó chạm 45 ô để tìm đường 31 bước. A* dùng heuristic hướng về đích chính là để cắt phần lớn diện tích này.

45

Đã duyệtÔ trống chưa duyệtVật cản
45Đã duyệt: 45 (64.3%)Ô trống chưa duyệt: 0 (0.0%)Vật cản: 25 (35.7%)45

Trên tổng 70 ô của lưới 10 × 7. Phần chưa duyệt là công sức tiết kiệm được do tìm thấy đích trước khi phải quét hết.

Danh sách đoạn đi thẳng

ĐoạnHướngSố bướcTới ô (cột, hàng)
1xuống2(0, 2)
2sang phải4(4, 2)
3xuống2(4, 4)
4sang trái4(0, 4)
5xuống2(0, 6)
6sang phải6(6, 6)
7lên4(6, 2)
8sang phải2(8, 2)
9xuống3(8, 5)
10sang phải1(9, 5)
11xuống1(9, 6)

Toàn bộ chỉ số

Kích thước lưới 10 × 7
Số ô vật cản 25
Thuật toán Breadth-first search, 4-connectivity
Đường đi
S.........
•####.###.
•••••#•••#
####•#•#•.
•••••#•#•#
•#####•#••
•••••••#.E

Công thức đang dùng

BFS 4-connectivity — cho đường ngắn nhất theo số ô

Đây là công thức thật mà mã nguồn chạy, không phải mô tả gần đúng. API tại /api/v1/tools/grid-path gọi đúng hàm này, nên kết quả trên trang và qua API không thể lệch nhau.

Cách dùng

  1. Điền tham số ở cột trái. Mọi ô đã có sẵn giá trị ví dụ chạy được, nên bạn có thể bấm Tính ngay trước rồi sửa sau.
  2. Với ô dữ liệu: dán vài chục dòng để thử, hoặc tải file CSV/TXT lên để chạy thật. File tối đa 32 MB, 200.000 dòng; bộ đọc nhận dấu phẩy, chấm phẩy hoặc tab, tự nhận dòng tiêu đề, và hiểu cả 1.234.567 lẫn 1.234,56.
  3. Đọc thẻ số ở trên cùng, rồi mục Diễn giải nhanh để biết con số đó nói gì.
  4. Đọc dòng “Khi nào con số này sai” trước khi dùng kết quả để quyết định — đó là giả định vỡ đầu tiên.
Giới hạn chung. Công cụ này tính đúng công thức của nó trên dữ liệu bạn đưa vào. Nó không kiểm tra dữ liệu của bạn có phù hợp với giả định của phương pháp hay không — phần đó vẫn là việc của người dùng, và mục “sai ở đâu” bên dưới trang liệt kê các chỗ hỏng thường gặp.

Lập kế hoạch đường đi cho robot là gì

Lập kế hoạch đường đi tìm lộ trình từ điểm đầu tới đích tránh vật cản. Bài toán chia hai lớp: thuật toán trên lưới (A*, Dijkstra) cho không gian rời rạc, và thuật toán lấy mẫu (RRT*, PRM) cho không gian nhiều chiều.

Làm thế nào

  1. Biểu diễn không gian: lưới chiếm dụng hoặc đồ thị.
  2. Chọn thuật toán theo số chiều — A* không khả thi khi số chiều lớn.
  3. Làm mượt đường đi sau khi tìm được để robot chạy êm.
  4. Lập lại kế hoạch khi phát hiện vật cản mới (D* Lite).

Đo bằng chỉ số nào

Độ dài đường đi so với đường tối ưu
Thời gian tính phải nhỏ hơn chu kỳ điều khiển
Khoảng cách an toàn tới vật cản ràng buộc an toàn

Sai ở đâu

Phần quan trọng nhất của trang này. Một phương pháp được mô tả mà không nói chỗ nó hỏng là phiên bản quảng cáo của phương pháp đó.

! Đường tối ưu về độ dài thường sát vật cản; cần phạt khoảng cách an toàn trong hàm chi phí.
! RRT* hội tụ về tối ưu nhưng rất chậm; trong thực tế thường dừng sớm và chấp nhận gần tối ưu.

Mô hình định lượng dùng trong Robotics

Chưa có mô hình nào gắn riêng cho chủ đề này. Đây là những mô hình của cả ngành — liên quan ở cấp ngành, không phải cấp chủ đề.

Tất cả mô hình →
Hidden Markov Modelsắp có

Suy ra trạng thái ẩn từ quan sát.

Kalman Filterbeta

Ước lượng trạng thái ẩn từ quan sát nhiễu, cập nhật liên tục.

CNNsắp có

Tích chập cho dữ liệu có cấu trúc không gian.

Reinforcement Learningsắp có

Học chính sách hành động qua thử và phần thưởng.

Câu hỏi thường gặp

Lập kế hoạch đường đi cho robot là gì?

Lập kế hoạch đường đi tìm lộ trình từ điểm đầu tới đích tránh vật cản. Bài toán chia hai lớp: thuật toán trên lưới (A*, Dijkstra) cho không gian rời rạc, và thuật toán lấy mẫu (RRT*, PRM) cho không gian nhiều chiều.

Lập kế hoạch đường đi cho robot được làm như thế nào?

1. Biểu diễn không gian: lưới chiếm dụng hoặc đồ thị. 2. Chọn thuật toán theo số chiều — A* không khả thi khi số chiều lớn. 3. Làm mượt đường đi sau khi tìm được để robot chạy êm. 4. Lập lại kế hoạch khi phát hiện vật cản mới (D* Lite).

Lập kế hoạch đường đi cho robot hay sai ở đâu?

Đường tối ưu về độ dài thường sát vật cản; cần phạt khoảng cách an toàn trong hàm chi phí. RRT* hội tụ về tối ưu nhưng rất chậm; trong thực tế thường dừng sớm và chấp nhận gần tối ưu.

Đo lập kế hoạch đường đi cho robot bằng chỉ số nào?

Độ dài đường đi — so với đường tối ưu; Thời gian tính — phải nhỏ hơn chu kỳ điều khiển; Khoảng cách an toàn tới vật cản — ràng buộc an toàn.

Lập kế hoạch đường đi cho robot trên QuantHub đã dùng được chưa?

Chưa xây dựng. Mục này hiện là điều hướng và tài liệu tham chiếu; chúng tôi không gắn nhãn 'live' cho thứ chưa chạy.

Chủ đề khác trong Robotics

Toàn bộ Robotics
SLAM Motion Planning Sensor Fusion Robot Vision Navigation Reports API Documentation