Różnice
Różnice między wybraną wersją a wersją aktualną.
|
|
pl:dydaktyka:piw:2010:sprawozdania:piw20100526-17b [2010/05/29 14:05] piw10 |
pl:dydaktyka:piw:2010:sprawozdania:piw20100526-17b [2019/06/27 15:50] |
====== Sprawozdanie 4 ====== | |
| |
* Robot: **Franek** | |
* Data wykonania: **26.05.2010 godz. 17:00** | |
* Autorzy: **Agata Krysian, Łukasz Mendakiewicz, Tomasz Skrzypczak** | |
| |
---- | |
| |
====== Zaczynamy ====== | |
| |
Zajęcia rozpoczęliśmy przeglądnięcia dokumentacji. Następnie przeczytaliśmy algorytmy do wykonania i przystąpiliśmy do działania. Zaczęliśmy od niewielkiej modyfikacji naszego robota, który posiadał niepotrzebne elementy. Jednak nie usuwaliśmy ich, aby nie tracić czasu, lecz dołożyliśmy to co było niezbędne. Od tej pory Franek wyglądał bardziej agresywnie, nie tracąc swojego uroku. | |
| |
---- | |
| |
====== Uwięziony ====== | |
| |
Jak zawsze algorytm był pisany etapami i testowany w każdym kroku, co zdecydowanie ułatwia nam pracę. Największy problem był z odczytaniem wartości za pomocą nxt_light. Wartość zwracana przez robota dla danego koloru była różna w zależności czy Franek był odwrócony w stronę okna czy też w stronę sali. Niestety te wartości przy różnych kolorach i różnym ustawieniu względem okna nachodziły się na siebie, co uniemożliwiło nam dobranie odpowiednich współczynników. Pomysł był więc następujący, przenieść planszę na bardziej neutralne miejsce - podłoga. Jednak i to nie pomogło, błędy były mniejsze, ale zakresy wartości dla poszczególnych kolorów nachodziły na siebie. Podjęliśmy mimo wszystko próby wyznaczenia widełek dla danych kolorów, ale nasze testy zakończyły się nie pomyślnie. Algorytm został napisany w większej części. Niestety brak możliwości dobrania odpowiednich liczb przekreślił nasze perspektywy zakończenia zadania powodzeniem. Poniżej dotychczasowy efekt naszej pracy: | |
| |
<code prolog> | |
% :- consult('plnxt.pl'). | |
| |
start :- | |
write('-- start 0.1 --'), | |
nxt_goal(franek, my_actions). | |
| |
my_actions :- | |
nxt_light_LED(activate), | |
gogo. | |
| |
gogo :- | |
stop, | |
nxt_go(250), | |
trigger_create(_, check_1, check_more). | |
| |
check_1 :- | |
nxt_light(V, force), | |
V > 60, | |
V < 65. | |
| |
check_more :- | |
stop, | |
nxt_go_cm(50,2), | |
nxt_light(V, force), | |
decide(V). | |
| |
decide(V) :- | |
V < 60, | |
write('czarny'), | |
escape. | |
| |
decide(V) :- | |
V >= 60, | |
write('czerwony'). | |
| |
escape :- | |
Angle is 150 + random(60), | |
nxt_rotate(100, Angle, force), | |
gogo. | |
| |
stop :- | |
trigger_killall, | |
nxt_stop. | |
</code> | |
| |
---- | |