Sunteți pe pagina 1din 15

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

Studiu asupra sistemelor de programare pentru roboi


Geoffrey Biggs i Bruce MacDonald Departamentul de Inginerie Electric& Electronic, Universitatea din Auckland

Sumar
Roboii au devenit semnificativ mai puternici i mai inteligeni n ultima decad, i sunt folosii tot mai mult pentru servicii.Ca i rezultat roboii for fi mai des folosii de oameni cu abiliti tehnice minime i deci exist nevoia de sisteme flexibile i uor de utilizat. Aceast lucrare trece n revist starea actual n programarea sistemelor robotizate. Exist o distincie ntre sistemele programate automat i cele programate manual. Sistemul manual cere c userul/programatorul s creeze programul robotului direct, de mn, n timp ce sistemele automate genereaz un program pentru robot ca i rezultat al interaciunii dintre robot i om; exist o varietate de metode ce includ nvarea, programarea prin demonstraie i sisteme instructive.

1. Introducere
Roboii sunt maini complexe i pentru controlul lor sunt necesare abiliti i importante cunotine tehnice. Exist roboi simpli, de exemplu robotul aspirator Roomba de la iRobot (2003); n aceste cazuri roboii sunt proiectai pentru o singur aplicaie, i metoda de control reflecta aceast simplicitate. Panoul de control al robotului Roomba permite userului s selecteze diferite mrimi ale camerei i s nceap procesul de aspirare cu o simpl apsare de buton. Majoritatea roboilor totui nu au interfee simple i nu sunt proiectai pentru o funcie simpl, singular cum ar fi curatul podelelor. Majoritatea roboilor au interfee complexe, de obicei ce implic utilizarea unui limbaj de programare tip text cu cteva abstraciuni de nivel nalt. Pentru c userul normal nu va dori s i programeze robotul la un nivel sczut, va fi necesar un sistem pentru a furniza nivelul necesar userului pentru a controla robotul. Roboii devin mai puternici, cu mai muli senzori, mai inteligeni, i cu componente mai ieftine. Ca i rezultat roboii ies din mediul industrial controlat i ptrund n medii de servicii necontrolate cum ar fi case, spitale i spaii de munc unde execut sarcini de la servicii de livrare pn la asigurarea divertismentului. Aceast cretere a folosirii roboilor de ctre oameni fr abiliti tehnice la dus la nevoia ca roboii s devin mai uor de programat. 1.1 Revizuirea programrii robotului Aceast lucrare revizuiete starea curent n sistemele de programare a roboilor, n legtur cu arhitectura software a robotului , ct i curente n acest sens . Nu avem ca int enumerarea tuturor sistemelor de programare pentru roboi existente. Un rezumat al sistemelor de programare pentru roboi a fost efectuat n 1983 de Tomas Lozano-Perez (1982). La acest timp, roboii erau folosii doar n medii industriale, plaja de metode de programare era foarte limitat, i rezumatul a privit doar sisteme de programare a roboilor industriali. O nou revizuire este necesar pentru a determina ce s-a realizat n timpul ce a trecut i care ar fi paii urmtori pentru a furniza control convenabil pentru populaie n general, deoarece roboii devin omniprezeni n vieile noastre.
1

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

Lozano-Perez a separat sistemele de programare n trei categorii: sisteme de ghidare, sisteme de programare pe nivel robot i sisteme de programare pe nivel de sarcin. Pentru sistemele de ghidare robotul era mutat manual la fiecare poziie dorit i se nregistra poziia cuplei. Pentru sistemele de programare pe nivel de robot limbajul era furnizat odat cu robotul. i, n sfrit, sistemul de programare pe nivel de sarcin spefica scopul care trebuia atins (de exemplu, poziia obiectelor). Prin contrast, aceast lucrare separ cmpul programrii roboilor n programare automat, programare manual i arhitecturi de software, aa cum este artat n Fig.1. Primele dou fac distincie n programare, n funcie de metoda actual folosit, care fac diferena crucial pentru utilizator i programator. n programarea automat userul/programatorul au puin control sau chiar deloc asupra codului robotului. Aceasta include sisteme de nvare, programare prin demonstraie i sisteme instructive.

Figura 1. Un sistem de programare poate folosi programare manual sau automatic. Arhitectura software de asemenea are un rol important. Sistemele manuale necesit ca userul/programatorul s introduc direct comportamentul dorit de la robot, de obicei folosind un limbaj de programare bazat pe text sau grafic. Arhitectura software este important pentru toate sistemele de programare, deoarece asigur suportul de baz, cum ar fi comunicarea, ca i accesul la roboii nii. n secia a 2-a ne vom concentra pe programarea manual, n timp ce n secia 3 ne vom concentra pe programarea automat. Seciunea 4 ofer concluzii despre tendinele n programarea sistemelor. Descrierea arhitecturii software nu intr n scopul acestei lucrri.

2. Sisteme de programare manual


Utilizatorii de sisteme de programare manual trebuie s creeze programul robotului de mn, de obicei executat fr robot. Programul finalizat este ncrcat n robot dup aceea. Acestea sunt adesea sisteme de programare off-line, unde un robot nu este prezent n timpul programrii. Se poate concepe ca un program manual s controleze robotul on-line, uiliznd spre exemplu un limbaj de interpretare unde nu sunt probleme de securitate (vezi Lego Mindstorm [2003]). Aa cum este artat n Fig. 2, sistemele cu programare manual pot fi mprite n sisteme bazate pe text i sisteme grafice (cunoscute i sub numele de sisteme bazate pe simboluri). Programarea grafic nu este considerat programare automat deoarece userul trebuie s creeze manual codul program pentru robot nainte de a-l rula n sistemul robotizat. Exist o coresponden direct ntre simbolurile grafice i regulile programului.
2.1 Sisteme bazate pe text 2

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

Un sistem bazat pe text utilizeaz un limbaj de programare tradiional i este una din cele mai comune metode, n particular n mediile industriale unde este adesea folosit mpreun cu programarea prin demonstraie (vezi seciunea 3.2). Sisteme bazate pe text pot fi deosebite n funcie de limbajul folosit, adic tipul de programare folosit de user. Aceast clasificare poate fi observat n Fig. 2 i este explicat n continuare.

Figura 2. Categorii de sisteme cu programare manual. Un sistem manual poate utiliza o interfa textual sau una grafic pentru a intra n program. Limbaje spectifice controller-elor Aceste limbaje specifice au format prima metod (i original) pentru controlul roboilor industriali, i nc e cea mai comun metod. Fiecare controller de robot are o form de limbaj-main, i de obicei exist i un limbaj de programare pentru el, pentru a fi utilizat n programarea acelui robot. Aceste limbaje de programare sunt n general foarte simple, cu o sintax tip BASIC i comenzi simple pentru controlul robotului i decurgerea programului. Un exeplu bun este limbajul oferit de KUKA [2003] pentru roboii si industriali, prezentat n Fig. 3. Programele scrise n acest limbaj pot fi rulate pe un robot KUKA sau testate n sistemul de simulare oferit de KUKA. n ciuda faptului c limbajele specifice pentru controller sunt de mult n uz (de cnd exist roboii industriali), s-au observat puine mbuntiri. n unul din cazuri, Freund i Leudemann-Ravit [2002] au creat un sistem care permite programelor roboilor industriali s fie generalizate n jurul unui aspect al sarcinii de lucru, avnd o versiune personalizat a programului robotului ce era generat dup necesiti, nainte de a fi ncrcat pe controllerul robotului. Sistemul utilizeaz un plan de generare pentru a oferi un program simplu pentru o sarcin. De exemplu, sarcina de a tia piese din metal poate fi personalizat prin rezultatul formei piesei. n timp ce un astfel de sistem poate ajuta la reducerea timpului pentru producerea de produse asemntoare, nu reduce timpul iniial de dezvoltare a programului pentru robot.

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

Figura. 3 Mediul de programare KUKA i limbajul de programare al robotului Freund i colaboratorii[2001] au ncercat de asemenea s uureze utilizarea sistemelor de simulare n mediile industriale. Din cauza abundenei de limbaje de control, un sistem simulator trebuie s fie capabil s neleag fiecare limbaj al fiecrui program pe care trebuie s l simuleze. Fabricanii de roboi ofer deseori un sistem de simulare mpreun cu limbajul de programare, dar asta crete timpul de instruire al personalului. Pentru a permite unui singur sistem de simulare s fie folosit pentru limbaje multiple, se utilizeaz de obicei translatori. Freud i colaboratorii au creat un limbaj-cadru translator, care poate reduce semnificant timpul necesar pentru a dezvolta aceste traduceri. Este acum folosit pe COSIMIR [2003]- un sistem de simulare n medii comerciale. Limbajele specifice controller-elor pot avea cteva dezavantaje. Cea mai mare problem este lipsa unui standard universal ntre limbajele de programare ale diferiilor productori de roboi. Dac o fabric utilizeaz roboi de la mai multe firme productoare, atunci trebuie s se decid: ori s i instruiasc programatorii pentru fiecare dintre ele, ori s plteasc fabricantului dezolvarea programului necesar pentru firm. Oricare din cele dou metode crete semnificativ timpul i costul dezvoltrii unor programe noi pentru robot. Sistemele comerciale s-au concentrat pe depirea acestui neajuns prin furnizarea de sisteme mai avansate de programare care elimin nevoia programatorului de a scrie codul robotului de mn. n schimb, programatorul poate de exemplu s selecteze instruciunile dintr-o list. Aceste sisteme sunt destinate reducerii semnificative a timpului de programare, dar n general sunt specifice unei singure aplicaii. Ca exemplu avem sisteme de la KUKA[2003] i ABB [2003].

Limbaje procedurale generice.


4

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

Limbajele procedurale generice ofer o alternativ la limbajele specifice controller-elor pentru programarea roboilor. Generic se refer la un limbaj de nivel nalt, multifuncional, de exemplu C++ , care a fost extins pentru a oferi funcionalitate specific robotului. Acesta este comun ntlnit n mediile de cercetare, unde limbajul generic este extins pentru a acoperi nevoile proiectului de cercetare. Alegerea limbajului de baz variaz, n funcie de ce ncearc cercettorii s obin (de exemplu, programare procedural sau comportamental). Un limbaj dezvoltat prin aceast metod poate avea ca scop programarea sistemului sau programarea aplicaiilor de nivel. Cea mai comun extensie la un limbaj multifuncional este abstractizarea robotului, care const ntr-un set de clasificri, metode, sau construcii similare care furnizeaz acces la funciile comune ale robotului, printr-o metod simpl. nltur nevoia de manipulare funcional low-level, cum ar fi setarea porturilor de ieire la valoare mare pentru a porni motoarele, sau traducerea datelor brute de la senzor. De exemplu, o abstractizare poate oferi o metod pentru a muta braul manipulator ntr-o anumit poziie. De asemea poate oferi i abstractizri de nivel nalt, de exemplu metode de a face robotul s se mite la un punct utiliznd ruta planificat. Este normal acum pentru productori s ofere un asemenea sistem pe roboii lor. Totui, aceste abstractizri sufer de aceleai erori ca i limbajele specifice controller-elor pentru roboii industriali. Limbajul este specific robotului pentru care este proiectat. Pentru a mbunti aceast situaie, muli cercettori i-au dezvoltat sistemul propriu de abstractizare. Player/stage (juctor/scen) este un sistem de programare a roboilor folosit n mod obinuit, care ofer drivere pentru muli roboi i abstractizri pentru a-i controla [Vaughan i colab., 2003]. Kanayama i Wu [2000] au dezvoltat un limbaj de descriere a micrii, o extensie la Java, care ofer abstractizare de nivel nalt pentru roboii mobili. Pentru a preveni ca abstractizarea s fie limitat la o singur arhitectur robotic, ei au utilizat clasele Java, pentru a oferi abstractizri comune i interfee de programare. Fiecare robot necesit o versiune personalizat a clasei Vehicle (Vehicol), deoarece difer specificaiile hardware. Alte servicii, precum planificarea traseului, sunt de asemenea reprezentate de clase. Alii au implementat sisteme similare, inclusiv Hardin i colaboratorii[2002], care a dezvoltat un sistem utilizat n principal de roboii Lego Mindstorms [Lego,2003]. Ca i Java, abstractizarea a fost creat pentru multe limbaje generice, inclusiv C++ [Hopler i Oter,2001, care au oferit extensii n timp real], [Loffler i alii, 2001] i Python, cunoscut c Pyro [2003]. Pyro este un sistem detaliat particular, ce ofer clase i abstractizri pentru roboi i algoritmi. Chiar i eXtensible Markup Language (XML) a fost utilizat pentru descrierea micrii robotului, ntr-o form care poate fi transmis prin reea i apoi rulat pe un kit de robot potrivit [Kitagishi i alii, 2002]. Este interesant de observat c abstractizrile sunt implementate mai ales folosind o metod bazat pe obiect. McKee i colaboratorii[2001] afirm, c o abordare a roboticii prin metoda bazat pe obiect este important pentru a defini clar relaiile dintre entitile robotice. Ei descriu modelul MARS prin metoda bazat pe obiect, i definesc roboii ca fiind compui din resurse, care apoi sunt modelate ca module. Ei traseaz paralele clare ntre conceptele orientrii pe obiecte, ca de exemplu motenirea, i modulele robotului. Un exemplu bun este o unealt la sfritul braului robotic. Prin simplul fapt c este la sfritul braului, unealta motenete abilitatea de a se mica. Thrun [2000] a dezvoltat CES, o extensie pentru C++ , care ofer suport pentru programarea probabilistic. Utilizarea metodei probabilistice permite programelor robotului s depeasc probleme cauzate de zgomotul senzorului. Totui scrierea programelor cu metode probabilistice este complicat. CES ofer un set de abloane C++ pentru distribuia probabilistic pe tipuri de variabile. De asemenea
5

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

ofer metode pentru nvare, care pot fi utilizate mpreun cu practici de programare standard, pentru a crea un sistem unde o parte este codat manual, n timp ce alt parte este nvat. Sistemul a fost testat prin creearea unui program de livrare a potei pentru un robot mobil. Programul necesit doar 137 linii de cod i dou ore de instructaj. n timp ce utilizarea acestui limbaj necesit o cunoatere solid a metodelor statistice, demonstreaz c un astfel de sistem programabil este posibil ntr-un limbaj general. Dac combinm cu o metod potrivit pentru a nltura nevoia de control minim al robotului, poate fi un sistem performant pentru a creea roboi educabili. Limbaj bazat pe comportament Limbajul bazat pe comportament ofer o alternativ la limbajul procedural din seciunile anterioare. Acest limbaj specific cum ar trebui robotul s reacioneze n diferite condiii, n defavoarea unei descrieri procedurale. De exemplu, un set de comportamente ar putea fi urmrirea unui perete de la un punct la altul. Un sistem bazat pe comportamente este utilizat mai mult de un developer (dezvoltator) de roboi, dect de utilizatorul final. Developerul l va folosi pentru a defini funcionalitile pe care userul final ar dori s le foloseasc pentru a ndeplini sarcinile. Funcional Reactive Programming FRP (programare funcional reactiv) este un exemplu excelent de paradigm a programrii bazate pe comportament. n FRP att evenimentele continue ct i cele discrete pot fi utilizate pentru a declana aciuni. Recent, s-au dezvoltat dou extensii de limbaj cu fundamente n limbajul funcional, Yampa [Hudak i alii, 2003] i Frob [Peterson i alii, 1999;2001]. Limbajul folosit n ambele cazuri este Haskell. Aceste sisteme permit programatorului s specifice cum reacioneaz robotul, utiliznd foarte puine linii de cod. Descrierile sunt bazate pe comportamente i evenimente. De exemplu, n Yampa este posibil s scrii un algoritm de urmrire a liniei peretelui cu doar 8 linii de cod, artate n Fig. 4. n timp ce Yampa se concentreaz n principal pe aspectele comportamentale, programul Frog a fost dezvoltat avnd n vedere modularitatea. El permite blocurilor de cod s interacioneze prin intermediul interfeelor, prin urmare reutiliznd codurile de suport. El ofer interfee predefinite pentru controller i senzor i o infrastructur comunicaional. De asemenea se folosete de sarcini pentru a creea secvene n program. FPR nu este limitat la limbaje precum Haskell. Dai i colaboratorii[2002] au implementat un sistem FPR n C++. Ofer funcionalitate asemntoare cu Frob, dar n acelai timp permite existena codului C++. Este mai uor de folosit dect Yampa i Frob, amndou necesitnd cunotine temeinice n programarea funcional. O tendin evident este schimbarea de la limbaje simple, bazate pe comenzi, spre limbaje de nivel nalt care ofer mai mult suport userului, aceast tendin fiind ilustrat prin popularitatea n cretere a limbajelor bazate pe comportamente. Cu ajutorul sistemelor de programare mai inteligente, programatorului i se cere mai puin munc pentru a ajunge la aceleai rezultate, crescnd productivitatea.

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

Figura 4. Un algoritm pentru urmrirea liniei peretelui implementat utiliznd Yampa 2.2 Sistemele grafice Sistemele cu programare grafic (sau bazate pe pictograme) ofer o alternativ la metodele bazate pe text pentru programarea manual.

Figura 5.Mediul de lucru grafic Lego Mindstorms, utilizat pentru a creea programe simple pentru roboii Lego Dei sunt metode de programare manual, sunt cu un mic pas mai aproape de programarea automat, deoarece ofer un mediu grafic pentru programare. Necesit introducerea datelor de intrare manual pentru a specifica achiziiile i derularea programului. Sistemele grafice utilizeaz de obicei vizualizarea grafic, flux-chart, sau diagrama. Un avantaj al sistemelor grafice este uurina n utilizare , care este obinut cu costul flexibilitii programrii bazate pe text. Sunt de obicei folosite pentru aplicaiile robotului, nu pentru programarea sistemului. Poate c cel mai de succes sistem grafic, utiliznd abordarea flow-chart, este angajat de kitul robotic Lego Mindstorms [Lego,2003], ilustrat n Fig. 5. Este destinat copiilor, i deci este simplu n design. Blocurile, reprezentnd aciuni low-level, sunt stacate (stivuite) ca piese de puzzle pentru a produce secvene de aciuni. Aceste secvene pot fi combinate mpreun pentru a forma un nou bloc, care poate fi plasat apoi ntr-o nou stiv, prin urmare formnd o ierarhie simpl. O secven este: ori ataat la
7

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

procesul principal al robotului, n caz care definete un comportament standard, ori ataat la un senzor unde definete aciunea ntreprins cnd acel senzor este activat. Dei este simplu, acest sistem permite crearea de comportamente complexe.n mediile industriale, sistemele grafice permit configurarea rapid a robotului pentru executarea unei sarcini. Bischoff i colaboratorii[2002] au produs un ghid prototip pentru definirea pictogramelor ntr-un sistem flow-chart, bazat pe dezvoltarea n curs a standardului ISO (15187). Teste utilizabile art c att experii ct i nceptorii au gsit sistemul grafic mai uor de folosit pentru manevrarea roboilor, pentru schimbarea programelor i pentru supravegherea programului. Touch-screen-urile devin populare pentru programarea roboilor, i sistemele grafice utiliznd pictograme sunt ideale pentru aceast interfa. Un sistem grafic pentru programarea off-line pentru roboi sudori a fost dezvoltat de Dai i Kampker [2000]. Scopul principal este de a oferi o interfa prietenoas cu utilizatorul pentru integrarea informaiilor de la senzori n programul robotului, i deci creterea utilizrii senzorilor n programele de sudur pentru roboi. Aceasta este necesar pentru a depi probleme precum incertitudinea efectelor termice. O interfa bazat pe pictograme ofer metoda principal de programare, cu macrocomenzi definite pentru operaiile senzorului ntr-un editor de senzori. Macrocomenzile faciliteaz ncorporarea noilor senzori. Metod ar putea fi utilizat cu orice program pentru roboi unde informaia de la senzori este utilizat pentru a atenua inexactitile. Bredenfeld i Indiveri [2001] au o abordare grafic pentru sistemul lor Dual Dynamics, care are o abordare bazat pe comportamente pentru a controla grupuri de roboi mobili. Interfaa de programare grafic folosete un procesor de date hiper-grafic, care este alctuit din elemente de prelucrare a datelor, conectate mpreun. Aceast abordare permite interaciunea dintre elementele sistemului robotic.

3.Sisteme de programare automate

Figura 6. Categorii de sisteme cu programare automat. Sisteme de nvare, programare prin demonstraie i sisteme instructive, sunt toate metode de nvare a roboilor s execute sarcini. Sistemele de programare automate asigur puin,sau deloc, control asupra codului-program pe care robotul l ruleaz. n schimb, codul robotului este generat din informaia introdus n sistem ntr-o varietate de metode indirecte. Deseori un sistem trebuie s ruleze n timp ce programarea automat este executat, i acestor sisteme li s-au spus sisteme de programare online. Totui, programarea automat
8

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

poate fi folosit de asemenea pe roboi simulai sau virtuali, de exemplu n sistemele industriale robotice CAD. n acest caz robotul real este offline, dar robotul virtual este online. De exemplu, sistemul IGRIP [2003] ofer capaciti complete de simulare pentru creearea i verificarea programelor robotului. Fig. 6 arat c exist trei categorii n care se mpart sistemele automate: sisteme de nvare, programarea prin demonstraie [PbD] i sisteme instructive. Acestea sunt discutate n paragrafele urmtoare. 3.1. Sisteme de nvare Sistemele de nvare creeaz un program prin inferen inductiv cu ajutorul exemplelor oferite de user i auto-explorarea robotului. Pe termen lung va fi crucial pentru robot s i mbunteasc performana prin aceste metode. O analiz complet este departe de scopul acestei lucrri. Exemplele includ o ierarhie a reelelor neuronale dezvoltate pentru nvarea micrii mini umane n 3D [Billard i Schaal, 2001], i a robotului care poate nva comportamente simple i le compune pentru a forma comportamente mai complexe [Weng i Zhang, 2002]. Smart i Kaelbling [2002] au propus consolidarea nvrii pentru roboii mobili programabili. n prima faz robotul privete sarcina ce se ndeplinete. n faza a doua robotul ncearc s ndeplineasc sarcina,pe cont propriu. 3.2. Programarea prin demonstraie (PbD) Aceasta este cea mai comun metod de programare automat. Fig. 6 arta c sistemele PbD pot utiliza atingerea/pandantiv (un dispozitiv ce controleaz micrile robotului) pentru demonstraii, sau pot utiliza alte metode de comunicare mai naturale, cum ar fi gesturile i vocea. Un sistem tradiional PbD utilizeaz un dispozitiv de nvare pentru a demonstra micrile pe care robotul ar trebui s le fac. Aceast tehnic a fost utilizat pentru manipulatorii industriali muli ani. Demonstratorul efectueaz sarcina (de exemplu, o sarcin de asamblare) utiliznd dispozitivul de nvare. Poziia dispozitivului este nregistrat i rezultatele sunt utilizate pentru a genera un program care va mica braul robotului, folosind aceleai micri. Alternativ demonstratorul poate mica braul robotului prin punctele necesare, fizic sau folosind un controller. n acest caz, poziiile articulaiilor sunt nregistrate i utilizate pentru a genera programul robotului. Dei simplu, acest tip de sistem este eficient la crearea rapid a programelor de asamblare. Myers i colaboratorii[2001] descriu o implementare la Intelligent Automation, Inc. Utilizeaz PbD pentru a demonstra subsarcinile, care sunt apoi grupate n sarcini secveniale de un programator. Sunt dou curente direcionale n cercetarea PbD. Primul este de a produce programe mai bune pornind de la demonstraii, de exemplu prin combinarea demonstraiilor multiple i mprirea informaiile colectate n segmente. Al doilea este de a intensifica demonstraia prin intermediul utilizrii unui sistem de comunicaii multilateral. S-a lucrat intens n ultimii ani pentru dezvoltarea sistemelor PbD care s fie capabile s ia informaia produs de o demonstraie, ca datele de la un senzor sau articulaie, i s extrag mai multe informaii utile din ele, n special pentru sarcinile industriale. Sistemele PhD tradiionale doar nregistreaz i ruleaz o singur demonstraie fr variante pentru modificri sau erori. Cercetrile curente au c scop inducerea inteligenei n sistemele PbD, pentru a permite sarcinilor de lucru s fie mai flexibile. Ehrenmann i colaboratorii[2002] descriu o metod de segmentare a datelor n micri (gsite n segmentele dintre apucri) i apucri (mai specific aciunile ntreprinse n timpul apucrii). Rezultatele
9

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

segmentrii pot fi stocate pentru playback .[Chen i McCarragher, 1998;2000; Chen i Zelinsky, 2001] descriu dezvoltarea progresiv a unui sistem similar n care demonstraii multiple sunt folosite pentru a construi o vedere parial a spaiului de lucru al robotului. Sunt generate traseele optime ntre segmentele dintr-o sarcin de lucru. Motivaia este aceea c demonstraia conine rareori cel mai optim traseu ntre segmente. Acest lucru introduce o flexibilitate semnificant n performana sarcinii. De exemplu, sarcina poate fi nclinat mai mult spre vitez maxim de execuie sau spre acuratee maxim. Ogawara i colaboratorii[2002] au dezvoltat un sistem care integreaz observaiile din demonstraii multiple. Datele demonstrrii sunt segmentate pentru a gsi strile importante precum apucarea i micarea. Demonstraiile multiple sunt folosite pentru a determina care segmente sunt importante pentru sarcina, i de aici se construiete un model flexibil al sarcinii pentru execuiile ulterioare. Modalitatea de demonstraie este de asemenea important: poate fi atingerea, vederea, gesturile sau vocea. Pe toate aceste planuri s-au fcut cercetri intense. Grunwald i colaboratorii[2001] au dezvoltat o metod pentru atingerea natural n PbD. Dect s trebuiasc s apuce braul robotului ntr-un anumit punct pentru a-l mica pentru demonstraie, demonstratorul poate ine braul robotului n orice punct, la fel cum ar ine un bra uman , cnd indic micrile care ar trebui executate pentru sarcina respectiv. Fr necesitatea ca robotul s fie atins ntr-un anumit loc, el devine mai natural i mai uor de utilizat pentru o persoan non-tehnic. Vederea este o alt metod important de a primi informaii. Totui, este dificil de a produce un sistem robust bazat pe vedere care s poat opera n mediul aglomerat al lumii reale. Markeri speciali trebuie utilizai pentru a indica la ce obiecte s fie robotul atent n timpul demonstraiei, i datele adunate din demonstraie nu sunt la fel de corecte ca datele culese de robot.Yokokohji i colaboratorii [2002] au dezvoltat un sistem pentru utilizarea camerelor montate aproape de punctul de vizibilitate al demonstratorului, pentru achiziia datelor demonstraiei. Att micarea minii demonstratorului ct i micarea capului sunt nregistrate cu ajutorul punctelor de reper. Testele includ i sarcina de a lua un cd dintr-un raft cu CD-uri, ceea ce a artat c sarcina poate fi reprodus cu suficient acuratee. Totui, sunt necesari markeri pe toate obiectele de interes, pentru ca robotul s poat gsi punctele de reper. Takamatsu i colaboratorii [2002] descriu o metod de producie a unor programe mai robuste prin corectarea erorilor posibile n datele culese din PbD bazat pe vedere. Strile contactelor sunt verificate pentru a se asigura c nu creeaz probleme, de exemplu s fie dou obiecte n acelai loc. Acest lucru asigur faptul c rezultatele incorecte de la un sistem de vedere nu produc programe eronate. S-au realizat i alte progrese n sistemele PbD. Onda i colab. [2002] au dezvoltat un mediu virtual unde sunt executate demonstraiile. Strile contactelor pot fi uor aflate dintr-un astfel de mediu. Contactele standard pot fi nlocuite cu comportamente speciale pentru a depi diferenele dintre lumea virtual i iteraiile variate ale lumii reale. n locul ncercrii simple de a mpinge un cui (de lemn) ntr-o gaur, sistemul va face robotul s execute un ablon pentru a se asigura c acel cui este corect aliniat cu gaura i apoi s l mite astfel nct s intre uor n gaur. Aceast este o imitaie a comportamentului uman n astfel de cazuri, anume alinierea cuiului i gurii, naintea micrii de mpingere. Alte progrese includ utilizarea senzorilor pe degete pentru a detect manipulri fine de obiecte, de exemplu nvrtitul unui urub [Zollner i colab. ,2002]. Friedrich i colab. [1998] permit rezultatele unei demonstraii s fie vizualizat grafic dup ce demonstraia este finalizat. Acest lucru permite programatorului s vad ce va face robotul ca rezultat al demonstraie, i de asemenea permite ca diferite
10

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

pri ale demonstraiei s fie modificate, micate, i chiar utilizate separat, producnd cod reutilizabil pentru un sistem PbD. Sistemele de programare tradiional CAD de asemenea ofer un mediu virtual, de simulare, n care un user poate manipula robotul pentru a efectua o sarcin, i aceasta este o vorba de PbD. Chiar dac robotul este offline, simularea este online. Curentul principal n PbD este creterea inteligenei sistemelor de programare.n loc doar s ruleze o singur demonstraie, cum se fcea la nceput, sistemele PbD sunt acum capabile s interpreteze o demonstraie i apoi s foloseasc datele interpretate pentru a produce programe robuste, flexibile capabile s se descurce n medii complexe i n schimbare. Metodele PbD pot include nvarea, cteva din descrierile sarcinii pot fi achiziionate prin nvare din demonstraii. 3.3 Sisteme instructive Sistemelor instructive li se ofer o secven de instruciuni, de obicei n timp real. Tehnica este cea mai potrivit pentru a comanda roboii s ntreprind sarcini pe care deja le au programate s le realizeze; ar putea fi considerat cel mai nalt nivel de programare. De obicei se folosesc recunoaterea gesturilor i recunoaterea vocii. Voyles i Khosla [1999] au explorat programarea bazat pe gesturi folosind ageni de interpretare a gesturilor. Acetia sunt integrai n sistemul PbD. Steil i colab. [2001] au investigat utilizarea gesturilor pentru controlul robotului bazat pe vedere GRAVIS. Gesturile sunt utilizate pentru a dirija atenia robotului, astfel nct sistemul su de vedere s gseasc obiectele care sunt specificate n instruciuni. Acest lucru este folositor pentru depirea problemelor cauzate de nghesuiala din mediile umane. Strobel [2002] i colab. au utilizat gesturile minii pentru controlul unui robot casnic de curenie. Micrile statice ale minii i braului sunt nregistrate cu sistemul de vedere stereo al robotului, iar gesturile dinamice sunt nregistrate cu un sistem de urmrire magnetic. Cunotinele spaiale sunt utilizate pentru a ajuta n determinarea inteniei din spatele gestului.Userul ar putea arta ctre o suprafa care ar trebui s fie curat. Recunoaterea gesturilor este folositoare pentru a indica obiecte ntr-o scen n care se aplic instruciunile. Comunicarea bazat pe limbaj este cea mai natural metod a oamenilor de a comunica instruciuni ntre ei, de aceea este un candidat ideal pentru instruirea roboilor. Un sistem bazat pe limbaj natural pentru a oferi direcii unui robot este descris de Lauria i colab. [2002]. Limbajul natural este utilizat pentru a nva robotul cum s se mite spre diferite locaii pe rute specifice. Are 40 de micri elementare care sunt legate la o construcie de limbaj natural. Comenzile necunoscute pot fi utilizate de user la un moment dat, dar va fi necesar un sistem de clarificare i nvare. Comunicarea multi-modal are potenial pentru programarea simpl a roboilor. Sistemul video ofer o vedere asupra lumii nconjurtoare,i sunt utilizate pentru recunoaterea gesturilor (de exemplu, comenzile gesturale sau artarea ctre un obiect n lumea nconjurtoare). Recunoaterea gesturilor i limbajul natural sunt utilizate pentru a da i a clarifica instruciunile pentru un robot. McGuire i colan. [2002] descriu o contiuare a lucrrii din [Steil i colab.,2001] , menionat anterior. Autorii argumenteaz c un sistem multi-modal este necesar pentru roboii care vizeaz medii mai cognitive cum ar fi casele. Ei au c scop interaciunea asemntoare omului. Informaiile din toate sursele (vedere, gesturi i voce) pot fi utilizate. De exemplu, o instruciune s ridice acel cub poate fi dat cu vocea n timp ce un gest indic ce cub s ridice, iar sistemul video ofer o locaie pentru cub.
11

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

Sistemele instructive au potenial mare pentru oferirea unei metode de control de nalt nivel pentru roboi. Totui, ei nc se bazeaz pe abilitile nvate sau programate. Acestea pot fi implementate doar folosind alte sisteme de programare cum ar fi programarea manual sau programarea intensiv cu sisteme PbD. 4.Concluzii Sistemele de programare a roboilor au devenit mult mai puternice i mai inteligente, depind limbajele clasice, bazate pe text i programarea nregistrare-i-redare prin demonstraie,devenind sisteme mai inteligente ce ofer suport considerabil userului/programatorului. Limbajele bazate pe text devin de nivel mai nalt, reducnd munca necesar pentru a implementa un sistem. Sistemele grafice i automatice devin mai puternice, permind oamenilor cu puine abiliti tehnice s programeze roboi. Cel mai puternic curent este adugarea inteligenei n sistemele de programare, pentru a reduce greutatea de pe umerii programatorului, att pentru programarea manual ct i pentru programarea automat. Sistemele bazate pe text ofer majoritatea din suportul low-level necesar, i sistemele bazate pe programare prin demonstraie devin capabile s i construiasc planuri flexibile de sarcini pentru demonstraii, n loc doar s redea datele nregistrate. Sistemele instructive sunt folositoare pentru oferirea unui nalt nivel de control. Dezvoltarea acestor sisteme este necesar de a continua, ncepnd cu soluii pentru dezvoltatorii de roboi care pot fi reduse pn la soluii de consum. Scopul acestor sisteme ar trebui s fie un mediu care ofer o interfa simpl,consistent pentru programarea roboilor. Un astfel de sistem va permite populaiei s programeze roboii cu uurin.

