1. Specificaiile robotului Rug Warrior Pro Rug Warrior Pro este un robot mobil autonom proiectat pentru educaie, cercetare i hobby-uri. Este util pentru a nva robotic, pentru a crea un agent de cercetare, pentru a eperimenta elemente ale tehnologiei sau doar pentru amu!ament. Robotul Rug Warrior Pro un re!ultat al cursului de robotica de la "#$ %"assachusetts #nstitute o& $echnology'. (ones, )lice i *laus Peters, +red "artin, Randy ,argent, )nita +lynn, i -ruce ,eiger au creat acest robot compact, puternic i bine proiectat. . imagine de ansamblu a robotului Rug Warrior Pro este urmtoarea/
0edere din &a 0edere din spate 1onine 2 baterii de 3.4 0oli, tip 5i-1d, 4677m)h, care pun n micare cele 4 roi de 4.8 inches prin intermediul a dou motoare. Echilibrul este meninut prin intermediul unei a treia rotie de 3 inch. Robotul are urmtoarea dotare/ - microcontroler "129:133 &abricat de "otorola; - <4* R)"; - inter&a serial; - micro&on; - di&u!or; - modul de epansiune; - led pentru a semnali!a bateria slab; - led pentru a semnali!a comunicarea prin serial; 3 +ig. 3 0edere de ansamblu a robotului Rug Warrior Pro
- doi sen!ori de intensitate luminoas %&olosind aceti sen!ori se pot reali!a diverse aplicaii de orientare n &uncie de obiecte mai luminoase n medii ntunecoase sau obiecte ntunecate n medii mai iluminate'; - doi sen!ori n in&rarou %detecie obiecte p=n la 47cm' - < sen!ori de contact %detectea! obstacolele n momentul contactului cu acestea'; - sen!ori pentru deplasare
4 +ig. 4 Placa de ba! a robotului Rug Warrior Pro
- )&ior de cristale lichide %<4 caractere 4 linii > 32' ; )?unge la o vite! de 7,2@ &eetAsecund. )ceast nseamn c va prsi o camer cam in 38 secunde. 1ele 2 baterii rencrcabile permit robotului s stea 37 ore n stare de ateptare i aproimativ 4 ore s se mite la vite! maim. 1onectorii modulului de epansiune / - < intrri analogice PE8, PE2, PE@; - 4 intrri digitale P)3, P)4; - o ieire digital P)< %mprit cu di&u!orul'; - 9 bii de date; - reset; - #RB mascabil; - 011 8 voli; - C5D pentru 011; < +ig. 6 )&iorul de cristale lichide +ig. < ,en!orii robotului Rug Warrior Pro %de lumin, in&raroii, de contact i de deplasare' . !iagrama bloc a robotului 6 +ig. 8 "otoarele, roile i cele 2 baterii pentru alimentare +ig. 2. Eegenda portului de epansiune ilo Rug Warrior Pro este compus din mai multe &uncii subsistem, diagrama bloc &iind cea din &ig.@. P1 +ig. @ Diagrama bloc a robotului Rug Warrior Pro "icroprocesor# "icroprocesorul eecut programul utili!atorului i e&ectuea! operaiile i conversiile analogic-digital. $us/ "agistrala de date i adrese permite microprocesorului s trimit in&ormaiile spre memoria etern i dispo!itivele peri&erice. "emoria e%tern&/ .peraiile sistemului i programul utili!atorului sunt stocate aici. . baterie prote?ea! coninutul memoriei c=nd alimentarea este nchis. 'ircuit de e%pansiune# 1ircuite speciale sunt conectate la microprocesor, iar magistrala de date i adrese &ace posibil citirea i scrierea de date din i spre dispo!itivele peri&erice. )cest circuit &ace posibil adugarea de sen!ori i module de acionare. Interfaa serial&/ +ace posibil comunicaia cu calculatorul ga!d. Afi(or cu cristale lichide/ )&iea! in&ormaii n timp real utili!atorului. Surs& de alimentare# 1uprinde/ bateriile, circuitul de reglare a volta?ului, i circuitul de alimentare a memoriei eterne. Senzori de contact/ )cest circuit permite robotului s detecte!e coli!iunile cu obstacolele. Senzori de lumin&/ Doi sen!ori msoar intensitatea luminoas n ?urul robotului. Senzori de infraro(u )IR*/ ,istemul de detecie a obstacolelor &olosete doi emitori in&rarou %#R' i un singur receptor %#R'. Senzori pentru sunet/ Fn micro&on i un circuit de ampli&icare permite robotului Rug Warrior Pro s monitori!e!e sunetele. !ifuzor/ Permite robotului s produce anumite sunete cuprinse intr-o anumit gam de &recvene. Sistem de detecie a poziiei roilor/ )cest sistem relatea! robotului c=t de mult s-a nv=rtit roata. Gn acest &el este posibil meninerea unei direcii. 'ircuitul motorului/ Preia nivelul logic al semnalului produs de microprocesor i l ampli&ic pentru a produce curentul cerut de motor. "otoarele/ Deplasea! robotul n direcia dorit. +. Interacti,e ' 8 "odul epandabil P 1 ,urs alimentare )&ior #nter&a serial "emorie etern 1ircuit de epansiune Drivere motoare "otoare ,en!ori de contact ,en!ori de lumina ,en!ori de in&rarou ,en!ori pentru sunete Di&u!or ,en!ori deplasare "icroprocesor -F, Rug Warrior Pro )plicaiile de!voltate pentru robot sunt reali!ate pe calculator i ncrcate prin intermediul inter&eei seriale n microcontroler-ul robotului, urm=nd apoi s &ie eecutate de ctre acesta. "ediul n care se reali!ea! programarea este H#nteractiv 1I. Ea deschiderea acestui mediu trebuie reali!at o sincroni!are cu robotul, &iind necesar ncrcarea n microcontroler a codului surs al robotului %HP-codeI'. Dup acest pas, prin intermediu liniei de comand pus la dispo!iie de mediul H#nteractiv 1I se pot da comen!i directe ctre robot sau ncrca programe reali!ate de utili!ator. Gn microcontroler pot &i ncrcate at=t &iiere cu etensia HcI, care nglobea! instruciuni i &uncii 1, c=t i &iiere cu etensia HlisI, ce conin nume de &iiere cu etensia HcI care se doresc a &i ncrcate mpreun. Programele 1 au urmtoarea structur/ J tip &uncieK Jnume &uncie 3K Jlist parametriK L J corp &uncie K M J tip &uncieK Jnume &uncie 4K Jlist parametriK L J corp &uncie K M NNNNNNN.. J tip &uncieK Jnume &uncie nK Jlist parametriK L J corp &uncie K M #nteractive 1 %#1' &olosete compilatorul de la limba?ul 1 %cu linie de comand interactiv pentru compilare i debug'. #1 este o parte din 1 care include structurile de control %&or, Ohile, i&, else' variabile locale i globale, iruri, pointeri, variabile ntregi pe 32 sau <4 de bii, i variabile reale pe <4 de bii i noi &uncii speciale. 1=nd limba?ul #1 este pornit el ncearc imediat s se conecte!e la robot. Dup sincroni!area cu robotul, #1 compilea! i ncarc &iierele librrii setate de&ault, i apoi pre!int utili!atorului promptul H1KI. Ea acest prompt pot &i introduse comen!i #1. 1=nd o epresie este tastat, este compilat de #1 i apoi ncrcat pe robot pentru evaluare. )poi robotul evaluea! re!ultat compilrii i returnea! re!ultatul, care este a&iat n consola #1 . 2 +ig. 9 #nteractive 1 $oate epresiile 1 trebuie terminate cu P;I De eemplu/ pentru a calcula epresia aritmetic 3Q4, trebuie tastat urmtoarele/ 1+2; 1=nd aceast epresie este tastat, este compilat de #1 i apoi ncrcat de robot pentru evaluare, acesta return=nd re!ultatul care este a&iat n consola #1. Pentru a evalua o serie de epresii, trebuie creat un bloc 1 ncep=nd prin PLI i termin=nd cu PMI. Frmtorul eemplu creea! o variabil local i i apoi a&iea! suma iQ@ pe ecranul robotului. {int i=3; printf(%d, i+7;} +.1 'omenzi I' Pe l=ng epresii 1, din linia de comand a mediului utili!atorul poate da anumite comen!i robotului &r ca aceste comen!i s &ie incluse ntr-un program. )cestea sunt comen!i speci&ice mediului #nteractive 1 i e&ectul pe care l au n momentul eecuiei lor asupra robotului sau a &iierelor cu care se lucrea! va &i descris n cele ce urmea!/ - load -nume fi(ier.# comanda compilea! i ncarc &iierul /nume fi(ier0 n microcontrolerul robotului, acesta trebuind s &ie conectat la calculator. Ea lansarea n eecuie a comen!ii, #1 caut &iierul /nume fi(ier01 ce trebuie ncrcat, prima dat n directorul local i apoi n directorul librriilor #1. +iierul trebuie s aib una din etensiile .c sau .lis. Dac etensia este .c atunci el va conine instruciuni speci&ice 1 sau #nteractive 1, iar daca etensia este .lis coninutul lui va &i &ormat din numele mai multor &iiere .c ce se doresc a &i ncrcate simultan. - unload J nume fi(ierK/ comanda descarc &iierul Pnume fi(ierI din memoria microcontrolerului. )re e&ect invers comen!ii load -nume fi(ier.. Dac Pnume fi(ierI are etensia .c atunci se descarc doar programul scris n acel &iier, iar dac are etensia .lis se descarc toate &iierele a cror nume se regsesc aici. - list files# comanda a&iea! lista &iierelor care sunt ncrcate n microcontrolerul robotului. - list functions# comanda a&iea! o list cu numele &unciilor care sunt acum de&inite i ncrcate n microcontroler. - list globals# comanda pre!int utili!atorului o list cu numele tuturor variabilelor globale de&inite. - 2ill3all# comanda nchide toate procesele care rulea! n momentul eecuiei ei. - ps# %print process status' comanda a&iea! o list cu starea tuturor proceselor care rulea! acum. - 4elp# comanda a&iea! un ecran de a?utor a comen!ilor #1 din care utili!atorul poate a&la detalii re&eritoare at=t la e&ectul eecuiei unei anumite instruciuni, c=t i o descriere a parametrilor eisteni. - 5uit# comanda are ca e&ect nchiderea mediului #1. +. 6ditarea programelor (i linia de comand& Pentru scrierea programelor #1 pune la dispo!iia utili!atorului un editor de tet, ce ns nu este obligatoriu de &olosit, programele put=nd &i editate cu orice editor i salvata apoi cu etensia .c sau .lis. . &acilitate important a mediului #nteractive 1 o repre!int linia de comand n care pot &i date robotului diverse comen!i, cum ar &i cele descrise n paragra&ul anterior, i pot &i testate i instruciuni pentru a urmri e&ectul lor, nainte ca acestea s &ie incluse ntr-un program. Fn avanta? al acestei linii de comand este &aptul ca poate memora Ho istorieI a comen!ilor date anterior, &apt care i permite utili!atorului s &oloseasc comen!ile anterioare &r a le mai tasta nc o dat. @ Pentru a se deplasa n istoria comen!ilor utili!atorul va trebui s taste!e combinaia de taste 1$REQP sau tasta R %sgeat sus' pentru a parcurge napoi lista comen!ilor tastate i combinaia de taste 1$REQ5 sau tasta S %sgeat ?os' pentru a parcurge nainte lista comen!ilor tastate. 7ipuri de date1 operaii (i e%presii 0ariabilele i constantele sunt obiecte ca ntr-un program 1. 0ariabilele trebuiesc declarate pentru a putea &i &olosite, la declarare speci&ic=ndu-se tipul lor i av=nd posibilitatea de a seta o valoare iniial. .peratorii speci&ic trans&ormarea ce urmea! a &i su&erit de variabile, iar &ormele ce re!ult din combinarea lor cu aceste variabile se numesc epresii. 8umele ,ariabilelor Gn alegerea numelor variabilelor trebuie inut cont de &aptul ca mediul #nteractive 1 este sensibil la scrierea lor cu litere mari sau mici %este case-sensitive'. Gn interiorul numelor variabilelor poate apare caracterul underscore %HTI', &olosit adesea pentru variabilele cu nume lungi, pentru o mai bun nelegere i depanarea a programului de ctre un alt utili!ator. 7ipuri de date "ediul #1 suport urmtoarele tipuri de date/ - ntregi pe 32 bii - sunt de&inite prin indicatorul int i au valori cuprinse ntre -<4.@29 i Q <4.@2@. - ntregi pe <4 bii - sunt de&inite prin indicatorul long i au valori cuprinse ntre -4.36@.69<.269 i Q4.36@.69<.26@. - numere reale pe <4 de bii - sunt de&inite prin indicatorul float i au valori cuprinse ntre 37 -<9 i 37 Q<9 . - caractere pe 9 bii - sunt de&inite prin indicatorul c4ar. 0aloarea unui caracter repre!int un simbol printabil dup codul ),1## corespun!tor. Operatori +iecare tip de date are operatorii proprii determin=ndu-se ast&el ce operaii pot &i eecutate cu variabile de&inite ca &iind de tipul respectiv. De eemplu / Frmtoarele operaii sunt suportate de tipurile int1 long i float/ - operaii aritmetice/ Q , - , U , A - comparaii/ K , J , V V , KV , JV - operaii pe bit/ W , X , Y , 5.$ - .peraii booleane/ WW , XX , Z +.+ 9uncii pentru controlul motoarelor Pentru a reali!a operaii de micare proiectanii robotului pun la dispo!iia utili!atorului i o serie de &uncii ce au ca e&ect comanda motoarelor din dotare. 1a sistem locomotor robotul este dotat cu dou roi motoare, po!iionate pe lateral, acionate de dou motoare de curent continuu i de o a treia roat, situat n partea din spate, care are rol de susinere. Eist &uncii prin intermediul crora pot &i comandate ambele motoare simultan i eist i &uncii n care &iecare motor este comandat independent prin setarea unui parametru din lista de parametri a &unciei. ,e pot reali!a ast&el at=t deplasri liniare nainte sau napoi, i datorit &aptului c motoarele ce acionea! roile pot &i comandate i separat, se pot reali!a i traiectorii curbilinii prin setarea unei vite!e de deplasare mai mare pentru o roat dec=t pentru cealalt. 9 Pentru rotirea pe loc a robotului eis i &uncii dedicate, dar se poate &olosi cu succes varianta n care se pornete un motor ce acionea! o roat cu o anumit vite!, n timp ce cealalt roat rm=ne oprit. De asemenea rotirea poate &i &cut n ambele sensuri, al acelor de ceasornic i invers acelor de ceasornic acest lucru put=ndu-se reali!a tot prin atribuirea unei valori corespun!toare unui anumit parametru din lista de parametri a &unciei &olosite. &unciile care pot &i &olosite n vederea deplasrii robotului vor &i pre!entate n cele ce urmea!/ - int init3motors)*# aceast &uncie iniiali!ea! o serie de regitri ce permit controlul asupra vite!ei de deplasare a motoarelor. Gn general trebuie apelat ntr-un program naintea &olosirii oricrei alte &uncii de micare pentru a asigura buna &uncionare a acesteia. - ,oid motor)int index, int speed*# prin intermediul acestei &uncii se controlea! unul din motoare n vederea rotirii roii a&erente cu vite!a speci&icat prin parametrul speed. )cest parametru poate lua o valoare ntreag cuprins n intervalul [-377, Q377\. 0aloarea !ero a acestui parametru corespunde situaiei n care roata este oprit. . valoare po!itiv va determina rotirea nainte a roii cu vite!a speci&icat, iar o valoare negativ speci&ic o rotire a roii napoi. Parametrul index poate lua doar dou valori %: i 1', prin valoarea speci&icat select=ndu-se practic unul din motoare asupra cruia va avea e&ect comanda. 0aloarea : corespunde motorului din partea st=ng, iar valoarea 1 corespunde motorului din partea dreapt. - ,oid dri,e)int vitez_tran, int vitez_rot*# prin intermediul acestei &uncii se poate controla at=t vite!a c=t i direcia de deplasarea a robotului. )mbii parametri pot lua orice valori din intervalul [-377, Q377\. Prin intermediul primului parametru se controlea! vite!a de deplasare pe direcia nainte, comand=ndu-se ambele motoare, o valoare po!itiv repre!ent=nd o deplasare nainte, iar una negativ o deplasare napoi. )l doilea parametru stabilete vite!a de rotaie, de data aceasta acion=ndu-se ambele roi una ntr-un sens i cealalt n sens opus. Dac ambii parametri vor avea valori di&erite de !ero atunci traiectoria pe care o va urma robotul va &i una curbilinie, curba &iind in&luenat de valoarea i semnul parametrilor. +.; 9uncii pentru sistemul senzorial Pentru a avea posibilitatea cunoaterii c=t mai precise a mediului n care operea! robotul, acesta are n structura lui hardOare o serie de sen!ori ce i &urni!ea! aceste in&ormaii. Deci!iile pe care robotul le ia la un moment dat trebuie s &ie n concordan cu spaiul su de lucru, de aceea este necesar interogarea cu uurin a acestor sen!ori n cadrul unui program. Pentru aceasta sunt de!voltate &uncii ce returnea! o valoare corespun!toare cu starea sen!orului interogat. Pe l=ng sen!orii eisteni n dotarea standard a robotului utili!atorul are posibilitatea adugrii de noi sen!ori n con&ormitate cu necesitile sale i cu problema de re!olvat. Pentru interogarea acestor sen!ori sunt de!voltate &unciile/ - int digital)int port*# < returnea! valoarea sen!orului conectat hardOare la portul port al microcontrolerului, valoarea returnat put=nd &i : sau 1 %: ] pentru absena semnalului i 1 ] pentru pre!ena lui' Dac &uncia digital%' este aplicat unui port care este implementat hardOare ca o intrare analogic, re!ultatul este adevrat dac valoarea este mai mare dec=t 34@ i &alse dac valoarea este mai mic sau egal cu 34@. - int analog)int port*# returnea! valoarea sen!orului conectat hardOare la portul port al microcontrolerului, valoarea returnat &iind un ntreg ntre 7 i 488 corespun!tor semnalului electric ce vine de la sen!or. Dac &uncia analog%' este aplicat unui port care este implementat hardOare ca o intrare digital, re!ultatul este 7 dac valoarea este 7 i 488 dac valoarea este egal cu 3. )ceste &uncii pot &i &olosite av=nd ca parametri constante ce simboli!ea! anumite dispo!itive %sen!ori' din dotarea standard a robotului Rug Warrior Pro. De eemplu/ ^ < int analog)microphone*# returnea! o valoare instantanee corespun!toare cu nivelul !gomotului din apropierea robotului, !gomot captat de un micro&on. Gn absena sunetelor valoarea returnat va &i aproimativ 349 iar n pre!ena lor valoarea returnat va &i &ia mai mare, &ie mai mic dec=t 349. Pentru a obine o in&ormaie &olositoare re&eritoare la nivelul sunetului vor trebui mediate valorile obinute prin apelarea succesiv a acestei &unii. < int analog)photo_right | photo_left*# returnea! o valoare corespun!toare cu lumina detectat de &otocelulele eistente pe robot, cea din dreapta, dac parametrul este photo_right, respectiv cea din st=nga, dac parametrul este photo_left. 0alorile mici returnate de aceast &uncie corespund unor intensiti luminoase. Pentru detecia obiectelor apropiate, robotul are n dotarea sa un receptor i doi emitori in&rarou ce emit n permanen un semnal care se ntoarce dac se re&lect de un obiect i va &i detectat de receptor. 1ei doi emitori sunt po!iionai n &a-dreapta, respectiv &a-st=nga, iar receptorul este dispus central. Pentru a avea acces la aceast in&ormaie a &ost implementat urmtoarea &uncie/ < int ir3detect)*# &uncia returnea! urmtoarele valori/ : ] dac nu s-a detectat nici un obiect; 1 ] dac obiectul detectat se a&l n partea dreapt a robotului; ] dac obiectul detectat se a&l n partea st=ng a robotului; + ] dac obstacolul se a&l n ambele pri sau n &a. Eist totui posibilitatea ca unele obiecte s nu &ie sesi!ate de sistemul de detecie in&rarou sau s nu &ie interogat la timp &uncia ir3detect)* i s eiste ast&el contact ntre robot i diverse obiecte din mediul ncon?urtor lui. Pentru a se detecta dac robotul s-a ciocnit de vre-un obiect a &ost prev!ut un sistem alctuit din trei contactoare po!iionate unul n spate, iar celelalte dou la 347 o &a de acesta, &iind posibil sesi!area contactului din 2 direcii di&erite. )ceste ntreruptoare sunt ae!ate sub o manta din plastic care, la atingerea cu un obiect dintr-o anumit direcie este de&ormat, acion=nd asupra ntreruptorului. Gn acest sens eist &uncia int bumper)* care returnea! o valoare ntreag ce poate &i scris binar pe trei bii, &iecare bit corespun!=nd unui ntreruptor. Primul bit are asociat ntreruptorul din &a-dreapta, al doilea pe cel din &a-st=nga, iar al treilea pe cel din spate. -iii pot avea valoarea 1 repre!ent=nd situaia n care contactorul este nchis, respectiv valoarea : c=nd contactorul este deschis, deci nu eist contact cu vre- un obiect. Eist situaii c=nd este necesar s avem controlul asupra distanei parcurse de robot. Gn aceste ca!uri ar trebui s tim c=t de mult s-a rotit o roat. )st&el pe partea interioar a roilor se a&l c=te un disc mprit in 32 sectoare colorate succesiv alb i negru, iar n &aa acestui disc este dispus un sen!or a crui stare, deci valoare returnat, se modi&ic la schimbarea culorii. +uncia int left3s4aft)* returnea! starea acestui sen!or eistent la roata din st=nga, av=nd valoarea 1 dac este po!iionat n &aa unei ben!i albe i : n ca! contrar, iar &uncia int rig4t3s4aft)* returnea! starea sen!orului corespun!tor roii drepte. Prin interogarea succesiv a uneia din aceste dou &uncii i prin contori!area apariiilor ben!ilor albe sau negre utili!atorul poate calcula distana parcurs de &iecare roat n parte. +.= 'omenzi de lucru cu inter,alele de timp Proiectanii robotului Rug Warrior Pro au inut cont i de &aptul c pentru re!olvarea anumitor sarcini ar putea &i nevoie de msurarea intervalelor de timp scurse i pentru aceasta au implementat c=teva &uncii ce pot &i &olosite de utili!atori n alctuirea programelor. Pentru o msurare mai precis a timpului unitatea de msur &olosit nu este secunda, ci milisecunda. . descriere a lor i a parametrilor &olosii va &i &cut n cele ce urmea!/ 37 - ,oid reset3s>stem3time)*# &uncia resetea! ceasul sistemului pentru a se putea ncepe contori!area timpului scurs din momentul apelrii acestei &uncii. 5u este necesar speci&icarea nici unui parametru. - long mseconds)*# &uncia nu are nici un parametru, iar valoarea returnat va repre!enta numrul de milisecunde scurs de la ultima resetare a ceasului sistemului, adic de la ultimul apel al &unciei reset3s>stem3time)* sau de la ultima resetare hardOare primit de circuitul robotului. - float seconds)*# are acelai e&ect ca &uncia mseconds)*, doar c re!ultatul returnat va repre!enta un numr de secunde i nu de milisecunde. - ,oid sleep)float sec*# &uncia are ca e&ect ateptarea trecerii unui interval de timp msurat n secunde egal cu cel speci&icat ca parametru. #nstruciunea urmtoare din programul eecutat de robot nu va &i eecutat dec=t dup scurgerea acestui interval de timp. - ,oid msleep)long msec*# are acelai e&ect ca &uncia sleep)sec*, doar c intervalul de timp c=t se va atepta este msurat n milisecunde i va &i egal cu parametrul speci&icat msec. +.? 'omenzi de lucru cu informaiile sonore Gn programele editate i testate pe robot eist situaii n care utili!atorul are nevoie s primeasc un semnal de la robot prin care s &ie anunat c acesta a recepionat comanda transmis. )cest semnal poate &i unul de natur luminoas sau sonor. Gn dotarea standard a robotului Rug Warrior Pro eist=nd un di&u!or, au &ost implementate anumite &uncii prin intermediul crora utili!atorul se poate &olosi aceast resurs hardOare pentru a primi semnale de la robot. )ceste &uncii sunt/ - ,oid beep)*# la apelul acestei &uncii se produce un sunet de 877 :ert! pentru o perioad de 7.< secunde. - ,oid tone)float frec,1 float lung*# la apelul acestei &uncii se produce un sunet pe o &recven msurat n :ert! egal cu parametru frec, pentru un timp de lung secunde. 1ombin=nd n mod c=t mai util aceste &uncii descrise anterior utili!atorul are posibilitatea scrierii de programe i prin eecutarea lor pe robot acesta poate re!olva diverse probleme. Este mai util pentru o organi!are mai bun, at=t n ca!ul c=nd eist un singur utili!ator al robotului, dar mai ales atunci c=nd sunt mai muli utili!atori ce scriu programe pentru robot, s eiste o modulari!are a programelor i &unciilor scrise. . recomandare n acest sens ar &i aceea ca toate &unciile ce tratea! un anumit domeniu s &ie grupate ntr-un singur &iier i atunci c=nd este necesar &olosirea lor ntr-un program, aceste &uncii s nu mai &ie rescrise, ci s se ncarce mpreuna cu &iierul ce conine programul i &iierul ce conine aceste &uncii. 33