Sadržaj:

Robotska ručna kontrola s EMG -om: 7 koraka
Robotska ručna kontrola s EMG -om: 7 koraka

Video: Robotska ručna kontrola s EMG -om: 7 koraka

Video: Robotska ručna kontrola s EMG -om: 7 koraka
Video: Best Stroke Recovery Hand Exercises - Stage 2 2024, Srpanj
Anonim
Image
Image
Prikupljanje signala
Prikupljanje signala

Ovaj projekt prikazuje kontrolu robotske ruke (pomoću otvorene ruke u Moovu) s 3 UECG uređaja s otvorenim izvorom koji se koriste za mjerenje i obradu mišićne aktivnosti (elektromiogram, EMG). Naš tim ima dugu priču s rukama i njihovom kontrolom, a ovo je dobar korak u pravom smjeru:)

Pribor

3x uECG uređaji1x Arduino (koristim Nano, ali većina drugih bi radila) 1x nRF24 modul (bilo koji generički) 1 x PCA9685 ili sličan servo upravljački program1x inMoov ručni 5x veliki servomotori (pogledajte inMoov upute za kompatibilne tipove) 1x 5V napajanje sposobno 5A ili više struje

Korak 1: Prikupljanje signala

Kontrola se temelji na EMG - električnoj aktivnosti mišića. EMG signal dobivaju tri uECG uređaja (znam, to bi trebao biti EKG monitor, ali budući da se temelji na generičkom ADC -u, može mjeriti bilo koji biosignal - uključujući EMG). Za EMG obradu, uECG ima poseban način rada u kojem šalje podatke o spektru od 32 bina i prosjek "mišićnog prozora" (prosječni spektralni intenzitet između 75 i 440 Hz). Slike spektra izgledaju poput plavo-zelenih uzoraka koji se s vremenom mijenjaju. Ovdje je frekvencija na okomitoj osi (na svakom od 3 grafikona, niska frekvencija pri dnu, visoka na vrhu - od 0 do 488 Hz s koracima ~ 15 Hz), vrijeme je na vodoravnoj liniji (stari podaci lijevo sveukupno ovdje je oko 10 sekundi na ekranu). Intenzitet je kodiran bojom: plava - niska, zelena - srednja, žuta - visoka, crvena - još veća.

Korak 2: Pojednostavljeni signal

Pojednostavljeni signal
Pojednostavljeni signal

Za pouzdano prepoznavanje gesta potrebna je odgovarajuća računalna obrada ovih spektralnih slika. No, za jednostavno aktiviranje robotskih prstiju ruke, dovoljno je samo upotrijebiti prosječnu vrijednost na 3 kanala - uECG ga prikladno daje u određenim paketnim bajtovima kako bi ga Arduino skica mogla raščlaniti. Ove vrijednosti izgledaju mnogo jednostavnije - priložio sam grafikon sirovih vrijednosti iz Arduinovog serijskog plotera. Crveni, zeleni i plavi grafikoni su neobrađene vrijednosti s 3 uECG uređaja na različitim mišićnim skupinama kada odgovarajuće stisnem palac, prstenjak i srednji prst. Za naše oko ti su slučajevi očito različiti, ali moramo nekako pretvoriti te vrijednosti u "rezultat prsta" kako bi program mogao izlaziti vrijednosti na ručne servo upravljače. Problem je u tome što su signali iz mišićnih skupina "mješoviti": u prvom i trećem slučaju intenzitet plavog signala je približno isti - ali crvena i zelena su različite. U drugom i trećem slučaju zeleni signali su isti - ali plavi i crveni su različiti.

Korak 3: Obrada signala

Procesiranje signala
Procesiranje signala

Kako bih "pomiješao" ove signale, upotrijebio sam relativno jednostavnu formulu:

S0 = V0^2 / ((V1 * a0 +b0) (V2 * c0 +d0)), gdje je S0 - rezultat za kanal 0, V0, V1, V2 - neobrađene vrijednosti za kanale 0, 1, 2 i a, b, c, d - koeficijenti koje sam ručno prilagodio (a i c su bili od 0,3 do 2,0, b i d su bili 15 i 20, svejedno ćete ih morati promijeniti kako biste ih prilagodili vašem položaju senzora). Isti rezultat izračunat je za kanale 1 i 2. Nakon toga, ljestvice su postale gotovo savršeno razdvojene. Za iste geste (ovaj put prstenjak, srednji, a zatim i palac) signali su jasni i mogu se lako prevesti u servo pokrete samo usporedbom s pragom

Korak 4: Sheme

Sheme
Sheme

Sheme su vrlo jednostavne, potreban vam je samo nRF24 modul, PCA9685 ili sličan I2C PWM kontroler, te 5V napajanje velikog pojačala koje bi bilo dovoljno za premještanje svih ovih servomotora odjednom (tako da za stabilni rad treba najmanje 5A nazivne snage).

Popis priključaka: nRF24 pin 1 (GND) - Arduino GNDnRF24 pin 2 (Vcc) - Arduino 3.3vnRF24 pin 3 (Chip Enable) - Arduino D9nRF24 pin 4 (SPI: CS) - Arduino D8nRF24 pin 5 (SPI: SCK) - Arduino D13nRF24 klin 6 (SPI: Mosi) - Težak je D11nRF24 klin 7 (SPI: MISO) - Težak je D12PCA9685 SDA - Težak je A4PCA9685 SCL - Težak je A5PCA9685 VCC - Težak je 5vPCA9685 GND - Težak je GNDPCA9685 V + - visoke amp 5VPCA9685 GND - visoke amp GNDFinger servos: u PCA kanali 0-4, u mom zapisu palac - kanal 0, kažiprst - kanal 1 itd.

Korak 5: Postavljanje EMG senzora

Postavljanje EMG senzora
Postavljanje EMG senzora
Postavljanje EMG senzora
Postavljanje EMG senzora

Kako biste dobili razumna očitanja, važno je postaviti UECG uređaje koji bilježe mišićnu aktivnost na prava mjesta. Iako je ovdje moguće mnogo različitih opcija, svaka zahtijeva drugačiji pristup obradi signala - pa je s mojim kodom najbolje koristiti položaj sličan mojim fotografijama. Možda je kontraintuitivno, ali signal mišića palca bolje je vidljiv sa suprotne strane ruke, pa je jedan od senzora postavljen tamo, a svi su postavljeni blizu lakta (mišići imaju veći dio svog tijela u tom području, ali želite provjeriti gdje se točno vaš nalazi - postoji velika individualna razlika)

Korak 6: Kodiranje

Prije pokretanja glavnog programa morat ćete saznati ID jedinice vaših određenih uECG uređaja (to se postiže dekomentiranjem linije 101 i uključivanjem uređaja jedan po jedan, vidjet ćete, između ostalog, ID trenutnog uređaja) i ispunite ih unit_ids niz (redak 37). Osim ovoga, želite se igrati s koeficijentima formule (retci 129-131) i provjeriti kako izgleda na serijskom ploteru prije nego što ga pričvrstite na robotsku ruku.

Korak 7: Rezultati

S nekim pokusima koji su trajali oko 2 sata uspio sam postići prilično pouzdan rad (video prikazuje tipičan slučaj). Ne ponaša se savršeno i ovom obradom može prepoznati samo otvorene i zatvorene prste (pa čak ni svaku od 5, detektira samo 3 mišićne skupine: palac, kažiprst i sredinu zajedno, prsten i mali prsti zajedno). Ali "AI" koji analizira signal ovdje uzima 3 retka koda i koristi jednu vrijednost iz svakog kanala. Vjerujem da bi se mnogo više moglo učiniti analizom spektralnih slika od 32 bina na računalu ili pametnom telefonu. Također, ova verzija koristi samo 3 uECG uređaja (EMG kanali). S više kanala trebalo bi biti moguće prepoznati doista složene obrasce - ali dobro, to je poanta projekta, pružiti neko polazište svima zainteresiranima:) Ručno upravljanje definitivno nije jedina aplikacija za takav sustav.

Preporučeni: