Yrobot

Pochlubte se svým robotem ostatním!
Odpovědět
Baworek

Re: Yrobot

Příspěvek od Baworek » 20 bře 2015, 21:09

Čo sa týka sledovača čiary tak som ho dnes testoval a hral sa sním...

Asi na 95% som ho vyladil tak aby fungoval spoľahlivo aspoň 5x v oboch smeroch...
Zistil som že pri jazde musí byť senzor v jednej polohe ale vždy sa mi vysúval alebo zadná časť kde je iba šrobik uvoľnoval a tým menil vzdialenosť senzora od čiary...
Tak som ho tam napevno pritoto a funguje v pohode aj pri vyšších rýchlostiach... :D :D

Čo sa týka ledky že bliká iba jedna konkrétne LED7 neviem čím to je...
No je jedno či tam dám sledovač čiary alebo tutorial hoci ktorý vkuse bliká iba LED7...
Neviem čím to je. :D

Čo sa týka enkodera...
Akonáhle som zmenil z right na left tak spraví toto:
https://www.youtube.com/watch?v=5r3zqbvC98o

Vypadá to že to ide :D len ja si tam dal rýchlosť inú :D

AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Yrobot

Příspěvek od AlesH » 20 bře 2015, 21:49

Sledovač OK, dál ho asi nebudu řešit.

Pravý enkodér má nejspíš nějakou hardwarovou závadu (snímač u kola nebo navazující obvod). Do svépomocné opravy bych se nepouštěl. Pokud máš tu možnost, tak to zkus "reklamovat". Faktem ale je, že i s pouze jedním funkčním enkoderem se dá s určitým omezením odměřovaně jezdit.

Jinak to poslední video mi nejde přehrát. Píše mi že "Toto video je soukromé".

Baworek

Re: Yrobot

Příspěvek od Baworek » 20 bře 2015, 22:02

Akonáhle sa mi do ruky dostane druhý tak ti poviem aké výsledky mam sním na čiare... :)

Tak isto otestujem to na druhom robotíčkovy :) či mi to pôjde...
Vypadá to na Pondelok...

Video už je sprístupnené... :)

https://www.youtube.com/watch?v=5r3zqbvC98o

AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Yrobot

Příspěvek od AlesH » 21 bře 2015, 09:32

Z posledního videa je vidět, že "odměřovaná jízda" funguje přesně podle původního záměru. Jen je třeba "vyladit konstanty", aby vzdálenosti a úhly odpovídaly očekávání.

Na testy s jiným Yrobotem jsem zvědav (jak spolehlivé bude sledování čáry a jestli bude funkční [problikávající] i pravý enkoder).

Baworek

Re: Yrobot

Příspěvek od Baworek » 23 bře 2015, 11:26

Ahoj.

Tak mam druhého robota...

Funguje.. Obe ledky svietia...
Nahral som do neho sledovač čiary a cca 20min. v oboch smeroch sa točil stále po tej čiare... :)

Nahral som tam encoder tak ako si mi ho vtedy poslal a ide celkom no vybočuje do strany teda do pravéj lebo sa mu jedno kolesko pomalšie točí ako to druhé...
Myslím že to otáčanie treba vyladiť... :)
Zoženiem si otáčkomer a odmeriam ich a prispôsobím tak ich jazdu...

AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Yrobot

Příspěvek od AlesH » 23 bře 2015, 12:36

Super. Takže sledování čáry je teď už spolehlivé naprosto dostatečně.

Jízdu podle enkodérů zkus doladit a pak dej vědět, jak to dopadlo. Jsem zvědav na výsledky.

Baworek

Re: Yrobot

Příspěvek od Baworek » 23 bře 2015, 22:19

Takže no sledovač čiary by už ako tak bol len jediné čo je tam také čudné je že to tak čudne ide že vkuse vychádza z čiary a potom ju hľadá niekedy prejde pekne no niekedy nie...

Z enkoderom to bude srandička...
Ak sa zapozeráš všimneš si že na dlážke som si spravil "trať" :D podľa ktorej by mal zvládnuť prejsť t.j. tá medzera "30cm" medzi dvoma štvorcami...
No zatiaľ sa mi to nedarí :(

Môžeš si kuknúť ako to vyzerá...
https://www.youtube.com/watch?v=9HUYykwFF_Q

Z takýmto nastavením je to video...

Kód: Vybrat vše

#include "yellow_robot.h"
void rovne(u16 vzdalenost) {
	encoder_reset();
	motor_run(130,-160);
	while (encoder_get_right()<vzdalenost) {
		led_display_hex(encoder_get_right());
	}
	motor_run(0,0);
}
void otoc(u8 uhel) { 
	encoder_reset(); 
	uhel = uhel/5; 
	if (uhel>0) { 
		motor_run(130,0); 
		while (encoder_get_left()<uhel) {
		}
		} else {
		motor_run(0,-160);
		while (encoder_get_right()<uhel) {
		}
	}
	motor_run(0,0);
}
int main()
{
	init(); 
	while (1)
	{ 
		rovne(120);
		otoc(100);
	}
}
Sranda je že ak dám motor_run dám na (150, -150) tak ide doprava... Akonáhle dám (130, -160) ide viac rovno ako do strany...

Ale... Keď dám preč "otoc(100);" tak ide aj pri hodnote (150, -150) rovnejšie :D

AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Yrobot

Příspěvek od AlesH » 24 bře 2015, 20:34

Předpokládám, že sledovač ztrácí čáru jen v prudších zatáčkách. Podle algoritmu by měla být větší pravděpodobnost, že ztratí čáru v zatáčce doprava. Je to tak?

Přesnost enkodérů není úplně dokonalá, jak jsem to i očekával a zmiňoval dříve. Můžeš se ještě pokusit "dorovnat" tu přímou jízdu programově. Základní myšlenka tohoto přístupu je v tom, že průběžně čteme stav obou enkodérů a pokud jeden z nich začne "zaostávat" (má napočítáno méně, než druhý), tak na příslušném kole přidáme rychlost.

Reálně se to dá udělat úpravou funkce "rovne" např. nějak takto:

Kód: Vybrat vše

void rovne(u16 vzdalenost) { // vzdalenost je v cm
   encoder_reset();
   vzdalenost = vzdalenost*1.8; // prevod vzdalenosti z cm na impulzy (konstantu nutno doladit)
   u16 levy = encoder_get_left();
   u16 pravy = encoder_get_right();
   i16 rozdil = levy - pravy;
   motor_run(160,-160);
   while (levy<vzdalenost) { // dokud neujedeme danou vzdalenost, udrzujeme jizdu rovne
      levy = encoder_get_left();
      pravy = encoder_get_right();
      rozdil = levy - pravy;
      if (rozdil>0) motor_run(120,-200); // pravy ma malo, pridame rychlost pravemu kolu
      else if (rozdil<0) motor_run(200,-120); // levy ma malo, pridame rychlost levemu kolu
      else motor_run(160,-160); // oba enkodery napocitaly stejne, jedeme rovne
      led_display_hex(levy);
   }
   motor_run(0,0);
}
Určitě by se ten algoritmus dal vylepšit, ale toto je prostě alespoň základ pro vyzkoušení. Přiznám se, že s podobným "korigováním směru" pomocí enkodérů jsem si hrál před pár lety, ale výsledky nebyly uspokojivé. Tak uvidíme, jak na tu "opravovací" snahu bude reagovat Yrobot.

P.S.: Proč tak důkladně odstraňuješ ty moje komentáře z programu? Ničemu nevadí a program jde přeložit i s nimi (a výsledný binární kód je stejný).

Baworek

Re: Yrobot

Příspěvek od Baworek » 24 bře 2015, 21:24

Ahoj.

No podľa mňa vychádza z čiary lebo nevie ísť rovno...
Myslím tým to čo riešime aj z encoderom že to išlo do jednej strany...
Tam bude asi ten problémik :)

No upravil som kodik a vypadá to že to ide sľubne..Len som pomenil hodnoty rýchlosti na 90 tuším..
Pozri na video :)
(Možno ho ešte YT spracováva do HD preto bude ešte v horšej kvalite...) :D
https://www.youtube.com/watch?v=4AgShaMaqOo

Ešte musím doladiť kedy má točiť a kedy ísť a bude to fajn...
No na videu som sa snažil aby prešiel aspoň po tom priestore... :)
Len niekedy mám pocit že síce sa otočí správne no tie otáčky koľko má isť rovno občas vynechá...

P.S.: Neodstraňujem ich pretože ich tam nechcem... V atmeli ich stále mám no aby si vedel rýchlejšie čítať ten kodik tak ich dávam preč... :D Ale už nebudem...
Naposledy upravil(a) Baworek dne 24 bře 2015, 23:03, celkem upraveno 1 x.

AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Yrobot

Příspěvek od AlesH » 24 bře 2015, 22:46

Ta "odměřovaná jízda" teď vypadá velmi dobře. Zlepšení je opravdu značné. Vlastně to funguje skoro dokonale. Yrobot na programové korigování směru zareagoval výborně. Já jsem s výsledkem naprosto spokojen.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti