Przejdź do treści

Opublikowano: 28.09.2020 18:33

Zwycięstwa w Bałtyckich Bitwach Robotów – Melsoniaki górą

Zespół Melsoniaki, fot. Koło Naukowe Robotyków

Studenci z Koła Naukowego Robotyków (działającego przy Wydziale Mechanicznym Energetyki i Lotnictwa) zajęli dwa pierwsze miejsca w Bałtyckich Bitwach Robotów 2020. Drużyna Melsoniaki, złożona z członków projektu robota humanoidalnego Melson, wygrała RoboHackathon z robotem BoBeR, a robot Wisienka, stworzony przez Kornelię Łukojć, został Miss BBR.

W tym roku Bałtyckie Bitwy Robotów, organizowane przez Stowarzyszenie Robotyków SKALP z Gdańska, trwały od 25 do 27 września. Ze względu na pandemię odbyły się zdalnie.

Drużynę Melsoniaki stworzyli Bartosz Bok, Dominik Górczyński, Kornelia Łukojć, Kacper Mikołajczyk, Konrad Szczerbiak i Larysa Zaremba.

Co działo się podczas zawodów? Oddajemy głos naszemu zespołowi.

PIĄTEK 25 WRZEŚNIA

Pole do popisu

Zawody rozpoczęły się w piątek 25 września o godz. 19.00. Wtedy też zostało opublikowane zadanie konkursowe – ruszył RoboHackathon. Drużyny miały za zadanie wykonać robota, który autonomicznie narysuje napis BBR 2020. Organizatorzy konkursu zostawili uczestnikom duże pole do popisu: nie określono żadnych dodatkowych wymagań ani co do robota, ani nawet do sposobu wykonania napisu.

Bardzo szybko rozpoczęliśmy burzę mózgów, której rezultatem były dwa kluczowe elementy – wykonanie robota kartezjańskiego oraz narysowanie napisu za pomocą światła na zdjęciu o długim czasie naświetlania. Dopracowywaliśmy pomysł, rozpatrując wszystkie możliwe trudności z wykonaniem konstrukcji. Odrzuciliśmy też inne pomysły, takie jak rysowanie robotem równoległym na ścianie, rysowanie na dwóch szynach czy wyświetlanie tekstu 2020 w postaci binarnej.

Główna myśl konstrukcyjna została scementowana: narysujemy za pomocą diod LED napis BBR 2020 z wykorzystaniem robota kartezjańskiego. Robot miał się składać z czterech silników z kołami poruszających robota w przód i w tył. Urządzenie miało mieć prawie 1,5 metra szerokości, zaś jego ramę stanowić elementy drukowane, połączone dwoma długimi rurami PVC, na których w prawo i w lewo miał jeździć wózeczek przy pomocy kolejnych dwóch silników. Konstrukcja wózeczka miała poruszać się na 4 kołach napędowych oraz 2 kołach napinających, dzięki czemu miał być zapewniony stabilny ruch bez wypadania z szyn.

Dzięki takiej konstrukcji wózeczek z zamontowanymi diodami będzie mógł się poruszać po ziemi w dwóch osiach.

Udane testy

Aby robot miał informację o aktualnym położeniu wózeczka, zdecydowaliśmy się na wykorzystanie enkoderów mechanicznych, dostarczających informacje o położeniach kątowych kół robota, a także skonstruowanego przez nas enkodera optycznego, służącego do określenia położenia wózka. W tym celu pomiędzy dwoma rurkami PVC umieszczona zostanie listwa, na której narysowane zostaną naprzemiennie paski białe oraz czarne. W ten sposób umieszczony pod wózeczkiem cyfrowy czujnik odbiciowy będzie dostarczał informację, czy znajduje się nad czarnym czy białym polem. Zliczanie kolejnych pasków pozwala na określenie położenia wózka z dokładnością 1,5 cm.

Początkowo zdecydowaliśmy się na wykorzystanie platformy programistycznej Arduino, którą jednak dość szybko odrzuciliśmy ze względu na brak wystarczającej liczby odpowiednich peryferiów. Ostatecznie wybraliśmy platformę NucleoSTM32F1, zapewniającą możliwość sterowania 6 silnikami, włączania diod LED oraz odczytu danych z enkoderów.

Zbliżała się godzina 23, gdy podjęliśmy najważniejsze decyzje konstrukcyjne. Pozostało przetestowanie, czy uda się stworzyć takie zdjęcie, na którym będzie widoczny napis. Testy zakończyły się sukcesem. Zgromadziliśmy więc wszystkie niezbędne elementy, które już posiadaliśmy: silniki, koła, mostki H sterujące silnikami, diody LED, enkodery mechaniczne, czujnik optyczny oraz przewody. Sporządziliśmy też listę potrzebnych elementów do kupienia w sobotę rano. Pozostało tylko jedno – rozpoczęcie tworzenia konstrukcji.

SOBOTA 26 WRZEŚNIA

Najpierw wózek

Następnego poranka część z nas udała się do sklepu po zakup rurek PVC, listwy enkodera oraz śrubek i nakrętek. Przez całą noc pracowały też drukarki 3D, dzięki czemu około godziny 10 gotowe były najważniejsze elementy wózka. Zaczęło też powstawać oprogramowanie robota. Początkowo testowaliśmy programy do obsługi różnych czujników z osobna. Potem przeszliśmy na platformę NucleoSTM32F3, na której jeszcze przed 12 działał czujnik optyczny czy czujniki mechaniczne.

Żeby stworzyć robota, wybraliśmy STM32CubeMX, a główny kod był pisany w języku C w Atollic TrueStudio i diagnozowany między innymi w STM32Studio. Następnie nasi programiści i elektronicy zajęli się obsługą mostków H i sterowaniem dzięki nimi silnikami. Prace trwały intensywnie, aż silnik zrobił pierwszy obrót.

W międzyczasie zaprojektowaliśmy tor wózeczka oraz rozpoczęliśmy opracowywanie kodu sterującego przy pomocy maszyny stanów. Napis „BBR” uprościliśmy w ten sposób, by składał się z prostych linii.

Praca wre

W czasie tworzenia oprogramowania trwały prace przy lutowaniu, wierceniu i drukowaniu 3D. Po południu mogliśmy się już pochwalić wózeczkiem jeżdżącym po umocowanych rurkach PCV i zaprogramowaniem wszystkich części elektronicznych, w tym modułu bluetooth, przy pomocy którego możliwe były następne testy oprogramowania, podglądanie zmiennych w czasie rzeczywistym czy sam start robota.

Wtedy połączyliśmy się z organizatorami. Postanowiliśmy też zrobić sobie przerwę na szybki posiłek.

Problem? Rozwiązany!

Po południu konstrukcja mechaniczna rosła w oczach. Pojawiały się kolejne elementy elektroniczne i mechaniczne. W kodzie programu krystalizowały się też pierwsze funkcje sterujące całym robotem. W okolicach wieczornych wszystkie elementy były już na swoich miejscach.

Pojawiły się też pierwsze problemy, takie jak zbyt duży pobór sześciu diod LED umieszczonych na wózeczku i służących do rysowania napisu. Problem został szybko zażegnany i naprawiony przy pomocy nowej płytki i schematu elektrycznego.

NIEDZIELA 27 WRZEŚNIA

Co łączy deszcz i robota?

Naszym głównym pomysłem z piątku było narysowanie możliwie jak największego napisu za pomocą diod na zdjęciu z długim czasem naświetlania. Już przy pierwszym połączeniu z organizatorami zwrócono nam uwagę na pewien szczegół – prognozy pogody na noc z soboty na niedzielę. Planowaliśmy zrobić zdjęcie na dworze w nocy, ale okazało się to niemożliwe z powodu ulewy.

Z tego powodu jasne było, że zdjęcie musimy wykonać w pokoju w mieszkaniu, w którym powstawał robot. To mocno skomplikowało nasz pomysł. Nie mogliśmy już zrobić zdjęcia znad robota. Ograniczało nas także miejsce, w którym mógł się on poruszać.

Szybko wyrzuciliśmy te kłopoty z głowy – nasz robot zaczął jeździć!

Za długi napis

