Spis treści

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 i NQC. Wczesne próby rozwiązań opartych o Prolog można znaleźć w projekcie 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. 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:

PLNXT ma następujące cechy:

Architektura API

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.

Obsługa wątków

Do implementacji złożonych algorytmów sterowania NXT niezbędne jest wprowadzenie mechanizmów opóźniania akcji w czasie oraz uwarunkowanie akcji od pewnych zdarzeń.

W module „threads” znajdują się predykaty umożliwiające tworzenie triggerów i timerów z wykorzystaniem wątków w SWIProlog. Trigger uruchamia akcję pod warunkiem zajścia zdarzenia. Timer uruchamia akcję po wyznaczonym czasie.

Platforma LEGO Mindstorms NXT

Minimalna wiedza potrzebna do używania PLNXT:

Powyższe materiały są częścią serwisu Laboratorium AGH - LEGO Mindstorms.

Dokumentacja

FIXME serwer dokumentacji online

Download

Release M0

20.02.2009: Pobierz PlNXT-M0

Release M3

09.05.2010: Pobierz PlNXT-M3.1

Konfiguracja

Jeżeli nie używałeś jeszcze Mindstorms NXT, polecam przejrzeć instrukcję LEGO. Ładna, kolorowa, z obrazkami. :) Na pewno dysponujesz wersją angielską. Tutaj do ściągnięcia wersja polska. Jeśli jesteś do tego zbyt leniwy, zacznij od krótkiego zapoznania z platformą LEGO Mindstorms NXT, niezbędnego do używania PLNXT. Zawarta jest tam minimalna, jak tylko się da, wiedza o platformie.

Pobierz i rozpakuj aktualną wersję PLNXT. Do ściągnięcia w dziale download.

Przygotowanie środowiska

Różne moduły komunikacyjne wymagają różnego przygotowania środowiska:

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.

Moduł serial

Konfiguracja trybu szeregowego dla GNU/Linux

Moduł icommand

FIXME

Moduł sockets

FIXME

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''.

Strony pokrewne

Patrz linki (część serwisu Laboratorium AGH - LEGO Mindstorms).

Licencja

Copyright © 2006-9 by the HeKatE Project

PLNXT jest rozwijany przez HeKatE Project (http://hekate.ia.agh.edu.pl).

PLNXT jest wolnym oprogramowaniem: możesz go rozprowadzać i/lub modyfikować na warunkach licencji GNU General Public License, wydanej przez Free Software Foundation, według wersji 3 tej licencji lub którejś z późniejszych.

PLNXT rozpowszechniany jest z nadzieją, iż będzie on użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI; nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji, przeczytaj licencję GNU General Public License. Z pewnością wraz z PLNXT otrzymałeś egzemplarz licencji GNU General Public License. Jeśli nie, zobacz http://www.gnu.org/licenses/.

GPLv3

Kontakt

Prosimy o kontakt w przypadku, gdy:

E-mail: holownia(_at_)agh.edu.pl ew. gjn(_at_)agh.edu.pl

Prace rozwojowe

Dla deweloperów.

Aktualności/problemy