Bibliografie [ABB, 2003] The ABB group. http://www.abb.com/,Octombrie 2003. [Billard and Schaal, 2001] A. Billard and S. Schaal.Robust learning of arm trajectories through human demonstration. In Intelligent Robots and Sys-tems, 2001. Proceedings. 2001 Conferinta internationala IEEE/RSJ volumul 2, pagini 734-739, Noiembrie 2001. [Bischo_ si colab., 2002] R. Bischo_, A. Kazi, si M. Seyfarth.The MORPHA style guide for iconbased programming.In Robot and Human Interactive Commu-nication, 2002. Proceedings. 11th IEEE International Workshop on, paginilie 482- 487, 2002. [Bredenfeld si Indiveri, 2001] A. Bredenfeld si G. Indiveri. Robot behavior engineering using DD-Designer. In Robotics and Automation, 2001. Proceedings 2001 ICRA. IEEE International Conference on, volumul 1, paginile 205-210, 2001. [Chen si McCarragher, 1998] J. Chen si B. Mc-Carragher. Robot programming by demonstration selecting optimal event paths. In Robotics and Au-tomation, 1998. Proceedings. 1998 IEEE International Conference on, volumul 1, paginile 518-523, Mai1998. [Chen si McCarragher, 2000] J.R. Chen si B.J. Mc-Carragher. Programming by demonstration constructing task level plans in hybrid dynamic framework. In Proceedings of the IEEE Intl. Conf. on Robotics and Automation (ICRA '00), volumul 2, pagini 1402-1407, aprilie 2000. [Chen si Zelinsky, 2001] J.R. Chen si A. Zelinsky.Programming by demonstration: removing suboptimal actions in a partially known con_gurationspace. In Proceedings of the IEEE Intl. Conf. on Robotics and Automation (ICRA '01), volumul 4,paginile 4096-4103, Mai 2001. [COSIMIR, 2003] COSIMIR. http://www.cosimir.com/, 2003.
12

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

