Elektroda.pl
Elektroda.pl
X
Elektroda.pl
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Robot mobilny minisumo

themin 23 Cze 2015 00:37 4020 7
  • Robot mobilny minisumo

    Chciałbym przedstawić robota mobilnego należącego do klasy minisumo, którego wykonałem w 2012 roku. Roboty tego typu tworzone są do walk na ringach o odpowiednich średnicach zależnych od klasy robota, czyli jego wymiarów i wagi. Klasa minisumo to wymiary w granicach 10x10 cm oraz waga poniżej 500 g. Na początek wypiszę naważniejsze założenia, które dyktowały kierunek prac nad robotem.

    Założenia dotyczące konstrukcji mechanicznej:
    - Wymiary spełniające wymagania klasy minisumo i masa robota poniżej 500 g.
    - Nisko osadzony środek ciężkości konstrukcji i co jest tego konsekwencją, niewielka wysokość. Ma to na celu utrudnienie przewrócenia, a także wykrycia robota.
    - Napęd zrealizowany przy wykorzystaniu dwóch silników osadzonych w tylnej części robota, przy czym każdy z silników odpowiada niezależnie za jedno z kół napędowych. Podparcie w trzech punktach, gdzie oprócz kół, punktem podparcia jest przednia krawędź obudowy robota, tzw. „pług”.
    - Wykonanie ze stosunkowo lekkich, łatwo dostępnych materiałów, których połączenia można realizować bez użycia specjalistycznych narzędzi.

    Założenia dotyczące wykorzystanej elektroniki:
    - Sterowanie robotem oparte o głowną jednostkę obliczeniową, jaką powinien być łatwo dostępny mikrokontroler pozwalający generować co najmniej dwa przebiegi PWM w celu regulacji prędkości i mocy silników.
    - Zestaw sensorów do wykrywania białych linii umieszczonych możliwie blisko najbardziej wysuniętych punktów robota.
    - Cztery sensory pozwalające wykryć przeciwnika już ze znacznej odległości. Rozmieszczenie następujące: dwa z przodu i po jednym na każdy bok.
    - System monitorowania stanu akumulatora.
    - Pomiar przemieszczenia robota, z co najmniej dwóch niezależnych źródeł.
    - Akumulator o niewielkiej pojemności, jednak o możliwości rozładowywania go znacznymi prądami.

    Obudowa
    Obudowa została wykonana z laminatu epoksydowego pokrytego miedzią, ze względu na jego dostępność, a także łatwe łączenie elementów i obróbkę. Aby połączyć ze sobą poszczególne elementy wykorzystano połączenia lutowane, a jako spoiwo lutownicze, cynę. Takie wykonanie zapewnia dostateczną wytrzymałość. W płycie dolnej robota wycięto odpowiednie otwory, aby było możliwe późniejsze umieszczenie w nich czujników białych linii. Natomiast w części przedniej, a także w bocznych wycięto otwory pod czujniki Sharp GP2Y0D340K, umożliwiające wykrycie przeciwnika. Obudowa została pomalowana na kolor złoty, metaliczny farbą akrylową.

    Silniki
    Zdecydowano się na użycie silników Pololu HP z przekładnią 30:1 ze względu na ich niewielkie rozmiary i znaczną moc. Całe przekładnie i pewne części korpusu silników zostały wpuszczone do wydrążonych piast, co pozwoliło na zastosowanie szerszych kół, a dodatkowo osłania przekładnie przed zanieczyszczeniami. Po pewnym czasie użytkowania można śmiało stwierdzić, że dobór silników okazał się błędem ze względu na ich niewielką wytrzymałość i trwałość przy większych napięciach, aczkolwiek zachowanych w granicach normy producenta. Szczotki w jednym z silników uległy uszkodzeniu po bardzo krótkim czasie pracy robota i musiały zostać wymienione. Natomiast drugi silnik potrafi się zaciąć raz na jakiś czas.

    Czujniki białej linii
    Wykorzystano czujniki TCRT1010 ze względu na niewielkie rozmiary, a także montaż przewlekany, co umożliwia umieszczenie czujników w pewnej odległości od PCB. Sprawdzanie stanu czujników odbywa się poprzez pomiar odpowiedniego napięcia wbudowanym w mikrokontroler przetwornikiem analogowo-cyfrowym. Jeżeli czujnik znajdzie się nad białą linią, fototranzystor zostaje otwarty, co powoduje przepływ prądu i wzrost mierzonego napięcia. Rezystory diod zostały tak dobrane, aby ograniczyć prąd do bezpiecznego, podanego w specyfikacji elementu.

    Czujniki wykrywające położenie przeciwnika
    Wykorzystano dwa czujniki podczerwieni SHARP GP2Y0D340K umieszczone w przedniej części robota i skierowane w taki sposób, aby wykrywać przeciwnika znajdującego się przed robotem.

    Układ mikrokontrolera
    W robocie zastosowano mikrokontroler ATmega 32A w obudowie przeznaczonej do montażu powierzchniowego. Zdecydowano się na zastosowanie tego dość popularnego mikrokontrolera z rodziny AVR, produkowanego przez firmę Atmel głównie ze względu na jego dostępność, łatwość programowania, a także posiadanie licznych peryferii. Wykorzystane zostały praktycznie wszystkie porty mikrokontrolera. Taktowany jest przez zewnętrzny rezonator kwarcowy o częstotliwości 16 MHz.

    Sterowanie silnikami
    Sterowanie silnikami zostało wykonane w oparciu o układy TB6612, które są realizacją mostków H. Zdecydowano się na te właśnie układy ze względu na ich niewielkie rozmiary w wersji przeznaczonej do montażu powierzchniowego, a także ze względu na niewielki spadek napięcia na nich, a co za tym idzie, mniejsze straty mocy. Każdy układ zawiera dwa kanały, więc może sterować dwoma silnikami. Jednak ze względu na zwiększone zapotrzebowanie na prąd silników, w celu zwiększenia wydajności układu zostały zmostkowane kanały, zarówno wejściowe, jak i wyjściowe. Takie rozwiązanie wymusiło zastosowanie dwóch układów TB6612. Sygnały określające kierunek obrotu silnika, a także sygnał PWM, którego wypełnienie odpowiada prędkości silników są podawane bezpośrednio z mikrokontrolera. Zastosowane układy TB6612 nie osiągają wysokich temperatur, dlatego nie było potrzeby stosowania radiatorów. Poniżej przedstawiono schemat podłączenia układów.

    Zasilanie
    Wykorzystano akumulator litowo-polimerowy o pojemności 500 mAh ze względu na duży dopuszczalny prąd rozładowania. Składa się on z trzech ogniw, więc nominalne napięcie wynosi $11,1 V$, natomiast przy pełnym naładowaniu może ono osiągać wartość $12,6 V$, co oczywiście wpływa na parametry robota. W celu zabezpieczenia akumulatora przez zbyt dużym rozładowaniem zastosowano układ przedstawiony w dalszej części opracowania.

    Stabilizacja i filtracja napięcia
    Silniki zasilane są napięciem akumulatora podawanym bezpośrednio do mostków H, natomiast większość elektroniki wykorzystanej w robocie wymaga stabilizowanego napięcia rzędu 5V. Zastosowano więc stabilizator napięcia Low-dropout (LDO) o symbolu L1117, charakteryzujący się stosunkowo niewielkim spadkiem napięcia. Pomimo sporej mocy rozpraszanej w układzie stabilizatora, nie wykorzystano radiatora, ponieważ jego temperatura nie przekracza podanych przez producenta norm. W celu filtracji napięcia zasilania zastosowano kilka kondensatorów o łącznej pojemności w granicach 1000 μ F. Ponadto zastosowany został drugi stabilizator w module akcelerometru w celu obniżenia napięcia do 3,3 V , które wymagane jest do jego poprawnej pracy.

    Oprogramowanie
    Program napisany w języku C. Stany czujników sprawdzane są w przerwaniu od timera mikrokontrolera. W zależności od aktualnego stanu wybierana jest odpowiednia operacja. Dla czujników linii wykonywane są pomiary napięcia poprzez przetwornik ADC i na jego podstawie określane jest wykrycie białej linii. Przeprowadzanie testu czujników można dokonać w trybie diagnostycznym, który uruchamiany jest przez wciśnięcie mikroswitcha do 6 sekund od podłączenia zasilania robota. Możliwa jest komunikacja robota z komputerem poprzez RS232 z wykorzystaniem interfejsu USART. W oprogramowaniu robota zostały zaimplementowane odpowiednie funkcje do jego obsługi. Ponadto napisany został program umożliwiający odbiór i wysyłanie informacji z poziomu systemu operacyjnego komputera. Wykorzystano do tego celu zestaw przenośnych bibliotek Qt.

    Podsumowanie
    Wykonana konstrukcja wymaga jeszcze sporego dopracowania. Niestety nie wszystkie założenia udało się zrealizować, już podczas prac część z nich została mocno zweryfikowana. Zrezygnowano między innymi z dwóch czujników podczerwieni Sharp w celu uproszczenia konstrukcji.
    Ponadto na uruchomienie czeka moduł enkoderów inkrementalnych, ze względu na niedostępność układu zawierającego odpowiednie przerzutniki.
    Dopracowania wymaga oprogramowanie, które nie zostało jeszcze w pełni przetestowane. Należy ponadto zaimplementować funkcje obsługujące enkodery, a także wykorzystujące akcelerometr do określania pozycji robota.
    Waga robota wraz z akumulatorem wynosiła około 170 gram, więc konieczne było jego dociążenie. Wykorzystane zostały ciężarki wykonane z ołowiu umieszczone w częściach: bocznych i tylnej robota. Wypełniają one powstałe wolne przestrzenie w konstrukcji. Ponadto wykonano jeden większy ciężarek ołowiany, który umieszczać można na wierzchniej części robota, co niestety powoduje przeniesienie środka ciężkości wyżej, a także zwiększa wysokość robota. Jednak nie znaleziono innego sposobu na dociążenie robota.
    Wydaje się błędem zrobienie płyty podłogowej ze stosunkowo lekkiego laminatu. Z pewnością zostanie to poprawione w kolejnych konstrukcjach.

    Zdjęcia wykonanej konstrukcji
    Robot mobilny minisumo Robot mobilny minisumo

    Więcej informacji można znaleźć na mojej stronie www.mdrwiega.com.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • PCBway
  • PCBway
  • #4
    Sabre
    Poziom 18  
    @themin to chyba ucieszy cię wiadomość, że pololu wreszcie wypuściło silniczki HP z grafitowymi szczotkami. Będą jak znalazł do robotów minisumo. Fakt, że nigdy nie przepaliły mi się szczotki w linefollowerach, ale nie raz czytałem opinie konstruktorów minisumo o przepalających się szczotkach.
  • #5
    treker
    Poziom 25  
    Jak konkretnie chcesz wykorzystać enkodery? Będziesz implementował regulatory PI?
    Wybierasz się na jakieś zawody?
  • #6
    Mamut
    Poziom 17  
    Ja bym w enkoderach widział raczej aproksymacje jak daleko od końca ringu jesteśmy. Z tego co widzę, to "krańcówka" końca ringu jest między kołami więc może się zdarzyć, że najedziemy kołem a elektronika jeszcze nie będzie nic wiedzieć. Znając pokonany dystans i rozmiar ringu można policzyć ile jeszcze możemy jechać w danym kierunku.
    Nie jestem już w tematyce sumo/minisumo od kilku lat. Czy komuś udało się wymyślić pomysł jak w takiej konstrukcji upchać jakiś czujnik przeciwnika "z tyłu" robota? Jaki jest maksymalny zasięg tych Sharpów? Jak sobie radzą jak się ustawi 2 naprzeciw siebie? Starsze dalmierze Sharpa miały taki problem, że jak 2 wysyłały wiązkę na siebie do oba zaczynały wariować (a miało to dość często miejsce, prawie wszyscy używali tego rozwiązania).
  • #7
    themin
    Poziom 10  
    treker napisał:
    Jak konkretnie chcesz wykorzystać enkodery? Będziesz implementował regulatory PI?
    Wybierasz się na jakieś zawody?

    Oprócz realizacji regulatorów PI enkodery miały być wykorzystane wraz z akcelerometrem w systemie wykrywania poślizgów. Niestety ze względu na porzucenie projektu nie zostało to skończone.

    Mamut napisał:
    Ja bym w enkoderach widział raczej aproksymacje jak daleko od końca ringu jesteśmy. Z tego co widzę, to "krańcówka" końca ringu jest między kołami więc może się zdarzyć, że najedziemy kołem a elektronika jeszcze nie będzie nic wiedzieć. Znając pokonany dystans i rozmiar ringu można policzyć ile jeszcze możemy jechać w danym kierunku.

    Wydaje mi się, że takie rozwiązanie nie sprawdzi się ze względu na poślizgi kół. Może jedynie do momentu kontaktu z przeciwnikiem.

    Mamut napisał:
    Nie jestem już w tematyce sumo/minisumo od kilku lat. Czy komuś udało się wymyślić pomysł jak w takiej konstrukcji upchać jakiś czujnik przeciwnika "z tyłu" robota? Jaki jest maksymalny zasięg tych Sharpów? Jak sobie radzą jak się ustawi 2 naprzeciw siebie? Starsze dalmierze Sharpa miały taki problem, że jak 2 wysyłały wiązkę na siebie do oba zaczynały wariować (a miało to dość często miejsce, prawie wszyscy używali tego rozwiązania).

    Ja niestety też od paru lat nie jestem w temacie, więc nie wiem jak wygląda aktualnie kwestia wyposażenia w sensory. Jeżeli chodzi o Sharpy, które używałem to mają około 40 cm zasięgu. Natomiast nie zaobserwowałem zakłócania się sensorów w przypadku, gdy kilka z nich jest skierowanych w stronę jednego obiektu. Nie wiem jak to wygląda, gdy są ustawione na przeciwko siebie.
  • #8
    treker
    Poziom 25  
    Mamut napisał:
    Ja bym w enkoderach widział raczej aproksymacje jak daleko od końca ringu jesteśmy

    Niestety takie rozwiązanie się nie sprawdzi. Nawet, gdyby dodać informację z sensorów przesunięcia (np.: od myszki). Wystarczy, że przeciwniki wjedzie pod Ciebie, trochę mocniej przepchnie robota i informacje będą już nic nie warte. Do tego wszelkie poślizgi...