Intuitivno vodenje robotske roke s kretnjami Domen Ulbl1, 1Fakulteta za elektrotehniko, računalništvo in informatiko, Univerza v Mariboru E-pošta: domen.ulbl@student.um.si Gesture based intuitive control of a robotic arm Abstract. In this paper we present a method for intuitive control of a collaborative robotic arm using hand and arm gestures performed by the user. The proposed system uses two Myo Armband units to capture the motion of the arm and a personal computer to process the measurements and simulate the motion of the Kinova Mico manipulator in the V-REP simulation environment. A mathematical model of the human arm is built in order to compute the target position for the robot to reach. The resulting simulation is presented in video form as well. 1 Uvod Roboti so bili dolgo časa uporabljeni le na področjih vojske, proizvodnje in visokotehnoloških raziskav. Dandanes se ta trend spreminja, saj se roboti uveljavljajo na številnih novih področjih kot sta medicina in pomoč v domačem okolju. Ta sprememba je povzročila potrebo, da robote nadzirajo in varno uporabljajo ljudje brez strokovnega znanja na področju robotike. Tako sta tradicionalni metodi programiranja robotov z nadzorno konzolo ali programiranje v simulaciji neustrezni. V člankih [5] in [10] je predlagan nov način nadzora nad robotskimi manipulatorji, ki izkorišča kretnje uporabnikovih rok, identificirane s sistemi za zajem slike. Namen naše raziskovalne naloge pa je razviti sistem za intuitivno vodenje manipulatorja s kretnjami uporabnikove roke brez uporabe kamer. S takšnim pristopom ni več potrebe po strukturiranem okolju z nameščenimi kamerami in ustrezno osvetlitvijo, ampak zadoščajo le nosljivi senzorji gibanja, nameščeni na uporabniku. Na področju vodenja robotov s senzorji na uporabniku je bilo v zadnjem času izvedenih precej raziskav, ki uporabljajo človeške kretnje za nadzor mobilnega robota [3], robotske roke [8] ali simulacije [6]. Skupna točka omenjenih člankov je zajemanje človeških gibov in mišične aktivnosti z Myo Armband, inovativno zapestnico za interakcijo med ljudmi in napravami. V našem članku bomo predstavili vodenje robotske roke Kinova Mico s senzorsko zapestnico Myo s pomočjo kinematičnega modela človeške roke in programskega vmesnika na osebnem računalniku za pošiljanje podatkov med zapestnico in simulacijo. V prvem delu bomo predstavili sestavne dele sistema in povezavo med njimi, v drugem delu bomo opisali kinematični model človeške roke, v tretjem delu pa bomo prikazali eksperimentalne rezultate v obliki videa simulacije. 2 Opis sistema Sistem za vodenj e je sestavlj en iz dveh zapestnic Myo, ki jih uporabnik namesti na roko, kot je prikazano na sliki 1. Oznaki M1 in M2 predstavljata koordinatna sistema zapestnic, katerih rotaciji sovpadata z rotacijama uporabnikove nadlakti in podlakti. Slika 1: Roka uporabnika nameščenima zapestnicama Zapestnici sta na osebni računalnik povezani preko BLE 4.0 (Bluetooth Low Energy) povezave in Bluetooth sprejemnika. Gonilniki in programska oprema Myo Connect skrbijo za povezavo med strojno opremo in programskim vmesnikom, ki smo ga napisali v C++ jeziku. S funkcijami zapestnice upravljamo preko libmyo API (Application Program Interface), ki je del programske opreme Myo Connect, kot je prikazano na sliki 2. Podatke iz zapestnic pošiljamo v simulacijsko okolje V-REP s pomočjo aplikacijskega programskega vmesnika API za »Remote client« programe. V okolju V-REP se izvaja simulacija manipulatorja Mico. Slika 2: Shematični prikaz sistema 2.1 Zapestnica Myo Zapestnica Myo podjetja Thalmic Labs omogoča meritev pospeška, kotne hitrosti in orientacije v treh oseh kot tudi zaznavo gest uporabnikove dlani. Centralna enota zapestnice je procesor Cortex M4, ki preko I2C komunicira z Invensense MPU 9150 enoto za zajem gibanja in NRF51822 Bluetooth modul [7]. Enota za zajem gibanja vsebuje 3-osni MEMS pospeškometer, žiroskop in magnetometer ter nam tako ERK'2018, Portorož, 471-327 32 4 nudi meritve pospeška, kotne hitrosti in smeri Zemljinega magnetnega polja, iz katerih pridobimo meritev orientacije. Kretnje dlani se zaznavajo preko mišične aktivnosti, merjene z 8 elektromiografskimi senzorji na notranji strani zapestnice (slika 3). nMlMltX»H»t » MM»'» Slika 3: Deli zapestnice Myo (povzeto po [9]) 2.2 Programski vmesnik Programski vmesnik, ki smo ga napisali, se preko libmyo API odziva na dogodke, ki jih generira Myo Connect glede na stanje zapestnice. Zajemanje orientacije poteka s frekvenco 50Hz. Program izpisuje podatke o stanju zapestnice v komandno vrstico in shranjuje meritve v datoteke .csv. Uporabniku omogoča nastavitev začetne orientacije zapestnic, ki določa referenco za vse nadaljnje rotacije. Preko V-REP API pošilja ukaze simulaciji robotske roke. 2.3 Simulacija Kinova Mico v V-REP Simulacijsko okolje V-REP proizvajalca Coppelia Robotics [2] omogoča natančno simulacijo kinematike in dinamike poljubnih robotskih mehanizmov. Pri našem projektu smo se omejili na simulacijo kinematske robotske roke. robotsko roko imamo tudi v Laboratoriju za industrijsko robotiko, UM-FERI, tako da je v prihodnje mogoča tudi implementacija na realnem sistemu. 3 Princip vodenja Za vodenje robotske roke uporabimo meritvi orientacije obeh zapestnic, iz katerih s pomočjo matematičnega modela človeške roke izračunamo pozicijo konca roke. Preko programskega vmesnika pošljemo meritvi orientacije v simulacijsko okolje V-REP. Format meritev je rotacijski kvaternion. Enostaven model človeške roke na sliki 5 je sestavljen iz dveh sferičnih sklepov S1 in S2, ki predstavljata ramenski in komolčni sklep, ter dveh vmesnih segmentov L1 in L2, ki prestavljata nadlaket in podlaket. Slika 5: Poenostavljen model človeške roke z označenima koordinatnima sistemoma trupa in konca roke Orientaciji koordinatnih sistemov M1 in M2 sta določeni z meritvama orientacije zapestnic, nameščenih kot je prikazano na sliki 1. Če upoštevamo še dolžini nadlakti in podlakti L1 in L2, lahko pozicijo koordinatnega sistema konca K glede na koordinatni sistem trupa T določimo iz transformacijskih matrik: .. rji _ 1 rji T1 (2.1) 1r T '11 1r T 12 1r T 13 0" r 2r 1 r11 2r 1 '12 2r 1 '13 L1~ "1 0 0 L2 T »21 T1 r22 T1 r23 0 2r 1 '21 2r 1 22 2r 1 23 0 0 1 0 0 1r T '31 1r T 32 1r T 33 0 2r 1 31 2r 1 32 2r 1 33 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 2 Slika 4: Robotska roka Kinova Mico z označenimi sklepi S1-S6 Za vodenje smo izbrali model šestosne kolaborativne robotske roke Kinova Mico (slika 4), ker je njena kinematična struktura podobna človeški roki in je njen maksimalni doseg le malo manjši od človeškega. To L1TVn + L2(rV122ru L1rV21 + L2(rV21' L1rV31 + L2(^r32 2ri Pri tem je: 1 T je transformacijska matrika M1 glede na T, 2 T je transformacijska matrika M2 glede na M1, KT2 je transformacijska matrika K glede na M2, r21 + >2,1'i) »2 + feli'») (2.2) ' 472 K T je transformacijska matrika K glede na T. Rotacija v T1 in T2 je predstavljena z rotacijsko matriko, ki jo lahko izračunamo iz kvaterniona po postopku, opisanem v [1]. Vektor P dobimo iz pozicijskega dela matrike (2.2). Ta vektor nam predstavlja pozicijo konca modela človeške roke glede na koordinatni sistem trupa. Končna točka vektorja PH hkrati predstavlja ciljno pozicijo konca robotske roke Mico, ki naj jo ta zavzame glede na koordinatni sistem A (slika 6). Koordinatni sistem A je pozicioniran v sklepu S2, vendar nanj ni pritrjen in tako ne spreminja orientacije, ko robotski sklep S2 rotira. ( 9 = arctan fi = arctan y (2.4) (2.5) pri čemer sta kota O in ^ določena kot na sliki 8. Kot O je zaradi omejitev gibanja sklepa S2 omejen na interval 0 < O < Omax . Za vsako ciljno pozicijo izvedemo preverjanje, prikazano na sliki 7. Najprej pretvorimo kartezične koordinate v sferične. Če ciljna točka leži izven dosegljivega območja, v sferičnih koordinatah izberemo najbližjo točko znotraj dosegljivega območja. Nato pretvorimo sferične koordinate v kartezične po enačbah: x = r sin(9) cos(fi) y = r sin(9) sin(fi) z = r cos(9) (2.6) (2.7) (2.8) Slika 6: Model Kinova Mico z vektorjem pozicije konca robotske roke (prirejeno po [2]) Ker je ciljna pozicija podana v kartezičnih koordinatah, jo manipulator doseže v načinu inverzne kinematike, pri čemer orientacije konca manipulatorja ne nadziramo. Za izračun pozicij sklepov iz dane ciljne pozicije konca manipulatorja uporabljamo Jakobianov pseudoinverz. S tem postopkom izračunane pozicije blizu singularne lege in izven dosegljivega področja manipulatorja neprimerno oscilirajo, kar zmanjšuje robustnost vodenja. Robustnost izboljšamo, če zagotovimo, da so vse ciljne pozicije znotraj dosegljivega področja dovolj oddaljene od singularnih leg. V primeru robotske roke Kinova Mico je dosegljivo področje podano v [4]. Obliko dosegljivega območja v grobem aproksimiramo s sfero s centrom v točki A in polmerom rmax. Velikost maksimalnega polmera smo določili eksperimentalno z merjenjem velikosti vektorja PH v trenutku, ko se pojavijo oscilacije v rešitvah inverzne kinematike. Za doseganje večje robustnosti vodenja moramo preveriti, če dana ciljna pozicija leži znotraj doseglijvega območja, kar enostavno storimo z uporabo sferičnih koordinat. Vsako ciljno pozicijo T = (x, y, z) lahko v sferičnih koordinatah opišemo kot: r = Jx2 + y2 + z2 (2.3) Slika 7: Diagram poteka preverjanja dosegljivosti ciljne pozicije S tem postopkom ciljno točko izven dosegljivega območja projiciramo na površino sfere, ki omejuje dosegljivo področje. 473 Slika 8: Mico v z označenim dosegljivim področjem Točka T na sliki 8 predstavlja ciljno pozicijo, določeno z vrhom modela človeške roke, točka D je projekcija točke T v dosegljivi prostor manipulatorja. Tako lahko manipulator Mico postavimo v smiselno pozicijo za vsako ciljno točko. 4 Rezultati Rezultate smo predstavili v obliki videa (slika 9), ki je dosegljiv na naslovu: https://www.youtube.com/watch?v=5wUPvvUxtF4. Video je sestavljen iz zajete zaslonske slike med potekom simulacije in posnetka uporabnika iz spletne kamere. V prvem delu posnetka se preko komandne vrstice nastavi začetna orientacija modela človeške roke. Center rdeče krogle predstavlja vrh vektorja ciljne pozicije Pk1. Na simulaciji lahko vidimo, da robot Mico precej natančno in hitro sledi premikom modela človeške roke in se v okviru delovnega območja želeni poziciji čim bolj približa, tudi ko je cilj izven dosegljivega področja. Slika 9: Posnetek iz videa simulacije 5 Zaključek V prispevku smo predstavili možen princip vodenja robotske roke z uporabnikovimi kretnjami s pomočjo zapestnice Myo. Izdelali smo kinematični model človeške roke, s katerim smo vodili pozicijo robotske roke Kinova Mico v načinu inverzne kinematike. Sledenje poteka dovolj natančno in hitro. Možne izboljšave vključujejo implementacijo nadzora nad orientacijo konca robota. Geste dlani bi lahko vključili za nadzor dodatnih funkcij kot je na primer nadzor prijemala. Prihodnje delo bo usmerjeno v implementacijo vodenja na dejanskem robotu. 6 Literatura [1] Baker M., Maths - Conversion Quaternion to Matrix. 2017. Dostopno na: http://www.euclideanspace.com/maths/geometry/rotations/con versions/quaternionToMatrix/index.htm [2] Coppelia Robotics, http ://www.coppeliarobotic s.com/ [3 ] Ganoev A., Shin H., Lee K., Study on Virtual Control of a Robotic Arm via a Myo Armband for the Self Manipulation of a Hand Amputee, International Journal of Applied Engineering Research ISSN 0973-4562, Južna Korea, 2016. Dostopno na: https://www.ripublication.com/V olume/ijaerv11n2.htm [4] Kinova Inc., KINOVA Ultra lightweigh robotic arm User Guide, Kanada, 2018. Dostopno na: https://www.kinovarobotics.com/en [5] Lavanya K., Shree D., Nitschitha B., Gesture controlled robot, ICEECCOT 2017,Indija, 2017 Dostopno na: https://ieeexplore .ieee.org/stamp/stamp. jsp?tp=&arnumber= 82 84549 [6] Sathiyanarayanan M., Mulling T., Nazir B., Controlling a Robot Using a Wearable Device (MYO), IEDR,Velika Britanija, 2015. Dostopno na: http://vixra.org/pdf/1703.0013v1 .pdf [7] Stern B. Inside Myo. New York City: Adafruit, 2016. Dostopno na https://learn.adafruit.com/myo -armband-teardown/inside-myo [8] Ulkir O., Akgun G. Kaplanoglu E. Real Time Robotic Arm Control Using Wearable Gesture Armband, IMSEC 2017, Adrana, Turčija, 2017. Dostopno na: https://www.researchgate.net/publication/321134113 Real Ti me Robotic Arm Control Using Wearable Gesture Armba nd [9] Thalmic Labs. Myo SDK Manual. 0.9.0. Ontario, Kanada: Thalmic Labs, 2013. Dostopno na: https://developer.thalmic.com/docs/api reference/platform/ind ex.html [10] Wilson F., Cueva C. Hugo S., 7 DOF industrial robot controlled by hand gestures using microsoft kinect, CCAC 2017, Kolumbija, 2017. Dostopno na: https://ieeexplore .ieee.org/stamp/stamp. jsp?tp=&arnumber= 82 76455 7 Zahvala Iskreno se zahvaljujem mentorju izr. prof. dr. Alešu Hacetu za vodenje in vse koristne nasvete pri nastajanju tega prispevka. 474