Senzorická fúze pro sledování a určování polohy autonomních systémů

Obrázek 1: Úloha senzorické fúze v autonomním systému řízení Obrázek 1: Úloha senzorické fúze v autonomním systému řízení

Autonomní robotické systémy a vozidla, tedy systémy, které jsou schopny samostatného provozu bez asistence člověka, vyžadují přesné informace o stavu, ve kterém se systém a jeho okolí nacházejí. Pokud jsou tyto informace zkreslené, nemůže se autonomní systém správně rozhodovat. Proto je přesnost a spolehlivost měření nesmírně důležitá. Senzorická fúze představuje způsob, jak řešit omezenou přesnost a spolehlivost jednotlivých snímačů a měřicích systémů. MATLAB jakožto nástroj pro vědecké a technické výpočty poskytuje pro tuto oblast specializovanou nadstavbu – Sensor Fusion and Tracking Toolbox. 

Určování polohy a sledování trajektorie objektů je jednou ze základních úloh v řízení a navigaci autonomních systémů. Úspěšnost je však ovlivňována omezenou přesností měření a chybami snímačů. Abychom dokázali přesněji odhadnout stavy systému, jako je jeho poloha nebo natočení, je třeba sloučit dostupné informace ze snímačů do jednoho modelu. K tomuto účelu slouží senzorická fúze.

Senzorická fúze

„Senzorická fúze kombinuje data ze senzorů nebo data získaná z různorodých zdrojů tak, že výsledné informace mají menší nejistotu, než by bylo možné dosáhnout, kdyby byly tyto zdroje použity samostatně.“ (https://en.wikipedia.org , překlad autora)

Příkladem jednoduché fúze je využití dvou a více stejných snímačů k získání hodnoty dané veličiny. Pokud bychom chtěli měřit údaj z akcelerometru mobilního telefonu položeného na stole, měli bychom dostat konstantní hodnotu 9,81 ms-2. Snímač je však zatížen náhodným šumem, takže hodnota bude v okolí správné hodnoty oscilovat. Pokud použijeme akcelerometry dva, můžeme aktuální získané hodnoty průměrovat, čímž se potlačí část náhodného (nekorelovaného) šumu a získaný údaj bude přesnější.

Duplicitou snímačů však neodstraníme systematické chyby způsobené daným typem měření. Například ovlivnění magnetického kompasu v telefonu magnetickým polem pocházejícím z vlastní elektroniky ovlivní stejným způsobem jeden i více magnetometrů a vyvolanou chybu průměrováním neodstraníme. K potlačení chyby můžeme využít doplňkové údaje z odlišného senzoru – například gyroskopu – a pomocí něho určit, zda se telefon pootočil, či nikoli. Pokud se telefon nepohnul a magnetické pole se přesto změnilo, bude se pravděpodobně jednat o chybné měření.

Kombinace výstupů různých snímačů umožní využít silné stránky každého způsobu snímání a dokáže potlačit nedostatky jednotlivých snímačů. Také zvyšuje spolehlivost systému, kdy jej při výpadku jednoho systému měření nahradí zbývající (alespoň částečně).

Nejčastěji využívaným algoritmem senzorické fúze je Kálmánův filtr. Jedná se o výpočetní algoritmus, který zahrnuje i model vlastního systému a který kromě sloučení senzorových údajů umožní začlenit do výpočtu vliv chování systému jako takového. Díky tomu lze informace ze snímače nejen korigovat, ale také po nějakou dobu předpovídat chování systému v případě krátkodobého výpadku „dodávky“ údajů.

Základními úkoly senzorické fúze jsou:

  • zvýšení kvality snímaných údajů;
  • zvýšení spolehlivosti systému;
  • odhad hodnot veličin, které přímo neměříme;
  • zisk více informací (celek je více než součet jeho částí).

Sledování a navigace 

V případě autonomních systémů se senzorická fúze uplatní zejména v úloze sledování okolí a vlastní navigace systému (obrázek 1). Na senzorickou fúzi je možné nahlížet ve dvou rovinách.

První rovina se zabývá vlastním stavem autonomního systému, tedy jeho polohou nebo natočením. V tomto případě jsou využívány snímače, např. akcelerometr, magnetometr, výškoměr, případně GPS. Druhá rovina se zabývá tím, co se děje v okolí systému. Zde najdou uplatnění snímače, jako jsou radar, kamera, sonar nebo lidar. Senzorická fúze dále propojuje dvě aplikační oblasti reálného světa, zpracování signálů a obrazu s řídicími systémy. 

Návrh algoritmů senzorické fúze lze provést například v programu MATLAB, vývojovém prostředí pro vědecké a technické výpočty, modelování a simulace systémů. Jsou zde k dispozici specifické nástroje pro senzorickou fúzi, jakož i nástroje pro návrh řídicích systémů.

Modely snímačů

Algoritmus senzorické fúze je navrhován pro práci v reálném prostředí. Při návrhu a testování algoritmu je třeba pracovat s daty z různých snímačů, která budou výsledným systémem využívána. Ne vždy jsou ale k dispozici data z reálných měření z různých snímačů a z různých situací. Zde přicházejí ke slovu modely snímačů. Ty lze využít k vytváření umělých dat, generovaných na základě nejrůznějších scénářů, a s jejich využitím algoritmy senzorické fúze virtuálně testovat (obrázek 2). Simulační prostředí umožňuje také posouzení vlivu odlišné periody vzorkování snímačů, jakož i jejich výpadků.

obr2Obrázek 2: Příklad scénáře pro senzorickou fúzi v prostředí MATLAB

V prostředí MATLAB je možné modelovat jednotky IMU (akcelerometr, gyroskop, magnetometr), GPS přijímače a případně INS (inerciální navigační systém). Modely mají množství volitelných parametrů, aby jejich chování odpovídalo realitě. Také lze nastavit vlastnosti prostředí a parametry šumu, jako kdyby byl snímač umístěn v reálném světě. 

Z aktivních snímačů je možné modelovat radar nebo sonar a s jejich využitím vytvářet simulovaná data z mechanického či elektronického skenování okolního prostoru, včetně detekcí okolních objektů. Modely pasivních snímačů jsou zde rovněž k dispozici.

Odhad polohy a orientace

K odhadu polohy, rychlosti a orientace autonomního systému jsou používány algoritmy inerciální senzorické fúze. Systém musí vědět, kde se nachází, aby pochopil, kde jsou umístěny objekty v jeho okolí. Využívají se typické kombinace senzorů, např. IMU + GPS. V prostředí MATLAB jsou k dispozici připravené algoritmy pro fúzi různých kombinací senzorů, opět založené na Kálmánových filtrech, s možností uživatelského nastavení.

Sledování objektů 

Sledování trajektorie okolních objektů je druhou významnou úlohou, kterou musejí autonomní systémy řešit. Opět zde nachází uplatnění senzorická fúze, tentokrát zapouzdřená v rámci sledovacích algoritmů (tracking algorithm, tracker). Sledovací algoritmus sestává ze dvou základních částí. První částí je sledovací filtr, který odhaduje a aktualizuje stav trajektorie sledovaného objektu na základě snímaných informací ze senzorů (typicky z radaru, lidaru apod.) a modelu předpokládaného pohybu (konstantní rychlost, zrychlení, zatáčení apod.). Druhou částí je algoritmus správy trajektorií, který přiřazuje detekované objekty (detekce) k trajektoriím, přidává trajektorie pro nové objekty či maže trajektorie objektů, které např. unikly z dosahu senzorů.

Při vývoji sledovacího algoritmu mohou být na vstupu využita zaznamenaná reálná data, aktuální „živá“ data nebo simulovaná data generovaná z modelů snímačů.

V prostředí MATLAB existují dva přístupy pro práci se sledovacími algoritmy. První je ten jednodušší, kdy lze využít dodávané algoritmy tak, jak jsou. Druhý přístup umožňuje uživatelské přizpůsobení jednotlivých komponent algoritmu, tj. přizpůsobení filtrů, modelů pohybu a algoritmů přiřazování detekcí.

Ukázkovým příkladem může být sledování trajektorie dvou přibližujících se objektů. Úkolem je určit, kterým směrem budou jednotlivé objekty pokračovat. V závislosti na použitém algoritmu můžeme dosáhnout několika výsledků (obrázek 3). Pokud se objekty přiblíží příliš blízko, mohou být detekce přiřazeny jediné trajektorii, protože si sledovací algoritmus „myslí“, že se jedná o jeden objekt. Tím dojde ke ztrátě informace o druhém objektu a při oddělení trajektorií je založena trajektorie nová. Takový výsledek může podat jednodušší sledovací algoritmus, například tracker GNN (global nearest-neighbor). Pokročilejší algoritmy, jako jsou tracker JPDA nebo tracker TOMHT, jsou většinou přesnější, ale za cenu vyšší výpočetní náročnosti. Chování sledovacího algoritmu také významně ovlivňuje volba vnitřního modelu předpokládaného pohybu objektu. Lze zvolit konkrétní model pohybu (například konstantní rychlost – CV) nebo algoritmus přepínající různé modely (IMM). Volba vhodného sledovacího algoritmu musí odpovídat požadované přesnosti, dostupnému výpočetnímu výkonu a předpokladům, jaké situace mohou v reálném prostředí nastat.

obr3Obrázek 3: Odlišné výsledky při sledování trajektorií dvojice objektů různými algoritmy

Závěr

Algoritmy senzorické fúze a sledování okolních objektů jsou nedílnou součástí mobilních autonomních systémů. Prostředí MATLAB poskytuje nástroje a algoritmy k návrhu, simulaci a analýze těchto systémů využívajících senzorickou fúzi. K dispozici je též vizualizace pomocí grafů znázorňujících trajektorie objektů nebo detekce. K vyhodnocení přesnosti algoritmů lze využít integrovaných metrik. Návrh systému je možné zakončit automatickým převodem algoritmů do jazyka C a jejich integrací do prostředí mimo MATLAB.

www.humusoft.cz

HUMUSOFT - ve službách vědy a techniky

HUMUSOFT s.r.o. je česká soukromá obchodní společnost založená v roce 1991. Společnost má sídlo v Praze a pobočku v Bratislavě. V současnosti má 20 stálých zaměstnanců a proměnný počet externích spolupracovníků pro řešení konkrétních úkolů. Od svého vzniku dělí společnost své síly rovným dílem mezi výrobu a prodej přístrojového a programového vybavení. Mezi oblasti zájmu společnosti patří řídicí technika, informační technologie, vědeckotechnický software, simulace technologických i podnikových procesů. Hlavním cílem společnosti je poskytovat zákazníkům komplexní služby. To znamená nejen prodej, ale především uživatelský servis na nejvyšší úrovni, nestandardní služby dle přání zákazníka a maximální rychlost a korektnost ve vyřizování požadavků zákazníků.

www.humusoft.cz