Laboratorium 3


Prezentacja robota:

W tym tygodniu mięliśmy o wiele ułatwione zadanie. Nie musieliśmy sami budować robota, bo zrobili to koledzy z wcześniejszej grupy. Nam przypadło zadanie napisania algorytmów sterowania dla Gienia. Po wejściu do sali byliśmy pod wrażeniem tworów jakie zostawili nasi koledzy. Roboty wykonane zgodnie z instrukcjami producenta Lego robiły wrażenie swoim wyglądem. Trzeba przyznać że na samodzielne wymyślenie podobnych konstrukcji należało by poświęcić bardzo dużo czasu, a na to nie pozwalają jedynie półtoragodzinne zajęcia. Czas przy robotach płynie bardzo szybko - a strasznie dużo pomysłów przychodzi do głowy i niestety tylko nieliczne można przetestować. W tym tygodniu współpracowaliśmy razem z Gieniem, który przy pomocy kolegów zamienił się w dźwig. Bardzo ciekawie został wymyślony mechanizm poruszania ramieniem i zamykania chwytaka, co przez chwilę z zainteresowaniem analizowaliśmy. Dodatkowo Gieniu miał zamontowane dwa czujniki: czujnik światła i czujnik dotyku, które wykorzystaliśmy w naszych algorytmach.

Zdjęcia Gienia:

_


Projektowanie algorytmów:

Nasze algorytmy budowaliśmy w oparciu o gotowce z pomocy dostarczonej z oprogramowaniem. Dodaliśmy także kilka naszych modyfikacji, które sprawiły że w naszej opinii algorytmy działały bardziej naturalnie.

Algorytm I

Pierwszy algorytm został napisany w celu przetestowania ruchu ramienia w obydwu kierunkach. Robot wysuwa ramię, następnie przekręca je w jedną stronę, po chwili przekręca je z powrotem i składa je do pozycji wyjściowej. Schemat algorytmu został przedstawiony niżej:

alg-1.rbt

Algorytm II

Zadaniem algorytmu jest przeniesienie piłki z jednego stojaka na drugi z założeniem że znajdują się one w odpowiedniej empirycznie wybranej odległości, które są w zasięgu ramienia robota. Ten algorytm został napisany zgodnie z instrukcją zamieszczoną w dokumentacji. Robot wysuwa ramię i zaciska chwytak. Jeżeli nie ma przedmiotu przycisk czujnika nie zostanie wciśnięty i robot wraca do pozycji wyjściowej. Jeżeli natomiast znajdzie przedmiot, przekręca ramię w kierunku drugiego stojaka i odkłada piłkę na miejsce. Algorytm działał bardzo dobrze, jednak nie działał tak jak oczekiwaliśmy dlatego dokonaliśmy pewnych poprawek.

alg-2.rbt

Algorytm III

Zamieszczamy tutaj algorytm III, który jest poprawioną wersją algorytmu II. W poprzedniej wersji nie spodobało nam się to, że po zaciśnięciu chwytaka ramię pozostawało na tej samej wysokości i tylko przekręcało się w bok. Powodowało to że zaczepiało ono o stojak, na którym umieszczaliśmy piłki. Nasza modyfikacja objęła dźwignięcie ramienia do góry po złapaniu przedmiotu, przekręcenie i opuszczenie ramienia a następnie wypuszczenie przedmiotu.

alg-3.rbt

Algorytm IV

Algorytm ten, również został napisany zgodnie z instrukcją zamieszczoną w dokumentacji. Tym razem wykorzystujemy czujnik natężenia światła. Zadaniem robota jest rozróżnienie, którą piłkę złapał. Jeżeli jest to piłka niebieska ma zostać na stojaku. Przenosimy jedynie piłkę czerwoną. Algorytm działał zgodnie z tym co zostało zaprogramowane. Robot przenosi piłkę czerwoną, a zostawia niebieską.

alg-4.rbt

Algorytm V

Jest to podobna modyfikacja tym razem algorytmu IV. I tym razem ramię robota po zaciśnięciu się na piłce pozostawało na tej samej wysokości. Dodaliśmy podnoszenie i opuszczanie ramienia, przy przenoszeniu piłki.

alg-5.rbt

Widząc jak Gienio świetnie sobie radzi postanowiliśmy uwiecznić jego prace ;)
Gienio lubi czerwony
Gienio nie lubi niebieskiego


Integracja i testowanie:

Po napisaniu algorytmu przychodził czas na testowanie tego co stworzyliśmy. Testowaliśmy każdy algorytm dla różnych ustawień początkowych ramienia oraz różnych wysokości stojaków. Nie mięliśmy w tym tygodniu większych problemów, a te co napotkaliśmy znajdują się opisane niżej.


Problemy:

  • Mieliśmy problem ze stojakami na piłki. Te których opis budowy został zamieszczony w instrukcji były bardzo niestabilne i za wysokie tak że ramię robota nie mogło się swobodnie ruszać. Problem rozwiązaliśmy wykorzystując krótsze klocki z których były zbudowane stojaki.
  • Na początku pracy Gienia stwierdziliśmy że podczas ruchu ramienia coś jest nie tak gdyż było słychać dziwne odgłosy stukania i zgrzytania. Było to spowodowane zapewne niedokładnością wykonania Gienia przez kolegów z grupy poprzedniej. My postanowiliśmy oszczędzić Gieniowi cierpienia i lekko zmodyfikowaliśmy jego konstrukcję tak alby działał jak należy.

Wnioski:

  • Zestaw Lego Mindstorms daje bardzo duże możliwości budowy różnorakich robotów jak i ich programowanie. Każda grupa miała innego robota zbudowanego z tego samego zestawu.
  • Oprogramowanie mindstorms NXT daje duże możliwości programowania dość skomplikowanych algorytmów w bardzo prosty sposób.
  • Mimo niedoskonałości czujniki zarówno dotykowy jak i koloru są wystarczająco niezawodne. Spełniają swoje zadanie w 100% bez większych problemów.

Propozycje rozszerzenia wiki:

  • Proponujemy wzbogacić wiki o instrukcję budowy ciekawych robotów wymyślonych przez studentów. Zamieszczanie algorytmów, które nie są standardowymi propozycjami producenta.
pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20081217-11c.txt · ostatnio zmienione: 2017/07/17 08:08 (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