Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09a [2009/01/28 21:56]
jsi08
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09a [2019/06/27 15:50] (aktualna)
Linia 2: Linia 2:
 ---- ----
  
-Robot: **?** 
  
 Data wykonania: **21.01.2009,​ godz. 9.30** Data wykonania: **21.01.2009,​ godz. 9.30**
Linia 10: Linia 9:
 ---- ----
  
-Budowa naszego robota:+=== Realizacja ===
  
 +Zastaliśmy już złożonego robota,
  
-{{:pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​franek14-01-09.jpg?​220|}} ​ +korzystał on z dwóch sensorów
-{{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​franek2_14-01-09.jpg?​220|}}+  * czujnika sonarowego,​ 
 +  * czujnika dotyku;
  
 +zatem mogliśmy od razu przystąpić do realizacji algorytmu.
  
-Franek korzystał z dwóch sensorów:​ +Zaimplementowaliśmy algorytm "​sprzątacza",​ w którym ​robot miał za zadanie usunąć wszystkie przeszkody znajdujące się w odległości nie większej niż określona. Aby to zrealizować obracał się on wokół własnej osi, a po wykryciu przeszkody przez czujnik sonarowy wstrzymywał ruch obrotowy, wykonywał ruch w kierunku przeszkody wypychając ją poza obszar do wysprzątania,​ a potem wracał na wcześniejszą pozycję i kontynuował ruch obrotowy, aż do sprawdzenia całego obszaru wokół siebie. Czujnik dotyku służył za awaryjny wyłącznik robota, który uaktywniał się także, gdy przesuwana przeszkoda była zbyt ciężka dla robota.
-  * czujnika sonarowego +
-  * czujnika dotyku +
- +
- +
-Najpierw zapoznaliśmy się z podstawowymi poleceniami API robota: +
-  * otwieranie i zamykanie połączenia Bluetooth - nxt_open, nxt_close,​ +
-  * poruszanie się z daną prędkością i zatrzymywanie - nxt_go(n), nxt_stop, +
-  * pobieranie danych z czujników - nxt_sound, nxt_touch,​ +
-  * reagowanie na zdarzenie - trigger_create. +
- +
- +
-Zaimplementowaliśmy algorytm "​sprzątacza",​ w który ​robot miał za zadanie usunąć wszystkie przeszkody znajdujące się w odległości nie większej niż określona.+
  
 <code prolog> <code prolog>
Linia 50: Linia 40:
  nxt_go_cm(-300,​40),​  nxt_go_cm(-300,​40),​
         sleep(10).         sleep(10).
- trigger_create(_,​fakt,krecenie).+ trigger_create(_,​_,krecenie).
    
 % Sprawdzenie,​ czy znaleziono przeszkodę % Sprawdzenie,​ czy znaleziono przeszkodę
Linia 64: Linia 54:
 :- start. :- start.
 </​code>​ </​code>​
-{{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​panikarz_14-01-09.pl|}}+{{:​pl:​mindstorms:​studenci:​przedmioty:​jsi:​jsi2008:​sprzatacz.pl|}} 
 + 
 +=== Problemy === 
 + 
 +Niestety, szczególnie na początku zajęć, kilkukrotnie nieoczekiwanie robot przestawał wykonywać wysyłane mu polecenia i konieczne było jego wyłączenie i nawiązywanie komunikacji od nowa. W czasie testowania algorytmu okazywało się również, że jednak polecenia biblioteki NXT nie zawsze działają według naszych oczekiwań:​ 
 +  * funkcja odczytująca stan czujnika dotyku "​nxt_touch(Value,​force)"​ przez pewien czas zwracała wartości "​181"​ i "​1023"​ zamiast binarnych,​ 
 +  * przy użyciu funkcji obracającej robota "​nxt_rotate(150,​360)"​ realny kąt obrotu nie zgadzał się z żądanym,​ 
 +  * funkcja nxt_go_cm nie działała, gdy otrzymywała ujemny argument "​Speed"​ - robot nie poruszał się do tyłu. Natomiast funkcja nxt_go reagowała prawidłowo.
  
 === Wnioski === === Wnioski ===
  
 +Ułatwieniem w konstruowaniu algorytmu byłaby bardziej rozbudowana dokumentacja biblioteki NXT.
  
pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20090121-09a.1233176166.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