Oczywiście nie od razu w dobrym kierunku i z dobrą prędkością, ale wystarczyła chwila, by sterowany przy pomocą modułu wózeczek jeździł w prawo, lewo, w przód i w tył, a przy okazji do zmiennych zliczały się impulsy z enkoderów.

Wtedy zaczęły się intensywne testy samego toru ruchu robota. Od razu było wiadome, że narysowanie całego napisu BBR 2020 będzie bardzo trudne, bo napis był po prostu za długi w porównaniu do przestrzeni.

Wtedy podjęliśmy strategiczną decyzję – narysujemy dwa napisy: BBR oraz 2020.

Dwie godziny drzemki

Po długich testach w końcu zaczął powstawać napis BBR. Nie zostało nam nic innego jak wykonanie zdjęcia. Około godziny 5:38 skończyło się przetwarzanie zdjęcia, a przed oczami tych z nas, którzy jeszcze nie spali, ukazało się ostateczne zdjęcie napisu BBR.

O godzinie 5:45 postanowiliśmy, że wszyscy musimy nabrać sił i na dwie najbliższe kładziemy się spać.

Punktualnie o godzinie 8:05 wznowiliśmy prace.

Przepinamy!

Teraz musieliśmy narysować napis 2020. Spieszyliśmy się, bo ostateczne zakończenie hackathonu miało być o godzinie 12.

Równocześnie zaczęliśmy prace nad filmikiem końcowym zespołu Melsoniaki oraz nazwą robota – zdecydowaliśmy, że będzie to BoBeR, który „chwyci to, co nieuchwytne”.

Robot rysował już płynnie napis „20”. A wtedy nastąpił błąd krytyczny – przy wgrywaniu pełnej wersji napisu „2020” nastąpiło odmówienie współpracy z platformą Nucleo, która nie chciała się połączyć z komputerem. Była godzina 10 i nie pozostało nam nic innego jak przepięcie wszystkich kabli z jednej platformy na drugą, identyczną.

Nadal mieliśmy jednak problemy z łączeniem z płytką i wszystkimi elementami, więc postanowiliśmy dokończyć drugą część napisu w inny sposób. Zdecydowaliśmy przejechać wózeczkiem całą długość w poprzek robota i wyświetlić przy pomocy zapalania/gaszenia diod sekwencję „11111100100”. Zadanie zostało wykonane sprawnie. Jeszcze przed godziną 12 zdaliśmy wyniki działania BoBeRa organizatorom.

Królestwo kreatywności

O godzinie 14 zostały opublikowane relacje każdej drużyny.

Inne zespoły poradziły sobie w równie kreatywnie co my: zespół „Ten łazik nigdzie nie poleci” rysował napis przy pomocy bitej śmietany („BBR 202”) i świecących ogórków („0”), a zespoły „Najgorszy rocznik w historii szkoły” oraz „Dajemy miodu” postawiły na rysowanie napisu „BBR 2020” przy pomocy robota mobilnego wyposażonego w pisak.

Roboty na medal

Godzina 16 przyniosła rozstrzygnięcie wszystkich konkursów Bałtyckich Bitew Robotów. Ku radości naszego zespołu, robot Wisienka stworzony przez Kornelię Łukojć, zdobył tytuł Miss BBR 2020. Konkurencja polegała na przedstawieniu opisu robota, jego zastosowania i osiągnięć. Organizatorzy docenili zaawansowanie konstrukcji robota i jego wykonanie. 

Następnie nastąpił główny punkt programu – ogłoszenie wyników RoboHackathonu.

Nasz robot BoBeR wygrał, więc radości nie było końca.

To były intensywne dni i noce, a nasz wysiłek został doceniony. Pracowaliśmy bardzo sprawnie, a każdy z nas wniósł do konstrukcji robota to, co mógł najlepszego.

Cieszymy się, że robot wykonał swoje zadania, choć, jak to bywa na RoboHackatonie, nie obyło się bez problemów.

Efekty naszej pracy możecie oglądać na zdjęciach i w filmie.

Relacja z całych zawodów jest dostępna na kanale Stowarzyszenia Robotyków SKALP na YouTube. Można tam m.in. zobaczyć nasze rozmowy z organizatorami i liczne prelekcje.

Podobne tematy: