Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090114-08d [2009/01/19 23:49]
jsi08 utworzono
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090114-08d [2019/06/27 15:50] (aktualna)
Linia 3: Linia 3:
 ===== Konstrukcja ===== ===== Konstrukcja =====
 Postanowiliśmy zbudować robota TriBot zamiast modelu z instrukcji QuickStart, aby nadać robotowi większą funkcjonalność. Postanowiliśmy zbudować robota TriBot zamiast modelu z instrukcji QuickStart, aby nadać robotowi większą funkcjonalność.
 +
 +{{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​dsc00149n.jpg|}}
 +----
 +
 +Jednakże kosztowało nas to zdecydowanie za dużo czasu. W związku z tym nie mieliśmy okazji by wypróbować pełne możliwości konstrukcji. ​
 +Wydaje się, iż ze względu na rozbudowę chwytaka oraz użycie sprytnej dźwigni zwiększającej czułość sensora dotyku(widać ją powyżej na zdjęciu),
 +znacząco poprawiają się możliwości motoryczne robota. Wskazanym jest działanie przynajmniej na tej formie maszyny. ​
 +Forma poprzednia pod względem funkcjonalności prezentuje się zdecydowanie bardziej ubogo... pomijając już walory estetyczne co 
 +widać poniżej na zdjęciu.
 +
 +{{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​dsc00148.jpg|}}
 +
 ===== Algorytm ===== ===== Algorytm =====
 +
 +Algorytm ze względu na ilość czasu poświęconą na konstrukcję ograniczył się jedynie do podstawowego zadania magazyniera:​
 +
   * Jedź prosto na kulkę   * Jedź prosto na kulkę
   * Dotknąwszy kulkę zatrzymaj się   * Dotknąwszy kulkę zatrzymaj się
Linia 11: Linia 26:
   * Jedź na zadaną odległość   * Jedź na zadaną odległość
   * Połóż kulkę   * Połóż kulkę
-====== Budowa robota ​====== + 
-Nasz Jasio został wyposażony w mikrofon, czujnik dotyku oraz szczęki do chwytania kuli. Nie umieściliśmy pozostałych czujników z powodu braku czasu na testowanie. Kula została osadzona na przygotowanej platformie. Robot został przekazany następnej grupie laboratoryjnej. +====== Wykonanie ====== 
-====== Program w Prologu ​======+===== Budowa robota ===== 
 +Nasz Jasio został wyposażony w mikrofon, czujnik dotyku oraz szczęki do chwytania kuli. Nie umieściliśmy pozostałych czujników z powodu braku czasu na testowanie. 
 +Kula została osadzona na przygotowanej platformie. 
 + 
 +{{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​dsc00150.jpg|}} {{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​dsc00151.jpg|}} 
 + 
 +Robot w takiej formie ​został przekazany następnej grupie laboratoryjnej. 
 + 
 +===== Program w Prologu =====
 Nasza realizacja algorytmu magazyniera:​ Nasza realizacja algorytmu magazyniera:​
-====== ​Podsumowanie ​======+<code prolog>​ 
 +:- consult('​../​plnxt'​). 
 + 
 +check_ball :- 
 + nxt_touch(Value,​force),​ 
 + Value ​1. 
 + 
 +check_sound :- 
 + nxt_sound(Value,​force),​ 
 + Value > 50. 
 + 
 +ball :- 
 + nxt_stop,​ % Stajemy przy kulce 
 + nxt_pincer(close),​ % Lapiemy kulke 
 + nxt_go_cm(-200,​ 15), % Cofamy sie 
 + nxt_rotate(400,​180),​ % Odwracamy sie 
 + nxt_go_cm(400,​ 30), % Odjezdzamy 30cm 
 + nxt_pincer(open). % Puszczamy przedmiot 
 + 
 +start :- 
 + nxt_open,​ 
 + check_sound,​ % Wolamy Jasia 
 + nxt_pincer(open),​ % Rozwieramy kleszcze 
 + nxt_go(400),​ % Jedziemy, az napotkamy kulke 
 + trigger_create(_,​check_ball,​ball). 
 +</​code>​ 
 +Plik programu: {{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​gb-magazynier2.pl|}} 
 +===== Problemy ​===== 
 +Czasami Jasio robił się niegrzeczny:​ 
 + 
 +  * Wykonywał przypadkowe ruchy 
 +  * Nie wykonywał wgranego programu 
 +  * Nie dał się sterować z konsoli 
 + 
 +Nie do końca było dla nas jasne czy jest to wina interface'​u komunikacyjnego czy może raczej  
 +samego programu swipl. Powodem mogło być niezakończenie poprzedniego programu.  
 +Ponowne uruchomienie powłoki swipl rozwiązało problem.  
 + 
 +Problem ten (miejscami wybitnie irytujący, zwłaszcza gdy dobry program nie raczył poprawnie funkcjonować)  
 +kosztował nas również sporo czasu. 
 + 
 +===== Podsumowanie ​===== 
 +Prolog pozwala na programowanie robota w sposób bardziej efektywny. Najważniejszą zaletą jest modelowanie zachowania robota z użyciem reguł. Ponadto Prolog daje możliwość pełniejszej kontroli dzięki lepszemu wykorzystaniu czujników. Dzięki formie programowej konstrukcji algorytmów sterowania robotem, możliwe jest rozwiązywanie dużo bardziej złożonych problemów. Dodatkowo prolog jako język programowania wprowadza zdecydowanie krótszą, a zarazem bardziej logiczną składnię co w konsekwencji obfituje w znaczący wzrost efektywności robota. 
 ====== Propozycje ====== ====== Propozycje ======
-Dobrym pomysłem byłoby organizowanie zawodów dla zainteresowanych studentów, polegających nie na budowie robotów, lecz pisaniu programów w prologu działających na konkretnym/​tak samo zbudowanym robocie i spełniających zadane cele. Udział w zawodach byłby udokumentowany w życiorysie robota na aiWiki.+Dobrym pomysłem byłoby organizowanie zawodów dla zainteresowanych studentów, polegających nie na budowie robotów, lecz pisaniu programów w prologu działających na konkretnym/​tak samo zbudowanym robocie i spełniających zadane cele. Udział w zawodach byłby udokumentowany w życiorysie robota na aiWiki. Programy wzbogaciłyby kolekcję algorytmów dostępnych na stronie.
  
  
  
pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20090114-08d.1232405363.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (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