Sisällysluettelo:

Haptinen piirustusrobotti: 5 vaihetta (kuvilla)
Haptinen piirustusrobotti: 5 vaihetta (kuvilla)

Video: Haptinen piirustusrobotti: 5 vaihetta (kuvilla)

Video: Haptinen piirustusrobotti: 5 vaihetta (kuvilla)
Video: Big jump | gta 5 2024, Marraskuu
Anonim

Osana maisterintutkintoa Dep. Teollinen muotoilu Eindhovenin yliopistossa, loin haptisen piirustuslaitteen, jota voidaan käyttää navigoimaan puoliautomaattisessa autossa liikenteen läpi. Käyttöliittymää kutsutaan scribbleksi ja sen avulla käyttäjä voi kokea haptisia kalusteita 2D -tilassa vaihtelevan voiman ja sijainnin avulla. Vaikka tämä ohje ei olekaan käsite, voit lukea lisää Scribblestä täältä:

Scribble käyttää 5 baarin kytkentäkonfiguraatiota, jonka avulla se voi siirtää kahta sivuttaista vapausastetta (DoF). Tämä asetus on melko suosittu piirustusrobotteja luovien prototyyppien keskuudessa, tässä on muutamia esimerkkejä:

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

Mekaanisesti nämä robotit on helppo valmistaa. Ne tarvitsevat vain perusliitoksia ja niissä on kaksi toimilaitetta, jotka voivat luoda melko nestemäisiä liikkeitä. Tämä rakenne on ihanteellinen suunnittelijoille, jotka ovat kiinnostuneita liikkuvan rakenteen tekemisestä. Koska en kuitenkaan ollut mekaaninen insinööri, minusta kinematiikan kääntäminen koodiksi oli melko vaikeaa. Siksi annan Arduino -peruskoodin, joka selvittää eteenpäin ja käänteisen kinematiikan, jotta voit käyttää sitä helposti tulevissa malleissasi!;-)

Lataa alla oleva koodi!

* MUOKKAA: katso vastaavaa projektia osoitteesta https://haply.co *

Vaihe 1: Rakenteen rakentaminen

Rakenteen rakentaminen
Rakenteen rakentaminen

Tarkoituksestasi riippuen sinun tulee ensin suunnitella 5-kytkentärakenne. Mieti mittauksia, toimilaitteita, joita haluat käyttää, ja kuinka kiinnität nivelet sujuviin liikkeisiin.

Prototyyppini kohdalla suoritan koodini Arduino DUE -laitteella, jota sarjojen kautta ohjaa Mac -ohjelmani, joka on tehty Open Frameworksissa. Ohjelma käyttää UDP -yhteyttä kommunikoidakseen Unity 3D -pohjaisen ajosimulaattorin kanssa.

Scribble-prototyyppi käyttää 5 mm: n laakereita ja on valmistettu 5 mm: n laserleikatusta akryylistä. Toimilaitteet ovat Frank van Valeknhoefin Haptic -moottorit, jotka mahdollistavat toimimisen, asennon lukemisen ja muuttuvan voiman tuottamisen. Tämä teki niistä ihanteelliset Scribblen haluttuihin haptisiin ominaisuuksiin. Lisää hänen toimilaitteistaan löytyy täältä:

Vaihe 2: Tunne laitteistosi arvot

Tiedä laitteistosi arvot
Tiedä laitteistosi arvot

Eteenpäin suuntautuva kinematiikka perustuu SAP: n Plot-kellosääasemalle:

Kuten niiden kokoonpanossa on esitetty, käsivarsi on pidetty kiinni piirtäjästä. Tämä on poistettu, koska sillä ei ollut tarkoitusta piirtämisprototyypille. Tarkista heidän koodinsa, jos haluat lisätä tämän komponentin takaisin. Kuvan nimet pysyvät samoina kokoonpanossani.

Laitteistostasi riippuen algoritmin on tiedettävä laitteistosi ominaisuudet:

int leftActuator, rightActuator; // kulma kirjoittaa toimilaitteelle asteina, vaihda kellukkeiksi, jos haluat enemmän tarkkuutta

int posX, posY; // osoittimen sijainnin koordinaatit

Aseta syöttöarvojen resoluutio

int posStepsX = 2000;

int posStepsY = 1000;

Kokoonpanosi mitat, arvot ovat mm (katso SAP -kuva)

#define L1 73 // pituus moottorin varsi, katso SAP -kuva (vasen ja oikea ovat samat)

#define L2 95 // pituuden jatkovarsi, katso SAP -kuva (vasen ja oikea ovat samat)

#define rangeX 250 // X -suunnan maksimialue, jolla piste liikkuu (vasemmalta oikealle, 0 - maxVal)

#define rangeY 165 // pisteen liikkeen suurin sallittu alue Y -suunnassa (0: sta maksimaaliseen ulottuvuuteen keskittyen)

#define originL 90 // offset -etäisyys useimmista pienimmistä X -arvoista toimilaitteen keskiasentoon

#define originR 145 // offset -etäisyys useimmista pienimmistä X -arvoista toimilaitteen keskiasentoon, kahden moottorin välinen etäisyys on tässä tapauksessa

Vaihe 3: eteenpäin kinematiikka

Eteenpäin kinematiikka
Eteenpäin kinematiikka

Kuten edellisessä vaiheessa mainittiin, eteenpäin suuntautuva kinematiikka perustuu SAP: n algoritmiin.

Void päivittää vasemman ja oikean toimilaitteen halutut kulma -arvot, jotka on määritetty aiemmin. Liitettyjen X- ja Y -arvojen perusteella se laskee oikeat kulmat osoittimen saamiseksi tähän asentoon.

void set_XY (double Tx, double Ty) // syötä X- ja Y -arvosi {// jotkin tarvitsemamme arvot, mutta emme halua tallentaa pitkiä kaksinkertaisia dx, dy, c, a1, a2, Hx, Hy; // kartoita inpit -resoluutio määrityksesi alueelle todellisessa maailmassa int realX = map (Tx, 0, posStepsX, 0, rangeX); // vaihda, jos kartoitus käännetään int realY = map (Ty, posStepsX, 0, 0, rangeY); // vaihtaa, jos kartoitus, jos käännetty // laskea kulma vasemmalle toimilaitteelle // suorakulmainen dx/dy dx = realX - originL; // sisällytä offset dy = realY; // polaarinen pituus (c) ja kulma (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = paluukulma (L1, L2, c); leftActuator = kerros ((((M_PI - (a2 + a1)) * 4068) / 71); // lopullinen kulma ja muunnos radista degiksi // oikean kulman toimilaitteen laskukulma dx = realX - originR; // sisällytä offset dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = paluukulma (L1, L2, c); rightActuator = kerros ((((a1 - a2) * 4068) / 71); // lopullinen kulma ja muunna radista asteiksi}

Lisärako kulman laskemiseen:

double return_angle (double a, double b, double c) {// kosinisääntö c: n ja paluu acosin väliseen kulmaan ((a * a + c * c - b * b) / (2 * a * c)); }

Vaihe 4: Käänteinen kinematiikka

Käänteinen kinematiikka
Käänteinen kinematiikka

Käänteinen kinematiikka toimii toisinpäin. Kytket toimilaitteiden pyörimisen asteisiin ja tyhjä päivittää aiemmin määritetyn asennon.

Huomaa, että tarvitset toimilaitteita tai erillisen anturin, joka voi lukea käsivarren kulman. Minun tapauksessani käytin toimilaitteita, jotka voivat sekä lukea että kirjoittaa sijaintinsa samanaikaisesti. Voit kokeilla tätä ja harkita jonkinlaisen kalibroinnin lisäämistä, jotta olet varma, että kulmasi luetaan oikein.

Suositeltava: