Robot không bao giờ đi thẳng


19

Tôi đang sử dụng 2 động cơ DC giống hệt nhau và một bánh xe thầu dầu. Các động cơ được kết nối với trình điều khiển động cơ L293D và được điều khiển bởi RPi .

Robot không đi thẳng. Nó rẽ sang phải. Tôi đang chạy cả hai động cơ ở mức 100% .

Những gì tôi đã cố gắng để sửa lỗi:

  1. Tôi đã điều chỉnh PWM của bánh xe đi nhanh hơn đến 99% , nhưng robot chỉ quay sang phía bên kia;
  2. Tôi đã điều chỉnh trọng lượng trên robot và vấn đề vẫn còn tồn tại.

Tôi đã từng cố gắng chạy động cơ mà không tải. Có phải đó là nguyên nhân của việc này, như sau này tôi đã nói rằng, chạy một động cơ DC mà không có bất kỳ tải nào làm hỏng chúng?

Nếu đó không phải là nguyên nhân, thì vui lòng cho tôi biết cách giải quyết vấn đề này mà không cần sử dụng bất kỳ cảm biến nào để kiểm soát nó.


Trong một cấu hình ổ đĩa vi sai mà tôi hình ảnh là những gì bạn sử dụng, điều này rất có thể xảy ra. Một sự khác biệt nhỏ giữa hai động cơ sẽ khiến robot quay.
Demetris

4
Chào mừng bạn đến kiểm soát vòng lặp mở. Bạn cần các cảm biến của chính bạn (đôi mắt của bạn) để tự phát hiện vấn đề, bạn nghĩ robot sẽ có thể phát hiện ra nó như thế nào mà không cần thêm cảm biến? Đóng vòng điều khiển với các cảm biến là cách để đi.
Đơn vị uốn cong ngày 22

1
Động cơ bước có thể hoạt động nếu bạn muốn tránh cảm biến.

@bdares - Nếu không có cảm biến, làm sao robot biết khi nào khóa học đúng? Nếu một bánh xe chạm vào khu vực có ma sát thấp (ví dụ bụi) và trượt, robot sẽ quay và sẽ không bao giờ sửa.
Chuck

Khi bạn nói không có cảm biến, điều này có nghĩa là không có cảm biến bên ngoài hay bạn cũng đang loại trừ các bộ mã hóa trên các bánh xe? bởi vì đó là giải pháp điển hình cho vấn đề này
JamesRyan

Câu trả lời:


29

Tôi gửi bài này như một câu trả lời vì đây là các câu trả lời.

Bạn không thể.

Như @ BendingUnit22 đề cập, bạn đang thử điều khiển "vòng lặp mở". Tiếng ồn và các biến thể sẽ có nghĩa là robot của bạn sẽ không bao giờ lái một đường thẳng hoàn hảo.

Các động cơ có thể có điện trở cuộn dây khác nhau (dòng điện / mô-men xoắn khác nhau), các bánh xe có thể có kích cỡ khác nhau, các bánh xe có thể có các đặc điểm lực kéo khác nhau, ổ trục có thể "cứng", bánh xe có thể không thẳng hoàn toàn khi xe khởi động , sàn có thể có các đặc điểm ma sát bề mặt khác nhau (đọc: bụi hoặc thảm) - danh sách cứ lặp đi lặp lại.

Cách duy nhất để tính đến những thứ nằm ngoài sự kiểm soát của bạn (những gì tôi đề cập ở trên + nhiều hơn) là sử dụng các cảm biến phản hồi.

Bạn có thể cố gắng để có được hiệu suất vòng mở tốt hơn bằng cách sửa các vấn đề tôi đã liệt kê, nhưng thậm chí còn nhiều hơn và bạn chỉ đơn giản là không thể kiểm soát mọi thứ.


5
Chính xác! Vấn đề nằm ở tuyên bố "Tôi đang sử dụng 2 động cơ DC giống hệt nhau". Chúng không bao giờ giống hệt nhau hoàn toàn, và như @Chuck đề cập, có rất nhiều cân nhắc khác. Điều duy nhất chắc chắn trong chế tạo robot là lỗi và tiếng ồn sẽ xuất hiện.
Ryan Loggery tiết

2
Sử dụng hai bánh xe trên cùng một trục sẽ vẫn mang lại kết quả tốt hơn nhiều so với việc chỉ sử dụng hai động cơ giống nhau, phải không?
John Dvorak

@JanDvorak - Tôi không hoàn toàn chắc chắn ý của bạn khi bạn nói, "Hai bánh xe trên cùng một trục", nhưng tôi tin rằng nó được hiểu / ngụ ý rằng hai bánh xe nằm trên cùng một trục hình học. Nếu bạn có nghĩa là cùng một trục điều khiển (như trong một động cơ) hoặc trục (một lần nữa ngụ ý một động cơ), thì tôi sẽ chỉ ra rằng không thể thực hiện lái xe vi sai với trục bị khóa. Để một động cơ điều khiển cả hai bánh xe đến các tốc độ khác nhau cần có vi sai (và các thiết bị khác), và vi sai có hiệu quả phá vỡ trục thành hai mảnh và bạn quay lại ở góc vuông.
Chuck

Tôi đã có nghĩa là một trục, xin lỗi. Tôi không biết có một yêu cầu để có thể đi thẳng không?
John Dvorak

2
@JanDvorak - Tôi tin rằng robot của OP là một phương tiện kiểu micromouse. Ngay cả khi nó chỉ phải đi thẳng và sử dụng một trục, tất cả các nguồn lỗi khác vẫn được áp dụng. Nếu một bánh xe có đường kính lớn hơn 0,1% so với bánh xe kia thì nó sẽ đi được một quãng đường dài hơn 0,1% so với lốp nhỏ hơn trên mỗi vòng quay . Ví dụ, kích thước bánh xe danh nghĩa là 10cm và khoảng cách bánh xe là 10cm. Lốp xe lớn hơn là 10,01cm và đi xa hơn 0,0314cm mỗi vòng quay . Đối với cơ sở bánh xe, robot quay 0,12 độ mỗi vòng quay bánh xe . 0,01cm có thể dễ dàng từ bụi trên một lốp xe.
Chuck

6

Vì vấn đề vòng lặp mở đã được đề cập, tôi sẽ đưa ra nhận xét cho "Tôi đã từng thử chạy động cơ dc mà không tải".
Có bạn có thể làm hỏng động cơ của bạn với điều này nhưng bạn cũng có thể làm hỏng hoặc phá hủy động cơ của bạn với một tải. Sự hủy diệt đang đến từ hiện tại và nhiệt độ kết quả. Nếu không có khói và một số mùi rõ ràng phát ra từ động cơ thì rất có thể nó không bị hư hại. Từ kinh nghiệm của mình, tôi có thể nói rằng động cơ dc quy mô sở thích sẽ bắt đầu xuống cấp ở nhiệt độ trên 100 ° C. Và bạn chắc chắn sẽ nhận thấy nhiệt độ như vậy

EDIT:
Tôi đã nghĩ về điều này một lần nữa và tôi có thể có một ý tưởng mà đồng nghiệp của bạn có thể đã được nói đến. Có một loại AC-Motor đặc biệt. Đây là những động cơ đồng bộ không kích thích. Về cơ bản chúng được xây dựng để tự hủy diệt. Nếu bạn tăng sức mạnh cho chúng, chúng sẽ bắt đầu tăng tốc cho đến khi chúng tự tháo rời. Nhưng nếu bạn đặt một vật nặng lên chúng, chúng không thể đạt đến trạng thái này, chỉ vì thời điểm rất lớn mà chúng phải áp dụng cho tải. Vì vậy, bạn có thể sử dụng chúng cho mục đích hợp lý. Dù sao, bạn chắc chắn không có một động cơ như thế này trong ứng dụng của bạn.


1
Tôi cũng nghĩ rằng, đặc biệt là với các động cơ sở thích, vào thời điểm bạn làm nóng nó đủ để nhận thấy nó nóng hoặc có mùi buồn cười, có lẽ bạn đã đốt cháy lớp cách nhiệt khỏi cuộn dây. Giống như nhiều thiết bị điện, nó hoạt động tốt hoặc bị hỏng. Không có nhiều trường hợp ở giữa.
Chuck

Không có khói hoặc bất kỳ thiệt hại rõ ràng. Vì vậy, có lẽ nó không bị hư hại khi tôi chạy nó trong ít hơn nửa phút.
Chuột

