<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"><rdf:Description rdf:about="https://repozitorij.uni-lj.si/IzpisGradiva.php?id=151324"><dc:title>Simulacijsko okolje Nvidia Isaac Sim za učenje z metodami spodbujevalnega učenja za robote</dc:title><dc:creator>Reshkov,	Ivan	(Avtor)
	</dc:creator><dc:creator>Podobnik,	Janez	(Mentor)
	</dc:creator><dc:subject>spodbujevalno učenje</dc:subject><dc:subject>nvidia isaac sim</dc:subject><dc:subject>simulacija</dc:subject><dc:subject>robot</dc:subject><dc:description>Področje umetne inteligence je v kratkem času zelo napredovalo. Spodbujevalno učenje je v zadnjih letih doživelo porast popularnosti zahvaljujoč raziskovalcev, ki so ga uporabljali predvsem na področju računalniških iger. Tako so razvili algoritme, ki so uspeli zmagati proti najboljšim igralcem v teh igrah. Danes se spodbujevalno učenje uporablja na številnih področjih, vključno z robotiko.

V tej diplomski nalogi je predstavljena uporaba spodbujevalnega učenja za učenje robotov s pomočjo simulacijskega okolja. Cilj diplomske naloge je bil predstaviti načina kako se roboti učijo strategije s pomočjo algoritmov spodbujevalnega učenja.

V prvem delu diplomske naloge smo poskusili razložiti teoretično ozadje spodbujevalnega učenja. Predstavili smo osnovne gradnike in algoritme spodbujevalnega učenja. Pri spodbujevalnem učenju je agent postavljen v okolje in prepuščen interakciji z njim. Agent ne ve kaj se od njega pričakuje in začne izvajati akcije, ki so mu bile predpisane. Na podlagi nagrade, ki jo dobi po izvedeni akciji, agent sklepa o uspešnosti te akcije in v odvisnosti od algoritmov spodbujevalnega učenja uporablja različne načine ovrednotenju teh akcij. Opisali smo algoritme Q-learning in PPO. Pri Q-learning algoritmu se uporablja tabelo v katero se shranjujejo Q-vrednosti, ki ovrednotijo uspešnost akcije v določenem stanju. Na podlagi teh vrednostih agent izbere najbolj optimalno akcijo v vsakem stanju oz. največjo Q-vrednost v tem stanju. Nasproti temu, je PPO algoritem, ki deluje na podlagi oblikovanja optimalne strategije. V času učenja agent stalno posodablja svojo strategijo glede na prejete nagrade in na ta način ustvari optimalno strategijo, ki ima za posledico bolj uspešno obnašanje agenta v okolju.

V drugem delu smo predstavili praktično uporabo teh algoritmov in naučili agenta izvedbo določene naloge. V kontekstu robotike, se naučeni modeli po zaključku treniranja prenesejo na robota, ker se običajno učenje izvede neodvisno od robota. Mi smo učenje teh strategij izvedli s pomočjo simulacije. Učenje modelov direktno na robotu je kompleksna, nevarna in nezanesljiva izvedba učenja. V nasprotju s tem, je v simulacijskem okolju virtualno okolje, katerega enostavno izbrišemo pri pojavi napake ali spremembe določene vrednosti. Simulacijo lahko še enkrat zaženemo in nadaljujemo s procesom učenja. Za simulacijo smo uporabljali simulacijsko okolje NVIDIA Isaac Sim in že obstoječe algoritme spodbujevalnega učenja v knjižnici Stable Baselines3. Isaac Sim vključuje razširitev imenovano Isaac Gym, ki je namenjena spodbujevalnemu učenju. Vsebuje različna simulirana okolja, ki uporabnikom omogočajo lažji začetek. Omogoča tudi izdelavo lastnih simulacijskih okolij in nalog za treniranje s pomočjo spodbujevalnega učenja.

Naša prva naloga je bila ovrednotenje algoritmov spodbujevalnega učenja že obsotječih okolij v Isaac Sim. Obravnavali smo primera Cart Pole in JetBot. Vsak primer glede definicije naloge agenta, vsebuje različen prostor akcij in prostor stanj. Poleg tega se razlikuje tudi nagrada ki jo definira sam uporabnik. Sama definicija zahteva od uporabnika dobro zasnovo, saj nagrada dejansko vpliva na hitrost in kakovost učenja. Strogega pravila za definiranje nagrade ni. Uporabnik lahko preizkusi več različnih definicij nagrad in na podlagi tega večkrat opravi treniranje modela in oceni uspešnost definirane nagrade. Naslednji korak je bila izdelava lastnega okolja. Naredili smo lastno okolje Puck v katerem je imel agent (pak) nalogo zadeti ciljni pak. Spremenili smo prostor akcij, prostor stanj in definicijo nagrade. V vsaki epizodi je bil ciljni pak naključno postavljen, kar je zahtevalo od agenta, da se nauči pomakniti do paka. Uspeli smo naučiti vse modele za izdelavo različnih nalog in ovrednotiti njihovo kakovost. Podali smo rezultate iz katerih so razvidni različni parametri algoritmov spodbujevalnega učenja, kot tudi grafe za vizualno ponazoritev pridobljene nagrade in dolžine episode med učenjem. Na podlagi rezultatov smo v zadnjem primeru opazili časovno neoptimalnost. To pomeni, da se je naš model naučil optimalne strategije do določenega časovnega koraka in nato skorajda ničesar več spreminjal. Iz tega razloga smo zmanjšali maksimalno število časovnih korakov in še enkrat zaženili simulacijo in tako naučili agenta za krajši čas, za razliko od prej. Zmanjšanje maksimalnega števila časovnih korakov je skrajšalo čas simulacije ter s tem tudi čas učenja, ki je bil na voljo agentu. Hkrati pa je model uspešno osvojil zadovoljivo optimalno strategijo. Zadnja naloga je bila prenos našega naučenega modela iz simulacijskega okolja na dejanskega robota Franka Emika Panda v Laboratoriju za robotiko na Fakulteti za elektrotehniko.
Z prikazom uspešnega prenosa modela in prikazovanjem njegovega delovanja na robotu smo potrdili prenosljivost modelov iz simulacije v realni svet.

Spodbujevalno učenje je na področju robotike zelo priljubljen in v zadnjem času tudi uporabljen način učenja robotov. S pomočjo spodbujevalnega učenja se roboti naučijo različnih nalog. V uvodu smo omenili nekatere primere, kot so obračanje palačink, spretna robotska manipulacija ali robotska navigacija. Spodbujevalno učenje se uporablja tudi v drugih področjih, kot so avtonomna vozila, trgovanje na borzi, itn. Za konec smo uspeli prikazati, da spodbujevalno učenje in simulacija prinašata v prihodnosti veliko pozitivnih učinkov na področju robotike.</dc:description><dc:date>2023</dc:date><dc:date>2023-10-04 13:47:01</dc:date><dc:type>Diplomsko delo/naloga</dc:type><dc:identifier>151324</dc:identifier><dc:language>sl</dc:language></rdf:Description></rdf:RDF>
