Obsah:
- Krok 1: Budování struktury
- Krok 2: Poznejte své hardwarové hodnoty
- Krok 3: Kinematika vpřed
- Krok 4: Inverzní kinematika
Video: Haptický kreslící robot: 5 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
V rámci mé magisterské promoce na dep. Průmyslový design na univerzitě v Eindhovenu vytvořil haptické kreslící zařízení, které lze použít k navigaci poloautonomního auta v provozu. Rozhraní se nazývá scribble a umožňuje uživateli prožívat haptická zařízení ve 2D prostoru pomocí proměnné síly a umístění. Ačkoli tento koncept není tím, o čem tento návod je, můžete si přečíst více o Scribble zde:
Scribble používá konfiguraci 5 barů, která mu umožňuje pohybovat se dvěma bočními stupni volnosti (DoF). Toto nastavení je mezi prototypy pro vytváření kreslících robotů poměrně populární, zde je několik příkladů:
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
Mechanicky se tyto roboty snadno vyrábějí. Potřebují pouze základní klouby a mají dva ovladače, které mohou vytvářet docela plynulé pohyby. Tato struktura je ideální pro designéry, kteří mají zájem o výrobu pohyblivé struktury. Ačkoliv nejsem strojní inženýr, kinematiku jsem pro překlad do kódu považoval za poměrně obtížnou. Proto poskytnu základní kód Arduino, který vypočítá dopřednou a obrácenou kinematiku, takže to můžete snadno použít ve svých budoucích návrzích!;-)
Stáhněte si prosím níže uvedený kód!
* EDIT: pro podobný projekt se podívejte na https://haply.co *
Krok 1: Budování struktury
V závislosti na účelu, který máte na mysli, byste měli nejprve navrhnout 5-článkovou strukturu. Přemýšlejte o měřeních, akčních členech, které chcete použít, a o tom, jak připevnit klouby pro plynulé pohyby.
U mého prototypu spouštím svůj kód na Arduino DUE, který je přes sériový program řízen programem na mém Macu, který byl vytvořen v Open Frameworks. Program používá ke komunikaci se simulátorem jízdy na bázi Unity 3D připojení UDP.
Prototyp Scribble používá 5 mm ložiska a je vyroben z 5 mm laserem řezaného akrylu. Pohony jsou hmatové motory Franka van Valeknhoefa, které umožňují ovládání, čtení polohy a vydávání proměnné síly. Díky tomu byly ideální pro požadované haptické vlastnosti Scribble. Více o jeho akčních členech naleznete zde:
Krok 2: Poznejte své hardwarové hodnoty
Dopředná kinematika je založena na meteorologické stanici Plot s hodinami od společnosti SAP:
Jak ukazuje jejich konfigurace, je prodloužena tak, aby paže držela značku pro kreslení. Toto bylo odstraněno, protože prototyp Klikyháky nesloužil. Pokud chcete tuto součást znovu přidat, zkontrolujte jejich kód. Jména na obrázku zůstávají v mé konfiguraci stejná.
V závislosti na vašem hardwaru musí algoritmus znát vaše hardwarové vlastnosti:
int leftActuator, rightActuator; // úhel pro zápis na pohon ve stupních, změňte na plováky, pokud toužíte po větší přesnosti
int posX, posY; // souřadnice umístění ukazatele
Nastavte rozlišení vstupních hodnot
int posStepsX = 2000;
int posStepsY = 1000;
Rozměry vašeho nastavení, hodnoty jsou v mm (viz obrázek SAP)
#define L1 73 // délka ramene motoru, viz obrázek SAP (vlevo a vpravo jsou stejné)
#define L2 95 // prodlužovací rameno délky, viz obrázek SAP (vlevo a vpravo jsou stejné)
#definovat rozsahX 250 // maximální rozsah ve směru X pro pohybující se bod (zleva doprava, 0 - maxVal)
#definovat rozsahY 165 // maximální dosah ve směru Y pro bod, který se má pohybovat (od 0 do maximálního dosahu, když zůstanete ve středu)
#definovat originL 90 // vzdálenost odsazení od většiny minimálních hodnot X do středové polohy aktuátoru
#definovat originR 145 // offsetová vzdálenost od většiny minimálních hodnot X do středové polohy aktuátoru, vzdálenost mezi dvěma motory je v tomto případě
Krok 3: Kinematika vpřed
Jak již bylo zmíněno v předchozím kroku, dopředná kinematika je založena na algoritmu SAP.
Prázdnota aktualizuje dříve definované požadované úhlové hodnoty levého a pravého pohonu. Na základě připojených hodnot X a Y vypočítá správné úhly, aby se ukazatel dostal do této polohy.
void set_XY (double Tx, double Ty) // zadejte svoji hodnotu X a Y {// nějaké hodnoty, které potřebujeme, ale nechceme šetřit na dlouhé dvojité dx, dy, c, a1, a2, Hx, Hy; // mapování rozlišení inpit na rozsah vaší konfigurace v reálném světě int realX = mapa (Tx, 0, posStepsX, 0, rangeX); // swap if mapping if inversed int realY = map (Ty, posStepsX, 0, 0, rangeY); // swap při mapování, pokud je inverzní // výpočet úhlu pro levý pohon // kartézský dx/dy dx = realX - originL; // zahrnout offset dy = realY; // polární délka (c) a úhel (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = návratový úhel (L1, L2, c); leftActuator = floor ((((M_PI - (a2 + a1)) * 4068) / 71); // konečný úhel a převod z rad na deg // vypočítat úhel pro pravý pohon dx = realX - originR; // zahrnout offset dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = návratový úhel (L1, L2, c); rightActuator = floor (((a1 - a2) * 4068) / 71); // konečný úhel a převod z rad na deg}
Dodatečná mezera pro výpočet úhlu:
double return_angle (double a, double b, double c) {// kosinové pravidlo pro úhel mezi c a návratovým acos ((a * a + c * c - b * b) / (2 * a * c)); }
Krok 4: Inverzní kinematika
Inverzní kinematika funguje obráceně. Zapojíte otáčení pohonů ve stupních a prázdnota aktualizuje dříve definovanou polohu.
Vezměte prosím na vědomí, že budete potřebovat akční členy nebo samostatný snímač, který dokáže číst úhel ramene. V mém případě jsem použil akční členy, které mohou současně číst a zapisovat svoji polohu. Nebojte se s tím experimentovat a zvažte přidání nějaké kalibrace, abyste měli jistotu, že je váš úhel správně přečten.
Doporučuje:
Kreslící robot se štítem Adafruit (soutěž Make It Move): 10 kroků (s obrázky)
Drawing Robot With Adafruit Shield (Make It Move Contest): Dobrý den, jmenuji se Jacob a žiji ve Velké Británii. V tomto projektu budu stavět robota, který pro vás kreslí. *Určitě to mnozí z vás chtějí vidět, takže pokud to chcete vědět, přeskočte přímo na druhý až poslední krok, ale určitě se sem vraťte a uvidíte
Haptický přibližovací modul - levný a snadný: 5 kroků (s obrázky)
Haptický blízký modul - levný a snadný: Bohem nadaný smysl pro vidění lidské bytosti je důležitým aspektem našeho života. Ale jsou tu strašní nešťastníci, kterým chybí schopnost vizualizace věcí. Na celém světě je přibližně 37 milionů lidí, kteří jsou nevidomí, přes 15 mili
Kreslicí robot pro Arduino: 18 kroků (s obrázky)
Drawing Robot pro Arduino: Poznámka: Mám novou verzi tohoto robota, který používá desku s plošnými spoji, snáze se staví a má detekci IR překážek! Podívejte se na http://bit.ly/OSTurtle Tento projekt jsem navrhl pro 10hodinový workshop pro ChickTech.org, jehož cílem je
Levný, kreslící robot kompatibilní s Arduino: 15 kroků (s obrázky)
Nízkorozpočtový kreslící robot kompatibilní s Arduino: Poznámka: Mám novou verzi tohoto robota, který používá desku s tištěnými spoji, snáze se staví a má detekci IR překážek! Podívejte se na http://bit.ly/OSTurtle Tento projekt jsem navrhl pro 10hodinový workshop pro ChickTech.org, jehož cílem je
Avatar kreslící robot pomocí MESH: 6 kroků (s obrázky)
Robot kreslení avatara pomocí MESH: Slyšeli jste, že fyzická aktivita vás může učinit kreativnějšími? Aktivní vám pomůže rozšířit myšlení a vytvářet kreativní nápady. Pokud nepracujete často, ale chcete podpořit svou kreativitu, nebojte se - tady je něco pro vás! Toto