2

Những gì bạn đang mô tả được gọi là điều khiển vòng hở, và để làm được điều này, bạn cần hai động cơ giống hệt nhau, hai bánh xe giống hệt nhau, trọng tâm robot nằm ở trung tâm giữa các bánh xe, một mạch điện đối xứng hoàn hảo, và cuối cùng là một bề mặt đồng phục hoàn hảo để chạy trên.

Để thực hiện điều này, bạn thường đặt hàng chục hoặc hàng trăm mỗi bộ phận, sau đó thực hiện thử nghiệm quan trọng để tìm ra hai động cơ khớp với nhau nhất về công suất và tốc độ so với điện áp và PWM. Làm tương tự cho các bánh xe, bộ điều khiển động cơ và các bộ phận khác.

Quá trình này được gọi là binning - sau những thử nghiệm này, bạn sắp xếp chúng theo khả năng hoặc đặc điểm của chúng. Nó được coi là tốn kém hơn nhiều về cả thời gian và tài nguyên để thực hiện đúng hơn là thay đổi sang mô hình vòng kín và thậm chí không tính đến điều kiện mặt đất kém.

Tuy nhiên, đó là một cách để đạt được yêu cầu của bạn mà không cần thêm cảm biến.


1

Mặc dù nó sẽ không bao giờ hoàn hảo, nhưng có thể có một cách đơn giản để khiến nó đi thẳng hơn.

Nếu ở mức 100% -100% chiếc xe luôn rẽ trái, và ở mức 100% -99% chiếc xe luôn rẽ phải, bạn sẽ có thể cải thiện điều đó bằng cách thử các giá trị ở giữa.

Bắt đầu với 100% -99,5% và tiếp tục với 100% -99,75% hoặc 100% -99,25% tùy theo kết quả. Điều này sẽ sớm hội tụ đến một tình huống mà bạn sẽ đi thẳng 'trung bình'.


0

Chà, nếu vấn đề không nằm ở sự khác biệt về phần cứng và phần mềm cho mỗi bánh xe, thì đó có lẽ là vấn đề với sự không hoàn hảo tự nhiên trong cách bạn chế tạo robot hoặc cách sản xuất động cơ. Các kết nối có thể không ổn định hoặc RPI có thể không xuất ra cùng dòng. Bạn có thể muốn được sử dụng bộ điều khiển tốc độ. Hãy thử nó trước.

Nếu điều đó không hiệu quả, nhà sản xuất của bạn có thể đã không tạo ra các động cơ giống hệt nhau và có lẽ bạn sẽ phải hiệu chỉnh các động cơ. Nó có thể có nghĩa là nhân rộng giá trị của động cơ mạnh hơn để 100% năng lượng cho động cơ mạnh phù hợp với động cơ yếu.


2
Sử dụng bộ điều khiển động cơ giống hệt nhau sẽ không giải quyết vấn đề trong tầm tay. Vấn đề nằm ở cốt lõi của robot, đó là "làm thế nào để tôi sửa lỗi?"
Ryan Loggery tiết

Tôi đã nghe nói rằng động cơ DC có thể chạy chậm hơn một chút về phía trước. Ngoài ra, bất kỳ sự mất cân bằng trong trọng lượng có thể gây ra một số dịch chuyển sang một bên. Không đề cập đến những thứ khác như ma sát, vv Làm bất cứ điều gì "giống hệt" sẽ không hiệu quả. Stepper có thể làm tốt hơn một chút, nhưng sau đó bạn không nên lái xe quá nhanh hoặc bất cứ điều gì ...
Paul

-2

Bánh xe có động cơ dc nên b ở phía trước. Và bánh xe đắt tiền ở phía sau. Sau đó, nó sẽ di chuyển thẳng chỉ theo hướng về phía trước


Chào mừng đến với Robotics Arslan. Trên Stack Exchange, chúng tôi đang tìm kiếm câu trả lời toàn diện cung cấp một số giải thích và bối cảnh. Câu trả lời rất ngắn không thể làm điều này, vì vậy hãy chỉnh sửa câu trả lời của bạn để giải thích tại sao nó đúng, lý tưởng với trích dẫn. Câu trả lời không bao gồm giải thích có thể được gỡ bỏ.
Đánh dấu gian hàng
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.