2010-05-25 35 views
11

Tôi có một cánh đồng chứa đầy những trở ngại, tôi biết họ đang ở đâu, và tôi biết vị trí của robot. Sử dụng thuật toán tìm đường dẫn, tôi tính toán đường dẫn cho rô bốt theo dõi.Hướng dẫn Robot qua đường dẫn

Bây giờ vấn đề của tôi là, tôi đang hướng dẫn robot từ lưới đến lưới nhưng điều này tạo ra chuyển động không trơn tru. Tôi bắt đầu tại A, xoay mũi đến điểm B, di chuyển thẳng cho đến khi tôi đạt đến điểm B, rửa sạch và lặp lại cho đến khi đạt đến điểm cuối cùng.

Vì vậy, câu hỏi của tôi là: Loại kỹ thuật nào được sử dụng để điều hướng trong môi trường như vậy để tôi có chuyển động mượt mà?

Robot có hai bánh và hai động cơ. Tôi thay đổi hướng của động cơ bằng cách xoay động cơ ngược lại.

EDIT: Tôi có thể thay đổi tốc độ của động cơ về cơ bản robot là một arduino cộng với ardumoto, tôi có thể cung cấp giá trị từ 0-255 cho các động cơ theo một trong hai hướng.

+2

nếu tất cả những gì bạn muốn làm là làm mượt chuyển động, hãy thử tính đường cong spline cho đường dẫn cần theo sau –

+0

@ đó là những gì tôi muốn nhưng những gì tôi không có đầu mối là làm thế nào để tôi ánh xạ đường cong đến tốc độ động cơ. –

+0

Đó sẽ là một tỷ lệ dựa trên độ dốc của đường cong tại locus hiện tại dọc theo nó; về cơ bản, một đường thẳng có tỷ lệ công suất động cơ bánh xe là 1: 1, với các lefts sắc nét và các quyền như 0: 1 và 1: 0. Do đó, các đường cong được uốn cong, vì vậy một lượt rẽ nhẹ nhàng sang trái có thể là 0,75: 1. –

Trả lời

8

Bạn cần tuyến tính phản hồi cho rô bốt định hướng khác. Điều này document giải thích nó trong Phần 2.2. Tôi đã bao gồm phần có liên quan dưới đây:

Robot mô phỏng cần thiết cho dự án là một di ff ổ erential Robot với một vận tốc giới hạn. Vì các rô-bốt truyền động khác nhau là không hoạt động, các sinh viên được khuyến khích sử dụng sự phản hồi tuyến tính để chuyển đổi đầu ra điều khiển động học từ các thuật toán của chúng để điều khiển các rô bốt truyền động khác nhau. Việc chuyển đổi sau:

Transformation

nơi v, ω, x, y là tuyến tính, vận tốc góc, và động học. L là chiều dài được thiết lập theo tỷ lệ thuận với kích thước cơ sở bánh xe của robot.

+0

Cảm ơn! Hãy suy nghĩ tôi sẽ repost nó ở đây thay vì liên kết với bản sao lưu trữ. – Jacob

1

những suy nghĩ ban đầu của tôi về vấn đề này (tôi tại nơi làm việc nên không thể dành quá nhiều thời gian):

Nó phụ thuộc vào cách chặt chẽ mà bạn muốn hoặc cần góc của bạn sẽ được (mà sẽ phụ thuộc vào khoảng cách bao nhiêu bạn công cụ tìm đường cung cấp cho bạn từ các chướng ngại vật)

Với chiều rộng của robot, bạn có thể tính bán kính quay cho tốc độ cho mỗi bánh xe. Giả sử bạn muốn đi càng nhanh càng tốt và trượt không phải là một vấn đề, bạn sẽ luôn luôn giữ bánh xe bên ngoài tại 255 và giảm bánh xe bên trong xuống đến tốc độ cung cấp cho bạn bán kính quay cần thiết.

Với góc cho bất kỳ lượt rẽ cụ thể nào trên đường đi của bạn và bán kính quay mà bạn sẽ sử dụng, bạn có thể tính khoảng cách từ nút đó, nơi bạn sẽ làm chậm bánh xe bên trong.

5

Một thuật toán kiểm soát tôi đã có kết quả khá tốt với là pure pursuit. Về cơ bản, robot cố gắng di chuyển đến một điểm dọc theo con đường một khoảng cách cố định phía trước robot. Vì vậy, khi robot di chuyển dọc theo con đường, điểm nhìn phía trước cũng tiến bộ. Thuật toán bù đắp cho các ràng buộc phi holonomic bằng cách mô hình hóa các đường dẫn có thể là các cung tròn.

Khoảng cách nhìn phía trước lớn hơn sẽ tạo ra chuyển động mượt mà hơn. Tuy nhiên, nhìn xa hơn về phía trước sẽ khiến robot cắt góc, có thể va chạm với các chướng ngại vật. Bạn có thể khắc phục vấn đề này bằng cách thực hiện các ý tưởng từ một thuật toán điều khiển phản ứng gọi là Vector Field Histogram (VFH). VFH về cơ bản đẩy robot ra xa tường. Trong khi điều này thường sử dụng một cảm biến tìm kiếm phạm vi của một số loại, bạn có thể ngoại suy các vị trí tương đối của các chướng ngại vật kể từ khi bạn biết tư thế robot và các chướng ngại vật.

0

Cách tiếp cận tối ưu hóa là một cách rất chung để xử lý việc này.

Sử dụng đường dẫn được tính làm đầu vào cho thuật toán tối ưu hóa phi tuyến tính chung (lựa chọn của bạn!) Với chức năng chi phí tạo thành quỹ đạo trả lời cho quỹ đạo đầu vào cũng như tuân thủ các ràng buộc phi kinh tế và bất kỳ ràng buộc nào khác mà bạn muốn thực thi (ví dụ như tránh xa các chướng ngại vật). Thuật toán tối ưu hóa cũng có thể được khởi tạo với quỹ đạo được xây dựng từ quỹ đạo ban đầu.

Ghi chú khóa học về robot của Marc Toussaint là một nguồn tốt cho phương pháp tiếp cận này. Xem trong bài giảng cụ thể 7: http://userpage.fu-berlin.de/mtoussai/teaching/10-robotics/

Các vấn đề liên quan