Sadržaj:
- Korak 1: Izgradnja strukture
- Korak 2: Upoznajte svoje vrijednosti hardvera
- Korak 3: Naprijed kinematika
- Korak 4: Inverzna kinematika
Video: Robot za haptičko crtanje: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
U sklopu moje master mature na dep. Industrijski dizajn na Sveučilištu Eindhoven, stvorio sam uređaj za haptičko crtanje koji se može koristiti za navigaciju poluautonomnog automobila kroz promet. Sučelje se naziva scribble i omogućuje korisniku da doživi haptičke instalacije u 2D prostoru kroz promjenjivu silu i mjesto. Iako ovo uputstvo ne govori o konceptu, više o Scribble -u možete pročitati ovdje:
Scribble koristi konfiguraciju povezivanja od 5 bara koja mu omogućuje pomicanje dva bočna stupnja slobode (DoF). Ova je postavka prilično popularna među prototipima za stvaranje robota za crtanje, evo nekoliko primjera:
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
Mehanički, te je robote lako napraviti. Potrebni su im samo osnovni zglobovi i imaju dva pogona koji mogu stvoriti dosta tekućih pokreta. Ova je struktura idealna za dizajnere koji su zainteresirani za izradu pokretnih struktura. Međutim, budući da nisam inženjer strojarstva, kinematiku je bilo prilično teško prevesti u kod. Stoga ću pružiti osnovni Arduino kôd koji izračunava prednju i obrnutu kinematiku, tako da ga možete jednostavno koristiti u svojim budućim dizajnom!;-)
Molimo preuzmite donji kod!
* EDIT: za sličan projekt pogledajte https://haply.co *
Korak 1: Izgradnja strukture
Ovisno o namjeri koju imate na umu, prvo biste trebali projektirati strukturu s 5 spojeva. Razmislite o mjerenjima, aktuatorima koje želite koristiti i kako pričvrstiti zglobove za glatke pokrete.
Za svoj prototip, ja pokrećem svoj kôd na Arduino DUE -u koji se serijski kontrolira programom na mom Macu koji je napravljen u Open Frameworks -u. Program koristi UDP vezu za komunikaciju s simulatorom vožnje temeljenim na Unity 3D.
Prototip Scribble koristi ležajeve od 5 mm i izrađen je od 5 mm laserski izrezanog akrila. Pokretači su haptički motori Franka van Valeknhoefa koji omogućuju aktiviranje, očitavanje položaja i izlaženje promjenjive sile. To ih je učinilo idealnim za Scribbleova željena haptička svojstva. Više o njegovim aktuatorima možete pronaći ovdje:
Korak 2: Upoznajte svoje vrijednosti hardvera
Kinematika prema naprijed temelji se na vremenskoj stanici Plot clock SAP-a:
Kao što je prikazano u njihovoj konfiguraciji, ruka je produžena za držanje markera za crtanje. Ovo je uklonjeno jer nije imalo nikakve svrhe za prototip za pisanje. Provjerite njihov kod ako želite ponovo dodati ovu komponentu. Imena na slici su ista u mojoj konfiguraciji.
Ovisno o vašem hardveru, algoritam mora znati vaša hardverska svojstva:
int leftActuator, rightActuator; // kut za pisanje aktuatoru u stupnjevima, promijenite u plutajuće ako želite više točnosti
int posX, posY; // koordinate mjesta pokazivača
Postavite razlučivost vaših ulaznih vrijednosti
int posStepsX = 2000;
int posStepsY = 1000;
Dimenzije vašeg postavljanja, vrijednosti su u mm (pogledajte SAP sliku)
#define L1 73 // motorna ruka dužine, pogledajte SAP sliku (lijevo i desno su iste)
#define L2 95 // produžna ruka, pogledajte SAP sliku (lijevo i desno su iste)
#define rangeX 250 // maksimalni raspon u smjeru X za pomicanje točke (slijeva nadesno, 0 - maxVal)
#define rangeY 165 // maksimalni raspon u smjeru Y za pomicanje točke (od 0 do maksimalnog dosega dok je centriran)
#define originL 90 // pomak udaljenosti od većine minimalne vrijednosti X do središnjeg položaja pogona
#define originR 145 // pomak udaljenosti od većine minimalne vrijednosti X do središnjeg položaja pogona, u ovom slučaju udaljenost između dva motora je
Korak 3: Naprijed kinematika
Kao što je spomenuto u prethodnom koraku, napredna kinematika temelji se na SAP -ovom algoritmu.
Šupljina ažurira željene vrijednosti kutova lijevog i desnog pogona definirane ranije. Na temelju vrijednosti X i Y koje su uključene, izračunat će prave kutove kako bi pokazivač došao u ovaj položaj.
void set_XY (double Tx, double Ty) // unesite vrijednost X i Y {// neke vrijednosti koje su nam potrebne, ali ne želimo spremati na duge duple dx, dy, c, a1, a2, Hx, Hy; // mapirajte inpit rezoluciju u raspon vaše konfiguracije u stvarnom svijetu int realX = karta (Tx, 0, posStepsX, 0, rangeX); // zamijeniti ako je mapiranje obrnuto int realY = map (Ty, posStepsX, 0, 0, rangeY); // zamijeni ako je preslikavanje obrnuto // kut izračuna za lijevi pogon // kartezijanski dx/dy dx = realX - ishodišteL; // uključuje pomak dy = realY; // polarna duljina (c) i kut (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = povratni kut (L1, L2, c); leftActuator = kat (((M_PI - (a2 + a1)) * 4068) / 71); // konačni kut i pretvoriti iz rada u stupnjeve // kut izračuna za desni pogon dx = realX - originR; // uključuje pomak dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = povratni kut (L1, L2, c); rightActuator = kat (((a1 - a2) * 4068) / 71); // konačni kut i pretvoriti iz rad u deg}
Dodatna praznina za izračun kuta:
double return_angle (double a, double b, double c) {// pravilo kosinusa za kut između c i povratnog acos ((a * a + c * c - b * b) / (2 * a * c)); }
Korak 4: Inverzna kinematika
Inverzna kinematika radi obrnuto. Uključujete rotaciju pokretača u stupnjevima i praznina će ažurirati ranije definirani položaj.
Imajte na umu da će vam trebati pokretači ili zasebni senzor koji može očitati kut ruke. U mom slučaju, koristio sam pokretače koji mogu istovremeno čitati i pisati svoj položaj. Slobodno eksperimentirajte s ovim i razmislite o dodavanju nekakve kalibracije kako biste bili sigurni da se vaš kut pravilno čita.
Preporučeni:
Robot za crtanje sa Adafruit Shieldom (natječaj Make it Move): 10 koraka (sa slikama)
Robot za crtanje s Adafruit Shieldom (natječaj Make It Move): Pozdrav, moja imena, Jacob i ja živimo u Velikoj Britaniji. U ovom projektu napravit ću robota koji crta za vas. *Siguran sam da mnogi od vas to žele vidjeti pa ako želite znati, preskočite odmah do drugog do posljednjeg koraka, ali svakako se vratite ovdje da vidite
Bot za crtanje BT linije za crtanje - Moj Bot: 13 koraka (sa slikama)
Trash Boilt BT Line Drawing Bot - My Bot: Hai prijatelji nakon duge pauze oko 6 mjeseci ovdje dolazim s novim projektom. Do završetka programa Cute Drawing Buddy V1, SCARA Robot - Arduino i planiram još jednog robota za crtanje, glavni cilj je pokriti veliki prostor za crtanje. Tako fiksne robotske ruke c
Robot za crtanje za Arduino: 18 koraka (sa slikama)
Robot za crtanje za Arduino: Napomena: Imam novu verziju ovog robota koji koristi tiskanu ploču, lakši je za izradu i ima IC detekciju prepreka! Provjerite na http://bit.ly/OSTurtle Dizajnirao sam ovaj projekt za 10-satnu radionicu za ChickTech.org čiji je cilj ja
Jeftini robot za crtanje kompatibilan s Arduinom: 15 koraka (sa slikama)
Jeftin, Arduino kompatibilan robot za crtanje: Napomena: Imam novu verziju ovog robota koji koristi tiskanu ploču, lakše ga je izgraditi i ima IC detekciju prepreka! Provjerite na http://bit.ly/OSTurtle Dizajnirao sam ovaj projekt za 10-satnu radionicu za ChickTech.org čiji je cilj ja
LED svjetlosne olovke za crtanje: Alati za crtanje lakih crteža: 6 koraka (sa slikama)
LED svjetlosne olovke za crtanje: Alati za crtanje svjetlosnih crteža: Moja supruga Lori neprestano crta i ja sam se godinama igrao fotografijom s dugom ekspozicijom. Nadahnuti PikaPika grupom lakih umjetnosti i lakoćom digitalnih fotoaparata, uzeli smo umjetničku formu za crtanje svjetlom kako bismo vidjeli što možemo učiniti. Imamo