Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:mindstorms:lab:lab_plnxt_multiple [2010/06/08 16:02] snowaczyk |
pl:mindstorms:lab:lab_plnxt_multiple [2019/06/27 15:50] (aktualna) |
| |
Warstwa behawioralna: {{:pl:mindstorms:lab:nxt_movement.pdf|nxt_movement.pdf}}\\ | Warstwa behawioralna: {{:pl:mindstorms:lab:nxt_movement.pdf|nxt_movement.pdf}}\\ |
Tiggery, timery, zadania (goals): {{:pl:mindstorms:lab:threads.pdf|threads.pdf}} | Tiggery, timery, zadania (goals): {{:pl:mindstorms:lab:threads.pdf|threads.pdf}}\\ |
| [[https://ai.ia.agh.edu.pl/wiki/pl:prolog:prolog_lab#czesc_fakultatywna|Wykorzystanie dodatkowych bibliotek SWI Prolog]] |
| |
===== Budowa robota ===== | ===== Budowa robota ===== |
===== Implementacja algorytmu ===== | ===== Implementacja algorytmu ===== |
| |
Proszę zaimplementować algorytm „Więzień” z [[lab_plnxt_zaawansowane|poprzedniego laboratorium]], będą o niego oparte wszystkie programy w ramach niniejszego laboratorium. | Proszę zaimplementować algorytm „Więzień” z [[lab_plnxt_zaawansowane|poprzedniego laboratorium]], będą o niego oparte programy w ramach niniejszego laboratorium. |
| |
===== Testowanie programu dla 2 robotów ===== | ===== Sterowanie wieloma robotami ===== |
| |
Pierwszy etapem laboratorium będzie uruchomienie zaimplementowanego wcześniej algorytmu więzień na 2 robotach jednocześnie. Dodatkowo, znalezienie przez jednego z robotów klucza, tj. czerwonego obszaru, ma spowodować iż drugi przestanie poszukiwać klucza i zatrzyma się. | Pierwszy etapem laboratorium będzie uruchomienie zaimplementowanego wcześniej algorytmu więzień na 2 robotach jednocześnie. Dodatkowo, znalezienie przez jednego z robotów klucza, tj. czerwonego obszaru, ma spowodować iż drugi również zasygnalizuje dźwiękiem znalezienie klucza i również rozpocznie ucieczkę. |
Program należy testować na 2 osobnych planszach. W tym celu zespoły powinny nawiązać ze sobą współpracę, tj. dobrać się w pary i na zmianę korzystać z obu robotów oraz plansz. | Program należy testować na 2 osobnych planszach. W tym celu zespoły powinny nawiązać ze sobą współpracę, tj. dobrać się w pary i na zmianę korzystać z obu robotów oraz plansz. |
| |
===== Zawody robotów ===== | |
| |
Ten etap laboratorium polega na dostosowaniu zaimplementowanego algorytmu „Więzień” do poniższego szablonu modułu Prolog-a, a następnie przesłaniu pliku z modułem na komputer osoby prowadzącej zajęcia. Nazwa pliku musi być zgodna z formatem NAZWA_ROBOTA.pl, czyli np.: irek.pl | ===== Komunikacja między robotami ===== |
<code prolog> | |
:- module(irek,[ | |
irek_go/0 | |
]). | |
| |
:- use_module(../contest_lib). | Pary zespołów powinny stworzyć dwa niezależne programy sterujące robotami i rozbudować je o możliwość komunikacji w celu osiągnięcia efektu jak powyżej (do komunikacji najprościej wykorzystać protokół TCP/IP, którego obsługa jest wbudowana w SWI Prolog). |
| |
irek_go :- | |
% nxt_goal(Robot,Goal). | |
% ... | |
% po pomyslnym zakonczeniu zadania nalezy wywolac contest_finish(Robot), np.: contest_finish(irek) | |
</code> | |
Po otrzymaniu od każdej z grup modułu, prowadzący zajęcia ustali pozycje startowe robotów (takie same dla wszystkich zespołów) i uruchomi plik contest.pl ze specjalnie {{:pl:mindstorms:lab:contest.zip|przygotowanego programu}}. Program wypisze czasy pracy wszystkich robotów, dzięki czemu możliwe będzie wyłonienie zwycięzcy. Nielegalny doping będzie karany dożywotnim wykluczeniem robota z wszelkich zawodów ;) | |
| |
===== Zakończenie ===== | ===== Zakończenie ===== |