====== 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: \\ \\ {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:cywilny.jpg|}} \\ //Rysunek 1. Cywilna wersja robota// \\ \\ {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:bojowy.jpg|}} \\ //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ą. \\ \\ {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:rampa1.jpg|}} \\ //Rysunek 3// \\ \\ {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:rampa2.jpg|}} \\ //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 \\ {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:hitandrun.rbt.zip|}}