Orodha ya maudhui:

Robot ya Kuchora Haptic: Hatua 5 (na Picha)
Robot ya Kuchora Haptic: Hatua 5 (na Picha)

Video: Robot ya Kuchora Haptic: Hatua 5 (na Picha)

Video: Robot ya Kuchora Haptic: Hatua 5 (na Picha)
Video: Премия KUKA за инновации _Artificial Intelligence Challenge 2024, Julai
Anonim

Kama sehemu ya uhitimu wa bwana wangu katika dep. Ubunifu wa Viwanda katika Chuo Kikuu cha Eindhoven, niliunda kifaa cha kuchora haptic ambacho kinaweza kutumiwa kusafiri kwa gari lenye uhuru kupitia trafiki. Kiolesura hicho huitwa kupuuza na kumruhusu mtumiaji kupata vifaa vya haptic katika nafasi ya 2D kupitia nguvu na eneo linalobadilika. Ingawa wazo sio hili linafundishwa, unaweza kusoma zaidi juu ya Scribble hapa:

Scribble hutumia usanidi wa uhusiano wa baa 5 ambayo inaruhusu kusonga digrii mbili za uhuru (DoF). Usanidi huu ni maarufu sana kati ya prototypers kuunda roboti za kuchora, hapa kuna mifano:

www.projehocam.com/arduino-saati-yazan-kol-…

blogs.sap.com/2015/09/17/plot-clock-weathe…

www.heise.de/make/meldung/Sanduhr-2-0-als-Bausatz-im-heise-shop-erhaeltlich-3744205.html

Mitambo roboti hizi ni rahisi kutengeneza. Wanahitaji tu viungo vya kimsingi na wana watendaji wawili ambao wanaweza kuunda mwendo wa maji. Muundo huu ni mzuri kwa wabunifu ambao wana nia ya kutengeneza muundo wa kusonga. Lakini mimi sio mhandisi wa mitambo, niliona nadharia ngumu kutafsiri kwa nambari. Kwa hivyo nitatoa nambari ya msingi ya Arduino inayoonyesha kinematics ya mbele na inverse ili uweze kutumia hii kwa urahisi katika miundo yako ya baadaye!;-)

Tafadhali pakua nambari hapa chini!

* BONYEZA: kwa mradi kama huo, angalia https://haply.co *

Hatua ya 1: Kuunda Muundo

Kujenga Muundo
Kujenga Muundo

Kulingana na kusudi ulilonalo katika akili unapaswa kwanza kubuni muundo wa uhusiano 5. Fikiria juu ya vipimo, watendaji ambao unataka kutumia, na jinsi ya kushikamana na viungo kwa harakati laini.

Kwa mfano wangu, ninaendesha nambari yangu kwenye Arduino DUE ambayo inadhibitiwa juu ya mfululizo na programu kwenye Mac yangu ambayo ilitengenezwa katika Open Frameworks. Programu hutumia unganisho la UDP kuwasiliana na simulator ya kuendesha gari ya Unity 3D.

Mfano wa Scribble hutumia fani za 5mm na imetengenezwa kwa sarakisi ya 5 mm ya laser. Watendaji ni Injini za Haptic za Frank van Valeknhoef zinazoruhusu ushawishi, kusoma nafasi, na kutoa nguvu inayobadilika. Hii iliwafanya kuwa bora kwa mali zinazotakikana za Scribble. Zaidi juu ya watendaji wake wanaweza kupatikana hapa:

Hatua ya 2: Jua Maadili yako ya vifaa

Jua Maadili Yako ya Vifaa
Jua Maadili Yako ya Vifaa

Kinematics ya mbele inategemea kituo cha hali ya hewa ya saa ya Plot na SAP: https://blogs.sap.com/2015/09/17/plot-clock-waath ……

Kama inavyoonyeshwa katika usanidi wao umepanuliwa kwa mkono kushikilia alama ili kuteka. Hii imeondolewa kwani haikusudii mfano wa maandishi. Angalia nambari zao ikiwa ungependa kuongeza tena kipengee hiki. Majina kwenye picha yanahifadhiwa sawa katika usanidi wangu.

Kulingana na vifaa vyako algorithm inahitaji kujua mali yako ya maunzi:

int kushotoActuator, kuliaActuator; // angle kuandika kwa actuator katika deg, badili kwa kuelea ikiwa unataka acuracy zaidi

int posX, posY; // kuratibu za eneo la pointer

Weka azimio la maadili yako ya kuingiza

int posStepsX = 2000;

hatua kwa hatua = 1000;

Vipimo vya usanidi wako, maadili yako katika mm (angalia picha ya SAP)

#fafanua L1 73 // mkono wa motor urefu, angalia picha ya SAP (kushoto na kulia ni sawa)

#fafanua L2 95 // mkono wa kupanua urefu, angalia picha ya SAP (kushoto na kulia ni sawa)

#fafanua anuwaiX 250 // upeo wa juu katika mwelekeo wa X kwa hatua ya kusonga (kutoka kushoto kwenda kulia, 0 - maxVal)

#fafanua masafa Y 165 // upeo wa kiwango cha juu kwa mwelekeo wa Y kwa uhakika wa kusonga (kutoka 0 hadi kufikia kiwango cha juu wakati unakaa katikati)

#fasili asiliL 90 // umbali uliowekwa kutoka kwa thamani ndogo ya X hadi nafasi ya kituo cha actuator

#fafanua asiliR 145 // umbali wa kukabiliana kutoka kwa thamani ndogo ya X hadi nafasi ya kituo cha actuator, umbali kati ya motors mbili uko katika kesi hii

Hatua ya 3: Mbele ya Kinematics

Mbele Kinematics
Mbele Kinematics

Kama ilivyoelezwa katika hatua ya awali, kinematics ya mbele inategemea algorithm ya SAP.

Utupu unasasisha maadili ya pembe ya kushoto na kulia ya actuator inayofafanuliwa hapo awali. Kulingana na maadili ya X na Y ambayo yamechomekwa ndani yake itahesabu pembe sahihi ili kupata pointer kwa nafasi hii.

batili set_XY (mara mbili Tx, mara mbili Ty) // ingiza thamani yako ya X na Y // azimio la inpit ramani kwa anuwai ya usanidi wako katika ulimwengu halisi int realX = ramani (Tx, 0, posStepsX, 0, rangeX); // ubadilishaji ikiwa ramani ikiwa inversed int realY = ramani (Ty, posStepsX, 0, 0, rangeY); // badilisha ikiwa ramani ikiwa imebadilisha angle ya calc kwa actuator wa kushoto // cartesian dx / dy dx = realX - asiliL; // ni pamoja na offset dy = realY; // urefu wa polar (c) na pembe (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = pembe_ya kurudi (L1, L2, c); kushotoActuator = sakafu (((M_PI - (a2 + a1)) * 4068) / 71); // pembe ya mwisho na ubadilishe kutoka kwa rad hadi angle ya dig // calc kwa actuator wa kulia dx = realX - asiliR; // ni pamoja na offset dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = pembe_ya kurudi (L1, L2, c); kuliaActuator = sakafu (((a1 - a2) * 4068) / 71); // pembe ya mwisho na ubadilishe kutoka rad hadi deg}

Utupu wa ziada kwa hesabu ya pembe:

pembetatu_rudufu (mara mbili a, mara mbili b, mara mbili c) {// sheria ya cosine kwa pembe kati ya c na kurudi acos ((a * a + c * c - b * b) / (2 * a * c)); }

Hatua ya 4: Kinematics Inverse

Kinematics Inverse
Kinematics Inverse

Kinematics inverse hufanya kazi kwa njia nyingine. Unaunganisha mzunguko wa watendaji wako kwa digrii na utupu utasasisha msimamo uliofafanuliwa hapo awali.

Tafadhali kumbuka kuwa utahitaji watendaji au sensor tofauti ambayo inaweza kusoma pembe ya mkono. Kwa upande wangu, nilitumia watendaji ambao wanaweza kusoma na kuandika msimamo wao wakati huo huo. Jisikie huru kujaribu hii na fikiria kuongeza aina ya upimaji ili uhakikishe kuwa pembe yako inasomwa vizuri.

Ilipendekeza: