Obstacle avoidance training in Khepera 2 simulator via neural network
Erik Melicher
Pre tento projekt využívam Khepera 2 simuator a jeho cieľom je naučiť simulovaného robota obchadzať prekážky.
Khepera 2 Simulator
Je určený pre ľudí so záujmom o robotiku, no bez prístupu k reálnym robotom. Je vhodný na osvojenie si základov umelej inteligencie a strojového učenia. Táto simulacia funguje na rovnakom princípe ako Khepera roboti. Sú tu prístupne hodnoty z ich senzorov a možme nastavovat rýchlost pohybu a jeho smer, modifikovaním rýchlostí motorov otáčajúcich kolesami.
Nástroje
Na prácu bolo samozrejme nutne simulátor sthiahnut a spojazdnit. zdroj: http://diwww.epfl.ch/lami/team/michel/khep-sim/ Ďalej sme potrebovali kninicu Fast Artifical Neural Network (FANN) zdroj: http://leenissen.dk/fann/wp/
Postup
Ako prvé bolo nutne naprogramovať v prostredí Khepera simlátoru program, ktorý previedol robota bludiskom, bez toho abz narážal. Počas behu tohto programu sme si ukladali hodnoty z IR senzorov robota a rýchlosť akou sa otácali jednotliné kolesá (vždy rovnaká, menil sa len jej smer, teda 5/-5). Tieto hodnoty boli uložené do súboru. Prvé číslo učuje počet situácií, druhé počet vstupov a tretie počet výstupov, tieto tri čísla sú nasledované samotnými hodnotami. Priklad:
1000 6 2 0.005865 0.003910 0.038123 0.038123 0.004888 0.001955 1.000000 1.000000 0.004888 0.000978 0.035191 0.036168 0.000000 0.002933 1.000000 1.000000 0.001955 0.000000 0.039101 0.038123 0.003910 0.003910 1.000000 1.000000 0.003910 0.000000 0.036168 0.037146 0.002933 0.002933 1.000000 1.000000
Hodnoty boli upravené pre neskoršie použitie vo FANN. Hodnoty z IR senzorov sme predelili 1023 a rychlosti otáčania kolies prešli preočtom: (x+5)/10 (aby sme dostali hodnoty <0,1>). Tento súbor sme použili ako trénovaciu množinu pre neurónovú sieť. Výsledok tohto učenia sme spätne implementovali do zrojového kódu robota.
Pridávam zdrojové kódy robota ziskavajúceho dáta, robota naučeneho, trenovaciu množinu, video z behu naučeného robota zdrojové kóody.