Изостављање розказни о томе како сам дошао на идеју да се изгради хексапода (било је тона видеа на ИоуТубе), идите директно на детаљима процеса селекције. Био је јануар 2012. године. Ја само знам шта желим од мог рада и шта - не. И лике:
да је сваки нога била 3 степена слободе - 3доф (3 димензије слободе), као лакши опција 2доф - прави осећај инсеката и 4доф - Онце, 3доф и тако вам омогућава да се слободно крећу врх стопала у 3Д простору;
6 феет. Поново, ово није 4 (ако неспретан робот скокови), али не 8 као паукова који су прекомерно;
Мала величина;
јефтини по трошку;
са минимум одбора и прикључака.
Корак 1. Прво, наравно, морао да бира матичну плочу за дете. Многи добро и лоше време да чита у време Ардуино. Али на њему и гледао као главни опцију. Солдер сама контролер - да није било времена, те да више напредне таблу са АРМ, на пример - то је скупо, и разумем како своје програме, како се ради са налазима ПВМ итд - дуге. Ардуина: ИДЕ покренуо, напедалил код, отпремање притисне - и здраво, имате га блинк. Лепота! ;)
Прво сам почео да погледате Ардуино мега и клонова, тако да ПВМ излаза које могу контролисати серво су имали довољно. Запамтите да 3доф хексапода треба 3 * 6 = 18 слуге и управљање компонента канала. Али онда сам нашао праву иазз међу Ардуино Мега, а бригу о Дагу, позовите Ред Бацк Спидер Цонтроллер. Овде је на ебаи.
Нуди све његове излаза као завршио 3-Пин (земљиште, храна, тон), и раствор хране. Снага Цонтроллер стабилизовао, а конектор је двихлов као ис (УПД: не како, али и стабилизовала на 5 волти и очигледно решен Повер контролером као мешање са контролером 18 истовремених кметови не могу зарадити.). Ово омогућава фајл на терминал 7-30 волтс хране довољно снага (Еее ПЦ упитник од 901 до 12В и 3А - било довољно за све 18 серво зујање) и не преварити са одвојеним напајањем и логичког двихлов. Такође, он ће у будућности је лако ставити на овој Монстер Пацк Ли-Ион батерија 7.4 волти. И уз све то, програмски тачка гледишта - то је уобичајена ардуиинов мега-компатибилан софтвер и либами и гвожђа (осим схилдов, поставити директно на оригиналним мега - они неће радити). Међутим цијена је већа од чак оригиналног Мега, али и свим другим професионалци га превазилази.
Корак 2. Нект сервос. На ебаи Мицро Серво Питајте их много другачије. Узео сам најмоћнија од најмањих и најјефтинијим, 9 грама тежине, пластичне опремом. Ако узмете много где шаљу серије - је јефтинији. Узео сам 3 паковања од 6 Изгледа да је било мање од $ 2 комад. Ја ћу вам рећи да жалим не провео више и узети серво са металним зупчаника и кугличним лежајевима. Ови пластика били прилично запажен реакцију, а карактеристичан кризу када прекомерна сила када прескаче зупчаника. Због реакције - кинематика прилично тешко прецизно подесити (као што је обично најтежи испало).
То је све што сам наредио, достава је то урадио око 100 $. Батерије и предајници / пријемници за праћење и радиоуправлиаемости - оставио за касније. Јер радио-контролисана машина које имам, а не питају шта ми заиста заинтересовани - то је ноге! Видео ићи глатко хексаподов на ИоуТубе - Гледао сам фасцинирана га, погледао, и сваки пут сузе котрља низ образе, а ја угуши звиждање "Желим! ". Ја не бих тражио готов комад, а ја желим да урадим било шта највише је!
Чекајући како гласи образованих људи анимирају своје креације. Наравно, одмах појавили инверзни кинематику. Ако једноставно и директно о схарнитные "удова", директних кинематика кажу - ово је место где улаз поднео угловима зглобова, а излаз имамо модел екстремитета у простору, координате екстремних тачака екстремитета. Инверзне кинематика је - очигледно у супротности - улаз примио координате екстремних тачака уда где морамо да достигне, а излаз добијамо углове које треба да се окрену шарке како би ово извели. Серво само добити улазну угаоне позиције у којој им је потребна да се врате (једна жица сигнала кодирано ПВМ / ПВМ).
Корак 3. Почео сам са, који читају, мислим кроз имплементацију ИЦ. Али убрзо је дошао осећај да ми је то случај превише сложен. И као гломазна да спроведе и рачунски веома тешко - рачуница је итеративни. И ја имам 6 ноге, а сваки од њих треба сматрати ИЦ, а баш паметан 16Мхтс Архитектура АВР. Али само 3 степена слободе. И лако погодити да произвољна тачка у дотиахуванниа "може достићи само један пут. Одлука је сазрео у мојој глави.
Али онда је дошао фебруара и парцеле - једна од Кине, другог УК. Прва ствар коју сам обично само похравсиа Паи ардуиинов - поморхал попиликал ЛЕД и говорник повезан тамо. Затим је почео стварно спроводјење ИЦ, у жлезди. Оно што је он изградио прототип метра од отпадног материјала (а благе пластмасска да је лако да смањи са маказама, завртњима и прилоге - Сви комплети погоне). Овај терминатор нога обезбеђен директно на плочи ардуины. Можете размотрити како буџет направљен зглобове.
Помилувавсиа овај случај и помрииав да ако заснива овај посао у будућности спаиаиу терминатор, који објављује рат човечности, а касније са Јохн Цоннор Шварценегер се враћа на мене овде у прошлости и да ће изабрати ову прототип и њену расплавиат у Ородруине. Али нико није вратио, ништа одузети, а отишао сам на тихо.
Корак 4. Утврђено је да ИК не треба да се плаше, у мом случају је дошло до тривијалне геометрије, тригонометрије. Лакше применити на зглобовима, окренуо Википедиа и почаствован од инсеката. Они имају посебне називе за уда:
Руски такође има своје веома занимљиве имена за ово, али "чинија", "вертлух", "нога", итд, док је у коду није дозволила да спавам. Па сам 3 удови и релевантни серво управљач одсуство име Цока, Фемур, Тибиа. Од прототипа ноге горе показује да не морате чак ни да Цока одвојене делове. То је само два серво везан гумицама. Фемур - спроводи траку пластике, који су обе стране су монтирани полуге слуге. Тако преостала серводвизхок - почетак тибије, проширити на које је заврнут комад пластике.
Корак 5. Покренут уредника, а не мудствуиа креиран фајл Лег.х, и то у класи Лег. И гомила помоћног Мути. Претпоставимо да постоји тачка у свемиру А (секира, аи, аз), који би требало да достигне. На врх поглед изгледа овако:
Слика сам одмах показао начин прорачуна први угао - угао ротације серво, контролишу Цока, који ротира цео уд на хоризонталној равни. Дијаграм одмах означен црвеним варијабле користе у коду (не све). Није баш математички, али удобан. Евидентно је да смо заинтересовани угао је елементарно. Први примариЦокаАнгле - је само угао (0;) на осу Кс (еквивалент у корнер тачке у поларним координатама). Али дијаграм показује да док сама нога - Не распалозхена у овом тренутку. Разлог је што оса ротације кука није да "построје" - не знам како да то кажем исправно. Не у равни у којој окретањем зглоба и други је 2 м тип, овде. Ово се лако може компензовати, с обзиром аддитионалЦокаАнгле (као што сматра - чак утрузхдаиус стајалиште јер су још увек у школи, зар не?).
Заједно, ми имамо прву део кода, овај метод утроба РЕАЦХ (Поинт & дест):
флоат хДист = скрт (скр (дест.к - _цСтарт.к) + скр (дест.и - _цСтарт.и));
флоат аддитионалЦокаАнгле = хДист == 0.0? ДОНТ_МОВЕ
: Асин (_цФемурОффсет / хДист);
флоат примариЦокаАнгле = поларАнгле (дест.к - _цСтарт.к, дест.и - _цСтарт.и, _тхирдКуартерФик);
флоат цАнгле = хДист == 0.0? ДОНТ_МОВЕ
: ПримариЦокаАнгле - аддитионалЦокаАнгле - _цСтартАнгле; Ево дест - ово је тачка у којој назхо драг, _цСтарт - координате хардвера (и центар ротације) кука, у хДист размотрити удаљеност од _цСтарт до дестинације у хоризонталној равни. ДОНТ_МОВЕ - то је само застава, што значи да нису нигде Цока треба да укључите и напусти тренутну позицију (као одред - негде десно на оси ротације кука - ретко, али се дешава). Ево цАнгле - ово је кутак где желите серво управљач ће одступити од свог првобитног угла (која је у средини свог радног опсега). Може се видети да као иузаетсиа _цСтартАнгле - је угао у простору, који је вратио серво деволту, током инсталације. О _тхирдКуартерФик вам касније ако не заборави.
Корак 6. Онда се ствари још лакше. Само треба да погледамо поменутој авион "построје":
Дакле, проблем је изненада смањена на проналажење тачка пресека 2 круга. Један - до тачке када "расте" наш бутна кост, други - тачка у којој морамо да достигне (2Д локалне координате). Радијуса од кругова - дужина бутне кости и потколенице, респективно. Ако су кругови секу у једној од 2 бодова може се поставити јоинт. Ми увек изабрати горњи да "колено" у чудовишта су навалили горе, не доле. Ако не преклапају - није дотианемсиа циљне тачке. Мало код, пребаците на авиону је једноставно само пар замки се узме у обзир и документовано у коментарима које имам не збуњен онда испитивање код. Због једноставности, у ово локални координатни "авион горе" Изабрао сам нулта тачка у којој расте фемур:
// Прелазак на локалном Цока-бутне кости-мете координатни систем
// Напомена случај када хДист<= _cfemuroffset.="" this="" is="" for="" the="" blind="">=>
// Ми никада не можемо достићи тачку која је ближе _цСтарт тада
// Фемур оффсет (_фСтартФарОффсет)
флоат лоцалДестКс = хДист СКР (_фЛенгтх + _тЛенгхт))
{
лог ("не могу да дохватим!");
ретурн фалсе;
} Корак 7. Сада лоцалДестКс и лоцалДестИ - координате циљне тачке. Све што остаје - да пронађу раскрснице кругове са центром на (00) и (лоцалДестКс, лоцалДестИ), и радијуса _фЛенгтх и _тЛенгтх (односно дужина и дужина бутне кости тибиа). Са овог ученика такође не, али ја признајем има много грешака да проверите за себе и свако може да уради да провери Какав глупим формула, остављајући референцу која је јасно раззхована ово елементарно геометријска проблема:
// Финд заједничко као круг секу (једначине из хттп://е-макк.ру/алго/цирцлес_интерсецтион & хттп://е-макк.ру/алго/цирцле_лине_интерсецтион)
флоат = -2 * лоцалДестКс;
флоат Б = -2 * лоцалДестИ;
флоат Ц = СКР (лоцалДестКс) + СКР (лоцалДестИ) + СКР (_фЛенгтх) - СКР (_тЛенгхт);
флоат Кс0 = -А * Ц / (скр (А) + СКР (Б));
флоат И0 = -Б * Ц / (скр (А) + СКР (Б));
флоат Д = скрт (СКР (_фЛенгтх) - (СКР (Ц) / (СКР () + СКР (Б))));
флоат Мулт = скрт (СКР (Д) / (СКР () + СКР (Б)));
флоат секира, ај, бк, по;
ак = к0 + Б * мулт;
БКС = Кс0 - б * мулт;
аи = И0 - * Мулт;
по = И0 + А * мулт;
// Изаберите решење на врху као заједничка
флоат јоинтЛоцалКс = (ак & гт; БКС)? ак: бк;
флоат јоинтЛоцалИ = (ак & гт; БКС)? аи: од; Све даље постоји мало примљених координата да израчуна одговарајуће углове за бутне кости и Тибиа кметова:
флоат примариФемурАнгле = поларАнгле (јоинтЛоцалКс, јоинтЛоцалИ, лажни);
флоат Фангле = примариФемурАнгле - _фСтартАнгле;
флоат примариТибиаАнгле = поларАнгле (лоцалДестКс - јоинтЛоцалКс, лоцалДестИ - јоинтЛоцалИ, лажни);
флоат Тангле = (примариТибиаАнгле - Фангле) - _тСтартАнгле; Корак 8. Опет элементарсцхина - угаона координате све. Надам наминг променљиве би већ требало да јасно, на пример, _фСтартАнгле - то бутне кости почну угао, угао под којим се бутна кост у режији подразумевано. И задња линија метод дохват () (он је рекао да је отишао и махао):
мове (цАнгле, Фангле, Тангле); Метод потез је директно куцање серво. У ствари, она ни тада морао да дода све и свашта за заштиту од лоших углова (који серво управљач не могу да се врате, али ће покушати), као и друге ноге које су заркално и / или послат на другој страни. Али све док радимо само са једним шапе.
Корак 9. Ови комади - ово је коначна код, који је далеко од савршеног, а то свакако може бити знатно побољшана. Али то ради! Никада није ишао за високо-школа геометрија, тригонометрија, смо реализовали полнофунктсионалнуиу инверснуиу кинематика за 3доф ноге! Да, и ми добили решење одмах, у једној итерацији. Да би било све радове, нога морала бити пажљиво измерити и подеси податке добијене класе. укључујући и угао да најтеже да се измери у готовог производа. Можда ако пројекат автокад и направити неки фин чини - било би лакше уз мерење углова, али нисам имао времена ни жељу да се бави овим емоцијама.
Фебруар је тек почео, а видео стопала је већ урађено. За тестирање ИЦ, направио сам ногу описују разне фигуре у простору (морате да доследно покрену домет, избегавајући тачку на правоугаоника или круга код досадног и досадан, па не цитирају (и готових експерименте да би пратили примитивце, имам генерал випилиав)):
Корак 10. Затим ће морати да настави игру уз овај производ на једној нози није упрыхаесх (мада овај робот би заиста занимљиво). Али ми треба хексапод. Отишао сам да тражим најближој бувљаку плексигласа. Резултати 2 различита комада - један 3 мм дебљине (само за тело, помислио сам), још један 2 мм и плава (други удови, да одговара серво). За неколико недеља сам исклесан из ноћи да уради нешто са њим. Он је скице на папиру. Покушао на - као да је све у реду, онда је случај за тестером.
Корак 11. И овде је, у иностранству чудовиште схестилапое. Када сам тест једну ногу, имао сам ово некако оставио упитнике на спољним вијака. Доста. Али феед 6 метара од њега био превише страшно. Дакле, за неко време сам спустио слушалицу руке, мислећи да морам да добијем више одговарајући упитник. Али испоставило се много лакше, који сам горе поменуо - дошао из упитника Еее ПЦ 901. Па, добро.
Корак 12. Успоставити рад 6 феет показало теже него написати једну ногу мотор. Пола ногу били лик у огледалу, с друге стране. Поред свега усмерене у различитим правцима. У општој конфихурировал наласхтовував и ја смо веома дуго, а то није био веома инспиративан, тако да новац није био погодан за подешавање, максимална сам могао очекивати - у закључак Лоса Сериал. И то је радио у реду са основном * .ино датотеке, повезан Лег.х - нису видели ставку. Тактом штаке за лоша (фацепалм). На крају отрефакториу. И овде је пролеће је дошао велосезон је отворен у пуној снази, и ја дао свом љубимцу у предмету схестилапохо. Дакле прошао лета и јесени топлоте.
Корак 13. Али су наишле кише, било је хладно и хексапод екстрахује. Основана су његове ноге, укључујући истом је уведен _тхирдКуартерФик обрачуна функција поларАнгле. Проблем је био што 2 м (лево средње и задње лево) преселио тако да већину времена били у ИИИ квартал:
ПоларАнгле сам био наиван - испоставило углове пи-пи на, на Кс. осе и ако понекад неко од ових 2 стопе морао да се врати у ИИ-нд квартал, вредност поларАнгле скочио из Пи Пи да заправо имала негативан утицај на даљи обрачун. Пофиксил штака - за ове 2 ноге поларАнгле сматра "другачије." Срамота, срамота ме код, али цео пројекат - доказ концепта, једина сврха која - не само разумели, ја могу да прикупе реална хексапода креће или не. Стога, треба да ради код, и сада. А онда рефацтор - перерефакторинх.
Носи са 3. кварталу, почели да педале обрасце корак. За ове класе уведен у тачки Лег дефаулту, који је, у којој је стопало где је рад тихо и глатко. Ова тачка може тиунинхувати, важно за све ноге биле на истом координатном з (са ногама да заиста физички били у истом авиону, нога је и даље тунеРестАнглес врло ниском нивоу ()). А у истом координатном З, они могу кретати произвољно. Скоро - јер опсег покрета није бесконачан, а да заузврат неће ићи даље од овог диапазода - подразумевани положаја ножица покушавају да негде стављати близу средини овог опсега.
Корак 14. Код није у тексту цитатом, сувише је основна и ја ћу донети крај линком за пуну верзију свих сортса - истовремено уче да користе гитхуб.
Секвенца изабрао једноставан корак - 3 ноге на земљи, 3 - у ваздуху преуређеног. Тако, координате ноге на њихов основни положај - могу се поделити у 2 групе. За ове две групе И и провертав корак у циклусу (погледајте функцију шетњу () у Бугги.ино). И на крају, свака нога обрачунава координирају своје појединачне базирану на подразумевани локацији.
И то је! Али до сада напред. На ногама је носио гумице за погрешно склизнуо на линолеум. Ја пожурио да га упуцати на видео да покаже пријатељима.
Корак 15. До огњишта-и, наравно, далеко.
