Форум по Роботика
Проекти за роботи => Други роботи => Темата е започната от: Dimitar Kurtev в Юни 09, 2010, 11:56:31 pm
-
Здравейте,
Преди около година почнах да се интересувам от роботика и този форум е един от първите, на който попаднах. Миналият септември реших, че ще правя за дипломната си работа робот от тип хексапод. Цели, които си поставих бяха:
-робот подобен на хексаподите на фирма Lynxmotion и Micromagic Systems с 3DOF(dimensions of freedom) на крак
-да не използвам готови части(говоря за скобите за сервотата, тялото и тн.)
-да не трябва да продам левия или десния бъбрек, за да събера пари за сервомотори ;)
-безжична комуникация (тогава си мислих за XBee модул, но стана с bluetooth)
-Софтуер за управлението му от PC да е лесен и интуитивен
В момента всичко това е готово. Резултат:
-Алуминиеви части - 1.5мм изрязани на водна CNC машина(отне ми около месец и половина да направя дизайна)
-19 серво мотора Hitec HS-325hb - не са достатъчно мощни, за масата на робота, но използвам ластици, които премахват натоварването върху моторчетата в изправено положение почти на 100%
-захранвам го от едно ATX захранване .. което купих за 20лв..- за батерии и зарадно не ми се даваха пари.
- управлението на сервотата става с SSC-32 контролер на фирма Lynxmotion.
-bluesmirf модул за комуникация
-инверсната кинематика е изцяло имплементирана в PC софтуера, който се получи доста приятен (писах го на C# .NET 3.5)
Стига приказки, ето и малко мат'рял :lol: :
http://www.youtube.com/watch?v=tEomme2tzkQ
Скоро ще му слагам глава със сензор за разстояние, линеен лазер и една стара web камера(направих си програмка с която мога да измервам разстоянието на обектите пред камерата с помощта на лазера и смятам да го пробвам с робота :))
PS. После ако искате ще кача и снимки, че много ми се спи сега :(
-
Браво! :) Наистина се е получило много добре :) Мисля, че лека по-лека в България ще започват да се появяват все повече роботи с толкова високо качество като твоя :) Много ще се радвам, ако се видим на сбирката на Роботев юли месец и да го видя паяка на живо :) Иначе за камерката и лазера мога да те посъветвам да сложиш инфрачервен лазер и един филтър на камерата, койото пропуска само инфрачервена светлина, така няма да си зависим от цвета на предмета (инфрачервения филтър може да си го направиш от диска в дискетите за PC). А за камерката и интерфейсването с нея щом ползваш С# .NET силно ти препоръчвам AForge.NET Framework. Поздравления и успехи в начинанието :)
-
Благодаря ти sv_shady. Рядко срещам хора, който могат да оценят подобно нещо, тъй като за повечето е "голямата хлебарка" и ми предлагат различни препарати да я отрепя :lol:. Идеята ти за инфрачервения лазер е наистина много добра, а програмката, която съм написал е точно с класовете от AForge.NET Framework. Няколко въпроса - от къде мога да си набавя подобен лазер? Или да го изкъртя от нещо ненужно? .. Ако го направя по този начин ще си реша проблемите с ярката светлина :clap:
-
Аз следвам същата логика за камера с лазер и си набавих два от:
http://tpetrov.com/search.php?prod=%D0%9F%D1%80%D0%BE%D0%B6%D0%B5%D0%BA%D1%82%D0%BE%D1%80+%D0%9A%D0%9B%D0%AE%D0%A7%D0%9E%D0%94%D0%AA%D0%A0%D0%96%D0%90%D0%A2%D0%95%D0%9B+4
-
Как ще го трепаш :) На мен това ми беше мечта като започнах да се занимавам с роботика, но нямах финансова възможност, а сега пък все си намирам нещо, което ми е по-интересно. :) Ами, ако бях на твое място бих си купил нов инфрачервен лазерен диод от TУК (http://bg.farnell.com/jsp/search/browse.jsp?N=500002+1004350&Ntk=gensearch_001&Ntt=laser&Ntx=mode+matchallpartial&No=0&getResults=true&appliedparametrics=true&locale=bg_BG&catalogId=&prevNValues=500002+1004350&filtersHidden=false&appliedHidden=false&originalQueryURL=%2Fjsp%2Fsearch%2Fbrowse.jsp%3FN%3D500002%2B1004350%26Ntk%3Dgensearch_001%26Ntt%3Dlaser%26Ntx%3Dmode%2Bmatchallpartial%26No%3D0%26getResults%3Dtrue%26appliedparametrics%3Dtrue%26locale%3Dbg_BG%26catalogId%3D%26prevNValues%3D500002%2B1004350). Иначе определено ще смегчиш проблема с ярката светлина, но пак ще съществува тъй като слънцето излъчва и в инфрачервения спектър.
-
nmanchovski тези ключодържатели пак са с нормален маломощен червен лазерен диод. Идеята на sv_shady е да се ползва инфрачервен. Аз ползвам този лазер -> http://www.dealextreme.com/details.dx/sku.5928. Той има леща, която фокусира лазера в линия, а не в точка. Така мога да взимам разстоянието до обектите по цялата ширина на картината и да правя някакви предварителни изчисления накъде да тръгне робота или да си построя картана на помещението. Имплементацията не се различава от тази за фокусирана точка(просто се изчислява и ъгъл под който се вижда даден пиксел и тн.), но пък времето за обработка на изображението се увеличава. Доколкото знам в CD устройставата има инфрачервен лазер, но нямам сега под ръка ненужно, че да го разфасовам ..та ако има някъде да се продава такъв лазер ще е супер. Мисля че лещата за фокусираната линия ще свърши работа и върху IR лазер. Така че ако някой знае от къде да си взема .. да не крие ;)
-
sv_shady мерси за линка. Със сигурност разпознаването ще се подобри в домашни условия.., което е и моята цел. Най-вероятно ще поръчам и като го пробвам ще споделя резултатите.
-
Разработката ти е прекрасна! Браво, много се радвам, че има и други българи, които се занимават с роботика така детайлно! :)
-
Някой би ли обяснил как се измерва растоянието с лазер? Имаше някаква тема в letsmakerobots.com, но ми се видя много сложно, с няколко платки и тнт като на един вентилатор бяха сложили компакт диск, който като се върти лазера сочи в него...бе завъртяна работа :)
-
Благодаря ти,Vexorian!
anio ето ти линк, който първоначално гледах:http://sites.google.com/site/todddanko/home/webcam_laser_ranger. Честно да ти кажа от този пример погледнах само картинката и от там добих представа какво трябва да направя. Погледни го и ако не ти е ясно нещо ще се опитаме да ти обясним с по-прости думи.
-
Мерси много :) даже и с++ код са дали. А ти каква точно камера ползваш в случая?
-
Уеб камерата, която ползвам, е толкова стара, че не мога да намеря линк, за да ти покажа, но се сещам, че е на фирмата Trust и мисля, че вадеше резолюция от 640х480, което за мен е предостатъчно тъй като не гоня висока точност. Не мога да намеря точно какъв е модела, защото съм на работа сега, но мисля, че придоби представата за "високото" качество на камерата :lol:
-
Ясно :) аз питах да не е някаква по-особена, а тя била обикновена ъеб камера :) Ще пробвам с някой лазер като тези, за които nmanchovski е дал линк по-нагоре.
-
Сега се сетих, че ако ще ползваш обикновенна камера трябва да провериш дали има филтър, който спира инфрачервената светлина (най-вероятно е да има). Ако има такъв трябва да го спреш, иначе нищо няма да видиш, като сложиш и втория филтър, който проуска само инфрачервена светлина.
-
Забравих да попитам. Аз тук се мъча на аутодеск да си направя някои елементи за това, което ми е в главата и гледам, че си писал за CNC машина. На елемент ли се плаща това ако идеш примерно някой да ти изреже елементите или на площ?
-
Ами по принцип на площ, но цената е комплексна и зависи от сложността на елемента, материал, дебелина... аз когато го правих пратих на една фирма тук във Варна .dwg файлове .. и те за 1-2 дена ми казаха цена за всеки елемент на лазерно рязане и на водно.
-
роботът е невероятен, браво! и аз се надявам да има повече такива проекти защото те определено вдигат нивото на всички в България, които се занимават с роботика.
следващото ни събиране ще е на 4 юли - заповядай да го демонстрираш. Убеден съм, че ще е интересно не само за sv_shady.
-
Благодаря! .. За съжаление няма да мога да дойда тъй като съм от Варна и наближава крайния срок за предаването на дипломната работа, а и много работа се отвори напоследък. Дано на някое следващо събиране да имам възможност да дойда.
Относно Роботев... бях купил едно Ардуино ама сега седи в шкафа, защото му заключих SPI интерфейса на atmega-ta без да искам :oops: .. а ми се искаше да изтряскам един сензор за разтояние (имам някакъв Sharp) и да го направя Тори автономно да не се блъска в стени и да не пада от маси :? . Та ми се искаше да покажа на преподавателите, колко лесно може да се използва подобна прототипна платка както за обучение така и за някакви по сериозни цели(98% от мойте колеги си мислят, че програмирането на чип е нещо непостижимо и се стряскат само от мисълта(пък уж ставаме компютърни инженери)). Някъде из кашоните трябва да имам една atmega8 .. ще я изнамеря, ще сменя 328-цата(само bootloader и настрйките ми трябват ама мисля,че ги имаше в някоя от папките на редакторчето; нямам никакъв програматор така, че първо ще трябва един bit-bashing да му изиграя ;) ) и ще пробвам с нея някак си да навържа arduinoto, bluesmirf-a и ssc-32. Не съм много навътре с електрониката(хич даже) и още не съм мислил как ще го направя. Ако имате идея как точно да навържа TX и RX на трите платки, така че и ардуиното и серво контролера да получават и пращат по bluesmirf-a, но в същото време да може ардуиното да праща директно на серво контролера без да има конфликти? :roll:
Ето визуално как сега е свързано:
(http://www.lynxmotion.com/images/assembly/bluessc.gif)
Идеята за камерата и лазера оставям за през лятото като имам повече свободно време. :)
-
Наистина сега е сезонът на изпитите и дипломните/курсови работи така че разбирам, но поканата разбира се остава и за всяко следващо събиране което ще организираме.
Относно заключването на атмегите - често се случва и дори има и шийлдове за отключването (http://mightyohm.com/blog/products/avr-hv-rescue-shield) им. Надявам се схемата да е полезна.
А ако имаш паралелен порт на компютъра можеш много лесно да си качиш бутлоадера на атмега8. Можеш да направил евтин и лесен програматор като на инструкциите (http://www.arduino.cc/en/Hacking/ParallelProgrammer).
След това в Ардуино IDE менюто Tools>Bootloader избираш подходящ бутлоадер за чипа и натискаш Tools>Burn Bootlader> w/ Parallel Programmer. Ако ползваш Windows ще трябва предварително да свалиш giveo (http://web.mit.edu/6.115/www/miscfiles/giveio.zip) и да ръннеш .bat файла.
Въпросът за TX и RX-овете е по-труден и не съм пробвал подобно нещо досега. Вероятно има (или да може да се напише) протокол с който тези три модула да могат да си комуникират едновременно, но не съм попадал на такъв. Възможно ли е ако на Ардуино му се наложи да "спасява" Тори първо да изключи приемането на сигнали от bluesmirf-а към ssc-32 и започне то да командва серво контролера. Съответно след като кризата премине да възстанови комуникацията с bluesmirf-а. Предполагам, че Ардуино може да вдига някой от пиновете си на HIGH когато има опасност и ssc-32 да усеща това.
Желая успех с ъпгрейда на Тори и с дипломирането!
-
Simeon благодаря за подробното обяснение. На настолния компютър имам LPT порт и мисля, че и кабел имам ..ще издялам един такъв кабел като ми остане време:) А относно трите платки си мислех и за вариант, в който да използвам Ардуиното като "proxy" ако мога така да се изразя- тоест всичко да минава през него, за да стигне до серво контролера и вече вътре с някаква логика да управлявам тази комуникация. От тук идва следващият въпрос - мога ли да използвам два от пиновете на ардуиното като отделни RX и TX за контролера(или да предефинирам пинове 0 и 1 ?). Съжелявам ако въпросите ми са безсмислени- имаше една шега .. "програмист с поялник - кофти комбинация" така и аз съм малко зле с електрониката .. ама се уча. :)
-
И все забравям. Ето и Тори сниман 70 пъти(в начален стадий на разработка), за да се получи този photosynth: http://photosynth.net/view.aspx?cid=339e116b-c349-49fc-8dac-e560c786de1b
Мисля, че това е един добър начин за представяне на всякакви проекти свързани с роботиката и е лесно за използване! Опитайте и нека видим роботите си в 3D! :)
-
Мисля, че открих отговора на въпроса си - една библиотека NewSofrSerial за arduino. Тя потдържа последоватлна връзка с няколко устройства едновременно(но не и в един и същ момент, което ме удовлетворява), което е и моята цел! Може би трябваше сам да се разровя преди да питам. :)
-
Извинявам се за бавния отговор... няколко дни не успях да влезна във форума...
и да, new software serial библиотеката позволява да се ползват кои да е от дигиталните пинове за TX и RX.
-
Здравейте! Плановете за добавянето на arduino към робота се провалиха, защото се оказа, че датчикът за разстояние, който имах е изгорял и не ми се даваха пари за нов(+ не малко количество мързел). Но за сметка на това добавих Face Detection към голямата хлебарка :). Точно преди предаването на дипломната работа добавих още една скоба и серво мотор към предната част на робота и закрепих една стара USB web камера. Оказа се, че съм затрил aforge.net fremawork-a и ми се стори по-лесно използването на една .Net-ска имплементация на openCV. За около 4-5 часа си направих долу-горе удовлетворяващо разпознаване на лица. После имаше повечко борба с движението на хлебарката спрямо позицията на лицето както и с синхронизирането на нишките в приложението, но ги пооправих и сега резултатът е задоволителен. Ето и ново клипче: http://www.youtube.com/watch?v=gegWLwK5usQ
-
Здравей, резултата енаистина добър станало е споучливо може ли да те помоля за разяснение относно софтуерите за следене движението на лицето с камерата ти ли го пишеш или ползваш някаква готова разработка и предаването на дани чрез блутот ли е и там ако може малко инфо.:)
-
Здравей hunter, за разпознаването на лицето използва Emgu CV - това са .net библиотеки, които обвиват unmanaged C++ библиотеките на OpenCV - всеизвестната библиотека за image processing и computer vision. Защо ползвам Emgu CV - тъй като не гоня някаква неверятна производителност и ме мързи да пиша много код. С Emgu разпознаването на лицето става буквално на 5-6 реда(ако искаш код - самата библиотека идва с примери и един от тях е за разпознаване на лице :)). Аз използвам готова функция на библиотеките имплементираща Haar Cascade алгоритъма за намиране на лице(може да се настрои да търси очи, устни, горна част на тялото, долна част на тялото, цялото тяло(има готови xml file-ove в една от директориите на библиотеката)). Относно следенето на лицето: имам usb камера - тя е свързана чрез usb кабел към лаптопа, на моето приложение пускам нишка, която взима текущото изображение от камерата, обработва го като намира най-голямото лице, обграждам лицето в правоъгълник и търся неговият център и спрямо разположението на центъра на правогълника(респективно лицето) изпращам по bluetooth-a на къде да се премести главата и тялото на робота като се опитвам да "наместя" видяното лице в близост до центъра на изображението, след което се взима следващият кадър и отново се обработва и тн. Пфф дано съм успял да обясна. Щеше да стане по- добре с безжична камера, но не ми се дават пари за такава. Ако искаш мога да покажа и код и да го обясня, но той не е по различен от примера даден в самата библиотека- само добавям сметките и изпращането на данни към хексапода по bluetooth-a.
Ако имаш още въпроси, ще се радвам да отговоря, пък и не знам дали успях на този да отговоря както трябва.
-
Като цяло ми е много интересно защото неведнъж съм желал да направя и аз такъв принцип тоест глава и да следи движение но не разбирам от С и Английски както на много пъти съм повтарял и все ми казват да го уча. Схванах идеята ти (обяснението) но не нацяло имено поради тези две пречини, може ли повече инфо за комуникация между компютър и контролер през блутота:)
-
Здравейте,
Съжелявам, че нямах време да пиша по- рано :oops:.
Относно комуникацията между PC и контролера използвам BlueSMiRF модул, който е свързан към серво контролера по начина указан малко по- нагоре в отговорите на тази тема. PC-то ти трябва да има вграден bluetooth приемник или да си намериш някакъв USB Bluetooth Dongle (Този е 2-3лв :) http://www.dealextreme.com/details.dx/sku.11866). За да установиш връзка с модула не се изисква допълнителен софтуер или знания по програмиране- операционната система на компютъра се справя сама(Говоря за Windows, с UNIX-базираните ОС-и подозирам, че ще има зор с драйверите за виртуален COM порт и тн.). Аз съм с windows 7 и откриването на модула става както се открива и bluetooth мишка или друга bluetooth периферия. След като бъде открит и добавен модула в Device List-a вече ще имаш инсталирани нужните драйвери заедно с един виртуализиращ драйвер, който представя модула като COM порт( моят е на COM10 ) и вече си готов да го ползваш като стандартен сериен порт за комуникация. От тук нататук ще ти трябват знания по програмиране и някакви основни разбирания за серийна комуникация, затова не мисля, че ще ти е от полза да почна да пиша за инстанции/фукции/указатели(или какъвто и да е било код) и тн без да имаш представа от програмиране. Но ако решиш да се занимаваш с твоята идея ще се опитам да помогна (пък и не е много сложно:)- първият ми проект беше точно такъв - камера която следи лицето, но не беше с bluetooth, а с проста usb връзка).
P.S. Ако не е искаш да ограничиш мирогледа и знанията си само в рамките на България почни да учиш Английски език до някакво минимално ниво- езикът е супер лесен и се среща навсякъде, а информацията в интернет на английски език е неизчерпаема!. Успех! :)
-
Проектът е страхотен, просто нямам думи. Човече, ти си гений :clap: Мен лично много ме надъха. Искам да питам, ти си ползвал 19 сервота - преполагам по 3 за един крак. Колко ти излезе това, не се е налагало да продаваш органи нали :lol: Елементите на коя програма си ги чертал - AutoCad или някоя друго. Колко ти взеха за изрязването на всички елементи, скъпо ли е? Още веднъж поздравления за добрата работа, това сигурно е най-добрия проект направен от сам човек, който съм виждал до сега :clap:
-
Много ти благодаря westsiderz!
Когато ги купувах сервотата бяха по около 12-13$ една бройка! И това е най-евтиният вариант, който успях да намеря за робот с такива размери и маса(около 1.5-2кг). Елементите от конструкцята съм ги чертал на AutoCad. За изрязването не си спомням точно колко излезе- приблизително около 150лв без материала (алуминий си купих 2кв.м. на цена около 50лв и след изрязването ми остана още доста) ;)
-
Знаеш ли, проекта ти така ме впечатли че сега искам и аз да направя подобно нещо за моята курсова работа. Тя ще ми бъде за догодина така че имам достатъчно време да го изпипам и най-важното да събера частите. Ако е възможно да се свържа с теб по някакъв начин(skype, e-mail, facebook) и да те питам някои и други неща, свързани с робота, за мен би било страхотно и много полезно. Снимките и видеотата ти ги разглеждам постоянно но все още има някои неща които не са ми напълно ясни.
-
Радвам се, че Тори те е вдъхновил по този начин. ;) Идеята на този форум е да споделяме информацията тук, така че питай направо тук; ще се радвам да отговарям на въпросите ти. Ако наитстина искаш да правиш подобна хлебарка ще те посъветвам едно... мисли да я направиш по- малка от Тори: ще ти излезе по евтино, ще можеш да ползваш друг материал, а не алуминий, ще впечатлява повече околните заради малкият си размер!
-
Като спомена за размери нека да попитам какви са размерите на Тори. Смятам да сложа към 18 сервота, платката с микроконтролера и смятам да си купя тази http://www.mikroe.com/eng/products/view/475/wifi-proto-board/
или тази
http://www.mikroe.com/eng/products/view/572/easywifi-board/
платка. Искам да свържа робота към компютъра посредством WIFI. Така че горе-долу какви размери да превидя?
П.П Имам още много въпроси, но тях ще ги задавам по-късно, когато почна да напредвам с проекта :clap:
-
Приблизителни размери:32см х 35см х 15см в средно изправено положение. Ако в момента трябваше да правя пак хексапод бих го направил с размерите на µBug (Micro bug) на Мат Дентон, направо е въшка в сравнени с Тори ->
(http://www.hexapodrobot.com/images/MSR_uBug/uBug_MSR_H01.jpg)
-
На мен пък твоя хексапод повече ми харесва. Какво мислиш за идеята ми да ползвам тези готови WIFI модули на MikroE? Дали ще е по-трудно от колкото с Bluetooth или няма да има разлика.
-
Със сигурност ще е по- сложно от Bluetooth-a, но зависи за какво ще го ползваш- ако ще имаш някаква видео връзка bluetooth не можеш да ползваш. Ето ти една хубава статия, която съпоставя различните начини на комуникация: http://forums.trossenrobotics.com/tutorials/introduction-129/wireless-communications-3170/.
Мисля също, че начина за комуникация не трябва да е първото, което да обмисляш.
Не съм се занимавал с wifi модули; този изглежна на приемлива цена, но нямам опит, за да ти препоръчам този или някой друг.
-
Нямам намерение да ползвам видео връзки. Ще напиша една програмка на Visual Basic с която да пращам различни команди на робота или да получавам данни от датчици и сензори. Ще го ползвам само за serial communication(май съм позабравил някоя и друга дума на български :lol: ) между компа и контролера. Иначе темата за която си дал линк е добра, веднага ще я прегледам. Прав си че комуникацията не е най-важното нещо. Всъщност в момента най-много ме интересува как управяваш 18 сервота с един микроконтролер. PWM модула ли използва или чрез подаване на импулси от някой порт. Има още много работи, които ме интересуват но ще питам по-късно :-D
-
Предлагам ти да помислишвърху следното:
Даваш 40-50лв за един нов рутер, качваш му OpenWRT. Това е линукс дистрибуция за рутери и съответно имаш нещо, което търкаля операционна система, WiFi, бърз процесор, сериен порта за да накачиш други неща към него, като контролер за сервата. Единствения проблем, който виждам е, че обинкновен рутер ще е голям и трябва да потърсиш някой малък, може би дори само access point (но пък за много от тях няма версия на OpenWRT).
-
И мен това ме притеснява, че е доста голям, ще заеме доста голяма част от робота. Затова се бях спрял на продуктите на MikroE. Малки на размер, свързвам към контролера и чрез EUART модула смятам да комуникирам между компа и контролера. Или в действителност това не толкова лесно колкото звучи 8)
-
Здравей, исках да ти кажа че е невероятна тази Тори може скоро да и намерим мъж :D според това кога завърша моя, но нямаше как да не забележа, как тромаво се движеше смисъл като оставим сервотата настрана, но пробвал ли си да подобриш механиката на движение ? Защото съм виждал и други хексоподчета как се движат дори бавно но "по-качестветно", ето едно примерче:
http://www.youtube.com/watch?v=l280_5fA_Ho
пак казвам БРАВО!!! и продължавай все така :P
Поздрави
-
westony, благодаря! Благодаря и за това, че ме накара да преодолея мързела си и да извадя Тори и да се разровичкам в кода. Като се замислих защо наистина изглежда така тромаво стигнах до следните изводи: първо сервотата са слаби и обикновено ги щадя и ги пускам бавно да се движат; второ- ластиците, които съм сложил при вдигане на крака нагоре малко или много му пречат, а при спускане надолу му помагат и затова се получава една разлика във времената за вдигане и спускане на крака; трето кодът ми който съм написал е чисто геометричен- тоест указвам в координатна система къде са стъпалата на краката и не съм се опитвал да придам някакъв буболечковски реализъм към движенията; четвърто походката, която използвам по принцип е леко тромава..., и пето опитвам се да държа тялото по ниско, за да не товаря сервотата а ластиците, което придава към тромавостта;
Това което мога да променя е кода ... ще го променя, за по- плавни движения на краката!...
P.S. Тори според мен няма пол :) Тори от бойните изкуства е човек, който изпълнява бойната техниката. Но ако има пол ще да е мъжкар! :D
-
Радвам се, че съм помогнал ;), но да попитам защо изобщо ползваш ластици ? Не може ли просто сервото да свърши работата :? или си ги сложил заради слабото серво ?
-
Много са слаби сервотата, ластиците са най-доброто решение което измислих като го сглобявах .. успяват да задържат тори изправен без да са пуснати сервотата.
-
Какви сервота купи ? Може ли линк :?
-
http://www.servocity.com/html/hs-325hb_bb_deluxe.html
-
Така, може ли да попитам няколко нещица, щото съм и новичък де :) :
1. Каква е тази мерна единица oz/in ??? Какво означава как се измерва ?
2. (3.0 kg/cm) достатъчно, предостатъчно или недостатъчно е ?
3. Ти какво глегаш като избираш серво мотор ?
Благодаря предварително
-
oz/in е същото като кг/см но в други мерни единици. Килограм на сантиметър означава че серво мотора може да вдигне 3 килограма закачени на рамо с дължина 1 сантиметър(говоря за примера ти 3кг/см); ако рамото се удължи до 2 см .. ще може да вдигне 1,5 кг и тн. В моят случай фемур-ът на крака (успоредната на пода част на крака) на Тори е 7 сантиметра и тъй като съм пуснал сервотата на 5 волта се получава че сервото на фемура може да вдигне едва 0,43кг, а роботът е 2-2.5кг. Затова ластиците са неизбежни :) Като купувах сервотата гледах точно тези параметри както и цената. По принцип за хлебарка с такива размери се ползват сервота с 8-10 кг/см, но те струват по 30-40$ бройката. Не се подлъгвай с китайстките серво мотори от типа на TowerPro - 10кг/см, наистина са здрави, но никога не могат да си намерят позицията и не спират да потреперват защото са калпаво направени(имам три такива).
-
Такааа... след като реших да преправя походката на Тори реших да използвам друг начин за неговото управление. В момента мога да го управлявам с мишката тоест мога да променям само по един параметър в даден момент. Преди година когато поръчвах разни глупости от deal extreme реших да си купя два китайски wii nunchuck- това са тези джойстици за wii, които имат акселерометър, за да засичат движението на ръката. Единият беше разфасован още като престигна за да разгледам какво има вътре и за да разбера, кой кабел за какво е, но тогава не успях да го подкарам по незнайни причини. Преди два дена извадих вторият. Малко ровене из интернет и ето какъв е резултатът: http://www.youtube.com/watch?v=X1hMC1_Oqew
Целта ми е да използвам този джойстик за да контролирам Тори! След малко се залавям с кода!
-
Добре изглежда :)
Понеже знам, че пишеш на С#, с какво рисуваш 3D? За С/С++ OpenGL е идеално, но портовете за С# са много дървени...
-
Всичко е крадено! :) Използвам код от пример, който намерих в нет-а, използва се Processing - http://www.processing.org/; Има IDE подобно на Arduino IDE-to но библиотеките са java-джийски доколкото виждам. Дори не съм гледал кода- ползвам го за тестване. Относно OpenGL-a и C# нямам никакъв опит- подозирам, че може да се напише един activex и да се плясне в кода на C#. Другия вариант е да се ползва WPF- той направо си рисува с DirectX. Но целта на заниманието не е това а хлебарката :)
-
Аз, пък си мислех ето за това серво >ЦЪК (http://cgi.ebay.com/MG946R-13KG-Torque-Metal-Servo-MG946-Upgraded-MG945-TP-/180627910876?pt=Radio_Control_Parts_Accessories&hash=item2a0e4330dc)<
Представа да ли е куча марка ?
-
Аз да питам ти от интернет ли ги поръча и колко ти струваше доставката. За колко време пристига поръчката?
-
westony точно за тези говорих, че са много калпави дори името им се различава понякога .. тези например вместо TowerPro са TowerdPro. Не ти ги препоръчвам.
westsiderz от Интернет ги поръчах, но преди да влезе гадния лимит за митата-> успях с две поръчки да се измъкна от мито. Поръчах ги от http://towerhobbies.com/
-
Аз няколко часа се разрових и видях това клипче във YouTube: http://www.youtube.com/watch?v=ZMcoOSoMEos :?
Другото което виждам в нета, че се използва е MG-995 (http://cgi.ebay.com/2-SETx-MG995-Hi-Speed-Metal-Gear-RC-Servo-Horns-/350441211465?pt=Radio_Control_Parts_Accessories&hash=item5197ec8649), http://www.youtube.com/watch?v=6nKnlEey-go
мерак ми е да се свържа с този човек да видя спесификациите на робота му ... защото сервотата изглеждат поносимо добре :)
-
Няма смисъл за тези сервото по 10 долара /18 лева/. Най-добре е да се регистрираш в моделистика и да си вземеш от там. Там са модеисти и имат не само сервота, но и други интересни неща. А и като ги вземаш ще можеш да ги видиш наживо!
И аз се заинтересувах от тия хексаподи. Да знаеш някои добър сайт с чертежи и идеи?
Плексигласът дали става за изработка? Има го във всякакви дебелини 2,3,4 и тн милиметра и така може да се езбере от сравнително твърд до сравнително "еластичен". Реже се лесно, а и може да се даде на лазерно рязане.
-
Тук е въпроса, колко ще тежи ?! Защото тънкия е лек но се огъва, но по-дебелия няма да се огъва но, ще тежи повече. Следвателно ще ти трябва по-хубаво серво ;)
-
И аз се заинтересувах от тия хексаподи. Да знаеш някои добър сайт с чертежи и идеи?
Плексигласът дали става за изработка? Има го във всякакви дебелини 2,3,4 и тн милиметра и така може да се езбере от сравнително твърд до сравнително "еластичен". Реже се лесно, а и може да се даде на лазерно рязане.
Аз лично намерих това:
http://www.lynxmotion.com/images/html/build139.htm
-
Видях линка, но мен ме интересуват по-скоро чергежи.
Въпроса колко тежи не може да се реши по-форума. Намираш, правиш си чертеж. Купуваш плексиглас и даваш да ти го изрежат на лазерно рязане. Взимаш нарязаните части, едно арудино или контролната платка и всичкото го мериш, колко тежи.
От там лесно ще видиш какви сервота ти трябват. Двете най-важни неща са ти мат`риала за изработка и големината.
- Ако е голямо ще излезне по-скъпо, по-тежко, НО и ще имаш повече място на платформата.
- Ако е твърде малко ще трябва да се съобразяваш доста с наличното пространство.
Според мен е задължително да е с външно захранване. Интерсно е и да се направи сравнително автономно, а не амо да се командва от компютър!
-
Интерсно е и да се направи сравнително автономно, а не амо да се командва от компютър!
Това е моята цел с моя робот дето ще направя, но няма да бъде с външно захранване, аз ще е със собствено и затова ме тормози малко чертежа, че имам няколко опции трябва да избера най-добрия вариант!
-
И аз като westony искам да ползвам собствено захранване. Не искам да има никакви кабели идващи от вън и ограничаващи движението. Някакви идеи. Мислех за някое акумулаторче, но теглото им е доста и това допълнително ще натовари сервотата. Ако ползвам обикновени батерии, ще трябва да ползвам доста от тях и с толкова много сервота и други модули сигурно няма да траят дълго.
До като сме на вълна сервота да питам по какъв начин ще ги управлявате. С някоя специална ИС, с PWM модула или чрез подаване на сигнали директно от някой порт.
-
Аз мисля по въпроса със соларни панели, мисля че с 2 или 3 ще постигна добър резултат и ще мога да го накарам да не черпи много от батериите, а относно свервотата "SSC-32 Servo Controller" това ти трябва или Arduino 0017 мисля че се казваше!
-
Контролера изглежда много добре, би ми свършил много добра работа, но предполагам ще трябва да го поръчвам от чужбина. На мен ми трябват неща, които да могат да се намерят и в БГ. Идеята със соларни панели ми харесва но ще усложни проекта. Ако трябва ще ползвам външно захранване.
-
oz/in е същото като кг/см но в други мерни единици. Килограм на сантиметър означава че серво мотора може да вдигне 3 килограма закачени на рамо с дължина 1 сантиметър(говоря за примера ти 3кг/см); ако рамото се удължи до 2 см .. ще може да вдигне 1,5 кг и тн. В моят случай фемур-ът на крака (успоредната на пода част на крака) на Тори е 7 сантиметра и тъй като съм пуснал сервотата на 5 волта се получава че сервото на фемура може да вдигне едва 0,43кг, а роботът е 2-2.5кг. Затова ластиците са неизбежни :) Като купувах сервотата гледах точно тези параметри както и цената. По принцип за хлебарка с такива размери се ползват сервота с 8-10 кг/см, но те струват по 30-40$ бройката. Не се подлъгвай с китайстките серво мотори от типа на TowerPro - 10кг/см, наистина са здрави, но никога не могат да си намерят позицията и не спират да потреперват защото са калпаво направени(имам три такива).
Теглото на буболечката не се пренася само на 1 крак. Следователно като смяташ теглото трябва да го разделиш на 4 (предполагам, че на толкова крака седи едновременно буболечката). Всъщност на колко крака се пада да седи най-малко? 3-4?
-
Теглото на буболечката не се пренася само на 1 крак. Следователно като смяташ теглото трябва да го разделиш на 4 (предполагам, че на толкова крака седи едновременно буболечката). Всъщност на колко крака се пада да седи най-малко? 3-4?
Наставката "хекса" значи шест... Т.е. опорните точки трябва да са най-малко 3 (2 крака от едната страна и средния крак от другата). Иначе забрави за баланс. :)
Поздрави!
-
Т.е. теглото от 2 кг се разпределя на 3 крака, т.е. около 660 г на крак.
-
Да ще се пада по 660гр на крак. От тук нататък трябва да се пресметне колко излиза на всеки серво мотор и да се сравни с възможностите. Другото нещо което се забравя е че роботът не винаги има един и същ център на тежестта; ако аз преместя тялото настрани центъра се променя, ако вдигна в този момент три от краката и центъра на тежеста остане по-близо до крака, който е самичак от едната страна сигурно 70-80% от тежестта пада на него. Също не забравяйте и простите изчисления по физика свързани с лост и опорни точки .. тялото на хексапода може да се върти по- различни начини и краката често са в много неудобно положение.
За серво моторите.. намерих доста мощни и евтини мотори, но още не съм ги получил. Поръчах 12, за да сменя сервотата на тибията и фемура; натоварването на коксата не е голямо затова няма да ги сменям. http://www.hobbypartz.com/kahaoubrmo14.html Поръчах от ebay, но ще се влачат чак от китай и става баавно! Като ги получа ще пиша как се представят.
-
Не ми харесват сервотата, че са с пластмасов редуктор, което води до по-бързо износване на зъбните.
-
westony извинявай но за какво са ти по сериозни предавки, струг ли ще правиш?
-
Скоро си купих микросерво с метални колела. Има и по-сериозни като параметри.
-
Металните зъбни колела винаги са предимство, но цената на добри серво мотори с такива зъбни колела е много по- висока от тази, на която купих тези серво мотори. По мои наблюдения, при конструиране на такива роботи с помощта на хоби серво мотори, най-често се използват HS-625MG, но цената им е от от порядъка на 30-40$ парчето. По сериозните роботохилици на запад ползват мотори на Dynamixel като най- ниската цена почва от около 45$ - серво мотора има обратна връзка за позиция, натоварване, скорост и тн, плюс това е програмируем самият мотор. Както и да е, мисълта ми беше, че в зависимост от материалното положение както и от ентусиазма можеш да намериш невероятни мотори за направата на един робот. В моят случай нямам желание и възможност да отделя такива суми за хобито си все още. ;)
-
Грешиш за цената. Ако не прекаляваш с изискванията, можеш да намериш сносни неща, на прилични цени. Моторчето, което имам, купих за по-малко от 15 лева. Виж си "лични".
-
Разбира се, че можеш да си купиш за 15 лв серво мотор с метални зъбни колела. Аз имам и за около 10лв TowerPro 10кг/см, но като точност, скорост, токови характеристики и въобще като конструкция са далеч от тези, за които споменах.
-
Според целта на проекта и бюджета му, се решава и дали си заслужава. А за споменатите качествени моторчета, със сигурност може да се набавят на под половината от цитираната цена. Срещу повече губене на време, естествено.
-
Ами всеки си преценява, лично аз ако тръгна да правя нещо, ще го направя както трябва. Поне да ми достави някакво удоволствие, нищо лично но в моментното състояние на "Тори" това бавно движение, по-скоро би ме изнервило, отколкото да ми достави удоволствие, пак казвам нищо лично, това е мое лично мнение.
-
Бавен, бавен колко да е бавен. ;) На видеото сигурно се движи с 40% от възможностите си. Плюс това походката е от тип "малката вълна" - ripple gait .. и в един момент само един крак се вдига - това е една от най-бавните походки. В момента съм го направил да върви с tripple gait - най- бързата походка, но честно казано му е тежичко да върви така, а не искам да стопявам тези сервота. Като дойдат новите пак ще говорим. .. И като/ако правиш подобно нещо самичък сигурен съм, че скоростта на ходене ще е последното нещо. което ще те притеснява.
-
Ами има нещо вярно в това, но наистина ще ме изнерви познавам се много добре и наистина ще ме изнерви... :D
-
Здравейте. Отдавна не съм писал, но през това време чаках нови серво мотори и около 1 месец разучавах инверсна кинематика, използваща хомогенни матрици за изчисление на ъглите. Отне ми доста време, за да разбера как се борави с тези матрици и после да изчисля ъглите, но в крайна сметка резултатът е налице- много по стабилна работа без проблеми от тригонометричните функции както и много по- лесна промяна на позицията на краката и тялото. Сервотата са доста по-здрави-махнах ластиците, но не са толкова точни. Както и да е ето клип- http://www.youtube.com/watch?v=yFbeZ9rzFeg
-
Стабилно и контролирано движение! Отлично, според мен. Няма ли начин да махнеш тези кабели? Загрозяват дизайна и впечатлението от робота, като цяло.
-
Трябва да купя зарядно и акумулаторче и ще ги махна. :)
-
Доста добре се държи :) Иначе най-добре ще е да сложиш една литиево полимерна батерия, а не обикновен оловен акумулатор.
-
Здравей Димитър,
Запалих се да построя и аз един Хексапод (може би като основа на моят робот), но все още чета за кинематичната инверсия и трансформации. Мислиш ли да споделиш тази част от кода или поне литературата която си използвал?
Благодаря,
Николай.
-
Здрасти Николай,
Да ти давам кода е безсмислено тъй като представлява 10-15 реда изчисления, които както ги гледам в момента са ми тъмна Индия. Но все пак за да видиш резултата от смятанията ето:
public void TransformCoord(Leg leg,out double XTrans,out double YTrans,out double ZTrans)
{
double SinX = Math.Sin(m_currentPitchAngle);
double SinY = Math.Sin(m_currentTiltAngle);
double SinZ = Math.Sin(leg.Rotate?m_currentRotateAngle:0);
double SinJ = Math.Sin(leg.MAngleFromBodyCenter);
double CosX = Math.Cos(m_currentPitchAngle);
double CosY = Math.Cos(m_currentTiltAngle);
double CosZ = Math.Cos(leg.Rotate?m_currentRotateAngle:0);
double CosJ = Math.Cos(leg.MAngleFromBodyCenter);
int offx = leg.Offset ? m_currentXoffset.Value : 0;
int offy = leg.Offset ? m_currentYoffset.Value : 0;
int offz = m_currentZoffset.Value;
double a = CosY * SinJ * SinX - CosJ * SinY;
double a1 = SinJ * (CosX * CosZ + CosZ * SinX * SinY) + CosJ * CosY * SinZ;
double a2 = CosJ * CosY * CosZ + SinJ * (CosZ * SinX * SinY - CosX * SinZ);
double b = CosJ * CosY * SinX + SinJ * SinY;
double b1 = CosJ * (CosX * CosZ + CosZ * SinX * SinY) - CosY * SinJ * SinZ;
double b2 = -CosY * CosZ * SinJ + CosJ * (CosZ * SinX * SinY - CosX * SinZ);
double c = offx + leg.MDecX1 * CosY * CosZ + leg.MDecY1 * (CosZ * SinX * SinY - CosX * SinZ);
double c1 = -offz - leg.MDecY1 * CosY * SinX + leg.MDecX1 * SinY;
double c2 = offy + leg.MDecY1 * (CosX * CosZ + CosZ * SinX * SinY) + leg.MDecX1 * CosY * SinZ;
double c3 = -CosZ * SinX + CosX * CosZ * SinY;
double c4 = CosX * CosZ * SinY + SinX * SinZ;
XTrans = a * (leg.CurrentZ + c1) + a1 * (leg.CurrentY - c2) + a2 * (leg.CurrentX - c);
YTrans = b * (leg.CurrentZ + c1) + b1 * (leg.CurrentY - c2) + b2 * (leg.CurrentX - c);
ZTrans = CosX * CosY * (leg.CurrentZ + c1) + c3 * (leg.CurrentY - c2) + c4 * (leg.CurrentX - c);
}
public void CalculateAngles()
{
double X;
double Y;
double Z;
double K;
//transform body coordinates to leg coordinates
BodyMovement.Instance().TransformCoord(mCurrentLeg,out X,out Y,out Z);
//get coxa angle
Leg.CoxaAngle = Atan2(Y, X);
K = Leg.MCoxaLenght - X * Cos(Leg.CoxaAngle) - Y * Sin(Leg.CoxaAngle);
//get tibia angle
double CosTibia = (Math.Pow(K,2) +Math.Pow(Z,2) - Math.Pow(Leg.MFemurLenght,2) -Math.Pow(Leg.MTibiaLenght,2))/(2*Leg.MFemurLenght*Leg.MTibiaLenght);
Leg.TibiaAngle = Atan2(Sqrt(1 - Math.Pow(CosTibia, 2)), CosTibia);
//get femur angle
double f1 = Leg.MFemurLenght + Leg.MTibiaLenght * Cos(Leg.TibiaAngle);
double f2 = -Leg.MTibiaLenght * Sin(Leg.TibiaAngle);
Leg.FemurAngle = Atan2(f1,f2) - Atan2(Sqrt(Math.Pow(f1, 2) + Math.Pow(f2, 2) - Math.Pow(Z, 2)),Z);
}
Това са двете най- важни функции за изчисленията: Първата трансформира координатите на върха на крака зададени първоначално с точка от координатната система на тялото(с начална точка центъра на тялото) в точка от координатната система на дадения крак(с начална точка лежаща на оста на кокса сервото). Втората функция спрямо тази точка изчислява ъглите на крака.
Наистина е трудно да се намери добро обяснение за изчисляването на трансформациите и от там ъглите. За мен най- полезни бяха следните неща:
http://www.youtube.com/watch?v=0yD3uBshJB0 - това е лекция от станфордския университет, гледах ги до към part 6 - по нататък почва да се говори за ускорения и тн., което мен не ме интересуваше в случая. Също така на сайта им има лекциите и упражненията от този курс.
http://www.intechopen.com/source/pdfs/379/InTech-Robot_kinematics_forward_and_inverse_kinematics.pdf - след като изгледах по няколко пъти лекциите това най- много ми помогна тъй като има няколко реални примера.
Като стъпки какво трябва да се направи, за да изразиш инверсната кинематика на робота си:
1) описваш кракът на робота с помощта на D-H(Denavit-Hartenberg) параметри
2) с тяхна помощ намираш трансформиращите матрици
3) извършваш различни трансформации, за да можеш да изразиш ъглите на връзките(сервотата).
Ако си по- наясно с матриците и трансформациите мисля, че ще ти по- лесно. Аз никога не съм си обяснявал за какво по дяволите са ми тези матрици въпреки бакалавърската ми степен, но ето че се наложи и наистина става много елегантно :)
Почети и гледай лекциите; ако ти е необходима помощ пиши тук и ще се опитам да помогна.
ПС. Другият вариант(първоначалната ми имплементация) е чисто геометрично решение, но това решение ще ти създаде много проблеми в бъдеще заради грешки в изчисленията и тригонометрични граници.
-
И .... айде ... правете такива хлебарки и други подобни и да си спретнем Mech Warfere като в Щатите и Япония.... да се постреляме малко :) http://www.youtube.com/watch?v=rIfK5JFTftc
-
Мерси много. Дори това ще ми е от полза. И аз намерих няколко теоретични пдф-а и Стандродските лекции ама и аз не мислех, че някога ще ми потрябват матрици и е трудно :).
Разглеждам и вероятността да опитам с някой генетичен алгоритъм като functional approximation + някоя друга за дообработка, но и за това още чета.
-
Мерси много. Дори това ще ми е от полза. И аз намерих няколко теоретични пдф-а и Стандродските лекции ама и аз не мислех, че някога ще ми потрябват матрици и е трудно :).
Разглеждам и вероятността да опитам с някой генетичен алгоритъм като functional approximation + някоя друга за дообработка, но и за това още чета.
Ако намериш инфо за генетичните алгоритми постни тук някой друг линк :)
-
Ето нещо което намерих днес за основа...
http://freespace.virgin.net/hugo.elias/models/m_ik2.htm
-
Искахте батерия .. ето ви батерия ;) (LiPo 3500mAh) http://www.youtube.com/watch?v=1IYAoP8BsaA
-
Идва време за дипломната работа за магистратурата. Смятам да upgrade-на Тори по този повод. Ето някои от нещата, които възнамерявам да направя:
-сензори за допир на краката - странични и на "стъпалата"
-имплементиране на инверсната кинематика върху самият робот (не на лаптопа както е в момента), използвайки Fez Mini.
-управление на робота от всякакви устройства с Android OS
-пренос на изображение по bluetooth-a в реално време (размерът на изображението ще е минимален) с помощта на LinkSprite JPEG Color Camera TTL Interface
За сега оправям механичната част от робота - ето идеята ми за странични сензори на краката : http://www.youtube.com/watch?v=clIbvYFrl1g
Някакви предложения как да направя сензор за допир на стъпалата?
-
Имаше едно време едни pressure button/натискаш го с два пръста и то прави връзката с проводниците/ , колкото по-силно го натискаш толкова по-добра връзка правиш ... съответно можеш да го използваш но точно не се сещам как се казваше точно... :(
Друго като идея ми идва само чрез код.... но това ще стане доста по-сложно защото ще трябва да изследваш как местенето на "крачето" влияе на основата... ако започва да я повдига значи се е престарал и трябва да върне ако пък не влияе значи не е близо до желаната цел...
Както имаш уравнения за намирането на точното местоположение на крака, така можеш и да изследваш как това местоположение влияе на основата и другите крака от математическа гледна точка... ако пречи следва това и това, ако не дава никакъв резултат прави това и това ... и тн :))) С програмиране има мн начини по които можеш да го направиш, щото има голямо поле на изява и на идея :) Докато ако трябва да го направиш с някаква механика хем ще ти излезе по-скъпо хем пък и трябва да го измислиш...
Успех и като имаш резултати пиши :)
-
Намерих някое друго обяснение, за уравненията, но си трябват знания по математика, механика и мехатроника:
https://docs.google.com/open?id=0B3hDTknDHqyGYTRlYjhiMTgtYjA0YS00ZDE2LWI1ZmEtZDVkNGM5OWFlYjlm
Още го разгадавам целия, че има някои неясни нещица...
-
Това е първият вариант за инверсна кинематика - тригонометричния. Такъв ползвах първоначално, но често се получават грешки в изчисленията заради стойностите на ъглите. Този документ съм го чел преди години и съм се опитвал да го приложа, но има някъде грешка/и. Знания не ти трябват- проста тригонометрия от 10 клас. Можеш сам да си ги изчислиш зависимостите.
П.С. Търси решение използващо Atan2 функцията.