Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20081217-11c [2008/12/19 16:08] jsi08 |
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20081217-11c [2019/06/27 15:50] (aktualna) |
=== Prezentacja robota: === | === Prezentacja robota: === |
| |
W tym tygodniu mieliś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. | 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:** |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:gienek_-_dzwig_1.jpg}}{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:gienek_-_dzwig_2.jpg|}}{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:gienek_-_dzwig_3.jpg|}} |
| ---- |
| |
| === 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: |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:galg-1d.png|}} |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008: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. |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:galg-2d.png|}} |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008: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. |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:galg-3d.png|}} |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008: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ą. |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:galg-4d.png|}} |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008: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. |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:galg-5d.png|}} |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:alg-5.rbt|}} |
| |
| Widząc jak Gienio świetnie sobie radzi postanowiliśmy uwiecznić jego prace ;) |
| \\ |
| [[http://pl.youtube.com/watch?v=27lS8LX-vjs|Gienio lubi czerwony]] |
| \\ |
| [[http://pl.youtube.com/watch?v=CDOvcV2DQr4|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. |
| |
**Zdjęcia Gienia** | |
| |
| |
{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:gienek_-_dzwig_1.jpg|}}{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:gienek_-_dzwig_2.jpg|}}{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:gienek_-_dzwig_3.jpg|}} | |