Mundarija:

Haptik chizilgan robot: 5 qadam (rasmlar bilan)
Haptik chizilgan robot: 5 qadam (rasmlar bilan)

Video: Haptik chizilgan robot: 5 qadam (rasmlar bilan)

Video: Haptik chizilgan robot: 5 qadam (rasmlar bilan)
Video: 주방에서 사용하는 다이소용품19가지 / 다이소 그릇 / 주방청소 2024, Noyabr
Anonim

Magistratura bo'limida magistraturani bitirganman. Eyndxoven universitetining sanoat dizayni, men yarim avtonom avtomashinada harakatlanish paytida harakatlanuvchi haptik chizish moslamasini yaratdim. Interfeysi scribble deb nomlanadi va foydalanuvchiga o'zgaruvchan kuch va joylashuv orqali 2D maydonda haptik moslamalarni ko'rish imkonini beradi. Garchi kontseptsiya tushunarli bo'lmasa ham, Scribble haqida ko'proq ma'lumotni bu erda o'qishingiz mumkin:

Scribble 5 barli ulanish konfiguratsiyasidan foydalanadi, bu unga ikki yon erkinlik darajasini (DoF) siljitishga imkon beradi. Ushbu sozlash prototiplar orasida chizilgan robotlarni yaratish uchun juda mashhur, bu erda ba'zi misollar:

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

Mexanik ravishda bu robotlarni yasash oson. Ularga faqat asosiy bo'g'inlar kerak bo'ladi va ikkita harakatlantiruvchi vosita bor, ular juda oz miqdordagi suyuq harakatlarni yaratishi mumkin. Bu struktura harakatlanuvchi tuzilmani yaratmoqchi bo'lgan dizaynerlar uchun juda mos keladi, lekin men muhandis -mexanik bo'lmaganim uchun kinematikani kodga tarjima qilish juda qiyin edi. Shunday qilib, men oldinga va teskari kinematikani aniqlaydigan asosiy Arduino kodini taqdim etaman, shuning uchun uni kelajakdagi dizaynlaringizda osongina ishlatishingiz mumkin!;-)

Iltimos, quyidagi kodni yuklab oling!

* EDIT: shunga o'xshash loyiha uchun https://haply.co saytiga qarang *

1 -qadam: Strukturani qurish

Strukturani qurish
Strukturani qurish

Maqsadingizga qarab, siz avval 5-bog'lamali tuzilmani loyihalashingiz kerak. O'lchovlar, ishlatmoqchi bo'lgan aktuatorlar va silliq harakatlar uchun bo'g'inlarni qanday ulash haqida o'ylab ko'ring.

Mening prototipim uchun men o'z kodimni Open Frameworks -da yaratilgan Mac -dagi dastur tomonidan ketma -ket boshqariladigan Arduino DUE -da ishlataman. Dastur Unity 3D asosidagi haydash simulyatori bilan bog'lanish uchun UDP ulanishidan foydalanadi.

Scribble prototipi 5 mm rulmanlardan foydalanadi va 5 mm lazer bilan kesilgan akriladan qilingan. Aktivatorlar - Frank van Valeknhoefning Haptic dvigatellari bo'lib, ular ishga tushirish, pozitsiyani o'qish va o'zgaruvchan kuch chiqarishga imkon beradi. Bu ularni Scribble -ning xohlagan haptik xususiyatlari uchun ideal holga keltirdi. Uning aktuatorlari haqida ko'proq ma'lumotni bu erda topishingiz mumkin:

2 -qadam: Uskuna qiymatlaringizni bilib oling

Uskuna qiymatlaringizni bilib oling
Uskuna qiymatlaringizni bilib oling

Oldinga kinematika SAP bo'yicha uchastkali ob-havo stantsiyasiga asoslangan:

Ularning konfiguratsiyasida ko'rsatilgandek, qo'l chizish uchun markerni ushlab turishi uchun cho'zilgan. Chizilgan prototip uchun hech qanday maqsadga xizmat qilmagani uchun bu olib tashlandi. Agar siz ushbu komponentni qayta qo'shishni xohlasangiz, ularning kodini tekshiring. Rasmdagi ismlar mening konfiguratsiyamda saqlanib qolgan.

Uskunangizga qarab, algoritm sizning apparat xususiyatlaringizni bilishi kerak:

int chapAktuator, o'ngAktuator; // burchakka aktuatorga degda yozish uchun, agar siz aniqroq bo'lishni xohlasangiz, suzish rejimiga o'zgartiring

int posX, posY; // ko'rsatgich joylashish koordinatalari

Kirish qiymatlarining aniqligini belgilang

int posStepsX = 2000;

int posStepsY = 1000;

O'rnatishning o'lchamlari, qiymatlari mm (SAP rasmiga qarang)

#define L1 73 // uzunlikdagi motorli qo'l, SAP rasmiga qarang (chap va o'ng bir xil)

#define L2 95 // uzunlikdagi qo'l, SAP rasmiga qarang (chap va o'ng bir xil)

#define diapazon X 250 // harakatlanish nuqtasi uchun X yo'nalishidagi maksimal diapazon (chapdan o'ngga, 0 - maxVal)

Y 165 oralig'ini aniqlang // harakatlanish nuqtasi uchun Y yo'nalishi bo'yicha maksimal diapazon (markazda turib 0 dan maksimal chegaraga)

#define kelib chiqishiL 90 // eng kichik X qiymatidan aktuator markazining holatigacha bo'lgan masofa

#aniqlang R 145 // eng kichik X qiymatidan aktuator markazining pozitsiyasiga ofset masofa, bu holda ikkita dvigatel orasidagi masofa

3 -qadam: oldinga kinematika

Oldinga kinematika
Oldinga kinematika

Oldingi bosqichda aytib o'tilganidek, oldinga kinematika SAP algoritmiga asoslangan.

Bo'shliq chap va o'ng aktuatorning ilgari belgilangan burchak qiymatlarini yangilaydi. Unga ulangan X va Y qiymatlariga asoslanib, ko'rsatgichni bu holatga keltirish uchun to'g'ri burchaklarni hisoblab chiqadi.

void set_XY (double Tx, double Ty) // X va Y qiymatlarini kiriting {// bizga kerak bo'lgan, lekin uzoq dx, dy, c, a1, a2, Hx, Hy uchun saqlamoqchi bo'lmagan ba'zi valslar; // real dunyodagi konfiguratsiyangiz diapazoniga mos keladigan xaritani int realX = map (Tx, 0, posStepsX, 0, rangeX); // agar almashtirilsa, agar xaritani teskari o'zgartirsa int realY = map (Ty, posStepsX, 0, 0, intervalY); // agar teskari bo'lsa xaritalash bo'lsa almashtirish // chap aktuator uchun hisob burchagi // kartezian dx/dy dx = realX - origL; // o'z ichiga ofset dy = realY; // qutb uzunligi (c) va burchak (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = qaytish burchagi (L1, L2, c); leftAktuator = qavat (((M_PI - (a2 + a1)) * 4068) / 71); // yakuniy burchak va raddan gradga aylantirish // o'ng aktuator uchun hisob burchagi dx = realX - OrigR; // o'z ichiga ofset dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = qaytish burchagi (L1, L2, c); rightActuator = qavat (((a1 - a2) * 4068) / 71); // oxirgi burchak va raddan gradga aylantirish}

Burchakni hisoblash uchun qo'shimcha bo'shliq:

double return_angle (double a, double b, double c) {// c va qaytish orasidagi burchak uchun kosinaviy qoida acos ((a * a + c * c - b * b) / (2 * a * c)); }

4 -qadam: teskari kinematika

Teskari kinematika
Teskari kinematika

Teskari kinematika aksincha ishlaydi. Siz aktuatorlarning aylanishini darajaga ulaysiz va bo'shliq avval aniqlangan pozitsiyani yangilaydi.

E'tibor bering, sizga qo'lning burchagini o'qiy oladigan aktuatorlar yoki alohida sensor kerak bo'ladi. Menimcha, men bir vaqtning o'zida o'z pozitsiyasini o'qiy oladigan va yozadigan aktuatorlardan foydalandim. Bu bilan tajriba o'tkazing va qandaydir kalibrlashni qo'shishni o'ylab ko'ring, shunda sizning burchagingiz to'g'ri o'qilganiga amin bo'lasiz.

Tavsiya: