Srpen 2012

Neurověda pro Geeky 8. Vidění 1

30. srpna 2012 v 3:42 | Petr |  NeuroScience pro Geeky
Když jsem blbnul s jednopixelovými kamerami v IR oblasti tak mi Tomáš Krajník říkal, jestli náhodou hardware pro jednopixelovou kameru není složitejší než koupit webkameru v Lídlu. No dneska díky Webovým kamerám si robotici myslí, že vidění je zlaté tele robotiky takže začínáme zrakem.

Oko kupodivu není nějaký orgán, který se jen tak vzal, ale je to jediný kus mozku, který je vidět zvenku (i bez použítí nože a násilí) oko se vyvíji tak ze u embrya zrakové nervy vrazí ze spodiny mozku a opřou se o místa na kůži pak se prohnou do tvaru poháru na víno v místě hrdla poháru z kožní tkáně vyroste čočka.

Nevím do jaké míry mám opakovat prvouku ale v oku je sítnice která obsahuje 140 miliónů světlocitlivých buněk. převážná většina jsou citlivější ale černobílé tyčinky. Menšinu tvoří barvocitlivé čípky, které jsou trojího druhu citlivé na červenou, zelenou a modou část světelného spektra. O barevném vidění jsem už jednou psal tak si to prosím přečtěte ať to nemusím opakovat. Celá sítnice i ostatní části mozku zabývající se zrakem mají své somatotopické uspořádání - tedy dvě sousedící části sítnice mají sobě odpovídající - sousedící - části mozkové kůry, což nám jednou asi usnadní výrobu zrakových implantátů.

Na konstrukci lidské sítnice je pozoruhodné, že ačkoliv má 140 miliónů světlocitlivých buněk tak ven z oka jde zrakovým nervem jenom asi milión nervových vláken. sítnice tedy musí zajisit kompresi dat v poměru 1: 140
Další věc zajímavá pro techniky je že sítnice je tvořena vrstvou světlocitlivýc buněk, pak vrstvou neuronů, které obraz zpracovávají a pak vrstvou neuronů, které vysílají axony do mozku. Podivuhodné je že světlo musí projít všemi neurony, a tyčinky a čípky jsou úplně vespod - tedy stejné uspořádání vrstev, jako u starších CMOS čipů digitálních foťáků.
Za šera se pohybující zvířata mají ještě tapetum lucidum - odraznou vrstvu, která světlo prošlé sítnící vrací zpět - to zvyšuje citlivost, ale zhoršuje ostrost vidění, proto lidi mají tapetum jenom naznačeno (viz červené oči na fotkách ) psi a kočky mají daleko silnější modrozelený odraz - "svítící oči".
Poslední zajímavost - člověk má zorné pole skoro 180 stupňů jako objektiv "rybí oko" zraková ostrost na periferii je ale nepatrná zcela dokonale ostře vidíme jenom v místě žluté skrvny (asi 3 úhlové stupně) to odpovídá kapacitě mozku "procesovat" data z oka.
I u oka platí obecné pravidlo, že levá polovina mozku reaguje na zrakové podněty z pravé poloviny prostoru. Aby to fungovalo je zrakový nerv veden do mozku podivuhodným způsobem Hluboko za kořenem nosu je tzv chiasma opticum - místo překřížení zrakových nervů - část z vnitřní oblasti sítnice (v blízkosti nosu) se kříží a jde na druhou stranu druhá část jde přímo - proč tomu tak je ukazuje obrázek, který je snad pochopitelný.

Poslední věc než pro dnešek skončíme a přítě se budeme zabývat zrakovou kůrou - je pozoruhodné, že zrak je daleko citlivější na změnu a na pohyb než na ustálený signál (viz cyklistické blikačky). Tomáš Krajník by nám lehce vysvětlil proč - vidění změny je vývojové straší a na datový procesing méně náročný způsob - současný snímek z kamery odečtete od minulého - tím vám 90% dat vypadne a řešíte jenom rozdíl. Savci vyspělejší než hlodavci + někteří ptáci jsou jediní tvorové, kteží vidí i stojící objekty - žába zdechne hladem v teráriu plném mrtvých much, protože nehybnou mouchu nevídí - příště proberem proč tomu tak je.

Předposlední poznámka k vidění - dynamický rozsah oka je neuvěřitelný - jas temné krajiny osvětlené hvězdami bez měsíce je k jasu slunečního kotouče v poměru 1 : 10^27. Díky duhovce, změnám koncentrací světlocitlivých pigmentů v sítnici a změnám způsobu zpracování oko tento rozsah zvládne. Celé věci pomáhá i malé centrální zrakové pole, protože ač si to neuvědomujeme nevidíme skoro žádný předmět v celku ale postupně jej "ohmatáváme" zrakem a přitom se naše oko adaptuje na osvětlení viděného místa. Kam se hrabou fotoaparáty mají dynamický rozsah tak maximálně 1 : 10^8 - čas 1 : 2000 clona 1 : 500 citlivost 1 : 100 znásobeno 1: 100 miliónů.

