Sprawozdanie z laboratorium 3

1. Wstęp

Celem zajęć było zrealizowanie było zrealizowanie programów sterujących o większej złożoności problemowej niż na pierwszych zajęciach laboratoryjnych z robotami Lego Mindstorm. Algorytmy zakładają użycie większej liczby sensorów, dodatkowo każdy z programów wykorzystuje chwytak w celu przeniesienia/zabrania przedmiotu, w naszym przypadku kulki.

Na zajęciach laboratoryjnych współpracowaliśmy z robotem „Henio”.

2. Programy

W tworzonych programach zastosowaliśmy rozgałęzienia w celu wykorzystania równoległości działania . Nie zapomnieliśmy jednak o ograniczeniach płynących z używanego oprogramowania do konstrukcji programów sterujących.

Rozgałęzienia pomogły „zasymulować” działanie równoległe stworzonych programów. Każda odnoga posiada możliwość jednokrotnego wykonania ciągu instrukcji, do ponownego użycia gałęzi wymagane jest ponowne uruchomienie aplikacji.

a) Magazynier

Założenia

Henio powinien używając sensora dotyku pochwycić kulkę, następnie dokonać zwrotu o 180 stopni. Następnie dokonuje przeniesienia kulki pod ścianę ( wykorzystanie sensora odległości ). W przypadku klaśnięcia, które jest wyłącznikiem awaryjnym, Henio zatrzymuje się.

Program

Program składa się z trzech rozgałęzień. Pierwsze z nich, licząc od góry zdjęcia, odpowiada za wyłącznik awaryjny. W przypadku sygnału dźwiękowego Henio zostaje zatrzymany. Kolejna powoduje rozwarcie chwytaka zamocowanego z przodu robota, i powolny ruch w kierunku przedmiotu, który ma zostać podniesiony. Jest to gałąź, która przy normalnej pracy (bez wyłączenia awaryjnego, blokady czujników)zostaje wykonana jako pierwsza. Ostatnia z gałęzi oczekuje na pojawienie się sygnału sensora dotyku, w tym przypadku następuje pochwycenie przedmiotu znajdującego się przed Heniem, obrót robota i ruch do przodu. Henio zatrzyma się dopiero po usłyszeniu sygnału dźwiękowego, zastosowano tutaj pętlę , która będzie trwać do momentu wystąpienie sygnału dźwiękowego. Początkowo uważaliśmy, iż sam wyłącznik awaryjny powinien wystarczyć. Jakkolwiek praktyka zweryfikowała teorie, czego wynikiem jest wymieniona przed chwilą pętla.

Działanie

Film prezentujący działanie stworzonego programu :

Normalna praca : Magazynier - wideo

Wyłącznik awaryjny : Wyłącznik - wideo

Program magazynier do pobrania : henio_magazynier_1100.rar

b) Złodziej wersja I

Założenia

Henio powinien pochwycić kulkę, gdy znajdzie się w odpowiedniej odległości, następnie dokonuje wycofania. Kolejnym etapem jest dokonanie obrotu o 180 stopni. Henio zaczyna uciekać , zatrzymuje się dopiero w chwili, gdy zostanie wzniesiony alarm.

Program

Program wykorzystuje większość bloczków zawartych w programie Magazynier. Różnicą jest reakcja po pochwyceniu przedmiotu. W przeciwieństwie do programu Magazynier Henio zanim dokona obrotu , i w tym przypadku ucieczki z miejsca zdarzenia, dokonuje jeszcze pośpiesznego wycofania z pierwotnego miejsca położenia kulki, tudzież innego przedmiotu, który miał zostać ukradziony.

Działanie

Film prezentujący działanie stworzonego programu :

Złodziej wersja I - wideo

Link

Program magazynier do pobrania : henio_zlodziej_1100.rar

c) Złodziej wersja II

Założenia

W odróżnieniu od pierwszej wersji złodzieja, Henio, w przypadku wzniesienia alarmu zaczyna kluczyć.

Program

Program Złodziej wersja II jest zmodyfikowaną wersją I. Zlikwidowano odnogę wyłącznika awaryjnego, wynika to z faktu, iż robot po wykryciu ma zacząć kluczyć. Ostatnia odnoga uległa znacznej modyfikacji. W miejsce zatrzymania pojazdu, wstawiliśmy tam podwójną pętlę w której dokonywane jest losowanie kierunku skrętu, przejechanie niewielkie odległości, następnie dokonanie wyznaczonego skrętu. Jednakże program nie spełnił naszych oczekiwań. Losowanie w przeważającej liczbie przypadków dawało taki sam rezultat, w zależności od uruchomienia robot miał wyraźną tendencję do skręcania w stronę prawą, bądź też lewą, co można zauważyć na załączonym pliki wideo.

Działanie

Film prezentujący działanie stworzonego programu :

Złodziej wersja II - wideo

Link

Program magazynier do pobrania : henio_zlodziej2_1100.rar

3. Podsumowanie

Pomimo pewnych trudności, wynikających z prostoty oprogramowania, udało nam się stworzyć trzy programy sterujące, z czterech podanych na stronie laboratorium. Kolejny raz laboratoria okazały się przyjemne i czasami nawet zabawne. Jednakże zakończone laboratoria pozostawiają pewien niedosyt, związany z brakiem wykorzystania innych programów, języków programowania robotów Lego Mindstorm.

4. Uwagi

Zadania proponowane do wykonania na laboratorium są bardzo podobne, w przypadku skonstruowania jednego z nich , każdy kolejny jest niewielką modyfikacją poprzednika. Tak więc, można dodać więcej programów różniących się w większym stopniu, lub wykorzystać dobre pomysły niektórych grup, które podjęły się dzieła tworzenia własnego algorytmu.

Dodatkowo wszystkie laboratoria wykorzystywały ten sam model robota. Ciekawym pomysłem było by stworzenie na każde laboratorium, lub chociaż na dwa ostatnie, gdyż pierwsze jest zapoznawcze, innego modelu robota. Nie musi być to koniecznie robot człekokształtny, gdyż jego obsługa mogłaby, wymagać więcej czasu (istnieją proste modele człekokształtne stosowane w zabawkach dla dzieci, które umożliwiają ruch do przodu, jak i wykonywanie skrętów np. Robot z 1950 roku, czy też Robot zabawka). Przykładowo można stworzyć nieruchomego robota , czy nawet prostą symulację linii produkcyjnej. Przekształcenie robota musiałoby odbywać się pomiędzy zajęciami, gdyż czas samych zajęć jest zbyt krótki, aby dokonać znaczących modyfikacji.

Brakuje również przykładów wykorzystania komunikacji bluetooth z komputerem, czy może nawet współpracy kilku grup i komunikacji pomiędzy większą liczbą robotów. Dodatkowym problemem w przypadku komunikacji bluetooth jest brak znajomości hasła administratora komputerów.

Autorzy

Łukasz Pożarlik, Marcin Polak, Mariusz Reichert, Henio

pl/dydaktyka/jsi/2009/sprawozdania/jsi20091216-11b.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