Asi tak od roku 2007 se nám na Robotickém dni, kde jsem organizoval sumo několik sezón po sobě stala stejná příhoda. Přišel mladý muž, a stěžoval si, že s námi nemůže soutěžít, protože jeho robot vidí naši černou barvu jako bílou a naši bílou (která tvoří okraj hřiště) jako černou. A že je to určitě naše chyba, protože v kroužku elektroniků mu to bezvadně funguje.
Kouknul jsem na jeho robota a zjistil jsem , že zatímco my všichni používáme optická čidla na principu difuzního odrazu od podložky ve stylu optočlenu CNY70
On používá čidlo na principu zrcadlového odrazu - kde úhel odrazu rovná se úhlu dopadu. Takže bylo jasné, že v kroužku mají leskle černé hříště , od kterého získají jeho čidla větší signál než od matně bílého okraje. Proto ten paradox. Pokýval hlavou, a že to do příštího roku spraví - příští rok to ovšem bylo stejné akorát klučina byl daleko naštvanější - to mě zachráníl Pepa Hanzal, který vzal jejich hřiště, které bylo dokonale matné a tam jeho robot nefungoval taky.
Tak jme se kluka ptali - nebylo vám divné, že máte od černé větší signál než od bílé ? A on na to - já jsem něvěděl jaký mám mít kde signál - hlavně, že jsem měl rozdíl. Což mě věde k poslední "filosofické" kapitole o blbuvzdornosti robotů. A to je blbuvzdornost, nebo v tomto případě by se mělo říci ROBUSTNOST návrhu robota.
V daném případě znamená, že robustnost je když, snímáte odraz AD převodníkem ne natvrdo nastaveným hradlem, když si uděláte slepou zkoušku - tedy odečtete nejprve odraz s vypnutými IR ledkami a pak se zapnutými a berete jenom rozdíl, když se robot před startem kalibruje na černou, když máte na všechny kombinace dat z tohoto čidla předem vymyšlenou rozhodovací tabulku atd.... Tohle mají moji roboti a v životě neměli problém s detekcí okraje arény.
Robustnosti je velmi těžké dosáhnout. Musíte uvážit všechny faktory a s tím složitost robota a hlavně jeho softwaru exponenciálně roste. Otázka robustnosti nebo nerobustnosti se v 99% týká čidel a dat, která nám poskytují a algoritmů které z dat dělají závěry. Když budete potřebovat postavit dokonalou vestavěnou nabíječku, prostudujete posledních 20 ročníků amára a řešení tam najdete, ale jak se vyznat v parku, nebo jak sbírat barevné míčky na barevném hříšti to je těžká otázka.
Opět bude následovat neúplný seznam věcí, které dělají problémy, pro inspiraci mladším.
Opět bude následovat neúplný seznam věcí, které dělají problémy, pro inspiraci mladším.
- Kamery závisí na okolním osvětlění
- Aktivní čidla (detektory barev, které si samy svítí) závisí na spektrálních vlastnotech použitých LEDek a použitých barev.
- Robot nikdy nevidí stejně jako jeho páníček.
- Optická čidla mají jinou spektrální citlivost než oko
- Viděná intenzita svitu různobarevných LEDek neodpovídá skutečnému světlenému toku ani signálu které dostaneme z oposenzoru.
- Infračervená čidla typu SFH5110 jsou ovlivněna frekvencemi úsporných zářivek
- Infračervená čidla pro použítí v místnosti typu SFH5110 nebo SHARP GPYxxxx se prakticky nedají použít na slunci.
- GPS má chybu několik metrů
- Kompasy jsou ovlivněny náklonem robota, kovovými předměty a kabely pod proudem (viz tramvaje v Lužáneckém parku)
- Ultrazvuky mají falešné odrazy, vibracemi se citlivost UZ mikrofonu snižuje (díky mikrofonním vlastnostem piezokeramiky), navíc závisí na teplotě (díky rozdílům v rychlosti zvuku).
- Kola na nerovném terénu poskakují (i mikroskopicky) a tím vnášejí chybu do měření ujeté vzdálenosti
- Každé čidlo, které jsi pracně vymyslel, před tebou vymyslel už nekdo jiný používá jej a jeho používáním tvé čidlo ruší.
- Jakákoliv data která dostanete jsou potenciálně chybná.
Krom robustnosti senzorů je i robustnost chování robota máme-li příkaz "dělej A dokud nenastane B" Je třeba vždy naprogramovat i variantu "co když B nestane nikdy ?" Krom toho dobré mravy velí aby robot si někam zapisoval LOG - tedy co naměřil a co z toho vyvodil. Bádnání nad LOGEM v notebooku je zábavné pro konstruktéra ale není dosti pohotové, osobně to vždy doplňuju i pestrobarevnými LEDkami které velemoudrým blikotáním dávají najevo "nad čím robot přemýšlí" (veřejnost a hlavně děcka tohle milují)
Máte pocit, že to nemá řešení - máte pravdu, proto se těmto vlastnostem robota neříká pejorativně blbuvzdornost, ale hrdě robustnost, kdo jí dosáhne je veliký šéf a my ostatní mu jenom tiše závidíme. Je to oblast natolik složitá, že můžete intenzivně bádat léta aniž byste se sebeméně hnuli vpřed (můj případ).
Na samotný závěr bych si dovolil poslední filosofickou poznámku a svou obhajobu - nemá smysl dělat roboty "tak jak to dělají všichni", protože tím narazíte na "ty samé problémy co měli oni" zkuste přemýšlet jak postavit robota "jak ho ještě nikdo nedělal" protože tím je skoro jisté, že narazíte na slepou cestu, ale je i malá šance, že překvapivě zvítězíte. V každém případě robotici jsou velmi uznalí a za neúspěšné "donkichotské" řešení se vám spíše dostane pochvaly než za neúspěšnou 150 verzi toho "co nefungovalo nikomu".
Dnešní rada pro blondýny zní - pokud jste nafoukaná a sláma vám leze z bot - "Vuittonka" celkový dojem spíše zhorší.