Czym jest robot typu Line Follower?

Robot typu Line FollowerLine FollowerLine Follower to specjalna maszyna skonstruowana do jazdy po wyznaczonej (najczęściej czarnej) linii. Można go przyrównać do popularnej zabawy w puszczanie samochodzików po torach. Różnica polega na tym, że zabawkowe samochody poruszały się najczęściej po wyprofilowanej, dostosowanej do ich rozmiaru drodze. Ich prędkość była również często uzależniona od siły, z jaką autko zostało wypchnięte przez mechanizm startujący. Natomiast robot typu Line Follower może poruszać się po każdej nawierzchni, na której znajduje się wyznaczona, możliwa do wykrycia przez urządzenie linia (choć w niektórych przypadkach może to skutkować m.in. ślizganiem się kół). Dlatego też podczas zawodów na trasach przejazdu są często przeszkody, w postaci wyskoczni lub podjazdów, które dobrze zaprojektowane roboty pokonują bez większych problemów.

Sposób działania oraz przygotowanie robota do zawodów Line Follower

Proces budowy robota składa się z trzech części, które obejmują:

  • konstrukcję mechaniczną robota,

  • zaprojektowanie elektronicznego układu sterowania,

  • napisanie programu sterującego.

Tworząc robota, musimy skupić się w szczególności na tym, jak zoptymalizować jego konstrukcję, aby osiągnąć jak najlepszy stosunek jakości do ceny. Pamiętajmy również, by wziąć pod uwagę aspekty takie, jak np. liczba urządzeń znajdujących się na robocie. Choć mogą one ułatwiać pewne sprawy techniczne, jednak mają wpływ na wagę robota (większa waga = mniejsza prędkość).

Sposób wykrywania linii

Jak już wcześniej wspomnieliśmy, robot podczas zawodów będzie poruszał się po wyznaczonej linii, dlatego podczas konstrukcji maszyny musimy zaimplementować mechanizm pozwalający na wykrywanie trasy.

W tym wypadku najrozsądniejszym wyborem będzie postawienie na czujniki oraz detektory, które charakteryzują się prostym mechanizmem oraz względnie optymalną ceną. Samo działanie czujnika opiera się na małej wiązce podczerwieni skierowanej w stronę podłoża, której odbity od czarnej powierzchni sygnał trafia do detektora (czarny kolor pochłania więcej promieniowania, stąd możliwe jest odróżnienie go od otoczenia).

Innym sposobem na wykrywanie linii może być wykorzystanie kamery, choć w tym wypadku musimy się liczyć z wyższą ceną, wagą oraz koniecznością napisania skomplikowanego programu przetwarzającego obraz rzeczywisty na jego cyfrową wersję. Nie jest to zatem rozwiązanie idealne, choć w przypadku przygotowania robota do profesjonalnych zawodów może poprawić skuteczność pokonywania trudnych przeszkód lub zakrętów.

Napęd

Kolejnym ważnym elementem budowy robota typu Line Follower jest napęd. Z uwagi na zasady obowiązujące podczas tego typu zawodów (zakaz używania silników spalinowych) jedynym wyborem będzie silnik elektryczny.

Możemy wyróżnić dwa rodzaje silników elektrycznych:

  • bezszczotkowe – charakteryzujące się wysoką trwałością oraz niezawodnością, są jednak o wiele droższe oraz wymagają dodatkowych sterowników zwiększających m.in. wagę robota;

  • szczotkowe – o wiele prostsze w obsłudze (z uwagi na możliwość sterowania przy użyciu sygnału PWMPWM (ang. Pulse‑Width Modulation – modulacja szerokości impulsów)PWM), cechujące się niską ceną, z uwagi na łatwy oraz tani proces produkcyjny.

Dodatkowym elementem potrzebnym do prawidłowego funkcjonowania naszego robota będzie tzw. mostek H, który pozwala m.in. na zmianę kierunku obrotów silnika oraz sterowanie ich prędkością.

Dalsze podzespoły

Akumulator oraz stabilizator

Jeżeli chodzi o akumulator, najczęstszymi wyborami dostępnymi w powszechnej sprzedaży są baterie litowo‑polimerowe lub ich niewiele różniące się zamienniki – baterie litowo‑jonowe.

Te dwa rodzaje akumulatorów różnią się tym, że w bateriach litowo‑polimerowych elektrolity występują w postaci stałej (jako polimery), natomiast w litowo‑jonowych – w stanie ciekłym. Ma to przełożenie m.in. na ich gęstość, która jest nieco większa w bateriach litowo‑polimerowych, dzięki czemu pojemność takiego akumulatora jest znacznie wyższa przy zachowaniu jednakowych rozmiarów.

Z uwagi na wysokie napięcie występujące w tego typu bateriach potrzebne będzie dodatkowo zastosowanie stabilizatora, którego rola sprowadza się do utrzymywania stałego, optymalnego poziomu przepływu prądu. Jego brak mógłby skutkować przeładowaniem akumulatora, a w konsekwencji jego uszkodzeniem lub nawet wybuchem.

Mikrokontroler oraz odbiornik podczerwieni

Przy starcie tego typu urządzenia najczęściej jest wykorzystywany odbiornik podczerwieni. Chociaż istnieje wiele możliwości zamiany tego rozwiązania, są one jednak mało opłacalne oraz podnoszą wagę robota (jak chociażby w przypadku modułu radiowego) lub wymagają bezpośredniego kontaktu fizycznego (w przypadku przycisku startowego).

Dodatkowo główną zaletą odbiornika podczerwieni jest możliwość uruchomienia go przy wykorzystaniu zwykłego pilota telewizyjnego lub jego cyfrowej wersji (w postaci np. aplikacji na telefon).

Mikrokontroler pełni z kolei funkcję swoistego centrum dowodzenia, zarządza także wszelkimi procesami odbywającymi się w urządzeniu. Jego zadaniami są:

  • odbieranie komend wysyłanych za pośrednictwem pilota,

  • kontrola napięcia,

  • zarządzanie czujnikami,

  • sterowanie napędem,

  • realizacja algorytmu sterującego.

Wszystkie wymienione elementy podłączamy do płyty głównej, która w większości przypadków pełni również rolę podwozia (z uwagi m.in. na zmniejszenie wagi urządzenia, a także budowę samej płyty). Do tak skonstruowanego systemu możemy podłączyć wyświetlacz, na którym pojawią się informacje na temat aktualnych danych technicznych (takich jak chociażby prędkość) czy stanu baterii itp.

Algorytm sterujący

Ostatnim aspektem przygotowania naszego robota jest napisanie algorytmu sterującego, odpowiadającego za napęd maszyny. Przedstawia się on następująco:

Linia 1. def motor podkreślnik speed otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 2. while True dwukropek. Linia 3. left podkreślnik detect znak równości int otwórz nawias okrągły left podkreślnik sensor kropka value zamknij nawias okrągły. Linia 4. right podkreślnik detect znak równości int otwórz nawias okrągły right podkreślnik sensor kropka value zamknij nawias okrągły. Linia 5. kratka kratka Stage 1. Linia 6. if left podkreślnik detect znak równości znak równości 0 and right podkreślnik detect znak równości znak równości 0 dwukropek. Linia 7. left podkreślnik mot znak równości 1. Linia 8. right podkreślnik mot znak równości 1. Linia 9. kratka kratka Stage 2. Linia 10. if left podkreślnik detect znak równości znak równości 0 and right podkreślnik detect znak równości znak równości 1 dwukropek. Linia 11. left podkreślnik mot znak równości minus 1. Linia 12. if left podkreślnik detect znak równości znak równości 1 and right podkreślnik detect znak równości znak równości 0 dwukropek. Linia 13. right podkreślnik mot znak równości minus 1. Linia 14. kratka print otwórz nawias okrągły r przecinek l zamknij nawias okrągły. Linia 15. yield otwórz nawias okrągły right podkreślnik mot przecinek left podkreślnik mot zamknij nawias okrągły.

Teraz wystarczy jedynie określić wartości, którymi operować będzie nasza maszyna:

Linia 1. robot znak równości Robot otwórz nawias okrągły left znak równości otwórz nawias okrągły 7 przecinek 8 zamknij nawias okrągły przecinek right znak równości otwórz nawias okrągły 9 przecinek 10 zamknij nawias okrągły zamknij nawias okrągły. Linia 2. left podkreślnik sensor znak równości LineSensor otwórz nawias okrągły 17 zamknij nawias okrągły. Linia 3. right podkreślnik sensor znak równości LineSensor otwórz nawias okrągły 27 zamknij nawias okrągły. Linia 5. speed znak równości 0 kropka 65.

oraz zdefiniować podane wartości jako prędkość napędu:

Linia 1. robot kropka source znak równości motor podkreślnik speed otwórz nawias okrągły zamknij nawias okrągły.

Gotowy algorytm powinien wyglądać następująco:

Linia 1. robot znak równości Robot otwórz nawias okrągły left znak równości otwórz nawias okrągły 7 przecinek 8 zamknij nawias okrągły przecinek right znak równości otwórz nawias okrągły 9 przecinek 10 zamknij nawias okrągły zamknij nawias okrągły. Linia 2. left podkreślnik sensor znak równości LineSensor otwórz nawias okrągły 17 zamknij nawias okrągły. Linia 3. right podkreślnik sensor znak równości LineSensor otwórz nawias okrągły 27 zamknij nawias okrągły. Linia 5. speed znak równości 0 kropka 65. Linia 7. def motor podkreślnik speed otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 8. while True dwukropek. Linia 9. left podkreślnik detect znak równości int otwórz nawias okrągły left podkreślnik sensor kropka value zamknij nawias okrągły. Linia 10. right podkreślnik detect znak równości int otwórz nawias okrągły right podkreślnik sensor kropka value zamknij nawias okrągły. Linia 11. kratka kratka Stage 1. Linia 12. if left podkreślnik detect znak równości znak równości 0 and right podkreślnik detect znak równości znak równości 0 dwukropek. Linia 13. left podkreślnik mot znak równości 1. Linia 14. right podkreślnik mot znak równości 1. Linia 15. kratka kratka Stage 2. Linia 16. if left podkreślnik detect znak równości znak równości 0 and right podkreślnik detect znak równości znak równości 1 dwukropek. Linia 17. left podkreślnik mot znak równości minus 1. Linia 18. if left podkreślnik detect znak równości znak równości 1 and right podkreślnik detect znak równości znak równości 0 dwukropek. Linia 19. right podkreślnik mot znak równości minus 1. Linia 20. kratka print otwórz nawias okrągły r przecinek l zamknij nawias okrągły. Linia 21. yield otwórz nawias okrągły right podkreślnik mot asterysk speed przecinek left podkreślnik mot asterysk speed zamknij nawias okrągły. Linia 23. robot kropka source znak równości motor podkreślnik speed otwórz nawias okrągły zamknij nawias okrągły.

Przygotowanie maszyny do zawodów sumo oraz walk robotów

Przygotowując robota do rozgrywki, musimy wziąć pod uwagę jej przebieg. Celem w trakcie walki jest wypchnięcie przeciwnej maszyny poza obręb maty (która przyjmuje najczęściej formę kolorowego koła, zupełnie jak w prawdziwych zawodach sumo).

Specyfikacje techniczne nie będą w tym wypadku różniły się zbytnio od wcześniej przedstawionego robota typu Line Follower (chociaż zbędna tu będzie implementacja detektora linii). Pojawia się tu dodatkowo kwestia montowanych na zewnątrz maszyny urządzeń „bojowych”, które służą zwiększeniu jej szans na wypchnięcie przeciwnika poza matę. Rodzaj tych elementów zależy od regulaminu zawodów.

W przypadku zawodów sumo najczęściej jest to rampa zamontowana na froncie robota. Wykorzystuje się ją do podważenia przeciwnej maszyny od spodu, dzięki czemu w łatwy sposób można przepchnąć rywala poza obszar walki.

Waga robotów i ich wymiary różnią się w zależności od kategorii, w której biorą udział. Wartości te określa tabela zamieszczana w ogólnodostępnych regulaminach walk sumo:

Klasa 

Wysokość [cm] 

Szerokość [cm] 

Długość [cm] 

Waga [g] 

 Sumo/Mega

 dowolna

 20

 20

 3000

MiniSumo +

 dowolna

 10

 10

 500

MicroSumo +

 5

 5

 5

 100

NanoSumo 

 2,5

 2,5

 2,5

 25

Humanoid Sumo 

 50

20

 20

 3000

Lego Sumo 

 dowolna

20

 20

 1500

R1cWwWZF3KZq9
Arena, na której odbywają się starcia robotów
Źródło: LukeSurl, dostępny w internecie: commons.wikimedia.org, licencja: CC BY-SA 4.0.

Podczas projektowania naszego robota musimy również pamiętać, że regulaminy zawodów zazwyczaj zakazują m.in. używania urządzeń, które mogą w jakiś sposób uszkodzić matę, przytwierdzać się do podłoża lub zakłócać działanie urządzeń przeciwnika.

Ciekawostka

Podczas zawodów walk sumo często przeprowadza się tzw. test kartki. Polega on na umieszczeniu robota na kartce A4, tak aby wszystkie jego koła znajdowały się na papierze. Następnie robot jest podnoszony bez dotykania kartki – w przypadku, kiedy papier podniesie się nawet o centymetr (co oznaczałoby zbyt dużą przyczepność maszyny do podłoża) – robot zostaje zdyskwalifikowany.

Ciekawostka

W latach 1998‑2004 oraz 2016‑2018 w brytyjskiej telewizji BBC transmitowany był program „Robot Wars” (Walki Robotów). Mogliśmy w nim zobaczyć własnoręcznie zaprojektowane oraz wykonane przez uczestników maszyny bojowe, których celem było nie tyle wypchnięcie rywala za matę (jak w przypadku walk sumo), co całkowita destrukcja przeciwnego robota.

Urządzenia wyposażone były m.in. w wirujące ostrza lub zgniatacze, mające na celu zniszczenie przeciwnej maszyny.

Słownik

Line Follower
Line Follower

konkurencja, w której specjalnie zaprojektowane autonomiczne roboty muszą pokonać trasę wyznaczoną przy użyciu linii

PWM (ang. Pulse‑Width Modulation – modulacja szerokości impulsów)
PWM (ang. Pulse‑Width Modulation – modulacja szerokości impulsów)

metoda sterowania silnikami elektrycznymi, polegająca na regulacji sygnału napięciowego lub prądowego o stałej amplitudzie i częstotliwości