====== Języki sztucznej inteligencji - Laboratorium 3 ====== ===== Mariusz Sokołowski, Jan Pollak, Maksymilian Piasecki ===== ===== Środa 17.12.2008 godz. 11.00 ===== ==== Konstrukcja robota ==== Nie musieliśmy składać robota, ponieważ mieliśmy gotowego skorpiona, złożonego przez poprzednią grupę. Dokonaliśmy tylko drobnej modyfikacji a mianowicie czujnik dźwięku umieściliśmy bliżej przodu, bo znajdował się tuż nad silnikiem, który robił dużo hałasu. Efekt był znikomy, ale mniejsza o to. Poniżej przedstawiamy zdjęcia naszego skorpiona. {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:skorpion1.jpg|}} {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:skorpion2.jpg|}} ==== Zastosowane algorytmy ==== === Algorytm 1. Tchórz === Na początku wymyśliliśmy bardzo prosty schemat działania. Wykorzystaliśmy dwa czujniki - ultrasonar i czujnik dotyku (przycisk). Skorpion człapał powoli do przodu, a gdy napotkał przeszkodę w odległości około 30 cm to cofał się troszkę do tyłu. Jednak gdy przeszkoda znajdowała się bardzo blisko (odległość od czujnika ok. 5 cm lub mniej) to następował atak ogonem. Przy czym ogon wracał do pozycji wyjściowej tylko w przypadku trafienia (chociażby w podłogę) tzn. gdy był wygenerowany sygnał z czujnika dotyku na czubku ogona. === Algorytm 2. Agresor === Algorytm ten miał w założeniu powodować bardzo agresywne zachowanie robota. Na początku nasz skorpion poruszał się bardzo powoli i majestatycznie do przodu, gdy napotkał przeszkodę w odległości ok. 20 cm, to nie uciekał jak poprzednio, a wręcz przeciwnie, podbiegał z maksymalną prędkością do przeszkody, zatrzymywał się i zaczynał kłuć - zachowanie godne prawdziwego drapieżcy. Dodatkowo reagował na bodźce dźwiękowe. Napotkaliśmy pewne problemy z doborem czułości czujnika dźwięku, z powodu dużego hałasu jaki powodowały silniki na maksymalnych obrotach, mimo to udało nam się osiągnąć taki efekt, że skorpion reagował na mocne klaśnięcie i skręcał o 90° w lewo. Dzięki temu mieliśmy pewną kontrolę nad robotem i mogliśmy decydować które napotkane obiekty robot ma ominąć a które zaatakować jak również naprowadzić go klaskaniem na odpowiedni cel. Plik z algorytmem: {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jpm4.rbt.zip|}} Film ukazujący działanie 2. algorytmu: [[http://www.youtube.com/watch?v=CfvCNKi38rM]] ==== Propozycje zmian ==== * na stronie www laboratorium mogłyby się pojawić instrukcje dotyczące budowy programów w środowisku Mindstorms NXT, ponieważ niektóre zachowania bloczków nie są intuicyjne. Usprawniłoby to pracę studentów w szczególności na początkowych zajęciach, gdy jeszcze nie są obeznani z tym środowiskiem; * odpowiednie roboty mogłyby być już wcześniej złożone (bo i tak przeważnie składa się je według konkretnej instrukcji) i wtedy studenci mieliby więcej czasu na implementację algorytmów i ich testowanie. W przypadku gdyby niezbędne byłyby modyfikacje konstrukcji robotów, to przebiegałoby to szybko i sprawnie.