Teza Daniel 1martie 2017 [304514]
TEZĂ DE DOCTORAT
BUCUREȘTI
2017
Contribuții la elaborarea strategiilor de control al roboților mobili autonomi prin dezvoltarea tehnicilor de inteligență artificială
TEZĂ DE DOCTORAT
COORDONATOR: Prof. Dr. Ing. LUIGE VLĂDĂREANU
DOCTORAND: [anonimizat]. [anonimizat] m-au ajutat și care m-au spijinit pe durata întregee perioade a studiilor doctorale. În toată această perioadă am avut onoarea să cunosc oameni excepționali care m-au făcut să privesc viața dintr-o altă perspectivă.
Doresc să îi mulțumesc domnului Profesor dr.ing. [anonimizat], [anonimizat]. De-a [anonimizat]. Vlădăreanu a fost mai mult decât un conducător de doctorat, a fost un mentor de la care am avut numai de învățat. [anonimizat] a [anonimizat].
Mulțumesc Prof. Dr. ing. Radu Munteanu pentru colaborare în realizarea articolelor privind sistemele de control distribuit.
Mulțumesc doamnei Profesor dr. ing. Mihaela Iliescu pentru colaborarea și sprijinul acordat la dezvoltarea și îmbunătățirea controlului roboțior mobili.
Mulțumesc întregului departament din Institutul de Mecanică a Solidelor al Academiei Române pentru colaborările realizate.
Mulțumesc familiei mele care a fost alături de mine și care m-a spijint necondiționat în toată această perioadă.
Mulțumesc de asemenea prietenilor și colegilor pentru susținerea și sfaturile acordate pe întreg parcursul activităților de cercetare.
Drd. Ing. [anonimizat] „vieții și morții” asupra ființelor umane. Sunt ei oare pregătiți sa o asume? Noi, suntem oare pregătiți sa-i acceptam?
[anonimizat], [anonimizat].
[anonimizat] “mașini” a ajuns la un nivel greu de acceptat de către marea majoritate a oamenilor. Într-[anonimizat], [anonimizat], [anonimizat]: [anonimizat], etc.
Astfel, pentru prima data, “mașinile” pogramate, [anonimizat], instabile și greu de prezis în detaliu.
Sensul cuvântului robot s-a schimbat de-a lungul timpului. Etimologia cuvântului robot este de origine slavă. A fost utilizat pentru prima dată la începutul secolului XX de scriitorii "science fiction" Josef Čapek și Karel Čapek. Se poate traduce prin: muncă, clacă sau muncă silnică. Karel Čapek a descris în piesa sa R.U.R. din anul 1921 [anonimizat]. Čapek folosește în lucrarea sa motivele clasice de Golem. Ceea ce a descris Čapek in lucrările lui poartă astăzi denumirea de android. Înaintea apariției termenului de robot s-[anonimizat], [anonimizat]. [1]
Bazele roboticii moderne sunt cu mult timp în urmă. Primele modele de roboți erau niște mașini care se mișcau în mod automat. Construcția acestor mașini permitea la acele vremuri executarea unui singur obiectiv.
Robotica a făcut un pas important spre era automatizărilor in secolul XIV după descoperirea ceasului mecanic. Complexitatea mecanismului folosit la ceasurile din acea vreme a fost cea care a determinat apariția primelor mașini automate. Aceste mașini erau capabile să efectueze mișcări succesive, fără a fi nevoie de intervenția umană.
Un alt moment cheie îl reprezintă dezvoltarea electrotehnicii în secolul XX, moment în care și robotica ia un avânt și începe să semene cu ceea ce avem în zilele noastre. Aparea astfel primul robot mobil: sistemul Elmer și Elsie brevetat de William Grey Walter în anul 1948.
Robotica apare astfel ca știință în a doua jumătate a secoluluui XX, termenul fiind folosit pentru prima dată de Isaac Asimov în cartea ”Runaround” în anul 1942. Domenii generale teoretic științific, în mod propriu zis nu există, ele sunt considerate în prezent domenii ale informaticii. Apariția roboților a dus după sine dezvoltarea calității vieții prin ceea ce se poate denumi generic ”creșterea productivității” în interacțiunea om-mediu. În cadrul acestei interacțiuni apar automatizările industriale și, implicit roboții industriali. Ceea ce a tempera într-o oarecare măsură răspândirea roboților pe piață a fost prețul acestora. Prețul a fost cel care a făcut ca primele modele sa includă automatizări mecanice și hidraulice, mai puțin electrice.
Evoluțiile tehnologice din ultima vreme au făcut ca în domeniul roboticii lucrurile să se schimbe masiv. Majoritatea acționărilor roboților din zilele noastre sunt electrice și electronice. Informatica joacă un rol extrem de important în acest ecosistem. Au fost dezvoltate limbaje de programare special dedicate pentru roboti, limbaje din ce în ce mai prietenoase care simplifică modul în care omul interacționează cu mașina.
Studiile computaționale asupra evoluției limbajelor și comportamentelor roboților autonomi au fost de cele mai multe ori criticate datorită numărului mare de presupuneri și simplificări pe care le aduc. O anumită partea a criticilor se bazează pe semnificația cuvintelor, cuvinte care nu sunt de cele mai multe ori predefinite, sau, în cazul în care acestea se dezvoltă ontogenetic, nu respectă întocmai ciclul de viață al elementului pe care îl definește. [2][3][4]
A apărut o nouă ramură de cercetători care abordează problema mai sus menționată și care au studiat coevoluția și corelarea dintre folosirea limbajului care apare în mod inevitabil odată cu apariția de noi roboți și învățarea comportamentului acestora într-un mediu realistic, situație în care trebuie rezolvată o sarcină din viața reală [4][5]. Apare astfel conceptul de inteligență artificială. Inteligenta artificială și științele cognitive trebuie să țină seama de evoluția proceselor de control industriale pentru a găsi noi modalități re rezolvarea a problemelor din viața reală.
Inițial, inteligența artificială a apărut ca o aproximare a minții umane prin limbajele de programare. Aceasta versiune pare a fi în impas și nu mai este de actualitate. Conceptul inițial a început să dea erori grosiere de aproximare, motiv pentru care au început să apară un val de critici referitoare la modul în care sunt implementate. Au apărut cercetări privind noi sisteme cognitive, cercetări care sunt în esență foarte asemănătoare cu cele inițiale și care urmăresc același lucru: eliminarea erorilor de predicție. Provocarea imensă a zilelor noastre rămâne în continuare focalizarea pe topici ca percepția, înțelegerea și autoreglarea [4][5]. Dacă la început sistemele au fost folosite ca suport în luarea deciziilor de către operatori, odată cu dezvoltarea sistemelor de control în timp real, au putut fi folosite ți în implementarea controloarelor în buclă închisă în timp real. Un alt pas în față a fost reprezentat de dezvoltarea tehnologiilor fuzzy care au făcut ca sa fie rezultate mai bune decât în cazul folosirii tehnologiilor de tip bayesian [6][7][8].
Un alt domeniu în care robotica a devenit din ce în ce mai prezentă este telemedicina. Încă de la începutul secolului XXI au fost făcute progrese în acest domeniu. Progresele în acest domeniu cu fost coroborate cu progresele în domeniul comunicațiilor. În momentul în care vitezele de transfer de date între cele două continente au fost suficient de rapide astfel încât să se poată transfera capacități mari de date, a fost posibilă și prima operație de la distanță. O echipă de chirurgi din New York a putut interveni într-o operație din Europa.
Acela a fost punctul de cotitură pentru ambele industrii, cea de comunicații și cea de robotică. Producătorii echipamentelor de comunicații au început să dezvolte echipamente industriale dedicate, echipamente care să poată rezita în condiții extreme, care să aiba un grad de fiabilitate ridicat, dar care să prezite aceeași ușurință în exploatare ca și echipamentele de comunicații standard.
Cei care au urmat trendul au fost producătorii de software și de sisteme de operare. Noile generații de sisteme de operare sunt din ce în ce mai fiabile și pun la dispoziție biblioteci si librării pentru controlul roboților. La fel limbajele de programare au început să cuprindp librării predefinite pentru controlul roboților. Exemple în acest sens stam prezenta bash-urilor (a interfețelor în care putem da comenzi în mod text către roboții pe care dorim să îi controlăm), librăriile .NET și Python care inclu acum funcții pentru rețele Fuzzy sau rețele neuronale.
Teza de doctorat analizează strategiile de control folosite până în prezent și caută să dezvolte noi algoritmi de inteligență artificială care să permită o mai bună percepere asupra inteligenței artificiale și asupra modului în care sunt conduși roboții modulari. Sunt efectuate cercetări experimentale în acest sens, cercetări care demonstrează modul în care roboții autonomi se pot integra în activitățile curente. În ultima vreme roboții autonomi au reprezentat un punct de atracție pentru o serie întreagă de grupuri de cercetători, din domeniile cercetării teoretice și aplicative. În acest sens au fost create consorții, atât la nivel național, cât și european și mondial. Rezultatele constau în performanțe din ce în ce mai ridicate și precizii care pot efectua anumite operații în locul oamenilor. Un domeniu în care acești roboți sunt din ce în ce mai utilizați este cel de intervenție rapidă și salvare din locuri calamitate în care viața oamenilor este pusă în pericol, în locuri cu hazard ridicat, transport de materiale nucleare prin teleoperare, nano-manipulatoare în operații de realizare de materiale nano-compozite, transport de nano-particule.
Pornind de la dezvoltările actuale, prezenta lucrare introduce o noua strategie de control al roboților mobili autonomi prin metoda proiecție virtuale în conjuncție cu noile platforme de calcul de tip cloud și big data. Fiind un mediu simulat, el poate fi pus la dispoziția cercetătorilor prin internet, folosind tehnici de tip remote contol. Arhitectura aleasă este una de tip distribuit ceea ce permite ajustarea parametrilor platformei în funcție de resursele consumate și de numărul de utilizatori concurenți. Este deschisă oportunitatea pentru platformele cloud care sunt accesibile de oriunde și în orice moment.
Metoda prin care este simulat un mediu robot cu toate interferențele care pot să apară este denumită și metoda Vlădăreanu-Munteanu. Este o metodă prin care sunt îmbunătățite performanțele roboților și sistemelor mecatronice și care presupune interfațarea virtuală a unor sisteme robotice cu o platformă de calcul IT. Prin intermediul acestei platforme este realizată interacțiunea dintre un mediu real și unul virtual prin utilizarea unor legi de control implementate în controllerul robotului și vizualizarea mișcării acestuia prin intermediul unui sistem de calcul.
Un alt aspect luat în considerare este examinarea modului în care are loc interacțiunea în mediul virtual. O parte importantă a dezvoltării unui astfel de sistem îl reprezintă modelara contactului între robot și mediul virtual și toate constrângerile care se impun. În vederea realizării unei simulări cât mai reale cu putință, gravitația sau inerția sunt compensate în legea de control prin intermediul rețelelor neuronale.
Îmbunătățirile aduse prin aceasta teză de doctorat au fost publicate de autor în articole stiințifice, articole prezentate în Anexa 9. Rezultatele cercetării au fost publicate într-un articol ISI, 5 articole ISI Proceedings și două jurnale BDI.
Artiolul ISI a fost denumit ”Walking Robots Dynamic Control System on an Uneven Terrain”, autori: Vladareanu, L., Tonț, G., Ion, I., Munteanu, M. S., Mitroi, D. În acest articol este prezentat controlul dinamic al unui robot pășitor. A fost dezvoltat un sistem cu arhitectură deschisă cu controlul în timp real. Practic vorbim de un sistem multiprocesor care pot da performanțe sporite robotului. Se ține cont de complexitatea mecanismului de mișcare a robotului atunci când se deplasează într-un teren denivelat. Arhitectura sistemului de control pentru robotul dinamic este corelată cu strategia de control care conține trei bucle de control: controlul balansului folosind feedback senzorial, controlul mișcării folosind modificări periodice pe baza informațiilor pe care le primește de la senzori și predictobilitatea mișcării bazată pe decizii rapide care sunt luate în urma acțiunilor anterioare.
Un alt domeniu în care îmbinarea celor două discipline a fost una câștigătoare a fost industria aerospațială. Misiunile pe Marte de la începutul secolul XXI stau dovadă că nu putem vorbi în zilele noastre de robotică fără a lua în calcul comunicațiile. Modul în care operatorul uman interacționează cu robotul este prin intermediul rețelelor de comunicații. În secolul XX existau rețele dedicate pentru mediile robotice, medii industriale, dar aceste protocoale sunt unele închise, care nu pot face conexiunea între entități aflate la distanțe mari. Motiv pentru care două lucruri s-au întâmplat. Infrastructurile de comunicații au înglobat mare parte din funcțiile rețelelor dedicate și limbajele de programare ale roboților au devenit din ce în ce mai modulare. Sisemele de operare permit acum o mai bună integrare de nivel SCADA cu echipamentele / roboții pe care îi gestionează (de exemplu, în momentul în care este obligatorie folosirea rețelelor de comunicații industriale, comunicarea cu operatorul uman se face prin intermediul unei stații de comandă care permite ambele protocoale și în care se trimit comenzile în mod text).
Lucrarea de față își propune să facă o corelație între controlul pur al roboților și posibilitățile de comandă de la distanță. În mod evident. Nu puteau lipsi interfețele de comunicare de la distanță. A fost construit astfel un algoritm de control folosind inteligență artificială, algoritm care face parte dintr-un sistem mai amplu, sistem care poate fi accesat în mod facil de la distanță și care permite scalabilitatea dinamică în funcție de numărul de utilizatori.
Rezultatele sunt superioare celor existente și au fost diseminate în lucrări ISI sau BDI și au fost publicate la conferințe internaționale din Grecia, Mexic, Franța, China, București. Premiile și medaliile obținute în țară și în străinătate susțin acest lucru, printre acestea se numără Expoziția Internațională de de la Geneva 2016 și invenția ”Metoda și dispozitiv pentru dezvoltarea în mediul realității virtuale a interfețelor de control sisteme mecatronice” (2016), autori: Luige Vlădăreanu, Radu I. Munteanu, Tudor Sireteanu, Eugen Albu, Victor Vlădăreanu, Radu A. Munteanu, Boris S. Cononovici, Mihaela Iliescu, Octavian Melinte, Ionel A. Gal, Daniel M. Mitroi, Oana Chenaru, Mădălin Mihailovici.
Programul doctoral a implicat o serie de cercetări în cadrul unor programe de cercetare finanțate din Programul Național de Cercetare, Dezvoltare și Inovare. Au fost aduse îmbunătățiri sistemelor inteligente de conducere a roboților autonomi și au fost folosite mai multe teorii, unele dintre ele fiind implementare în cadrul proiectelor de cercetare mai sus menționate. Ideea în jurul căreia a fost creionată prezenta lucrare este metoda proiecției virtuale, noi interfețe pentru comunicarea cu dispozitivele fizice sau filtrarea Kalman sub diferite forme.
Cercetările întreprinse în cadrul prodramului de doctorat au fost făcute în colaborare cu universități de prestigiu din străinătate, precum: Stafford University, UK, Mexican Technical Univeristy, Azcapotzalco, Mexic, Chinese Academy of Science, University of Houston–Downtown, US.
În anul 2009 a fost realizat un schimb de experiență la Universitatea Tehnică din Mexico City în care au fost ținute o serie de prelegeri în fața colectivului de robotică condus de Prof Armando Baranon. În cadrul acestei vizitte a fost dezbătută problema deplasării roboților mobili pășitori în vederea evitării unor obstacole. Deplasarea roboților se face prin cooperarea cu alți roboți în timpul procesului de urmărire a unei traiectorii. Au fost analizate dificultățile pe care cercetărorii le-au întâlnit în realizarea algoritmilor de control și au fost dezbătute idei de îmbunătățire și dezvoltare a algoritmilor de control prin tehnici de inteligență artificială pentru roboții mobili, pășiori, bipezi sau hexapozi.
În același an a fost realizat un schimb de experiență la Universitatea Downtown din SUA în cadrul unei conferințe internaționale, ocazie cu care au fost dezbătute probleme de inteligență artificială în controlul roboților modulari.
În 2010, la invitația Academiei de Științe din China a fost realizat un schimb de experiență cu Departamentul de Robotică de acolo. Au fost discutate probleme de cinematică și de control în timp real al roboților.
Cercetările și schimburile de experiență din Mexic, SUA și China au fost sprijinite prin Programul Național de Cercetare, PN II, al ANCSI (Autoritatea Națională de Cercetare Științifică și Inovare), program coordonat de UEFISCDI (Unitatea Executivă pentru Finanțarea Învățământului Superior, a Cercetării, Dezvoltprii și Inovării), Proiect 005/2007-2010, coordonat de Prof. Dr. Ing. Cs. I, Luige Vlădăreanu și în care am fost membru al echipei de cercetare. Rezultatele cercetării acestui proiect au fost disseminate în literature de specialitate, în mai multe articole și brevet de invenție.
În cadrul platformei VIPRO, față de legile de control deja implementate, lucrarea își propune implementarea unor noi legi don control bazate pe rețelele Petri cu filtrare Kalman, legi care împreună cu ceea ce există în prezent în cadrul metodei de proiecție virtuală să rezulte o nouă metodă inovativă cu rezultate îmbunătățite în ceea ce privește timpul de răspuns și fidelitatea răspunsului.
Un alt aspect extrem de important de care s-a ținut seamă în această lucrare este acela al interacțiunii cu mediul simulat. În realizarea simulărilor am luat în calcul o ipoteză simplificată în prima fază. Acest lucru presupune un contact punctual între diversele componente ale robotului și mediul exterior. Ciocnirile au fost considerate într-o prima fază ca fiind elastice.
În urma cercetărilor efectuate pe durata programului doctoral s-au efectuat îmbunătățiri ai algoritmilor de inteligență artificială prin care sunt controlați roboții mobili, cu o precizie ridicată, prin folosirea unor teorii inovatoare. Printre acestea se numără rețelele Petri peste care se aplică filtrările Kalman. Toate acestea în conjuncie cu utilizarea metodei de proiecție virtuală, metodă prin care s-a testat această teorie. Sistemul astfel rezultat poate fi accesat remote de la distanță pentru simulări sau pentru scopuri educative. A fost dezvoltată partea de comunicare care permite extinderea sistemului în funcție de numărul de utilizatori care cer accesul la această platformă. Am analizat și posibilitatea de a extinde întreaga platformă folosind tehnologii cloud, tehnologii care pătrund din ce în ce mai puternic în zona de robotică.
Prezenta lucrare este structurată pe șapte capitole la care se adaugă două capitole pentru bibliografie și anexele care conțin coduri sursă sau scheme logice.
În Capitolul 1 este prezentată sumar o Introducere în robotică și sunt trecute în revistă etapele principale prin care a trecut robotica până în zilele noastre. Este făcută o catalogare a roboților după tipul și modul de întrebuințare precum și structura elementară de conducere. Sunt, de asemenea, prezentate modalitățile de conducere în buclă închisă și sunt scoase în evidență avantajele acesteia.
După prezentarea evoluțiilor de-a lungul timpului, în Capitolul 2 este prezentat Stadiul actual al cercetărilor privind controlul roboților mobili autonomi și a tehnicilor de inteligență artificială. Sunt prezentați cel mai folosiți algoritmi în acest domeniu și simulările făcute în medii virtuale. În anexele de la finalul acestei teze sunt prezentate și codule sursă folosite la aceste simulări.
În Capitolul 3 sunt puse în lumină Problemele specifice tehnicilor de inteligență artificială în controlul roboților autonomi. Sunt prezentate problemele cele mai des întâlnite și modalitățile prin care au fost rezolvate aceste probleme.
Capitolul 4 este elementul central în jurul căruia a fost construită prezenta teză de doctora. Este capitolul în care se face Elaborarea strategiilor privind elaborarea unor algoritmi de control al roboților autonomi prin metoda proiecției virtuale, metodă care mai este cunoscută și sub numele de metoda Vlădăreanu-Munteanu. Este modul în care, pe baza observațiilor făcute în urma cercetărilor din Capitolul 2 se evidențiază erorile de poziționare și unde se pot aduce îmbunătățiri modităților de controla al roboților.
Capitolul 5, ”Platforma VIPRO – modelul experimental” prezintă platforma pe care s-a lucrat în elaborarea algoritmilor inteligenți. Este platforma care a putut pune în practică metoda Vlădăreanu-Munteanu și care a permis simularea robotului într-un mediu real. Metoda, dezvoltată de Prof. Luige Vlădăreanu presupune simularea tuturor interfețelor de comunicare și a mediului înconjurător pentru un sistem robot. Este metoda care face posibilă interacțiunea cu tehnologiile de tip cloud și BigData pentru accesarea de ala distanță și pentru simulări de noi parametri.
Capitolul 6: ”Cercetări experimentale folosind platforma VIPRO” folosește platforma descrisă în capitolul 6 pentru a simula teoriile și algoritmii dezvoltați în această lucrare. Cercetările au fost experimentale și concluziile sunt prezentate în capitolul 6
Capitolul 7: ”Contribuții originale și concluzii” scoate în evidență contribuțiile originale, dar și direcțiile de dezvoltare ulterioară. Prezenta lucrare lasă deschise teme de noi cercetare, cum ar fi îmbinarea algoritmilor de inteligență artificială cu tehnologiile din sfera IT. Sunt prezentate rezultatele algoritmilor inteligenți pentru controlul roboților autonomi ți rezultatele diseminate în literatura de specialitate.
În capitolul de Bibliografie sunt incluse toate lucraările de la care s-a pornit în cercetarea din această lucrare de doctorat. Sunt de asemenea incluse toate publicațiile personale și cele cu care s-au făcut analizele comparative.
Ultimul capitol este reprezentat de Anexe. În acest capitol regăsim codurile sursă folosite la simulare, dar și schemele logice dupa care s-a construit interfațarea cu platforma VIPRO, dar și modul în care este posibilă conectarea de la distanță.
Stadiul actual al cercetărilor privind controlul roboților mobili autonomi și a tehnicilor de inteligență artificială
Roboții zilelor noastre sunt un mix interdisciplinar care combină domenii de cercatare stiintifica ca: mecanica, electrotehnica și informatica, combinație care poartă denumirea de mecatronică.
Componentele fundamentale ale sistemului robot. În zilele noastre se pune accent mai mult pe sisteme de roboți decât pe roboții de sine stătători. Sintetizat, un sistem de roboți se poate reprezenta astfel:
Domeniul de lucru sau gama aplicațiilor la care participă definesc spațiul de operare al unui sistem robotic. Parametrii arhitecturii mecanice definesc în mod direct spațiul de operare al robotului, spațiu care restricționat pe de o parte de anumite caracteristici interne, ale elementelor componente, de tip mecanic și, pe de altă parte, de caracteisticile obiectelor implicate în procesul tehnologic.
Fiecare robot trebuie să includă o sursă de energie, sursă care reprezintă suportul energetic necesar punerii în mișcare a elementelor mobile, dar și a modulelor de comunicare ce fac posibile funcțiile de acționare și conducere.
Prin sistem autonom înțelegem un sistem care poate lua decizii de unul singur. Pentru a putea genera un sistem autonom este necesară legătura ca cât mai multe discipline de robotică. În cazul sistemelor autonome se pune accent pe legătura conceptelor de inteligență artificială și neuroinformatică cu proiecția lor biologică. Legătura dintre biologie și tehnică a dat naștere conceptului de bionică. În această nouă structură, componenta de bază este reprezentată de senzori. Senzorii sunt cei care permit mobilitatea unui sistem autonom pe teren și o dirijare cât mai precisă.
Fig. 2.1-1 Schema logică a unui robot
Sunt mai multe tehnologii pe care se bazează inteligența artificială (AI) și anume: rețelele neurale artificiale (ANN), algoritmii genetici (GA), sisteme expert (ES), fuzzy logic (FL) și multe altele care sunt în curs de dezvoltare. Diferența între aceste tehnologii este dată de metode de calcul și sunt incluse concepte care simulează modul în care omul rezolvă anumite probleme sau modul în care procesele există în natură.
Inteligența artificială
Sunt mai multe tehnologii pe care se bazează inteligența artificială (AI) și anume: rețelele neurale artificiale (ANN), algoritmii genetici (GA), sisteme expert (ES), fuzzy logic (FL) și multe altele care sunt în curs de dezvoltare. Diferența între aceste tehnologii este dată de metode de calcul și sunt incluse concepte care simulează modul în care omul rezolvă anumite probleme sau modul în care procesele există în natură.
Dezvoltarea fuzzy
Prin folosirea acestei tehnici se intenționează anumite probleme neliniare, cu un grad ridicat de complexitate, dincolo de modelele convenționale de calcul, modele costisitoare sau consumatoare de timp. Metodele de inteligență artificială sunt considerate de unii specialiști a nu fi potrivite întotdeauna pentru simularea proceselor reale, datorită naturii acestora. Tehnica modernă din zilele noastre a făcut ca aceste metode să fie cele mai apropiate de realitate și să fie catalogate drept o unealtă suplimentară folosită de inginerii care se ocupă de problema controlului.
Au fost făcute progrese majore pe mai multe fronturi: software, hardware (controllere, sisteme embedded), motiv pentru care putem afirma că și metoda fuzzy a făcut progrese. Majoritatea producătorilor de controllere de roboți le echipează cu funcționalități fuzzy logic. Mai mult decât atât, acești producători s-au aliat cu producători de software pentru a da o nouă direcție de dezvoltare în robotică.
Din ce în ce mai multe sunt cazurile în care logica fuzzy este o tehnologie acceptată. Prin standardul IEC 1131, comisia internațională de electronică (IEC) a aprobat standardele referitoare la controllerele programabile și au fost standardizate metodele de programare logică de tip fuzzy.
Rețelele neurale în procesul de control
Aceste rețele au fost prezentate de NeuralWare pentru prima dată. Reprezintă un pas în față relativ la sistemele hibride ce combină tehnologia rețelelor neurale cu alte metode (nu neapărat din sfera tehnologiilor de inteligenâă artificială). Sunt metode bazate pe procese cu neliniarități complexe și control complex.
Rețelele neurale în procesul de învățare statistică
Ultimele tehnologii în domeniul roboticii se bazează din ce în ce mai mult pe învățarea statistică. Suplimentar mai apar și tehnici noi, cum ar fi învățarea bayesiană, metodele de tip kernel și rețelele neurale ce cataloghează procesele modelate în categorii cu scopul de a învăța datele variabile aleatoare ce duc la eșantionarea modelului. În prima fază avem procesul de învățare, proces în care algoritmului îi este prezentat un set de date și un set de etichete asociate. Această fază poartă numele de învățare supervizată. În faza următoare, algoritmul își etichetează propriile date pentru a minimiza erorile clasificate sau, după caz, minimizarea riscurilor sau a erorilor așteptate.
Învățarea bayesiană are la bază aplicarea regulilor lui Bayes pentru a calcula probabilitatea unei ipoteze. Datele sunt mai apoi împărțite în categorii – clase. Perioadele de învățare returnează probabilitatea fiecărei categorii de date de a apărea într-o unitate de timp. Pentru a aplica regula lui Bayes este nevoie de o clasă principală – categorie de bază. O dată aflată clasa de bază, sunt mai multe metode de aplicare a metodei de învățare bayesiană: probabilitatea maximă și maximizarea așteptată. Tehnicile lui Bayes implică un cost computațional mediu, sunt ușor de implementat și, folosind tehnologiile moderne pot fi implementate chiar și on-line. Este o medodă extrem de populară și de cunoscută, ea fiind metoda prin care se scaneaza email-urile de spam-uri.
Învațarea de tip reinforcement
Este o învățare de tip învățare nesupravegheată ce returnează un ”semnal de răsplată” (reward signal), caz în care, scopul robotului rămâne acela de a învăța care este cea mai bună secvență de acțiuni necesară pentru a atinge scopul propus. Pentru ca acest lucru să fie posibil este nevoie de maximizarea semnalelor ”de răsplată”. Robotul înregistrează stările mediului înconjurător într-un set S și este capabil să genereza un set de date A cu politica π. În ecuație sunt introduse probabilitățile de tranziție de la o stare la alta în timp ce efectuează acțiuni: . În urma acestui tip de învățare este generată funcția V, funcție pe care robotul încearcă să o maximizeze, prin exprimarea cumulată a ”răsplatei”. Ecuația de bază care exprimă valoarea funcției și permite învățarea politicii optime π*, este ecuația Bellman:
Învățarea logică inductivă
Schemele de învățare simbolică cea mai urmărită este programarea logică inductivă bazată pe reprezentarea logică și inducția logicp de tip first order, folosing învățarea contextuală, cu alte cuvine se bazează pe ceea ce a acumulat anterior. Scopul acestui mod de învățare este sintetizarea sau învățarea programelor logice care au la bază variabile ce returnează adevărat sau fals. Programele logice nu sunt unice. Dificultatea acestei metode de inteligență artificială constă în găsirea unui program minimal, necesar și suficient care să fie compatibil cu datele achiziționate, adică să returneze true sau false în funcție de datele / seturile de date pozitive sau negative achiziționate. Acest program trebuie să generalizeze sau să genereze răspunsul corect pentru noi cazuri asemănătoare. Minusul acestui tip de învățare este faptul că nu este unul care să se poată urmări.
Fuziunea senzorială
Majoritatea sarcinilor atribuite unui robot mobil au nevoie de mai multe informații, ceea ce implică folosirea de mai mulți senzori. Folosirea unui singur senzor nu poate oferi rezultate satisfăcătoare. Un exemplu în acest sens este navigarea unui robot într-un mediu cu asperități. Într-un astfel de mediu, unele obstacole pot fi detectate de senzorii de IR, altele doar de senzorul de tip sonar, drept pentru care este nevoie de un răspuns de la ambele tipuri de senzori. Fuziunea senzorială sau fuziunea de senzori este cea care se ocupă cu multiplexarea semnalelor care vin de la mai multe tipuri de senzori. Într-o formă simplificată, multiplexarea semnalelor poate fi reprezentată prin formula:
Fig. 2.7-1 Schema logică pentru fuziunea senzorială
Imagine de mai sus arată că datele externe care vin de la senzorii externi sunt comparate cu datele primite de la senzorii interni pentru a ajuta în procesul de decizie. Dacă ne raportăm la exemplul mai sus menționat anterior, fenomenul din imagine ne ajută în procesul decizional pentru a crește acuratețea localizării.
Statistica, estimarea și controlul, domenii pe care le foloseau în general matematicienii, au stat la baza metodelor de fuziune de date. În cele ce urmează sunt prezentate principalele metode de fuziune folosite în robotică.
Regula lui Bayes este cea care stă la baza metodelor de fuziune senzorială. Este regula care face legătura între două stări: stare de observație x și observația y. Regula lui Bayes are nevoie ca legătura dintre cele două stări de observație să fie exprimată printr-o uniune de probabilități P(x,z) – care mai poartă denumirea și de uniune de distribuție de probabilități – pentru variabile continue și discrete. Regula probabilităților condiționale este folosită pentru a exprima probabilitatea legăturii între cele două stări de observație:
Prin rearanjare obținem regula lui Bayes:
Interpretarea probabilităților , si duce la valoarea raportului de mai sus. Facem presupunerea că este necesar să se afle diferitele valori ale stării necunoscute ale lui x, valori distincte, putin probabile să se repete. Facem presupuneri inițiale ale stării estimate x, stare pe care dorim să o obținem, înglobată în forma relativă de probabilitate P(x). Pentru a obține mai multe informații despre starea x, facem o nouă observație z. Cele două observații sunt modelate sub forma unei probabilități condiționale , probabilitate care ne arată că, pentru fiecare stare fixă, există posibilitatea să existe o stare de pbservație.
Generalizând, regula lui Bayes poate fie exprimată în felul următor: date fiind evenimentele A1, A2,…, Ak independente una de alta si evenimentul B care se află în dependență cu acestea, regula lui Bayes extinsă poate fi exprimată în felul următor:
În această formă, teorema lui Bayes reprezintă un mijloc prin care se determină probabilitatea unui eveniment Ai (element dintr-o serie de distribuție) în situația în care știm că apariția acestui eveniment este înfluențată de îndeplinirea unui eveniment independent B. În formula de mai sus, elementul este interpretat ca probabilitatea ca evenimentul B sa aibă loc în condițiile în care știm că apariția sa a fost urmată de apariția evenimentului Ai. Elementele din seria A1, A2, …, Ak trebuie să satisfacă următoarele condiții:
Oricare ar fi elementele acestei serii, ele nu pot avea loc în acelasși timp
Elementele acestei serii pot descrie toate stările în care se află sistemul.
Extrapolând mai departe regula lui Bayes, facem exprimarea pentru funcția de probabilitate posterioară astfel: dacă parametrul W poate lua valorile w1, w2, …, wk cu distribuția:
Considerăm X o variabilă aleatoare. Astfel, regula lui Bayes devine:
Unde reprezintă repartiția variabilei aleatoare X în momentul în care W = w1.
Modele senzoriale și inducția multisenzorială Bayesiană
Probabilitatea condițională are rolul unui model senzorial. Se construiește un model senzorial. Probabilitatea acestui model la un moment de timp este x = x. Trebuie să aflăm care este densitatea de probabilitate ca să obținem distribuția z: . În mod reciproc, când este folosit modelul senzorial și facem o observație z=z, fixă și facem presupunerea că există o funcție de probabilitate în care trebuie sa aflăm valoarea lui x. Implementările parctice care folosesc sunt construite ca funcții de ambele variabile, sub forma unei matrici. Fiecare valoare fixată x are ca și corespondent densitatea de probabilități z. Variațiile lui x definesc densitatea de probabilități z. Variația lui x determină forma multisenzorială a regulii lui Bayes să îndeplinească o condiție independentă:
Care poate fi rescrisă sub forma:
În formula de mai sus am notat cu C constanta de normalizare. Sub această formă regula lui Bayes este denumită ca ecuația de probabilități independente, ceea ce rezultă că probabilitatea posterioară x raportată la observațiile Zn este direct proporțională cu produsul de probabilități individuale provenite de la fiecare senzor.
Pe baza celor enunțate mai sus, forma recursivă a regulii lui Bayes se scrie sub forma:
Scrisă sub această formă, teorema lui Bayes ne arată ca tot ceea ce trebuie să calculăm este de fapt densitatea posterioară . Aici sunt stocate informațiile ultimelor evenimente din serie. După ce sunt calculate si stcocate informațiile caracteristice acestor evenimente, ele trebuiesc filtrate pentru a se reține cele relevante. Filtrarea se aplică proceselor secvențiale ale modelului probabilistic pentru starea analizată, stare care evoluează în timp și pentru care, un senzor citește periodic stările. Problema filtrării se adresează proceselor de urmărire și de navigație, probleme întâlnite din ce în ce mai des la mașinile autonome. Forma bayesiană a filtrării oferă o reprezentare comună pentru un spctruu continuu și discret de date. În acest caz filtrarea se face în mod direct fără a fi nevoie de implicarea metodelor de observație.
Fig. 2.8-1 Urmărirea unui sistem folosing regula lui Bayes
Probleme specifice tehnicilor de inteligență artificială in controlul roboților autonomi
Robotul industrial reprezintă puncul de intersecție al rezultatelor de vârf într-o serie de domenii: mecanică, automatică, calculatoare și sisteme de acționare. Complexitatatea deosebită a robotului rezultă din amestecul unor ramuri științifice și tehnologice diferite, in special în ceea ce privește sistemul de conducere. Cu alte cuvine, robotul este definit ca un sistem tehnologic capabil să înlocuiască sau să asiste omul în exercitarea unor acțiuni diverse asupra mașinilor, mediilor de producție sau mediului înconjurător.
Probleme specifice ale structurii roboților mobili
Un robot mobil este format din mai multe segmente unite între ele prin articulații (de rotație sau de translație) care formează spațiul articulațiilor și care definesc și numărul de grade de libertate. O articulația are una sau mai multe grade de libertate. Fiecare dintre cele două tipuri de articulații pot avea până la trei grade de libertate în funcție de mișcările pe care le efectuează raportat la axele carteziene. Cele două tipuri de articulații pot exista în același timp la un robot și se pot face combinații între ele.
În robotică notațiile pentru aceste tipuri de rotații sunt: θ pentru articulația de rotație si d pentru articulația de translație (denumită și prismatică). În momentul proiectării unui robot mobil este nevoie să se țină seama de toate variabilele care pot modifica structura acestuia. Pentru un robot mobil pășitor cele mai folosite articulații sunt cele de rotație. Având în vedere că robotul pășitor efectuează inclusiv mișcări liniare, este nevoie ca modelul cinematic să includă grade de libertate de translație. În mod simplificat se poate simula deplasarea liniară a unui robot mobil doar cu două grade de libertate, dar în mod uzual sunt adăugate grade de libertate de translație. Altfel, gradele de libertate de rotație ar introduce probleme suplimentare care au nevoie de procesare suplimentară.
În realizarea roboților mobili provocarea este reprezentată de găsirea unor structuri cât mai ușoare care duc la obținerea unor structuri diferite pentru îndeplinirea unor sarcini ca deplasarea pe terenuri instabile, cu denivelări. Pentru aceste structuri, o altă provocare e reprezentată de găsirea motoarelor de dimensiuni reduse care să fie capabile să dezvolte cupluri mari.
Russel și Norvig au introdus pentru prima dată în 2000 conceptul de agent rațional / intelgent, adică un agent care face doar sarcina pentru care a fost configurat. Intervine astfel, pentru prima dată, conceptul de modularitate. Dar ce este un agent? Un agent este o componentă a robotului care include unul sau mai mulți senzori. Caracteristicile mediului în care operează sunt ”citite” de senzori, iar asupra mediului se acționează prin intermediul unor efectori.
Algoritmii cercetați în prezenta lucrare de doctorat folosesc mai mulți agenți software. Agenții software reprezintă un cod software scrisă în mod special pentru a funcționa autonom, într-un mediu distribuit, care poate gestiona probleme cu un grad de complexitate ridicat.
Elaborarea strategiilor de control al roboților mobili autonomi prin dezvoltarea tehnicilor de inteligență artificială integrate in metoda proiecției virtuale
Activitățile de cercetare desfășurate în dezvoltarea de platforme în mediu virtual 3D au condus la acumularea unei expertize importante în ceea ce privește mișcarea roboților în medii virtuale cu abilități deosebite în navigare, depășire obstacole, simulare de medii virtuale de înaltă fidelitate, dar lipsind interacțiunile mediului virtual: robot virtual – robot real. În acest context, proiectul VIPRO readuce roboții virtuali în lumea reală, propunându-și să realizeze o platformă robot inovativă la nivel mondial, având la bază metoda proiecției virtuale, brevet de invenție, titular IMSAR. Acesta va permite dezvoltarea într-un mediu virtual a unor sisteme mecatronice de roboți mobili ce vor putea comunica printr-o interfață de mare viteză cu sisteme reale de roboți. Rezultatul urmărit este dezvoltarea unei platforme robot versatilă, inteligentă, portabilă ”VIPRO”, care va permite îmbunătățirea performanțelor de mișcare și stabilitate în mediu virtual și real, pe terenuri nestructurate și denivelate a roboților mobili, autonomi, inteligenți și în particular a roboților de căutare și salvare RABOT.
Platforma VIPRO dezvoltată în această etapă a proiectului, prezentată în figura 10, are la bază metoda proiecției virtuale, cunoscută ca metoda Vlădăreanu-Munteanu. Invenția se referă la o metodă și la un dispozitiv de control în timp real cu arhitectură deschisă a sistemului de comandă al roboților, destinat îmbunătățirii performanțelor de control, cu aplicatți în realizarea de sisteme de control pentru nano/micro/macro manipulatoare și roboți. Problema pe care o rezolvă metoda proiecției virtuale este accea că permite proiectarea, testarea și experimentarea metodelor de control pe un sistem de control real, cu funcționare on-line, în absența structurii mecanice, prin proiecția virtuală a componentelor acesteia, permițând astfel îmbunatățirea performanțelor sistemelor de control al roboților deja realizate fizic.
Proiectul modelului experimental dezvoltă componenta de modelare 3D, componenta de programare a mișcării, componenta de simulare 3D, interfața cu roboții mobili, interfața web cu utilizatorul și interfața pentru e-learning. S-a dezvoltat o interfață cu utilizatorul prin care se transmit comenzile către platforma virtuală. Interfața permite utilizatorului crearea unei structuri de robot mobil folosind parametrii standardizați și permite dezvoltarea interfețelor de comunicare cu partea hardware.
Arhitectura modelului funcțional și experimental al platformei VIPRO de modelare și simulare a roboților mobili este prezentată în figura 5.1-1, care a stat la baza implementării modelului funcțional și experimental al platformei VIPRO.
Arhitectura modelului funcțional și experimental al platformei VIPRO de modelare și simulare a roboților mobili are la bază metoda proiecției virtuale, brevet de invenție, titular IMSAR, cunoscută ca metoda Vlădăreanu-Munteanu, prin care se realizează dezvoltarea sistemelor mecatronice de roboți mobili într-un mediu virtual. Rezultatul este realizarea unei platforme robot versatilă, inteligentă, portabilă VIPRO, care permite îmbunătățirea performanțelor de mișcare și stabilitate în mediu virtual și real pe terenuri nestructurate și denivelate a a roboților mobili, autonomi, inteligenți și, în particular, a roboților de căutare și salvare RABOT.
Soluția tehnică pentru noua platformă prezentată în figura 4-1 conține principalele module ale platformei VIPRO, într-o structură cu arhitectură deschisă de control în timp real al roboților. Modulul de interfețe de control inteligent utilizează strategii avansate de control adaptate mediului robotului tip control extins (extenics), controlul neutrosofic, mecatronica adaptivă umană etc., implementate prin tehnici IT&C cu procesare rapidă și comunicații în timp real. Au fost proiectate și implementate pe platforma VIPRO următoarele interfețe de control inteligent: interfața de control neutrosofic al roboților (ICNs), interfața de control extins (ICEx) (Robot Extenics Control) și interfața de rețele neuronale (INN) pentru controlul dinamic hibrid forță poziție DHFP.
Modulul PC Mediu robot realizează dezvoltarea mediului 3D virtual al robotului, prin proiectarea CAD a robotului NAO și robotului de salvare RABOT, exportarea modelelor la platforma VIPRO de simulare virtuală 3D și simulări cu control în timp real în mediul virtual 3D. Interfața de comunicații multisenzori, conține magistrala multi-senzori și magistrala de comunicații Ethernet pentru comunicații la viteze ridicate între toate modulele platformei.
Fig. 3.1-1 Arhitectura modelului functional si experimental al platformei VIPRO de modelare si simulare a robotilor mobili
Sistemul de control clasic al robotului a fost proiectat ca un sistem cu arhitectură deschisă distributiv, în care încărcarea informațională a controlerului principal a fost efectiv diminuată printr-un sistem de control tip master-slave între unitatea centrală PLC și dispozitivele de intrări-ieșiri și liniile de comunicație ale sistemului de control principal (master) și sistemul PC. Proiectarea în structura distributivă a sistemului de control format din 22 articulații cu 22 DOF pentru robotul NAO, senzori de poziționare, forță și girație, rețea de comuncații LAN pentru comunicări off-line, rețea de comunicații rapidă pentru control în timp real, module de interfață digitale și analogice etc a condus, din studiile efectuate, la reducerea cu 40% a muncii de programare, cu 30% a activității de proiectare și comisionare, cu 80% a costului cablării, cu 50% a activității de asamblare, respectiv cu 30% a costului echipamentelor.
Proiectarea și implementarea pe platforma VIPRO a sistemului e-learnig permite realizarea unui rețele interacademice în scopul cercetării și dezvoltării de noi roboți inteligenți.
Platforma VIPRO are alocate 5 stații de utilizatori dedicate utilizării, respectiv modelării robotului NAO utilizând cinematica directă și inversă, modelării robotului RABOT în mediu de dezvoltare Unity, controlul inteligent neutrosofic ICN prin integrarea metodei RNC, control extins prin integrarea metodei Extenics (ICEx) și modelarea cinematicii inverse în controlul mișcării robotului folosind sisteme de inferență și rețele neuronale (INN). Pentru control de la distanță, „remote control”, în realizarea funcțiilor e-learnig ale platformei VIPRO, a fost integrat un server care asigură un trafic de date ridicat pentru comunicații pe internet, la care se mai adaugă două stații de utilizatori, pentru aplicații cu end-users.
Sistemul PLC cu arhitectură deschisă și interfețe inteligente al platformei VIPRO, proiectat în această etapă, prezentat în figura 5.2-1, dezvoltă metoda proiecției virtuale Vlădăreanu-Munteanu prin integrarea soluției inovative: “Metoda și platforma versatilă, inteligentă și portabilă de control a roboților prin proiecție virtuală”. Sistemul de comandă și control cu arhitectură deschisă (OAH) a fost proiectat în structură distributivă și descentralizată, pentru a permite dezvoltarea cu ușurință a unor aplicații noi sau suplimentarea cu noi module hardware sau software pentru noi funcții de control.
Interfețele inteligente de control folosite în Metoda proiecției virtuale s-au dezvoltat în această teză folosind algoritmi de estimare de tip filtrarea Kalman extinsă, filtrarea de particule pentru fuziunea zenzorială, filtrarea Klaman distribuită cu particule Sigma-Point, respectiv prin modelarea și analiza cu rețele Petri.
Filtrul Kalman. Una dintre cele mai des întâlnite metode folosite în elaborarea strategiilor de control ale roboților mobili autonomi este metoda Kalman. Este atât de întâlnită încât au apărut mai multe variante și versiuni ale filtrării Kalman: în timp continuu, în timp discret, distribuită pe mai multe sisteme etc.
Filtrul Kalman este un estimator liniar folosit la estimarea și calculul succesiv ale unor stări cu valori continue, stări ce evoluează în timp. Această estimare se bazează pe observații de stare periodică. În acest caz este implicat un model statistic exprimat sub forma unui parametru de interes, care evoluează în timp, și sub forma unui model statistic explicit al observației făcută primului parametru. Câștigul obținut în urma aplicării unui filtru Kalman se face pe baza unei estimări de stare, , estimare ce minimizează erorile pătratice medii:
Filtrul Klamann are numeroase avantaje care îl fac ideal pentru a lucra în cazul estimărilor complexe multisenzoriale și în cazul problemelor de fuziune de date. Este metoda prin care se pot integra diferiți senzori în algoritmii de control. Folosirea estimărilor din cadrul acestui algoritm face posibilă evaluarea cantitativă a rolului pe care îl joacă fiecare senzor în performața întregului sistem.
În robotică, acest tip de filtrare este folosit în procesele de urmărire, de localizare și navigație, mai puțin în problemele de mapare. Algoritmul lucrează cel mai bine cu descrieri ale stărilor bine definite (poziție, viteză unghiulară etc) și pentru stările de observație bine definite în timp.
Filtrul Kalman este o particularizare a filtrului Bayesian recursiv pentru cazul în care densitatea de probabilitate a stării este de tip gaussian. Punctul de plecare al acestui algoritm îl reprezintă definirea unui model pentru starea care urmează a fi estimată:
Unde este vectorul stare de interes, este intrarea cunoscută, de la un senzor, este o variabilă aleatoare ce descrie incertitudinea în evoluția stării, iar , , sunt matrici care descriu starea, controlul și zgomotul.
Filtrarea Kalman extinsă și filtrarea de particule pentru fuziunea zenzorială în dezvoltarea interfețelor de control inteligent al roboților mobili
Controlul mișcării unui robot mobil și urmărirea eficientă a traiectoriei se bazează în general pe estimarea vectorului de stare a robotului. Precursoarele filtrelor Kalman sunt filtrele Gaussiene și non-parametrice, numite și estimatori de stare. Este nevoie de cunoșterea vectorului de stare pentru a putea determina algoritmii de control în buclă închisă pentru roboții mobili. Estimarea vectorului de stare a unui robot se face folosind algoritmii de filtrare. Estimarea stării pentru un sistem neliniar cu zgomot non-gaussian nu poate fi exprimată sub forma unei bucle de reglare în buclă închisă. Soluțiile cele mai cunoscute se bazează pe aproximări. Una dintre aceste exprimări este modelul liniar al filtrului extins Kalman (EKF).
Filtrarea Kalman extinsă sau filtrul Kalman extins reprezintă un algoritm de estimare incremental care folosește optimizări prin metoda celor mai mici pătrate, o metodă care a mai fost folosită cu succes și în cadrul rețelelro neurale și în cazul metodelor de fuziune de date.
Prezentăm în continuare modul în care este folosită filtrare Kalman extinsă în localizarea unui vehicul autonom, folosind informații ce provin de la mai mulți senzori. Această metodă a fost optimizată pentru algoritmul de conducere pentru roboții mobili, algoritm care face obiectul acestei teze de doctorat.
Pentru acest caz particular, vectorul de stare a fost exprimat printr-o variabilă gaussiană aleatoare ce este transmisă ulterior sistemelor liniare de ordinul I sau sistemelor neliniare ce conțin așgoritmul de control. Aproximarea stării poate să ducă în unele cazuri la o reprezentare neconcludentă a funcțiilor neliniare amintite anterior. În acest caz, filtrele devin divergente și rezultatele lor sunt neconcludente.
Complementar, pentru a preîntâmpina aceste situații, se introduce un nivel suplimentar de filtrare, o nouă funcție neliniară pentru filtrare, numită ”filtrarea de particule” (PF). Rezultatul a fost o creștere a peformanțelor față de abordarea inițială a filtrării neliniare. PF poate estima cu o precizie ridicată stările sistemului când avem mai mulți vectori de stare care pot să evolueze în paralel. Acești vectori ai stărilor care pot evolua în același timp sunt numiți și particule. Inițial această metodă nu a fost foarte populară din cauza prblemelor întâmpinate la implementarea în mediul real, era nevoie de putere computațională mare pentru a rula în timp real aceste stări paralele. Din punct de vedere matematic, algoritmul filtrării de particule se aseamană cu algoritmii genetici.
Pentru început trebuie să definim observatori de stare liniari. Presupunem că sistemul dinamic liniar este de forma:
Unde este vectorul de stare al sistemului, este controlul pe intrare și este ieșirea sistemului. Într-un sistem fizic, nu toate elementele vectorului de stare sunt complet măsurabile, fie din cauze naturale (din cauza structurii sistemului), fie din cauze economice (costul ridicat al senzorilor de un anumit tip face uneori ca aceștia să nu poată acoperi toate posibilitățile). În acest caz, vectorul de stare a sistemului poate fi construit folosind secvența de ieșiri măsurate și secvența de intrare și control . În aceste condiții, reconstrucția vectorului de stare se reduce la a defini o pereche de metrice (A, C). pentru sistemele dinamice și liniare, păstrăm principiul separării:
Facem presupunerea că vectorul de stare este complet cunoscut
Observatorul de stare este proiectat pentru acele variabile de stare care nu pot fi măsurate în mod direct.
Pentru sistemele dinamice cu timp continuu, ecuația de mai sus se poate rescrie sub forma:
Din această ecuație de poate observa că observarea de stare liniară folosește ecuația de stare-spațiu pentru sistemul dinamic, la care se adaugă termenul , unde este semnal rezidual și reprezintă diferența dintre măsurată în timp real și estimarea ieșirii .
Definim eroarea vectorului de stare ca fiind , în acest caz, observarea de stare devine:
Unde . Selectarea câștigului K, reprezintă problema principală în proiectarea observării de stare, întrucât matricea care definește dinamica erorii de estimare să fie strict pozitivă.
Matricea de câștig K poate fi aleasă în urma rezolvării unei probleme de optimizare, problemă care la final ne oferă filtrul Kalman. În cazul de față, câștigul K este calculat sub forma:
Unde matricea de covarianță a erorii estimate P se găsește printre soluțiile cu timp continuu ale ecuației Ricatti:
În această ecuație matricile Q și R sunt matricile de covarianța ale zgomotului măsurat ale procesului, iar este problema de control optim pentru sistemul dat.
În Anexa 2 este descrisă rutina Matlab care scoate în evidență avantajele și modul în care funcționează filtrarea Kalman. Astfel, în graficul rezultat în urma simulării software, se pot vedea, în același timp, ambele reprezentări, cea brută și cea filtrată.
Un caz particular al acestui tip de filtrare îl reprezintă filtrare Kalman extinsă și distribuită. Este cunoscută și sub numele de filtrarea extinsă a informației și calculează fuziunea estimărilor de stare care provin de la filtrarea Kalman extisă. Pentru ca acest lucru să fi e posibi, începem analiza la nivel local al filtrării Kalman extinse. Pentru acest lucru, considerăm un sistem de stare neliniar care poate fi exprimat sub forma:
Unde este vectorul de stare al sistemului și este ieșirea sistemului, și sunt necorelate, afectate zgomot Gaussian. Introducem matricile de covarianță și . și , operatorii din ecuațiile de mai sus sunt de forma:
Presupunem că și au pasul x de discretizare suficient de mic, astfel încât să poate fi descompus în serie Taylor. Pe baza descompunerii în serie liniară Taylor, este extins în jurul lui
Unde este Jacobianul lui calculat în
În mod similar, este extins în serie Taylor în jurul lui
Unde este estimarea vectorului de stare înainte ca măsurarea la momentul k, iar este estimarea actualizată a vectorului de stare după măsurarea la momentul k. În aceste condiții, Jacobianul este:
Pe baza acestor expresii sunt create aproximări de ordinul I ale lui și . Rezultă astfel versiunea liniarizată a sistemului descris la început:
Pe baza acestei ecuații, EKF poate fi descris în felul următor: notăm estimarea vectorului de stare la momentul k. Condițiile inițiale sunt și . În acest ca, avem:
Actualizarea datelor măsurate:
Actualizarea la momentul k+1:
Diagrama bloc a buclei de filtrare Kalman extinsă este reprezentată sub forma:
Fig. 4.1-1 Filtrarea Kalman extinsă
Pentru a exemplifica modul în care funcționează acest tip de filtrare, considerăm navigarea unei platforme autonome în care rezultatele de la senzori sunt filtrate folosind acest tip de filtrare.
Presupunem că avem două modele de roboți care au fost monitorizate de câte un post de control. Fiecare dintre posturile de control are implementat câte un filtru Kalman pentru a filtra datele rezultatele colectate în procesul de urmărire. Datele rezultate de la senzorii montați pe fiecare dintre cei doi roboți trec printr-un proces de fuziune, astfel încât fiecare dintre cele două filtre locale a devenit capabil să producă estimări ale mișcării robotului.
Estimarea de stare pe baza fuziunii senzoriale este prezentată schematic astfel:
Fig. 4.1-2 Createa estimării de stare pe baza fuziunii senzoriale
Estimările de stare care provinde la filtrele Kalman extinse au fost posibile folosind matrici de informații locale. Ecuațiile cinematicii pe baza cărora se mișcă un autovehicul pot fi exprimate sub forma:
Unde este viteza robotului, este lungimea acestuia, este unghiul dintre axa robotului și axa și este unghiul de conducere, iar este viteza unghiulară.
Rezultatele în urma sistemului de măsură oferă rezultatele în coordonate pe durata unei perioade de eșantionare T. în funcție de mediul în care operează, senzorii de monitorizare pot introduce o eroare incrementală ceea ce implică estimări eronate ale orientării . Pentru o acuratețe ridicată se folosesc datele de măsură de la GPS sau de le senzorii vizuali.
Orice senzor de monitorizare introduce o eroare incrementală, eroare care se traduce într-un rezultat eronat al orientării . Pentru ămbunătățirea localizării sunt folosite datele de măsură provenite de la senzori GPS sau vizuali. Doar rezultatele care vin de la GPS nu reprezintă o soluție viabilă întrucât semnalul este intermitent. Pentru o localizare de succes este nevoie de fuziunea datelor provenite de la GPS cu datele măsurate de la IMU sau cu datele provenite de la senzorii vizuali.
Definim sistemele de coordonate xOy si x’Oy’, unde x’Oy’ se obține prin rotirea lui xOy cu un unghi . Coordonatele în care se milcă robotul este (x, y), iar coordonatele care provin de la GPS sau de la senzorii vizuali sunt (x’, y’). GPS-ul sau senzorii vizuali sunt într-un plat orientat cu un unghi .
Fig. 4.1-3 Proiecția sistemului urmărit pe axele de coordonate
Traductoarele sunt poziționate pe roțile motoare și măsoară unghiurile față de sistemul de referință, în timpul unei perioade de eșantionare T.
Pentru manevre efectuate la altitudini constante, datele de măsură sunt considerate distanțele măsurate între robot și suprafața de referință Pj. Coordonatele planului Pj, suprafața de referință, sunt Pnj și Prj, unde Prj este distanța dintre plan și punctul de referință O, iar Pnj este unghiul dintre normala planului și axa x.
Traductoarele montate pe roțile robotului introduc erori incrementale, erori care introduc o eroare a estimării orientării . Pentru creșterea acurateței localizări sunt folosite și estimări de la un sonar. Se ia în calcul și distanța de la planul Pj la sonarul i.
Fig. 4.1-4 Proiecția sistemului urmărit pe axele de coordonate în care ținem seama și de poziția sonarului
În momentul în care vorbim de o platformă multirobot și cu mai multe unități de procesare este neapărată nevoie de o filtrare senzorială, EIF sau EKF sau o combinație între acestea. Ca o comparație între cele două, EIF este mai robustă, în timp ce EKF este mai centralizată. În cazul sistemului nostru, dacă o unitate locală cedează, estimarea de stare este în continuare posibilă și precisă în localizare, la fel de bine ca și urmărirea unei traiectorii dorite.
Problema comunicării înter unitațile de procesare rămâne valabilă, chiar dacă avem mai multe unități de procesare și de măsură distribuite. Cea mai mare parte a estimării de stare se face la nivel local. Între unitățile de procesare sunt distribuite doar matricile de informații si vectorii de poziție.
Rezultatele de măsură ce provin de la sonar pot fi afectate de zgomot alb Gaussian. Acestea pot fi în egală măsură afectate de ecou. În acest sens, definim coordonatele inerțiale xOy și x’Oy’, coordonate care se obțin din xOy prin deplasare cu un unghi . Facem notarea (x, y) coordonatele centrului roților raportate la xOy și cu (x’i, y’i), coordonatele sonarului i raportate la x’Oy’. Orientarea sonarului i față de x’Oy’ este , motif pentru care, raportarea față de sistemul de referință xOy se face în sistemul (xi, yi) și avem orientarea . (xi, yi) se pot defini folosind relațiile:
Așa cum reiese din figura anterioară, fiecare plan Pj din spațiul robotului se poate reprezenta prin coordonatele și , unde:
este distanța de la normala planului față de originea O
este unghiul dintre normala planului și axa x
Sonarul i este în poziția , față de sistemul inițial de coordonate xOy și are orientarea . Folosind aceste notații, distanța de la sonarul i până la planul Pj se poate reprezenta folosind coordonatele și în acest fel:
Unde și este lățimea spectrului sonarului. Folosind o perioadă de eșantionare constantă , avem ecuația de măsură
Unde este vectorul care conține datele măsurate de sonar, iar este zgomotul alb . Dimensiunea lui este și depinde de numărul de senzori ai sonarului. Acest vector se poate descompune în doi subvectori:
unde , unde este numărul de sonare și este distanța până la planul Pj, iar este numărul de suprafețe. Definim vectorul de măsură, un vector care are la ieșire funcția , astfel:
Ținând cont de acestea, definim starea robotului în felul următor: și matricea de control a robotului:
Pentru simplificara calculelor, am ales numărul de sonare și numărul de plane . Luând în calcul aceste simplificări, matricea de control a robotului devine:
Astfel, pentru a putea obține filtrul Kalman extins, este nevoie să liniarizăm modelul cinematic al robotului și să îl estimăm prin și peste care plaicăm matricea de control .
Obținem în acest sens estimările de măsură din partea filtrului Kalman extins:
Și estimările de timp:
Unde:
Considerăm , unde am ales si
, adica:
Pe baza acestor expresii, vecinătățile robotului pot fi exprimate sub forma:
adică:
Fig. 4.1-5 Particularizarea robotului pentru un sonar
Algoritmul de control pentru robotul la care facem referire este un algoritm de tip feedback. Condițiile inițiale de la care am plecat în simulările din Matlab sunt:
Poziția inițială a robotului (față de axele de coordonate xOy): , , i
Poziția sonarului față de axele de coordonate x’O’y’: , ,
Pozitia planului P1:
Zgomotul sistemului:
În urma filtrării Kalman avem un câștig care este o matrice de forma
Fig. 4.1-6 Poziția robotului: a) măsurată; b) estimată
Fuziunile pe care le obținem în urma aplicării filtrelor EKF compensează erorile estimărilor locale ale stării.
Filtrarea Klaman extinsă (EKF) folosită în mai pentru multiplexarea datelor ce provin de la mai multe tipuri de senzori are ca rezultat un vector de estimare a stării . Se poate observa că avem un defazaj la început între traiectoria reală și cea estimată, iar după aplicarea filtreloe, acest defazaj este minimizat.
Rezultatele performantelor EIF in estimarea vectorilor de stare a sistemului format di mai multi roboti de tip platforma cu unitati de procesare distribuite sunt prezentate in fig 11. Folosind EKF distribuite si si fuziunea prin EIF, este mai robusta comparatia cu EKF centralizata:
Daca o unitate locala de procesare cedeaza, atunci estimarea de stare este in continuare posibila si poate fi folosita cu acuratete in localizarea robotilor, la fel de bine ca urmarirea unei cai de izbor dorite
Depasirea comunicatiilor ramane joasa chiar si in cazul in care avem un numar mare de unitati de masura distribuite, pentru ca partea cea mai importanta a estimarii de stare se face local si numai matricile de informatii si vectorii de stare sunt comunicate intre unitatile locale
Agregarile facute la nivel local de EKF compenseaza deviatiile estimarilor de stare a filtrelor locale.
Ca o concluzie, se poate observa ca, daca la incepu este un defazaj intre traiectoria dorita si cea reala, descrisa eede robot, dupa aplicarea filtrarilor, eroarea este minimizata.
Filtrarea Kalman în timp continuu a modelului liniar pentru estimarea de stare aplicata în dezvoltarea interfețelor de control inteligent al roboților mobili
Pentru a pune în lumină această filtrare, presupunem următorul sistem dinamic, liniar, în timp continuu:
Unde este vectorul de stare al sistemului, iar este ieșirea sistemului. Matricile sistemului A, B și C, pot fi variabile în timp, iar și reprezintă zgomotul alb, necorelat. Pentru zomotul de proces, avem matricea de covarianță , iar pentru zgomotul măsurat avem matricea de covarianță . În aceste condiții, filtrul Kalman devine un observator de stare liniar, care poate fi scris sub forma:
Unde este estimarea optimă a stării , iar este matricea de stare a erorii estimate a vectorului de stare în care punem condiția inițială . Ținând seama de aceste condiții, ecuația Ricatti pentru calculul matricii de covarianță devine:
Și are aceeași formă ca în cazul filtrării extinse. Pentru a soate în evidență avantajele acestei meto de de fitlrare a fost scrisă rutina Matlab, descrisă în Anexa 1, care evidențiază avantajele acestei metode de filtrare. Sunt reprezentate în același timp si semnalele brute și cele filtrate pentru a evidenția diferențele.
Pentru a scoate în evidență diferențele, pentru rutina Matlab descrisă în Anexa 1 am pus condițiile inițiale:
x0 = [0;2];
A = [0 1;0 0];
B = [0;1];
C = [1 0];
Q = eye(2);
R = 1;
Fig. 4.2-1 Simularea Matlab a filtrării Kalman
La aceasta scară, cele 2 grafice pare că se suprapun. Pentru a observa mai în detaliu ceea ce se întâmplă cu adevărat, mărim scara de reprezentare:
Fig. 4.2-2 Simularea Matlab a filtrării Kalman la o scară mai mare
În ambele grafice sunt trasate grafic poziția și viteza. După ce am mărit scara de prezentare putem vedea o eroare de estimare foarte mică.
Reprezentate grafic, semnalele reale și cele rezultate în urma discretizării și filtrării Kalman arată în felul următor (avem un semnal real și patru stări de observare):
Fig. 4.2-3 Reprezentarea grafică a stărilor reale și estimate
Filtrul Kalman cu timp discret pentru modelul liniar ale estimării de stare aplicata în dezvoltarea interfețelor de control inteligent al robotilor mobili
În cazul filtrării cu timp discret, sistemul dinamic este presupus a fi exprimat sub forma unui model de stare cu timp discret, sub forma unui sistem:
Unde este un vector de dimensiune m, este vectorul zgomotului de proces, tot de dimensiune m, iar este o matrice reală de dimensiune . Mai mult decât atât, este ieșirea măsurată și este un vector de dimensiune p, C este o matrice reală de dimensiune , iar este zgomotul măsurat. Presupunem că zgomotul procesului și zgomotul nu sunt corelate.
Trebuie precizat că algoritmul filtrului de distribuție Kalman (EKF) extins cu timp discret are o imperfecțiune și anume, distribuția, denumită și densitatea în timp continuu, a unei variabile aleatoare, nu este una normală, întrucât a făcut trecerea prin transformări neliniare. În acest caz, algoritmul EKF este o estimare a stării la momentul t care doar aproximează cu o precizie ridicată legea lui Bayes, folosind tehnica liniarizării.
Date fiind aceste precizări, dezvoltarea filtrului Kalman extins pornește de la modelul liniar standard al unui sistem dinamic în spațiul stărilor:
Acest model liniar reprezintă formula de calcul recursiv utilizată în cazul filtrului Kalman adaptiv standard. Formulele de mai sus scot în evidență faptul că estimarea medie pătratică minimă a stării unui sistem dinamic liniar, poate fi calculată prin adăugarea la estimarea stării anterioare a sistemului multiplicată cu matricea de tranziție a stării anterioare a sistemului
Din această ecuație deducem că, dacă știm valoarea estimării într-un anumit punct (fiind vorba de estimare în timp discret, avem estimări în anumite puncte, care corespund estimărilor la un anumit moment de timp în cazul estimărilor în timp continuu), putem determina estimarea filtrată corespunzătoare lui prin multiplicarea lui ci inversa matricii de stare . Soluția problemei predicției într-un anumit punct este estimarea pătratică medie minimă . Date fiind aceste precizări, matricea de câștig Kalman devine:
Unde este un factor de corecție pentru starea
Vectorul procesului de intrare poate fi scris sub forma unor înșiruiri de observații . Parametri cunoscuți:
Matricea de tranziție a stărilor
Matricea de măsurare:
Matricea de autocorelație a vectorului zgomot de proces:
Matricea de autocorelație a zgomotului de măsurare:
Unde pentru toare matricile mai sus definite.
Date fiind aceste matrici, algortimul de filtrare Kalman se poate scrie sub forma:
Unde
Rezultă de zici că
Înseamnă că la momentul anterior, avem:
Pentru un sistem dinamic, folosim modelul alternativ:
Unde este un vector cunoscut. În acest caz, ecuațiile sistemul de filtrare Kalman ramân la fel, mai puțin prima ecuație:
Din punct de vedere schematic, fltrarea Kalman cu timp discret poate fi exprimată în felul următor:
Fig. 4.3-1 Reprezentarea Schematică a filtrării Kalman cu timp discret
Pentru sisteme mici în care se dorește urmărirea într-un singur plan, filtrarea Kalman nu este indicată. Este un algoritm mai complicat de estimare care implica un efort computațional crescut. Codul sursă care scoate în evidență diferențele între cele două tipuri de estimări este detaliat în Anexa 3.
Pentru sisteme mici, in cazul in care avem de urmarit miscarea intr-un singur plan, filtrarea Kalman nu este indicata, din cauza algoritmului mai complicat de estimare, asa cum se poate vedea si in Anexa 3.
Fig. 4.3-2 Starea reală și starea estimată folosind Kalman cu timp discret
Eroarea estimării Kalman RMS (root mean square)= 14.7965
Eroarea estimării H-infinit RMS = 11.2922
Filtrarea Kalman extinsă are avantaje multiple în cazul sistemelor multiple care urmărescu un robot în mișcare și care primesc informații de la mai multe unităși de procesare și unde este aplicate și un proces de fuziune senzorială la intrare.
Filtrarea Klaman distribuită cu particule Sigma-Point aplicată în dezvoltarea interfețelor de control inteligent al roboților mobili
Un sistem robot poate fi descompus în mai mulți roboți distribuiți. Estimarea finală se face printr-o fiziune a estimărilor de la roboții care compun întreaga platformă. Acest tip de fuziune se numește fuziune de tio Sigma-Point. Acest lucru este posibil folosind filtrarea Sigma-Point distribuită, denumită și Filtrarea Informației Nesortate (UIF).
Fiecare filtru Kalman Sigma-Point generează o estimare a vectorului de stare al robotului prin fuziunea datelor măsurate de la senzorii distribuiți. Este o extensie a modului în care funcționează filtrarea Kalman extinsă. În cazul de față nu este nevoi de calculul Jacobianului sistemului de ecuații. Aceasta abordare de tip Sigma-Point devine astfel pretabilă pentru sistemele de tip black-box, în care întânim una din cele două situații:
Expresiile analitice ale dinamicii sistemului nu sunt disponibile
Expresiile alalitice ale dinamicii sistemului sunt într-o formă care nu permit liniarizarea facilă
În aceste situații abordarea este diferită pentru calcului estimărilor posterioare de ordinul 1 sau 2 a variabilelor aleatoare care provin din transformările neliniare. Distribuția este reprezentată printr-o variabilă Gaussiană aleatoare, dar este specificat un set minim de eșantioane alese în mod determinist ponderat. În acest fel, alforitmuul Sigma-Point este descris sub forma:
Se calculează un set de puncte sigma (numite și eșantioane ponderate) folosind metoda celor mai mici pătrate și matricea de covarianță a vectorului de stare al sistemului. Setul de puncte sigma trebuie să reprezinte momentele de ordin I și II ale variabilelor.
Punctele sigma sunt exprimate prin intermediul funcțiilor neliniare; nu sunt folosite derivații analitice pentru a genera seturi de puncte sigma anterioare momentului la care se face referire
Pentru punctele sigma măsurate sau ponderate sunt calculate prin aproximare statisticile posterioare folosind funcții ce se pot urmări. În mod normal aceste statistici sunt sub forma unor eșantioane ponderate ale punctelor sigma posterioare.
Viziunile privind punctele sigma diferă în funcție de tehnicile de eșantionare folosite. O tehnică de eșantionare este metoda Monte Carlo ca și metodă de filtrare a particulelor, metodă care presupune un număr semnificativ mai mare de puncte de eșantionare pentru o distribuție de stare mai precisă. Abordarea extrem de simplă introdusă de punctele sigma implică aproximări posterioare cu o acuratețe ridicată pentru toate intrările neliniare de tip gaussian. Pentru intrările non gaussiene aproximările sunt calculate folosind funcții neliniare de ordin 2. Cel mai mare obstacol e reprezentat de alegerea factorilor de scalabilitate.
Un caz particular de filtrare Kalman cu puncte sigma este filtrarea Kalman nefiltrată sau filtrul Kalman nefiltrat (UKF). UKF este un algoritm cu filtrare nesortată care folosește filtrarea pentru calculul soluțiilor aproximate:
Unde este vectorul de stare al ssitemului, sunt matrici măsurabile, este un zgomot de proces Gaussian și este un zgomot gaussian al procesului de măsurare. La momentul inițial, vectorul de stare este , iar componenta principală și covarianța stării inițiale sunt , respectiv .
Operațiile pe care algoritmul UKF le face sunt descrise astfel:
Considerăm un set de puncte sigma din coloanele matricii de dimensiune și notăm cu starea de covarianță a stării curente. Punctele sigma sunt de forma astfel:
Calculăm ponderile asociate:
Unde și sunt parametri de scalare, iar , și k sunt constante. Matricea este matricea stării de covarianță a stării x.
Fiecare punct sigma este transformat sub forma:
Pentru z estimările principale și covarianța se calculează astfel:
Varianța pentru x și z este estimată în acest fel:
Matricea rădăcină pătrată pentru matricea pozitiv definită este o matrice de forma , adică . O posibilă metodă de calcul pentru această ecuație este SVD (singular value decomposition), adică descompunerea în valor simple.
Ca și în cazul filtrării Kalman extinse și a filtrării de particule, filtrarea Kalman nesortată constă într-o stare de predicție (ajustări de timp) și într-o stare de corecție (ajustări de măsură).
Pentru starea de predicție calculăm starea principală de predicție și covarianța prezisă în felul următor:
Pasul următor îl reprezintă calculul câștigului în filtrare , a stării principale , rezultatele acestora fiind esențiale pentru datele măsurate
Procesul de filtrare începe de la valoarea principală și de la covarianța . Estimările vectorului de stare, estimări făcute folosind algoritmul de filtrare Kalman nesortat este reprezentat schematic în felul următor:
Fig. 4.4-1 UIF – Filtrarea Kalman nesortată
Filtrarea informației nesortate (UIF) efectuează fuziunea estimărilor de stare oferite de filtrarea Kalman nesortată prin ponderarea acestora cu matrici ale informației locale (inversele matricilor de covarianță ale vectorilor locali, calculate în mod recursiv). Filtrul informației nesortate sunt derivate mai apoi cu introducerea unei erori liniare. Considerăm un vector de stare complementat și un vector de zgomot de proces. Introducem matricea de covarianță asociată:
,
Ca și în cazul filtrării Kalman nesortate, este generat un set de puncte sigma nesortate
Unde este un pas de scalare, sunt parametri constanți. Ponderile corespunzătoare pentru principal și covarianță sunt definite ca în cazul filtrării Kalman nesortate:
Unde este un parametru constant. Ecuația de predicție a filtrării informației presupune calculul matricii de informație a vectorului de stare a informației, astfel ecuația de mai sus devine:
Unde sunt vectori de stare preziși în momentul în care s-au folosit vectorii de timp tip puncte sigma în ecuația de stare
Matricea de covarianță a stării:
EIF este bazat pe modelul dinamic liniar și pe inversa matricei de covarianță a vectorului de stare. In EIF nu sunt prezente liniarizările dinamicii sistemului, drept pentru care UKF nu paote fi inclusi în ecuațiile EIF. Presupunem că ecuațiile sistemului prezentat inițial se pot mapa într-o funcție liniară a datelor principale și de covarianță. Notăm ca fiind covarianța sistemului și avem:
Unde și este Jacobianul ieșirii ecuației . Înmulțind covarianța prezisă și inversa acesteia la dreapta matricii de informație, rezultă:
Unde
Fuziunea datelor ce provinde la mai multi senzori, apartinand mai multor platforme s-a regasit intr-o gama larga de aplicatii civile si militare cum ar fi ghidarea locala a robotilor. In ultimii ani s-a pus foarte mult accent pe urmarirea uniu obiect in miscare pe mai multe planuri, ceea ce inseamna ca avem la dispozitie date care nu puteau fi obtinute in cazul in care miscarea s-ar fi efectuat doar intr-un singur plan.
Pe langa filtrarea Kalman, care este cea mai buna dintre toate metodele de fusiune de date, se mai dezvolta si alte strategii. Doua arhitecturi de integrare foarte des intalnite, fuziunea centralizata si cea distribuita, au fost intens studiate in ultimele doua decade. Intre toate, arhitectura centralizata este optima din punct de vedere teoretic si relativ simplu de implementat, latimea de banda pentru comunicatii trebuie sa fie suficient de mare pentru a putea trimite datele masurate unitarii centrale, ceea ce implica un cost computational destul de ridicat. Pentru fuziunea distribuita, numita si vector de stare sau fuziunea de urmarire, se folosesc un grup de filtre Kalman in paralel pentru a obtine estimari bazate pe senzori locali, ceea ce implica un cost computatinal redus.
Pentru sistemul de urmarire multisenzorialaw, multiplatforma cu arhitectura distribuita, asa cum se poate vedea si in figura de mai sus, fiecare senzor primeste datele masurate pentru a putea face estimari ale procesului local, care mai tarziu trimite la uitatea centrala de prelucrare de pe fiecare platforma. In acest caz, ambele unitati de fuziune au estimari astfel incat sa putem implementa pe fiecare platforma, in mod independent, scheme de tip feedback. In comunitatea de urmarire a traiectoriei, abordarea cu un singur model este folosita doar in cazul in care este tinte de urmarit cu comportamente cinematice fixe, in timp ce, pentru tinte cu multiple comportamente cinematice, este preferat un algoritm cu mai multe modele. Estimatorul interactiv cu modele multiple (IMM), care este cel mai des intalnit, este calculat pe procesoarele locale in cadrul sistemelor de urmarire multiplatforma. Principala provocare pentru modelele de fuziune multipla o reprezinta faptul ca estimarea fuziunii anterioare este necesara in estimarea fuziunii prezente, cat timp aceastanu se poate afla din modelele locale. In unele cazuri se face referire la teoria probabilitatilor pentru a putea determina pozitia la un moment dat. Pentru urmarirea unui singur obiect in miscare, se pune problema asocierii datelor probabilistice (PDA) si asocierea datelor probabilistice de legatura (JPDA). Toate aceste rezultate se bazeaza pe filtrarea Kalman cu toate variantele ei, iar zgomotul trebuie sa fie alb sau Gaussian si care sa aiba o variatie bine determinata. O alternativa o reprezinta filtrarea H_∞, dar si aceasa implica o cunoastere a probabilitatii de aparitie a zgomotului. Mai mult decat atat, filtrarea H_∞ spera sa minimizeze cel mai rau efect al perturbatiilor si tehnicile au fost studiate in mai multe domenii, cum ar fi inlaturarea zgomotului activ, reconstructia semnalului.
Este posibil sa estimam vectorii de stare pentru robotii distribuiti care sunt parti ale unui sistem format din mai multi roboti de tip platfoma printr-o fuziune a estimarilor oferite de filtrele Kalman Sigma-Point. Acest lucru se poate face folosind filtrarea Kalman Sigma-Point distribuita, cunoscuta si sub numele de filrarea informatiei nesortate (UIF). Pentru inceput, va fi explicata filtrarea Kalman Sigma-Point. Fiecare filtru Kalman Single-Point genereza o estimare a vectorului de stare al robotului prin fuziunea datelor masurate de la senzorii distribuiti. Acestea suplinesc modul in care se executa filtrarea Kalman Extinsa. Spre deosebire de EKF, nu este nevoie de calculul analitic al Jacobianului sistemului de ecuatii. Acest lucru face ca abordarea de tip sigma-point sa se plieze pe aplicatie in modele de tip „black box”, unde expresiile analitice ale dinamicii sistemului fie nu sunt disponibile, fie nu sunt intr-o forma care sa permita care sa permita liniazarea facila. Acest lucru se obtine prin abordari diferite pentru calculul statisticilor posterioare de ordinul 1 sau 2 a variabilelor aleatoare care verifica transformarile neliniare. Distributia de stare este reprezentata inca o data printr-o variabila Gaussiana aleatoare, dar este specificata folosind un set minimal de esantioane alese in mod determinist ponderat. Abordarea de baza sigma point poate fi descrisa astfel:
Un set de esantioane ponderate (sigma points) sunt calculate in mod determinist folosind descompunerea celor mai mici patrate si matricea de covarianta a vectorului de stare a sistemului. Ca o cerinta minima, setul de puncte sigma trebuie sa capteze complet momentele de ordin I si II ale variabilelelor aleatoare. Momentele de ordin ridicat pot fi capturate cu costul folosirii mai multor puncte sigma
Punctele sigma se propagpaprin intermediul functiilor neliniare cu valoarea adevarata, folosind doar functionalitati adevarate, adica nu sunt folosite derivatii analitice pentru a generaseturi de puncte sigma posterioare
Usnt calculate statisticile posterioare (sunt aproximate) folosind functii ce se pot urmari pentru punctele sigma si ponderate care sunt propagate. In mod normal, acestea iau forma unor esantioane simplu ponderate ale punctelor sigma posterioare
De retinut este faptul ca abordarile privind punctele sigma difera substantial de tehnicile de esantionare general stocastice, cum ar fi integrarea Monte Carlo (de exemplu metodele de Filtrare a particulelor), care au nevoie de un numar semnificativ mai mare de puncte de esantonare in incercarea de a propaga o distributie de stare precisa (posibil non-gaussiana). Abordarea extrem de simpla de tip puncte sigma are ca rezultate aproximari posterioare care au o acuratete pana la ordinul 3 pentru intrarile gaussiene pentru toate neliniaritatile. Pentru intrarile non gaussiene, aproximarile sunt calculate cel putin la ordinul 2 cu acurateti de ordinul 3 sau mia mari al emomentelor determinate de alegerea greutatilor sisi factorilor de scalare.
În anexa 6 sunt presentate simulări în LabView care arată cum poate fi implementat un astfel de sistem. Avem un robot care trebuie să urmărească o anumită traiectorie. Senzorii de la care se citesc datele sunt plasați în partea din față a robotului. În mediul grafic sunt presentate în mod grafic, datele care provin de la senzorii de măsură și datele rezultate în urma aplicării filtrului Kalman.
Fig. 4.4-2 Urmărirea traiectoriei folosind filtrarea Kalman distribuită
În cele ce urmează va fi detaliat fiecare modul în parte și va fi explicat modul în care este implementat modelul matematic.
Înterfața cu utilizatorul arată în felul următor:
Fig. 4.4-3 Interfața UIF care permite utilizatorului ajustarea parametrilor
Este interfața care permite ajustarea parametrilor de calcul și în care stabilim condițiile inițiale.
În cele ce urmează va fi detaliat fiecare modul în parte și va fi explicat modul în care este implementat modelul matematic.
Este prezentat în partea centrală algoritmul, în mod schematic. În partea de jos este zona de control în care se pot ajusta condițiile inițiale.
Fig. 4.4-4 Diagrama bloc în LabView pentru UIF
In cele prezentate mai sus a fost analizata problema localizarii si navigatiei autonome a unui sistem robot bazat pe o filtrare distribuita de-a lungul unei retele de senzori. S-a pus accent in special pe filtrarea de particule distribuita pentru ca abordarea estimarii de stare distribuite nu este afectata de prezenta unei distributii de zgomot Gaussian. S-a considerat ca m platforme sunt monitorizate de n statii diferite de la sol. Conceptul per ansamblu a fost ca la fiecare statie de monitorizare filtrele sa fie folosite sa urmareasca fiecare platforma prin fuzionarea datelor de masura care sunt oferite de numerosi senzori, in timp ce prin fuziunea estimarilor de stare de la filtrele locale distribuite, o estimare de stare agregatapentru fiecare robot ar trebui sa fie obtinuta.
Fig. 4.4-5 Referința sistemului
În stânga acestui grafic sunt cordonatele de referință, coordonate pe care sistemul nostrul trebuie să le urmărească. Este introdus ți un simulator de zgomot de ordinul II pentru a putea simula comportamentul în timp real al robotului
Sunt definite caracteristicile inițiale ale robotului (viteza și coordonatele) în sistem cartezian, în spațiul robotului.
Fig. 4.4-6 Valorile inițiale ale coordonatelor și ale vitezei
De la aceste valori se pleacă în urmărirea traiectoriei impuse la pasul anterior
În continuare este prezentat filtrul Kalman împreună cu modulul de fuziune senzorială, modul în care sunt adunate informațiile de la senzori și de la zgomotul simulat al mediului înconjurător și cel al instrumentelor de măsură.
Fig. 4.4-7 Diagrama bloc pentru filtrul Kalman
În ultimul modul, este afișată poziția actuală a robotului și poziția simulată pentru a scoate în evidență precizia Filtrului Kalman
Fig. 4.4-8 Afișarea rezultatelor reale și simulate
Sunt prezentate mai sus, la inceput filtrul de informatie extins si filtrul de informatie nesortat ca posibile abordari pentru fuziunea estimarilor de stare obtinute prin monitorizarea locala a statiilor, facan dpresupunerea ca aveam zgomot Gaussian. A fost aratat ca vectorii de stare obtinuti prin EIF si UIF pot fi folositi de on controller bazat pe platitudine care face ca platforma robot sa urmareasca traiectoria dorita. EIF este o generalizare a filtrarii informatiei in care filtrele locale nu schimba date masurate in forma bruta si le trimite unui filtru agregat matricile de informatii locale (matricile de covarianta inversa care pot fi asociate, de asemenea, matricei Fisher de informatie) si vectorii de stare ai informatiei locale asociate (produsul matricelor locale de informatii cu vectorii locali de stare). In cazul sistemelor dinamice neliniare, calculul matricei de informatii si a vectorilor de stare necesita liniarizarea ecuatiilor de observatie locale in spatiul starilor sistemului si este necesar calculul consecvent al Jacobianului matricilor.
In cazul filtrului infiormatiei nesortate nu se face liniarizarea ecuatiilor de observatie ale robotului. Aplicarea algoritmului de filtrare a infiormatiei este posibil printr-o liniarizare implicita care se face prin aproximarea matricei Jacobiene a ecuatiilor de iesire a sistemului prin produsul dintre inversa matricei de covarianta a vectorului de stare (matricea de informatii Fisher) cu matricea de cross varianta dintre vectorul de stare al sistemului si iesirea sistemului. Matricele de informatie locala si vectorii de stare ai informatiei locale sunt transferate la un filtru de agregare care calculeaza estimarea globala a vectorului de stare a sistemului.
Filtrul de particule distribuit (DPF) afot propus pentru fuziunea estimarilor de stare oferite de statiile locale de monitorizare (filtre locale) . Motivul folosirii DPF a fost ca se potriveste cu datele de masura non Gaussiene. Un obstacol in implementarea filtrarii de particule distribuita este acela ca particulele dintr-un set de particule (care corespund unui filtrul de particule local) nu au acelasi suport (nu acopera aceeasi suprafata si pointeza spre spatiul de esantionare) ca si particulele din alt set de particule (care sunt asociate unui alt filtru de particule). Aceasta se poate rezolva prin transformarea setului de particule intr-o mixtura Gaussiana si definid distributia de probabilitate globala pe un set suport comun de functii de densitate de probabilitate asociate filtrelor locale. A fost propusa o reesantionare de importanta ca sa deriveze distributiile de legatura ponderate dupa inlaturarea informatiei comune continuta in functiile de densitate de probabilitate ale filtrelor locale. Vectorul de stare care este estimat prin folosirea DPF a fost inca o data folosit de controlerul bazat pe platitudine pentru a face fiecare robot sa urmareasca o traiectorie data.
Comparand cu estimarea de stare centralizata si control, starea de estimarea distribuita propusa si schemele de control au avantaje semnificative:
Au toleranta la eroare; daca o unitate locala de procesare cedeaza, estimarea de stare se poate face cu acuratete
Incarcarea computationala este distribuita intre unitati de procesare locala si pentru ca nu este nevoie de schimbul unei mari cantitati de informatie, latimea de banda pentru comunicati asociata este mica.
In cazul EIF si UIF informatia transmisa intre unitatile locale de procesare ia forma unei matrici de covarianta a informatiei si a unor vectori de stare a informatiei. In cazul DPF, informatia transmisa intre unitatile locale de prcesare ia forma unei misturi Gaussiene. Performanta EIF si DPF a fost evaluata prin experimente simulate in cazul a 2 roboti monitorizati si navigate de la distanta de doua statii locale.
Prin comparatie DPF fata de EIF, prin experimente simulate s-a observat ca DPF reuseste mult mai precis sa faca mai multe estimari de stare (varianta mai mica) decat EIF si in mod consecvent face o mai buna urmarire a traiectoriei dorite.
Dezvoltarea interfețelor de control inteligent al robotilor mobili prin modelare și analiza cu rețele Petri
Rețelele Petri reprezintă o categorie specială de grafuri. Dacă la un graf obișnuit se cunosc mulțimea nodurilor și a arcelor acestuia, în cazul rețelelor Petri mulțimea nodurilor este înlocuită cu două mulțimi disjuncte:
Mulțimea locurilor este reprezentată prin cercuri
Mulțimea tranzițiilor este reprezentată prin bare verticale sau prin pătrate.
Arcele care compun o rețea Petri sunt unidirecționale. Un arc leagă doar o tranziție de un lof sau un loc de o tranziție. La o tranziție (loc) pot ajunge mai multe arce, la fel de la acestea pot pleca mai multe arce. Două locuri (tranziții) pot fi conectate între ele prin cel mult un arc. Acestea fiind spuse, rețelele Petri sunt comple definite de trei mulțimi: a tranzițiilor, a arcelor și a locurilor.
Fig. 4.5-1 Rețele Petri
În figura de mai sus, în dreptul fiecărui arc sunt trecute evaluările corespunzătoare. Avem astfel evaluare 2 pentru arcelel de la la și de la la , iar pentru restul evaluarea este 1. În mod matematic, putem exprima astfel:
Iar în mod matriceal, figura de mai sus poate fi exprimată sub forma:
Unde elementele negative indică faptul că o tranzație ”iese” din elementul corespunzător. Acolo unde sunt elemente nule în matrice, nu sunt relații directe între P și T. punctele roșii din imaginea prezentată mai sus prerezintă numărul maxim de tranzacții pe care îl poate suporta un loc sau o stare.
Construite inițial ca să rezolve problema aglomerației din aeroporturi, rețelele Petri se dovedesc a fi extrem de utile și în alte domenii, cum este robotica. După introducerea masivă a proceselor de automatizare în industria de manufacturare, adoptarea rețelelor Petri a făcut să scadă timpii de lucru cu 30-40%, fapt care a dus la nivel mondial la o puternică economisire a resurselor.
În cadrul acestor roboți, rețelele Petri au venit cu noi semne de întrebare la care a fost nevoie să se răspundă înainte ca acestea săa ajungă în producție. Toți parametrii roboților au trebuit re-cuantificați într-o formă mult mai complexă decât cea cu care fuseseră analizați înainte.
Cu noi noile metode, planificarea mișcărilor se transformă în găsirea algoritmilor care calculează în mod automat traiectorii continue pentru o mulțime de obiecte, unele dintre acestea fiind legate între ele. Această mișcare implică deplasarea de la o poziție la alta fără a intra în coliziune cu mediul înconjurător.
În cazul roboților cu masă fixă problema este mult simplificată. Este nevoie ca algoritmul să găsească o traiectorie fără coliziuni pentru brațul care se mișcă într-un spațiu bine definit.
Un grad sporit de dificultate îl reprezintă roboții autonomi. În cazul acestora, volumul de date rezultat de la senzori este unul extrem de ridicat și prelucrarea integrală a acestora implică o mare putere de calcul. Pentru a simplifica acești algoritmi, apelăm la funcții de filtrare a informației extinse, filtrarea Kalman.
O nouă abordare este cea care folosește rețele Petri și lanțuri Markov pentru controlul dinamic al buclelor de control, bucle care sunt responsabile pentru menținerea stabilității și îmubunătățirea performanțelor dinamice în timăul deplasării pe un teren denivelat, cu obstacole.
Cercetări experimentale ale strategiilor de control al roboților mobili autonomi dezvoltate prin platforma VIPRO
În ultimii ani, roboții mobili au căpătat o atenție deosebită în rândul comunității de cercetare precum și în industria producătoare, rezultând o dezvoltare deosebită din punct de vedere hardware și software. Câteva aplicații de mare interes pentru cercetători sunt: activități periculoase de detectie a minelor antipersonal, precum și alte dispozitive explozive, activități de supraveghere (“Remotec” a dezvoltat tehnologia “Marauder” care ulterior a condus la realizarea robotului Andros Mark V), activități de salvare în caz de calamități. În urma cutremurelor devastatoare din Japonia a fost dezvoltat un proiect internațional care reunește echipe de renume de cercetare din întreaga lume pentru realizarea robotilor de cautare și salvare sub numele de „RoboCup-Rescue Project”, împărțit în două sub-proiecte: unul de simulare multi-agent, utilizând un robot virtual, și al doilea axat pe dezvoltarea robotului real.
Arhitectura platformei versatile, inteligente si portabile VIPRO pentru dezvoltarea tehnicilor de inteligență artificială ale roboților mobili autonomi
Soluția tehnică pentru noua platformă prezentată în figura 5.1-1 conține principalele module ale platformei VIPRO, într-o structură cu arhitectură deschisă de control în timp real al roboților. Modulul de interfețe de control inteligent utilizează strategii avansate de control, adaptate mediului robotului, tip control extins (extenics), controlul neutrosofic, mecatronica adaptivă umană etc., implementate prin tehnici IT&C cu procesare rapidă și comunicații în timp real. Au fost proiectate și implementate pe platforma VIPRO următoarele interfețe de control inteligent: interfața de control neutrosofic al roboților (ICNs), interfața de control extins (ICEx) (Robot Extenics Control) și interfața de rețele neuronale (INN) pentru controlul dinamic hibrid forță poziție DHFP.
Fig. 5.1-1 Sistem cu arhitectura deschisa cu interfete inteligente (OAH) al platformei VIPRO
Sistemul de control se adresează unor medii robot distribuite, care au îm componența lor articulații, segmente de membre, toate echipate cu sezori ce trimit informații către echipamente periferice. Coumunicațiile dintre componentele enumerate anterior sunt asigurate de rețele LAN (pentru comunicații on-line) și CAN (pentru realizara controlului în timp real). Modulele / echipamentele periferice sunt conectate la mediul robot tot printr-o rețea de tip CAN din cauza latențelor scăzute de care are nevoie procesarea în timp real. Conectarea cu PC-ul de comandă se face în mod direct prin interfața serială, dar se poate realiza și prin rețeaua de tip LAN. Deși, în forma inițială, rețaua LAN era folositp pentru comunicațiile LAN off-line, în special wireless, ea poate fi folosită și pentru conectarea la unitatea de procesare. Acest lucru se traduce printr-o scalabilitate și o granularitate sporite. Astfel, sistemul poate fi accesat din extern pentru simularea de algoritmi noi.
Blocul logic care asigură procesarea cu arhitectură deschisă include și interfața de control multifuncțional pentru controlul în timp real și prioritizarea seturilor de informații care provin de la interfețele de control de funcții ICF 1-7. Aceste interfețe sunt conectate prin magistrala de date MD care are o viteză ridicată de transfer.
În raportul extins sunt prezentate elementele de bază ale unei structuri standard pentru un control, arhitectura in timp real deschis (OAH), care constau din PLC într-un OAH (PLC0) PC sistem descentralizat și distribuit (PC OPEN Architecture) controlere de poziție , care supraveghează mișcarea de deplasare pe fiecare axă de libertate, sistem multiprocesor PLC (PLC1-pLC5) modulul Interpol (ITP) – asigură o poziție între două puncte intermediare de generare referințe, modul de interfață de comunicație ( PC / PLC).
În raportul extins acestea sunt prezentate elementele de bază ale unei structuri standard pentru un control, în timp real arhitectură deschisă (OAH), constând din sistem PC PLC într-un controler descentralizat, distribuit OAH (PLC0) (PC arhitectură deschisă) poziția (CPki, i = 1-3, k = 1-6), care supraveghează mișcarea cursă a fiecărei axe de libertate, multiprocesor PLC (PLC1-pLC5) sub formă Interpol (ITP) – o poziție de generație între waypoint două referințe, modulul de interfață de comunicație (PC / PLC).
Modulul PC Mediu robot realizează dezvoltarea mediului 3D virtual al robotului, prin proiectarea CAD a robotului NAO și robotului de salvare RABOT, exportarea modelelor la platforma VIPRO de simulare virtuale 3D și simulări cu control în timp real în mediul virtual 3D, prin simulatoarele robotice Unity, Webot și Choregraphe. Interfața de comunicații multisenzori, conține magistrala multi-senzori și magistrala de comunicații Ethernet pentru comunicații la viteze ridicate între toate modulele platformei.
Sistemul de control clasic al robotului a fost proiectat ca un sistem cu arhitectură deschisă, distributiv, în care încărcarea informațională a controlerului principal a fost efectiv diminuată printr-un sistem de control tip master-slave între unitatea centrala PLC și dispozitivele de intrări-ieșiri și linii de comunicație ale sistemului de control principal (master) și sistemului PC. Proiectarea în structura distributivă a sistemului de control format din 22 articulații cu 22 DOF pentru robotul NAO, senzori de poziționare, forță și girație, rețea de comuncații LAN pentru comunicări off-line, rețea de comunicații rapidă pentru control în timp real, module de interfață digitale și analogice etc a condus, din studiile efectuate, la reducerea cu 40% a muncii de programare, cu 30% a activității de proiectare și comisionare, cu 80% a costului cablării, cu 50% a activității de asamblare, respectiv cu 30% a costului echipamentelor.
Modulul de control actuatoare și control sarcină, au fost proiectate astfel încât să asigure simularea acționării structurii mecanice a robotului în faza de implementare a legilor de control, prin procesarea semnalelor de control de la sistemul de control mecatronic clasic, pe care sunt cuplate 6 servomotoare pentru 6 DOF, 3 DOF pentru modulul de actuatoare și 3 DOF pentru modulul de sarcină, cuplate rigid în vederea simulării pe 3 grade de libertate ale robotului.
Sistemul de control al platformei este unul distribuit. Se pliază pe un sistem cu multiple articulații și interfețe periferice: rețea de comunicații LAN pentru comunicare on-line și off-line, rețea de comunicații cu latență scăzută de tip CAN necesară controlului în timp real, module pentru interfațarea analogice și digitale. Prin folosirea unei arhitecturi de calcul distribuit este redus efortul computațional al controllerului principal. Noul tip de control este de tip master-slave între unitatea centrală cu PLC și dispozitivele de intrare-ieșire. Astfel este redusă și încărcarea pe liniile de comunicație între elementele componente ale platformei.
Schema de control prezentată schematic în figura anterioară reprezintă zona centrală, core-ul platformei. A fost folosită cu succes pentru a testa interfețele de control neutrosofic (ICNs), interfața de control extins (ICEx), interfața controlului haptic (CRH) și interfața de control multifuncțional (ICM). Modul în care funcționează interfețele de control este astfel:
Interfața de control neutrosofic (ICN) integreză metoda neutrosofică de control a unui robot – RNC (Robot Neutrosofic Control)
Interfața de control extins (ICM) integrează controlul extins hibrid forță poziție – eHFPC
Interfața pentru controlul haptic (CRH) folosește metoda controlului haptic și este folosit pentru deplasarea și navigarea în medii incerte, cu teren denivelat.
Modulul cu arhitectură deschisă are ca element principal interfața de control multifuncțioanl (ICM) unde este asigurat controlul în timp real. De asemenea, ăn cadrul acsetui modul este realizat controlul prioritaților și monitorizarea schimbului de informații între un număr de n interfețe de control (ICF1-ICF7). Acestea sunt conectate între ele printr-o magistrală de date (MD) la sistemul mecatronic clasic al robotului format din sistemul PLC și sistemul PC cu arhitectură deschisă (OAH).
Interfețele de control ICF1-ICF7 includ si bucle de control care permit un mers stabil al robotului. Suplimentar sunt efectuate îmbuntățiri ale dinamicii piciorului pentru asigurarea complianței piciorului în teren denivelat. Aceste interfețe de control permit controlul descentralizat prin generarea traiectoriei de mișcare printr-o comandă centrală de generare a schemei de mers, iar la final se face multiplexarea legilor de control implementate în interfețele de control ICF1-ICF7.
Pentru controlul articulațiilor se face un control dinamic forță poziție, distribuit, de tip multiprocesor. Recepția semnalelor de la traductoarele montate pe robot se fac prin intermediul unei rețele LAN fără fir, comunicațiile fiind off-line. Rețeaua pentru comunicații rapide, cu latență extrem de scăzută, CAN, sunt folosite pentru controlul în timp real. Elementele de control în timp real (OAH) au fost concepute pentru flexibilitate, răspuns rapid și precizie în atingerea obiectivelor. De asememea, acestea sunt extrem de folositoare în cadrul proceselor repetitive în rularea funcțiilor robotului. Astfel s-a realizat eliminarea completă a sistemelor închise care sunt dedicate exclusiv unei aplicații. În acest fel, dezvoltările ulterioare se fac prin modificaări software ale sistemelor de tip PLC și ale punctului de comandă a sistemului cu arhitecturp deschisă și prin adăugarea de interfețe noi. Completarea cu noi module fizice se face extrem de ușor, se conectează la magistrala de comunicații.
În ansamblul ei, soluțai tehnică este una extrem de complexă. Permite să i se atașeze mai multe tipuri de interfețe inteligente și va duce la îmbunătățiri ale performanțelor în controlul roboților și ale macro/micro manipulatoarelor. Un alt avantaj este reprezentat de ușurința prin care platforma poate transforma funcția de bază care gestionează controlul în timp real a mșcării, navigării și orientării robotului în funcții de control inteligent modelate într-un mediu 3D prin funcții optimizate si testate pe sistemul platformei. Se poate face în acest fel simularea în medii 3D a robotului folosind medii CAD. Un alt avantaj majos constă în faptul că interfețele de control alr robotului pot fi accesate cu ușurință de la distanță sau pot fi transferate unui PC extern.
Avem așadar posibilitatea ca să putem testa de pe un PC extern o serie întreagă de funcții și algoritmi de control fără a avea efectiv structura mecanică și fără a face modificări asupra sutructurii acesteia.
Proiectarea acestei platforme a fost făcută de la început pentru a fi compatilbilă cu alte platfome similare de proiectare în spații virtuale: CDA, CAM, CAE, SolidWorks, Matlab, Simulink, COMSOL, Lav View etc.suplimentar față de acestea, VIPRO permite proiectarea, testarea, dar și experimentarea metodelor de control inteligent în timp real prin simularea componentelor robotului. În acest fel, noua platformă depășește zona de robotică și mecatronică, devenind una dintre platformele importante din piața de IT de profil.
Modelul experimental al platformei versatile, inteligente si portabile VIPRO pentru dezvoltarea tehnicilor de inteligență artificială ale roboților mobili autonomi
Proiectarea și implementarea pe platformă VIPRO a sistemului e-learnig permite realizarea unui rețele interacademice în scopul cercetării și dezvoltării de noi roboți inteligenți.
Modelul funcțional și experimental al platformei VIPRO prezentat în figura 5.2-1 conține stația de lucru “Engineering Station” pentru sistemul PLC clasic de control al actuatoarelor robot de acționare, controlate în poziție și al actuatoarelor de sarcină controlate în viteză, respectiv stația “Graphical Station” pentru dezvoltarea mediului virtual al robotului și realității virtuale în care se mișcă robotul.
Platforma VIPRO este rezultatul unui patent de invenție. Este un dispozitiv complex care permite dezolvarea în mediu simulat de noi interfețe de control, interfețe flexibile și care pot fi validate pe un sistem fizic. Sistemele fizice sunt de fapt roboți cu control în timp real sau sisteme mecatronice capabile să înlocuiască operatorii umani în zone cu risc sporit. Interfețele de control au fost subiectul multor cercetări în domeniul roboticii, iar rezultatele nu au încetat să apară. Au apărut astfel sisteme mecatronice cu capacități de detecție, de transport și de manipulare pentru o serie întreagă de aplicații.
Fig. 5.2-1 Diagrama bloc a platformei VIPRO
În acest context este necesară simularea sistemelor mecatronice, precum și stabilirea algoritmilor destinați acestor sisteme. Simularea 3D a roboților mobili trebuie să redea cât mai precis dinamica sistemului real și a mediului înconjurător. Un alt aspect de care trebuie ținut seama în momentu în care este creat un model 3D este interacțiunea dintre diversele sisteme mecatronice, interacțiune care poate schimba dinamica noului sistem rezultat.
Din punct de vedere schematic, proiectul la care face referire brevetul de invenție poate fi sumarizat astfel:
Cele mai utile platforme folosite pentru simulările 3D sunt platformele CAD, platforme care ajută modelarea și proiectarea virtuală a componentelor unui sistem mecanic, cu un grad ridicat de precizie și rafinament. Exemple de astfel de software: Autodesk Inventor, FreeCAD, Catia, SolidWorks, Solid Edge.
O altă metodă folosită este metoda proiecției virtuale, metodă cunoscută ca metoda Vlădăreanu-Munteanu, în care este posibillă proiectarea și experimentarea metodelor de control pe un sistem de control mecanic existent, care poate fi acționat on-line, în lipsa unui sistem fizic și fără a fi necesară modificarea structurii de comandă. Această metodă permite testarea unei game largi de interfețe de control, dezvoltate în lipsa unei structuri fizice.
Această metodă poate prezenta și unele dezavantaje pentru că sunt simulate doar anumite componente din întregul sistem fără a se ține cont de corelația dintre ele. Pot apărea, de asemenea, erori ale semnalelor de intrare, pertorbări care apar în mod normal într-un sistem fizic. Pentru a elimina aceste erori, algoritmii de control sunt încărcați pe sisteme reale, iar astfel algoritmi sunt modificați în sisteme de tipul CAD, CAM, CAE, LabView, Simulink, Webot, USARSIM, Unity 3D, V-REP.
Platforma VIPRO are alocate 5 stații dedicate pentru utilizatori, respectiv pentru modelarea robotului NAO, utilizând cinematica directă și inversă, modelării robotului RABOT în mediu de dezvoltare Unity, controlul inteligent neutrosofic ICN, prin integrarea metodei RNC, control extins prin integrarea metodei Extenics (ICEx) și modelarea cinematicii inverse în controlul mișcării robotului folosind sisteme de inferență și rețele neuronale (INN). Pentru control de la distanță „remote control” în realizarea funcțiilor e-learnig ale platformei VIPRO, a fost integrat un PC server care asigură trafic de date ridicat pentru comunicații prin internet, la care se mai adaugă două stații utilizatori pentru aplicații cu end-users.
Sistemul PLC cu arhitectură deschisă și interfețe inteligente al platformei VIPRO proiectat în această etapă, prezentat în figura 5.2-2, dezvoltă metoda proiecției virtuale Vlădăreanu-Munteanu prin integrarea soluției inovative din propunerea de invenție: “Metoda și platforma versatilă, inteligentă și portabilă de control a roboților prin proiecție virtuală”. Sistemul de comandă și control cu arhitectura deschisa (OAH) a fost proiectat în structură distributivă și descentralizată, pentru a permite dezvoltarea cu ușurință a unor aplicații noi sau suplimentarea cu noi module hardware sau software pentru noi functți de control.
Fig. 5.2-2 Implementarea modelului functional si experimental al platformei VIPRO
Proiectarea “Engineering Station” a avut ca scop principal integrarea programului de dezvoltare AC500 pentru aplicații cu automate programabile PLC, controlul standului de aplicare a metodei proiecției virtuale pe 6 DOF pentru testarea interfețelor de control inteligent neutrosofic (ICNs), de control extins (ICEx) și de controlul dinamic hibrid forță poziție DHFP (INN).
Solutia tehnica noua, integrata in sistemul cu arhitectura deschisa si interfete inteligente al platformei VIPRO din figura 14, va conduce la imbunatatirii performantele in controlul robotilor si nano/micro/macro manipulatoarelor, la asigurarea unui nivel ridicat de versatilitate a platformei in transformarea de la functia de baza in controlul in timp real a miscarii, navigarii si orientarii robotului la functii de control inteligent al robotului virtual 3D printr-un cuantum de functii optimizate si testate pe sistemul platformei. Aceaste caracteristici sunt in corelatie cu asigurarea unui nivel ridicat de versatilitate a platformei privind transformarea de la functia de baza in controlul in timp real al mediului de miscare al robotului la functii de control inteligent al mediului virtual de miscare 3D al robotului. Suplimentar, portabilitatea platformei VIPRO consta in posbilitatea portarii interfetelor de control inteligentde, a robotului virtual 3D si a mediului de miscare 3D a robtului, de la sistemul PC a unui utilizator extern, aflat la distanta, la platforma VIPRO si controlul de la distanta a platformei VIPRO de utilizatorul extern, in absenta structurii mecanice, asigurand proiectarea, testarea si experimentarea metodelor de control pe un sistem de control mecatronic clasic (existent), fara a fi necesara modificarea structurii hardware a acestuia.
Platforma inovativa VIPRO este competitiva conceptual cu alte platforme similare de aplicatii virtual CDA, CAM, CAE, Solid Works sau MatLab, Simulink, COMSOL, Lab View, etc., dar fata de aceste va permit proiectarea, testarea si experimentarea metodelor decontrol inteligent in timp real cu integrarea sistemului de control clasic in modelarea si simularea robotului. In acest sens ne propunem ca prin dezvoltarea proiectului sa realizam embrionul ca va permite intrarea platformei VIPRO pe piata IT ca o noua componenta intre platforme IT existente.
Sistemul PLC cu arhitectură deschisă cu interfețe inteligente (OAH) al platformei VIPRO cuprinde interfețele de control inteligent proiectate în această fază, care sunt integrate în Engineering Station pentru simularea controlul mișcării robotului prin metoda proiecției virtuale: interfața de control neutrosofic (ICNs) utilizează meoda neutrosofică de control robot, Robot Neutrosophic Control (RNC), interfața de control extins (ICEx) utilizează controlul extins hibrid forță-poziție (eHFPC) și interfața de rețele neuronale (INN) pentru controlul dinamic hibrid forță poziție DHFP. După testare acestea sunt integrate în controlul robotului NAO, prin Grahical Station, astfel: pentru multi-users prin componentele
platformei VIPRO formate din eLear&REM User 1, eLear&REM User 2 sau individual prin
componentele platformei VIPRO formate din Notebook dedicate interfețelor inteligente, respectiv “Extenics Intelligent Interface Notebook”, “Neutrosophic Intelligent Interface Notebook” și “Neural Network Intelligent Interface Notebook”.
Sistemul cu arhitectură deschisă (PC – OAH) integrat în Engineering Station conține interfața de control multifuncțional (ICM) care asigură controlul în timp real, controlul priorităților și monitorizarea schimbului de informații între cele 3 interfețe de control inteligent (ICNs, ICEx și INN) conectate între ele printr-o magistrală de date (MD) cu viteză ridicată de comunicație și sistemul de control mecatronic clasic al robotului format din sistemul PLC, sistemul multiprocesor PLC și sistemul PC cu arhitectură deschisă PC-OPEN Architecture OAH.
Automatul programabil (PLC0) este proiectat în structură descentralizată și distribuită, asigură controlul, comanda și acționarea elementelor de execuție. Comunicarea între PC și PLC0 se face printr-o interfață serială RS232/ETH cu utilizarea blocului funcțiilor de comunicații de la PLC0. Se transmit de la PLC la PC valorile deplasărilor unghiulare curente în valoare absolută . De la PC la PLC0 se transmite continu poziția de referință pe fiecare axă XDi conform valorilor din programul tehnologic XPi.
Sistemul multiprocesor PLC (SM-PLC) si PLC0 au rolul să transmită, în timp real, pozițiile unghiulare de referință pentru regulatorul de poziție de tip PID implementat soft pe PLC. PLC0 generează valorile curente , (i=1-3, k=1-2), determinate prin interfața traductorului incremental ITI și transmisă la sistemul multiprocesor format din PLC1 – PLC3. În topologia activă, fiecare PLC generează un flux de date ascendent de la PLC0 la PLC3.
Prin calculul matricilor de transformare iAj pentru piciorul k (k=1-3), de la axa i la axa j se obține matricea de coordonate în axa j, rezultând în final coordonatele în mediul robot
În topologia activă, la nivelul fiecarui PLC, sunt memorate matricile , se determină coordonatele Carteziene în axa i prin înmulțire cu și se calculează variația poziției . S-a alocat fiecărui PLC o coloană a matricei Jacobiene, fluxul de date fiind de la PLC 0 la PLC 3 pentru triangularizare și de la PLC3 la PLC0 pentru substituție inversă. Având relațiile matematice din modelul matematic discutat, s-a realizat programul de executie pentru PLC, în care fiecare unitate centrală este pe post de MASTER cu comunicare in flux de date.
Sistemul PC–OAH (PC–OPEN Architecture) proiectat este sistem deschis și permite introducerea unor noi funcții de control pe baza unor programe. Datorită vitezei de calcul mare, sistemul de operare admite programare în limbaje evoluate, putând implementa, folosind un executiv în timp real ExTR “multitask” (multiprogram) și funcțiile de bază: interpolare, programul principal (PP) de interfață cu operatorul, respectiv interfețele de control inteligent ICNs, ICEx si INN.
Modulul Interpolator (ITP) – asigură generarea punctelor intermediare între două referințe de poziție. Programarea se realizează in BORLAND C++ și calculează peste 200 de noi referințe într-un interval de 100µs. Interpolatorul (ITP) este o rutină rezidentă în memoria calculatorului care asigură generarea în timp real a referințelor de poziție XDi, pe axele robot, la sistemul multiprocesor PLC(SM-PLC) în vederea determinării erorii de poziție unghiulară , în timp real, pentru generarea traiectoriilor de mișcare, raportate la referințele de poziție XPi din mediul robot. Interpolatorul comunică cu PLC0, care are rolul
de MASTER, printr-o magistrală serială de comunicații în care PLC0 generează datele poziției unghiulare curente pe fiecare axă în parte , alarmele, comenzile și controlul mișcărilor secvențiale pentru funcțiile “homing” (inițializare), iar interpolatorul generează direct referințele XDi.
Interfețe inteligente de control neutrosofic al roboților mobili autonomi
Această interfață (ICN) integrează metoda neutrosofică de control al roboților – RNC (Robot Neutrosophic Control), metodă cunoscută și sub numele de metoda Vlădăreanu – Smarandache. Prin intermediul acestei metode se dezvoltă un modul care folosește acest tip de fuziune senzorială pentru a combina datele de la diferiți senzori ai robotului în ideea de a obține rezultate cât ami precise. Este o metodă prin care asigură complianța activă și cea pasivă a sistemului.
Pe baza acestei constrângeri a fost realizată schema generală a a controlului forță pozitție.
Fig. 5.3-1 Intefețe de control neutrosofic pentru platforma VIPRO
și sunt intrările: poziție și forță reprezentate în coordonate carteziene, raportat la mediul înconjurător. În acest caz, matricile acestora, și sunt matrici cu valori 0 și 1, care satisfac relația
Și care se deduc metidic din constrângetile cinematice ale mediului de lucru.
Un astfel de sistem poate asigura simultan controlul poziției și al forței. Pentru un calcul mai facil împărțim deviația măsurată în două seturi:
– corespunde controlului în poziție, matricea corespunzătoare este
– corespunde controlului în forță, matricea corespunzătoare este
Considerăm, pe rând, fie controlul în forță, fie pe cel în poziție. Dacă considerăm doar controlul în poziție pe o axă determinat de matricea , rezultă mișcarea dorită a brațului corespunzătoare controlului în poziție, astfel:
Unde este matricea de amplificare.
Mișcarea articulație acestui braț în coordonate carteziene este dată de ecuația:
Pe axele rămase facem controlul în forță. O sa obținem astfel relația dintre mișcarea dorită a articulației și eroarea de forță . Avem așadar:
este eroarea de poziție. Se calculează ca diferența dintre deviația poziție curente măsurate de sistemul de control și deviația de poziție datorată forței reziduale . Introducem forța reziduală maximă dorită și rigiditatea fizică . Obținem astfel:
Rezultă astfel că:
Unde este un raport adimensional al matricei de rigiditate.
Variația mișcării în spațiul robotului se traduce în mișcarea brațului acestuia. Relația care definește acest lucru este
Pe baza aceste reprezentări s-a dezvoltat sistemul de control hibrid forță poziție, în corespondență cu transformările de coordonate aplicate sistemelor cu arhitectură deschisă, carea au o structură distribuită și descentralizată.
Având în vedere că informația vine de la mai mulți senzori, este posibil ca să apară un anumit grad de conflicte. În acest caz, robotul va folosi logica fuzzi și/sau neutrosofică. Logica neutrosofică se folosește pentru procesarea în timp real (teoria Dezert-Smarandache, teoria Dempster-Shafer), peste care se aplica teorii de fuziune a informației, de tipul celor prezentate în Capitolul 2 al acetei teze.
Interfețe inteligente de control extenics al roboților mobili autonomi
În acest tip de interfață este integrată metoda Extenics de control în tip real. Teoria care stă la baza acestei metode este teoria cu același nume, Extenics, teorie care ajută la rezolvarea problemelor contradictorii. Este motivul pentru care se aplică în controlul sistemelor extinse prin aplicarea metricii și a funcției de dependență în spațiul extenicii, ambele definite prin logica extenics. Fondatorul acestei metode este Prof. Cai Wen de la Universitatea din Guangdong în anul 1983. Reiterații ulterioare, cu contribuții semnificative, au mai fost făcute de Prof. Șandru de la Universitatea Politehnică din București și de Prof. Smarandache de la University of New Mexico, SUA, ambii membri în echipa de cercetare a proiectului VIPRO. Îmbunătățirile constau în trecerea de la un spațiu l-liniar la un spațiu n-liniar pentru o serie de indicatori ai teoriei Extenics.
A fost rezolvată problema contradictorie de control forță-poziție în timp real a mișcării robotului, folosind platforma VIPRO. Astfel s-a folosit controlul extins hibrid de tip forță-poziție – eHFPC (Extended Hybrid Force-Position Control), metodă dezvoltată de Prof. Vlădăreanu.
Funcționearea în timp real constă în implementarea in cadrul platformei a interfeței de control extins al roboților a invenției „Metodă și dispozitiv pentru controlul extins hibrid forță-poziție al sistemelor robotice și mecatronice”, invenție care are ca autori membrii proiectului VIPRO și colaboratori externi.
Punctul de pornire al acestei metode îl constituie definirea unor seturi de parametri: (distanța extinsă în raport cu poziția), (distanța extinsă în raport cu forța), (funcția de dependență), X (poziția actuală), (poziția standard de referință, interval pozitiv față de care se raportează și X), (un interval de tranziție pozitiv), (o funcție de dependență care are ca parametri): (semnalu de la traductoarele de forță), (referință pozitivă a forței), (intervalul pozitiv de tranziție al forței). Rezultă astfel că, folosind și s-a realizat o transformare extisă, iar spațiul în care se mișcă robotul este U.
Așa cum am menționat anterior, matricile și au doar valori de 0 și de 1. Rezolvarea problemei contradictorii de control hibrid forță-poziție se face prin înlocuirea valorilor de 0 și 1 cu cavlori ale funcției de dependență. În acest proces este folosită distanța extinsă de domeniu, folosind logica Canton, la care se aplică transformarea extinsă de domeniu pentru o forța . Rezultatul este o matrice cu coeficienți pentru poziție și una pentru forță pentru ca în final să avem un control explicit în forță și în poziție peste care se poate aplica teoria enunțată în cadrul interfeței anterioare.
Interfețe inteligente de control haptic al roboților mobili autonomi
Interfețele prezentate la punctele anterioare au unele dezavantaje dacă sunt aplicate roboților care se deplasează în medii neuniforme, incerte sau cu denivelări, cum sunt zonele afectate de cutremure, dărâmături etc. Nu au fost introduse metode prin care se controlează rigiditatea articulațiilor robotului, în special cele ale tălpii piciorului. De asemenea nu avem posibilitatea unui control al operatorului uman în spațiul robot care să alterneze metode de control în funcție de asperitățile mediului în care robotul acționează.
Prof. Vlădăreanu, împreună cu echipa de cercetători VIPRO au dezvoltat și brevetat o soluție inovativă prin care sunt identificare asperitățile terenului pe care se deplasează robotul și să modifice rigiditatea articulațiilor în consecință. Astfel, câns sunt detectate denivelări, articulațiile robotului au o elasticitate diferită. Dacă se notează cu articulația tălpii piciorului, atunci elasticitatea corespunzătoare este , elasticitate care este valabilă doar în harta mediului robot (spațiul unighiurilor). Elasticitatea se ajustează în mod continuu din momentul în care atinge terenul până la contactul complet al piciorului. În varful segmentului de picior care vine în contact cu terenul sunt plasați senzori care transmit semnale în momentul contactului complet. În momentul transmiterii acestor semnale, este modificată schema de mers a robotului, întrucât este nevoie de schimbarea centrului de greutate pentru a putea mișca celălalt picior. Sunt disponibile informații de la senzori vizuali și haptici. Operatrul uman poate interveni si genera pozițiile carteziene pentru a asigura continuitatea funcționării robotului în medii în care terenul este denivelat sau în medii calamitate, în urma unor dezastre.
Interfața inteligentă de control a mâinii robotului prin aplicarea tehnicilor de inteligență artificială
Prin intermediul platformei VIPRO se poate controla de la distanță robotul NAO, robot care se află în laboratorul din cadrul Institutului de Mecanică a Solidelor. Pentru a putea contola robotul, trebuie construite funcțiile de cinematică directă. În cadru prezentei teze de doctorat au fost făcute simulări legate de mișcarea mâinii robotului. În acest sens, am simulat în Matlab cinematica directă a mâinii stângi. În Anexa 10 sunt prezentate codurile sursă folosite pentru aceste simulări:
Funcția pentru cinematica directă a brațului în care sunt prelucrate unghiurile incheieturile mâinii robotului.
Funcția prin care sunt estimate coordonatele carteziene din coordonatele spațiului robot
Funcția prin care sunt facute estimările spațiului cartezian folosind funcția „anfis” din Matlab
Funcția care implementează cinematica directă (dk.m) a fost construită ținând cont de valorile implicite pe care le suportă robotul NAO, valori care sunt oferite în manualul de utilizare. Considerăm că brațul robotului pe care am făcut experimente este alcătuit din 5 segmente și 4 unghiuri. Pentru funcția cre simulează cinematica directă sunt relevante doar segmentele de braț 3 și 5. Conform declarațiilor producătorului, avem:
Unghiurile sunt exprimate în radiani. Pentru a optimiza efortul computațional, am ales pașii de eșantionare în felul următor:
, unde pasul de eșantionare este 0.5
, unde pasul de eșantionare este 0.3
, unde pasul de eșantionare este 0.5
, unde pasul de eșantionare este 0.1
Pasul de eșantionare de 0.1 aferent unghiului implică cel mai mare efofrt computațional. Este unghiul aflat în imediata vecinătate a end-efffectorului.
În a doua funcție din Anexa 10 au fost făcute estimări ale poziției end-efectorului, folosing funcția Matlab, anfis.
Fig. 5.6-1 Reprezentarea tuturor punctelor în care poate ajunge end-effectorul
Reprezentarea este făcută în 3D. Petru a scoate în evidență mai bine, poziția end-effectorului, se poate roti această reprezentare:
Fig. 5.6-2 Reprezentarea în 2D a punctelor în care poate ajunge end-effectorul
Fig. 5.6-3 Reprezentarea în 2D din alt unghi a punctelor în care poate ajunge end-effectorul
Pentru ușurința în calcul am ales pentr primul experiment un pas de eșantionare pentru unghiul de 0.5. în cazul acesta, avem un număr de 7290 posibile puncte în care ajungem cu end-effectorul.
În cazul în care se modifică pasul de eșantionare al unghiurilor mainii robotului, exprimarea in spațiul cartezian arată în felul următor:
Fig. 5.6-4 Reprezentarea cu o granularitate sporită a pozițiilor end-effectorului
Respectiv:
Fig. 5.6-5 Reprezentarea 2D a punctelor de mai sus
Fig. 5.6-6 Reprezentarea 2D, privită din alt unghi
În această a doua reprezentare avem o exprimare mai detaliată a poziției pe care mâna robotului o poate avea. Pentru un pas de eșantinare de 0.1 pentru unghiul avem exprimarea de mai sus, exprimare în care avem 36288 de puncta în care end-effectorul poate ajunge. Se poate vedea, de asemeneea și o amplitudine mai mare a mișcărilor acestuia.
Variațiile cele mai mari sunt în momentul în care sunt modificări ale unghiului cel mai aporiat de bază: . În cazul în care sunt modificări ale unghiurilor mai îndepărtate de bază, numărul modificărilor este mai mic.
Pentru o modificare a unghiului următor, numărul de posibile puncte ale end-efectorului este 36188, dar mai importantă este amplitudinea moșcărilor care este acum mai redusă:
Fig. 5.6-7 Modificarea pasului de discretizare a unghiului
Reprezentarea grafică a celei de-a doua funcție din Anexa 10. Sunt reprezentate toate pozițiile pe care pe poate avea end effectorul. Exprimarea se face în coordinate carteziene (X, Y, Z) pornind de la cordonatele mediului robot (unghiurile , ). Pentru ușurința de calcul, în algoritmul Matlab acestea sunt notate cu , , , .
În funcția a doua obținem seturi de date. Aceste seturi de date reprezintă coordonatele punctelor reprezentate în graficele anterioare. Aceste seturi de date sunt folosite ca intrări în funcția a treia.
În funcția a treia din Anexa 10 sunt generate sistemele de infereță fuzzy pentru mâna robotului. Am folosit funcția anfis pentru a genera aceste seturi de date, seturi pe care le vom folosi ulterior pentru a compara rezultatele obținute prin calculele din funcția anterioară. Folosind funcția fuzzy din Matlab sunt generate în mod grafic intrările pentru a fi proiectate ieșirile sistemului.
Am aplicat funcția anfis pe primul set de date și am generat structura de date naon1.fis. Pentru a scoate în evidență modul în care rezultatele sunt cât mai apropiate de starea naturală, aplicăm funcția fuzzy pe setul de date obținut anterior
>> fuzzy(naon1)
Fig. 5.6-8 Folosirea anfis2 pentru validarea rezultatelor algoritmului
Sunt două tipuri de funcții fuzzy:
Sugeno: rezultatul obținut în urma acestei funcții este reprezentat prin punctele reprezentative pentru sistemul în cauză; implică un efort computațional mai mic.
Mamdan: rezutatul obținut este reprezentat sub forma unei curbe, iar efortul computațional este considerabil mai mare.
În funcția a doua sunt definite unghiurile și pașii dediscretizare aferenți cinematicii directe. Motivul pentru care am ales să definim unghiurile în acest mod are legătură cu tipul de funție fuzzy pe care urma să îl folosim în funcția anfis pentru verificarea rezultatelor.
În funcția anfis reprezentată grafic ca în figura de mai sus, seturile de date sunt de forma:
Fig. 5.6-9 Selectarea tipurilor de intrări
Pentru a putea avea un set de rezultate relevante, tipul de conexiune între seturile de date de intrare este de tip „și logic”, pentru că este nevoie de proiecțiile pe toate cele trei axele.
În mod grafic, datele reprezentate anterior sunt:
Fig. 5.6-10 Reprezentarea grafică a ieșirii funcției anfis – input 1
Fig. 5.6-11 Reprezentarea grafică a ieșirii funcției anfis – input 2
Fig. 5.6-12 Reprezentarea grafică a ieșirii funcției anfis – input 3
În aceste intrări sunt posibile multiple reprezentări. Pentru exemplul în cauză am ales reprezentarea de tip gaussian. Sunt disponibile mai multe tipuri de reprezentare:
Este poate cel mai cunoscut tip de reprezentare în care intrările pot fi urmărite pe fiecare componentă. Unghiurile sunt exprimate în radiani, valorile acestora sunt prezentate în partea stângă.
Fiind o funcție fuzzy de tip sugeno, ieșirea este liniara, iar reprezentarea se face în puncte. Densitatatea de puncte este un parametru pe care în putem modifica pentru a scoate în evidență avantajele acestei metode.
Fig. 5.6-13 Funcția fuzzy de tip sugeno cu ieșirea reprezentată sub forma unor puncte
Din această interfață putem modifica modul de vizualizare. În modul „Rule Viewer” putem vedea modul în care sunt descompuse întrările și ieșirile. Putem vedea care dintre intări sunt relevante pentru funcția noastră și cum evoluează ieșirea atunci când anumiți parametri sunt modificați
Fig. 5.6-14 Modificarea intrărilor pentru a observa ieșirea
Fig. 5.6-15 Alterarea ieșirii în funcție de variațiile intrării
Se pune în continuare problema acurateței acestei metode. Una din metode este folosirea cinematicii inverse. Pornind de la coordonatele spațiului cartezian (X, Y, Z) trebuie să determinăm coordonatele spațiului robot, adică unghiurile articulațiilor (unghiurile , ).
Pentru a putea valida rezultatele am construit în Simulink o funcție de verificare
Fig. 5.6-16 Funcția Symulink pentru validarea rezultatelor fuzzy
În partea stângă avem constantele pe care încearcă brațul robotului și pașii de discretizare de ordinul 10-3.
Blocul ANFIS conține fis-urile generate de funcția a treia din Anexa 10: naon1-3.
Fig. 5.6-17 Modulul de validare a funcției anfis
În acest bloc avem ca intrare rezultattul multiplexării celor 3 intrări (care în cazul nostru sunt coondonate carteziene) și ieșirile sunt unghiurile , , , , unghiuri care reprezintă intrările în al doilea bloc din schema logică proiectată în Simulink.
Fig. 5.6-18 Modulul Symulink în care s-a încarcat rutina Matlab
Astfel, în funcția de mai sus, avem ca și intrări unghiurile, adică spațiul robot, si avem ca și ieșire coordonatele end-effectorului în coordonate carteziene.
Fig. 5.6-19 Modul de afișarea a datelor
În ultima parte din această diagramă, avem în partea stângă subfuncții care fac diferența între referința pe care încercăm să o urmărim și rezultatul funcției Matlab „dk”, a doua funcție din Anexa 10, funcție care a fost inclusă și în diagrama Simulink, descrisă mai sus. Rezultatul este afișat în mod grafic pentru a scoare în evidență eficiența algoritmului.
Fig. 5.6-20 Afișarea datelor simulate și a celor măsurate
Interfața inteligentă de control e-learning și e-courses în dezvoltarea tehnicilor de inteligență artificială
Platforma virtuală VIPRO are ca principală funcționalitate facilitarea accesului utilizatorilor la resursele software ale acesteia. Astfel se va permite, pe baza unui cont de utilizator, accesarea prin intermediul unui browser web a unor aplicații software specifice, instalate pe un server localizat la sediul coordonatorului proiectului.
Din punctul de vedere al utilității, platforma virtuală îndeplinește următoarele funcții:
Să ofere utilizatorului acces la platforma virtuală prin intermediul unei pagini web;
Structura paginii web să fie una intuitivă, cu un design plăcut, organizată în mai multe pagini cu posibilitatea de navigare prin intermediul unui meniu principal și cu posibilitatea de revenire ușoară la pagina principală;
Să permită gestionarea utilizatorilor și a drepturilor de acces ale acestora pe fiecare unealtă software;
Să pună la dispoziția utilizatorului informații referitoare la modul și la drepturile de utilizare ale platformei virtuale;
Să ofere utilizatorului informații suplimentare referitoare la obiectivele proiectului VIPRO, la partenerii implicați, precum și la rezultatele obținute;
Să pună la dispoziția administratorilor platformei mecanismele necesare gestionării utilizatorilor (adăugare/ștergere), a aplicațiilor pe care aceștia le pot accesa, precum și a limitării duratei de acces asupra unei aplicații.
Utilizatorii neînregistrați au acces la informațiile prezentate în aplicația web referitoare la prezentarea obiectivelor proiectului și a rezultatelor obținute, a partenerilor implicați în proiect, informații privind rolul lor si datele de contact. Ei pot trimite prin formularul de contact cerere de înregistrare către administratorii sistemului în care să specifice domeniul de activitate și să motiveze dorința utilizării aplicațiilor software ale platformei virtuale VIPRO.
Fig. 5.7-1 Schema logică a platformei VIPRO
Utilizatorii înregistrați vor putea, în plus, să acceseze aplicațile software ale platformei. Accesul se face pe baza unei cereri de programare adresate administratorilor platformei. Aceștia vor transmite utilizatorului prin e-mail un cod de acces, o parolă, precum și un interval în care este permis accesul la respectiva aplicație.
Administratorii sistemului vor putea sa gestioneze informațiile prezentate în aplicația web, să adauge sau să șteargă știri, să gestioneze utilizatorii și să programeze accesul la aplicații. Ei vor putea vizualiza datele de înregistrare ale utilizatorilor pentru a-i putea informa cu privire la datele de access la programele software ale platformei.
Aplicația web este constituită din 3 secțiuni, în conformitate cu nivelul de acces al fiecărui utilizator. Fiecare dreptunghi reprezintă o pagină web diferită. Dreptunghiurile încadrate într-o linie punctată reprezintă aplicații web sau aplicații software externe platformei virtuale VIPRO. Săgețile indică direcția în care se face accesul în fiecare dintre pagini. Din fiecare pagină se poate ajunge la pagina principală (HOME) prin intermediul unui meniu principal ce va fi accesibil în fiecare dintre acestea.
Astfel, exista o secțiune comună tuturor utilizatorilor ce corespunde paginilor HOME, Contact, Despre proiect, Știri, Pagina detaliu știre, Pagina recuperare parolă și Pagina înregistrare utilizator. Utilizatorii înregistrați vor putea accesa în plus Pagina de configurare acces aplicație platformă, din care se poate porni execuția aplicației de acces remote, și pagina Detalii utilizator, în care își va putea vizualiza informațiile personale. Administratorii de sistem au acces la o pagină de gestionare a utilizatorilor care ofera posibilitatea ștergerii/adăugării de noi utilizatori și a vizualizării informațiilor personale. Similar, ei pot vizualiza o listă a programărilor în scopul accesului la aplicații și pot introduce/șterge utilizatori și perioade de acces pentru aceștia pentru fiecare dintre aplicațiile software disponibile.
Interfața aplicației web este formată din trei secțiuni: antet, conținut și subsol. Antetul conține meniul principal și un header scurt ce prezintă titlul paginii web. Subsolul oferă informații referitoare la autorul și data realizării aplicației web. Meniul principal este accesibil din toate secțiunile aplicației web pentru facilitarea accesului către principalele pagini: HOME, Despre proiect, Platformă, Știri, Contact, Login.
Platforma va prezenta scopul acesteia și modul de conectare la aplicațiile software disponibile, precum și termenii și condițiile legale de utilizare. În partea de jos a paginii se va regăsi secțiunea de acces la aplicațiile software disponibile. În momentul în care un utilizator va încerca accesul la o aplicație software, se va verifica dacă acesta este înregistrat. Dacă nu este înregistrat se va deschide pagina de Login. Dacă este înregistrat, prin click pe imaginea sau numele asociate unei aplicații software se va deschide pagina de detaliu aplicație software care prezintă câteva dintre caracteristicile respectivei aplicații, precum și cunoștințele de bază necesare utilizării acesteia.
Din pagina de acces detaliu aplicație software există posibilitatea solicitării accesului către administratorul platformei. Accesul se va face pe baza unei programări. Mecanismele de acces la aplicațiile software. Dacă utilizatorul a primit deja dreptul de utilizare al unei aplicații software, acesta poate accesa din pagina de detaliu aplicație software pagina de configurare acces aplicație platformă. Prin introducerea corectă a datelor de autentificare se va putea porni aplicația de tip remote desktop ce permite utilizarea aplicației instalată pe serverul IMSAR.
În cadrul platformei VIPRO există o pagină de știri care va prezenta pe scurt ultimele 5 știri adăugate. Știrile pot consta în aplicații software noi ce sunt disponibile, de prezentarea unor rapoarte de evaluare a performanțelor platformei (număr lunar de utilizatori, număr de utilizatori noi, timpi de acces pe aplicații etc.), de prezentarea rezultatelor participării la conferințe științifice, exemple de aplicații în care a fost utilizată platforma, eventuale noi parteneriate având ca scop extinderea proiectului etc. Fiecare știre va fi însoțită de o imagine de mici dimensiuni, de un titlu, data la care a fost publicată precum și o descriere scurtă. Titlul și imaginea fiecărei știri vor putea permite utilizatorului accesul către descrierea extinsă, însoțită și aceasta de imagine, titlu și data introducerii pe site.
În zona de contact oferă posibilitatea utilizatorului să contacteze cordonatorul proiectului direct, utilizand adresa de e-mail sau numărul de telefon specificate în această pagină, fie prin intermediul formularului de contact care va trimite un e-mail automat către administratorii platformei.
Zona de autentificare / Login permite gestionarea nivelului de acces al utilizatorilor. Un utilizator neînregistrat se poate înregistra prin apăsarea butonului ”Înregistrează-te” disponibil în această pagină. Acesta va deschide o pagină în care se vor solicita utilizatorului informații precum nume, prenume, e-mail, parolă, domeniu de activitate, scopul utilizării platformei. Numele de utilizator va fi adresa de e-mail a acestuia.
Un utilizator își poate recupera parola prin apăsarea butonului ”Recuperare parolă”. Acesta va solicită introducerea adresei de e-mail, către care se va transmite automat o nouă parolă de acces.
După înregistrarea corectă a unui utilizator, acesta va avea acces la paginile de detaliu ale aplicațiilor software disponibile, precum și la o pagina de vizualizare a detaliilor utilizatorului în care acesta poate face modificări la datele personale introduse la înregistrare.
Dacă utilizatorul înregistrat este de tip administrator, acesta va putea accesa două pagini suplimentare, de administrare utilizatori și de administrare aplicații, care permit acestuia gestionarea accesului și evaluarea ușoară a disponibilității aplicațiilor. De asemenea, acesta va putea accesa aplicația externă ce îi permite modificarea conținutului aplicației web, inclusiv adăugarea de noi știri sau ștergerea unora vechi.
Accesul la aplicațiile software disponibile prin intermediul platformei VIPRO va fi permis numai utilizatorilor înregistrați. Un utilizator nou va putea accesa pagina Login/Pagina înregistrare utilizator pentru a-și crea un cont. Înregistrarea utilizatorilor se va face automat, fără intervenția administratorilor de sistem.
După înregistrarea utilizatorilor, aceștia vor putea solicita accesul pentru o anumită aplicație, pentru un anumit interval de timp, prin navigarea în aplicația web astfel: HOME/Platformă/Pagina detaliu aplicație software/Pagină solicitare acces. Utilizatorul va putea vizualiza în această pagină intervalele disponibile pentru a putea face o programare. Programarea se poate face pentru fiecare aplicație în parte pentru mai multe aplicații simultan. Această solicitare va fi primită pe e-mail de către administratorul de sistem. Administratorul va analiza cererile în ordinea în care acestea au fost recepționate. El va verifica disponibilitatea intervalului solicitat. Dacă acest interval este liber, el va transmite prin e-mail utilizatorului datele de acces la serverul de aplicație (adresă IP, port, nume utilizator, parolă). Dacă intervalul a fost solicitat anterior și de către alt utilizator, se va trimite un e-mail utilizatorului cu rugămintea revizuirii intervalului.
După primirea datelor de acces, utilizatorul va putea accesa aplicația dorită prin navigarea în aplicația web astfel: HOME/Platformă/Pagina detaliu aplicație software/Configurare acces aplicație platformă. Aceasta îi va deschide pagina de acces la distanță ce îi va permite accesul la aplicația instalată pe serverul instalat la sediul IMSAR.
Programul bazei de date si a mecanismului de acces local, si integrat in componenta PC Server, este pus la dispozitia utilizatorilor platformei VIPRO.
Platforma VIPRO este concepută sa ofere accesul mai multor utilizatori externi, in același timp, pe baza unor drepturi dinainte stabilite. Pentru ca un utilizator sa aibă acces în sistemul VIPRO, el trebuie să se înregistreze în sistemul on-line, un portal web disponibil publicului larg. În acest portal, utilizatirul poate vedea informații despre proiect, în general, sau despre modul în care poate obține accesul, în particular. În secțiunea “Înregistrare în sistem”, utilizatorul își trece datele cu care urmează a se autentifica și secțiunile din platformă pe care dorește să le folosească.
Schematic, fluxul prin care un utilizator accesează sistemul, poate fi reprezentat în felul următor:
Fig. 5.7-2 Schema logică prin care se obține accesul la platforma e-learning
După ce utilizatorul își introduce datele în formularul de înregistrare, în mod automat se trimite o alerta către administratorul platformei. Pe baza acestei cereri, administratorul îi acordă sau nu acces utilizatorului. Mai mult decât atât, el poate specifica și intervalul, perioada de timp în care acest utilizator are acces.
Modul de realizare a platformei informatice a fost posibilă folosind un server de comunicații. El are rolul de a filtra accesul din exterior. Totodată, el este si instrumentul în care sunt creați utlizatorii și drepturile lor. Serverul de comumicații este instalat cu sistemul de operare Windows 2012 R2. Modul de instalare a acestul sistem de operare este detaliat în Anexa 9. Este un sistem de operare multi rol. Dintre rolurile disponibile, în cazul platformei VIPRO sunt necesare: Active Directory și Remote Access.
Rolul de Active Directory este necesar pentru autentificare. Platforma VIPRO este construită pe tehnologie Microsoft .NET și permite autentificare Single-Sign-On (SSO), altfel spus, după ce administratorul declară un utilizator aici (pe baza cererii mai sus menționate), acel utilizator va avea acces în platformă, în secțiunile dorite, fără alte setări suplimentare. Orice modificare în secțiunea de administrare a Active Directory are impact în drepturile și perioada de acces ale utilizatorilor externi.
Rolul de Remote Access este instalat pentru a putea facilita accesul din exterior. După declararea datelor în Active Directory, administratorul alege dacă acel utilizator să promească drepturi de acces. După primirea acetor drepturi, utilizatorul se poate conecta prin VPN, o modalitate de acces securizat.
Opțional, putem instala și rolul de DHCP, un rol care permite utilizatorilor să primească din parea sistemului, în mod dinamic, o adresă internă. Acest rol asigură o flexibilitate crescută în administrarea utilizatorilor.
Utilizatorul, după autentificare are acces la o zonă personalizată. Desktopul permite accesul doar la platforma VIPRO, restul de utilitare sau programe ale sistemului de operare sunt dezactivate. În momentul autentificării, se creează o zonă dedicată pentru fiecare utilizator în care acesta să își poată salva rezultatele muncii.
Extensii ale platformei VIPRO in elaborarea strategiilor de control ale roboților mobili autonomi
Platforma VIPRO este una extrem de scalabilă care poate deservi sarcini din cele mai variate. Este vorba de sarcini cu un consum mic de resurse, dar care sunt accesate în mod simultan de mai mulți utilizator din toată lumea sau sarcini care sunt accesate de un număr mic de utilizatori care au un consum ridicat de resurse (simulări complexe care au medii cu un număr ridicat de asperități ca și mediu de lucru). Platforma VIPRO este una extrem de dinamică, destinată mediului universitar de pe întreg mapamondul. La această platformă se pot conecta studenți sau cercetători care vor să simuleze un mediu robot, programat să facă anumite sarcini pentru care trebuie să se publice rezultatele simulării și pentru care nu sunt fonduri suficiente pentru a avea acces la un mediu robot real.
O altă caracteristică importantă a metodi proiecției virtuale este accea ca este scalabilă. Tehnologiile moderne de calcul permit ca să putem extinde mediul de lucru atunci când este nevoie de o putere de calcul mai mare. Aducem în discuție tehnologia cloud care poate funcționa ca o extensie a mediului de lucru existent. În mod obișnuit, tehnologiile întâlnite în mediul cloud sunt: IaaS (Infrastructure as a Service) în care putem avea în cloud o infrastructură asemănatoare cu cea fizică, care poate funcțioa ca o extensie a acesteia, PaaS (Platform as a Service) în care sunt puse la dispoziție utilizatorului un set de platforme de dezvoltare, preconfigurate cu suitele de software pe care urmează a le folosi și SaaS (Software as a Service) cand sunt puse la dispoziția utilizatorului software-urile finale pe care le poate folosi la lucrul de zi cu zi.
Fig. 5.7-1 Extinderea platformei de e-learning in cloud
Resursele platformei pot fi extinse cu infrastructuri virtuale în cloud-uri private, infrastructuri pe care unele universități sau centre de cercetare le au și le pot pune la dispoziție pentru o perioadă limitată de timp, perioadă în care se pot testa teoriile și simulările de interes.
Fig. 5.7-2 Accesul de la distanță folosind tehnologii cloud
Pentru proiectul din prezenta teză de doctorat, cel mai fezabil este IaaS (Information as a Service), tehnologie care poate fi configurată ca o extensie a mediului de lucru din laboratorul IMSAR. Avantajul acestei tehnologii este că poate fi livrată din ambele tipuri de cloud: public și privat. Cloud-uile publice ca Amazon și Azure oferă posibilitatea de a extinde infrastructura curentă de lucru cu infrastructuri predefinite, croite în jurul sistemului de operare Windows 2012 R2. Avantajele pe care le oferă cloud-urile publice menționate constau în faptul că acestea pun la dispoziție mecanisme de autentificare bazate pe Active Directory. Acest lucru se traduce printr-un timp scăzut de deployment. Prin tehnologia de federalizare, mecanismul de autentificare configurat în laboratorul IMSAR se poate extinde în cloud pentru a asigura un nivel de securitate crescut.
Fig. 5.7-3 Integrarea cu sistemele de autentificare a utilizatorilor
Avantaje ale infrastructurii virtuale în cloud de tip IaaS, infrastructură cu care se extinde infrastructura de licru VIPRO:
Infrastructură stabilă, întrucât ea se află localizată în datacentere cu un grad sporit de securitate și reduntanțăș este extrem de importatnt ca infrastructura virtuală sa fie disponibilă oricând, la orice oră, date fiind diferențele de fus orar care se află între diverse centre de cercetare.
Scalabilitare – este nevoie de scalabilitate pentru momentele în care este nevoie de mai multă putere de calcul sau în care datele mediului robot au o dinamica extrem de mare. Sunt cazuri în care estimările de putere de calcul nu respectă intocmai cerințele de performanța de care simularea are nevoie. Scalabilitatea unei platforme în cloud este una mult mai facilă decât extinderea inițială de la resursele din cadrul laboraturului IMSAR în cloud. Nu sunt necesae configurații suplimentare ale mecanismelor de autentificare și de migrare ale sarcinilor de lucru. Scalabilitatea sa face în două moduri: în sus, când este nevoie de mai multă putere de calcul , și. În jos, atunci când resursele comandate la un moment de timp nu mai sunt folosite.
Nu sunt necesare investiții în echipamente hardware, echipamente care pot întțmpina probleme de compatibilitate sau care nu ajung în timp util pentru simulare.
Independență față de locația în care este nevoie de aceste resurse. Ele pot fi accesate în mod securizat de oriunde de pe glob, de unde există conectivitate la internet.
Securitate crescută atât la nivel fizic, cât și la nivel logic. Pentru cazurile în care simulările sunt parte a unui brevet la care lucrează o echipă distribuită geografic pe mai multe zone de pe glob, securitatea algoritmilor, dar mai ales a rezultatelor obținute în urma simulării, sunt esențiale. În acest mod, platforma VIPRO poate garanta un grad ridicat de securitate, pentru ca totul se face în mod automat, fără a fi nevoie de intervenții umane. Este eliminată posibilitatea ca, din cauze naturale sau umane să se împiedice accesul la resurse. Resursele sunt distribuite tocmai pentru a împiedica incidente în care nu sunt disponibile resursele din cloud.
În momentul de față resursele disponibile în laboratorul IMSAR permit conectarea simultană a unui număr limitat de utilizatori. Numărul acestor utilizatori variază în funcție de accesul pe care îl solicită. Serverul central este cel pe care sunt instalate toate programele necesare VIPRO. Pe lângă serviciile care asigură comunicațiile cu stațiile de proiectare și cu utilizatorii externe, mai sunt instalate componentele de simulare: Unity, Symulinc, Webot etc. Toate aceste unelte de simulare sunt consumatoare de resurse în mod intensiv.
Fiecare utilizator conectat la serverul central al VIPRO are nevoie de anumite resurse. Pentru a evita situațiile neplăcute în care resursele necesare simulării sunt insuficiente, sunt puse anumite limitări pentru fiecare tip de utilizator care are nevoie de acces pentru simulare. Avem așadar o provizionare strictă făcută pentru a acomoda cât mai mulți utilizatori concurenți. În cazul în care resursele sunt consumate integral și un nou utilizator dorește acces, el va fi informat asupra situației și i se dă posibilitatea de a alege o altă perioadă. Fiecărui utilizator ii sunt alocați cate 400Mb RAM si 10Gb spațiu de stocare pe hard-discul intern. O astfel de provizionare permite unui număr de 10 utilizatori să poată lucra în mod simultan, indiferent de programul de simulare folosit.
Sistemul de autentificare (Active Directory) face posibila autentificarea individuală a fiecărui utilizator și îi dă drepturi de acces exclusiv asupra zonei personale. El poate vedea doar fișierele proprii, fără acces la fișierele altui utilizator. Accesul utilizatorilor este garantat pentru o perioadă între 3 zile și 2 săptămâni. Pentru cazurile speciale în care este nevoie de o perioadă mai mare de timp, un utilizator are posibilitatea să ceară acest lucru administratorilor platformei. Este posibil acest lucru pentru proiectele de cercetare în care sunt implicate mai multe persoane ale unui departament de cercetare și lucrează la un proiect cu un grad ridicat de complexitate în care este nevoie de numeroase adaptări și modificări pentru algoritmul de modelare și control. Un exemplu în acest sens poate fi un proiect de cercetare condus de un institut de cercetare partener care lucrează la un proiect de modelare / simulare cu un termen de finalizare extrem de strâns.
Numărul maxim de utilizatori pe care ii poate suporta platforma în momentul de față este astfel de 10. Acești 10 utilizatori au acces la toate resursele de simulare ale platformei VIPRO. Întrebarea care se pune este legată de numărul de utilizatori în contextul în care este disponibilă finanțare pentru continuarea cercetărilor. În continuare, descriem modul în care poate fie extinsă platforma VIPRO pentru a putea explica modul în care funcționează scalabilitatea sistemului.
Sistemul încă de la început a fost proiectat pentru a fi scalabil. Astfel, prima fază a proiectului include o platformă de virtualizare (Hyper-V), care permite clusterizare (lucrul în paralel a mai multor servere), pentru a putea crește puterea de calcul. Astfel, dacă se mai adaugă încă un server cu aceleași caracteristici, puterea de calcul a platformei nou rezultate este de două ori mai mare, putând suporta până la 20 de utilizatori care pot să își simuleze algoritmii proprii.
O altă problemă care se ridică în acest sens este integritatea datelor care sunt prelucrate de către platforma VIPRO. Este important ca în momentul în care sunt încărcate aceste date spre a fi prelucrate, platforma să fie 100% disponibilă. Sunt două direcții pe care se merge în acest sens:
Trebuie asigurată disponibilitatea platformei în momentul penelor de curent – în acest sens vorbim de existența unor dispozitive de tip UPS și generatoare electrice. UPS-urile au dublu rol: de a regulariza tensiunea de alimentare în momentul apariției fluctuațiilor majore de tensiune care pot distruge echipamentele și de a asigura tensiunea de alimentare în momentul în care pică tensiunea (din momentul întreruperii până în momentul în care pornește generatorul)
Disponibilitatea datelor trebuie să fie asigurată indiferent de ceea ce se întâmplă cu platforma. Apare așadar conceptul de cluster, în care fiecare componentă este dublată. Platforma rezultată permite, pe lângă disponibilitatea de 99,9% a platformei, o flexibilitate în ceea ce privește operațiile de întreținere. Vorbim aici de update-uri, upgrade-uri, patch-uri, extensii de platformă etc.
Disponibilitatea ridicată implică mai multe componente. În acest caz, este nevoie de mai mult decât două servere. Este nevoie de un sistem de stocare dedicat, sistem care poate servi datele către cele două servere în mod simultan. A avea doar două servere implică un trafic de date ridicat între cele 2, trafic ce induce o latență crescută a răspunsului pe care îl primesc utilizatorii conectați de la distanță. Storage-ul dedicat include două controllere (pentru redundanță) care, de asemenea, permit disponibilitatea 99,9% a datelor stocate. Operațiile de mentenanță se pot face în orice moment al zilei, fără teama de a întrerupe accesul la date.
Dacă există finanțarea corespunzătoare, platforma poate aveam mai mult de două servere. În acest caz, trebuie să introducem o rețea dedicată pentru storage (SAN). Având în vedere natura platformei și aplicațiile care rulează pe ea, SAN-ul trebuie să fie făcut pe fibră optică. Fibra optică permite o latență mică și poate gestiona calupuri mari de date către mai multe servere simultan.
Vorbim astfel de o arhitectură distribuită. Din punct de vedere arhitectural, în contextul în care avem finanțare, infrastructura IT care susține platforma VIPRO poate fi reprezentată în acest fel:
Toate aceste interconectări sunt posibile pe bază de autentificare. Vorbim aici de serverul de Active Directory, server care este la rândul lui dublat pentru redundanță. Serverul de Active Directory este astfel elementul central în jurul căruia se creionează întreaga infrastructură. Prin intermediul acestuia se autentifică atât serverele care fac parte din această infrastructură, cât și utilizatorii care urmează a folosi platforma. Din interfața de administrarea se creează grupuri de utilizatori. Drepturile de acces, permisiunile, sunt acordate acestor grupuri. Sunt create grupurile de acces asociate fiecărui rol de utilizator, pentru ușurința administrării. Tot pe aceste grupuri sunt setate și duratele de acces. Astfel, în momentul în care un utilizator nou solicită acces, el este introdus într-un astfel de grup în care sunt toate drepturile presetate.
Contribuții originale și concluzii
În această teză, pentru a ajunge la scopul propus, am studiat o serie de lucrări științifice, cercetări de bază în acest domeniu și, pornind de la aceste cercetări am adus o serie de îmbunătățiri semnificative ale căror rezultate au fost diseminate în lucrări de specialitate și în conferințe internaționale de specialitate. Rezultatele obținute poti fi accesate de la distanță prin metode de e-learning.
Concluzii privind elaborarea strategiilor de control al roboților mobili autonomi prin dezvoltarea tehnicilor de inteligență artificială
Pornind de la platforma de simulare și experiementare VIPRO, folosind metoda proiecției virtuale, cunoscută și sub numele de Vlădăreanu-Munteanu, am putut testa și experimenta algoritmi de inteligență artificială pe intefețe inteligente. Astfel am putut simula comportamentul robotului în medii eterogene și neuniforme.
Prin folosirea platformei VIPRO se îmbunătățește semnificativ timpul de simulare al unei tehnici de control folosind algoritmii de inteligență artificială. În același timp s-au putut testa algoritmii de inteligență artificială fără a avea access fizic la o structură mecanică.
Prin aplicarea algoritmilor de inteligență artificială pe o interfață inteligentă de control a mâinii unui robot mobil, robot care este un sistem cu arhitectură deschisă ce conține și alte metode și mecanisme de control, îmbunătățește semnificativ precizia poziționării mâinii robotului. De asemenea detectează în mod precis poziția mâinii atât în spțiul robot, cât și în spațiul cartezian.
Folosirea platformei VIPRO a permis interfațarea cu un sistem de calcul tradițional, conectat la o rețea de date. Acest lucru a permis autorului intefațarea cu un sistem de control de la distanță (remote control) și cu un sistem de cursuri on-line (e-learning și e-courses).
Analizând rezultatele obținute în urma simulării Matlab, Simulync și LabView se observă că, prin aplicarea tehnicilor de inteligență artificială, putem obține un plus de performanță al interfețelor inteligente. Rezultatele obținute sunt comparabile cu ale altor cercetători, dar cu o robustețe crescută a platformei de control. Au fosr aduse contribuții în rejectarea semnalelor de zgomot din exterior ceea ce a dus la creșterea performanței interfeței în procesul de urmărire a unei referințe.
Această teză a făcut posibilă interfațarea platformei de simulare cu mijloacele moderne de control de la distanță. Noul sistem permite inclusiv testarea de la distanță a rezultatelor altor cercetători care au nevoie de un simulator performant al unui sistem mecanic, fără a avea nevoie efectiv de accesul direct la acesta. Întrucât sistemul cu arhitectură deschisă poate simula toate condițiile de mediu, inclusiv zgomote și perturbații, rezultatele obținute sunt similare celor din mediile reale.
Rezultatele obținute sunt utile cercetătorilor în domeniu, inginerilor, dar și studenților care vor să își testeze proprii algoritmi. Noile tehnici de modelare și simulare permit utilizatorului să încarce orice tip de algoritm de inteligență artificială.
Contribuții originale ale autorului
În urma cercetărilor din timpul perioadei doctorale am studiat o serie de soluții în controlul roboților în vederea înțelegerii modului în care pot fi interfațate cu o structură de comandă și control de la distanță.
Dintre contribuțiile autoruluui menționăm:
Am realizat un studiu comparativ al cercetărilor în domeniul interfețelor inteligente, în urma cărora a rezultat faptul că domeniul este unul de interes pentru comunitatea științifică de profil
Am conceput, testat și implementat o nouă interfață inteligentă a platformei VIPRO, de control al mâinii unui robot mobil, cu precizie ridicată, în care, pornind de la spațiul robot, putem determina coordonatele arteziene.
Am realizat modelări și simulări ale interfețelor inteligente și ale filtrărilor de date provenite de la senzori și traductoare. Filtrările Kalman, sub diverse forme, sunt cele care oferă datele relevante pentru interfețele inteligente.
Am făcut experimente virtuale pentru:
Testarea contribuțiilor aduse tehnicilor de inteligență artificială:
Testarea performanțelor interfeței de control a mâinii robotului mobil
Testarea, folosind funcția anfis, a preciziei cinematicii directe a mâinii robotului.
Îmbunătățirea algoritmilor de calcul a cinematicii directe și inverse
Am realizat un sistem de control de la distanță (remote control) a unui mediu robot simulat. Am configurat serverul de date pe care sunt instalate componentele de modelare și simulare pentru accesul controlat de la distanță, control care se poate face pe baza unei programări în care sunt trecute datele în care se dorește accesul și tipul de platformă de modelare la care utilizatorul solicită accesul. Administratorul sistemului, după ce validează cererea utilizatorului, îi permite acestuia accesul.
Diseminarea rezultatelor
Pe baza cercetărilor efectuate, am elaborat, susținut și publicat un număr de 10 lucrări științifice în domeniul cercetărilor abordate în cadrul tezei. Acestea au fost publicate în cadrul unor manifestări științifice naționale și internaționale, precum și în reviste de specialitate de prestigiu, cum este Revue Roumaine Des Sciences Techniques – Série de Mécanique Appliquée a Academiei Române, lucrare indexată ISI proceedings, care a fost prezentată și în cadrul conferinței de la Houston, University of Down-Town și o serie de lucrări prezentate în conferințe organizate sub egida Academiei Române. Vizibilitatea este întărită de colaborări cu cercetători de renume din țară și din străinătate: Prof. Hongnian Yu de la Universitatea Bournemouth UK, Prof. Radu Ioan Munteanu, de la Universitatea Tehnica din Cluj-Napoca, Prof. Ovidiu I. Sandru, de la Universitatea Politehnică din București.
Nivelul științific ridicat al cercetărilor efectuate a fost accentuat prin colaborări internaționale în cadrul proiectului european FP7, IRSES, RABOT „Real-time adaptive networked control of rescue robots” cu partenerii de proiect Staffordshire Universitz din UK, Shanghai Jiao Tong University China, Institute of Automation Chinese Academy of Sciences China, Yanshan University din China, în care am participat ca membru in în echipa Prof. Vlădăreanu, coordonator IMSAR.
Am făcut parte din echipa de cercetare a proiectului „Cercetări fundamentale și aplicative pentru controlul hibrid forță-poziție al roboților pășitori modulari în sisteme cu arhitectură deschisă”, din programul de cercetare fundamentala programul PNII “Cercetări exploratorii” – IDEI, ID 005/2007-2010, finanțat de ANCS. Pornind de la acest proiect, am contribuit la realizarea propunerii de proiect coordonata de Prof. Vlădăreanu, “Platforma robot versatile, inteligenta, portabila cu sisteme de control în rețele adaptive pentru roboți de salvare ” VIPRO, ID2009-2014-2016.
Am făcut parte din echipa de cercetare care a luat medalia de aur la Salonul Internațional de Inventică de la Geneva pentru „Sistem pentru dezvoltarea într-un mediu virtual folosind interfețe inteligente”
Articole și publicații
Reviste ISI
Vladareanu, L., Tont, G., Ion, I., Munteanu, M. S., Mitroi, D., "Walking Robots Dynamic Control Systems on an Uneven Terrain", Advances in Electrical and Computer Engineering, ISSN 1582-7445, e-ISSN 1844-7600, vol. 10, no. 2, pp. 146-153, 2010, doi: 10.4316/AECE.2010.02026, https://www.aece.ro/abstractplus.php?year=2010&number=2&article=26
ISI Proceedings
Vladareanu L; Tont G; Ion I; Vladareanu V; Mitroi D; Modeling and Hybrid Position-Force Control of Walking Modular Robots; Proceedings of The American Conference on Applied Mathematics; Pag:510-518; American Conference on Applied Mathematics JAN 27-29, 2010 Harvard Univ, Cambridge, MA; ISBN: 978-960-474-150-2.
LuigeVladareanu, Ion Ion, Lucian M. Velea, Adrian Curaj, Daniel Mitroi, The Hybrid Position And Force Control Of Robots With Compliance Function By Open Architecture Systems, Proceedings of the 2009 International Conference On Information & Knowledge Engineering, Nevada, USA, The 2009 World Congress In Computer Science, Computer Engeneering, And Applied Computing, July 13-16, 2009, Las Vegas, Nevada, SUA, pg. 450-455, ISBN: 1-60132-114-7, 1-60132-115-5 (1-60132-116-3), Published by CSREA Press,
LuigeVladareanu, Ion Ion, Lucian M. Velea, Daniel Mitroi, Alexandru Gal, “The Real Time Control of Modular Walking Robot Stability”, Recent Advances in Electrical Engineering, A Series of Reference Books and Textbooks, Published by WSEAS Press, Proceedings of the 8th International Conference on Applications of Electrical Engineering (AEE ’09), Houston, USA,pg.179-186, ISSN: 1790-5117 , ISBN: 978-960-474-072-7, ISI Proceedings
LuigeVladareanu, Ion Ion, EugenDiaconescu, Gabriela Toni, Lucian M. Velea, Daniel Mitroi, The Hybrid Position and Force Control of Robots with Compliance Function, 10th WSEAS Int. Conf. On Mathematical and Computational Methods in Science and Engineering (MACMESE'08), Bucharest, Romania, November 7-9, 2008, pg. 384-410, ISI Proceeding
LuigeVladareanu, Mihaela Iliescu, Lucian M. Velea, Daniel Mitroi, The Multi-Tasking Robot Control through Open Architecture Systems, 8th WSEAS International Conference on SYSTEMS THEORY and SCIENTIFIC COMPUTATION (ISTASC’08) Rhodes, Greece, August 20-22, 2008, pg. 185.191, ISSN: 1790-2769, ISBN: 978-960-6766-96-1, ISI Proceedings
BDI Journals:
LuigeVladareanu, Ion Ion, Marius Velea, Daniel Mitroi, The Robot Hybrid Position and Force Control in Multi-Microprocessor Systems, WSEAS Transation on Systems, Issue 1, Vol.8, 2009, pg.148-157, ISSN 1109-2777, BDI Journals – INSPEC
LuigeVladareanu, Ion Ion, Mihai Munteanu, Daniel Mitroi, ¨MERO Modular Walking Robots Control, Revue Roumaine ds Sciences Techniques serie de ¨MecaniqueAppliquee, no.1, tome 53, janvier-avril 2008, Editura AcademieiRomane, pr.55-63, ISSN : 0035-4074
Luige Vladareanu, Marcel Migdalovici, Mihaiela Iliescu, Eugen Albu, Hongbo Wang, Yongfei Feng, Jianye Niu, Daniel Mitroi, “Functional and experimental model architecture on the VIPRO platform for 3D simulation of the mobile robots”, Romanian Academy, Institute of Solid Mechanics, RO, Yanshan University, Parallel Robot and Mechatronic System Laboratory of Hebei Province, Qinhuangdao, 066004, China.
Oana Chenaru, Gelu Florea, Catalin-Eugen Simion, Daniel Mitroi, Alexandru Gal, Octavian Melinte, “Remote Control and eLearning Users for Virtual Reality through Virtual Projection” 1SIS SA, Romanian Academy, Institute of Solid Mechanics
Propuneriproiecte FP7:
L. Vladareanu, responsabilproiect, propunereproiect cu titlul ¨ Open Architecture Systems for Nano-Micro Manipulators Working in a Cooperative Regime¨ , Acronym: ARMSCOR, Cal FP7-NMP-2009-SMALL-3, Theme 4 – NMP – Nanosciences, Nanotechnologies, Materials and new Production Technologies, Work programme topics: NMP-2009-3.2-2 Adaptive control systems for responsive factories, ID 246003, confortiu format din Staffordshire University, UK, University Politecnica of Valencia, Spain, Belfort Montbéliard University, FR., Institute for Information Technology, DE, City University, UK, CEDRAT Technologies, FR., University of Amiens, FR., Industrial Systems Institute, GR.
Referinte bibliografice
Anexe
Filtrarea Kalman în timp continuu
function HinfEx1b(SSFlag, BiasFlag)
if ~exist('SSFlag', 'var')
SSFlag = 1;
end
if SSFlag ~= 0
KK = (1+sqrt(5))/(3+sqrt(5));
theta = 1/3;
PH = (1-theta+sqrt((theta-1)*(theta-5)))/2/(1-theta);
KH = PH * inv(1 – theta * PH + PH);
end
kf = 20;
PK = 1;
PH = PK;
Q = 10;
R = 10;
x = 0;
xhatK = x + sqrt(PK);
xhatH = xhatK;
xArr = [x];
xhatKArr = [xhatK];
xhatHArr = [xhatH];
for k = 1 : kf
y = x + sqrt(R) * randn;
if SSFlag == 0
KK = PK * inv(1 + PK) * R;
PK = PK * inv(1 + PK) + Q;
KH = PH * inv(1 – PH/2 + PH) * R;
PH = PH * inv(1 – PH/2 + PH) + Q;
end
x = x + sqrt(Q) * randn;
if BiasFlag
x = x + 10;
end
xhatK = xhatK + KK * (y – xhatK);
xhatH = xhatH + KH * (y – xhatH);
xArr = [xArr x];
xhatKArr = [xhatKArr xhatK];
xhatHArr = [xhatHArr xhatH];
end
k = 0 : kf;
close all;
figure; hold on;
plot(k, xArr, 'k', 'LineWidth', 2.5);
plot(k, xhatKArr, 'r–', k, xhatHArr, 'b:');
set(gca,'FontSize',12); set(gcf,'Color','White');
legend('Starea de adevar', 'Estimarea Kalman', 'Estimarea H_{\infty}');
xlabel('timp'); ylabel('state value');
set(gca,'box','on');
RMSK = sqrt(norm(xArr-xhatKArr)^2/(kf+1));
RMSH = sqrt(norm(xArr-xhatHArr)^2/(kf+1));
disp(['Eroarea estimarii Kalman RMS= ', num2str(RMSK)]);
disp(['Eroarea estimarii H-infinit RMS = ', num2str(RMSH)]);
Filtrarea Kalman extinsă cu filtrarea stării inițiale
x0 = [0;2];
A = [0 1;0 0];
B = [0;1];
C = [1 0];
D = 0;
Q = eye(2);
R = 1;
x1 = [0;1];
A1 = A;
B1 = B;
C1 = C;
D1 = D;
Q1 = Q;
R1 = R;
P1 = 10*eye(2);
tspan = 0:0.1:100;
u = sin(tspan'/2+randn(1001,1));
[t,x,y1,y2,y3,y4]=sim('kalmanbucy',tspan,[],[tspan' u]);
Xtrue = y1(:,1);
Vtrue = y1(:,2);
Z = y2;
X = y3;
% Analiza pozitiei
figure;
set(gcf,'Position', [100 100 600 800]);
subplot(211)
plot(t,Xtrue,'g',t,Z,'c',t,X(:,1),'m','linewidth',2);
title('Pozitia estimata');
xlabel('Timp (s)');
ylabel('Pozitie (m)');
legend('Pozitia reala','Valori masurate','Deplasarea estimata in urma filtrarii','Locatia','optim');
% Analiza vitezei
InstantV = [10;diff(Z)./diff(t)];
WindowSize = 5;
InstantVAverage = filter(ones(1,WindowSize)/WindowSize,1,InstantV);
% Afisare grafica;
subplot(212)
plot(t,InstantV,'g',t,InstantVAverage,'c',t,Vtrue,'m',t,X(:,2),'k','linewidth',2);
title('Viteza estimata');
xlabel('Timp (s)');
ylabel('Viteza (m/s)');
legend('Viteza estimata folosind esantioane consecutive','Viteza estimata folosind media','Viteza reala','Viteza estimata de filtrul Kalman','Locatia','optim');
Cod sursă pentru comparația între filtrarea Kalman extinsă și cea în timp continuu
function HinfEx1b(SSFlag, BiasFlag)
if ~exist('SSFlag', 'var')
SSFlag = 1;
end
if SSFlag ~= 0
KK = (1+sqrt(5))/(3+sqrt(5));
theta = 1/3;
%theta = 1/10;
PH = (1-theta+sqrt((theta-1)*(theta-5)))/2/(1-theta);
KH = PH * inv(1 – theta * PH + PH);
end
kf = 20;
PK = 1;
PH = PK;
Q = 10;
R = 10;
x = 0;
xhatK = x + sqrt(PK);
xhatH = xhatK;
xArr = [x];
xhatKArr = [xhatK];
xhatHArr = [xhatH];
for k = 1 : kf
y = x + sqrt(R) * randn;
if SSFlag == 0
KK = PK * inv(1 + PK) * R;
PK = PK * inv(1 + PK) + Q;
KH = PH * inv(1 – PH/2 + PH) * R;
PH = PH * inv(1 – PH/2 + PH) + Q;
end
x = x + sqrt(Q) * randn;
if BiasFlag
x = x + 10;
end
xhatK = xhatK + KK * (y – xhatK);
xhatH = xhatH + KH * (y – xhatH);
xArr = [xArr x];
xhatKArr = [xhatKArr xhatK];
xhatHArr = [xhatHArr xhatH];
end
k = 0 : kf;
close all;
figure; hold on;
plot(k, xArr, 'k', 'LineWidth', 2.5);
plot(k, xhatKArr, 'r–', k, xhatHArr, 'b:');
set(gca,'FontSize',12); set(gcf,'Color','White');
legend('Starea de adevar', 'Estimarea Kalman', 'Estimarea H_{\infty}');
xlabel('timp'); ylabel('state value');
set(gca,'box','on');
RMSK = sqrt(norm(xArr-xhatKArr)^2/(kf+1));
RMSH = sqrt(norm(xArr-xhatHArr)^2/(kf+1));
disp(['Eroarea estimarii Kalman RMS= ', num2str(RMSK)]);
disp(['Eroarea estimarii H-infinit RMS = ', num2str(RMSH)]);
Funcție de calcul al câștigului filtrării Kalman
function [k,s] = kfilter(A,C,V1,V2,V12)
m=max(size(A));
[rc,cc]=size(C);
if nargin==4; V12=zeros(m,rc); end;
if (rank(V2)==rc);
A=A-(V12/V2)*C;
V1=V1-V12*(V2\V12');
[k,s]=doubleo(A,C,V1,V2);
k=k+(V12/V2);
else;
s0=.01*eye(m);
dd=1;
it=1;
maxit=1000;
while (dd>1e-8 & it<=maxit);
k0= (A*s0*C'+V12)/(V2+C*s0*C');
s1= A*s0*A' + V1 -(A*s0*C'+V12)*k0';
k1= (A*s1*C'+V12)/(V2+C*s1*C');
dd=max(max(abs(k1-k0)));
it=it+1;
s0=s1;
end;
k=k1;s=s0;
if it>=maxit;
disp('ATENTIE: S-a atins limita de 1000 de iteratii');
end;
end;
Cercetări experimentale asistate de calculator, simularea și validarea modelelor matematice elabotate
function [C,v]=commclasses(P)
%Intrare – P este o matrice stocastica
%Iesirea – C este o matrice cu 0 si 1.
% – C(i,j) este 1 daca si numai daca j este clasa prin care comunica i
[m, m]=size(P);
T=zeros(m,m);
i=1;
while i<=m
a=[i];
b=zeros(1,m);
b(1,i)=1; old=1; new=0;
while old ~= new
old=sum(find(b>0));
[ignore,n]=size(a);
c=sum(P(a,:),1);
d=find(c>0);
[ignore,n]=size(d);
b(1,d)=ones(1,n);
new=sum(find(b>0));
a=d;
end
T(i,:)=b; i=i+1;
end
F=T';
C=T&F;
v=(sum(C'==T')==m);
Cod sursă pentru comparatia între filtrarea Kalman extinsaă și distribuită
function HinfEx1b(SSFlag, BiasFlag)
if ~exist('SSFlag', 'var')
SSFlag = 1;
end
if SSFlag ~= 0
KK = (1+sqrt(5))/(3+sqrt(5));
theta = 1/3;
PH = (1-theta+sqrt((theta-1)*(theta-5)))/2/(1-theta);
KH = PH * inv(1 – theta * PH + PH);
end
kf = 20;
PK = 1;
PH = PK;
Q = 10;
R = 10;
x = 0;
xhatK = x + sqrt(PK);
xhatH = xhatK;
xArr = [x];
xhatKArr = [xhatK];
xhatHArr = [xhatH];
for k = 1 : kf
y = x + sqrt(R) * randn;
if SSFlag == 0
KK = PK * inv(1 + PK) * R;
PK = PK * inv(1 + PK) + Q;
KH = PH * inv(1 – PH/2 + PH) * R;
PH = PH * inv(1 – PH/2 + PH) + Q;
end
x = x + sqrt(Q) * randn;
if BiasFlag
x = x + 10;
end
xhatK = xhatK + KK * (y – xhatK);
xhatH = xhatH + KH * (y – xhatH);
xArr = [xArr x];
xhatKArr = [xhatKArr xhatK];
xhatHArr = [xhatHArr xhatH];
end
k = 0 : kf;
close all;
figure; hold on;
plot(k, xArr, 'k', 'LineWidth', 2.5);
plot(k, xhatKArr, 'r–', k, xhatHArr, 'b:');
set(gca,'FontSize',12); set(gcf,'Color','White');
legend('Starea de adevar', 'Estimarea Kalman', 'Estimarea H_{\infty}');
xlabel('timp'); ylabel('state value');
set(gca,'box','on');
RMSK = sqrt(norm(xArr-xhatKArr)^2/(kf+1));
RMSH = sqrt(norm(xArr-xhatHArr)^2/(kf+1));
disp(['Eroarea estimarii Kalman RMS= ', num2str(RMSK)]);
disp(['Eroarea estimarii H-infinit RMS = ', num2str(RMSH)]);
Filtrarea Kalman extinsa cu filtrarea starii initiale
%% Examplul 1: Estimarea pozitiei unui robot mobil autonom
%
%
x0 = [0;2];
A = [0 1;0 0];
B = [0;1];
C = [1 0];
D = 0;
Q = eye(2);
R = 1;
x1 = [0;1];
A1 = A;
B1 = B;
C1 = C;
D1 = D;
Q1 = Q;
R1 = R;
P1 = 10*eye(2);
tspan = 0:0.1:100;
u = sin(tspan'/2+randn(1001,1));
% u = randn(1001,1);
[t,x,y1,y2,y3,y4]=sim('kalmanbucy',tspan,[],[tspan' u]);
Xtrue = y1(:,1);
Vtrue = y1(:,2);
Z = y2;
X = y3;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Analiza pozitiei %%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure;
set(gcf,'Position', [100 100 600 800]);
subplot(211)
plot(t,Xtrue,'g',t,Z,'c',t,X(:,1),'m','linewidth',2);
title('Pozitia estimata');
xlabel('Timp (s)');
ylabel('Pozitie (m)');
legend('Pozitia reala','Valori masurate','Deplasarea estimata in urma filtrarii','Locatia','optim');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Analiza vitezei %%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
InstantV = [10;diff(Z)./diff(t)];
WindowSize = 5;
InstantVAverage = filter(ones(1,WindowSize)/WindowSize,1,InstantV);
% figure;
subplot(212)
plot(t,InstantV,'g',t,InstantVAverage,'c',t,Vtrue,'m',t,X(:,2),'k','linewidth',2);
title('Viteza estimata');
xlabel('Timp (s)');
ylabel('Viteza (m/s)');
legend('Viteza estimata folosind esantioane consecutive','Viteza estimata folosind media','Viteza reala','Viteza estimata de filtrul Kalman','Locatia','optim');
%% Examplul 2: 2 intrari 1 iesire 4 stari ale sistemului
A = [-1.4576 -0.3369 1.0503 3.7815
0.0979 -0.5998 0.2727 0.4077
1.7212 0.1711 -4.5537 1.1045
-3.5418 -0.3277 -1.7419 -0.9578];
B = [-0.1072 0
0 0.1000
-0.9640 0
0 0.1500];
C = [0.1685 -0.9595 -0.0755 -0.3771];
D = [0 0];
Q=diag([0.5^2 0.2^2 0.3^2 0.5^2]);
R=1;
x0 = [-1.7073
0.2279
0.6856
-0.6368];
A1 =A;
B1 = B;
C1 = C;
D1 = D;
Q1 = Q;
R1 = R;
x1 = zeros(4,1);
P1 = 10*eye(4);
tspan=0:0.1:100;
u = randn(11,2);
[t,x,y1,y2,y3,y4]=sim('kalmanbucy',tspan,[],[(0:10:100)' u]);
figure
set(gcf,'Position',[100 100 500 700])
for k=1:4
subplot(4,1,k)
plot(t,y1(:,k),'b',t,y3(:,k),'r','linewidth',2);
legend('Starea actuala','Starea estimata','Locatie','optim')
title(sprintf('Starea %i',k))
end
xlabel('time, s')
Cod sursă pentru cinematica directă a mâinii robotului NAO
Au fost create funcțiile prin care se face simularea cinematicii directe a brațului robotului Nao:
Funcția pentru cinematica directă a brațului în care sunt prelucrate unghiurile incheieturile mâinii robotului.
function [X,Y,Z]=dk_lc_daniel(u1,u2,u3,u4)
d3=90;
d5=50.55;
X=cos(u1)*(-d3*cos(u2)*cos(u3)*sin(u4)+sin(u2)*(d5*cos(u4)+d3))+sin(u1)*(d5*sin(u3)*sin(u4));
Y=sin(u1)*(-d5*cos(u2)*cos(u3)*sin(u4)+sin(u2)*(d5*cos(u4)+d3))+cos(u1)*(-d5*sin(u3)*sin(u4));
Z=-sin(u2)*(-d5*cos(u3)*sin(u4))-cos(u2)*(d5*cos(u4)+d3);
Funcția prin care sunt estimate coordonatele carteziene din coordonatele spațiului robot
u1 = -2.0857:0.5:2.0857; % all possible u1 values
u2 = -1.6494:0.3:-0.0087;
u3 = -2.0857:0.5:2.0857;
u4 = 0.0087:0.1:1.5621;
num_ex=length(u1)*length(u2)*length(u3)*length(u4)
data1=zeros(num_ex,4); data2=zeros(num_ex,4); data3=zeros(num_ex,4); data4=zeros(num_ex,4);
ind=0;
for i1=1:1:length(u1)
for i2=1:1:length(u2)
for i3=1:1:length(u3)
for i4=1:1:length(u4)
[x,y,z]=dk_lc_daniel(u1(i1),u2(i2),u3(i3),u4(i4));
ind=ind+1;
data1(ind,:) = [x y z u1(i1)];
data2(ind,:) = [x y z u2(i2)];
data3(ind,:) = [x y z u3(i3)];
data4(ind,:) = [x y z u4(i4)];
end
end
end
end
X=data1(:,1);
Y=data1(:,2);
Z=data1(:,3);
plot3(X,Y,Z, 'r.');
title('X-Y-Z co-ordinates generated for all angle combinations using forward kinematics formula','fontsize',10)
Funcția prin care sunt facute estimările spațiului cartezian folosind funcția „anfis” din Matlab
% NO FIS SEEDING
fprintf('–>%s\n','Start training first ANFIS network.')
tic
[naon1, error1] = anfis(data1, 4, 50); % train first ANFIS network
toc
fprintf('–>%s\n','First ANFIS ready.')
fprintf('–>%s\n','Start training second ANFIS network.')
[naon2, error2] = anfis(data2, 4, 50); % train first ANFIS network
fprintf('–>%s\n','Second ANFIS ready.')
fprintf('–>%s\n','Start training third ANFIS network.')
[naon3, error3] = anfis(data3, 4, 50); % train first ANFIS network
fprintf('–>%s\n','Third ANFIS ready.')
fprintf('–>%s\n','Start training 4th ANFIS network.')
[naon4, error4] = anfis(data4, 4, 50); % train first ANFIS network
fprintf('–>%s\n','4th ANFIS ready.')
fprintf('–>%s\n','ALL DONE!!')
Lista abrevierilor
A
ACL –Agent Communication Language (Limbaj de Comunicație Agent)
AGV – Automated Guided Vehicle (Vehicul cu ghidare Automată)
C
CAD – Computer Aided Design (Proiectare asistată de calculator)
CAM – Computer Aided Manufacturing (Fabricație asistată de calculator)
CAE – Computer Aided Engineering (Inginerie asistată de calculator)
CPN – Coloured Petri Nets (Rețele Petri Colorate)
CNC – Computer Numerical Control (Control cu Comandă Numerică)
D
DES – Discrete Event System (Sistem cu Evenimente Discrete)
DRS – Distributed Robotic System (Sistem Robotic Distribuit)
DMQX – Distributed MQX (Sistem de Operare MQX pentru control distribuit)
F
FIPA – the Foundation for Intelligent Physical Agents (Fundația pentru Agenți Fizici)
FRC – Flexible Robotic Cell (Celulă Flexibilă Robotizată)
FMS – Flexible Manufacturing System (Sistem flexibil de fabricație)
G
GSPN – Generalized Stochastic Petri Nets (Rețele Petri Stocastice Generalizate)
I
IB – Intelligent Building
ICL – the Interagent Communication Language (Limbaj de Comunicație între Agenți)
J
JADE – Java Agent Development Framework (Mediu de dezvoltare pentru Agenți Java)
M
MQX –Message Queue eXecutive RTOS
MA – Multi Agent
O
OAA –Open Agent Architecture
OLE –Object Linking and Embedding (Integrare și Conectare Obiecte)
OPC –OLE for Process Control (OLE pentru Controlul Proceselor)
OPC-UA – OPC Unified Architecture (OPC cu Arhitectură Unificată)
P
PN – Petri Nets (Rețele Petri)
R
RC – Robotic Cell (Celulă Robotizată)
RTOS – Real Time Operating System (Sistem de Operare în timp Real)
P
PR – Platforma Robotică
PWM – Pulse Width Modulation (Modulația în Durată a Impulsurilor)
S
SMA – Sistem MultiAgent
V
VB – Visual Basic
VBA – VB for applications (VB pentru aplicații)
Lista de figuri
Fig. 2.1-1 Schema logică a unui robot 15
Fig. 2.7-1 Schema logică pentru fuziunea senzorială 19
Fig. 2.8-1 Urmărirea unui sistem folosing regula lui Bayes 22
Fig. 3.1-1 Arhitectura modelului functional si experimental al platformei VIPRO de modelare si simulare a robotilor mobili 27
Fig. 4.1-1 Filtrarea Kalman extinsă 33
Fig. 4.1-2 Createa estimării de stare pe baza fuziunii senzoriale 34
Fig. 4.1-3 Proiecția sistemului urmărit pe axele de coordonate 35
Fig. 4.1-4 Proiecția sistemului urmărit pe axele de coordonate în care ținem seama și de poziția sonarului 36
Fig. 4.1-5 Particularizarea robotului pentru un sonar 39
Fig. 4.1-6 Poziția robotului: a) măsurată; b) estimată 40
Fig. 4.2-1 Simularea Matlab a filtrării Kalman 42
Fig. 4.2-2 Simularea Matlab a filtrării Kalman la o scară mai mare 43
Fig. 4.2-3 Reprezentarea grafică a stărilor reale și estimate 44
Fig. 4.3-1 Reprezentarea Schematică a filtrării Kalman cu timp discret 47
Fig. 4.3-2 Starea reală și starea estimată folosind Kalman cu timp discret 47
Fig. 4.4-1 UIF – Filtrarea Kalman nesortată 51
Fig. 4.4-2 Urmărirea traiectoriei folosind filtrarea Kalman distribuită 55
Fig. 4.4-3 Interfața UIF care permite utilizatorului ajustarea parametrilor 56
Fig. 4.4-4 Diagrama bloc în LabView pentru UIF 57
Fig. 4.4-5 Referința sistemului 57
Fig. 4.4-6 Valorile inițiale ale coordonatelor și ale vitezei 58
Fig. 4.4-7 Diagrama bloc pentru filtrul Kalman 58
Fig. 4.4-8 Afișarea rezultatelor reale și simulate 59
Fig. 4.5-1 Rețele Petri 61
Fig. 5.1-1 Sistem cu arhitectura deschisa cu interfete inteligente (OAH) al platformei VIPRO 64
Fig. 5.2-1 Diagrama bloc a platformei VIPRO 68
Fig. 5.2-2 Implementarea modelului functional si experimental al platformei VIPRO 70
Fig. 5.3-1 Intefețe de control neutrosofic pentru platforma VIPRO 74
Fig. 5.6-1 Reprezentarea tuturor punctelor în care poate ajunge end-effectorul 78
Fig. 5.6-2 Reprezentarea în 2D a punctelor în care poate ajunge end-effectorul 79
Fig. 5.6-3 Reprezentarea în 2D din alt unghi a punctelor în care poate ajunge end-effectorul 80
Fig. 5.6-4 Reprezentarea cu o granularitate sporită a pozițiilor end-effectorului 81
Fig. 5.6-5 Reprezentarea 2D a punctelor de mai sus 81
Fig. 5.6-6 Reprezentarea 2D, privită din alt unghi 82
Fig. 5.6-7 Modificarea pasului de discretizare a unghiului 83
Fig. 5.6-8 Folosirea anfis2 pentru validarea rezultatelor algoritmului 84
Fig. 5.6-9 Selectarea tipurilor de intrări 85
Fig. 5.6-10 Reprezentarea grafică a ieșirii funcției anfis – input 1 86
Fig. 5.6-11 Reprezentarea grafică a ieșirii funcției anfis – input 2 86
Fig. 5.6-12 Reprezentarea grafică a ieșirii funcției anfis – input 3 87
Fig. 5.6-13 Funcția fuzzy de tip sugeno cu ieșirea reprezentată sub forma unor puncte 88
Fig. 5.6-14 Modificarea intrărilor pentru a observa ieșirea 89
Fig. 5.6-15 Alterarea ieșirii în funcție de variațiile intrării 90
Fig. 5.6-16 Funcția Symulink pentru validarea rezultatelor fuzzy 91
Fig. 5.6-17 Modulul de validare a funcției anfis 91
Fig. 5.6-18 Modulul Symulink în care s-a încarcat rutina Matlab 92
Fig. 5.6-19 Modul de afișarea a datelor 92
Fig. 5.6-20 Afișarea datelor simulate și a celor măsurate 93
Fig. 5.7-1 Schema logică a platformei VIPRO 94
Fig. 5.7-2 Schema logică prin care se obține accesul la platforma e-learning 98
Fig. 5.7-1 Extinderea platformei de e-learning in cloud 101
Fig. 5.7-2 Accesul de la distanță folosind tehnologii cloud 101
Fig. 5.7-3 Integrarea cu sistemele de autentificare a utilizatorilor 102
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Teza Daniel 1martie 2017 [304514] (ID: 304514)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
