Stránka 1 z 2

Istrobot 2017

Napsal: 22 dub 2017, 09:21
od DavidO
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:

Re: Istrobot 2017

Napsal: 22 dub 2017, 11:37
od Dex
Sleduji a dal jsem to i na Twitter ;)

Re: Istrobot 2017

Napsal: 24 dub 2017, 11:21
od jrt
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.

Re: Istrobot 2017

Napsal: 24 dub 2017, 12:25
od DavidO
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).

Re: Istrobot 2017

Napsal: 24 dub 2017, 12:58
od jrt
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.

Re: Istrobot 2017

Napsal: 24 dub 2017, 13:18
od Dex
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

Re: Istrobot 2017

Napsal: 24 dub 2017, 13:34
od DavidO
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-)

Re: Istrobot 2017

Napsal: 24 dub 2017, 13:54
od DavidO
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 ;)

Re: Istrobot 2017

Napsal: 24 dub 2017, 14:10
od Dex
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 ;)

Re: Istrobot 2017

Napsal: 24 dub 2017, 14:50
od fulda
DavidO píše: 24 dub 2017, 13:34Ani 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