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 izmjena: 2024-01-30 08:08
Kao dio moje master diplome na odjelu 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ćava korisniku da doživi haptičke instalacije u 2D prostoru kroz promjenjivu silu i lokaciju. 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 postavka je 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, ove 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 lako koristiti u svojim budućim dizajnom!;-)
Molimo preuzmite donji kod!
* EDIT: za sličan projekat 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 kontrolira serijski program na mom Mac -u napravljen u Open Frameworks -u. Program koristi UDP vezu za komunikaciju sa 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 željena haptička svojstva Scribble -a. Više o njegovim aktuatorima možete pronaći ovdje:
Korak 2: Upoznajte svoje vrijednosti hardvera
Kinematika prema naprijed zasnovana je na vremenskoj stanici za sat Plot kompanije SAP:
Kao što je prikazano u njihovoj konfiguraciji, ruka je produžena za držanje markera za crtanje. Ovo je uklonjeno jer nije imalo nikakvu svrhu 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ći ako želite više točnosti
int posX, posY; // koordinate lokacije pokazivača
Postavite rezoluciju 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žni krak, pogledajte SAP sliku (lijevo i desno su isti)
#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 najveće minimalne vrijednosti X do središnje pozicije aktuatora
#define originR 145 // pomak udaljenosti od najveće 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 je zasnovana na SAP -ovom algoritmu.
Praznina ažurira željene vrijednosti kuta lijevog i desnog pogona definirane ranije. Na osnovu vrijednosti X i Y koje su uključene, izračunat će prave kutove kako bi pokazivač došao do ove pozicije.
void set_XY (double Tx, double Ty) // unesite vašu 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 = mapa (Tx, 0, posStepsX, 0, rangeX); // zamijeniti ako je mapiranje obrnuto int realY = map (Ty, posStepsX, 0, 0, rangeY); // zamijeni ako je preslikavanje ako je obrnuto // kut izračuna za lijevi pogon // kartezijanski dx/dy dx = realX - originL; // uključuje pomak dy = realY; // polarna dužina (c) i kut (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = povratni_ugao (L1, L2, c); leftActuator = floor (((M_PI - (a2 + a1)) * 4068) / 71); // konačni kut i pretvoriti iz rad u deg // 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_ugao (L1, L2, c); rightActuator = floor (((a1 - a2) * 4068) / 71); // konačni ugao i pretvori iz rada u deg}
Dodatna praznina za proračun ugla:
double return_angle (double a, double b, double c) {// kosinusno pravilo za ugao između c i povratnog acos ((a * a + c * c - b * b) / (2 * a * c)); }
Korak 4: Inverzna kinematika
Inverzna kinematika funkcionira obrnuto. Uključujete rotaciju pokretača u stupnjevima i praznina će ažurirati položaj koji je ranije definiran.
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 neke vrste kalibracije kako biste bili sigurni da se vaš kut pravilno čita.
Preporučuje se:
Robot za crtanje sa Adafruit Shieldom (natječaj za pokret): 10 koraka (sa slikama)
Robot za crtanje sa Adafruit Shieldom (Takmičenje Make It Move): Zdravo 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 od drugog do posljednjeg koraka, ali svakako se vratite ovdje da vidite
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še se izrađuje i ima IC detekciju prepreka! Pogledajte ovo na http://bit.ly/OSTurtleI dizajnirao sam ovaj projekat za 10-satnu radionicu za ChickTech.org čiji je cilj da
Jeftin 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 se izrađuje i ima IC detekciju prepreka! Pogledajte ovo na http://bit.ly/OSTurtleI dizajnirao sam ovaj projekat za 10-satnu radionicu za ChickTech.org čiji je cilj da
LEGO Delta Robot skeniranje i crtanje: 7 koraka (sa slikama)
LEGO Delta Robot skeniranje i crtanje: Korištenje LEGO NXT -a za izradu Delta robota. Kombinirano skeniranje i crtanje
LED svjetlosne olovke za crtanje: Alati za crtanje lakih crteža: 6 koraka (sa slikama)
LED olovke za crtanje: Alati za crtanje lakih crteža: Moja supruga Lori neprestano crta i ja sam se godinama igrao fotografijom sa dugom ekspozicijom. Inspirisani PikaPika grupom lakih umjetnika i lakoćom digitalnih fotoaparata, uzeli smo umjetničku formu za crtanje svjetlom da vidimo šta možemo učiniti