Poslední poznámka - všechny vnímané informace mají velký dynamický rozsah, proto je pravidlem, že živí tvorové skoro vše vnímají v logaritmické škále. Proto když jsem psal o trávoměrech a ostatních robotických čidlech byly logaritmické zesilovače mým problémem č. 1 - aniž by si to robotici uvědomovali - dokud se roboti nevyrovnají s velkým dynamickým rozsahem vstupních dat - problémy s čidly budou na denním pořádku - týmy z Robotur jistě ví o čem mluvím - kamera nakalibrovaná na zataženo a minutu před startem vyleze sluníčko ....

Jak mě mění AVR GCC ?

28. srpna 2012 v 3:41 | Petr |  Roboti
Robotici jsou tak výrazně programátorsky orientování, že na Robotour 2009 kde jsem vypomáhal jako organizátor se mi jeden kolega svěřil : "Mně by nejvíce vyhovovalo kdyby mi robota někdo postavil a všechny důležité funkce vyvedl nahoru na nějaký mnoho-pinový konentor." Pak se chvilku zamyslel a řekl "Nebo ne - lepší by byl USB port s dokonale zdokumentovaným (komunikačním) protokolem".
Takže když tvrdím, že v robotech je třeba mít i dolní propust, tak je to vlastně skoro sprosté slovo. A nebudu se divit, že se na mně v Praze kamarádi sesypou, proč odvádím mládež od meritu věci k nepodstatnostem jako jsou tranzistory ....

Proto ode mně neočekávejte, že svůj milovaný AVR assembler a programování v něm zavrhnu a odvolám. Neodvolám. Nicméně moje prázdninové kontakty s AVR GCC - tedy s GNU kompilátorem Céčka pro AVR mikrokontroléry už nese zajímavé ovoce - zatím spíše v hlavě a v pocitech.

První věc GCC překládá zatraceně dobře - některé konstrukce dokonce překládá efektivněji, než když jsem je psal ručně, protože psaní v assembleru je únavné a člověk má tendenci ke CUT and PASTE programování z předpřipravených fragmentů.

K samotnému jazyku C se nebudu vyjadřovat - já jsem vyrostl v Pascalu, který měl z pedagogického hlediska jasná pravidla. Linuxáci, kterí v 60 letech vymysleli C však považovali jasná pravidla za "neflexibilní" takže výsledek se dostavil - jakoukoliv kravinu v C napíšete kompilátor přeloží a pak se nestačíte divit, co se děje (nebo neděje). Zejména v mikrokontrolérovém světě, kde blikající LEDka je často jediný ladící výstup je tohle MEGAOPRUZ. Vůbec bych se nedivil kdyby kvůli rozdílu mezi A=1 a A==1 spadlo nějaké letadlo ....
Kombinace C a inline assembler - kde jsou ty krásné časy Turbo Pascalu kde jste místo BEGIN napsali ASM a pak už jste jeli v assembleru - MOV AX, BX; ADD AX, CX atd.... Způsob jakým se do GCC píšou assemblerové fragmetny fakt musel vymyslet nějaký autista, nebo psychotik, kterému tenhle styl připadal srozumitelný. Samo za sebe mluví, že i v nejnovějším návodu na LibC (systémové knihovny jazyka C) se autoři omlouvají, že ani jim není vše zcela jasné !!!!

No a ty "pocitové změny" ? Jestli jste programovali nějakou matematiku v ASM tak víte že to je dřina i moje oblíbená 32 bitová fixed point aritmetika v ASM je fuška. Takže snadnost programování v C je svůdná a trochu mě tlačí navěsit na procesor více "blikátek" aby se dalo v rámci testování více blbnout. V každém případě teď sám sobě blahopřeju, že jsem třeba takovou "Hlavičku Pentia 6" udělal s Externí SRAM a grafickým displejem, protože jejich programování je přesně ten druh hraní, ke kterému C svádí.

Ptáte-li se jestli doproučuju programovat AVR v C ? Možná budu za konzervativce, ale začátečník by se měl naučit princip KISS tedy Keep it Simple for the Stupid a k tomu C moc nevede a naopak dřina s ASM jednoznačně ano. Pokud ale chcete vyrábět složité roboty C je prakticky jediná možnost jak se neudřít nad softwarem.

Dnešní rada pro blondýny zní : Pokud vás štve, že vám říkají "blbá blondýna" jsou dvě cesty jak se toho zbavit - jedna ve směru "chytrá blondýna" a druhá ve směru "blbá bruneta". Je na vás, kterou cestou se vydáte...

Neurověda pro Geeky 7. Mozek jako celek

26. srpna 2012 v 2:39 | Petr |  NeuroScience pro Geeky
To co se nám u člověka jeví jako celý mozek je jenom jeho nejnovější část alias mozková kůra. Tu mají jenom savci. I mozková kůra je vývojově různě stará a mozková kůra, která je vzadu na zátylku a řídí vidění je nejstarší (všichni savci vidí) zatímco mozková kůra na čele (řídí myšlení a emoce) je (pochopitelně) nejmladší.

Celá mozková kůra má naprosto stejné složení - skládá se ze šedé hmoty na povrchu - což jsou těla neuronů a dendrity. A z bílé hmoty, která je uvnítř což jsou axony obalené bílými fosfolipidovými membránami Schwanových buněk. Šedá hmota se skládá ze 6 vrstev neuronů, a je podivuhodné že ačkoliv různé části kůry pracují různým způsobem - zrak sluch, pohyb hmat, je mozková kůra všude stejná. Asi to "přizpůsobení hardwaru úloze" pro které jsem tak horoval má přece jenom své meze, nebo možná je mozková kůra tak dobře navržená, že jedna struktura obslouží jakákoliv data.

Řekl jsem bílá hmota a fosfolipidy - nemůžu se ubránit nenapsat malou kuriozitku - jako každá jiná živá tkáň jsou 2/3 mozku voda a zbývající "suchá" 1/3 jsou z 90% fosfolipidy alias "ušlechtilými tuky" tvořené membrány -tedy smíchámím kila vody 450 gramů sádla a 50 gramů bílkovin vznikne mozek - jak jednoduché (by to bylo ;-)) ).
Už jsem poznamenal, že různé oblasti kůry řeší různé úlohy. Zde máte hrubé schema. jenom bych poznamenal, že na něm nejsou označeny dvě nejdůležitější oblasti - červený "gyrus praecentralis" je nejzadnější část čelního laloku - která řídí pohyb celého těla. Modrý "gyrus postcetralis" řídí hmat celého těla.

Je důležité poznamenat, že celá nervová soustava má přísnou organizaci - struktury řídící pohyb jsou všude v těle více vpředu (blíže k břichu) strutury analyzující vstupující informace jsou blíže k zádům. Navíc jako pozůstatek po nejprimitivnějších živočiších typu ploštěnek - levá polovina mozku a míchy řídí pravou polovinu člověka a naopak - všechna nervová vlákna "dalekého dosahu" se tedy poněkud nepochopitelně kříží přes střední rovinu. Hlubší smysl je patrně v omezené rychlosti nervového přenosu - mozek vznikl v blízkosti úst protože tam je potřebný nejvetší "datový tok" a levá polovina nervů řídí pravou plovinu těla patrně proto že nejjednodušší způsob jak červ unikne útoku zprava je zatnout svaly vlevo a odtáhnout se od dráždícího podnětu .....

Zejména ta blízkost mozku u tlamy je tak obecná věc, že si myslím, že i ufoni budou mít třeba tři oči, nebo jedno, nebo budou vidět radarem, ale chřtán a mozek budou mít ve stejné části těla.
Aby to ani tak nebylo tak jednoduché tak celá nervová soustava má tzv somatotopické uspořádání. To jest pokud dvě části našeho těla spolu sousedí i jejich nervové řízení v mozku spolu sousedí. Na obrázku máte rozkreslené příklady z motorické a senzorické kůry (červený a modrý závit na přechozím obrázku). Všimněte si že somatotopické uspořádání neznamená, že velikost dané části těla hraje nějakou roli - každé části těla je věnována tak velá část mozku jak velký datový procesing daná část potřebuje. Taky si všimněte že z prstu je necitlivější ukazovák ale nevíce tkáně je věnováno řízení pohybu palce - odpovídá realitě ? Určitě máte stejnou zkušenost.

Mimochodem Hans Moravec a další lidé z výzkumu ma pomezí lidského a strojového myšlení vyslovili hypotézu, patrně pravdivou, že výpočetní výkon na jednotku plochy mozkové kůry je pro celý mozek stejný - vzhledem k tomu, že struktura kůry je všude stejná - není důvod tomu nevěřit.

Už zase padám na hubu, takže pro dnešek končím a příště už konečně začneme probírat vidění.

Úloha blbuvzdornosti v konstrukci robotů 4.

23. srpna 2012 v 2:38 | Petr |  Roboti
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.
  • 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ší.

Problém společenské objednávky

21. srpna 2012 v 2:38 | Petr
Není to ani měsíc co jsem se vysmíval představě, že v atmosféře všeobecné lenosti a nevzdělanosti, se někdo vzdá možnosti žít si za větrem pohodlný život a dá se na profesi společensky potřebnou jen z idealismu. A už je to tady - Krááásný blog mladého klučiny, kterému je 19, nic neumí a jenom ví, že chce do Silicon Valley ;-)
Připouštím že označovat budoucího strojního inženýra za blba, který dobrovolně zahodil své společenské šance - jak jsem psal minule je trochu silné kafe, takže dneska na to půjdeme pozitivní cestou a zase si zahrajeme dva myšlenkové experimenty.

Experiment 1: Jste otcem děcka, které končí základku a musíte jej nasměrovat na střední a potenciálně vysokou školu a tím do žívota. Pro mladší čtenáře varianta tohoto experimentu - sami končíte základku kam pak půjdete ?
Máte žaludek na to doporučit mu - Pepo buď jako Roman Janoušek, Ivan Langer, David Rath, atd... seznam bohatých gaunerů je nekonečný ( a to jsem ani nezabrousil do skupiny těch nejbohatších jejichž jména mám zakázáno sem psát).
Nebo opačná varianta buď jako Ferko Horvát - kup si teplákovku, a nedělej už nikdy nic ....
Nebo jiná variatna - staň se "dojičem kapitalismu" nejlépe v nějaké "nezávislé" avšak státem bohatě dotované neziskovce, jako třeba můj oblíbenec ekologista-religionista-nemakačenko Ondřej Liška...
No a poslední varianta - opravdu buď strojním inženýrem a nech po sobě hajzlíky s MBA a 5x vyšším platem rajtovat až do penze ....
Zapoměl jsem na některou možnost ?
Ondřej Liška
Experiment č. 2. Jste "elitou národa českého" a máte doporučit co podporovat a co utlumovat. Co byste řekli ? Jaká je "společenská objednávka" na daší směr naší společnosti ?
Když jsem byl děcko tak spisovatel dětské literatury naší generace - Vojtěch Steklač to trefil naprosto přesně když v Boříkových lapáliích napsal "půlka třídy se chtěla stát indiánama a půlka kosmonautama". Jenomže co dneska - půlka se chce flákat po Silicon Valley a půlka se chce flákat kdekoliv jinde ?
Kam vůbec zamíří celá společnost ? Uživíme se "výrobou idejí" bude nám "svítit a hřát" biomasa, vítr a fotovoltaika ? Není to cesta "vzhůru do Afriky", kde už to tak vlastně funguje ? Řekl někdo děckám něco ve stylu - "dělejte co chcete ale musí vám to fungovat ?" Nebo tuhle větu nemohou "elity" typu Ondřeje Lišky vůbec vyslovit protože pak by následovala protiotázka "a co vám funguje ?"
Přiznat že jedině konto pro příjem státních dotací, by bylo asi dost trpké, takže společnost je bez hlavy. A lidi, kterým "něco opravdu funguje" jako jsou vědci a technici ke společenské diskusi připustit nelze, neboť by současnou "Liškovskou elitu" mohli snadno vyhodit ze sedla - tak je alespoň označíme nálepkou "technokratů bez rozhledu". A za "lidi s rozhledem" připadně za "intelektuály" označíme osoby, které by v Masarykovských dobách třely bídu s nouzí, neboť logikou 19. století neumí nic, čím bylo lze se uživit ...

Osobně jsem rád, že mám dceru, která zcela zcela sdíli jeden (a po pubertě bude sdílet i druhý) zájem své matky natolik, že s jejím směřováním neudělám nic, což mě i v mé malinkaté nice částečně zbavuje zodpovědnosti. Zavřít oči a nevidět svět však zatím nemohu a ani nechci ....

Úloha blbuvzdornosti v konstrukci robotů 3.

19. srpna 2012 v 4:33 | Petr |  Roboti
Dnes tedy probereme Bezdrátovou blbuvzdornost:
Z hlediska softwaru, který obsluhuje komunikační linku je prakticky jedno jestli jsou moduly spojeny drátem, nebo rádiem, taky třeba ethernetový síťový protokol vychází z radiového protokolu vyvinutého Hawajskou univerzitou zvaném příznačně ALOHA (ahoj v hawajštině). Stejně jako u drátovýchch sběrnic musíte čekat až je pásmo prázdné, označit zprávu kontrolním součtem, poslat zprávu a čekat na odpověď. Přijímající modul musí zprávu přijmout zkontrolovat kontolní součet a potrvdit příjem - žádný rozdíl.

V čem je ale principiální rozdíl je Hardware vysílače.
první vysílací schemata měly amplitudovou modulaci - amplituda VF signálu nese nízkofrekvenční informací - nevýhodu amplitudové modulace je malá odolnost proti rušení. A pokud jdeme do technických detailů tak nutnost používat "analogové" vf zesilovače ve třídě A, které spotřebují mnoho proudu.
Proto se začala používat frekvenční modulace, která se v analogovém vysílání používá dodnes - ta má dvě výhody - jednak stačí aby užtečný sitgnál byl o pouhé 3dB silnější než rušení a tím jej zcela překryje a navíc se používají "spínací" VF zesilovače ve třídě C, které produkují de facto pravoúhlý signál a až filtry před anténou z něj udělají sinusovku, což spotřebuje asi polovinu proudu než AM.

Nicméně od II. světové války je známá slabina frekvenční modulace - stejně snadno jako užitečný signál překryje rušení - může sám být snadno překryt rušivým vysíláním nepřítele. Toho si všimla německy mluvící pražská Židovka a herečka ve filmech I republiky Heda Lamarr a vymyslela, co se stalo základem moderní bezdrátové komunikace - Frequency hopping spread spectrum.
Princip je jednoduchý - vysílač několik milisekund vysílá na jedné frekvenci a pak odskočí na jinou a zase jinou a zase jinou... Pokud se protivník snaží signál rušit musí dodržet stejnou sekvenci skoků (což se mu nejspíš nepodaří). Pokud ruší jen na jediné frekvenci v přijímaném signálu se to projeví neznatelným výpadken na kratičkou chvilku . FHSS dodnes používá Bluetooth, který skáče 1600x za sekundu, nebo GSM.
Pak je ještě druhý způsob jak signál zabezpečit a to je Direct sequence spread spectrum, které používají třeba WIFI nebo Zig-Bee. Princip je v tom že místo abychom vysílali digitální modulací takovou rychlostí jakou potřebujeme tak digitální signál pomocí XOR zašifrujeme "pseudonáhodným" binárním signálem s rychlostí 10x - 100x větší (viz obrázek) - tím se nám šířka pásma signálu roztáhne taky 10-100x při zpětném přijmu pak musíme signál synchronizovat a opet XORem se stejnou sekvencí převést na původní data.
Rušící signály se projevují jako pomalý nesynchronní signál, který se v přijímači XORováním s rychou pseudonáhodnou sekvencí změní v rychlý pseudonáhodný signál, který se beze škod na datech odfiltruje analogovými filtry na výstupu přijímače.

U obou systémů spread spectra - pokud dva signály vysílající na stejné frekvenci liší se pseudonáhodnou sekvencí změny frekvence nebo šifrovaných dat - tak se vzájemně neruší. To je důvod proč i na sídlišti, kde každý má WIFI router, má vůbec smysl kupovat si vlastní.

Samozřejmě jste pochopili - pokud jsem v drátové komunikaci tvrdil, že diferenciální signalizace je nutnost, zde tvrdím spread spectrum modulace je nutnost. Proč tedy na soutěžích ani spread spectrum datové přenosy nefungují (nebo fungují špatně) ? Je to proto, že u těchto modulací existuje jenom omezený počet kanálů, nebo omezený počet pseudonáhodných kódů, takže nakonec přece jenom "mnoho psů zajícova smrt" - pokud máte v éteru desítky WIFI routerů na malé ploše nakonec dekódovat došlý signál je velice složité, chybovost je vysoká, žádosti o opakování paketu je mnoho, tím kazím pásmo ostatním, kteří se taky nedomluví a kazí pásmo mně....
Příklad z Robotour 2009 - WIFI pro organizátory jelo oficiálně na 54 mbit/sec a reálná rychlost spojení byla ve stovkách kilobitů - to se dá, pokud šnečím tempem stahujete mail, ale pokud na takové komunikaci závisí řízení robota v reálném čase - je to smrtelné.

Takže na testování v klidném parku u vás doma si pořiďte libovolnou technologii se spread spectrem, ale na soutěže - drát je drát - přes to, bohužel, nejede vlak.

Nezmínili jsme některé exotické bezdrátové komunikace, proto telegraficky - koupit v LIDLU vysílačky a krmit je AFSK - existuje radioamatérská technologie packet radia - lze použít ale maximální rychlost je 1200 bit /sec (teoreticky i více ale s upravenými vysílačkami)

Datová pojítka "na otvírání garáží" na 499,92 nebo 866 MHz - se dají velmi jednoduše připojit k mikrokntroléru ale je to vysílání na jediné frekvenci - navíc v Evropě určené ke kratičkým "relacím" (kliknutí k zamknutí auta) - poslech těchto frekvencí je mojí zábavou - divili byste se jak je tam živo a pravděpodobnost, že nikde na soutěži se nenajde druhý "vynálezce" který vám komunikaci neznemožní ???

