Sprawozdanie z laboratorium nr 5

  • Robot: Franek
  • Data wykonania: 01.06.2010 godz. 9:30
  • Autorzy: Tomasz Krużel, Mateusz Stawowiak, Janusz Lisiecki

Konfiguracja stanowiska do pracy z NXT

Tym razem do pracy przeznaczony został nam robot Franek. Celem laboratorium było zaimplementowanie pozostałych z zaawansowanych algorytmów PLNXT. Ponieważ na poprzednich zajęciach udało nam się napisać algorytm 'Więzień' zostały nam do napisania algorytmy 'Sprzątacz' i 'Co przybyło?'. Oba z tych algorytmów wykorzystują czujnik odległości. Dlatego pierwszym krokiem było odpowiednie zmodyfikowanie robota poprzez umieszczenie czujnika odległości na samym przodzie.

Franek na planszy:

Implementacja algorytmu 'Co przybyło?'

Zadaniem naszego robota było zbadanie obszaru i analiza znajdujących się wokół niego przedmiotów. Następnie robot miał czekać na klaśnięcie, po czym ponownie badał obszar w poszukiwaniu nowego dodatkowego przedmiotu. Nasz algorytm w założeniu miał działać następująco:

1. Wykonaj pomiar odległości i zapisz odległość od przedmiotu

2. obracaj się o 10 stopni, a następnie ponownie wykonaj pomiar odległości. Jeśli odległość jest mniejsza, zapisz ją jako aktualna najmniejsza odległość od przedmiotu

3. wykonuj punkt 2 aż do pełnego obrotu o 360 stopni, następnie czekaj na klaśnięcie

4. po klaśnięciu ponownie obracaj się i badaj odległość. jeśli odległość jest mniejsza od zbadanej w punkcie 2 wykonaj podjazd do przodu o tą odległość i zakończ działanie

Głównym powodem niepowodzenia naszego algorytmu była próba zaimplementowania wszystkiego na triggerach. W pewnym momencie mieliśmy w kodzie kilka triggerów wywoływanych rekurencyjnie. Lepszym pomysłem było wykonanie prostej pętli, koledzy obok uzyskali dzięki temu dużo lepszy efekt. Dużo czasu straciliśmy też na próbie debuggowania naszego kodu, poprzez wypisywanie na ekran aktualnie wykonywanych procedur. Pomysł ten okazał się kiepski, często wypisanie wszystkich informacji następowało dopiero po ubiciu procesu prologa.

Implementacja algorytmu 'Sprzątacz'

Po niepowodzeniu przy algorytmie 'Co przybyło' postanowiliśmy jeszcze na szybko spróbować swoich sił w 'Sprzątaczu'. Nauczeni doświadczeniem utworzyliśmy prostą pętlę która miała się wykonać 36 razy, obracając robota o 10 stopni i w razie potrzeby wypychając niechciany przedmiot. Efekty pierwszego testu algorytmu były obiecujące, jednak niestety nie zdążyliśmy z jego dopracowaniem.

Spostrzeżenia, napotkane problemy, wnioski

Problemy i spostrzeżenia:

  • jak widać na naszym przykładzie, czasem nie trzeba wymyślać bardzo skomplikowanego kodu. W razie problemów czasem lepiej pomyśleć czy czegoś nie da się zrobić inaczej, prościej.

Podobnie jak na poprzednich zajęciach napotkaliśmy następujące problemy:

  • Częste wykonanie poprawnego polecenia powodowało zawieszenie się środowiska. W takiej sytuacji musieliśmy ubić proces prologa i zaczynać od początku.
  • Podczas laboratorium robot kilka razy samoczynnie się wyłączył. Początkowo myśleliśmy że problemem są słabe akumulatory, jednak wyświetlacz robota pokazywał maksymalny ich poziom.

Kody źródłowe

pl/dydaktyka/piw/2010/sprawozdania/piw20100602-09c.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