Yrobot
Re: Yrobot
Č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...
Č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.
Č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 len ja si tam dal rýchlosť inú
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...
Č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.
Č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 len ja si tam dal rýchlosť inú
Re: Yrobot
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é".
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é".
Re: Yrobot
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
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
Re: Yrobot
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).
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).
Re: Yrobot
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...
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...
Re: Yrobot
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.
Jízdu podle enkodérů zkus doladit a pak dej vědět, jak to dopadlo. Jsem zvědav na výsledky.
Re: Yrobot
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ť" 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...
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
Z enkoderom to bude srandička...
Ak sa zapozeráš všimneš si že na dlážke som si spravil "trať" 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);
}
}
Ale... Keď dám preč "otoc(100);" tak ide aj pri hodnote (150, -150) rovnejšie
Re: Yrobot
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:
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ý).
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);
}
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ý).
Re: Yrobot
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...)
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č... Ale už nebudem...
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...)
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č... Ale už nebudem...
Naposledy upravil(a) Baworek dne 24 bře 2015, 23:03, celkem upraveno 1 x.
Re: Yrobot
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.