[Dai si Kampker, 2000] Wenrui Dai si M. Kampker.User oriented integration of sensor operations in a ofline programming system for welding robots. In Proceedings of the IEEE Intl. Conf. on Robotics and Automation (ICRA '00), volumul 2, paginile 1563-1567, aprilie 2000. [Dai si colab., 2002] Xiangtian Dai, G. Hager, si J. Peterson.Specifying behavior in C++. In Proceedings of the IEEE Intl. Conf. on Robotics and Automation(ICRA '02), volumul 1, paginile 153-160, Mai 2002. [Ehrenmann si colab., 2002] M. Ehrenmann, R. Zollner,O. Rogalla, si R. Dillmann. Programming servicetasks in household environments by human demonstration.In Robot si Human Interactive Communication, 2002. Proceedings. 11th IEEE International Workshop on, paginile 460-467, 2002. [Freund si Luedemann-Ravit, 2002] E. Freund si B. Luedemann-Ravit. A system to automate the generation of program variants for industrial robot applications. In Intelligent Robots si System, 2002.IEEE/RSJ International Conference on, volumul 2,paginile 1856-1861, 2002. [Freund si colab., 2001] E. Freund, B. Ludemann-Ravit,O. Stern, si T. Koch. Creating the architecture of a translator framework for robot programming languages. In Proceedings of the IEEE Intl. Conf. on Robotics si Automation (ICRA '01), volumul 1, paginile 187-192, Mai 2001. [Friedrich si colab., 1998] H. Friedrich, J. Holle, si R. Dillmann. Interactive generation of exible robot programs. In Robotics si Automation, 1998. Proceedings. 1998 IEEE International Conference on, volumul 1, paginile 538-543, Mai 1998. [Grunwald si colab., 2001] G. Grunwald, G. Schreiber, A. Albu-Scha_er, si G. Hirzinger. Touch: The direct type of human interaction with a redundant service robot. In Robot si Human Interactive Communication, 2001. Proceedings. 10th IEEE International Workshop on, paginile 347-352, 2001. [Hardin si colab., 2002] D. Hardin, M. Frerking, P. Wiley, si G. Bolella. Getting down si dirty: device-level programming using the real-time speci_cation for java. In Object-Oriented RealTime Distributed Computing, 2002. (ISORC 2002). Proceedings. Fifth IEEE Inter- national Symposium on, paginile 457-464, 2002. [Hopler si Otter, 2001] R. Hopler si M. Otter. A versatile C++ toolbox for model based, real time control systems of robotic manipulators. In Intelligent Robots si Systems, 2001. Proceedings. 2001 IEEE/RSJ International Conference on, volumul 4, paginile 2208-2214, Nov 2001. [Hudak si colab., 2003] Paul Hudak, Antony Courtney, Henrik Nilsson, si John Peterson. Arrows, robots, si functional reactive programming. In Summer School on Advanced Functional Programming 2002, Oxford University, Lecture Notes in Computer Science. Springer-Verlag, 2003. To Appear. [IGRIP, 2003] Igrip si ultra products page. http://www.deneb.com/products/igrip.html, Oct 2003. [iRobot, 2003] Roomba robotic vacuum cleaner. http://www.roombavac.com/, 2003. [Kanayama si Wu, 2000] Y.J. Kanayama si C.T.Wu. It's time to make mobile robots programmable. In Proceedings of the IEEE Intl. Conf. on Robotics si Automation (ICRA '00), volumul 1, paginile 329- 334, apr 2000. [Kitagishi si colab., 2002] I. Kitagishi, T. Machino,A. Nakayama, S. Iwaki, si M. Okudaira. Development of motion data description language for robots based on extensible markup language realization of better understsiing si communication via networks. In Intelligent Robots si System, 2002. IEEE/RSJ International Conference on, volumul 2, paginile 1145-1151, 2002. [KUKA, 2003] KUKA automatisering + robots N.V.http://www.kuka.be/, Aug 2003. [Lauria si colab., 2002] S. Lauria, G. Bugmann, T. Kyriacou, si E. Klein. Mobile robot programming using natural language. Robotics & Autonomous Systems, 38(3-4):171-181, March 2002. [Lego, 2003] Lego Mindstorms. http://mindstorms. lego.com/eng/products/ris/rissoft.asp, 2003.
13

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

[Lo_er si colab., 2001] M.S. Lo_er, D.M. Dawson, E. Zergeroglu, si N.P. Costescu. Objectoriented techniques in robot manipulator control software development. In American Control Conference, 2001. Proceedings of the 2001, volumul 6, paginile 4520-4525, June 2001. [Lozano-P_erez, 1982] Tom_as Lozano-P_erez. Robot programming. Technical Report Memo 698, MIT AI, December 1982, revised April 1983 1982. Also published in Proceedings of the IEEE, Vol 71, July 1983, pp.821- 841 (Invited), si IEEE Tutorial on Robotics, IEEE Computer Society, 1986, pp.455-475. [McGuire si colab., 2002] P. McGuire, J. Fritsch, J.J. Steil, F. Rothling, G.A. Fink, S. Wachsmuth, G. Sagerer, si H. Ritter. Multi-modal human-machine communication for instructing robot grasping tasks. In Intelligent Robots si System, 2002. IEEE/RSJ International Conference on, volumul 2, paginile 1082-1088,2002. [McKee si colab., 2001] G.T. McKee, J.A. Fryer, si P.S. Schenker. Object-oriented concepts for modular robotics systems. In Technology of Object-Oriented Languages si Systems, 2001. TOOLS 39. 39th International Conference si Exhibition on, paginile 229-238, 2001. [Myers si colab., 2001] D.R. Myers, M.J. Pritchard, si M.D.J. Brown. Automated programming of an industrial robot through teach-by showing. In Proceedings of the IEEE Intl. Conf. on Robotics si Automation (ICRA '01), volumul 4, paginile 4078-4083, May 2001. [Ogawara si colab., 2002] K. Ogawara, J. Takamatsu, H. Kimura, si K. Ikeuchi. Generation of a task model by integrating multiple observations of human demonstrations. In Proceedings of the IEEE Intl. Conf. on Robotics si Automation (ICRA '02), volumul 2, paginile 1545-1550, May 2002. [Onda si colab., 2002] H. Onda, T. Suehiro, si K. Kitagaki. Teaching by demonstration of assembly motion in vr - non-deterministic search-type motion in the teaching stage. In Intelligent Robots si System, 2002. IEEE/RSJ International Conference on,volumul 3, paginile 3066-3072, 2002. [Peterson si colab., 1999] J. Peterson, G.D. Hager, si P. Hudak. A language for declarative robotic programming. In Proceedings of the IEEE Intl. Conf. on Robotics si Automation (ICRA '99), volumul 2,paginile 1144-1151, May 1999. [Peterson si colab., 2001] J. Peterson, G. Hager, si A. Serjentov. Composable robot controllers. In Com-putational Intelligence in Robotics si Automation, 2001. Proceedings 2001 IEEE International Symposium on, paginile 149-154, 2001. [Pyro, 2003] Pyro, Python Robotics. http://emergent.brynmawr.edu/pyro/?page=Pyro,2003. [Smart si Kaelbling, 2002] W.D. Smart si L. Pack Kaelbling. Effective reinforcement learning for mobile robots. In Proceedings of the IEEE Intl. Conf. on Robotics si Automation (ICRA '02), volumul 4, paginile 3404-3410, May 2002. [Steil si colab., 2001] J.J. Steil, G. Heidemann, J. Jockusch, R. Rae, N. Jungclaus, si H. Ritter. Guiding attention for grasping tasks by gestural instruction: the gravis-robot architecture. In Intelligent Robots si Systems, 2001. Proceedings. 2001 IEEE/RSJ Interna- tional Conference on, volumul 3, paginile 1570-1577, Nov 2001. [Strobel si colab., 2002] M. Strobel, J. Illmann, B. Kluge, si F. Marrone. Using spatial context knowledge in gesture recognition for commsiing a domestic service robot. In Robot si Human Interactive Commu- nication, 2002. Proceedings. 11th IEEE International Workshop on, paginile 468-473, 2002. [Takamatsu si colab., 2002] J. Takamatsu, K. Ogawara, H. Kimura, si K. Ikeuchi. Correcting observation errors for assembly task recognition. In Intelligent Robots si System, 2002. IEEE/RSJ International Conference on, volumul 1, paginile 232-237, 2002. [Thrun, 2000] S. Thrun. Towards programming tools for robots that integrate probabilistic computation si learning. In Proceedings of the IEEE Intl. Conf. on Robotics si Automation (ICRA '00), volumul 1, paginile 306-312, apr 2000.
14

Cirlan (Macovei) Simina/Racu Cristina Master II - SR

[Vaughan si colab., 2003] Richard T. Vaughan, Brian P. Gerkey, si Sirew Howard. On device abstractions for portable, reusable robot code. In Proceedings of the 2003 IEEE/RSJ Intl. Conference on Intelligent Robots si Systems (IROS03), paginile 2421-2427, Las Vegas, Nevada, October 2003. [Voyles si Khosla, 1999] R.M. Voyles si P.K.Khosla. Gesture-based programming: a preliminary demonstration. In Proceedings of the IEEE Intl. Conf. on Robotics si Automation (ICRA '99), volumul 1.paginile 708-713, May 1999. [Weng si Zhang, 2002] Juyang Weng si Yilu Zhang.Action chaining by a developmental robot with a value system. In Development si Learning, 2002. Proceedings. The 2nd International Conference on, paginile 53-60, 2002. [Yokokohji si colab., 2002] Y. Yokokohji, Y. Kitaoka, si T. Yoshikawa. Motion capture from demonstrator's viewpoint si its application to robot teaching. In Proceedings of the IEEE Intl. Conf. on Robotics si Automation (ICRA '02), volumul 2, paginile 1551-1558, May 2002. [Zollner si colab., 2002] R. Zollner, O. Rogalla, R. Dillmann, si M. Zollner. Understanding users intention: programming _ne manipulation tasks by demonstration. In Intelligent Robots si System, 2002. IEEE/RSJ International Conference on, volumul 2,paginile 1114-1119, 2002.

15

S-ar putea să vă placă și