Innholdsfortegnelse:
- Trinn 1: Bygg strukturen
- Trinn 2: Kjenn maskinvareverdiene dine
- Trinn 3: Fremover kinematikk
- Trinn 4: Invers kinematikk
Video: Haptic Drawing Robot: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Som en del av min masterutdannelse ved avdelingen. Industrial Design ved Eindhoven University, laget jeg en haptisk tegneenhet som kan brukes til å navigere en semi-autonom bil gjennom trafikk. Grensesnittet kalles scribble og lar brukeren oppleve haptiske fixturer i et 2D -rom gjennom en variabel kraft og plassering. Selv om konseptet ikke er det dette instruerbare handler om, kan du lese mer om Scribble her:
Scribble bruker en 5 bar koblingskonfigurasjon som gjør at den kan flytte to laterale frihetsgrader (DoF). Dette oppsettet er ganske populært blant prototyper for å lage tegneroboter, her er noen eksempler:
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
Mekanisk er disse robotene enkle å lage. De trenger bare grunnleggende ledd og har to aktuatorer som kan skape ganske flytende bevegelser. Denne strukturen er ideell for designere som er interessert i å lage bevegelige strukturer. Men fordi jeg ikke var maskiningeniør, syntes jeg kinematikken var ganske vanskelig å oversette til kode. Derfor vil jeg gi grunnleggende Arduino -kode som finner ut fremover og invers kinematikk, slik at du enkelt kan bruke dette i dine fremtidige design!;-)
Last ned koden nedenfor!
* EDIT: for et lignende prosjekt, ta en titt på https://haply.co *
Trinn 1: Bygg strukturen
Avhengig av formålet du har i tankene, bør du først designe en 5-koblingsstruktur. Tenk på målingene, aktuatorene du vil bruke, og hvordan du fester leddene for jevne bevegelser.
For prototypen min kjører jeg koden min på en Arduino DUE som styres over seriell av et program på min Mac som ble laget i Open Frameworks. Programmet bruker en UDP -tilkobling for å kommunisere med en Unity 3D -basert kjøresimulator.
Scribble-prototypen bruker 5 mm lagre og er laget av 5 mm laserskåret acrilic. Aktuatorene er Frank van Valeknhoefs Haptic Engines som tillater aktivering, avlesning av posisjon og utmatning av en variabel kraft. Dette gjorde dem ideelle for Scribbles ønskede haptiske egenskaper. Mer om aktuatorene hans finner du her:
Trinn 2: Kjenn maskinvareverdiene dine
Forover kinematikk er basert på Plot-klokkestasjonen fra SAP:
Som vist i konfigurasjonen er forlenget for armen å holde en markør for å tegne. Dette har blitt fjernet siden det ikke tjente noen hensikt med prototypen for klatring. Sjekk koden deres hvis du vil legge til denne komponenten igjen. Navnene på bildet holdes de samme i min konfigurasjon.
Avhengig av maskinvaren trenger algoritmen å kjenne maskinvareegenskapene:
int leftActuator, rightActuator; // vinkel for å skrive til aktuatoren i grader, bytt til flyter hvis du ønsker mer nøyaktighet
int posX, posY; // koordinatene til plasseringen av pekeren
Angi oppløsningen for inndataverdiene
int posStepsX = 2000;
int posStepsY = 1000;
Dimensjoner på oppsettet ditt, verdiene er i mm (se SAP -bilde)
#define L1 73 // lengde motorarm, se SAP -bilde (venstre og høyre er det samme)
#define L2 95 // lengdeforlengelsesarm, se SAP -bilde (venstre og høyre er det samme)
#define rangeX 250 // maksimal rekkevidde i X -retning for punktet som skal beveges (fra venstre til høyre, 0 - maxVal)
#definere område Y 165 // maksimal rekkevidde i Y -retning for punktet å bevege seg (fra 0 til maksimal rekkevidde mens du holder deg sentrert)
#define originL 90 // offset distance from most minimum X value to actuator center position
#define originR 145 // offset distance from most minimum X value to actuator center position, distansen mellom de to motorene er i dette tilfellet
Trinn 3: Fremover kinematikk
Som nevnt i forrige trinn, er fremover kinematikk basert på SAPs algoritme.
Tomrommet oppdaterer venstre og høyre aktuator ønskede vinkelverdier definert tidligere. Basert på X- og Y -verdiene som er plugget inn, vil den beregne de rette vinklene for å få pekeren til denne posisjonen.
void set_XY (double Tx, double Ty) // input your X and Y value {// some vals we need but don't want to save for long double dx, dy, c, a1, a2, Hx, Hy; // kart inpit oppløsning til rekkevidde av konfigurasjonen din i den virkelige verden int realX = map (Tx, 0, posStepsX, 0, rangeX); // swap if mapping if inversed int realY = map (Ty, posStepsX, 0, 0, rangeY); // bytt hvis kartlegging omvendt // kalkvinkel for venstre aktuator // kartesisk dx/dy dx = realX - originL; // inkludere offset dy = realY; // polar lengde (c) og vinkel (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = retur_vinkel (L1, L2, c); leftActuator = gulv (((M_PI - (a2 + a1)) * 4068) / 71); // sluttvinkel og konvertere fra rad til grader // kalkvinkel for høyre aktuator dx = realX - originR; // inkludere offset dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = retur_vinkel (L1, L2, c); rightActuator = gulv (((a1 - a2) * 4068) / 71); // siste vinkel og konvertere fra rad til grader}
Ytterligere tomrom for vinkelberegning:
double return_angle (double a, double b, double c) {// cosinus rule for angle between c and a retur acos ((a * a + c * c - b * b) / (2 * a * c)); }
Trinn 4: Invers kinematikk
Den inverse kinematikken fungerer omvendt. Du kobler til rotasjonen til aktuatorene dine i grader, og tomrommet vil oppdatere posisjonen som er definert tidligere.
Vær oppmerksom på at du trenger aktuatorer eller en separat sensor som kan lese vinkelen på armen. I mitt tilfelle brukte jeg aktuatorer som både kan lese og skrive posisjonen deres samtidig. Eksperimenter gjerne med dette og vurder å legge til en slags kalibrering, slik at du er sikker på at vinkelen din blir lest riktig.
Anbefalt:
Drawing Robot With Adafruit Shield (Make It Move Contest): 10 trinn (med bilder)
Drawing Robot With Adafruit Shield (Make It Move Contest): Hei mine navn Jacob og jeg bor i Storbritannia. I dette prosjektet skal jeg bygge en robot som tegner for deg. *Jeg er sikker på at mange av dere vil se det, så hvis du vil vite, hopper du rett til det andre til siste trinnet, men husk å komme tilbake hit for å se
Mini Drawing Bot - Live Android -app - Trignomentry: 18 trinn (med bilder)
Mini Drawing Bot-Live Android App-Trignomentry: Takk GUD og alle dere for at jeg fikk prosjektet mitt Baby-MIT-Cheetah-Robot vant førstepremien i konkurransen Make it Move. Jeg er veldig glad fordi mange venner stiller mange spørsmål i samtalen og i meldinger. Et av de viktige spørsmålene var hvordan
MXY Board - Low -Budget XY Plotter Drawing Robot Board: 8 trinn (med bilder)
MXY Board - Lavbudsjett XY Plotter Drawing Robot Board: Målet mitt var å designe mXY board for å lage lavt budsjett til XY plotter tegnemaskin. Så jeg designet et brett som gjør det lettere for de som ønsker å lage dette prosjektet. I det forrige prosjektet, mens du bruker 2 stk Nema17 -steppermotorer, bruker dette brettet
LED Light Drawing Pens: Tools for Drawing Light Doodles: 6 Steps (with Pictures)
LED Light Drawing Pens: Tools for Drawing Light Doodles: Min kone Lori er en uopphørlig doodler og jeg har lekt med lang eksponering fotografering i årevis. Inspirert av PikaPika light artistry -gruppen og brukervennligheten med digitale kameraer tok vi på oss kunstformen for lystegning for å se hva vi kunne gjøre. Vi har en stor
Drunken Drawing Robot!: 4 trinn (med bilder)
Drunken Drawing Robot!: Inspirert av den lommedrukne roboten, ønsket jeg å gi roboten en jobb å gjøre. Jeg bestemte meg for å la den berusede roboten lage noen tegninger. For å lage din egen trenger du følgende: materialer: 3 tusjmerker en knappcelle batteri