Robot nigdy nie idzie prosto

19

Używam 2 identycznych silników prądu stałego i kółka samonastawnego. Silniki są podłączone do sterownika silnika L293D i są sterowane przez RPi .

Robot nie jedzie prosto. Skręca w prawo. Pracuję oba silniki na 100% PWM .

Co próbowałem naprawić błąd:

  1. Dostosowałem PWM koła jadącego szybciej do 99% , ale robot po prostu skręca na drugą stronę;
  2. Wyregulowałem ciężar robota, a problem nadal występuje.

Kiedyś próbowałem uruchomić silnik bez obciążenia. Czy to jest przyczyną tego, jak mi później powiedziano, uruchamianie silnika prądu stałego bez obciążenia powoduje ich uszkodzenie?

Jeśli nie jest to przyczyną, proszę powiedz mi, jak rozwiązać ten problem bez używania czujników do kontrolowania go.

Mysz
źródło
W konfiguracji napędu różnicowego, którego używam, jest to bardzo prawdopodobne. Mała różnica między dwoma silnikami spowoduje obrót robota.
Demetris
4
Witamy w otwartej pętli sterowania. Potrzebujesz własnych czujników (oczu), aby samemu wykryć problem. Jak myślisz, w jaki sposób robot będzie w stanie go wykryć bez dodatkowych czujników? Zamykanie pętli sterującej za pomocą czujników jest właściwym rozwiązaniem.
Giętarka 22
1
Silniki krokowe mogą działać, jeśli chcesz uniknąć czujników.
@bdares - Jeśli nie ma czujników, skąd robot wie, kiedy należy wykonać poprawny kurs? Jeśli jedno koło uderzy w obszar o niskim tarciu (na przykład kurz) i poślizgnie się, robot skręci i nigdy nie poprawi się.
Chuck
Kiedy mówisz, że nie ma czujników, czy może to oznaczać brak zewnętrznego wykrywania, czy wykluczasz także enkodery na kołach? ponieważ jest to typowe rozwiązanie tego problemu.
JamesRyan

Odpowiedzi:

29

Publikuję to jako odpowiedź, ponieważ jest to odpowiedź.

Nie możesz

Jak wspomina @ BendingUnit22, próbujesz kontrolować „otwartą pętlę”. Hałas i zmiany oznaczają, że twój robot nigdy nie będzie prowadził idealnie prostej linii.

Silniki mogą mieć różne rezystancje uzwojenia (różne prądy napędowe / moment obrotowy), koła mogą mieć różne rozmiary, koła mogą mieć różne właściwości trakcyjne, łożysko kółka może być „sztywne”, kółko może nie być idealnie proste podczas rozruchu pojazdu , podłoga może mieć różne właściwości tarcia powierzchniowego (czytaj: kurz lub dywan) - lista jest długa.

Tylko sposobem na rachunku za rzeczy poza kontrolą (co wspominam powyżej + więcej) jest użycie czujników opinię.

Możesz spróbować uzyskać lepszą wydajność w otwartej pętli, rozwiązując problemy, które wymieniłem, ale jest ich jeszcze więcej i po prostu nie możesz kontrolować wszystkiego.

Chuck
źródło
5
Dokładnie! Problem leży w stwierdzeniu „Używam 2 identycznych silników prądu stałego”. Nigdy nie są idealnie identyczne, a jak wspomina @Chuck, istnieje wiele innych czynników. W robotyce pewne jest tylko to, że pojawią się błędy i hałas.
Ryan Loggerythm
2
Używanie dwóch kół na tej samej osi powinno nadal dawać o wiele lepsze wyniki niż używanie tylko dwóch tego samego silnika, prawda?
John Dvorak
@JanDvorak - Nie jestem do końca pewien, co masz na myśli mówiąc „Dwa koła na tej samej osi”, ale uważam, że zrozumiałe / sugerowane, że dwa koła są na tej samej osi geometrycznej. Jeśli masz na myśli tę samą oś sterującą (jak w jednym silniku) lub (znowu implikując jeden silnik), to zwróciłbym uwagę, że nie można wykonać mechanizmu różnicowego z blokadą osi. Aby jeden silnik mógł kontrolować oba koła z różnymi prędkościami, wymaga mechanizmu różnicowego (i innego wyposażenia), a mechanizm różnicowy skutecznie rozbija oś na dwie części, a ty wracasz do punktu wyjścia.
Chuck
Przepraszam, miałem na myśli jedną oś. Nie wiedziałem, że istnieje wymóg, aby móc iść prosto.
John Dvorak
2
@JanDvorak - Wierzę, że robot OP jest pojazdem w stylu mikrouszkodzenia. Nawet jeśli musiałby jechać prosto i użyć jednej osi, wszystkie pozostałe źródła błędów nadal obowiązują. Jeśli jedno koło ma o 0,1% większą średnicę niż drugie, będzie jeździć po torze o 0,1% dalej niż mniejsza opona na obrót . Powiedzmy na przykład, że nominalny rozmiar koła wynosi 10 cm, a odstęp między kołami to 10 cm. Większa opona ma 10,01 cm i porusza się o 0,0314 cm dalej na obrót . W przypadku rozstawu osi robot obraca się o 0,12 stopnia na obrót koła . 0,01 cm może łatwo zostać zakurzone na jednej oponie.
Chuck
6

Ponieważ wspomniano już o problemie z otwartą i zamkniętą pętlą, skomentuję: „Kiedyś próbowałem uruchomić silnik prądu stałego bez obciążenia”.
Tak, możesz uszkodzić silnik, ale możesz także uszkodzić lub zniszczyć silnik z obciążeniem. Zniszczenie pochodzi od prądu i wynikającej z niego temperatury. Jeśli z silnika nie wydobywa się dym i nie ma wyraźnego zapachu, najprawdopodobniej nie zostanie on uszkodzony. Z mojego doświadczenia mogę stwierdzić, że silniki prądu stałego na skalę hobby zaczną się rozkładać w temperaturach znacznie przekraczających 100 ° C. I na pewno zauważysz takie temperatury

EDYCJA:
Zastanowiłem się nad tym ponownie i może wpadłem na pomysł, o którym mógł mówić twój kolega. Istnieje specjalny rodzaj silnika prądu przemiennego. Są to niewzbudzone silniki synchroniczne. Zasadniczo są one zbudowane do samozniszczenia. Jeśli je podłączysz, zaczną przyspieszać, dopóki się nie rozłożą. Ale jeśli nałożysz na nich ciężki ładunek, nie będą w stanie osiągnąć tego stanu, tylko ze względu na ogromny moment, który muszą przyłożyć do obciążenia. Możesz więc używać ich do uzasadnionych celów. W każdym razie zdecydowanie nie masz takiego silnika w swojej aplikacji.

TobiasK
źródło
1
Myślę też, że zwłaszcza w silnikach hobbystycznych, kiedy nagrzejesz go wystarczająco, aby zauważyć, że jest gorący lub pachnie zabawnie, prawdopodobnie już spaliłeś izolację uzwojeń. Podobnie jak wiele urządzeń elektrycznych, albo działa dobrze, albo jest zepsuty. Nie ma wiele przypadków pośrednich.
Chuck
Nie było takiego dymu ani żadnych widocznych uszkodzeń. Więc może nie jest uszkodzony, ponieważ prowadziłem go przez mniej niż pół minuty.
Mysz
2

To, co opisujesz, nazywa się sterowaniem w otwartej pętli, a do tego potrzebujesz dwóch silników, które są dokładnie takie same, dwa koła dokładnie takie same, środek ciężkości robota, który znajduje się pośrodku między kołami, idealny symetryczny obwód elektryczny, i wreszcie idealna jednolita pozioma powierzchnia do biegania.

Aby to osiągnąć, zwykle zamawiasz dziesiątki lub setki każdej części, a następnie wykonujesz znaczące testy, aby znaleźć dwa silniki, które są najbliżej siebie dopasowane pod względem mocy i prędkości względem napięcia i PWM. Zrób to samo dla kół, sterowników silnika i innych części.

Ten proces nazywa się binowaniem - po tych testach sortujesz je według ich możliwości lub cech. Właściwie uważa się, że jest to dużo droższe pod względem czasu i zasobów niż przejście na model z zamkniętą pętlą, a nawet nie uwzględnia złych warunków gruntowych.

Jest to jednak jeden sposób na spełnienie wymagań bez dodatkowych czujników.

Adam Davis
źródło
1

Chociaż nigdy nie będzie idealny, może istnieć prosty sposób, aby uczynić go bardziej prostym.

Jeśli przy 100% -100% samochód zawsze skręca w lewo, a przy 100% -99% samochód zawsze skręca w prawo, powinieneś być w stanie to poprawić, wypróbowując wartości pomiędzy.

Zacznij od 100% -99,5% i kontynuuj od 100% -99,75% lub 100% -99,25% w zależności od wyniku. Powinno to wkrótce doprowadzić do sytuacji, w której pójdziesz prosto „średnio”.

Dennis
źródło
0

Cóż, jeśli problem nie polega na różnicach w sprzęcie lub oprogramowaniu dla każdego koła, prawdopodobnie jest to problem z naturalnymi niedoskonałościami zarówno w sposobie budowy robota, jak i w sposobie produkcji silników. Połączenia mogą nie być stałe lub RPI może nie generować tego samego prądu. Prawdopodobnie chcesz używać kontrolerów prędkości. Spróbuj tego najpierw.

Jeśli to nie zadziała, twój producent prawdopodobnie nie stworzył identycznych silników i prawdopodobnie będziesz musiał po prostu skalibrować silniki. Może to oznaczać skalowanie wartości silniejszego silnika, aby 100% mocy silnego silnika odpowiadało słabemu.

pół ziemniaków
źródło
2
Korzystanie z identycznych sterowników silnika nie rozwiąże problemu. Problem leży u podstaw robotyki, czyli „jak naprawić błąd?”
Ryan Loggerythm
Słyszałem, że silniki prądu stałego mogą poruszać się nieco wolniej do tyłu i do przodu. Ponadto brak równowagi w wadze może spowodować przesunięcie na bok. Nie wspominając już o innych rzeczach, takich jak tarcie itp. Robienie czegokolwiek „identycznego” nie zadziała. Stepowcy mogą zrobić trochę lepiej, ale wtedy nie powinieneś jechać zbyt szybko ani nic ...
Paul
-2

Koła z silnikami prądu stałego powinny znajdować się z przodu. I koło kosztujące z tyłu. Następnie przesunie się prosto tylko w kierunku do przodu

Arslan
źródło
Witamy w Robotics Arslan. Na Stack Exchange szukamy kompleksowych odpowiedzi, które zawierają wyjaśnienia i kontekst. Bardzo krótkich odpowiedzi nie można tego zrobić, dlatego prosimy o edycję odpowiedzi, aby wyjaśnić, dlaczego jest to właściwe, najlepiej w przypadku cytowań. Odpowiedzi, które nie zawierają wyjaśnień, mogą zostać usunięte.
Mark Booth