Tôi nên sử dụng thuật toán nào để cân bằng robot hai bánh bằng con quay hồi chuyển?


25

Có một thuật toán tốt, phổ biến và đáng tin cậy mà tôi có thể sử dụng bằng cách lấy đầu vào từ con quay hồi chuyển và sử dụng thuật toán này để điều khiển hai bánh xe độc ​​lập để giữ cho một robot cân bằng như vậy đứng thẳng? Tôi đang tìm kiếm một thuật toán cho phép tôi sử dụng nó để điều khiển robot xung quanh cũng như giữ cho nó đứng thẳng khi đứng yên. Khả năng đối phó với khuynh hướng và mọi người huých nó cũng sẽ là một phần thưởng, nhưng không cần thiết.


Tôi cũng sẽ làm việc này. Bạn phải sử dụng bộ lọc kalman để lọc dữ liệu thô của bạn. Và sử dụng thuật toán PID để điều chỉnh nó.
Huzo

Câu trả lời:


16

Bộ điều khiển đơn giản nhất là bộ điều khiển phản hồi trạng thái tuyến tính. Về cơ bản có 4 trạng thái khác nhau mà bạn cần đạt được. Đó là góc nghiêng, tốc độ nghiêng, tốc độ và vị trí.


LQR (bộ điều chỉnh bậc hai tuyến tính) là một phương pháp để thiết kế các mức tăng này (sau khi có được biểu diễn không gian trạng thái tuyến tính của hệ thống của bạn). Nếu bạn không có biểu diễn không gian trạng thái (có thể bạn không), bạn có thể nhận phương trình chuyển động và đo các tham số. Nếu bạn không có đại diện không gian trạng thái, bạn chỉ nên điều chỉnh mức tăng theo cách thủ công (không có LQR hoặc các phương pháp khác như vị trí cực ).


Điều chỉnh tăng thủ công:

Giả sử góc nghiêng, vị trí / tốc độ và mô-men xoắn của bánh xe đều được chuyển hướng về phía trước (nếu dương), bạn muốn đạt được mức tăng tích cực về góc nghiêng và tốc độ nghiêng của mình, cũng như mức tăng tích cực về vị trí và tốc độ.

Bắt đầu với mức tăng về góc nghiêng và tốc độ nghiêng. Điều này sẽ làm cho nó cân bằng ban đầu. Khi nó vẫn cân bằng, bạn có thể kiểm soát vị trí và tốc độ bằng cách thêm mức tăng cho chúng. Nếu nó không ổn định, hãy tăng mức tăng về tốc độ nghiêng (giúp làm ẩm hệ thống).

Điều khiển vị trí / tốc độ sẽ điều khiển cả hai trạng thái về không. Để kiểm soát một số giá trị khác, bạn chỉ cần một bộ điều khiển theo dõi tham chiếu, bằng cách thay thế các trạng thái bằng các lỗi của chúng trước khi đưa nó vào bộ điều khiển của bạn (ví dụ: tham chiếu tốc độ hiện tại - tốc độ hiện tại).

Điều khiển ngáp có thể được thực hiện một cách độc lập (với sự khác biệt về bánh xe được thêm vào bộ điều khiển cân bằng / tốc độ / vị trí chính).


9

Tôi tin rằng giải pháp phổ biến nhất cho vấn đề này là bộ điều khiển LQR . Vấn đề bạn đang cố gắng giải quyết là vấn đề con lắc ngược . Sử dụng các từ khóa đó, bạn sẽ có thể mã nguồn mở của ai đó. Vấn đề tiếp theo sẽ là ánh xạ hầu hết các đại lượng vật lý có liên quan đến ứng dụng của bạn (trọng lượng, mô-men xoắn động cơ, v.v ...)


5

Vì tôi không biết các kỹ năng của bạn về kỹ thuật / lý thuyết điều khiển, tôi khuyên bạn nên bắt đầu với bộ điều khiển PID . Nó là một bộ điều khiển đơn giản và bạn sẽ tìm thấy nhiều triển khai mã của nó. Hạn chế của PID là có thể bạn sẽ dành thời gian để điều chỉnh các tham số bằng tay.

Vài năm trước tôi đã sử dụng nó để điều khiển một robot Lego Mindstorm hai bánh dựa trên hình học của nó và nó hoạt động đủ tốt. Để làm cho nó di chuyển xung quanh, bạn sẽ cần phải chơi với các điểm đã đặt.

Tất nhiên, sau này bạn có thể cải thiện chất lượng bộ điều khiển của mình (độ ổn định, độ bền, v.v.) bằng cách sử dụng các luật điều khiển nâng cao hơn như LQR đã đề cập trước đó.

Chúc may mắn!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.