Dneska už tak ostře neodmítám ideu robota, který má na hřbetě izolepou přilepený notebook, ale pořád se mi mnohem více líbí roboti řízení mikrokontroléry, co z nich nikde nic neleze a robot vás nemá tendenci zabít, protože propadl "computerovému šílenství", protože Windows, místo plánování trasy, právě "nahrávají aktualizace".
Pokud nemáte v robotovi notebook, a přesto potřebujete mít nějaký sofistikovaný software. Sofistikovaný software většinou vznikne tak, že použijete chytrá čidla a chytrou elektroniku a chytré digitální (matematické) zpracování. Pod pojmem "chytrý" tady myslím chytrý jako Eurobot Martina Lockera z roku 2005 - tedy jednodušší než si kdo dovedl představit a přesto dokonale fungující. Ne "chytrá" jak si představují dnešní marketingoví mágové - to jest "žďorbo" nabité zbytečnostmi, aby se dala zákazníkovi účtovat cena, co se z ní podlamují kolena.
Takže bez nějakých těch výpočtů to nepůjde. A tady narážíme na problém - matematici většinou předpokládají absolutní přesnost výpočtu. To je tzv "Arbitrátní přesnost", kdy můžete výpočet spočíst na tolik míst až je chyba nekonečně malá. My však máme k dispozici jenom procesor, který v lepším případě má k dispozici matematický koprocesor a je schopen jakž takž počítat s reálnými čísly, nebo nemá ani to a pak počítáme s reálnými čísly za cenu krvavého zpomalení (a zvětšení) programu matematickými knihovnami, nebo si musíme vystačit s celými čísly.
Samozřejmě, pokud nějaký algoritmus osekáme z "nekonečné" přestnosti jak předpokládají matematici na 8 bitů celočíselných - zdá se to být takový masakr, že je lepší se do programování takového výpočtu ani nepouštět.
Moje zkušenost však říká něco jiného - často i zjednodušený výpočet s hrubými chybami je lepší než nic.
Příklad na obrázku. Představte si robota na Mini Sumo, který stojí na kraji hřiště a má dorazit do místa kde je soupeř - který je v průsečíku os. K tomu aby se trefil má čidlo soupeře (stereofonní sonar), které mu dává azimut k protivníkovi. Pokud je toto čidlo dokonale přesné - pojede podél červené čáry. Co se stane když čidlo má nějakou úhlovou odchylku - na obrázku jsem zvolil hrozivých 45 stupňů. Nedojede do cíle ? Kdepak - dojede jenom ne po červené přímce, ale po modré dráze - což je logaritmická spirála, která taky skončí v cíli, akorát je třeba ujet trasu přibližně 2x delší.
Jasné - 45 stupňová chyba v azimutu nepřekáží nalezení soupeře.
Proč to ? Pokud by robot měřil azimut jenom jednou - nikdy by netrefil, protože ale měří opakovaně, a pořád se snaží svoji chybu korigovat (byť pořád stejně špatně) nakonec dojede.
Poučení z tohoto případu ? Časté opakované měření, které není zatíženo kumulující se chybou nevede k dramatickým problémům ani pokud je zatíženo velkou systematickou chybou každého měření. Takže pokud budete počítat siny a kosiny v celočíselné matematice a budete tam mít 10% chybu - stále to nemusí být žádné drama. ( A stále to není důvod se na tu trochu počítání vykašlat).
Proto počítejte s tím, že po letech programování výpočtů na 8 bitovém AVR v assembleru - jsem se rozhodl zveřejnit svoji "tajnou kuchyni", přestože jsem původně o programování nechtěl vůbec psát. Takže postupně probereme úplně všechno, o čem se v učebnicích málokdy dočtete. pro dnešek končíme, abyste mohli nabrat síly na dalších milión pokračování.
Zbývá už jenom oblíbená rada pro blondýny : Geometrické tvary jsou letos OUT, jenom kosočtverec je věčný !!!
No presne na tú "tajnú kuchyňu" sa najviac teším, len keby tie články o matematike boli dlhšie.