Tartalomjegyzék:

Haptikus rajzoló robot: 5 lépés (képekkel)
Haptikus rajzoló robot: 5 lépés (képekkel)

Videó: Haptikus rajzoló robot: 5 lépés (képekkel)

Videó: Haptikus rajzoló robot: 5 lépés (képekkel)
Videó: Megkérdezték ezt a ROBOTOT, hogy hisz-e ISTENBEN 2024, Július
Anonim

A mesterképzésem részeként a dep. Az Eindhoven Egyetem ipari formatervezésében létrehoztam egy haptikus rajzeszközt, amellyel navigálni lehet egy félig autonóm autóban a forgalomban. Az interfészt scribble -nek hívják, és lehetővé teszi a felhasználó számára, hogy 2D -s térben haptikus rögzítéseket tapasztaljon, változó erőn és helyen keresztül. Bár a koncepció nem erről szól, ez az oktatható, a Scribble -ről itt olvashat bővebben:

A Scribble 5 bar összekötő konfigurációt használ, amely lehetővé teszi két oldalsó szabadsági fok (DoF) mozgatását. Ez a beállítás meglehetősen népszerű a prototípusok körében rajzrobotok készítéséhez, íme néhány példa:

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

Mechanikusan ezeket a robotokat könnyű elkészíteni. Csak alapcsuklókra van szükségük, és két működtetőszerkezettel rendelkeznek, amelyek némi folyékony mozgást képesek létrehozni. Ez a szerkezet ideális azoknak a tervezőknek, akik érdeklődnek a mozgó szerkezetek készítése iránt. Mivel azonban nem voltam gépészmérnök, a kinematikát meglehetősen nehéz kódra fordítani. Ezért megadom az alapvető Arduino kódot, amely kiszámítja az előremenő és az inverz kinematikát, így könnyedén használhatja ezt a jövőbeni tervekben!;-)

Kérjük, töltse le az alábbi kódot!

* SZERKESZTÉS: hasonló projekt esetén nézze meg a https://haply.co címet *

1. lépés: A szerkezet felépítése

A szerkezet építése
A szerkezet építése

Attól függően, hogy milyen célra gondol, először tervezzen meg egy 5 kötésű szerkezetet. Gondoljon a mérésekre, a hajtóművekre, amelyeket használni szeretne, és hogyan rögzítse az ízületeket a sima mozgás érdekében.

A prototípusomhoz a kódomat egy Arduino DUE -n futtatom, amelyet soros vezérlésű, a Mac rendszeren futó program, amely nyílt keretrendszerekben készült. A program UDP kapcsolatot használ a Unity 3D alapú vezetési szimulátorral való kommunikációhoz.

A Scribble prototípus 5 mm-es csapágyakat használ, és 5 mm-es lézerrel vágott akrilból készül. A hajtóművek Frank van Valeknhoef Haptic motorjai, amelyek lehetővé teszik a működtetést, a pozíció kiolvasását és a változó erő leadását. Ez ideálissá tette őket Scribble kívánt haptikus tulajdonságaihoz. A hajtóműveiről bővebben itt olvashat:

2. lépés: Ismerje meg a hardver értékeit

Ismerje meg a hardver értékeit
Ismerje meg a hardver értékeit

Az előremenő kinematika az SAP Plot clock időjárásállomásán alapul:

Amint az a konfigurációjukban látható, a kar ki van húzva, hogy tartsa a jelölőt a rajzoláshoz. Ezt eltávolították, mivel nem volt célja a firkálás prototípusának. Ellenőrizze a kódot, ha újra fel szeretné venni ezt az összetevőt. A képen látható nevek változatlanok maradnak a konfigurációmban.

A hardvertől függően az algoritmusnak ismernie kell a hardver tulajdonságait:

int leftActuator, rightActuator; // szög a hajtóműhöz írásban, de fokozzon úszóra, ha nagyobb pontosságra vágyik

int posX, posY; // a mutató helyének koordinátái

Állítsa be a bemeneti értékek felbontását

int posStepsX = 2000;

int posStepsY = 1000;

A beállítás méretei, az értékek mm -ben vannak megadva (lásd az SAP képet)

#define L1 73 // hosszúságú motorkar, lásd az SAP képet (bal és jobb ugyanaz)

#define L2 95 // hosszúságú meghosszabbító kar, lásd az SAP képet (bal és jobb ugyanaz)

#define rangeX 250 // maximális tartomány X irányban a pont mozgatásához (balról jobbra, 0 - maxVal)

#define rangeY 165 // maximális tartomány Y irányban a pont mozgatásához (0 -tól a maximális elérésig, miközben középen marad)

#define originL 90 // eltolás távolság a legtöbb minimális X értéktől a hajtómű középső pozíciójáig

#define originR 145 // eltolva a távolságot a legtöbb minimális X értéktől a hajtómű középső pozíciójáig, a két motor közötti távolság ebben az esetben

3. lépés: Előre kinematika

Előre kinematika
Előre kinematika

Amint az előző lépésben említettük, az előremenő kinematika az SAP algoritmusán alapul.

Az üresség frissíti a bal és jobb állítómű korábban meghatározott szögértékeit. A csatlakoztatott X és Y értékek alapján kiszámítja a derékszögeket, hogy a mutató ebbe a helyzetbe kerüljön.

void set_XY (dupla Tx, dupla Ty) // írja be X és Y értékét {// néhány val, amire szükségünk van, de nem akarunk hosszú dupla dx, dy, c, a1, a2, Hx, Hy hosszú időre menteni; // az inpit felbontásának leképezése a valós világ konfigurációjának tartományába int realX = map (Tx, 0, posStepsX, 0, rangeX); // csere, ha leképezés, ha megfordítva int realY = map (Ty, posStepsX, 0, 0, rangeY); // csere, ha leképezés, ha meg van fordítva // bal szelep számítási szöge // derékszögű dx/dy dx = realX - originL; // offset beillesztése dy = realY; // poláris hossz (c) és szög (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = visszatérési_szög (L1, L2, c); leftActuator = emelet ((((M_PI - (a2 + a1)) * 4068) / 71); // végső szög és átalakítás rad -ból deg -ig // számítási szög a jobboldali működtető számára dx = realX - originR; // offset beillesztése dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = visszatérési_szög (L1, L2, c); rightActuator = emelet ((((a1 - a2) * 4068) / 71); // végső szög és rad -ból deg -ba konvertálás}

További üresség a szög kiszámításához:

double return_angle (double a, double b, double c) {// koszinusz szabály a c és a return acos közötti szögre ((a * a + c * c - b * b) / (2 * a * c)); }

4. lépés: Fordított kinematika

Fordított kinematika
Fordított kinematika

A fordított kinematika fordítva működik. Bekapcsolja a hajtóművek forgatását fokban, és az üresség frissíti a korábban meghatározott pozíciót.

Kérjük, vegye figyelembe, hogy működtetőelemekre vagy külön érzékelőre lesz szüksége, amely le tudja olvasni a kar szögét. Az én esetemben olyan hajtóműveket használtam, amelyek egyszerre olvashatják és írhatják pozíciójukat. Bátran kísérletezzen ezzel, és fontolja meg valamilyen kalibrálás hozzáadását, hogy biztos lehessen abban, hogy a szög helyesen olvasható.

Ajánlott: