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:plnxt:start [2009/02/20 11:44]
gjn wersja beta
pl:plnxt:start [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
  
 ====== PLNXT Wprowadzenie ====== ====== PLNXT Wprowadzenie ======
-LEGO Mindstorms NXT jest uniwersalną platformą, która oferuje konstruowanie robotów, jak również rozwiązania programistycznie. Jeśli chodzi o programowanie Mindstorms NXT, LEGO dostarcza środowisko,​ które pozwala tworzyć algorytmy przy użyciu prostego wizualnego języka diagramów przepływu sterowania. Dzięki otwartości platformy pojawiło się wiele programistycznych rozwiązań dla języków takich, jak C/C + +, Java, etc. Przykłady obejmują ​lejos/​iCommand ([[http://​lejos.sourceforge.net]]NQC ([[http://​bricxcc.sourceforge.net/​nqc]]). Wczesne próby rozwiązań opartych o Prolog można znaleźć w projekcie ​Legolog ([[http://​www.cs.toronto.edu/​cogrobo/​Legolog]]). Niestety nie oferuje on ogólnego API i obsługuje tylko starszą wersję Mindstorms - RCX.+LEGO Mindstorms NXT jest uniwersalną platformą, która oferuje konstruowanie robotów, jak również rozwiązania programistycznie. Jeśli chodzi o programowanie Mindstorms NXT, LEGO dostarcza środowisko,​ które pozwala tworzyć algorytmy przy użyciu prostego wizualnego języka diagramów przepływu sterowania. Dzięki otwartości platformy pojawiło się wiele programistycznych rozwiązań dla języków takich, jak C/C + +, Java, etc. Przykłady obejmują [[http://​lejos.sourceforge.net|lejos/​iCommand]] i [[http://​bricxcc.sourceforge.net/​nqc|NQC]]. Wczesne próby rozwiązań opartych o Prolog można znaleźć w projekcie ​ [[http://​www.cs.toronto.edu/​cogrobo/​Legolog|Legolog]]. Niestety nie oferuje on ogólnego API i obsługuje tylko starszą wersję Mindstorms - RCX.
  
-//PLNXT// to API w języku Prolog dla platformy Mindstorms NXT. Jest rozwijane w ramach projektu ​HeKatE ([[http://​hekate.ia.agh.edu.pl]]). Ma na celu zapewnienie regułowego rozwiązania programistycznego wysokiego poziomu. ​+//PLNXT// to API w języku Prolog dla platformy Mindstorms NXT. Jest rozwijane w ramach projektu [[http://​hekate.ia.agh.edu.pl|HeKatE]]. Ma na celu zapewnienie regułowego rozwiązania programistycznego wysokiego poziomu. ​
  
 Na podstawie przeglądu istniejących rozwiązań,​ wymagania nowego API dla NXT zostały sformułowane następująco: ​ Na podstawie przeglądu istniejących rozwiązań,​ wymagania nowego API dla NXT zostały sformułowane następująco: ​
Linia 22: Linia 22:
     * rozwiązanie hybrydowe oparte na socketach z wykorzystaniem biblioteki NXT++, która komunikuje się z robotem,     * rozwiązanie hybrydowe oparte na socketach z wykorzystaniem biblioteki NXT++, która komunikuje się z robotem,
     * prosty graficzny symulator NXT, pozwalający w pewnym zakresie testować algorytmy bez użycia zestawu Mindstorms.\\     * prosty graficzny symulator NXT, pozwalający w pewnym zakresie testować algorytmy bez użycia zestawu Mindstorms.\\
-W rzeczywistości wszystkie te rozwiązania oparte są na protokole komunikacji LEGO. +W rzeczywistości wszystkie te rozwiązania ​(poza symulatorem) ​oparte są na protokole komunikacji LEGO. 
  
 Dowolną inną implementację warstwy komunikacyjnej można stworzyć bazując na pliku nxt_actions_dummy.pl. Ograniczeniem jest to, że nazwy predykatów eksportowanych muszą pozostać takie same. Nie ma także możliwości wprowadzenia niczego nowego bez uwzględnienia tego w warstwie wyższej. Dlaczego? Jest to jedna z warstw projektu, ale wydzielona tylko, aby umożliwić wstawienie w jej miejsce różnych alternatywnych wersji. **Nie powinna być bezpośrednio używana w projektach bazujących na PLNXT. Nie ma takiej potrzeby.** Dowolną inną implementację warstwy komunikacyjnej można stworzyć bazując na pliku nxt_actions_dummy.pl. Ograniczeniem jest to, że nazwy predykatów eksportowanych muszą pozostać takie same. Nie ma także możliwości wprowadzenia niczego nowego bez uwzględnienia tego w warstwie wyższej. Dlaczego? Jest to jedna z warstw projektu, ale wydzielona tylko, aby umożliwić wstawienie w jej miejsce różnych alternatywnych wersji. **Nie powinna być bezpośrednio używana w projektach bazujących na PLNXT. Nie ma takiej potrzeby.**
Linia 39: Linia 39:
   * [[pl:​mindstorms:​interfejs|Opis najbardziej przydatnych elementów interfejsu jednostki centralnej.]]   * [[pl:​mindstorms:​interfejs|Opis najbardziej przydatnych elementów interfejsu jednostki centralnej.]]
  
-Powyższe materiały są częścią serwisu [[pl:​mindstorms|Laboratorium AGH - LEGO Mindstorms]].+Powyższe materiały są częścią serwisu [[pl:​mindstorms:start|Laboratorium AGH - LEGO Mindstorms]].
  
 ====== Dokumentacja ====== ====== Dokumentacja ======
Linia 46: Linia 46:
  
 ====== Download ====== ====== Download ======
 +===== Release M0 =====
 +//​20.02.2009//:​ Pobierz {{:​plnxt:​plnxt-m0.tar.gz|PlNXT-M0}}
  
-FIXME+===== Release M3 ===== 
 +//​09.05.2010//:​ Pobierz {{:​plnxt:​plnxt-m3.1.tar.gz|PlNXT-M3.1}}
  
 ====== Konfiguracja ====== ====== Konfiguracja ======
Linia 57: Linia 60:
 ===== Przygotowanie środowiska ===== ===== Przygotowanie środowiska =====
  
-Różne moduły komunikacyjne wymagają różnego przygotowania środowiska +Różne moduły komunikacyjne wymagają różnego przygotowania środowiska: 
-  * ''​nxt_actions_serial''​ -- praca przez lokalny port szeregowy +  * ''​nxt_actions_serial''​ -- praca przez lokalny port szeregowy, 
-  * ''​nxt_actions_icommand''​ -- praca za pośrednictwem iCommand (Java) +  * ''​nxt_actions_icommand''​ -- praca za pośrednictwem ​[[http://​lejos.sourceforge.net/​icommand.php|iCommand]] (Java), 
-  * ''​nxt_actions_sockets''​ -- praca za pośrednictwem gniazd TCP +  * ''​nxt_actions_sockets''​ -- praca za pośrednictwem gniazd TCP. 
-Tymczasowo możliwa jest używanie jedynie modułu ​serial+Tymczasowo możliwa jest używanie jedynie modułu ​''​serial''​
 Wkrótce będzie to poprawione. Wobec tego dalsze instrukcje są przygotowane jedynie dla tego modułu. Wkrótce będzie to poprawione. Wobec tego dalsze instrukcje są przygotowane jedynie dla tego modułu.
  
Linia 75: Linia 78:
 ====== Pierwsze kroki ====== ====== Pierwsze kroki ======
  
-Jeżeli masz już poprawnie przygotowane środowisko (patrz [[#​konfiguracja]],​ możesz przejść do pisania prostych programów. Zachęcam do zapoznania się z "​Pierwszymi krokami"​. +Jeżeli masz już poprawnie przygotowane środowisko (patrz [[#​konfiguracja]]), możesz przejść do pisania prostych programów. Zachęcam do zapoznania się z [[pierwsze_kroki|''​Pierwszymi krokami''​]].
- +
-[[pierwsze_kroki]]+
  
 ====== Strony pokrewne ====== ====== Strony pokrewne ======
 +Patrz [[pl:​mindstorms:​linki]] (część serwisu [[pl:​mindstorms:​start|Laboratorium AGH - LEGO Mindstorms]]).
 +
 ====== Licencja ====== ====== Licencja ======
  
Linia 104: Linia 107:
  
 ====== Prace rozwojowe ====== ====== Prace rozwojowe ======
-Dla [[plnxtdev:​start|deweloperów]].+Dla [[mindstorms:​plnxt:​plnxtdev:​start|deweloperów]].
  
 ====== Aktualności/​problemy ====== ====== Aktualności/​problemy ======
  
   * **14 stycznia 2009** -- PLNXT zostało użyte podczas zajęć ze studentami. Liczymy na uzyskanie opinii, które pomogą usunąć błędy. Wcześniej trwały prace nad modułem warstwy komunikacyjnej z wykorzystaniem połączenia szeregowego,​ opartego bezpośrednio na protokole LEGO. Protokół ten daje większe możliwości,​ niż używane wcześniej moduły icommand i sockets. Pozwala m.in. synchronizować pracę silników. Wyższa warstwa została przekształcona tak, żeby wykorzystać w pełni to, co daje nam protokół LEGO. Należy ją jeszcze wtórnie przystosować do użycia modułów warstwy komunikacyjnej,​ niezapewniających synchronizacji,​ jak również same te moduły. W tym momencie możliwe jest użycie tylko modułu serial jako warstwy komunikacyjnej.   * **14 stycznia 2009** -- PLNXT zostało użyte podczas zajęć ze studentami. Liczymy na uzyskanie opinii, które pomogą usunąć błędy. Wcześniej trwały prace nad modułem warstwy komunikacyjnej z wykorzystaniem połączenia szeregowego,​ opartego bezpośrednio na protokole LEGO. Protokół ten daje większe możliwości,​ niż używane wcześniej moduły icommand i sockets. Pozwala m.in. synchronizować pracę silników. Wyższa warstwa została przekształcona tak, żeby wykorzystać w pełni to, co daje nam protokół LEGO. Należy ją jeszcze wtórnie przystosować do użycia modułów warstwy komunikacyjnej,​ niezapewniających synchronizacji,​ jak również same te moduły. W tym momencie możliwe jest użycie tylko modułu serial jako warstwy komunikacyjnej.
pl/plnxt/start.1235126645.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (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