Robot walker.

Berätta om dina pågående projekt.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Oj, den här tråden hade jag missat helt.. Det ser intressant ut, jag ser fram emot fortsättning :).

Gimbal: Jag håller också på med ett program som ska styra ca. 5 servon och göra en massa andra saker också, och jag har kört på exakt samma sätt som eAK också har. Jag funderade på den metoden du berättade om, men jag kan inte komma på hur man skulle göra det.. Om man tex. har en PIC 18F4620, då finns där en timer (timer 2?) som har ett "compare" register som den jämför med hela tiden, så där kan man ju få ett interupt på det viset som du beskriver. Men denna timern är bara 8-bitars, och jag behöver ha en 16-bitars. Finns det då något annat sätt att få ett interupt när timerns värde är lika stort som variablen för det "minsta" servot?

Och vilken sorteringsalgoritm passar sig bäst för denna aplikationen? Eftersom jag bara har 5 värden borde det väll gå med "bouble sort"?
eAk
Inlägg: 74
Blev medlem: 10 september 2008, 22:50:23
Ort: Kungälv

Inlägg av eAk »

Jag har kommit en liten bit till nu. Har lyckats pajja en servo änsålänge.
(sket i att koppla ur strömen till servona när jag programerade med avrisp så servona fick lite fnatt resulterade i en pajj servo efter ett par prograqmeringar.)
Nu håller jag på att försöka hitta någon dokumentation över hur jag enklast får igång seriell kommunikation. Har kopplat in min pickit till rx och tx. så ska bara hitta någon lätt copy paste information om att få igång seriell porten på den snabbt. Så ska jag skriva in någon funktion för att ta emot kommandon från datorn på servo lägen så att jag lätt kan hitta bästa sätt att balancera upp en gång på roboten.

Här kommer en liten bild på hur den ser ut just nu.
Bild
Klickbar bild

Förrästen någon som har någon adress till en enkel komigång med seriell och interrupt guide?

Om någon vet hur jag gör så att thumbsen blir klickbara länkar så tackar jag och tar emot för den hjälpen också.
Gimbal
Inlägg: 8650
Blev medlem: 20 april 2005, 15:43:53

Inlägg av Gimbal »

@ squiz3r

Jag kör AVR så jag känner inte till pic'arna något vidare. Men det blir ju snabbt väldigt tråkigt om den bara har en 8bitars timer att jobba med.

Sortera kan du göra med enklast möjliga metod eftersom det är så få tal det handlar om.
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

eAK:
"Om någon vet hur jag gör så att thumbsen blir klickbara länkar så tackar jag och tar emot för den hjälpen också."

Såhär gör du:

[url=http://adress.till.bilden.se/stor_bild.jpg] [img]http://adress.till.bilden.se/liten_bild.jpg[/img] [/url]

Notera mellanslaget mellan ] och [ . Det är det som många misssar.

Jag gjorde bilderna klickbara åt dig.
eAk
Inlägg: 74
Blev medlem: 10 september 2008, 22:50:23
Ort: Kungälv

Inlägg av eAk »

Tackar för hjälpen jag satt och pillade hit och dit med bild länkarna.
Att det var så simpelt att det bara saknades ett mellan slag emellan taggarna från den kopierade bb koden från geting.
Kom precis hem ska pilla lite till. har dock varit vaken i 35timmar kunde ju inte slita mig från pillandet på roboten.

Vad sägs om att bygga någon form av io expanderare med någon av de massor med pic mcu er jag har liggandes lite här och var på skrivbordet?.

Då kan jag ju köra 6 ben lär ju bli bra mycket lättare att balansera och få roboten att gå då. jag har bara ben lediga till 3 servo till som det är nu. och tanken med dom var att slänga på min i2c ultraljuds avstånds mätare och min sharp ir avstånds mätare att svepa med.
eAk
Inlägg: 74
Blev medlem: 10 september 2008, 22:50:23
Ort: Kungälv

Inlägg av eAk »

Jag har suttit här nu med mitt seriella gränssnitt och försökt komma på något sätt att balansera upp roboten men jag ser ingen annan lösning på det hela än att lägga till 2 ben.
om inte någon vet någon bra lösning på 4 ben med 8 servo som jag kör nu.
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Inlägg av Walle »

Funkar det inte att lyfta ett ben i taget?

Kod: Markera allt

1  \  /  4
     #
2  /  \  3
När ben 1 och 3 är i läge "framåt" så borde det ju gå att lyfta ben 4, förutsatt att CG ligger precis mitt mellan benen.

En osnygg lösning jag har sett var med en balansvikt som flyttades beroende på vilket ben som skulle lyftas.
eAk
Inlägg: 74
Blev medlem: 10 september 2008, 22:50:23
Ort: Kungälv

Inlägg av eAk »

Jag har funderat lite på en balans vikt. testar att bygga om benen nu så att dom blir längre och får större del av viktpunktens centrum i centrum av roboten.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Gimbal skrev:Jag skulle nog kört en annan variant.

En 16 bitars timer som snurrar runt med lagom takt, vid noll får du ett interrupt där du sätter alla servo utgångar till 1, samt du passar på att sortera alla servon i en lista efter i vilken ordning deras pulser ska nollställas.
tex servo 7 har kortast puls och ska falla när räknaren når 512, servo 3 vid 820 osv osv.

Sedan sätter du upp att du vill ha interrupt när räknaren når första värdet i listan.

När det interrupptet kommer nollställer du det servots utgång samt sätter upp att du vill ha nästa interrupt vid nästa värde i listan osv osv.

På så vis kan du ha jämrans många servon (bara du har pinnar ut så det räcker) med väldigt liten belastning på processorn.
Ganska bra metod, men nu måste man börja ta hänsyn till, åtminstone om man programmerar i högnivåspråk, att kontextswitchar tar lång tid i sammananget, så om du har flera servon med ungefär samma önskad pulstid så kommer du få rippel som mycket väl kan märkas på servona.

Min metod går ut på att hantera en servo åt gången i sekvens. En 16-bit timer (krävs för anständig upplösning) initieras för att generera avbrott endast exakt då en pinne behöver ändras. Därför hinns bara 8-12 st med under en 20 ms period. Avbrottsbelstningen blir jämn (på gott och ont...), men ripplet minimeras och upplösningen maximeras.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Häftigt projekt!

Här är en kille i chalmers robotförening som har byggt liknande din så kan du se ungefär hur han har löst gången:


$tiff: Under 20ms så hinner man väl inte med mer än 8 servon om man inte får pulserna att överlappa varandra? 2,5ms * 8 = 20ms... Den metoden kan man hitta i detta bibliotek: http://hubbard.engr.scu.edu/avr/avrlib/ Visserligen för AVR, men eftersom det är C går det säkert ganska lätt att flytta över...
Finns det någon smart metod att få dom att överlappa så att man kan ha fler servon?

Lycka till med fortsättningen!
eAk
Inlägg: 74
Blev medlem: 10 september 2008, 22:50:23
Ort: Kungälv

Inlägg av eAk »

Den såg riktigt kul ut. finns det någon fördjupande information om den?
Jag håller på med att rita en ny fin robot controller som säkertligen många vet på forumet. Men att få veta djupare om en robot som är så lik min grund tanke vore ju guld värt framförallt när den verkar att inte ha några som hellst bekymmer med balanseringen.
Jag kan avslöja att jag har en hemlig plan inför robot sm 2009 om det blir något sådat. Panen9 fungerar med nuvarande controller.

Kan avslöja att det blir häpnandsväckande om jag bygger det jag plannerat :)
men skolan börjar ju om inte speciellt lång tid så frågan är om man hinner med att bygga vad man har plannerat.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Hmm, det är ju inte jag som har byggt den, men det är två MG995 på varje ben och så är det ju ganska stor yta. Vid ca 0:22 så ser du att han kan lyfta två ben diagonalt samtidigt. Jag tror nästan att den gör det när den går också. Annars är det ju bara att köra på ett ben i taget. Jag kommer ihåg att det gick ganska fort att få den att gå. Han satt en natt för mjukvaran som behövdes. Elektroniken bygger på ett introkitt (http://crf.nu/wiki/introbot07/start) som använder en ATMega168. Det är ett (eller två) Li-Po-batterin mellan två plexiskivor. Om jag inte minns helt fel kanske han även använde en bufferkrets för att få bra signaler (MG995 slukar ström på signalpinnarna).

Låter väldigt intressant att du har planer för Robot SM 2009. Såklart det ska bli ett, 10 Maj, Chalmers Kårhus i Göteborg. Det är bara att bygga på! (Gäller er andra också... :))

Jag såg att du bor i Kungälv, sen när skolan drar igång i slutet av Januari så är du välkommen ner till vår föreningslokal så kan du visa upp den där och så får du se våra robotar.
eAk
Inlägg: 74
Blev medlem: 10 september 2008, 22:50:23
Ort: Kungälv

Inlägg av eAk »

Tja jag får väl heltenkelt gå över till att ge roboten tjockare fötter så försvinner ballans bekymmren direkt säkert.

Jag har ett sådant där introkit men det brann upp :) var inget skydd mot kortslutning på råka koppla batteriet fel för jag inte såg viilken som var gnd och vilken som var +
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Jag vet inte om det var storleken på fötterna som gjorde det... I början så hade han vanliga träklossar... .visserligen så är jag ganska säker på att han bara körde med en fot i taget då.

Tråkigt att höra, till version 09 så ska vi ha skydd mot det. Gick allt sönder? Borde gå att lösa med en ny 7805... (men den diskussionen ska vi inte ta här)
Skriv svar