|
|
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20081217-11c [2008/12/22 21:45] jsi08 |
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20081217-11c [2019/06/27 15:50] |
=== 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:** | |
| |
{{: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. 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. | |
| |
| |
| |