Budowa robota balansującego – praktyczne porady

Budowa robota balansującego – praktyczne porady

W niniejszym poradniku w przystępny sposób, skrótowo przybliżę proces projektowania robota balansującego. Zebrane tutaj informacje bazują na doświadczeniu zdobytym przy budowie tego typu konstrukcji.

Mam nadzieję, że po przeczytaniu tych porad unikniecie powielania kilku błędów!

Konstrukcja

Budując własny model robota balansującego postanowiłem, że będzie on dość dużych rozmiarów, ale niestety im robot większy, tym jest to trudniejsze zadanie. Szkielet konstrukcji mechanicznej polecam wykonać z kwadratowych profili aluminiowych, które można razem skręcić lub zanitować (tak jak w moim przypadku).

Taki szkielet będzie wytrzymały na upadki robota, których nie da się uniknąć podczas testów. Kwadratowe profile polecam ze względu na to, że w ich wnętrzu można łatwo ukryć przewody. Na początek pracy z robotem profile można obłożyć okrągłą pianką służącą do ocieplania rur.

Przestrzeń wewnątrz robota proponuję podzielić warstwowo:

Proponowany podział przestrzeni robota.

Proponowany podział przestrzeni robota.

Warstwa 1: Płytę podłogową robota (na powyższym rysunku jest to granica pomiędzy odcieniami czerwonego koloru) najlepiej zbudować w oparciu o sztywną blachę o grubości 1,5-2 mm. Nie radzę stosować w tym miejscu żadnych plexi, która ze względu na swoją kruchość może ulec szybkiemu uszkodzeniu. To w jaki sposób przymocujecie silniki w pierwszej warstwie pozostaje już kwestią Waszego pomysłu - ja zrobiłem to za pomocą obejm i jestem z tego rozwiązania zadowolony. Silniki pozostają w każdym przypadku na swoim miejscu - nie występują żadne przemieszczenia itp. problemy.

Warstwa 2: Umiejscowienie akumulatorów.

Warstwa 3: Umiejscowienie elektroniki sterującej. Pomiędzy warstwą 2 a 3 proponuję zastosować cienką sztywną blachę, do której na dystansach można przymocować płytki PCB.

Warstwa 4: Górna część robota (opcjonalna) - ja zaprojektowałem w tym miejscu interfejs użytkownika - wyświetlacz LCD do podglądu aktualnych nastaw regulatora i wartości kąta odchylenia robota od pionu oraz zestaw włączników i przycisków bistabilnych.

Napęd robota

Dużym, jeśli nie największym problemem w tego typu konstrukcjach jest wybór odpowiednich jednostek napędowych. W swoim robocie zastosowałem wymontowane z wkrętarek popularne silniki HRS-550 wraz z przekładniami planetarnymi. Niestety nie dysponuję innymi silnikami, ale te stanowczo odradzam i stwierdzam, że robot nie działa w pełni tak jak powinien ze względu na bardzo duże luzy w przekładniach. Efekt końcowy uda się osiągnąć, ale będzie on daleki od tego, który zakłada się na początku.

Jeśli jest to możliwe proponuję koła bezpośrednio połączyć z wałami silników. Istotne jest, aby koła miały odpowiednią średnicę. Niestety zły dobór średnicy kół do wysokości robota może przysporzyć Wam wielu niepotrzebnych nerwów.

Wybierając koła należy unikać kół łożyskowanych. Polecam szukać ich w sklepach z materiałami budowlanymi, chociaż znalezienie odpowiednich wcale nie będzie proste. Poszukiwania można też przeprowadzić w sklepach z częściami zamiennymi do kosiarek.

Przykład: Robot zaprojektowany przeze mnie ma 58 cm wysokości, a średnica zastosowanych kół wynosi 20 cm. Początkowo, kiedy robot miał założone koła o średnicy 10 cm, nie był w stanie utrzymać równowagi. Dobre dopasowanie kół ma ogromne znaczenie.

Elektronika

W przypadku budowy takiego robota, który jest już nieco bardziej zaawansowany polecam zaprojektowanie elektroniki w formie modułowej, np.:

A. Moduł zasilający wszystkie elementy elektroniczne robota - stabilizuje napięcia dla elektroniki na typowe wartości 3.3 V oraz 5 V. Należy zastosować stabilizatory lub przetwornice o większej wydajności prądowej, dzięki czemu uniknie się stosowania np.: przetwornic w kilku modułach.

Każde wyjście można zabezpieczyć bezpiecznikiem więc w razie wystąpienia nieoczekiwanego zwarcia na jakimkolwiek module bezpiecznik zawsze wymienia się na tej samej płytce - plusem takiego rozwiązania jest niewątpliwie szybkie określenie miejsca wystąpienia awarii. Warto taki konwerter napięć umieścić w łatwo dostępnym miejscu.

Przykład z mojego robota:

Konwerter napięćbezpieczniki) w robocie balansującym.

Konwerter napięć (bezpieczniki) w robocie balansującym.

B. Płyta główna (nadrzędny moduł) sterująca pracą pozostałych modułów (podrzędnych). Na płycie głównej proponuję przewidzieć miejsce na moduł IMU służący do wykonywania pomiaru odchylenia robota od pionu.

C. Płyta sterująca pracą silników zawierająca mostki H. W przypadku budowy robota balansującego o większych rozmiarach wymagane jest zastosowanie odpowiednio mocnych silników, a co za tym idzie do sterowania nimi należy zastosować mostki H o dużej wydajności prądowej.

Ze względu na spore luzy, o których wspomniano wcześniej, robot w celu utrzymania równowagi szybko przełącza kierunek silników, co skutkuje bardzo dużym nagrzewaniem się mostków. Pomimo zastosowania małych radiatorów przymocowanych za pomocą pasty termoprzewodzącej nie odnotowano znaczącej poprawy. Przetestowano więc dwa kolejne rozwiązania:

Chłodzenie aktywne - wentylator zamontowany nad radiatorami

Niestety taki sposób również nie przynosi oczekiwanych rezultatów, a co gorsza wprowadza do całego obiektu mikrodrgania, które zakłócają w istotny sposób pomiar kąta odchylenia robota:

Wpływ działania wentylatora na pomiar akcelerometru. Pionowa czerwona kreska oznacza moment wyłączenia wentylatora. Robot w trakcie eksperymentu był unieruchomiony.

Wpływ działania wentylatora na pomiar akcelerometru. Pionowa czerwona kreska oznacza moment wyłączenia wentylatora. Robot w trakcie eksperymentu był unieruchomiony.

Chłodzenie przy wykorzystaniu ogniw Peltiera

Dopiero to rozwiązanie przyniosło pozytywne skutki, mostki były chłodzone w prawidłowy sposób, lecz należy pamiętać o odpowiednim chłodzeniu strony gorącej ogniwa i zastosować większy radiator niż ten widoczny na poniższym rysunku:

Przykładowe zamocowanie ogniw Peltiera.

Przykładowe zamocowanie ogniw Peltiera.

Pozostałe moduły wg uznania i potrzeb rozbudowy.

Sposób pomiaru kąta odchylenia robota od pionu

Jest wiele metod pomiaru kąta odchylenia robota od pionu, ale w przypadku wykorzystania modułu IMU kąt powinien być przeliczany na podstawie wartości zmierzonych przez akcelerometr i żyroskop. Zastosowanie jednego z w/w czujników niestety nie przyniesie rezultatów, ponieważ:

  • akcelerometr oprócz pomiaru siły grawitacji mierzy również przyspieszenia liniowe, dlatego podczas poruszania się robota wynik będzie niezgodny z rzeczywistością,
  • żyroskop jest niewrażliwy na przyspieszenia liniowe, ponieważ mierzy on prędkość kątową. Posiada jednak wadę jaką jest dryf, czyli z biegiem czasu stopniowy wzrost mierzonej wartości.

Aby wykluczyć wady jednego i drugiego czujnika potrzebna jest fuzja sygnałów z obu sensorów. Mierzone wartości należy odpowiednio przeliczyć. Sygnał z żyroskopu należy poddać operacji całkowania numerycznego za pomocą metody prostokątów lub dokładniejszej metody trapezów.

Sygnał z akcelerometru przelicza się w następujący sposób:

r_balans_5

Gdzie:
AY, AZ - wartość danych z akcelerometru odpowiednio dla osi Y (pitch) i osi Z (yaw). Najprostszą metodą na połączenie obu sygnałów jest zastosowanie filtra komplementarnego, który opisywany jest wzorem:

r_balans_6

Gdzie:

r_balans_7

Do określenia współczynnika proporcjonalności służy wzór:

r_balans_8

Gdzie:
a - współczynnik proporcjonalności,
τ - stała czasowa.

Poniższy rysunek obrazuje wartość kąta w czasie, który wyliczany jest osobno z pomiarów dokonywanych przez akcelerometr i żyroskop oraz wartość kąta po scaleniu danych z obu czujników przez filtr komplementarny. Jak widać, filtr komplementarny radzi sobie bardzo dobrze z przeliczeniem danych na odchylenie wynikowe.

Porównanie wartości kąta w czasie ze względu na ich pomiar.

Porównanie wartości kąta w czasie ze względu na ich pomiar.

Identyfikacja obiektu oraz strojenie regulatora robota

Ta część pracy nad robotem jest zdecydowanie najciekawsza, ale zarazem najtrudniejsza. Spotkałem się nie raz z opiniami, że nastaw regulatora nie warto liczyć, tylko, żeby próbować dobierać je ręcznie. W przypadku robota balansującego obalam ten mit.

Nie da się w sensowny sposób zbadać zachowania robota po zastosowaniu nastaw regulatora dobranych po omacku. Różnicę ciężko zauważyć, bo robot i tak przy każdej próbie się przewróci. Tutaj w grę nie wchodzi dobieranie nastaw regulatora polegając na wyczuciu czy dostrajanie na podstawie metody Zieglera-Nicholsa.

Podstawowym krokiem jest dokonanie identyfikacji obiektu poprzez podanie na silniki sygnału sterującego o wartości 10%. W wyniku takiego eksperymentu robot przewraca się. Na podstawie przebiegu wartości kąta w czasie można w dalszym postępowaniu analitycznie wyznaczyć nastawy regulatora PID. Cały proces identyfikacji obiektu oraz strojenia układu regulacji obszernie opisałem w PAR w pierwszym numerze 2015 roku.

Artykuł oryginalnie opublikowany został na forum.

akcelerometr, balansujący, czujniki, imu, robot, żyroskop

Trwa ładowanie komentarzy...