bazele roboticii

16
  Capitolul 1. Introducere Obiectivele Cursului Despre Modularitate, PCAP Definirea Robotului Complexitatea Modelul Obiect Capitolul întâi al Bazelor Roboticii este o introducere în cunoașterea conceptelor utilizate la studiul, sistemelor complexe din care robotul face parte. Structura lui este organizată pe cinci subcapitole care se referă la următoarele aspecte: Obiectivele modulului Bazele roboticii în fapt dezvoltarea unui fundament conceptual necesar studiului roboților; Modularitatea și abstractizarea, două construcții mentale care se pot apoi dezvolta prin mecanismul al cărui acronim este PCAP; Definirea robotului unde alături de definițiile canoice ale acestui sistem mecatronic se propune o definiție  de lucru care oferă posibilitatea de analiză a acestor sisteme; definirea conceptului de Complexitate și a modurilor specifice de analiză și sinteză a acestor sisteme iar in final descrierea Modelului obiect paradigmă utilizată in cunoașterea sistemelor complexe.

Upload: alexcsandru

Post on 08-Oct-2015

14 views

Category:

Documents


0 download

DESCRIPTION

Capitolul 1 din bazaele roboticii

TRANSCRIPT

  • Capitolul 1.

    Introducere

    Obiectivele Cursului

    Despre Modularitate, PCAP

    Definirea Robotului

    Complexitatea

    Modelul Obiect

    Capitolul nti al Bazelor Roboticii este o introducere n cunoaterea conceptelor utilizate la studiul,

    sistemelor complexe din care robotul face parte. Structura lui este organizat pe cinci subcapitole care

    se refer la urmtoarele aspecte: Obiectivele modulului Bazele roboticii n fapt dezvoltarea unui

    fundament conceptual necesar studiului roboilor; Modularitatea i abstractizarea, dou construcii

    mentale care se pot apoi dezvolta prin mecanismul al crui acronim este PCAP; Definirea robotului unde

    alturi de definiiile canoice ale acestui sistem mecatronic se propune o definiie de lucru care ofer

    posibilitatea de analiz a acestor sisteme; definirea conceptului de Complexitate i a modurilor specifice

    de analiz i sintez a acestor sisteme iar in final descrierea Modelului obiect paradigm utilizat in

    cunoaterea sistemelor complexe.

  • 1.1. Obiectivele cursului

    Bazele Roboticii este unul din cursurile pe care programa analitic a specializrii de Robotic o cuprinde

    sub forma unui curs de specialitate. Alaturi de acest curs studenii care parcurg aceast specializare

    beneficiaz de cursuri precum, Robotica, Roboi mobili etc. Este deja evident faptul c Bazele Roboticii

    este un curs care le fundamenteaz pe acestea. n consecin obiectivele la care se refer acest capitol

    sunt derivate prin analiza fundamentelor menionate.

    Vom preciza n primul rnd dorina de a prezenta utilizarea unor principii inginereti de proiectare

    modular i de abstractizare. Modularitatea este un numitor comun al proiectarii inginereti specific i

    celei mecatronice. Ea poate fi ntlnit n ingineria electric, n cea mecanic precum i n informatic.

    Conceptul de modularitate este coroborat cu cel de abstractizare adic priceperea de a identifica

    conceptele care definesc un anumit fenomen.

    n al doilea rnd dorina de a prezenta procedee de modelare, adic de a realiza conexiuni n limbaj

    matematic ntre conceptele care au fost amintite. Modelele matematice sunt utilizate n toate tiintele

    care compun ingineria mecatronic (mecanica, electrica i informatica) ele reprezentnd singurul mod

    de a explica fenomenele care apar n acest context i de a permite predicii asupra acestora.

    Nu n ultimul rnd ne dorim s subliniem caracterul cibernetic al roboticii, faptul ca un astfel de produs

    are conexiuni inverse (feedback) care analizeaz rezultatele obinute i le compar cu obiectivele iniiale

    ale sarcinii de ndeplinit (task).

    Cursul conine i o latur aplicativ n care modelele imaginate sunt transformate n algoritmi i

    transpuse in programe de calcul. Soluia numeric a modelelor va fi realizat prin programare n Matlab

    sau n Python.

    1.2. Despre modularitate, PCAP

    ntr-o celebra lucrare [Miller, G. A. (1956). "The magical number seven, plus or minus two: Some limits on our capacity for processing information". Psychological Review 63 (2): 8197 ] atragea atenia asupra faptului c n general un om poate utiliza concomitent apte idei. Se pune deci

    ntrebarea care este modalitatea de a soluiona probleme complexe, adic de a utiliza concomitent mai

    multe idei? Sau, cum putem imagina soluii inginereti care prin complexitatea lor depaete acest prag

    maxim de apte?

    Soluia este abstractizarea si modularizarea. Cele dou soluii sunt prezente n ziua de azi n toate

    domeniile inginereti. Modularitatea este ideea de a construi componente care pot fi reutilizate, iar

    abstractizarea este ideea de a simplifica imaginea unui sistem adic, de a eluda aspectele sale

    particulare, de a ne concentra asupra aspectelor pe care le considerm eseniale. n acest mod

  • descrierea unui sistem complex poate fi enunat ca fiind o interaciune ntre module. Iar att

    interaciunile ct i modulele sunt abstractizate sub form de modele, respectiv de componente.

    Figura1.1 Domeniile care compun robotica, abstractizri succesive

    Modularitatea i abstractizarea permit imaginarea unui proces repetitiv care va genera noi module prin

    conectarea si abstractizarea modulelor iniiale.

    Acest proces repetitiv este construit cu ajutorul unui mecanism (proces) de gndire care cuprinde

    urmtoarele etape [Dennis Friedman Introduction to Electrical Emgineering MIT]:

    Realizarea, imaginarea, unui set de componente de baz Primitive;

    Coroborarea, mbinarea, Combinarea, primitivelor ntr-un sistem mai complex;

    Abstractizarea sistemelor complexe, identificarea prilor lor eseniale;

    Identificarea unor Paternuri (din eng. Pattern, tipare, abloane) comune ale abstractizrilor

    realizate (adic abstractizarea abstracizrilor).

    Mecanismul de gndire menionat poate fi descris prin succesiunea Primitiv Combinare

    Abstractizare Patern ceea ce a condus la denumirea de PCAP (omonim cu eng. pick up a ridica dar

    Mecanisme

    Structuri Mec.

    Mec. Antropomorf

    Mot. CC

    Motoare

    Servo Motoare

    Calc.elect.

    Sist. de calcul

    Calc. pe care ruleaz un

    program de conducere

  • mai ales - aici- cu a intelege). Cursul utilizeaz acest mecanism n vederea ordonrii conceptelor care

    apar n robotic.

    Vom ncepe cu un exemplu comun: crmida, cas, instalaia de ap, funcia de gatit. Crmizile sunt

    obiecte modelate sub forma unor paralelopipede adic din punct de vedere geometric pot fi definite

    prin 3 dimensiuni iar din cel funcional prin mas, rezisten etc. Mai multe tipuri de cramizi pot

    constitui o mulime de Primitive, o clas. Combinnd aceste primitive la care adaugm i primitive din

    alte clase (ferestre, usi, instalaii etc) se obtine o cas - o cladire care folosete drept locuin. Putem s

    extragem din proiectul casei anumite pri pe care le vom utiliza i la alte case (de exemplu camera de

    baia sau instalaiile de ap), ceea ce nseamn c am facut Abstracii. Dac avem o colecie de astfel de

    abstracii putem s identificm Paternurile acestora, de exemplu faptul c o buctrie are ca elemente

    definitorii locurile de procesare ale hranei, locurile de curire ale vaselor,etc. Astfel am definit o

    funcionalitate a caselor, cea de a asigura un loc de pregtire a hranei.

    Putem deci ntelege o cas, pe care trebuie s o proiectam, ca un ansamblui de funcionaliti, putem s

    asociem fiecrei funcii diferite abstractiuni, putem apoi s accesm setul de primitive pe care n avem la

    dispoziie i s le realizm efectiv.

    Acest mod de gandire are urmtoarele consecine imediate: pentru a proiecta o cas trebuie s cunosc

    funcionalitatea pe care doresc s o ofer dar nu trebuie s cunosc modul specific n care se reafizeaz

    acea funcie; acel ansamblu care va realiza o anumit funcie are caracterul unui black box (cutie neagra)

    ceea ce inseamn c pot opera cu ea fr a-i cunoate coninutul; pentru o anumit funcie am la

    dispoziie mai multe astfel de black boxuri din care pot s o aleg pe cea care se potrivete mai bine

    proiectului meu. Exist specialiti in anasmblurile menionate, ei cunosc nu numai cum se acceseaz

    black box-ul dar i cum funcioneaz acesta. Dar atunci cand ansamblul este unul complex, la randul lor

    specialitii menionai descriu funcionarea acestuia prin agregarea de alte black boxuri componente ale

    ansamblului n discuie s.s.m.d.

    Putem exepmlifica mecanismul PCAP n precizarea domeniilor inginereti care compun robotica (v.

    fig.1.1). Parte a mecatronicii ea este compus din trei domenii inginereti: mecanica, electrica i

    informatica. Aceste domenii i ofer primitivele i combinaiile necesare. Caracterul mecatronic al

    produsului (robot) se releveaz prin proiectarea unitar a acestuia adic aeste combinaii trebuie s se

    constituie ntr-un sistem cu legturi specifice.

    n figura 1.2 aceast idee este dezvoltat. Creterea gradului de abstractizare implic sisteme care in

    figura 1.1 apareau n clase diferite (Electric i Informatic).

    Prima abstractizare se refer la elementele care compun circutele analogice rezistene, condensatoare,

    bobine. Utilizarea acestora se realizeaz prin eludarea efectelor secundare i prin concentrarea asupra

    fenomenul fundamental pe care l provoac. Mai precis o rezisten este utilizat doar datorit efectului

    ei evideniat de legea lui Ohm iar capacitatea, inductana pe care o posed este de cele mai multe ori

    neglijat. Un condensator la rndul lui posed rezisten dar i acest proprietate este neglijat vizavi de

    proprietatea sa fundamentaal de capacitor.

  • Figura 1.2. Niveluri de abstractizare

    A doua abstractizare se refer la circuitele analogice. Sisteme realizate din elemetele menionate n

    paragraful anterior. n acest caz se dorete obinerea unei modulariti care poate fi reprezentat

    conceptual (modelat) printr-o funcie intrare ieire. Mai mult, se dorete ca acest modularitate s

    permit conectri (la alte module), iar acestea s nu modifice funciile iniiale. Figura 1.3.a prezint un

    astfel de modul . Este vorba de un divizor de tensiune n care funcia menionat este descris de relaia

    (1.1).

    (1.1)

    Putem conecta un astfel de modul la un motor de curent continuu (motor CC) iar pentru a asigura

    prezervarea funciei dat de modelul (1.1) este necesar utilizarea unui element de legtur special de

    exemplu un amplificator operaional.

    Al treilea nivel al abstractizrii sunt circuitele digitale. n acest caz funciile de ieire pot lua dou valori

    nalt i joas ceea ce este modelat prin 1 i 0. Circuitele numerice sunt deja proiectate n sensul

    conectrii lor cu alte module. Utiliznd mai multe module de acest tip putem genera o mare varietate de

    funcii.

    Figura 1.3. Divizor de tensiune, conectarea la un motor CC

    Elemente Analogice Circuite

    Analogice Circuite Numerice Calculator

    Program

    Vout

    R1

    R2

    Vin

    +

    R1

    R2

    Vout

    Vin

    -

    Am

    p.

    Mo

    t.

    CC

  • Urmtorul nivel de abstractizare l reprezint calculatorul electronic. Este compus din circuite digitale,

    este interfaat pentru a fi conectat la alte module digitale i pentru a fi programat (utilizat) de un om.

    Dac n cazul circuitelor digitale funciile menionate erau binedefinite (nu se modificau n timp), n cazul

    calculatorului acestea sunt subiectul programelor de calcul

    Ultimul nivel de abstractizare este programul de calcul. Pornind de la un anumit limbaj de programare,

    care conine convenii specifice, programarea permite transpunerea unor algoritmi n funcii care (se

    manifest) au efect vizavi de modulele cu care este conectat calculatorul sistemul de acionare al

    robotului, sistemul de senzori etc - dar i ctre utilizator simulatoare, interfee etc.

    Sistemul robotic este subiect de abstractizare, de exemplu evidenietre de subsisteme specifice (de

    orientare, de pozitionare, de prehensare, de calcul etc.) ceea ce permite gsire de paternurilor

    (manipularea obiectelor, definirea taskului etc).

    1.3. Definirea robotului

    Vom ncepe prin a meniona faptul c este vorba de un concept de tip suitcase (eng. Valiza), adic un

    sistem pentru care exist mai multe definiii recunoscute i care n zilele noastre evolueaz cu rapiditate.

    Vom prezenta cteva definiii girate de ISO (Organizaia Internaional de Standardizare), EURON

    (European Robotics research Network) i de RAI (Robotic American Institute) iar apoi von trece la o

    definiie de lucru (de la care vom ncepe analiza).

    Conform ISO i EURON: Robotul este un manipulator controlat n mod automat , reprogramabil,

    utilizat pentru scopuri multiple, n automatizarea aplicaiilor industriale;

    Conform RAI: Roboii Industriali sunt manipulatoare reprogramabile, multifuncionale, utilizate

    pentru a manipula materiale, unelte sau echipamente

    Vom dezvolta aceste definiii prin a spune c Robotul este un sistem mecatronic, programat care

    interacioneaz cu obiectele din jur.

    Faptul c genul proxim al roboticii este mecatronica conduce la ideea ca vorbim despre un

    sistem n bucl nchis (cibernetic).

    Sistemul poate fi definit la randul lui ca fiind un ansamblu de elemente ntre care apar

    legturi specifice. Vom meniona faptul acest ansambul este gndit ca un interior care

    se gsete n anumite relaii (specifice fiecrui sistem n parte ) cu exteriorul (restul

    Univesului). Aceast ultim idee expliciteaz aa numita gndire sistemic.

    Atributul de programat (reprogramat) vine s sublinieze faptul c sarcinile robotului sunt

    flexibile iar acest flexibilitate este implementabil prin programare (reprogramare).

  • Interaciunea menionat poate fi de mai multe tipuri dintre care menionm, manipularea

    obiectelor i deplasarea (manipularea propriului corp) n anumite medii.

    A manipula un obiect nseamna a-i modifica postura (ntr-un anumit timp), adic a

    modifica poziia i orientarea obiectului.

    Apare astfel posibilitatea de a evidenia funciile robotului i de a realiza o prim clasificare a acestor

    sisteme. Definiia anterioar a evideniat dou tipuri de roboi. Cei cu post fix n care un elemet

    (particular, numit baz) nu i modific postura n timpul funcionrii i care se numesc Manipulatoare.

    Cei care se deplaseaz n anumite medii modificnd astfel postura tuturor elementelor din care sunt

    compui i care poart denumirea de roboi mobili. Evident apare i situaia n care robotul mobil

    conine un bra ataat de corpul su care are rol n manipularea de obiecte.

    Din punctul de vedere al mecanismului PCAP ne intereseaz funciile care sunt cuprinse n definiie. Vom

    neniona urmtoarele:

    Este un sistem n bucl nchis ceea ce nseamn existena unor subsisteme (componente

    blackbox la acest nivel de cunoatere) care permit:

    o Interfaarea la un utilizator, n vederea menionrii sarcinii de lucru;

    o Citirea starii curente (subsistem senzoristic);

    o Compararea starii curente cu taskul impus i determinarea diferenei dintre acestea;

    o Transformarea diferneei menionate ntr-o comand care are rolul de a diminua acest

    difern;

    o Accesul de o surs de energie care permite funcionarea sistemului;

    o Transformarea comenzii ntr-o aciune care modific starea sistemului;

    Sarcinile specifice sunt de manipulare ceea ce conduce la necesitatea unor subsisteme care

    permit :

    o Modificarea poziiei;

    o Modificarea orientrii;

    o Prehensarea obiectului, apucarea lui.

    1.4. Complexitatea

    Complexitatea este un concept (idee) care se refer la sisteme alctuite din multe elemente i este de

    multe ori sinonim cu complicat, greu de neles (nclcit). Sublinierea acestui caracter al sistemelor cu

    care operm din ce in ce mai mult are rolul de a imagina strategii de analiz i de sintez (proiectare) ale

    acestora.

    Cunoaterea sistemelor complexe necesit imaginarea unor niveluri de abstractizare ierarhizate n care

    fiecare nivel se refer la un anumit sistem care este alctuit din elemente conectate n vererea realizrii

    unor funcii specifice acestui sistem. Funciile menionate depesc din punct de vedere al abstractizrii

  • funcionarea elementelor care compun sistemul. Dac ne intereseaz funcionarea unui anumit element

    al sistemului atunci ne vom referi la un nivel de abstractizare inferior.

    Apar deci dou tipuri de funcii. Cele care sunt realizate de sistem, acestea sunt emergente, sunt impuse

    de ctre utilizator. Respectiv cele specifice elementelor, impuse de proiectant, necesare pentru

    realizarea primelor tipuri de funcii, eludate ns de utilizator. Existena acestei tipologii poate fi

    neleas i ca o relaie de tipul extern, intern. Mai precis, funciile sistemului sunt relaii cauzale ntre

    conexiunile acestuia cu exteriorul (universul), funciile elementelor sunt relaii ntre elementele

    componente. Poate fi sesizat deasemenea i o ruptur n modul de gandire al utilizatorului, cel care

    beneficiaz de funciile sistemului i priectant cel care trebuie s implementeze funciile interioare.

    Sistemele complexe pot fi descrise prin urmtoarle atribute:

    Structur ierarhic: sistemul complex este compus din subsisteme care la rndul lor pot fi

    divizate n alte subsisteme;

    Primitivele relative: din raiuni de cunoatere sunt evideniate primitivele, cele care constituie

    baza de elemente de la care pornete construcia subsistemelor i a sistemelor. Este evident

    faptul c definirea unui element, subsistem ca primitiv este un proces subiectiv care este la

    latitudinea observatorului;

    Legturile dintre elemente: constituie, in final, principalul mod de a identifica subsistemele,

    subsistemele acestor subsisteme etc. Putem observa legaturi puternice - cu o dinamic mai

    puternic, cu frecven nalt, cu timpi de stabilizare redui care sunt specifice ntre

    elementele unui sistem, precum i legaturi mai slabe cu o dinamic mai redus, cu frecvene

    mai joase cu timpi de stabilizare mai mari care sunt specifice ntre subsisteme;

    Stucturi comune: evideniaz dorina de a utiliza n realizarea, cunoaterea acestor sisteme de

    paternuri, abloane pe care le cunotem deja;

    Evoluia prin forme intermediare stabile: nelegerea, proiectarea i realizarea unui sistem

    complex este una evolutiv care dezvolt sisteme simple. Stabilitatea rezultatelor succesive, a

    iteraiilor, care apar ntre variantele iniiale i cele finale se refer la faptul c acestea

    funcioneaz n limitele unor anumite cerine din ce n ce mai aproape de cele ale utilizatorului.

    Descrierea (cunoaterea) unui sistem complex necesit surprinderea a dou ierarhi. Este vorba despre

    ierarhia clasei din care face parte sistemul i cea a obiectului din care este parte.

    De exemplu un motor MaxonEC, face parte din clasa motoarelor de CC dar utilizat pentru construcia

    robotului face parte din sistemul su de acionare. Faptu c Maxom EC este un motor de CC permite

    utilizarea (prin adaptare la parametrii acestui motor) tuturor cunotinelor pe care le avem relativ la

    motoarele de CC: modelul su dinamic, schemele de legare la o surs de putere, schemele de control

    aferente etc. Apartenena sa la sistemul de acionare permite accesarea cunotinelor relativ la aceste

    sisteme: funciile pe care trebuie s le genereze, viteza de reacie, puterea, asamblarea la structura

    robotului etc.

  • ntelegerea complexitii poate fi de tip algoritmic, cea care evideniaz operaiile necesare realizrii

    unei funcii, obiectiv, task, respectiv cea orientat pe obiecte (OO). Mecanismul PCAP se refer la cea din

    urm.

    Prin obiect nelegem un element tangibil din realitate de exemplu element al structurii de poziionare,

    motor de CC, senzor, program de realizare a unui task, interfaa cu utilizatorul etc. Obiectul este acea

    entitate care se comport ntr-un mod predefinit adic este cauzal definit. nelegereaorientat pe

    obiecte include modularizarea i abstractizarea (cele dou concepte iniiale de la care s-a pornit). Ea

    presupune identificarea obiectelor care particip la realizarea sarcinii.

    1.5. Modelul Obiect

    Conceptul de Frame, (cadru) a fost propus de Marvin Minski [A Framework for Representing KnowledgeThe

    Psychology of Computer Vision, P. Winston (Ed.), McGraw-Hill, 1975]ca structur de date si de funcionalitai

    utilizabil n cadrul tiinei numit Inteligena artificial (IA). Un Frame se referea la o mulime de entiti

    care au un anumit comportament apriori cunoscut. Originea acestui concept consta n dorina de a

    rezolva una din (complicatele) probleme ale IA: percepia. Agentul inteligent tia c n anumite condiii

    pot fi ntlnite anumite entiti care se comport ntr-un anumit mod. n consecin acesta se concentra

    asupra acestora, trecand cu vederea restul obiectelor (n numr considerabil) care se gsesc n univers.

    Economia n gndire (procesare de informaii) era una din beneficiile acestei idei.

    Pentru a exemplifica conceptul menionat ne vom imagina (experiment mental) c intrm ntr-o

    buctrie. Ceea ce n mod legitim tim c vom percepe sunt entiti ca: mese, scaune, chiuvete, sobe de

    gtit etc. Nu tim cum va arta concret masa pe care o vom vedea dar cunoatem deja clasa maselor

    astfel nct ceea ce trebuie s facem este s adaptm conceptul de mas la ceea ce vedem. Este puin

    probabil ca n buctrie vom vedea un pian, astfel nct nu ne vom aduce n memoria de scurt durat

    conceptul clasei pianelor. Exemplul aduce n discuie dou noiuni pe care le utilizm n mod curent,

    conceptul i clasa. Clasa este o mulime de entiti care au proprieti comune (clasa scaunelor, meselor,

    pisicilor etc.) iar conceptul clasei este acel element (real sau imaginar)al clasei care este reprezentativ

    acesteia. (Termenul de concept se poate utiliza i pentru a meniona o idee important , semnificativ)

    Ideea de Frame a fost preluat i dezvoltat n cea de Obiect. Dup cum am menionat n paragreafele

    anterioare ea poate fi utilizat n cunoaterea (analiza) i proiectarea (sinteza) sistemelor complexe.

    Aceste sisteme sunt din domeniul realului (camion, robot, fier de clcat etc.) ct i din domeniul

    abstractului (algoritm, program etc.). Conceptul de obiect s-a dezvoltat foarte mult n programare,

    programarea orientat pe obiecte (OO) devenind una din paradigele acestui proces. Aceast dezvoltare

    a inclus mecanisme de analiz i de sintez care constitue un exemplu care a fost utilizat i la alte

    sisteme (mecanice, electrice etc.). PCAP este un astfel de mecanism care surprinde un modul de

    cunoatere al sistemelor complexe.

  • Datorit caracterului exemplificator al programrii OO vom prezenta n cele ce urmeaz cteva din

    elementele care o definesc. Obiectul este o entitate tangibil care reunete ideea de algoritm cu cea de

    date. Obiectul are anumite comportamente descrise prin algoritmi, poate avea modificri de stare, dar

    are o structur de proprieti invariante.

    Pentru c s-a menionat faptul c programarea OO a devenit o paradigm de programare vom aminti c

    ea a evoluat prin dou abstractizri. Prima este una structural n care comportamente care se repetau

    au fost reunite n subprograme iar a doua este una de modularizare n care structuri de progame

    asemnatoare au fost reunite (abstratizare i modularizare). Dac paradigma (anterioar) a procedurilor

    poate fi pus n coresponden cu verbele (aciunea asupra unei date), programarea OO este asociat cu

    pronumele (date asupra crora se acioneaz ntr-un mod specific). La fel ca n cazul Frame-urilor o

    anumit dat (ansamblu de date) implic aciuni specifice.

    De exemplu o mas este utilizat pentru a susine anumite obiecte n anumite condiii, dei aparent are

    proprieti diferite (cunoatem o mare varietate de mese) n fapt ne referim la valori diferite ale unei

    mulimi de proprieti de acelai tip.

    La rndul ei programarea OO a cunoscut abstractizri interioare de tipul Obiecte, Clase i Clustere. Este

    vorba de a reuni anumite obiecte sub forma unei definiii comune care le poate genera ceea ce a condus

    la apariia conceptului de Clase, respectiv de a reuni obiecte cu funcionalitate comun adic definirea

    unui Cluster.

    Paradigma programarii OO conine mecanisme de analiza OO, proiectare OO, programare propriu zis

    OO. Astfel:

    Programarea OO este o metod de de programare n care programele sunt aranjate sub forma

    unor colecii de obiecte care coopereaz. Obiectele sunt instanieri ale claselor care la rndul lor

    aparin anumitor ierarhi;

    Proiectarea OO este o metod de proiectare care se bazeaz pe descompunerea n obiecte;

    Analiza OO este o metod de analiz caredescompune cerinele unui sistem n cerine specifice

    obiectelor

    Figura 1.4. Succesiunea mecanismelor utilizate la realizarea unui program

    Figura1. 4 surprinde succesiunea utilizabil la realizarea unui program OO. Procesul ncepe cu analiza OO

    care are ca rezultat realizarea unor modele. Modelele sunt apoi transformate n obiecte de ctre

    Analiza OO Proiectarea OO Programarea OO

    Alte metode

    Modele Obiecte Programe

  • proiectarea OO, urmnd ca n final acestea s fie transpuse n programe prin programarea OO. Se

    menioneaz i faptul c exist i alte posibiliti de a transpune modlele n programe.

    Definiia conceptului de Obiect este completat prin evidenierea caracteristicilor sale. Acestea sunt n

    conformitate cu Grady Booch [Object Oriented Analysis and Design with Applications, Addison Wesley2007] de

    dou tipuri, majore cele care sunt mereu prezente i minore, cele care pot s apar. Din categoria

    caracteristicilor majore menionm:

    Abstracia, care se refer la eludarea a tot ceea ce este nesemnificativ. Prin evidenierea

    trsturilor eseniale care prin valorile lor pot diferenia obiectele, abstracia permite definirea

    clasei. Tot aici sunt precizate posibilitile, protocolul, de conectare cu un alt obiect. n concluzie

    abstractizarea este cea care definete obiectul;

    ncapsularea, cea care secretizeaz obiectul vizavi de utilizator, definind cele dou pri ale

    obiectului, interfaa i implementarea. Interfaa este vizibil utilizatorului i cuprinde

    modalitile de generare ale comportamentelor specifice ale acestuia, iar implementarea este

    partea invizibil pentru utilizator, cea care permite (de fapt) realizarea comportamentelor

    solicitate prin interfa;

    Modularitatea, proprietatea sistemelor de a fi descompuse n module, grupeaz clasele i

    obiectele care au legturi specifice n mulimi.

    Ierarhia permite ordonarea claselor i obiectelor. Astfel clasa aparine unei structuri ce poate fi

    definit prin sintagma Este o..., iar obiectul uneia de tipul Parte a....Ierarhiile sunt descrise prin

    concepte de tipul:

    o Motenire, ceea ce implic generalizare i existena subclaselor , a prinilor i a

    urmailor. Motenirea permite reutilizarea datelor sau a metodelor claselor prini de

    ctre clasele urmasi.De exemplu, robotul este un manipulator programabil sau SCARA

    este un robot cu trei grade de mobilitate, el motenete de la clasa robot faptul c

    acesta este un maipulator, faptul c poate fi programat etc. dar n acelai timp

    particularizeaz anumite proprieti, metode ale acestuia are doar trei grade de

    mobilitate, respectiv introduce metode, proprieti noi ;

    o Agregarea , ceea ce implic o legtur de tipul unei cooperri n vederea realizrii unui

    obiectiv comun. De exemplu, sistemul de acionare al robotului este parte a acestuia.

    Din categoria caracteristicilor minore menionm:

    Tipologia, cea care ramforsez caracterul unuei anumite clase i permite conexiunea obiectelor.

    De exempul, sistemul de acionare al acestui robot este unul cu motoare CC; el poate fi conectat

    la anumite surse de energie i nu la altele.

    Concurena.

    Un obiect este ceva perceptibil (tangibil sau vizibil) ceva care poate fi neles, ceva care poate fi descris

    printr-o stare; are un anumit comportament specific; are o identitate precis.

  • Starea unui obiect cuprinde valorile proprietilor acestuia. De exemplu Robotul (n sens

    general) nu este un obiect (este o clasa care poate fi instaniat n diferite obiecte), dar Robotul

    ABB din laboratorul de robotic este un obiect, el are proprieti binedefinite: volum de lucru,

    greutate,..., etc.

    Comportamentul descrie modul n care obiectul acioneaz n anumite circumstane date,

    putnd fi descris prin schimbrile (modificrile) strii acestuia. Afirmaie poate fi inversat n

    sensul n care starea obiectului este rezultatul comportamentelor acestuia. De exemplu starea

    frigiderului poate fi definit prin: temperatura la interiorul frigiderului, faptul c motorul electric

    care acioneaz asupra compresorului este pornit sau oprit etc. Aceste stri au fost determinate

    de comportamentul frigiderului adic de modul lui specific de reacie la temperatura (de rcire)

    impus de utilizator. n cazul unui robot manipulator starea lui poate fi descris (ntre altele) de

    vitezele i poziiile relative ale elementelor (braelor) sale. Aceast stare este o consecin a

    comportamentului de control al robotului.

    Un comportament poate fi abstractizat ca fiind o sum de operaii (funcii). Specific paradigmei OO se

    pot identifica urmtoarele tipuri:

    Constructorul: este operaia care creaz obiectul adic (ntr-un sens mai larg) iniializeaz starile

    acestuia. n cazul unui robot acest operaie o putem observa n dou moduri. n primul rnd

    construirea efectiv a robotului, adic asamblarea sistemului mecanic a celui electric, a celui

    informatic etc. Iar n al doilea rnd putem s o observm ca ansamblul de aciuni care permit

    pornirea robotului generarea strii de stand by. Programul de conducere al robotului este

    alctuit la rndul lui din obiecte (program) care sunt iniializate prin constructor.

    Destructorul: este operaia de distrugere a obiectului. Bineneles i de acest dat este vorba

    de a conduce robotul ctre o anumit stare de repaus, iar referitor la subsistemul lui informatic

    de a elibera memoria calculatorului de anumite obiecte.

    Modificatorul: este o operaie n sens general care modific starile unui obiect. De exemplu

    nchiderea sau deschiderea unui prehensor, etc.

    Selectorul: este o operaie de alegere a unui obiect far a-i modifica starea.

    Iteratorul: este operaia care permite accesul ntr-un mod ordonat. De exemplu n cazul

    manipulatoarelor se utilizeaz strategia de manipulare de tipul pick and place ceea ce necesit

    realizarea unor iteraii de tipul: pregensorul este adus lng obiectul de manipulat,

    manipulatorul prehensez obiectul, robotul deplaseaz obiectul n noua sa locaie dorit i n

    cele din urm eliberaz acest obiect.

    Comportamentele menionate au generat urmtoarele relaii dintre obiecte:

    Legtura este o conexiune fizic sau conceptual ntre obiecte. Tipul legturilor poate clasifica la

    obiecte n urmtoarele tipuri:

    o Controler , atunci cnd un obiect opereaz asupra altui obiect. De exemplu n cazul

    roboilor exist un obiect denumit controler, conectat (legat) la actuatorii acestuia pe

    care i conduce n scopul realizrii poziiilor dorite n cuplele robotului;

  • o Server, atunci cnd obiectul rspunde la comenzile altui obiect. Continund exemplul

    anterior putem afirma ca motorul de CC este un server al controlerului;

    o Proxy, atunci cnd obiectul are ambele statute menionate anterior. De exemplu un

    panou de interfaare este n legtur cu senzorii robotului de la care cere informaii i pe

    care le afiseaz ca urmare a mesajelor trimise de acetia.

    n figura 1.5 este schematizat exemplul anterior, evideniindu-se tipul legturii si obiectele care

    sunt astfel conectate.

    Figura 1.5. Tipul legturilor caracterizeaz comportamentul obiectelor

    Agregarea este o conexiune care implic o anumit ierarhie de tipul ntreg parte. Aceste

    legturi asigur ncapsularea obiectelor una fa de cealalt. Conexiunea este o agregare mai

    slab ea fiind o legtur carepoate fi desfcut. De exemplu senzorul este parte a nunui servo

    motor care la rndul lui este parte a sistemului de actionare al robotului. Putem s nlocuim

    senzorul dac acesta s-a stricat sau dac ne dorim o alt calitate a msurtorilor. Este ns clar

    c robotul nu poate fi conceput fr senzori sau fr servomotoare etc.

    O clas reprezint o mulime de obiecte care posed o structur, un comportament i o semantic

    comun. Este deja clar faptul c aceast noiune se refer la ceea ce n limbaj comun numim

    conceptul unei clase, adic acel individ reprezentativ . Discutnd despre clase ne situm la un nivel

    mai nalt al abstractizrii. Clasa roboilor conine toate atributele, comportamentele pe care le au

    roboii dar acesta nu sunt instaniate (sunt variabile a cror valoare nu au fost atribuit).

    Clasele posed interdependene de tipul:

    Asociere: legturi slabe care apar la primele faze ale proiectrii i care pe parcursul aceteia se

    vor transforma n legturi mai puternice (mai bine definite). De exemplu se poate spune ca

    exist o legtur de asociere ntre clasa controlerelor si cea a senzorilor. n prim instan

    aceast asociere nu d detalii asupra naturii intime a conexiunii;

    Motenirea: este o legtur conceptual dintre o sub clas (urma, copil) i o super clas

    (printe)n sensul n care o sub clas preia structura i sau comportamentele superclasei.

    Motor CC Senzor

    Controler Panou Afiare

    [ controler] [ server]

    [ proxy]

    [ server]

    [ proxy]

  • Motenirea se poate realiza prin extensie ceea ce nseamn c subclasa dezvolt setul de

    comportamente precum i structura superclasei, respectiv prin restricie caz n care elementele

    menionate se mrginesc. Motenirea poate fi singular, de la o singur superclas sau multipl

    de la mai multe clase.

    S-a fcut referire la analiza i proiectarea orientat pe obiecte (v. figura 1.4). Rolul obiectelor i a claselor

    n aceste dou activiti apare acum mai clar. Astfel:

    La nceput, n timpul analizei funciilor temei de proiectare i n primele etape ale acesteie se

    face identificare claselor care formeaz vocabularul problemei (domeniului), identificarea

    structurii pe care trebuie s o formeze conexiunea claselor pentru a rezolva problema. Adic

    identificarea abstraciilor problemei i al mecanismul de implementare.

    Proiectarea se face prin iteraii care dezvolt produsul printr-o succesiune de variante stabile.

    Clasele sunt concretizate n obiecte care au comportamente specifice. Sistemele complexe (din

    care fac parte i roboii) se proiectez i se realizeaz prin coroborarea mai multor echipe care

    lucreaz n paralel. Acest lucru poate fi realizat dac funciile produsului sunt descompuse la un

    nivel de abstractizare inferior specific subansamblelor. Un subansamblu este un sistem care

    poate fi conectat n vederea realizrii sistemului care se afl la un nivel ierarhic superior.

    Conexiunile menionate necesitatea imaginrii unor protocoale: contracte care prevd

    funcionalitatea i interfaa fiecrui subansamblu. Subansamblele pot fi privite ca obiecte

    ncapsulate cu o anumit funcionalitate ceea ce permite modularizarea lor.

    Figura 1.6 ilustreaz o variant posibil a claselor care alctuiesc un robot. Vocabularul problemei a fost

    identificat in subcapitolul consacrat definirii robotului. Pe scurt:

    Interfaa Utilizatorului o clas care permite accesul utilizatorului n programarea robotului

    respectiv afiarea datelor obinute prin monitorizarea robotului. Rolul acestei clase este n a

    permite existena proprietii de ncapsulare, mai exact pentru un utilizator robotul este un

    black box care are comportamente ce pot fi iniializate cu ajutorul acestei clase.

    Comportamentul este descris prin evoluia mrimilor de stare care poate fi citit tot cu ajutorul

    clasei. Exist multe variante de obiecte n care se concretizeaz aceast clas, o consol de

    calculator, un pandant. La rndul lui acest obiect este n fapt un sistem complex alctuit din

    conexiunea a mai multor obiecte.

    La rdul ei figura 1.7 ilustreaz cele dou relaii de motenire i de agregare care pot fi identificate la

    obiectele care compun lanul cinematic de poziionare i a celui de orientare al robotului.

  • Figura 1.6. Clasele care compun un robot (manipulator)

    Interfa Utilizator

    Program de Conducere

    Task: Main de Stare

    Comparator

    Controler

    Sistem de Actionare

    Interfa surs de Energie

    Mecanism Pozitionare, Orientare

    Sistem Senzorial Intern

    Sistem Senzorial Extern

    Prehensor

    Starea Curent

    Obiect Manipulat

    Mediu Extern

  • Figura 1.7. Relaii de motenire i de agregare ale obiectelor care compun lanul cinematic al robotului

    Interfa

    Mecanism

    Obiect: Solid Rigid

    Mecanism Pozitionare,

    Legturi Mecanice: Cuple

    Lan cinematic deschis

    Mecanism Orientare