Dátová rukavica pre ovládanie pohybov robotického ramena

30. Január, 2017, Autor článku: Girovský Peter, Elektrotechnika
Ročník 10, číslo 1 This page as PDF Pridať príspevok

p18868_iconV tomto článku by sme chceli predstaviť návrh dátovej rukavice pre ovládanie pohybov robotického ramena. Dátová rukavica pozostávala zo snímačov ohybu a akcelerometra. Akcelerometer slúžil pre identifikáciu polohy pre robotické rameno a snímače ohybu slúžili na snímanie polohy prstov pre ovládanie úchopovej časti robotického ramena. Robotické rameno bolo zostavené z prvkov stavebnice BIOLOID, pričom ako aktuátory boli použité servomotory typu Dynamixel AX-12A. Systém ovládania robotickej ruky pomocou dátovej rukavice bol riadený programov zostaveným v prostredí MATLAB.

1. Úvod

Robotika má v dnešnom dobe svoje nenahraditeľné miesto najmä v oblasti priemyslu, kde si bez robotov už nevieme predstaviť žiadne automatizované pracovisko. Automatické roboty sú s výhodou používané kvôli vysokej rýchlosti a presnosti výroby. Robotika predstavuje komplexnú vednú oblasť, ktorá je úzko previazaná s elektronikou, elektrotechnikou, mechanikou, ako aj so softwarovým vybavením pre samotné riadenie robota. Prvý priemyselný robot bol nasadený do praxe už v roku 1961 firmou Unimation, kde jeho hlavnou úlohou bolo premiestňovať objekty. O tej doby robotika prešla obrovským vývojom a dnes sa s robotmi stretávame nielen na poli priemyselnej využiteľnosti, ale aj v iných oblastiach.

V poslednej dobe sa robotické systémy s ovládaním na diaľku stávajú jedeným z najrozšírenejších druhov robotických systémov. Takéto robotické systémy nachádzajú svoje využitie v lekárstve, v záchranných akciách alebo v iných situáciách, kde sa namiesto ľudí posielajú do nebezpečného prostredia. Ovládanie takýchto robotických systémov na diaľku je možné pomocou rôznych spôsobov. Jeden z možných spôsobov je založený na snímaní pohybov človeka, ktorý takéhoto robota ovláda. Na snímanie pohybov existuje niekoľko systémov, pri ktorých sa využívajú napr.:

  • infračervené kamery,
  • magnetické systémy,
  • mechanické systémy.

V tomto príspevok chceme predstaviť možnosť ovládania robotickej ruky pomocou snímania pohybu ľudskej ruky. Pre snímanie pohybov ruky bude použitá dátová rukavica. Na trhu existuje niekoľko typov dátových rukavíc, ktoré v podstate slúžia pre rovnaký účel. V našom prípade bola zostrojená dátová rukavica, v ktorej pre snímanie pohybu prstov slúžili snímače ohybu a pre snímanie pohybov celej ruky bol použitý akcelerometer.

2. Dátová rukavica

Základom vyrobenej dátovej rukavice, zobrazenej na obr.3 sú snímače ohybu, ktoré sú uložené v prstoch rukavice, akcelerometer uložený na vrchnej strane dátovej rukavice a riadiaca elektronika.

2.1. Snímač ohybu

Snímač ohybu, zobrazený na obr. 2, predstavuje nereverzibilný snímač, čo znamená, že pre pozitívny, alebo negatívny smer ohybu dostávame rovnakú výstupnú hodnotu odporu v závislosti na uhle ohybu. Nevýhodou tohto snímača je nelineárna závislosť odporu na uhle ohybu. Pre dátovú rukavicu boli použité tri snímače ohybu, čo plne postačuje na ovládanie úchopovej časti robotickej ruky. Principiálne tento ohybový snímač predstavuje napäťový delič, kde odpor snímača, resp. výstupné napätie snímača (napäťového deliča), je úmerné uhlu ohybu senzora.

p18868_01_obr01
Obr. 1 Zapojenie snímača ohybu ako napäťového deliča

Výslednú hodnotu napätia U1 zo snímača, ktorá sa ďalej používa pre ovládanie polohy úchopovej časti robotickej ruky, môžeme určiť podľa nasledujúceho vzťahu, kde Rsenzor predstavuje odpor snímača, R1 je prídavný odpor, a Uc je napájacie napätie 5V.

U_1 = \frac{R_{sensor}}{R_1 + R_sensor} U_c (1)

p18868_02_obr02
Obr. 2 Snímač ohybu

2.2. Akcelerometer

Pre snímanie náklonu ruky dopredu a dozadu, resp. doprava a doľava bol použitý akcelerometer MMA7361L. Tento trojosí akcelerometer od firmy Freescale má rozsah zrýchlení 1,5g alebo 6g v kladnom aj zápornom smere a to v závislosti od nastavenia pinu G-SEL. Pri nepripojenom pine G-SEL je prednastavená hodnota zrýchlenia 1,5g s citlivosťou 800 mV/g. Pri pripojenom pine G-SEL bude rozsah zrýchlenia 6g s citlivosťou 206 mV/g. Pre snímanie pohybu ruky dostatočne postačuje zrýchlenie 1,5g, pričom hodnoty za akcelerometra v osiach x, y a z slúžili na riadenie pohybov celej robotickej ruky.

2.3. Riadiaci program dátovej rukavice

Riadenie pohybu robotického ramena pomocou dátovej rukavice pozostávalo z dvoch krokov. V prvom kroku bolo potrebné získať informácie zo snímačov ohybu a akcelerometra a previesť ich do formy vhodnej na ďalšie spracovanie. Pre túto funkciu slúžila elektronika, ktorej základom bol mikrokontrolér ATmega8A. Riadiaci program napísaný pre mikrokontrolér pracoval v nasledujúcich krokoch:

  • nastavenie komunikácie po sériovej linke
  • inicializácia ADC prevodníka, cez ktorý sa načítavajú hodnoty zo snímačov
  • v hlavnom programe mikrokontroléra sa cyklicky načítavajú hodnoty zo snímačov a následne sa zasielajú cez sériovú linku do MATLABu.

V druhom kroku sa získané informácie spracujú v hlavnom riadiacom programe v MATLABe. Program napísaný v jazyku C-MEX v MATLABe spracuje prijaté údaje získané zo snímačov a premení ich na informáciu o polohe. Následne sa daní informácia vyšle opäť po sériovej linke do robotického ramena, čím sa nastaví poloha jednotlivých servopohonov. Táto komunikácia je MATLABu so servopohomni robotického ramena je popísaná v nasledujúcej kapitole.

p18868_03_obr03
Obr. 3 Dátová rukavica

3. Robotické rameno

Robotické rameno, zobrazené na obr. 4, bolo zostrojená pomocou dielov stavebnice Bioloid, kde pre pohyb boli použité servopohony Dynamixel AX-12A (obr. 5). Tieto servopohony je možné ovládať s relatívne dobrou presnosťou, pričom rozlíšenie pre rýchlosť a pre polohu je definovaná na 1024 krokov. Napriek svoje kompaktnej veľkosti, dokážu produkovať točivý moment 1,62 Nm pri napätí 10V. Na základe týchto vlastností bol vybraný tento typ pohonu pre návrh robotického ramena. Zostrojené robotické rameno má celkovo 7 stupňov voľnosti, čo znamená, že bolo použitých celkovo sedem servopohonov Dynamixel AX-12-A, z ktorých tri servopohony slúžili pre ovládanie úchopovej časti ramena, tri servopohony slúžili pre pohyb dopredu/dozadu a jeden servopohon pre otáčanie ramena. Týmto spôsobom sa mohlo robotické rameno pohybovať v osiach x, y, z a ovládať uchopenie objektov.

p18868_04_obr04
Obr. 4 Robotické rameno zostrojené z pohonov Dynamixel

3.1. Riadenie servopohonov Dynamixel AX-12A

Na riadenie a sledovanie pohonov Dynamixel AX12-A (obr. 5) slúži tzv. riadiaca tabuľka, kde používateľ môže riadiť servopohon Dynamixel tým, že zmení hodnotu príslušnej inštrukcie v tabuľke. V našom prípade bolo potrebné ovládať parametre momentu, rýchlosti a aktuálnej polohy servopohonov.

p18868_05_obr05
Obr. 5 Servopohon Dynamixel AX-12A

Ovládať servopohony Dynamixel je možné rôznymi spôsobmi. V našom prípade bola robotická ruka a jej servopohony ovládané pomocou programu napísaného v jazyku C-MEX v prostredí MATLAB. Komunikácia medzi servopohonmi Dynamixel a Matlabom bola realizovaná cez prevodník USB2Dynamixel, ktorý zabezpečuje komunikáciu cez USB port počítača tromi možnými spôsobmi a to pomocou:

  • TTL logiky pre servomotory s 3 pinovými konektormi
  • RS485 pre servomotory so 4 pinovými konektormi
  • RS232 pre komunikáciu cez sériovú linku s riadiacou jednotkou, prípadne pre bezdrôtovú komunikáciu.

V tomto prípade bola použitá half-duplex asynchrónna sériová komunikácia medzi MATLABom a servomotormi robotického ramena pomocou TTL logiky. Manažment komunikácie medzi aktuátormi je realizovaný pomocou paketov. Pomocou inštrukčného paketu sú zasielané riadiace informácie pre servomotory. Inštukčný paket pozostáva z počiatočnej inicializácie, z ID čísla servopohonu, pre ktorý je daný paket určený, dĺžky paketu, čísla samotnej inštrukcie s jednotlivými parametrami a následne je ukončený kontrolným súčtom.

p18868_06_obr06
Obr. 6 Inštrukčný paket

Stavový paket zasiela žiadané informácie o stave pohonu a jeho syntax je podobná ako v prípade inštrukčného paketu.

p18868_07_obr07
Obr. 7 Stavový paket

Pre ovládanie robotickej ruky pomocou dátovej rukavice bolo potrebné napísať dva samostatné programy v MATLABe. Ako prvý bol vytvorený program pre komunikáciu s dátovou rukavicou, kde prebiehalo načítavanie hodnôt z dátovej rukavice do MATLABu cez sériový port. V druhom kroku bolo potrebné vytvoriť program pre komunikáciu a ovládanie servomotorov dynamixel a prepojiť ho s predchádzajúcim programom pre získavanie informácií z dátovej rukavice.

4. Záver

Hlavným cieľom tohto príspevku bolo predstaviť spôsob ovládania robotického ramena, zostrojeného z dielov stavebnice Bioloid, pomocou dátovej rukavice. Samotné dátové rukavice sú pomerne drahou záležitosťou, preto toto riadenie bola zostrojená vlastná dátová rukavica. Pre riadenie dátovej rukavice bol použitý mikrokontrolér ATmega. Ako snímače polohy prstov slúžili snímače ohybu a pre snímanie náklonu ruky v troch osiach bol použitý akcelrometer. Hlavný riadiaci program, ktorý zabezpečoval komunikáciu a riadenie robotickej ruky pomocou dátovej rukavice bol napísaný v programe MATLAB. Pre ďalšie vylepšenia tejto robotickej ruky by bolo vhodné využiť profesionálne snímače ohybu, ktoré sú presnejšie a taktiež využiť bezdrôtovú komunikáciu so zostrojenou robotickou rukou.

Literatúra

  1. P. Karban: Calculation and Simulation in the Programms Matlab a Simulink, Computer Press, Brno, 2006
  2. Freescale, MMA7361L Datasheet, Dostupné na:
    http://www.freescale.com/files/sensors/doc/data_sheet/MMA7361L.pdf
  3. Atmel, ATmega8A Datasheet, Dostupné na:
    http://www.atmel.com/Images/Atmel-8159-8-bit-AVR-microcontroller-ATmega8A_datasheet.pdf
  4. Dynamixel AX-12 manuál. Dostupné na:
    http://www.robotis.com/xe/bioloid_en
  5. USB2Dynamixel manuál. Dostupný na:
    http://support.robotis.com/en/product/auxdevice/interface/usb2dxl_manual.htm
  6. M. Kundrát, Robotická ruka: Diplomová práca. Košice: TU FEI, 2014

Spoluautorom článku je Matúš Kundrát, Katedra elektrotechniky a mechatroniky, Fakulta elektrotechniky a informatiky, Technická univerzita Košice, Slovenská republika

Napísať príspevok