Sprawozdanie (laboratorium 2)
1. Cel zajęć
Na kolejnym laboratorium z cyklu Lego Mindstorm mieliśmy zaprojektować kilka algorytmów sterowania w środowisku Lego Mindstorm NXT dostarczonym przez Lego, Dzięki czemu mogliśmy lepiej zapoznać się z możliwościami programowania w tym środowisku. Ponieważ robot był już zbudowany od razu przeszliśmy do tworzenia algorytmów sterowania nim.
2. Sesja zdjęciowa Czesława
2.1 Zdjęcie z przodu
2.2 Czesław z profilu
2.3 Czesław w akcji
3. Algorytmy sterowania
3.1 Patrol
Plik .rbt
Opis działania:
Program uruchamiany przez dotyk odpowiedniego czujnika. Ruch robota wykonuje się w pętli. Porusza się on do przodu i jeżeli odległość od przeszkody jest mniejsza od ustawionej w programie, odtwarzany jest sygnał dźwiękowy i robot cofa. Jeżeli odległość jest większa od podanej robot porusza się nadal do przodu. W dalszej części algorytmu wykonywane jest skręcanie robota i wracamy do początku pętli.
Zdajemy sobie sprawę z wad powyższego algorytmu jednak z braku czasu nie zdołaliśmy wymyślić lepszej wersji. Nie od razu również doszliśmy do tego, że nie jest sprawdzony warunek jeśli poruszanie się robota jest realizowane przez skończony czas w bloczku 'Move'.
Stworzona została druga wersja algorytmu, jednak nie zdążyliśmy jej przetestować. Działanie teoretycznie podobne do powyższego.
Plik .rbt
3.2 Uniki
3.3 Śledzenie
Plik .rbt
W tym programie zaczynamy od sprawdzenia natężenia dźwięku w początkowej pozycji, następnie robot skręca o zadaną część pełnego obrotu i ponownie ‘nasłuchuje’. Dalej dokonujemy porównania i jeżeli w pierwszej pozycji natężenie dźwięku było większe niż w drugiej, robot wraca do początkowej pozycji i jedzie w tamtym kierunku. W sytuacji przeciwnej po prostu jedzie do przodu. Całość programu wykonywana jest w pętli. Niestety tak zbudowany algorytm nie spełniał naszych oczekiwań, a nasz robot po prostu kręcił się w koło. Nie doszliśmy do przyczyny takiego zachowania Czesława.
4. Podsumowanie i wnioski
4.1 Komunikacja bluetooth
Próbowaliśmy nawiązać komunikację naszego robota z komputerem. Jednak mimo, że połączenie zostało nawiązane nie udało nam się zaprogramować robota. Nie przeanalizowaliśmy możliwości komunikacji między dwoma robotami.
4.2 Działanie algorytmów
Niestety nie udało nam się zbudować wszystkich algorytmów wymienionych w opisie laboratorium 2, a te zbudowane nie zawsze działały zgodnie z naszymi oczekiwaniami. Myślimy, że przyczyną może być fakt, że to dopiero nasze drugie spotkanie z Lego Mindstorms i nie znamy jeszcze wszystkich funkcjonalności bloczków i generalnie dostępnego środowiska Lego. Zauważyliśmy również, że czujnik odległości Czesława działa z zauważalnym opóźnieniem i musieliśmy to uwzględnić w algorytmach go wykorzystujących. Mimo małych kłopotów czas spędzony na drugim laboratorium był jak najbardziej pozytywnym przeżyciem i prosimy o wyrozumiałość w ocenie naszej pracy.
5. Spakowane programy