Problema tehnică pe care o rezolvă invenţia este de a oferi unui utilizator o metodă de vizualizare în timp real a traiectoriei unui vehicul autonom, pe care acesta să o poată identifica şi percepe repede şi uşor în raport cu mediul în care se deplasează vehiculul.
Problema tehnică este rezolvată de această invenţie prin vizualizarea traseului unui vehicul autonom, suprapus peste imagini reale (prin realitate augmentată). O dificultate în aplicaţiile de acest gen este localizarea coordonatelor virtuale pe imaginea reală. Mai exact, pentru a afişa traiectoria pe ecranul dispozitivului de vizualizare, punctele traiectoriei trebuie exprimate în sistemul de coordonate a dispozitivului. În schimb, punctele traiectoriei sunt cunoscute doar în sistemul de coordonate a vehiculului. Invenţia de faţă cuprinde o metodă de a converti punctele între cele două sisteme.
Metoda de vizualizare a traseului unui vehicul autonom folosind realitate augmentată, conform invenţiei, integrează două subsisteme: un vehicul autonom care generează şi urmăreşte traiectorii, şi un dispozitiv capabil de a afişa informaţii prin realitate augmentată, folosit de utilizator, iar atunci când vehiculul autonom primeşte o destinaţie, calculează traiectoria pe care trebuie să o urmeze, apoi o converteşte în sistemul de coordonate al dispozitivului de vizualizare, şi o trimite spre dispozitivul de vizualizare care o afişează suprapusă peste imaginea reală, folosind realitate augmentată, pentru a fi inspectată manual de utilizator.
Pentru aplicarea metodei, în primul rând, este necesară conversia traiectoriei vehiculului din sistemul de coordonate al vehiculului în sistemul de coordonate al dispozitivului cu capabilităţi de realitate augmentată, iar apoi vizualizarea traiectoriei astfel obţinute în timp real.
Ideea inovatoare iese în evidenţă prin faptul că este uşor utilizabilă, deoarece prezintă traiectoria suprapusă pe imagini reale, creând o legătură între mediul virtual şi cel real. De asemenea, în soluţie se folosesc tehnici avansate de estimare a poziţiei relative între diferite sisteme de coordonate (reale şi virtuale). Această estimare permite dispozitivului să afişeze punctele traiectoriei în locaţiile potrivite pe imaginea reală.
Se pot folosi metode din stadiul tehnicii pentru:
- urmărirea locaţiei vehiculului şi a dispozitivului de afişare;
- determinarea traiectoriei vehiculului şi deplasarea între 2 puncte de pe hartă; - suprapunerea traiectoriei virtuale pe imaginea reală;
- operaţii de bază pe transformări între sisteme de coordonate.
Exemplul preferat de realizare a metodei, din care reies alte avantaje şi caracteristici, este prezentat în figurile următoare:
- fig.1, dispozitivul de vizualizare, afişând ruta vehiculului;
- fig.2, harta (reprezentarea digitală a mediului) vehiculului autonom, folosită pentru planificarea rutei;
- fig.3, legăturile dintre sistemele de coordonate pe parcursul etapei de estimare a transformării;
- fig.4, transformarea coordonatelor între două sisteme;
- fig. 5, sistemele de referinţă şi de coordonate ale vehiculului autonom şi ale dispozitivului de vizualizare;
- fig.6, diagrama paşilor etapei de estimare a transformării;
- fig.7, diagrama paşilor etapei de parcurgere a traseului.
În fig.1, se observă cele două sisteme folosite: robotul TurtleBot2 care are rolul de vehicul autonom 1 şi smartphone-ul Lenovo Phab2 Pro ca dispozitiv mobil de vizualizare 2. În alte exemple se pot folosi alte tipuri de vehicul autonom cu tehnologii pentru: urmărirea poziţiei şi orientării, planificarea rutelor, deplasarea pe aceste rute şi comunicarea prin reţea. De asemenea, în alte exemple se poate alege alt dispozitiv de vizualizare prin realitate augmentată care oferă: urmărirea poziţiei şi orientării, suprapunerea unor elemente virtuale pe imagini reale şi comunicare prin reţea. Comunicarea între cele două sisteme se realizează printr-o reţea fără fir, folosind cadrul software (eng. framework) Robot Operating System (ROS). De asemenea, fig.1 prezintă ruta 4 formată din puncte cheie 4a şi 4b pe care vehiculul o va urma.
În fig. 2, se ilustrează un exemplu de hartă (reprezentare digitală) a mediului înconjurător vehiculului autonom 1. Harta conţine obstacole (zonele de culoare închisă), pe care vehiculul le ia în considerare în calcularea rutei 4 spre o destinaţie 3. În acest exemplu, s-au folosit mai multe biblioteci din cadrul software Robot Operating System (ROS: gmapping pentru crearea hărţii; move_base pentru determinarea rutelor şi deplasarea; AMCL (Advanced Monte Carlo Localization) pentru urmărirea vehiculului (determinarea poziţiei şi orientării pe hartă).
Fig. 3 arată un exemplu de aşezare a dispozitivului de vizualizare 2 în raport cu vehiculul pentru aflarea transformării T RefDispozitiv_RefVehicul. Coordonatele punctelor cheie 4a, 4b sunt exprimate, iniţial, în sistemul de referinţă al vehiculului autonom 5, iar, pentru a fi vizualizate, trebuie convertite în sistemul de referinţă al dispozitivului de vizualizare 6. Pentru a face această conversie, este necesară funcţia de transformare 7 dintre cele două sisteme.
Un punct fix în spaţiu va avea coordonate diferite atunci când se raportează la două sisteme de coordonate diferite. Dacă se cunosc coordonatele punctului într-un sistem de coordonate şi relaţia dintre cele două sisteme, printr-o funcţie de transformare 7, în sine cunoscută în literatura de specialitate, se pot afla coordonatele punctului în celălalt sistem de coordonate.
Soluţia inovatoare pentru aflarea transformării începe prin alegerea unei poziţii relative la vehicul 1 unde să fie plasat dispozitivul de vizualizare 2. În exemplul acesta, poziţia prestabilită a dispozitivului 2 este pe vehicul 1, în centru, orientat paralel cu direcţia de mers. Transformarea T Dispozitiv_Vehicul, între sistemele 8 şi 9, se poate măsura: translaţia prin distanţele, pe fiecare axă, de la centrul dispozitivului de vizualizare până la baza robotului, iar rotaţia va consta doar în rotiri de 90º, 180º sau 270º în jurul uneia sau mai multor axe, deoarece axele sistemelor 8 şi 9 sunt paralele.
Transformarea T Vehicul_RefVehicul, între 5 şi 9, reiese din biblioteca de urmărire a vehiculului (AMCL).
Transformarea T Dispozitiv_RefDispozitiv, între 6 şi 8, reiese din biblioteca de urmărire a dispozitivului (Google Tango SDK).
Reamintim expresia pentru aflarea transformării T RefDispozitiv_RefVehicul. T RefDispozitiv_Dispozitiv · T Dispozitiv_Vehicul · T Vehicul_RefVehicul. Pentru compunerea şi inversarea transformărilor se poate folosi biblioteca TF din cadrul software ROS.
În stadiul tehnicii, o transformare (sau funcţie de transformare) între două sisteme de coordonate e alcătuită din translaţie (deplasare) şi rotaţie (fig.4). De obicei se reprezintă în formă matriceală. Transformările sunt folosite atât pentru conversia coordonatelor oricărui punct între sisteme, cât şi pentru a reprezenta poziţia şi orientarea unui obiect (e.g. locaţia vehiculului pe hartă).
Transformarea din sistemul B în A se notează cu T AB. Similar, poziţia şi orientarea obiectului A în raport cu sistemul L se e exprimată tot prin T AB (presupunând că pentru obiectul A s-a stabilit un sistem de referinţă, prin convenţie). Operaţiile uzuale sunt:
- înmulţirea (compunerea): T AB · T BC = T AC;
- conversia unui punct: T AB · ρ B = ρ A, unde ρ B, ρ A reprezintă coordonatele punctului ρ în sistemul B, respectiv A;
- inversarea
În fig.5 se pot observa sistemele de coordonate şi de referinţă folosite:
- RefVehicul: Sistemul de referinţă fix 5, al vehiculului 1, este un sistem fix în spaţiul de lucru al vehiculului autonom. Sistemul referinţă fix 5 poate fi stabilit în prealabil sau să fie ales ca poziţia şi orientarea vehiculului în momentul pornirii sistemului. În realizarea practică s-a folosit o poziţie şi orientare aleasă în prealabil;
- Vehicul: Sistemul de coordonate mobil 9 al vehiculului 1, este un sistem de coordonate legat de vehiculul autonom şi care se deplasează odată cu acesta. Este stabilit prin convenţie: centrul sistemului se află în partea de jos a vehiculului, în centru. Axa OX este îndreptată înainte, în direcţia de mers a vehiculului, OY spre stânga, iar OZ în sus. Relaţia spaţială între acest sistem (9) şi cel de referinţă (5) al vehiculului este urmărită în permanenţă prin intermediul bibliotecii software AMCL din cadrul ROS;
- RefDispozitiv: Sistemul de referinţă fix 6 al dispozitivului de vizualizare 2 - locaţia dispozitivului în momentul pornirii aplicaţiei. Din cauză că dispozitivul 2 nu are o hartă a mediului, ci doar măsoară modificarea poziţiei şi orientării, pentru sistemul 6 s-a considerat poziţia şi orientarea în momentul pornirii sistemului;
- Dispozitiv: Sistemul de coordonate mobil 8 al dispozitivului de vizualizare 2, este un sistem de coordonate legat de dispozitiv şi care se deplasează odată cu acesta. Este stabilit prin convenţie: centrul sistemului coincide cu centrul spaţial al dispozitivului. Orientarea axelor e stabilită după regulile: axa OX este îndreptată spre dreapta, OY spre spatele dispozitivului, iar OZ în sus, în condiţiile în care dispozitivul e ţinut orizontal (cu latura mai lungă paralelă cu podeaua). Relaţia spaţială între acest sistem 8 şi cel de referinţă 6 al dispozitivului este urmărită în permanenţă prin intermediul bibliotecii software Google Tango SDK.
Pentru suprapunerea traiectoriei digitale peste harta reala este necesară determinarea transformării între sistemul de referinţă 5 al vehiculului 1 şi cel al dispozitivului de afişare (sistemul de referinţă 6).
Transformările T Vehicul_RefVehicul şi T Dispozitiv_RefDispozitiv reprezintă poziţia şi orientarea vehiculului, respectiva dispozitivului, şi pot fi obţinute folosind algoritmi de urmărire din stadiul tehnicii.
Pentru a crea o legătură între sistemele de referinţă, conform invenţiei, utilizatorul aşează dispozitivul de vizualizare într-o locaţie prestabilită faţă de vehicul (de exemplu: în fig.3 e situat pe vehicul). În prealabil, trebuie măsurată translaţia şi rotaţia (pe fiecare axă) între locaţia prestabilită (sistemul de coordonate 8) şi sistemul de coordonate al vehiculului 9, folosind e.g. ruletă şi raportor. Pentru a uşura procedura, se recomandă plasarea dispozitivului astfel încât orientarea să fie paralelă axelor sistemului de referinţă al vehiculului, şi cât mai aproape de centrul sistemului. Aceste măsurători formează transformarea T Dispozitiv_Vehicul care este valabilă doar când dispozitivul se află în locaţia prestabilită.
În aceste momente, se determină transformarea T RefDispozitiv_RefVehicul, 7 prin compunerea transformărilor:
T Re fDispozitiv _ Dispozitiv · T Dispozitiv _ Vehicul · T Vehicul _Re fVehicul
unde T RefDispozitiv_Dispozitiv se obţine prin inversarea T Dispozitiv_RefDispozitiv.
Fig.6 şi 7 ilustrează paşii metodei de vizualizare. Metoda are două etape: cea de estimare a transformării compuse (bazată pe paşii de calibrare) şi etapa de parcurgere a traseului. Paşii sunt comuni realizărilor invenţiei, doar tehnologiile (bibliotecile) menţionate în continuare se referă la un exemplu. Înainte de a parcurge paşii, e necesar să se fi măsurat manual transformarea T Dispozitiv_Vehicul conform detaliilor de mai sus.
Fig. 6 prezintă activităţile primei etape, cea de estimare a transformării (a poziţiei relative) din sistemul vehiculului în cel al dispozitivului de vizualizare. Etapa începe cu iniţializarea sistemelor de urmărire, atât pentru vehicul cât şi pentru dispozitiv. Utilizatorul plasează dispozitivul în poziţia prestabilită şi notifică sistemul, de exemplu prin apăsarea unui buton pe de pe staţia de lucru a vehiculului. Vehiculul colectează transformările rezultate din algoritmii de urmărire (comunicate prin reţea, folosind ROS) şi determină transformarea T RefDispozitiv_Refvehicul, 7 în modul descris anterior. Din acest moment, operatorul poate ridica dispozitivul de vizualizare.
Fig.7 indică paşii etapei de parcurgere a traseului. Aceasta e iniţiată de operator, care stabileşte destinaţia 3 vehiculului, folosind staţia de lucru a vehiculului care afişează o hartă a spaţiului înconjurător (fig. 2). Vehiculul generează o rută 4 pentru a ajunge la destinaţie. Ruta 4 e alcătuită din mai multe puncte cheie (4a, 4b), din care fiecare e convertit în sistemul de referinţă 6 al dispozitivului de vizualizare 2. Punctele cheie transformate sunt trimise prin reţea, folosind ROS, dispozitivului de vizualizare 2, după care vehiculul 1 îşi începe/continuă deplasarea. Deplasarea se realizează treptat: după parcurgerea unei distanţe scurte, vehiculul regenerează traseul (elimină din traseu segmentul parcurs, iar în cazul în care senzorii detectează obstacole neprevăzute, generează o rută ocolitoare). Generarea rutei şi deplasarea sunt realizate de biblioteca move_base.
Pe tot parcursul deplasării, ultima rută generată este afişată prin intermediul realităţii augmentate. Pentru fiecare două puncte cheie adiacente, se generează un cilindru virtual subţire care le conectează, cilindrii formând ruta 4 din fig.1. Aceşti cilindri sunt suprapuşi pe imaginea reală folosind o bibliotecă de OpenGL pentru Android, precum Rajawali. Operatorul poate inspecta vizual traseul, mişcând dispozitivul de vizualizare pentru a observa calea completă. Tehnologia din Google Tango SDK asigură că cilindrii virtuali vor apărea nemişcaţi când dispozitivul de vizualizare îşi schimbă orientarea. În cazul depistării unei nereguli, operatorul poate să trimită un semnal de oprire vehiculului.
Metoda de vizualizare a traseului unui vehicul autonom folosind realitate augmentată presupune realizarea următorilor paşi:
- calibrarea dintre vehiculul autonom 1 şi sistemul de vizualizare 2;
- vehiculul autonom 1 primeşte destinaţia 3 şi calculează ruta 4 în raport cu sistemul de referinţă 5 al vehiculului 1;
- vehiculul converteşte punctele cheie (4a, 4b) ale rutei 4 în sistemul de referinţă 6 al dispozitivului de vizualizare 2;
- vehiculul transmite ruta 4 la dispozitivul 2, trimiţând coordonatele fiecărui punctcheie (4a, 4b) printr-o reţea fără fir;
- dispozitivul de vizualizare 2 prelucrează informaţiile vehiculul autonom: pentru fiecare 2 puncte-cheie consecutive (4a, 4b), determină un cilindru în jurul liniei care le uneşte, cu scopul de a fi afişat în pasul următor. Astfel, ruta 4 devine o listă de cilindri;
- dispozitivul de vizualizare 2 suprapune harta digitală cu ruta 4 şi poziţia robotului pe imaginea reală.
Faza de calibrare se realizează o singură dată (poate fi refolosită) şi presupune realizarea următorilor paşi:
- se măsoară manual translaţia şi rotaţia dintre sistemul de coordonate 9 al vehiculului 1 şi sistemul de coordonate 8 al dispozitivului de vizualizare 2, iar rezultatele măsurătorii se introduc în algoritmul de calibrare;
- se iniţializează urmărirea vehiculului 1 şi a dispozitivului de vizualizare 2;
- se aşează dispozitivul 2 într-o poziţie predefinită, marcată, relativă la vehicul 1, (de exemplu, conform fig.3);
- utilizatorul notifică sistemul de faptul că dispozitivul a fost aşezat. Notificarea se poate realiza de exemplu prin apăsarea unui buton al vehiculului, sau trimiţând un semnal prin reţea de pe o staţie de lucru separată;
- dispozitivul de vizualizare 2 trimite poziţia şi orientarea sistemului de coordonate 8, al său către vehicul 1;
- vehiculul 1 determină poziţia şi orientarea sistemului său de coordonate 9, şi calculează transformarea 7 folosită pentru transformarea coordonatelor punctelor caracteristice de pe ruta 4 dintre sistemul de referinţă 5 al vehiculului 1 în sistemul de referinţă 6 al dispozitivului de vizualizare 2.