JSI - laboratorium 2 - Paweł Grzesiak, Rafał Dyrda
1. Cel ćwiczenia
Celem ćwiczenia było zapoznanie się z podstawowymi możliwościami oferowanymi przez system LEGO Mindstorms przez zbudowanie prostego robota mobilnego i zaprojektowanie algorytmu jego działania.
2. Realizacja ćwiczenia
2.1. Budowa robota
Nasz robot został zbudowany zgodnie z opisem zawartym w instrukcji Quickstart dołączonej do zestawu, ponadto został on udoskonalony o elementy umożliwiające załadunek oraz przewóz kulki,
a także elementy obronne służące do odpierania ataków wrogich robotów, chcących przejąć ładunek.
Poniżej przedstawiono zbudowane warianty robota:
Rysunek 1. Cywilna wersja robota
Rysunek 2. Bojowa wersja robota
2.2. Projektowanie algorytmu
Algorytmy tworzone były przy pomocy środowiska NXT, gdzie metodą drag-and-drop mogliśmy szybko skonstruować działający algorytm z gotowych bloczków.
2.2.1. Patrol
Zaprojektowany algorytm prowadził robota po trajektorii kwadratu, powtarzając przejazd 2 razy. Realizacja algorytmu była trywialna i polegała na sterowaniu silnikami B i C odpowiedzialnymi za ruch kół robota.
2.2.2. Przewóz kulki
Zgodnie z naszym projektem robot wyposażony w widły przewozowe powinien:
- dojechać do rampy – silniki napędowe B i C [Rysunek 3],
- zatrzymać się w odległości ok. 4 cm od ściany – sensor ultradźwiękowy [Rysunek 4],
- podnieść kulkę znajdującą się na rampie – silnik A,
- wycofać wraz z ładunkiem,
- obrócić się o 180O,
- odjechać z pełną prędkością.
Rysunek 3
Rysunek 4
3. Integracja i testy
Kompilacja i załadowanie plików do bricka były bardzo proste dzięki pomocy środowiska NXT - pliki przesyłaliśmy przy pomocy interfejsu USB. System umożliwia również komunikację między autonomicznymi brickami (robotami) za pośrednictwem protokołu Bluetooth – niestety ze względu na ograniczony czas trwania laboratorium, nie zdążyliśmy zaimplementować i przetestować tego rozwiązania. W zrealizowanych testach okazało się, że przygotowane algorytmy działają poprawnie, jakkolwiek pewne problemy sprawiał sensor ultradźwiękowy, który przy każdej próbie inaczej oceniał odległość, w związku z czym występowały problemy z odpowiednim hamowaniem przed przeszkodą. Odpowiednia kalibracja sensora powinna poprawić zachowanie robota. Mimo opisanych powyżej problemów, udało się przeprowadzić kilka, zakończonych pełnym sukcesem, prób podjęcia i przeniesienia ładunku.
4.Wnioski
Budowa robotów z zestawu LEGO Mindstorms i tworzenie algorytmów przy pomocy środowiska NXT jest bardzo proste i daje dużo frajdy – algorytmy tworzy się na zasadzie intuicyjnego łączenia gotowych bloczków, przy czym nie ma jakichkolwiek problemów z komunikacją i niekompatybilnymi czujnikami – jedyne problemy na jakie możemy natrafić to, wspomniana w poprzednim punkcie, nieoprawna kalibracja czujników). Ponadto, podczas zajęć z zestawem można choć na chwilę powrócić do czasów dzieciństwa…
5.Załączniki
Wraz ze sprawozdaniem załączamy plik do środowiska NXT - hitandrun.rbt zawierający algorytm
z punktu
hitandrun.rbt.zip