Mundarija:
- 1 -qadam: original dizayn va ko'lam
- 2 -qadam: nazorat
- 3 -qadam: shovqin
- 4 -qadam: narsalarni yig'ish
Video: Robotik qo'l: Jensen: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Jensen - bu Arduino platformasida qurilgan, intuitiv harakatni rejalashtirishga qaratilgan, 1 ta mustaqil mustaqil loyiha, Charlz B. Mallochning rahbarligi ostida. Qo'lni qo'lda siljitish orqali dasturlashtirilgan bir qator harakatlarni takrorlashi mumkin. Men uni UMass Amherst M5 ishlab chiqarish maydonida qurilgan boshqa robotli qurollarni ko'rishdan ilhom oldim. Bundan tashqari, men SAPR dasturidan foydalanishni o'rganishni va Arduino -ning ilg'or loyihasini yaratishni xohlardim. Men buni hamma narsani qilish uchun imkoniyat sifatida ko'rdim.
1 -qadam: original dizayn va ko'lam
Bu loyiha uchun men tanlagan SAPR dasturiy ta'minoti OnShape edi va men modellashtirgan birinchi narsa HiTec HS-422 analog servo edi. Men servoni tanladim, chunki u mahalliy darajada mavjud edi va bu o'rtacha narx edi. Bu, shuningdek, o'z qismlarimni loyihalashga o'tishdan oldin OnShape -ni o'rganish uchun yaxshi amaliyot bo'lib xizmat qildi. Loyihaning dastlabki bosqichida men qo'l nimaga qodir bo'lishini xohlaganim haqida umumiy tasavvurga ega bo'ldim. Men uning munosib harakatlanish diapazoniga va narsalarni yig'ish uchun tutqichga ega bo'lishini xohlardim. Men SAPRda modellashtirishni davom ettirganimda, bu umumiy tavsiflar dizayn haqida ma'lumot berdi. Boshqa dizayn cheklovlaridan biri bu mening 3D printerimdagi bosma to'shakning o'lchami edi. Shuning uchun yuqoridagi rasmda ko'rib turgan taglik nisbatan ibtidoiy kvadrat.
Loyihaning ushbu bosqichida men qo'lni qanday boshqarishni xohlayotganimni ham o'ylab topdim. Men ishlab chiqaruvchilardan ilhom olgan bitta robot qo'li qo'g'irchoq qo'lidan boshqarish uchun ishlatilgan. Yana biri intuitiv yo'lni dasturlash usulini qo'llagan, bunda foydalanuvchi qo'lni turli pozitsiyalarga o'tkazgan. Keyin qo'l bu pozitsiyalar bo'ylab orqaga qaytadi.
Mening dastlabki rejam qo'lning qurilishini tugatish va keyin ikkala nazorat usulini ham amalga oshirish edi. Bundan tashqari, men uni boshqaradigan kompyuter dasturini o'rnatmoqchi edim. Siz aytganingizdek, men loyihaning bu jihati doirasini qisqartirdim. Men dastlabki ikkita boshqaruv usullari ustida ishlay boshlaganimda, men intuitiv yo'lni dasturlash men o'ylagandan ko'ra murakkabroq ekanligini tezda topdim. O'shanda men buni diqqat markazimga qo'yishga qaror qildim va boshqa nazorat usullarini noma'lum muddatga qoldirishga qaror qildim.
2 -qadam: nazorat
Men tanlagan boshqaruv usuli shunday ishlaydi: siz qo'lingizni qo'llaringiz bilan turli holatlarga o'tkazasiz va bu joylarni "saqlaysiz". Har bir pozitsiyada qo'lning har bir bo'g'ini orasidagi burchak haqida ma'lumot mavjud. Joylarni saqlash tugagandan so'ng, siz ijro etish tugmachasini bosasiz va qo'l bu pozitsiyalarning har biriga ketma -ket qaytadi.
Ushbu nazorat usulida ko'p narsalarni aniqlash kerak edi. Har bir servo saqlangan burchakka qaytishi uchun men birinchi navbatda bu burchaklarni qandaydir tarzda "saqlashim" kerak edi. Buning uchun men ishlatadigan Arduino Uno har bir servoning joriy burchagini qabul qila olishi kerak edi. Do'stim Jeremy Paradi, bu boshqaruv usulini qo'llaydigan robot qo'lini yasab, meni har bir sevimli mashg'ulot servosining ichki potentsiometridan foydalanishga yordam berdi. Bu servo burchakni kodlash uchun o'zini ishlatadigan potentsiometr. Men sinov servosini tanladim, simni ichki potentsiometrning o'rta piniga lehimladim va simni tashqarida oziqlantirish uchun korpusda teshik ochdim.
Men potentsiometrning o'rta pinidagi kuchlanishni o'qib, hozirgi burchakni olishim mumkin edi. Biroq, ikkita yangi muammo paydo bo'ldi. Birinchidan, o'rta pimdan keladigan signalda kuchlanishning ko'tarilishi ko'rinishidagi shovqin bor edi. Bu muammo keyinchalik haqiqiy muammoga aylandi. Ikkinchidan, burchakni yuborish va qabul qilish uchun qiymatlar diapazoni boshqacha edi.
Xobbi servo dvigatellariga 0 dan 180 darajagacha burchakka o'tishni aytish, unga burchakka mos keladigan yuqori vaqtli PWM signalini yuborishni o'z ichiga oladi. Aksincha, servo shoxini 0 dan 180 darajaga siljitish paytida potentsiometrning o'rta pimidagi kuchlanishni o'qish uchun Arduino analog kirish pinidan foydalanib, alohida qiymatlar diapazonini qaytaradi. Shuning uchun, saqlangan kirish qiymatini servoni bir xil burchakka qaytarish uchun kerakli PWM chiqish qiymatiga o'tkazish uchun ba'zi matematikalar kerak edi.
Mening birinchi fikrim, har bir saqlangan burchak uchun mos keladigan PWMni topish uchun oddiy diapazon xaritasidan foydalanish edi. Bu ishladi, lekin bu juda aniq emas edi. Mening loyihamda, 180 daraja burchak diapazoniga mos keladigan PWM yuqori vaqt qiymatlari diapazoni analog kirish qiymatlari diapazonidan ancha katta edi. Bundan tashqari, bu diapazonlarning ikkalasi ham uzluksiz emas va faqat butun sonlardan tashkil topgan. Shuning uchun saqlangan kirish qiymatini chiqish qiymatiga moslashtirganimda, aniqlik yo'qolgan. Aynan shu paytda men servolarni kerakli joyga olib borish uchun boshqaruv tsikli kerakligini tushundim.
Men PID nazorat qilish tsikli uchun kod yozdim, unda kirish o'rta pinli kuchlanish, chiqish esa PWM chiqishi edi, lekin tezda menga faqat yaxlit boshqaruv kerakligini aniqladim. Ushbu stsenariyda, chiqish va kirish ikkala burchakni ifodalaydi, shuning uchun mutanosib va hosilaviy boshqaruvni qo'shish uni haddan tashqari oshirib yuborish yoki kiruvchi xatti -harakatlarga olib keladi. Integral boshqaruvni sozlashdan so'ng, ikkita muammo bor edi. Birinchidan, agar joriy va kerakli burchak orasidagi xato katta bo'lsa, servo juda tez tezlashadi. Integral boshqaruv uchun doimiyni kamaytirishim mumkin edi, lekin bu umumiy harakatni juda sekinlashtirdi. Ikkinchidan, harakat jirkanch edi. Bu analog kirish signalidagi shovqin natijasi edi. Tekshirish davri bu signalni muttasil o'qib turardi, shuning uchun kuchlanishning keskin ko'tarilishi silkinishga olib keldi. (Shu nuqtada men ham bitta sinovli servomdan yuqoridagi rasmga o'tdim. Bundan tashqari, dasturiy ta'minotdagi har bir servo uchun boshqaruv tsikli ob'ektini yaratdim.)
Men chiqishga eksponentli og'irlikdagi o'rtacha (EWMA) filtrni qo'yish orqali juda tez tezlashtirish muammosini hal qildim. O'rtacha chiqishni hisobga olgan holda, harakatdagi katta burilishlar (shu jumladan, shovqindan jitter) kamayadi. Biroq, kirish signalidagi shovqin hali ham muammo edi, shuning uchun mening loyihamning keyingi bosqichi buni hal qilishga urinardi.
3 -qadam: shovqin
Yuqoridagi rasm
Qizil rangda: asl kirish signali
Moviy rangda: ishlov berishdan keyin kirish signali
Kirish signalidagi shovqinni kamaytirishning birinchi bosqichi uning sababini tushunish edi. Osiloskopda signalni tekshirish natijasida, kuchlanish 50 gigagertsli tezlikda sodir bo'lishi aniqlandi. Men bildimki, PWM signallari servolarga ham 50 Gts tezlikda yuborilgan, shuning uchun men kuchlanishning ko'tarilishining bunga aloqasi borligini taxmin qildim. Men taxmin qilardimki, servolarning harakati potentsiometrlarning V+ pinidagi kuchlanishning ko'tarilishiga olib keldi, bu esa o'z navbatida o'rta pimdagi o'qishni buzdi.
Bu erda men shovqinni kamaytirishga birinchi urinishimni qildim. Men har bir servoni qayta ochdim va potansiyometrdagi V+ pinidan keladigan simni qo'shdim. Menga ularni o'qish uchun Arduino Uno -dan ko'ra ko'proq analogli kirish kerak edi, shuning uchun men ham Arduino Mega -ga o'tdim. Mening kodimda, burchak kiritishini o'rta pimdagi kuchlanishni analog o'qishdan V+ pinidagi kuchlanish o'rtasidagi nisbatga o'zgartirdim. Men umid qilardimki, agar pimlarda kuchlanish kuchayib ketsa, bu nisbatda bekor qilinadi.
Men hamma narsani bir joyga to'pladim va sinab ko'rdim, lekin o'sish hali ham davom etmoqda. Men bu vaqtda nima qilishim kerak edi, bu mening fikrimni tekshirish edi. Buning o'rniga, mening keyingi fikrim potentsiometrlarni butunlay alohida quvvat manbaiga qo'yish edi. Men V+ simlarini Arduino analog kirishidan uzib, ularni alohida quvvat manbaiga uladim. Men ilgari pimlarni tekshirganman, shuning uchun ularni qanday kuchlanishda ishlatishini bilardim. Men har bir servoda boshqaruv paneli va V+ pin o'rtasidagi aloqani uzib qo'ydim. Men hamma narsani bir joyga to'pladim, burchak kiritish kodini avvalgi holatiga qaytardim va keyin sinab ko'rdim. Kutilganidek, kirish pimida kuchlanish kuchayishi kuzatilmadi. Biroq, yangi muammo paydo bo'ldi - potentsiometrlarni alohida quvvat manbaiga ulash servolarning ichki boshqaruv halqalarini butunlay chalkashtirib yubordi. V+ pinlari avvalgidek kuchlanish olgan bo'lsa -da, servolarning harakati beqaror va beqaror edi.
Men nima uchun bu sodir bo'layotganini tushunmadim, shuning uchun men oxirigacha servolarda erga ulanishni tekshirdim. Er yuzasida o'rtacha 0,3 voltsli kuchlanish pasayishi kuzatildi va servo tokni uzatganda u yanada yuqori ko'tarildi. O'sha paytda menga aniq bo'ldiki, bu pimlarni endi "tuproq" deb hisoblash mumkin emas va ularni "mos yozuvlar" pinlari deb ta'riflash mumkin. Servo boshqaruv panellari potentsiometrning o'rta pimidagi kuchlanishni V+ va tayanch pinlaridagi kuchlanishga nisbatan o'lchagan bo'lishi kerak. Potentsiometrlarni alohida -alohida quvvatlantirish bu nisbiy o'lchovni buzdi, chunki hozirda barcha pimlarda kuchlanish kuchayishi o'rniga, bu faqat mos yozuvlar pinida sodir bo'lgan.
Mening ustozim, doktor Malloch, bularning barchasini tuzatishga yordam berdi va boshqa pinlarga nisbatan o'rta pimdagi kuchlanishni o'lchashni ham taklif qildi. Bu men burchak kiritishining shovqinini kamaytirish bo'yicha uchinchi va oxirgi urinishim uchun qilgan ishim. Men har bir servoni ochdim, uzilgan simni qayta uladim va potansiyometrdagi mos yozuvlar pinidan keladigan uchinchi simni qo'shdim. Mening kodimda burchak kiritish usuli quyidagi ifodaga tenglashtirildi: Men uni sinab ko'rdim va u kuchlanish kuchlanishining ta'sirini muvaffaqiyatli kamaytirdi. Bundan tashqari, men ushbu kirishga EWMA filtrini qo'ydim. Bu qayta ishlangan signal va asl signal yuqorida tasvirlangan.
4 -qadam: narsalarni yig'ish
Shovqin muammosi o'z imkoniyatlarim darajasida hal etilgach, men dizaynning oxirgi qismlarini tuzatishga va yasashga kirishdim. Qo'l taglikdagi servoga juda og'irlik qilar edi, shuning uchun men katta rulman yordamida qo'lning og'irligini qo'llab -quvvatlaydigan yangi tayanch yasadim. Men ham ushlagichni chop etdim va uning ishlashi uchun biroz silliqladim.
Men yakuniy natijadan juda mamnunman. Intuitiv harakatni rejalashtirish izchil ishlaydi va hamma narsa hisobga olingan holda harakat silliq va aniq bo'ladi. Agar kimdir bu loyihani amalga oshirishni xohlasa, avvalo, men uni loyihaning soddalashtirilgan versiyasini yaratishga undagan bo'lardim. O'ylab qarasam, sevimli mashg'ulot servo dvigatellari yordamida shunday narsa qilish juda sodda edi va men uni ishga tushirishimdagi qiyinchilik shuni ko'rsatadiki. Men bilamanki, qo'l yaxshi ishlaydi. Men hali ham kompyuter bilan ishlay oladigan, murakkab dasturlarni boshqaradigan va aniqroq harakat qila oladigan robotli qo'l yasashni xohlayman, shuning uchun keyingi loyihamda buni qilaman. Men yuqori sifatli raqamli robototexnika servosidan foydalanaman va umid qilamanki, bu menga ushbu loyihada duch kelgan ko'plab muammolardan qochishga imkon beradi.
SAPR hujjati:
cad.onshape.com/documents/818ea878dda7ca2f…
Tavsiya:
Robotik protez: 3 qadam
Robotik protez: Bu mening ustamning oxirgi loyihasi. Bu 3D-printer va dasturlash oson elektron komponentlar yordamida mahalliy ishlab chiqarishga mo'ljallangan robot protezining prototipini yasashdan iborat bo'lib, juda muhim qismi uni platformada tarqatish edi
Robotik qush: 8 qadam
Robotik qush: Bu loyiha sizga suv ichadigan robot qushni qanday yasashni ko'rsatib beradi. Siz qushning ishini videoda ko'rishingiz mumkin. Osilator qush ikkita kontaktdan biriga tegib ketganda ishga tushadigan oddiy burilish sxemasidan qilingan
Robotik qo'l: 3 qadam
Robotik qo'l: Ciao a tutti! Vediamo keladi, bu robot boshqariladigan va boshqariladigan qurilmadir
Robotik qo'l o'yini - Smartfon boshqaruvchisi: 6 qadam
Robot qo'l o'yini - Smartfon boshqaruvchisi: Salom! Mana, yozgi qiziqarli o'yin: Smartfon tomonidan boshqariladigan robot qo'l! Videodan ko'rinib turibdiki, siz qo'lingizni smartfoningizdagi bir qancha joystiklar yordamida boshqarishingiz mumkin. Robot bir tsiklda ko'payadi, shuning uchun
Robotik qo'l ushlagichi: 3 qadam (rasmlar bilan)
Robotik qo'l ushlagichi: 3D printerda ishlab chiqarilgan robot tutqichni ikkita arzon servo (MG90 yoki SG90) yordamida boshqarish mumkin. Biz qisqichni boshqarish uchun miya qalqoni (+Arduino) dan foydalanganmiz va jjRobots APP -ni hamma narsani WIFI orqali masofadan ko'chirish uchun ishlatganmiz, lekin siz