Fórum témák

» Több friss téma
Fórum » Hexapod robot építése
Lapozás: OK   7 / 10
(#) Kafka válasza Zozi85 hozzászólására (») Júl 16, 2011 /
 
Igen kicsit félreérthető. Igy gondolom: Sorrend: test->servo1->kar1->servo2->kar2->servo3->kar3. Például a servo3 rá van építve a kar3-ra a kihajtása van rögzítve a kar2-ön és ezzel a saját tömege is hozzáadódik a mozgatott tömeghez. Miért nem a kar2-ön van van rögzítve a servo3 és a kihajtásra csak a kar téve, mi lehet ennek az oka?
(#) Zozi85 válasza Kafka hozzászólására (») Júl 16, 2011 /
 
Picit még mindig zavaros de megpróbálom összefoglalni mit olvasok ki belőle.

A test fogja össze az egészet, tehát abból indul ki a láb.
Helytakarékosság miatt könnyebb a szervó végét rögzíteni, sok szervó másik felén akad csapágyazás is, ezt így meg is lehet támasztani (érdemes). A kar 1 nek ahogy nevezed a funkciója összekapcsolni a két mozgás szervóit. Ez egy két forgási szabadságú pont. Minél hosszabb az összekötő szakasz, annál kevesebb a test tömegéből eredő forgatónyomaték a lábak szervói felé mikor egy helyben áll a robot. A harmadik szervó pedig direkt van az utolsó lábízben, mivel ha épp áll azon a lábon a robot, akkor annak a tömege nulla nyomatékot ébreszt a forgáspontra a robot irányából. Így elég sok tömeget és pénzt lehet spórolni, mivel a szervók erejével az áruk aránytalanul gyorsan növekszik.
Sajnos pontosan leírni nem tudom a méretezés menetét, ezt hosszabb lélegzettel lehetne megvalósítani. Viszont ha robotot tervezel abban tudok segíteni, én is épp ebben a cipőben járok.
Készül a 3. hexapodom megnövelt mozgásszabadsággal, még kisebb méretben

P1000548.JPG
    
(#) Kafka válasza Zozi85 hozzászólására (») Júl 17, 2011 /
 
Rajzoltam gyorsan két ábrát, hogy jobban érthető legyen a kérdésem. Az ábrákon a kar2, szervó3 és kar3 látható.
Variáció_1: ez az elterjedt ahol a kar3-ra van ráépítve a szervó. Úgy gondolnám, hogy a kar3 dinamikájának ez nem tesz jót. Amikor a levegőben mozog a láb akkor a gyorsítás+mozgás+lassítás szakaszban a szervó tehetetlenségi nyomatéka hozzáadódik a láb tehetetlenségi nyomatékához ezzel lerontva annak paramétereit, mint például beállási pontosság. Ebből jöhet az ki, hogy remeg a láb.
Variáció_2: ebbe az esetben csak a láb tömege befolyásolja a mozgás dinamikáját.
Ez csak akkor jelentkezik amikor a láb a levegőben mozog amikor a támaszkodik a földön és a test emelkedik akkor lehet más a helyzet, nem tudom.
Szóval innen jön a kérésem, hogy miért ez első variáció a jobb megoldás?

Amit nem értek:
Idézet:
„Helytakarékosság miatt könnyebb a szervó végét rögzíteni...”
itt melyik részre gondolsz?
Azért ha nagyon ráérnél, megköszönném a méretezést. Érdekel az elv.
(#) Zozi85 válasza Kafka hozzászólására (») Júl 17, 2011 /
 
Már értem mire gondoltál, egy picit leegyszerűsítve te a pozicionálást veszed előtérbe. végigszámolod a robottól a nyomatékokat és ebből jön a minél könnyebb utolsó lábízület.
Gondold át visszafelé, elsődlegesen nem a pozicionálás a fontos, hanem hogy a test ne omoljon össze. Visszafele a szervókra ható erő sokszorosa a láb pozicionálásénak.
Tehát egy tartót kellene méretezni. Ezek után ha csak pozicionálni akarsz meglehetősen túl van méretezve a láb, nem lesz gond. A remegést nem ez szokta okozni, hanem a szervó kap rosz ismétléssel jeleket.
Kis műanyag fogaskerekes szervóknál a súly kevesebb mint a váz súlya, a nagyobb fém fogaskerekeseknél pedig az átétel a nehéz, ami majdnem ugyan oda esik.

A másik pedig, ha a tartó erőt nézed, nem az a legjobb ha egyforma hosszú a 2. és 3. láb íz...
Nekem eddig a 2:1 arány jött be legjobban, érdekes, hogy számolással más az eredmény mint véges elem analízissel.
Nézd meg a két rajzodat, a két lábíz arányai ott is eltérnek és számold ki mennyi erő kell a két szervóba az ábrákon.

És a két végét rögzíteni dolog úgy néz ki, hogy a szervó forgástengelyével megeggyezően a másik oldalt is meg van támasztva. Így csak forgató nyomaték lép fel, nem kell más erőket túlzottan figyelembe ven
ni.
(#) mzozo95 hozzászólása Jún 23, 2012 /
 
Épít még valaki ilyeneket? Én most kezdtem bele eggybe pár hónapja... A mozgásokat hogyan szoktátok vezérelni?
Nekem jelenleg uart-on meg ya kommunikáció PCvel, és az az AVR be beépített parancsokat küldi ki, pl 1láb felőre+felemel, IIelőrefel ... test előrenyom ... fekszik ... testet lassan előrenyom... De sajnos ez így túl alkalmazkopdőképes és sokszor kell újraprogramozni az avrt(amin csak 4k hely van, atmega 48).
Gondoltam arra, hogy a pc 2 bájtban kiküldhetné a pozíciókat(1 bájt, 1-50 értékig a szervót nevezi meg, 2 bájt 55-255 értékig a pozíciót adja meg)m szerintetek ez életképes gondolat?
Kicsit félek ettől a megoldástól az uart lassúsága miatt, de lehet hogy egyszerűen csak a baud-rate-t kéne "felnyomni" amíg lehet...(jelenleg 38400bps a sebessége, (itt még a mhz es kristályommal viszonylag kevés a hiba.)

Az uarttáblázatban találtam egy 250k-s sebességet, itt a 8mhz nél 0,0% hibát ír.. TEhát akkor ez is megfelelő lenne? (már biztosan elég gyors lenne az uart) De közbejött egy gond, PC-n nincs 250000bps es uart, csak 256000es...ez akkor hogy van? Nem tudnám PC vel vezérelni, tehát marad a 38400bps...

ubrrtable.jpg
    
(#) mzozo95 válasza mzozo95 hozzászólására (») Jún 24, 2012 /
 
*ez így NEM túl alkalmazkodóképes...
A robot egyébként 2dof. 6hardware+6software pwm el, 8mhz kristállyal.
(#) Zozi85 válasza mzozo95 hozzászólására (») Jún 27, 2012 /
 
Szia,

Én még építek, ha egyszer elkészül a 3. generációm.
uart nálam nem vált be, igyaz én kicsit más oldalról közelítettem meg. Nekem koordinátákat fogad a szervó vezérlés, és proci számolja ebből a szögeket majd a szükséges pwm jelet. A számítógép/vezérlő felöl csak 6 bájtot vesz X Y Z és a 3 forgást. Ebből alkotja meg a lábak végének a szükséges pozíciókat és adja át a vezérlésnek. Az első verzióban még lábanként volt egy proci plusz ami összehangolta usarton, a második verzió már i2c vel ment és vissza jelezte az áramfelvételét a lábaknak (így nem kellett kapcsoló a lábvégekre). Most két procival szeretném leegyszerűsíteni a nyákot amiből már csak a működőképes slave mód hiányzik. Sajnos 32 bitesben még nem jöttem rá a megoldásra nem sikerült áttennem a periféria sajátosságok miatt.
(#) mzozo95 hozzászólása Jún 27, 2012 /
 
Üdv!
A koordináta kiküldést pontosan hogy érted? pl megadtad hogy x=50, Y=50, Z=80, és kiszámolta, hogy a 3 szervónak milyen szögben kéne állnia, hogy ott álljon a láb vége?
Az áramfelvételt pedig egy soros ellenállással és adc-vel mérted?( a feszültségesésből visszaszámolva az ampert?)
(#) Zozi85 válasza mzozo95 hozzászólására (») Jún 27, 2012 /
 
Pontosan így értem beadom a koordinátákat és kiszámolja, a köztes pontokkal együtt. Mert elég kapálózás van ha rögtön oda küldöm a lábat az eltérő szögelmozdulások miatt, ezért egy optimalizált úton vezetem oda ami vagy a leggyorsabb (ez közel se egyenes) vagy egyenes vonal vagy csuklóterhelésre optimalizált. De ez már a vezérlő. Az első proci küldi ki neki az adatokat, annak csak a test koordinátáit adom meg hogy álljon. pld ha beírom forduljon 90 fokot megnézi hány egész lépés és mekkora rész lépés kell neki és lefordulja magától. Kicsit olyan mint a logo teknős rajzoláskor
(#) mzozo95 válasza Zozi85 hozzászólására (») Jún 27, 2012 /
 
Az komoly számításokat igényel már ... Hogyan történik egy ilyen számítás? Esetleg tudsz ajánlani egy oldalt ahol ilyenekről írnak? Az én hexám csak 2 dof, x-y koordinátára könnyen el tudom képzelni a számításokat, az Y érték 1az 1ben az "emelő" szervó pwm jelére egyenes arányossággal kiszámítható, az oldalmozgatóé pedig kicsit kacifántosabb, de a Z koordináta(felülnézeti sík), oda egyszerre kellene a két szervó állása, azt nem tudom elképzelni hogyan lehetne...
AZ optimalizált út hogyan történik? Pl egy görbe mentén mozgatod a lábat?
(Sajnos csak a suli mellett, autodidakta módon tanultam mindent, így ezért vagyok még ilyen ostoba)
Mellékeltem a saját hexámól egy képet, ez mégaz előző változat,most már csak 1db atmega48 adja ki az összes pwm jelet, és a szervókarokhoz ragasztottam tartó"fedőt" így véletlenül sem kotyog, vagy csúszik ki a láb ízület.

hexa.jpg
    
(#) Zozi85 válasza mzozo95 hozzászólására (») Jún 27, 2012 /
 
Szép munka, én is most gépen dolgozom ami kivágja az új alkatrészeimet. Számolni sokféleképpen lehet, lehet forgásmátrixokat felírni illetve a jó öreg vektorok/ szögfüggvények. Könyvet tudnék ajánlani, Kulcsár tól a Robottechnika pld magyar de sok oldalon lehet találni jó leírásokat. Nekem fontos volt a 3 szabadságfok, programozáskor csak rákötöttem egy tollat gyorskötözővel egy lábra és kockákat rajzoltattam feltérképezendő a szervók és a jelek összefüggését (nem az egész tartományban azonos az elmozdulás és a jelváltozás). Optimalizálás jóval bonyolultabb, számítógép nélkül inkább köztes pontokat érdemes számolni így linearizálni a mozgást.

egy láb szögei így számítódnak ki nálam, a progi pár funkcióját kitiltottam, a command1 gombbal számol, a geometria beadása után az x y z szöget lehet megadni.

Ha visszafelé lapozol van fent kép a robotról is amiben fut.

kar_3D.rar
    
(#) mzozo95 hozzászólása Jún 27, 2012 /
 
Mindenképpen tervezek majd pc-s vezérlést, egyszerűbb ott módosítani, mint mindig újraprogramozni az avr-t. Megtaláltam a robotod, az azért már stílusosabb a maga plexijével, mint az én "fapados" gépem . A kivágást egy modellező ismerősömmel csináltattam, van spéci lézeres vágógépe, és olcsón dolgozik. Bővebben: Link

Komoly kis programot írtál!
Ha jól látom visual basic- ben írtad, én inkább delphi-t és vc++-t használok... Ha nem félted, esetleg a programod forráskódját is közzétennéd? Nagyon sokat segítene a számolgatásban, meg megérteni hogy az egész hogyan működik...

Köszönöm a könyv ajánlást, utánanézek!
(#) Zozi85 válasza mzozo95 hozzászólására (») Jún 28, 2012 /
 
A forráskód kicsit összetetteb képleteken alapul, és ha minden jól megy majd szakdolgozat témája lesz egyszer.
Eredetileg egy robotkarhoz fejlesztettem, majd abból egyszerűsítve jött a láb vezérlő, majd a lebegőpontos megoldás sok sok verziója. Magát a programot nem szeretném feltenni netre, viszont szívesen segítek elméleti vagy gyakorlati kezdetekben. Maga az elv elég egyszerű, középiskolás matekkal már fel lehet írni minden részét kis megalkuvással.
A programokat már én is c ben írom, amit feltöltöttem csak egy teszt volt vezérlésre.
(#) mzozo95 válasza Zozi85 hozzászólására (») Júl 2, 2012 /
 
Szia!
Elkezdtem számolgatni, egy robotkarról, egyenlőre csak 2db "hajló"ponttal számoltam, de elakadtam, vagyis nem vagyok biztos a helyes útban. Az első "ízület" simán megy, de a másodiknál már bonyodalmak vannak...
Egyszerűen csak gyököt kellene vonnom( gyökvesztéssel járna), vagy mit javasolsz? A megoldóképletes megoldás nagyon esetlen, mivel vissza nem igazán tudnám számolni az a1, a2-t...

Vagy gyakorlatban nincs is szükség külön b1, b2 koordinátára? Mivel minden esetben mindkettőt megadom?

Turnál tanácsot adni?
(#) Zozi85 válasza mzozo95 hozzászólására (») Júl 2, 2012 /
 
Matekkal hogy állsz?
Mármint ha nem túl személyes tanulsz még esetleg vagy eddig mit végeztél? Olyan megoldást szeretnék adni amivel nem szenvedtetlek meg túlságosan. Épp ma programoztam egy 6 szabadságfokú robotot, még előttem van miként is optimalizáltam. De ha nem tanultál inverzkinematikát nehezebben érthető a dolog és inkább egyszerűsíteni kell.
(#) Zozi85 válasza Zozi85 hozzászólására (») Júl 2, 2012 /
 
Ahogy nézem az ábrád kicsit túl sok mindent belevontál.
Tudod a kezdőpontot és tudod hová akarod tenni a láb végét. A lábízeket is ismered tehát ha egy pitagorasz tételt használsz van egy háromszöged aminek ismered 3 oldalát.... Innen megvan a béta az alfa pedig két szög összege amihez szintén megvan minden adat.
(az első háromszög egy szöge és az alsó derékszögű háromszög hegyesebbik szöge)
Így két csuklóra már meg is van az elmélet.
(#) Zuzmo_farok válasza mzozo95 hozzászólására (») Júl 2, 2012 /
 
Szia, less bele a CPP-k be
másra nincs időm, csak forrásnak jó lehet.
Qt SDK kell hozzá.
servo.c
azon belül a

servo::servoadat servo::inverzkinematika(double x,double y, double z)
függvényt érdemesebb megnézni.
Remélem hasznos
hi!

Hexatest.zip
    
(#) Zuzmo_farok válasza Zuzmo_farok hozzászólására (») Júl 2, 2012 /
 
Ez sima trigonometrikus fgv-kkel van megoldva.
Optimalizálva sebességre amennyire időm engedte.
Kommentek nincsenek.
Hibajavítás van (túlcsorduló paraméterek stb)
Még lehet benne hiba (szinguláris pontoknál)
Maga a lépés nincs leírva, csak a láb végének Decartes-koordinátáját számolod át csukló koordináta rendszerbe.
3 szabadságfokú robotkarra.
RRR típusra ami ált. a hexapodokon van.
:: PÉLDÁUL::

Jó szórakozást!
(#) mzozo95 válasza Zozi85 hozzászólására (») Júl 4, 2012 /
 
Még tanulok, jövőre végzek(gimiben). Gyakorlatilag idén fejeztük be a koordináta geometriát. Az inverz kinematikát nem tanultuk, de elvileg nem is fogjuk( csak majd egyetemen, vagy egyénileg előtte)
Tényleg túlbonyolítottam, sokkal egyszerűbb trigonometriát, cosinus tételt és pitagorasz tételt alkalmazva.

Mellékeltem a számításokat, megvan alfa + béta, és kiszámoltam a1, a2-t, mert z kell majd a PC-s ábrázoláshoz.
Megtennéd, hogy megnézed helyes-e?
(#) mzozo95 válasza mzozo95 hozzászólására (») Júl 4, 2012 /
 
Most veszem észre, így a másik lehetőség kimarad( ha pl "lent" lenne az A pont... áttanulmányozom a programodat tüzetesebben, kíváncsi vagyok ezt hogy oldottad meg)
Bár ez gyakorlatban egyenlőre nem lesz fontos, mivel az A pontnak mindig felül kell lennie( nem mehet bele az asztalba :wow1: )
(#) mzozo95 válasza mzozo95 hozzászólására (») Júl 4, 2012 /
 
Meg is van, a másik eset, ahol alfa nem alfa"+alfa' hanem alfa"-alfa'...
(#) mzozo95 válasza Zozi85 hozzászólására (») Júl 5, 2012 /
 
Készítettem egy egyszerű programot a szemléltetésre, mellékeltem, csak valamiért bugos, ha az yeltolás als viszed furcsa dolgokat csinál... gondolkozom hogy mi lehet a gondja...(egeret vidd a panel felé, és mozgasd!)
Az exe-t futtathatod, a robotkar.pas pedig a programkód)

robotkar.rar
    
(#) Zozi85 válasza mzozo95 hozzászólására (») Júl 5, 2012 /
 
Érdekes, hogy csak lefele van ilyen hiba, nekem elsőre előjelgondnak tűnik mivel rosz irányba indul el a kar.
(#) mzozo95 válasza Zozi85 hozzászólására (») Júl 24, 2012 /
 
Számítási gond megoldva(szoftver mellékelve), sajnos mostanában kicsit lemaradtam a fejlesztéssel, nemsokára meglesz a 8. verziója az elektronikának, amiben már az általad javasolt dolgok is benn lesznek(nem csak bizonyos fix pozíciókba ugorhatnak a szervók bizonyos sebességgel, hanem konkrét koordináták is megadhatóak majd.)

Egyébként már egy bluetooth uarttal megy a kommunikáció + 4ceruzaakku táplálja. (meglepően jól bírják)

Te hogyan érzékelted, hogy fölfön van e a láb? Motorokon átmenő áramot mértél(előtét ellenállással+erősítóvel), vagy kapcsolókat használtál?
Az én szerkezetem elég könnyű, 560gr, ami a kapcsolókhoz kevés lenne, ahogy méregettem, a kis nyákba építhető kapcsolók lenyomásához 200g kell, ami ehhez sok lenne.

robotkar.rar
    
(#) Zozi85 válasza mzozo95 hozzászólására (») Júl 24, 2012 /
 
Én áramot mérek most, de kapcsoló se nagy szám, gombostű kell és egy kis rugó. Habármihez hozzáér a rugó nekinyomódik a benne futó gombostűnek és kontaktál. Én most épp vázat akarok építeni, egykicsit komolyabbat mint az elsők voltak. Csak a vágóplotterem még nincs teljesen kész. Ahogy végleges a mechanika és a szervóvezérlők is mennek gyártom az új karbon vázelemeket
(#) mzozo95 válasza Zozi85 hozzászólására (») Júl 24, 2012 /
 
Szép lesz a karbonvázas hexa, majd kérünk képet..

Ez a rigós dolog pontosan hogy működik? egy gombostű körül van egy kis rugó? Tudnál egy vázlatrajzot készíteni?

Az árammérésnél megfelelő lesz, ha egy tl074cn fet es műveleti erősítővel, nem invertáló, 10-20szoros erősítést hozok létre? Innen nézegettem a dolgokat, csak azért kérdezem, mert műveleti erősítős még sosem használtam...
(#) Zozi85 válasza mzozo95 hozzászólására (») Júl 28, 2012 /
 
Pontosan, csak egy kis toll rugó kell a gombostű köré.
lehet érintő kapcsolót is, ha egy merev drótot lógatsz ki belőle. Erősítős megoldás szerintem jobb mert nem kell plusz faragás hozzá. Úgy válaszd ki az erősítést, hogy elég nagy áramok is folyhatnak ha mind terheltek a mocik...
A sönt értékét mennyire veszed?
(#) mzozo95 válasza Zozi85 hozzászólására (») Aug 7, 2012 /
 
0,1 ohm nak gondoltam a söntöt, így elég nagy áramot átengedne. Közben halattam az áramkörrel, elkészült az érzékelők nélküli tesztpéldány, készítettem egy videót róla: Bővebben: Link

Majd ha elkészül a tiéd, szívesen megnéznék egy videót, bővüljön a magyar hexa közösség..

Üdv.: Zoltán
(#) Zozi85 válasza mzozo95 hozzászólására (») Aug 7, 2012 /
 
Sajnos az enyém lassan halad, pont ma vettem hozzá 9 méter zártszelvényt és 3 méter U gerendát vázkivágáshoz. Kivsit írómikus, vagy 70 kiló vas kell az ultrakönnyű vázhoz

0,1 ohm viszont soknak tűnik, nem fog melegedni? Mekkora áramot vesz fel egy láb nálad?

A mozgása mindenesetre szép lett, előre felvett mozdulatok vagy vezérelted gépről?
(#) mzozo95 válasza Zozi85 hozzászólására (») Aug 7, 2012 /
 
Szép "kis " cnc géped lesz, ha elkészül..
Ha elkészül és sikerül legyártani a szénszálas elemeket, én is megkérnélek hogy gyárts nekem egy újabb hexát a terveim alapján, és az árat majd megbeszéljük...
A szervók max 1ampert vesznek fel. Mekkora sönt lenne az ideális?(legalább 10Wattosat vennék, hogy ne legyen gond)


A gépről vezéreltem, egy joypaddal, és a pc programmal. A mozgás igazából kb 50sor, csak rengeteg változó van, amit a joypad tengelyeinek állásából és éppen lenyomott billentyűkből számol ki, és így már használható a kicsike...
kép

Az avr en pedig csak softweres pwm + 2ch hardweres pwm fut, 38400as baudratés uarttal(megszakításos). A parancsokat két bájtban küldöm, ha a bájt értéke kisebb mint 50, akkor csatornát választ ki, ha 50-250között van akkor pozíciót ad meg. , ha 255 engedélyezi a változásokat. Ez a legjobb módszer uarton, egyszerűbb avr-el, mert ha sztringet küldök, annak elemzése sok időt vesz el, amit nem engedhetek meg a softweres pwm miatt...

Még optimalizálom ezt a 2dof változatot, de nemsokára szeretnék egy kisebb, könnyebb 3dof változatot, ami sokkal mozgékonyabb lesz, mert ennek a mostaninak amikor előrenyomja magát vagy fordul, akkor elcsúszik kicsit a lábvége, ami nem túl hatékony, ám működő módszer.
Következő: »»   7 / 10
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem