Мазмуну:

Чөмүлтүлүүчү робот: 5 кадам (сүрөттөр менен)
Чөмүлтүлүүчү робот: 5 кадам (сүрөттөр менен)

Video: Чөмүлтүлүүчү робот: 5 кадам (сүрөттөр менен)

Video: Чөмүлтүлүүчү робот: 5 кадам (сүрөттөр менен)
Video: Что будет, если ржавый гвоздь воткнется вам в ногу? 2024, Ноябрь
Anonim

Мастерликти депо боюнча бүтүрүүмдүн бир бөлүгү катары. Эйндховен университетинин өнөр жай дизайны, мен трафик аркылуу жарым автономдуу машинаны башкарууга колдонулуучу haptic сүрөт тартуучу түзүлүштү жараттым. Интерфейс scribble деп аталат жана колдонуучуга 2D мейкиндигинде хаптиктик шаймандарды өзгөрүлмө күч жана жайгашуу аркылуу көрүүгө мүмкүнчүлүк берет. Бул түшүнүктүү нерсе түшүнүк болбосо да, Scribble жөнүндө бул жерден окуй аласыз:

Scribble 5 тилкелүү байланыш конфигурациясын колдонот, ал эркиндиктин эки каптал даражасын (DoF) жылдырууга мүмкүндүк берет. Бул орнотуу роботторду түзүү үчүн прототиптердин арасында абдан популярдуу, бул жерде кээ бир мисалдар келтирилген:

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

Механикалык түрдө бул роботторду жасоо оңой. Аларга бир гана негизги муундар керек жана бир аз суюк кыймылдарды жаратуучу эки кыймылдаткыч бар. Бул структура кыймылдуу структураны түзүүгө кызыккан дизайнерлер үчүн идеалдуу, бирок мен инженер -механик эмесмин, кинематиканы кодго которуу абдан кыйын болду. Ошентип, мен алдыга жана тескери кинематиканы аныктай турган негизги Arduino кодун берем, андыктан муну келечектеги дизайндарыңда оңой колдоно аласың!;-)

Сураныч, төмөндөгү кодду жүктөп алыңыз!

* EDIT: окшош долбоор үчүн, https://haply.co караңыз *

1 -кадам: структураны куруу

Структураны куруу
Структураны куруу

Максатыңызга жараша, адегенде 5 шилтеме структурасын иштеп чыгыңыз. Өлчөмдөр, колдонууну каалаган кыймылдаткычтар жана жылмакай кыймылдар үчүн муундарды кантип бекитүү жөнүндө ойлонуп көрүңүз.

Прототипим үчүн, мен кодумду Open Frameworks -те жасалган Mac программамдын сериялык көзөмөлүндө турган Arduino DUEде иштетем. Программа Unity 3D негизиндеги айдоо симулятору менен байланышуу үчүн UDP байланышын колдонот.

Scribble прототиби 5 мм подшипниктерди колдонот жана 5 мм лазер менен кесилген акриликтен жасалган. Кыймылдаткычтар - Франк ван Валекнхофтун Haptic Engines, алар кыймылга келтирүүгө, позицияны окуп чыгууга жана өзгөрмө күч чыгарууга мүмкүндүк берет. Бул аларды Scribble каалаган haptic касиеттери үчүн идеалдуу кылды. Анын кыймылдаткычтары жөнүндө көбүрөөк маалыматты бул жерден тапса болот:

2 -кадам: Аппараттык баалуулуктарыңызды билиңиз

Аппараттык баалуулуктарыңызды билиңиз
Аппараттык баалуулуктарыңызды билиңиз

Алдыңкы кинематика SAP тарабынан Plot саат метеостанциясына негизделген:

Алардын конфигурациясында көрүнүп тургандай, кол чийүү үчүн маркерди кармап турат. Бул чийилген прототип үчүн эч кандай кызмат кылбагандыктан алынып салынган. Бул компонентти кайра кошууну кааласаңыз, алардын кодун текшериңиз. Сүрөттөгү аттар менин конфигурациямда ошол бойдон сакталып турат.

Аппараттык жабдууларыңызга жараша алгоритм аппараттык касиеттериңизди билиши керек:

int leftActuator, rightActuator; // бурчу, аткаруучуга deg менен жазуу үчүн, эгер сиз дагы тактыкты кааласаңыз, калкып жүрүүгө өзгөрүңүз

int posX, posY; // көрсөткүчтүн жайгашкан жеринин координаттары

Киргизүү баалуулуктарыңыздын чечилишин коюңуз

int posStepsX = 2000;

int posStepsY = 1000;

Орнотууңуздун өлчөмдөрү, мааниси мм (SAP сүрөтүн караңыз)

#define L1 73 // узундугу мотор колу, SAP сүрөтүн караңыз (сол жана оң)

#define L2 95 // узундугу узартуу колу, SAP сүрөтүн караңыз (сол жана оң)

#define rangeX 250 // жылдыруу чекити үчүн X багытындагы максималдуу диапазон (солдон оңго, 0 - maxVal)

#аныктоо диапазонуY 165 // жылуу чекити үчүн Y багытындагы максималдуу диапазон (0дөн баштап максималдуу жетүүгө чейин)

#define origL 90 // эң аз X маанисинен аткаруучу борборунун абалына чейинки аралык

#аныктооR 145 // көпчүлүк минималдуу X маанисинен аткаруучу борборунун абалына чейинки аралык, эки мотордун ортосундагы аралык бул учурда

3 -кадам: Алга Кинематика

Алга Кинематика
Алга Кинематика

Мурунку кадамда айтылгандай, алдыга карай кинематика SAPтын алгоритмине негизделген.

Боштук мурда аныкталган сол жана оң кыймылдаткычтын каалаган бурчтук маанилерин жаңыртат. Ага туташтырылган X жана Y маанилеринин негизинде көрсөткүчтү ушул абалга жеткирүү үчүн туура бурчтарды эсептеп чыгарышат.

void set_XY (double Tx, double Ty) // X жана Y маанилерин киргизиңиз {// кээ бир валдар бизге керек, бирок узак dx, dy, c, a1, a2, Hx, Hy үчүн сактоону каалабайт; // реалдуу дүйнөдө конфигурацияңыздын диапазонуна карта киргизүү чечими int realX = map (Tx, 0, posStepsX, 0, rangeX); // swap эгер картага айландырылган болсо int realY = map (Ty, posStepsX, 0, 0, rangeY); // эгер карама -каршы болсо, алмаштыруу // сол аткаруучу үчүн эсептөө бурчу // картезиан dx/dy dx = realX - OrigL; // offset dy = realY кирет; // уюлдук узундук (с) жана бурч (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = return_angle (L1, L2, c); leftActuator = кабат (((M_PI - (a2 + a1)) * 4068) / 71); // акыркы бурч жана раддан градуска которуу // туура аткаруучу үчүн кальций бурчу dx = realX - OrigR; // offset dy = realY кирет; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = return_angle (L1, L2, c); rightActuator = кабат (((a1 - a2) * 4068) / 71); // акыркы бурч жана раддан градуска айландыруу}

Бурчту эсептөө үчүн кошумча боштук:

double return_angle (double a, double b, double c) {// косинус эрежеси с менен кайтуу acos ортосундагы бурч үчүн ((a * a + c * c - b * b) / (2 * a * c)); }

4 -кадам: Тескери кинематика

Тескери кинематика
Тескери кинематика

Тескери кинематика тескерисинче иштейт. Сиз активаторлоруңуздун айлануусун градуска туташтырасыз жана боштук мурда аныкталган абалды жаңыртат.

Сураныч, колуңуздун бурчун окуй турган кыймылдаткычтарга же өзүнчө сенсорго муктаж экениңизди эске алыңыз. Менин учурда, мен бир эле учурда өз позициясын окуй да, жаза да турган кыймылдаткычтарды колдондум. Бул менен эксперимент жүргүзүүдөн тартынбаңыз жана кандайдыр бир калибрлөөнү кошуп көрүңүз, андыктан бурчуңуз туура окулганына ишенесиз.

Сунушталууда: