Re: Antisrážkový systém aneb jak obsloužit hodně ultrazvuků
Napsal: 12 říj 2015, 00:33
Napíšu, co mě k tomu napadá, aby mi to buď někdo zkušenější vyvrátil či potrvrdil, nebo aby si případně někdo mohl naopak říct "to je zajímavý náhled, nad tím se zamyslím".
Ultrazvuk funguje tak, že senzor nejdřív vyšle nějaký signál a potom čeká, až takovýto signál přijde a z doby odezvy a rychlosti zvuku spočte vzdálenost, kterou signál urazil - tedy obvykle součet cesty tam a zpět, i když u různých odrazů to může být zcela jinak, a půlku té vzdálenosti považuje za vzdálenost od překážky.
Když je senzorů víc, tak je potřeba brát v úvahu jejich rozmístění a z něj plynoucí nestejnost délky cesty tam a cesty zpátky.
Navíc se ultrazvuk šíří v kuželu a odráží ode všech možných překážek, ale senzor obvykle vyhodnotí jen první zaznamenaný odraz, tedy první překážku.
Chytrý senzor může vyhodnotit těch odrazů víc a dva chytré senzory z toho můžou vypočítat souřadnice "všech překážek v doslechu" (no aspoň pár nejbližších a největších) - viz Petr Kubáč
http://petr-kubac.blog.cz/1212/sonary-1 ... ne-nedelat
http://petr-kubac.blog.cz/1212/sonary-2 ... le-spravne
http://petr-kubac.blog.cz/1212/sonary-3 ... -ultrazvuk
http://petr-kubac.blog.cz/1212/sonary-4 ... a-moznosti
http://petr-kubac.blog.cz/1211/vidlakov ... ovac-s-avc
http://petr-kubac.blog.cz/1211/proc-sta ... ni-senzory
Když jsou dva roboti vedle sebe (nebo jeden s mnoha čidly), tak může snadno dojít k tomu, že jeden pískne, pak pískne ten druhý a pak ten druhý uslyší prvního (a najednou má překážku takhle strašně blízko), a pak ten první uslyší druhého (a má překážku sice dál, ale pořád ještě blíž, než tvrdí realita) a teprve pak k nim dorazí ty jejich vlastní hvizdy, ale jako druhé a vícté v řadě už jsou ignorovány.
Tady by pomohlo, kdyby každý hvízdal na jiné frekvenci a tak byl schopen rozlišit cizí a svoje, ale jedna řada čidel asi pojede na stejné frekvenci, takže tohle moc nepomůže. A i kdyby si to ladil každý sám, nikde není záruka, že se mu do stejného ladění netrefí i někdo jiný. Takže rozumnou šanci by mělo až náhodné skákání po několika (hodně) frekvencích, kde šance, že někdo jiný bude sledovat dostatečně stejný vzorec je dostatečně nepatrná.
Nedokonalým přiblížením by mohlo být aspoň pískání v nepravidelných intervalech a použití podobného triku, jako u měření svítivými diodami, kde robot provede delší sérii měření při vlastnoručním blikání ledkou a tím, že od sebe odečte signály při svítící a při zhasnuté ledce, tak mu zbudou jen ty signály, které se mění stejně rychle, jako bliká ta jeho ledka - s trochou štestí tedy jen jeho vlastní signál a vše ostatní se poodčítá. Jenže ultrazvukem se nedá "blikat" tak rychle jako světlem a pořád je potřeba blikat jinak, než kdokoli jiný.
Pokud by někdo zvládnul Kubáčovy stereoskopické ultrazvuky, tak má velkou šanci použít extra chytrý postup, kdy ta měření dělá nepravidelně a spočte celou mapu a pokud se mu na několika mapách určitá měření vždy shodují, tak jsou nejspíš pravá a pokud se některá nahodile objevují a mizí, tak jsou nejspíš fantómová - ale pořád je potřeba použít jiné pískací schéma, než kdokoli jiný a nejlépe i než libovolná kombinace ostatních.
Problém je v tom, že už jeden stereo ultrazvuk dá procesoru docela zabrat a natož více takových a u každého porovnávání řady minulých map - to už je pomalu na výpočetní cluster arduin.
Pokud bych chtěl mít spoustu chytrých senzorů okolo robota, tak bych asi dal přednost centrálnímu všesměrovému pískání ze středu robota, nejlépe ze stožáru (a buď všesměrovým reproduktorem, nebo hodně silným nahoru , nejlépe do zavěšené koule, co to odrazí do všech stran stejně, nebo kruhu vzájemně spojených malých repráčků, co každý pokrývá jednu z překrývajících se výsečí - a zesílený signál vedl jedním drátem až k nim a až mezi nimi to rozdělil pomocí hvězady stejně dlouhých drátů už bez další elektroniky) , a senzorům rozmístěným po obvodu kruhu, protože to aspoň některé výpočty zjednoduší - a stačí mi generovat jednu náhodnou sekvenci a nemusím řešit vzájemné ovlivňování svých senzorů mezi sebou..
---
Tolik mé úvahy a varování na závěr: zatím jsem experimentálně jen ověřil, že ze senzoru mi na stole lezou nějaká data, která občas nejsou v křiklavém rozporu s realitou, čili u mě jde jen o teoretické úvahy nepodložené praxí.
Ultrazvuk funguje tak, že senzor nejdřív vyšle nějaký signál a potom čeká, až takovýto signál přijde a z doby odezvy a rychlosti zvuku spočte vzdálenost, kterou signál urazil - tedy obvykle součet cesty tam a zpět, i když u různých odrazů to může být zcela jinak, a půlku té vzdálenosti považuje za vzdálenost od překážky.
Když je senzorů víc, tak je potřeba brát v úvahu jejich rozmístění a z něj plynoucí nestejnost délky cesty tam a cesty zpátky.
Navíc se ultrazvuk šíří v kuželu a odráží ode všech možných překážek, ale senzor obvykle vyhodnotí jen první zaznamenaný odraz, tedy první překážku.
Chytrý senzor může vyhodnotit těch odrazů víc a dva chytré senzory z toho můžou vypočítat souřadnice "všech překážek v doslechu" (no aspoň pár nejbližších a největších) - viz Petr Kubáč
http://petr-kubac.blog.cz/1212/sonary-1 ... ne-nedelat
http://petr-kubac.blog.cz/1212/sonary-2 ... le-spravne
http://petr-kubac.blog.cz/1212/sonary-3 ... -ultrazvuk
http://petr-kubac.blog.cz/1212/sonary-4 ... a-moznosti
http://petr-kubac.blog.cz/1211/vidlakov ... ovac-s-avc
http://petr-kubac.blog.cz/1211/proc-sta ... ni-senzory
Když jsou dva roboti vedle sebe (nebo jeden s mnoha čidly), tak může snadno dojít k tomu, že jeden pískne, pak pískne ten druhý a pak ten druhý uslyší prvního (a najednou má překážku takhle strašně blízko), a pak ten první uslyší druhého (a má překážku sice dál, ale pořád ještě blíž, než tvrdí realita) a teprve pak k nim dorazí ty jejich vlastní hvizdy, ale jako druhé a vícté v řadě už jsou ignorovány.
Tady by pomohlo, kdyby každý hvízdal na jiné frekvenci a tak byl schopen rozlišit cizí a svoje, ale jedna řada čidel asi pojede na stejné frekvenci, takže tohle moc nepomůže. A i kdyby si to ladil každý sám, nikde není záruka, že se mu do stejného ladění netrefí i někdo jiný. Takže rozumnou šanci by mělo až náhodné skákání po několika (hodně) frekvencích, kde šance, že někdo jiný bude sledovat dostatečně stejný vzorec je dostatečně nepatrná.
Nedokonalým přiblížením by mohlo být aspoň pískání v nepravidelných intervalech a použití podobného triku, jako u měření svítivými diodami, kde robot provede delší sérii měření při vlastnoručním blikání ledkou a tím, že od sebe odečte signály při svítící a při zhasnuté ledce, tak mu zbudou jen ty signály, které se mění stejně rychle, jako bliká ta jeho ledka - s trochou štestí tedy jen jeho vlastní signál a vše ostatní se poodčítá. Jenže ultrazvukem se nedá "blikat" tak rychle jako světlem a pořád je potřeba blikat jinak, než kdokoli jiný.
Pokud by někdo zvládnul Kubáčovy stereoskopické ultrazvuky, tak má velkou šanci použít extra chytrý postup, kdy ta měření dělá nepravidelně a spočte celou mapu a pokud se mu na několika mapách určitá měření vždy shodují, tak jsou nejspíš pravá a pokud se některá nahodile objevují a mizí, tak jsou nejspíš fantómová - ale pořád je potřeba použít jiné pískací schéma, než kdokoli jiný a nejlépe i než libovolná kombinace ostatních.
Problém je v tom, že už jeden stereo ultrazvuk dá procesoru docela zabrat a natož více takových a u každého porovnávání řady minulých map - to už je pomalu na výpočetní cluster arduin.
Pokud bych chtěl mít spoustu chytrých senzorů okolo robota, tak bych asi dal přednost centrálnímu všesměrovému pískání ze středu robota, nejlépe ze stožáru (a buď všesměrovým reproduktorem, nebo hodně silným nahoru , nejlépe do zavěšené koule, co to odrazí do všech stran stejně, nebo kruhu vzájemně spojených malých repráčků, co každý pokrývá jednu z překrývajících se výsečí - a zesílený signál vedl jedním drátem až k nim a až mezi nimi to rozdělil pomocí hvězady stejně dlouhých drátů už bez další elektroniky) , a senzorům rozmístěným po obvodu kruhu, protože to aspoň některé výpočty zjednoduší - a stačí mi generovat jednu náhodnou sekvenci a nemusím řešit vzájemné ovlivňování svých senzorů mezi sebou..
---
Tolik mé úvahy a varování na závěr: zatím jsem experimentálně jen ověřil, že ze senzoru mi na stole lezou nějaká data, která občas nejsou v křiklavém rozporu s realitou, čili u mě jde jen o teoretické úvahy nepodložené praxí.