Покажи участието

От тук може да видиш всички публикации на този потребител.


Публикации - Dimitar Kurtev

Страници: 1 [2] 3 4
16
Здравей Ven
Естествено е че е възможно, но няма да е евтино и ще е нужна здрава механична конструкция. за да се получава  еднакъв резултат за всяка бройка.
Взимането на листа ще е с подобен на принтерите механизъм. Изрязването, често се прави с преса с ножове. Прегъването на листа е ясно. Намазването с лепило ако е само в една равнина .. може да се направи с механизъм подобен на плотер.
Всичко звучи супер, но ще се получат много променливи по време на изработка, които ще доведат до добавянето на още механизми - например ако случайно листа се прегъне ... какво става тогава ..и тн

Поздрави.

17
Общ форум / Удар - Пиезо
« -: Юли 15, 2011, 06:14:40 pm »
Разбрах какво искаш. Затова ти писах, че не знам дали ще успееш да прихванеш такива малки вибрации. Дори и да се повече ме съмнява, че ще улови поставянето на чаша. Мислил ли си за други алтернативи ?

18
Общ форум / Удар - Пиезо
« -: Юли 14, 2011, 08:45:23 pm »
Здравей адаш,

Не знам дали ще успееш да прихванеш всяко трептене и доколко ще е шумоустойчиво. Точно вчера попаднах на тази статия и тя долу горе описва желания от теб ефект. http://forums.trossenrobotics.com/tutorials/how-to-diy-128/use-a-piezo-buzzer-as-a-bb-sensor-2842/

Поздрави

19
Други роботи / Хексапод Тори
« -: Юли 05, 2011, 07:34:51 pm »
Искахте батерия .. ето ви батерия ;) (LiPo 3500mAh) http://www.youtube.com/watch?v=1IYAoP8BsaA

20
Други роботи / Хексапод Тори
« -: Юли 02, 2011, 07:28:31 pm »
И .... айде ... правете такива хлебарки и други подобни и да си спретнем Mech Warfere като в Щатите и Япония.... да се постреляме малко :) http://www.youtube.com/watch?v=rIfK5JFTftc

21
Други роботи / Хексапод Тори
« -: Юли 02, 2011, 07:21:40 pm »
Здрасти Николай,

Да ти давам кода е безсмислено тъй като представлява 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) извършваш различни трансформации, за да можеш да изразиш ъглите на връзките(сервотата).

Ако си по- наясно с матриците и трансформациите мисля, че ще ти по- лесно. Аз никога не съм си обяснявал за какво по дяволите са ми тези матрици въпреки бакалавърската ми степен, но ето че се наложи и наистина става много елегантно :)

Почети и гледай лекциите; ако ти е необходима помощ пиши тук и ще се опитам да помогна.

ПС. Другият вариант(първоначалната ми имплементация) е чисто геометрично решение, но това решение ще ти създаде много проблеми в бъдеще заради грешки в изчисленията и тригонометрични граници.

22
Други роботи / Хексапод Тори
« -: Май 06, 2011, 06:13:48 pm »
Трябва да купя зарядно и акумулаторче и ще ги махна. :)

23
Други роботи / Хексапод Тори
« -: Май 06, 2011, 05:13:28 pm »
Здравейте. Отдавна не съм писал, но през това време чаках нови серво мотори и около 1 месец разучавах инверсна кинематика, използваща хомогенни матрици за изчисление на ъглите. Отне ми доста време, за да разбера как се борави с тези матрици и после да изчисля ъглите, но в крайна сметка резултатът е налице- много по стабилна работа без проблеми от тригонометричните функции както и много по- лесна промяна на позицията на краката и тялото. Сервотата са доста по-здрави-махнах ластиците, но не са толкова точни. Както и да е ето клип- http://www.youtube.com/watch?v=yFbeZ9rzFeg

24
Имам две даже, но на едната една от пътечките се отлепи и е малко грозна ;)

25
Други роботи / Хексапод Тори
« -: Март 30, 2011, 09:53:13 am »
Бавен, бавен колко да е бавен. ;)  На видеото сигурно се движи с 40% от възможностите си. Плюс това походката е от тип "малката вълна" - ripple gait .. и в един момент само един крак се вдига - това е една от най-бавните походки. В момента съм го направил да върви с tripple gait - най- бързата походка, но честно казано му е тежичко да върви така, а не искам да стопявам тези сервота. Като дойдат новите пак ще говорим. .. И като/ако правиш подобно нещо самичък сигурен съм, че скоростта на ходене ще е последното нещо. което ще те притеснява.

26
Други роботи / Хексапод Тори
« -: Март 29, 2011, 11:03:09 pm »
Разбира се, че можеш да си купиш за 15 лв серво мотор с метални зъбни колела. Аз имам и за около 10лв TowerPro 10кг/см, но като точност, скорост, токови характеристики и въобще като конструкция са далеч от тези, за които споменах.

27
Други роботи / Хексапод Тори
« -: Март 29, 2011, 10:44:48 pm »
Металните зъбни колела винаги са предимство, но цената на добри серво мотори с такива зъбни колела е много по- висока от тази, на която купих тези серво мотори. По мои наблюдения, при конструиране на такива роботи с помощта на хоби серво мотори, най-често се използват HS-625MG, но цената им е от от порядъка на 30-40$ парчето. По сериозните роботохилици на запад ползват мотори на Dynamixel като най- ниската цена почва от около 45$ - серво мотора има обратна връзка за позиция, натоварване, скорост и тн, плюс това е програмируем самият мотор. Както и да е, мисълта ми беше, че в зависимост от материалното положение както и от ентусиазма можеш да намериш невероятни мотори за направата на един робот. В моят случай нямам желание и възможност да отделя такива суми за хобито си все още.  ;)

28
Други роботи / Хексапод Тори
« -: Март 28, 2011, 09:24:30 am »
Да ще се пада по 660гр на крак. От тук нататък трябва да се пресметне колко излиза на всеки серво мотор и да се сравни с възможностите. Другото нещо което се забравя е че роботът не винаги има един и същ център на тежестта; ако аз преместя тялото настрани центъра се променя, ако вдигна в този момент три от краката и центъра на тежеста остане по-близо до крака, който е самичак от едната страна сигурно 70-80% от тежестта пада на него. Също не забравяйте и простите изчисления по физика свързани с лост и опорни точки .. тялото на хексапода може да се върти по- различни начини и краката често са в много неудобно положение.

За серво моторите.. намерих доста мощни и евтини мотори, но още не съм ги получил. Поръчах 12, за да сменя сервотата на тибията и фемура; натоварването на коксата не е голямо затова няма да ги сменям. http://www.hobbypartz.com/kahaoubrmo14.html Поръчах от ebay, но ще се влачат чак от китай и става баавно! Като ги получа ще пиша как се представят.

29
Когато правих хексапода ми трябваше  серво контролер и в търсене на нещо, което да мога сам да сглобя попаднах на SSC32 модула за руския контролер MRC28. За около 2 седмици ги сглобих и успях да кача firmware с доста мъки, но в крайна сметка стана много добре. Печатните платки ги правих в една фирма и ако някой от Варна иска да си направи същите, ще им излезе евтино тъй като вече има готови шаблони; мястото, където ги правих се намира в Западна промишлена зона до входа на Метал, мисля, че фирмата се казва Инис или нещо подобно.

Ето и руският сайт: http://robozone.su/mrc28/

30
Други контролери / FEZ Mini контролер
« -: Март 25, 2011, 10:12:21 pm »
Миналата седмица куриер ми достави една много много малка пратка - оказа се FEZ Mini контролера, който поръчах едва 3-4 дена преди това(доставката се оказа много бърза).
Този контролер се различава от другите, които съм виждал най-вече по две характеристики:
- много е малък;
- и по това, че процесорът има вграден .Net Micro Framework 4.1.
Малък .. малък, колко да е малък ще кажете вие - ами аз ще ви кажа 2.8 x 4.8 см - малко по- голям е от Arduino Nano, но пък със значително по - добри характеристики.
Какво означава "вграден .Net Micro Framework 4.1" - означава, че ядрото съдържа в себе си малка версия на .NET Common language runtime и позволява програмата да се пише на C# без да да е нужно да познавате всичките особености на процесора; има голямо количество готови библиотеки за работа с всякакви видове периферни схеми, датчици, четци, мотори и така нататък. Ако те не ви стигат - можете бързо и лесно сами да си напишете.

Недостатъкът на подобна интеграция на .Net Micro Framework е че една и съща програма написана на асемблер или C ще върви по- бързо отколкото написана на C# на тази платформа. Но пък времето, което е нужно за разработка на някаква по- голяма задача намалява значително.

Основни характеристики:
Ядро: 72Mhz 32-bit ARM
Процесор: USBizi-100
FLASH: 148KB
ROM: 62KB
Входове/Изходи: 36
Други: FAT file system on SD cards, UART, SPI, I2C, GPIO, PWM, ADC, DAC, (TCP client/server, UDP, DNS, DHCP, using WIZnet W5100)...
Цена: 39.95$ + ~8$ доставка

Подробна информация на http://www.tinyclr.com

Малко снимки:



Страници: 1 [2] 3 4