Osobně pro testování doma používám systém "dálkového ovládání" na televizi - robot vysílá data blikající LEDkou odrazem o strop na který "kouká" přijímač dálkového ovládání typu SFH 5110 - dá se použít pro 2400 a někdy i pro 4800 bit/sec - opět pravděpodobnost že by IR přenos nepoužíval na soutěži i někdo jiný - nepatrná ....

Dnešní oblíbená rada pro blondýny zní - nedívejte se jenom do zrcadla, ale i do občanky, kde je datum narození, pokud toto datum už bylo dávno - zapojte rozum a nejdivočejší outfity nechte dceři - není nic směšnějšího než zmalovaná osoba typu "zezadu lyceum zepředu muzeum" .

Neurověda pro Geeky 6. Makro konstrukce

16. srpna 2012 v 4:33 | Petr |  NeuroScience pro Geeky
Všechny články o mozku jsem zatím psal více méně z paměti, nicméně jistý systém v tom musí být proto se musím omluvit, že dneska se ke slibovanému zrakovému systému patrně ještě nedostaneme, Protože jak jsme nervovou soustavu probrali na molekulární úrovni musíme ji probrat i na makroskopické úrovni nejprve poněkud obecně.

Tedy - mozek se vyvíjí už 500 miliónů let od tzv kabmrijské exploze - kdy konečně po 3.5 miliardách let jednobuněčné existence vznikli mnohobuněční živočichové a hned vznikli téměř v moderní podobě - to znamená - čtyřnohé tělesné schema alá pejsek, šestinohé tělesné schema alá včelka, osminohé tělesné schema alá pavouk, mnohonohé tělesné schena alá stonožky a larvy hmyzu atd. - v nepatrně krátké době vznikla zvířata, která pak už jenom "dozrála" do dnešní podoby.
Příroda nidky neopouští osvědčený princip - netrpí tedy "second system efektem", na druhou stranu ale jsou všechna zvířata podivuhodným propletenecem různě starých řešení která původně sloužila k úplně něčemu jinému. Stejně tak náš mozek je složen ze součástí, které se dají vystopovat až k prvním členovcům. Viz obrázek a jednoduchý barevný kód jdeme zespoda nahoru - žlutá mozek žížal , růžová ryby, azurová obojživelníci, khaki - plazi, červenohnědá savci .... Staré oblasti mozku si ponechaly jen ty nejdůležitější funkce, které se nedají svěřit novějším částem mozku - tedy žlutá prodloužená mícha řídí dýchání a činnost srdce a cév. Modrá - Most přepíná signály z míchy a reguluje dýchání, atd, atd.

Tecnickou analogií vzato - si myslím, že robotici nepovažují za hlavní část svého robota vestavěnou nabíječku, takže částmi mozku, které jsou starší než nejmladší mozková kůra se budeme zabývat jenom okrajově, přestože pro doktory tam tkví převaha jejich práce. Mozková kůra má totiž obrovskou redundanci a proto ani masivní poškození nemá takové účinky jako poškození kousku velikosti hrášku v prodloužené míše ....

Probral bych ještě nějaké věci, ale tím by tento blog příliš narostl, takže bohužel zase až příště.

Problém úzkého hrdla

14. srpna 2012 v 4:05 | Petr |  Filosofování
Každé náboženství musí mít zcela nesmyslnou komponentu - budhisti mají své nirvány, křesťani mají neposkvrněné početí a otce i syna i ducha svatého, muslimové mají taky něco (jenom si teď nevzpomínám co), no a Marxismus-Leninismus měl taky své nesmysly, které se tvářily jako dialektická filosofie, jestli se nepletu tak kravina č. 1 se skrývala pod heslem "jednota a boj protikladů" a blbina č. 2 se jmenovala "přeměna kvantity v kvalitu"
Smysl "nesmyslné komponenty" v každé víře je v tom, že ji nelze rozumem pochopit, a proto pokud u vás rozum převládá - nejste schopni tuto kravinu inkorporovat do své mysli a tím jste rozeznatelní jako "ti co víru nepřijali". Proto i ne-náboženské systémy, které vyžadují víru zúčastněných mají nesmyslné komponenty (napadá mně Armáda, ISO 9000, korporátní sféra atd.) Prostě spoléhat se, že zaměstnanec se podřídí na základě rozumu je dnes už nemoderní, protože rozum může dojít k závěru že daný "systém víry" je hovadina a co pak s takovým kolečkem v soustrojí '?
Nicméne je legrační a trochu škodlivé, když si lidé neuvědomí, smysl nesmyslné komponenty a jednají na jejím základě jakoby to byla skutečná informace.
Příklad: četl jsem článek (mladého) redaktora Mladé Fronty, že dnešní blondýna s iPhonem má více informací než kosmonauti Apolla 11 - klasický příklad mylné "proměny kvantity v kvalitu" Takže si jenom myšlenkovým experimentem posadíme Armstronga, Aldrina a Collinse do "Mekáče" s iPhonem a blondýnu do Apolla 11 - víte co bude za týden ? Komonauti se budou pokoušet psát pro iPhone první jednoduché prográmky a mrtvola blondýny bude znetvořená vzduchoprázdnem v rozbitém Apollu někde na Měsíci. Myslíte, že se pletu ?

Tím se dostáváme k meritu věci - umí neměcky ten který zná 500 slovíček nazpaměť, nebo ten, který jich má 500 000 "na flashce" v aktovce ? Tím se taky dostáváme ke řadě nepříjemných problémů, které dnešní doba příliš nevnímá
  1. Od doby ručně psaných pergamenových kodexů se lidská schopnost vstřebat informace zvětšila jenom nepatrně.
  2. Naopak množstvi informací k dispozici explozivně roste
  3. Na základě "klesajícího marginálního užitku" je však většina z těchto informací blbosti.
  4. Informace "v iPhonu" nejsou přímo přístupné naší mysli a tím s nimi nemůžeme pracovat a na jejich základě nic užitečného vymyslet.
  5. To že mám informace v iPhonu vzbuzuje falešný pocit, že tím jsou mi "kdykoliv dostupné".
  6. Odtud možná pramení pocit generálního a všeobjímajícího blbismu, kdy mládež nejenom, že neví jak vysoká byla tráva v bitvě u Platají, ale už pomalu ani neumí malou násobilku a jiné věci, které jsou zásadně užitečné.
Shrnuto jednoduše, návod jak zapálit oheň - uložený ve vybitém iPhonu - nezahřeje. Proto není pravda, že učení se základním informacím zpaměti už dnes nemá smysl, jednak tim dostáváme do hlavy "datový fundament" o který nás připraví až Alzheimerova choroba, ne to, že jsme zapoměli nabíječku. A navíc čím je člověk vzdělanější tím je pravděpodobnější, že si najde práci i ve dnešní nepracující společnosti a navíc - čím jste vzdělanější, tím je vnitřně těžší chovat se jako hovado....

Jenom aby nevznikla mýlka stran definice vzdělání - to jsou data v hlavě a schopnost pracovat s nimi nikoliv zarámovaný diplom z plzeňských práv, nebo z "Univerzity Ústí nad Labem" Neboli inženýr roku 2012 je průmyslovák roku 1988 - bohužel....

Úloha blbuvzdornosti v konstrukci robotů 2.

12. srpna 2012 v 4:07 | Petr |  Roboti
Jen co jsem dopsal minulý článek o blbuvzdornosti v robotice napadlo mně, že jsem zrazoval četnáře jak od přílišné důvěry v bezdrátové komunikace taky v použítí některých typů sběrnic - zejnéna tedy I2C. Ani jedno z toho jsem podrobněji nevysvětlil, takže je na čase to probrat.

Minule jsme tedy brali blbuvzdornost hardwarovou, dnes to bude blbuvzdornost datově - komunikační a dokonce rozdělena na drátovou a bezdrátovou složku.

Drátová blbuvzdornost:
Robotici jsou mentalitou programátoři a mají silnou tendenci k dekompozici velké úlohy na menší - takže je brzy napadne sestavit robota jako hromadu vzájemně komunikujících hardwarových modulů. Ne že bych tento přístup nedoporučoval, ale znovupoužitelnost a samostatná odladitelnost modulů, kterou od toho čekají většinou nenastane. Druhá možnost - stavět "jenoprocesorové" roboty - zanemá že - co robot to nový hardware a to je příliš pracné. Takže rozložit robota na 2-3 desky typu - řízení motorů - řízení čidel - vyšší inteligence - je plně obhajitelné a rozumné.

Jednotlivé desky samozřejmě budou komunikovat pomocí nějaké sběrnice - a první se nabízí RS232 buď v původních nebo v TTL napěťových úrovních - každý brzy zjistí, že RS232 je ideální pro spojení dvou modulú - point to point, ale jako opravdová "sběrnice" na které "visí" moduly se použít nedá.
Během úvodní rekognoskace se každý seznámí s I2C (obrázek nahoře), která se povrchním pohledem jeví jako ideální - je multimaster, umožňuje připojit až 128 modulů a dokonce ji velké firmy používají pro řízení hlasitosti a přepínání programů v rádiích a televizorech. Do robotů se však zcela nehodí, protože je v příkrém rozporu s mnou již zmiňovaným vedemím signálu "na nízké impedanci"
Když se totiž podíváte na schémátko zjistíte, že napětí na sběrnici udržují jenom odpory - Rp = 4K7 a ty klidně připustí indukci i dosti velkého rušení do sběrnice. Stejně opakovaně říkám, že I2C v robotech nefunguje a pak opakovaně poslouchám - když se pustí motory tak jdou do procesoru blbosti - pokud jdou přes I2C tak víte proč.

Sběrnice pro roboty nutně musí být odolná proti rušení a tudíž je výhodné pokud je Diferenciální. Pro zajímavost seznam zkratek dnes používaných diferenciálních sběrnic - Ethernet, PCIe, SATA, AGP, LVDS, DVI, HDMI, USB, SPDIF, RS422, RS485, CAN, Robbus ;-)) - skoro všechny dnes používané sériové sběrnice jsou diferenciální - proč tomu tak je ? Kvůli odolnosti proti rušení a dík tomu možnosti zvyšovat rychlost komunikace (skoro) do nekonečna.
Při diferenciální komunikaci totiž podíláte data současně dvěma dráty - v jednom jdou v přímé a ve druhém v invertované formě a to nejlépe tak že oba drátky jsou zakroucené do spirály a stíněné. Díky zakroucení do spirály, a stínění je schopnost elektromagnetického vlnění indukovat proudy v drátech minimální, ale to není to kouzlo - to kouzlo spočívá v tom, že na přijímací straně sledujete ROZDÍL v signálech a protože rušení se většinou indukuje do obou drátů stejně - v přijímači se beze škod odečte....

Takže nebudu vás nutit používat žádnou konkrétní sběrnici, ale ať je diferenciální. My "kluci co se spolu bavíme" už delší dobu používáme Robbus což je vlastně automobilový CAN jenom s našim vlastním protokolem. Protokol řeší další věci, které jsem nezmínil, ale které jsou stejně důležité - datové pakety musí mít kontrolní součet a přijímač musí vadné pakety ignorovat, musí existovat sytém adresace modulů, systém znovu-poslání vadné zprávy, systém PING - jak otestovat komunikaci atd. to všechno mají kluci vyřešené, já jsem jenom před 5 lety křičel jako siréna Diferenciální sběrnice !!!!, Diferenciální sběrnice !!!! až vznikla psychóza, že robot bez ní je jako blondýna bez iPhonu.

Jako už tradičně jsem přecenil své možnosti, takže bezdrátovou blbuvzdornost probereme příště.

Stejně tak ještě tradiční rada pro blondýny - v létě jsou bílé minišatičky na opáleném těle velice sexy, dávejte si ale pozor na zimní opalování v soláriích, ať ve 30 neskončíte jako vyschlé škeble.

Neurověda pro Geeky 5. Mikro poznámky k mikro konstrukci

9. srpna 2012 v 4:06 | Petr |  NeuroScience pro Geeky
Mám nutkání používat svoji oblíbenou zkratku CNS - tedy CNS je central nervous system neboli česky centrální nervový systém.

Minule jsme se zabývali otázkou jak signály vyslané jedněmi neurony spolu interferují na membránnách jiných neuronů a jak složítá matematika to je, dokonce jsem spekuloval i o vlastnostech mozku jako kvantového počítače.
V každém případě struktura CNS není náhodná už jenom tvary těl neuronů naznačují něco o matematické funkci, kterou neurony realizují - tedy v sítnici jsou bipolární neurony - všechny dendrity končí na těle neuronu na opačném konci než je axon - je jasné že tenhle neuron bude akční potenciály filtrovat na membráně těla. Lidskou motoriku řídí pyramidové buňky - opravdu mají tvar kužele (v mikroskopickém řezu jako pyramida) na povrchu kužele končí všechny dendrity a axon vychází s prostředka podstavy. V mozečku jsou podobně utvářené, ale inhibiční neurony zvané Purkyňovy buňky, které jsou však kulaté - všechno to má jakýsi smysl, který jsme zatím matematicky neuchopili a proto mu nerozumíme.

Místo toho píšeme práce na téma jak vylepšit BackPropagation - algoritmus učení umělých neuronových sítí, které s CNS nemá pranic společného - je to dobře nebo špatně ?
Abych nerýpal jenom do inženýrů - doktoři v oblasti neurověd si zamilovali zobrazování mozku na magnetické rezonanci - pacientovi dáme úlohu a vidíme, které části mozku pracují. Je to jako když vlezeme do telefonní ústředny a podle blikotání LEDek na svazcích telefonních linek bychom chteli určit o čem je řeč. Prostě nejvyšší čas aby matematici a neurofyziologové to vzali za stejný konec.

Nerozhodnost v oblasti udílení rad je už trapná - možná nebudu radit nikomu, ale těště se na příště - začneme kanónem na vrabce a probereme zrakový systém.