Đến nội dung chính
Robot & AI hiện thân

Motion Planning và Obstacle Avoidance

Từ configuration space đến đường đi, local replanning và các giới hạn của collision checking.

Mức giải thích

Motion planning tìm chuyển động đáp ứng ràng buộc robot và môi trường. Một đường trên bản đồ 2D chưa phải trajectory khả thi theo thời gian, và một lần collision check không bảo đảm môi trường sẽ đứng yên.

Mục tiêu học tập

  • Phân biệt path, trajectory, planner và controller.
  • Giải thích configuration space và obstacle inflation.
  • Chạy một ví dụ tìm đường lưới và nêu phạm vi đúng của nó.

Robot có kích thước và ràng buộc

Configuration space biểu diễn trạng thái cấu hình như vị trí/hướng mobile robot hoặc góc khớp. Trong ví dụ robot tròn trên mặt phẳng, có thể phóng to chướng ngại theo bán kính robot rồi tìm đường cho tâm. Đây là đơn giản hóa có giả định.

Robot có giới hạn quay, gia tốc hoặc nonholonomic constraints cần planner và trajectory generation phù hợp. Nội suy giữa hai cấu hình cũng phải được kiểm tra va chạm, không chỉ hai đầu mút.

Tìm kiếm đường ứng viên

BFS phù hợp lưới hữu hạn với cạnh cùng trọng số. Dijkstra hỗ trợ cost không âm; A* thêm heuristic và có điều kiện cho tính tối ưu. Trong không gian liên tục nhiều chiều, OMPL cung cấp nhiều sampling-based planners với giả định và trade-off riêng.

Vật cản động và đường đã cũ

Global planning xác định tuyến tổng thể; local planning/control xử lý trạng thái và chướng ngại gần hiện tại. Đặt freshness limit và timeout. Mã BFS chỉ dùng bản đồ cố định, robot là điểm và chuyển động bốn hướng.

Workflow & kiến trúc

Ví dụ lưới với chướng ngại và đường ứng viên. Robot có kích thước nên kiểm tra collision trong configuration space; tìm đường không thay thế điều khiển và tránh vật cản động.
01Map + robot model
02Collision representation
03Search path
04Trajectory + feedback
Workflow minh họa · Các bước cần được điều chỉnh theo bài toán thực tế.

Ứng dụng & giới hạn

  • Lập tuyến trên bản đồ tĩnh trong mô phỏng.
  • Phân tích collision model và replanning cho robot.

Điểm mạnh

Tách mô hình môi trường, ràng buộc và tìm kiếm để kiểm tra từng phần.

Giới hạn cần nhớ

Bản đồ, kích thước robot và latency sai có thể làm một đường tính được không khả thi ngoài đời.

Thử trong một project nhỏ

LEARN BY DOING

Thêm bán kính robot tương đương một ô bằng obstacle inflation. So đường còn tồn tại hay không; giải thích vì sao thuật toán đúng trên lưới vẫn chưa là giải pháp điều khiển.

PYTHON · VÍ DỤ MINH HỌA
from collections import deque
blocked = {(1, 1), (1, 2)}
start, goal = (0, 0), (3, 3)
queue, parent = deque([start]), {start: None}
while queue:
    current = queue.popleft()
    if current == goal:
        break
    x, y = current
    for nxt in [(x+1,y), (x-1,y), (x,y+1), (x,y-1)]:
        a, b = nxt
        if 0 <= a < 4 and 0 <= b < 4 and nxt not in blocked and nxt not in parent:
            parent[nxt] = current
            queue.append(nxt)
path = []
node = goal if goal in parent else None
while node is not None:
    path.append(node)
    node = parent[node]
path.reverse()
assert path[0] == start and path[-1] == goal
assert all(cell not in blocked for cell in path)
print(path)

BFS trên lưới giả định 4×4, robot là điểm, cost cạnh bằng nhau; không chạy robot và không xử lý vật cản động.

Nguồn tham khảo

  1. OMPL — Open Motion Planning Library
  2. Cadena et al. — Past, Present, and Future of SLAM (2016)

KEEP EXPLORING

Đọc tiếp để nối các ý tưởng.