Transformators.lv


 
 
 
 
 
 
 
Sākums » Citi roboti, DIY Raksti, Roboti

Quadropod, jeb četrkājainais robots

25.01.2012 | Ievietoja: ibot | Kategorija: Citi roboti, DIY Raksti, Roboti | 5 komentāri

Piedalīties diskusijā par šo rakstu

Vēlējos pastāstīt par diezgan sen sākto projektu: uz četrām kājām staigājošo robotiņu. Protams šādam mošķim reālā dzīvē ir ļoti maz (gandrīz vispār nav) praktiska pielietojuma, tāpēc var teikt, ka šis robots ir domāts kā izklaides projekts. Robota izveide aizņēma vairāk laika, nekā bija plānots un turpinās jaunu ideju realizācija šajā robotā, jaunu programmu ieviešana, utt.

Galvenā sākuma doma bija radīt staigājošu robotu, kas varētu pārvietoties uz 4 kājām izmantojot tiešo kinemātisko uzdevumu (forward kinematics, sīkāk skatīt http://en.wikipedia.org/wiki/Forward_kinematics), jeb pārvietoties ,kustinot un pārvietojot servo iepriekš definētos stāvokļos, ko varētu izrēķināt ar elementāras ģeometrijas palīdzību un piekoriģēt uz aci. Robotiņam ir pielikti dažādi sensori (infrasarkanais SHARP attāluma mērītājs, fototranzistori, galaslēdži, trokšņa līmeņa indikators) lai tas spētu autonomi pārvietoties pa telpu un ,piemēram, apiet šķēršļus, un platīte attālinātai vadībai cauri infrasarkano TV pulti  (ar RC5 un SIRC protokoliem).Kādreiz arī fantazēju par iespēju pamēģināt realizēt gaitu ar  inverso kinemātiku (inverse kinematics), izmantojot PC, taču sapratu, ka līdz tam vēl tālu J . Robota mehānika un elektriskās shēmas ir pabeigtas un samontētas, priekšā palika pats laikietilpīgākais un interesantākais posms – programmēšana. Līdz šim esmu realizējis ļoti elementāru pārvietošanās kodiņu, bet laika trūkuma dēļ programmēšana ir ievilkusies.

Tehniskais apraksts: Mehānika

Patreiz neesmu sastādījis sīku tehnisko aprakstu un shēmas/ rasējumus, taču ir doma to darīt pēc programmēšanas darbu beigšanas (ja publikai būs interese). Tātat robotam ir 4 kājas ar 3 brīvības pakāpēm (degree of freedom) un kopā robotā ir izmantoti 13 servo , jeb 12 servo priekš kājām un 1 priekš SHARP infrasarkanā sensora. Servo motori tika pasūtīti no šīs mājaslapas:  http://www.mindsetsonline.co.uk/index.php?cPath=13_530 , kurā starp citu ir daudz dažādu, interesantu sīkumu.

Dynam firmas servo motors ar parametriem:

Weight: 34g
Torque: 56.9 oz-in (at 6V)   (aptuveni 4.8 kg/cm ja nemaldos)
Speed: 0.16 sec/60 degrees (at 6V)
Size: 55 x 20 x 45mm

Par šiem servo neko sliktu nevaru teikt, tiem ir labs griezes moments un pieņemama cena, vienīgais gabarītos šie ir par pārs milimetriem lielāki, nekā tie, kurus lietoju līdz šim.

Attēlā augstāk var redzēt mana robota karkasu, kas ir diezgan masīvs salīdzinot ar tirgū pieejamajiem robotiem Phantom X. Kā redzams, es speciāli uztaisīju īsākus posmus kājām( spēka plecus), vai nezaudētu dārgo spēka momentu no motoriem, jo korpusu taisīju no PLEXIGLASS plāksnes un alumīnija . Kā arī tas palīdzēja samazināt strāvu, ko patērē servo.

*Phantom X quadropod robots

Visa šasija robotam tika izgriezta ar rokas instrumentu palidzību. Pašam man ir pieeja pie CNC darbagaldiem un CAD programmatūru arī pārzinu un lietoju, taču būvējot robotu idejas nāk galvā uz vietas un visa mehānika ir improvizēta, taču darbojas viss labi. Masa robotam bez baterijām sanāca liela, aptuveni 1,1 kg, bet pateicoties īsajiem spēka pleciem motori tiek galā ar šo smagumu. Šī mošķa barošanai pagaidām lietoju 2 atsevišķus akumulatoru blokus – logikas barošanai un motoriem. Iepriekš centos iztikt ar vienu bloku, taču vidējā strāva kas plūst caur servo parasti ir ap 1,1 A (daudz gan) un ar pīķiem  līdz 1.6 A pie slodzēm( ja piemēram uzspiež uz robota), kas nomet spriegumu tik zemu, ka elektronika izslēdzas ārā.

Tehniskais apraksts: Elektronika

Kā smadzenes robotrā kalpo Arduino Duemilonove mikrokontroliera platforma.

Kaut gan ir nācies darboties arī tīri ar Atmegām, man iepatikās Arduino vidē pieejamās bibliotēkas, kā arī manā skapī tāpat mētājās lieka platīte, ko iepriekš lietoju tikai izmēģinājumiem. Galvenais ir arī tas , ka “servo.h” bibliotēka ļauj reāli pie visām digitālajiem piniem pieslēgt servo. Interesanti ir tas, ka bibliotēka it kā oficiāli ļauj līdz 12 servo pieslēgšanu, taču es biju definējis joka pēc 14 servo (visus digitalos pinus lietoju priekš servo). Tad nu 13 servo motori tika pieslēgti pie arduino digitālajām kājiņām. Secību var apskatīt zemāk:

Klāt pie Arduino tika pieslēgts arī infrasarkanās vadības relejs, ko var slēgt iekšā/ ārā ar TV pultīm, kuras lieto RC5 un SIRC protokolus. Šāds 8 kanālu programmējamais relejs ir pieejams Argusā   http://web.argus.lv/shop/productinfo/AVT390B%2B/hwindex.htm un cenas ziņā ir ļoti labs.

Līdz šim es biju domājis izveidot šim robotam 3 vadības režīmus, kuros robots lietoju tikai daļu savu funkciju:

1.      vadības režīms – autonomais šķēršļu pārvarētājs. Šādā režīmā robots lietotu tikai SHARP attāluma sensoru, un galaslēdžus kāju galos, vai varētu mēģināt šķērsot istabu taisni, ja tam priekšā būtu dažāda augstuma šķēršļi.

2.      rotaļu dzīvnieciņa simulācija – bija doma robotu padarīt interaktīvu un izmantojot trokšņu līmeņa indikatoru un fototranzistorus, lai to varētu piemēram pastaigas vidū “nobiedēt”ar plaukšķi un tas mestos meklēt tumšāko stūri.

3.      tālvadības  režīms – vadīt ar pults palīdzību robotu, kurš sekotu uzdotajām komandām.

Attāluma sensors ir šāds http://web.argus.lv/shop/productinfo/GP2D120/hwindex.htm

Un to pieslēdzu pie analogās ieejas.

Interesantāks ir manis paša veidots trokšņu līmeņa indikators, kas sastāv no elektret mikrofona pastiprinātāja, kas apvienots ar komparatoru un komporatora izeja pieslēgta pie kondensatora, kas savukārt paralēli pieslēgts analogajai kājai. Tas tika darīta ar mērķī, lai varētu noķert laikā īso signālu no komparatora.  Varbūt kādam tas šķitīts diezgan murgains risinājums, bet tas ir tāpēc, ka man bija doma ielikts RS trigeri pēc komparatora, taču, nejauši to sabeigdams es izvēlējos primītīvāku risinājumu – kondensatoru, kas neļauj spriegumam uzreiz pazust. Zemāk ir redzamas ne pārāk kvalitatīvi attēlota shēma:

Tehniskais apraksts: Programma

Šajā sadaļā es neko vērtīgu nevaru vēl ievietot, taču pacentīšos to drīz labot.Vienīgais varu Jūsu uzmanībai piedāvāt video (sliktas kvalitātes) ar gaitas izmēģinājumu:

Ja kādam interesē šis ir kods elementārakajai gaitai.

#include <Servo.h>

Servo myservo0; Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5;// create servo object to control a servo

Servo myservo6; Servo myservo7; Servo myservo8; Servo myservo9; Servo myservo10; Servo myservo11;

int lenkis1 = 55;

int lenkis2 = 135;

int lenkis3 = 50;

int lenkis4 = 130;

int lenkis5 = 22;

int lenkis6 = 158;

int lenkis7 = 60;

int lenkis8 = 140;

int lenkis71= 61; //korekcijas lenkis 7

int lenkis9 = 50;

int lenkis10 = 130;

void setup()

{

myservo0.attach(0);

myservo1.attach(1);

myservo2.attach(2);

myservo3.attach(3);

myservo4.attach(4);

myservo5.attach(5);

myservo6.attach(6);

myservo7.attach(7);

myservo8.attach(8);

myservo9.attach(9);

myservo10.attach(10);

myservo11.attach(11);

myservo0.write(lenkis1);  // nostadam robota kajas izejas pozicija

myservo1.write(lenkis2);

myservo2.write(lenkis1);

myservo3.write(lenkis2);

delay (1000); // pacelam robotu

myservo8.write(lenkis3);

myservo9.write(lenkis4);

myservo10.write(lenkis4);

myservo11.write(lenkis3);

delay (400);

myservo4.write(lenkis3);

myservo5.write(lenkis4);

myservo6.write(lenkis4);

myservo7.write(lenkis3);

delay (3000);

}

void loop() // trot gaita

{

myservo7.write(lenkis5);     // pacelt 4 kaju

myservo11.write(lenkis5);

myservo5.write(lenkis6);     // pacelt 2 kaju

myservo9.write(lenkis6);

delay (80);

myservo0.write(lenkis9);  // pagriezt  nolaisto 1 kaju

myservo2.write(lenkis71);  // pagriezt  nolaisto 3 kaju

myservo3.write(lenkis8);  // pagriezt pacelto 4 kaju

myservo1.write(lenkis10);  // pagriezt pacelto 2 kaju

delay (100);

myservo5.write(lenkis4); // nolaist 2 kaju

myservo9.write(lenkis4);

myservo7.write(lenkis3);    // nolaist 4 kaju

myservo11.write(lenkis3);

delay (180);

myservo6.write(lenkis6);   // pacelt 3 kaju

myservo10.write(lenkis6);

myservo4.write(lenkis5); // pacelt  1 kaju

myservo8.write(lenkis5);

delay (80);

myservo1.write(lenkis8);  // pagriezt  nolaisto 2 kaju

myservo3.write(lenkis10);  // pagriezt  nolaisto 4 kaju

myservo2.write(lenkis9);  // pagriezt pacelto 3 kaju

myservo0.write(lenkis7);  // pagriezt pacelto 1 kaju

delay (100);

myservo4.write(lenkis3); // nolaist 1 kaju

myservo8.write(lenkis3);

myservo6.write(lenkis4);    // nolaist 3 kaju

myservo10.write(lenkis4);

delay (180);

}
9 rating, 9 votes9 rating, 9 votes (+9 punkti, 9 vērtējumi)
Loading ... Loading ...

5 komentāri »

  • KasparsL said:

    Vienu brīdi gandrīz pieķēros taisīt hexapod – seškāju brīnumu (iedvesmas video – http://www.youtube.com/watch?v…..yBiECoS3Q), bet atturējos. Quadropod – četrkāju man šķiet nestabils, ļoti jāpiedomā pie kustībām. Lai veicas programmēšanā!

  • ibot (author) said:

    nu tā tas ir ar četrkājiem – tiem ir dinamiski nestabila kustība, jo pārvietošanās laikā masas centrs ( ko nosacīti pieņem robota vidū, ja robots ir simetrisks un ar baterijām pašā vidū)bieži vien ir uz pašas plaknes robežas, ko definē 3 nolaisto kāju stāvoklis. arī manā video var redzēt ka viņš svārstās, kad ir uz 3 kājām, taču tas jau ir vesela pētnieciskā darba vērts materiāls.
    redz kur viens no labākajiem planētas 4kājainajiem robotiem: http://www.youtube.com/watch?v…..1czBcnX1Ww

    p.s. KasparsL ,zenta vispār baigais vecis :) iečeko viņa jaunāko veikumu: http://www.youtube.com/watch?v…..ature=plcp

  • KasparsL said:

    ibot teica:

    redz kur viens no labākajiem planētas 4kājainajiem robotiem: http://www.youtube.com/watch?v…..1czBcnX1Ww

     


     

    Šito biju redzējis (tā testi arī interesanti), bet tur bez jaudīga skaitļojamā, spiediena sensoriem un vairākiem akselerometriem un žiroskopiem neiztikt.

  • Kaarlis.kron said:

    Kādas bija aptuvenās izmaksas?

  • ibot (author) said:

    šādu štruntu uztaisīt ir diezgan dārgi. man pagaidām sanāca ap 105Ls ,bet domāju, ka ja pilnībā visu pirkt ebay (arduino, servo, SHARP sensoru), tad sanāks lētāk.ja galīgi negribas čakarēties, tad var mēģināt nopirkt kādu no komplektiem šeit. http://www.lynxmotion.com/c-1-…..ducts.aspx

Leave your response!

You must be logged in to post a comment.


Sākums | Visi Raksti | DIY Raksti | Pasākumi | Noteikumi | Forums
© 2010 Argus Radiodetaļu Tirdzniecība SIA | Web izstrāde Kārlis Baumanis