Istrobot 2017

DavidO
Příspěvky: 290
Registrován: 01 kvě 2013, 21:27

Istrobot 2017

Příspěvek od DavidO » 22 dub 2017, 09:21

Halo halo, hlásím se vám z Bratislavy. Kdyby to někoho zajímalo, tak průběžně doplňuju svůj článek o soutěži Istrobot.
Držte mi palce, mám tam taky robota :mrgreen:

Uživatelský avatar
Dex
Administrátor
Příspěvky: 668
Registrován: 16 úno 2013, 14:26

Re: Istrobot 2017

Příspěvek od Dex » 22 dub 2017, 11:37

Sleduji a dal jsem to i na Twitter ;)
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz

Uživatelský avatar
jrt
Příspěvky: 1130
Registrován: 17 úno 2013, 17:13

Re: Istrobot 2017

Příspěvek od jrt » 24 dub 2017, 11:21

Perfektní reportáž!

Mám prosbu: mohl bys příležitostně popsat algoritmus, kterým se ten robot pro Ketchup House řídí? Není mi například tak úplně jasné, jak vlastně robot vyhledává svou domovskou čáru.

A tahle prosba samozřejmě míří i na další čtenáře, kteří se Ketchupem zabývají. Možná by to byl taky zajímavý námět k diskuzi na květnovém Robodoupěti.

Díky.
jrt
hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

DavidO
Příspěvky: 290
Registrován: 01 kvě 2013, 21:27

Re: Istrobot 2017

Příspěvek od DavidO » 24 dub 2017, 12:25

Stručně: robot domácí čáru nepoznává nijak :lol:

Obšírněji: Robota řídí stavový automat, doplněný o různé "hacky" na řešení konkrétních drobností (největší je vyhýbání se soupeři, pak tam je odložení plechovek, časový limit na celý zápas, restart, načítání procházky po seriové lince atd.).
To, kudy robot jezdí, se řídí "programem", tj. seznamem souřadnic, které má navštívit. Ví, kde začíná (to jsem mu zadal taky já, na Istrobotu to je A3) a pak bere jeden postupný cíl za druhým. Robot umí docela spolehlivě jezdit po čarách a detekovat křižovatky, takže si pořád udržuje znalost o tom, na jakých souřadnicích byl naposled a kam pojede teď. Když dojede na zadané souřadnice, tak si ze seznamu přečte další. Když seznam vyčerpá, opakuje ho.
Jestli je na domácí čáře nebo ne, neví - on totiž neví, že je nějaká čára domácí. To vím já, do seznamu postupných cílů jsem mu proto napsal například že má dojet na A2 a tam vyložit plechovky. Dokonce je tak blbej (nebo poslušnej?), že mu musím napsat šikovně odkud tam má přijet, aby je nevyložil ven z hřiště ale na tu čáru (když přijede z A3 na A2 a tam vyloží, plechovky zůstanou na čáře mezi A2 a A1 protože je strká rovnou před sebe. Kdyby přijel na A2 se směru od B2, tak by plechovky vystrčil do autu).

Uživatelský avatar
jrt
Příspěvky: 1130
Registrován: 17 úno 2013, 17:13

Re: Istrobot 2017

Příspěvek od jrt » 24 dub 2017, 12:58

Aha, takže když do něj soupeř pořádně strčí, tak je tvůj robot v... v úzkých :D
A soupeři se vyhýbá tak, že couvne na poslední známou souřadnici, udělá vlevo (vpravo) vbok, jede na nejbližší křižovatku a pak dál podle programu?

Stejně by ale bylo prima tyhle algoritmy rozebrat podrobněji v květnu na RD.
jrt
hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

Uživatelský avatar
Dex
Administrátor
Příspěvky: 668
Registrován: 16 úno 2013, 14:26

Re: Istrobot 2017

Příspěvek od Dex » 24 dub 2017, 13:18

a možná by bylo fajn sdílet i zdroják nebo jeho základní část pokud to není moc tajné ;)

Ne že bych chtěl opisovat, koneckonců každému kdo si řekl, jsem svoje zdrojáky z konkrétního robota poslal, ale pro mnoho lidí (včetně mě) by bylo poučné vidět, jak na to jdou ostatní :) V principu stačí obecný princip/konstrukce.

Ale rovnou říkám, že chápu, že jde o celkem dost nadstandardní prosbu :D
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz

DavidO
Příspěvky: 290
Registrován: 01 kvě 2013, 21:27

Re: Istrobot 2017

Příspěvek od DavidO » 24 dub 2017, 13:34

Ani nemusí pořádně, stačí ho vystrčit z lajny nebo aspoň natočit, on si už pak dílo zkázy dodělá sám.
I proto jsem se snažil to předcházení kolizí udělat (na rozdíl od všech ostatních, byl jsem totiž jediný, kdo to řešil :evil: - ale zase jsem za tohle dostal cenu poroty za Fair Play :mrgreen: )

To s obejitím je docela jednoduché: seznam souřadnic totiž mám tak, že mezi dvěma za sebou jdoucími cíli se jede výhradně rovně, tj. liší se pouze v jedné souřadnici (buď mají stejný řádek, nebo sloupec). Takže když přímo před sebou mám překážku, vím, že nejbližší cíl je ve směru přes tu překážku rovně. Takže místo jízdy dopředu přes překážku rovně na příští cíl a pak doprava/doleva na přespříští cíl nastavím ten nejbližší cíl tak, že teď pojedu doprava/doleva na souřadnici toho přespříštího cíle a hotovo. No a když na něj (ten cíl) dojede, tak si normálně přečte ten další cíl a jede na něj. Např. jsem na B3 a chci jet na D3 (a pak je v seznamu D5), ale přede mnou je neuhýbající překážka. Takže změním že teď jedu na D3 na že teď jedu na B5, protože pojedu nejdřív do boku (B beze změny) a druhou souřadnici na příslušnou z toho přespříštího cíle (5). To je ve východozápadním směru. V severojižním směru by se změnilo písmeno a zůstalo číslo, např. z C2 na C4 a pak E4 by se změnilo na C2->E1->E4. A ještě je vhodné podotknout, že ta změna cíle není trvalá, protože to, kam zrovna teď jedu, mám v nějaké proměnné a neměním tedy ten celkový seznam.
A hezký je i to, že by to nejspíš fungovalo i kdyby se ten soupeř až se otočím a vyrazím dál rozjel a zas si přede mě stoupnul 8-)
Naposledy upravil(a) DavidO dne 24 dub 2017, 15:09, celkem upraveno 1 x.

DavidO
Příspěvky: 290
Registrován: 01 kvě 2013, 21:27

Re: Istrobot 2017

Příspěvek od DavidO » 24 dub 2017, 13:54

Základní část je stavový automat, tak ten jsme si přece už na Robodoupěti vysvětlovali.
Ale teda nejdůležitější část aby to fungovalo je hromada obezliček (viz loňská pozn. 4) a rovnáků na vohejbáky, protože původně ten kód dělal něco jiného.

Celkově to je jeden velký velmi nevýchovný blázinec, za který bych si zápočet nedal. Vyhodil bych se s tím, že to mám nejdřív vyčistit, přepsat, okomentovat, zdokumentovat a teprv pak přijít znovu ;)

Uživatelský avatar
Dex
Administrátor
Příspěvky: 668
Registrován: 16 úno 2013, 14:26

Re: Istrobot 2017

Příspěvek od Dex » 24 dub 2017, 14:10

Já vím, že vysvětlovali a upřímně jsem myslel spíše na ostatní. Řada lidí má stále problém s představou programu bez delay(), přestože to jsme vysvětlovali už ani nevím kolikrát ;)
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz

Uživatelský avatar
fulda
Příspěvky: 399
Registrován: 04 led 2016, 17:18

Re: Istrobot 2017

Příspěvek od fulda » 24 dub 2017, 14:50

DavidO píše:
24 dub 2017, 13:34
Ani nemusí pořádně, stačí ho vystrčit z lajny nebo aspoň natočit, on si už pak dílo zkázy dodělá sám.
I proto jsem se snažil to předcházení kolizí udělat (na rozdíl od všech ostatních, byl jsem totiž jediný, kdo to řešil :evil: - ale zase jsem za tohle dostal cenu poroty za Fair Play :mrgreen: )
No a to jsem si zrovna říkal, že to se dá určitě řešit vhodnou konstrukcí - třeba tak, že před sebou budu sunout papírek, na kterém bude namalovaná čára šikmo, takže když dojedu k soupeřovi, tak mu podstrčím takovou malou odbočku a on mi uhne Obrázek

Ale za to bych asi nedostal cenu fair play :?: Obrázek
Za pravopisné chyby v této zprávě může moje učitelka češtiny.

Odpovědět

Kdo je online

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