Sprawozdanie (laboratorium 3)

1. Cel zajęć

Celem zajęć było stworzenie kilku bardziej zaawansowanych niż dotychczas programów sterowania robotem LEGO Mindstorms. Wspólną cechą ich wszystkich było chwytanie i przenoszenie piłeczki należącej do zestawu.

Nasza grupa jak zwykle współpracowała z Leonem:

2. Napisane programy

A) Magazynier

Założenia:

Pierwszy program miał symulować magazyniera. Robot miał podnieść kulkę, obrócić się o 180 stopni i następnie jechać przed siebie aż do zbliżenia się do ściany (sonar). Mieliśmy też zapewnić że Leon wyłączy się awaryjnie na dźwięk klaśnięcia.

Realizacja:

Stworzony przez nas algorytm po uruchomieniu otwiera ramiona Leona. Następnie robot jedzie prosto aż do momentu gdy jego czujnik dotyku zostanie wzbudzony. Gdy tak się stanie zamyka swoje ramiona i wykonuje obrót w przybliżeniu równy 180 stopniom. Po raz kolejny zaczyna jechać przed siebie, jednak tym razem robi to tak długo aż jego czujnik odległości wykryje przeszkodę oddaloną o mniej niż 20 centymetrów. Wtedy robot zatrzymuje się i po odczekaniu sekundy otwiera ramiona wypuszczając piłeczkę na ziemię.

Równocześnie przez cały czas działania algorytmu kontrolowany jest czujnik dźwiękowy. Jeśli dotrze do niego w międzyczasie dźwięk o odpowiednio głośny (np. klaśnięcie) wykonywanie programu zostanie przerwane.

Program:

Film:

mv_magazynier1_leon.rarOglądnij

B) Magazynier 2

Założenia:

Jedyną różnicą w założeniach pomiędzy tym a poprzednim programem było użycie innego czujnika do określenia miejsca w które przeniesiona miała zostać piłeczka - w tym przypadku miał być to czujnik światła, znajdujący się u dołu robota.

Realizacja:

Tym samym zrealizowany przez nas program jest bliźniaczo podobny do tego z poprzedniego punktu. Jedyną istotną różnicą jest inny czujnik powiązany z ostatnią pętlą. Dzięki tej zmianie robot zatrzymuje się w momencie najechania na powierzchnie o odpowiednio jasnym kolorze (np. białą kartkę).

Program:

Film:

mv_magazynier2_leon.rarOglądnij (Na filmie widać że poprawnie działa zastosowany przez nas wyłącznik awaryjny - trzaśnięcie drzwiami spowodowało wyłączenie się Leona na początku nagrania)

C) Złodziej

Założenia:

Ten program miał zamienić naszego robota w złodzieja. Robot miał złapać kulkę, wycofać się, następnie wykonać zwrot i jechać tak długo aż ktoś krzyknie 'Stać, policja!'.

Realizacja:

Leon z początku powoli jedzie na wprost (uznaliśmy że złodziej musi się ostrożnie zakradać do kradzionego przedmiotu). Gdy chwyci piłeczkę po cichu wycofuje się z miejsca popełnienia przestępstwa. Następnie wykonuje zwrot w przeciwną stronę i zaczyna uciekać z łupem. Jeżeli podczas kradzieży ktoś krzyknie 'Stać, policja!' (lub tak naprawdę cokolwiek innego :P) Leon zatrzyma się i zostanie złapany na gorącym uczynku.

Ze względu na podobieństwo do poprzednich programów przy tworzeniu tego wykorzystaliśmy drugą wersję magazyniera. Niestety zapomnieliśmy usunąć ostatnią, niepotrzebną w tym przypadku pętlę, przez co stworzyliśmy złodzieja który poza policją boi się również światła :P

Program:

Film:

mv_zlodziej_leon.rarOglądnij

3. Podsumowanie

Trzecie i niestety ostatnie zajęcia z LEGO mindstorms również przypadły nam do gustu. Generalnie bardzo przyjemnie pisze się programy gdy ma się możliwość na bieżąco przetestować ich działanie na fizycznie istniejącym robocie. Mamy nadzieję że jeszcze kiedyś będziemy mieli okazję pobawić się tymi sympatycznymi urządzeniami.

4. Sugestie dotyczące laboratorium

Naszym zdaniem laboratoria byłyby ciekawsze, jeśli podczas ich trwania byłaby możliwość przetestowania również innych z możliwych do zbudowania form robota. Bardzo interesujące mogłyby być np. programy wykonywane przez robota człekokształtnego, którego zapewne dużo trudniej byłoby zmusić do zwykłego przemieszczania się w konkretnym kierunku, co w przypadku robotów wykorzystywanych na zajęciach było zadaniem trywialnym.

pl/dydaktyka/jsi/2009/sprawozdania/jsi20091216-08d.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0