Tým eForce Driverless se po více než roce usilovného vývoje první autonomní formule v České republice kvalifikoval na několik závodů sezóny 2020 pořádaných zastoupením soutěže Formula Student. Mezi nimi byly například velice prestižní závody FS Germany a také oblíbené domácí FS Czech Republic pořádané tradičně v areálu Autodromu Most. Všechny soutěže se měly pořádat v průběhu léta 2020, nicméně kvůli pandemické situaci byly k našemu velkému zklamání všechny do jedné zrušeny.

Jako náhradu se podařilo organizátorům maďarských závodů FS EAST a holandských FS Netherlands uspořádat vůbec první virtuální závod Formula Student Online, na který jsme se bez váhání kvalifikovali. Mimo nás se kvalifikoval například spojený tým z MIT a TU Delft. Závod se uskutečnil v červenci tohoto roku a v tomto článku bychom Vám chtěli přiblížit jak vlastně probíhal náš vůbec první a v sezóně 2020 jediný závod.

Organizace závodu

FS Online byl velice netradiční závod, jelikož byl celý pořádán online. Protože koronavirus nám nedovoloval závodit se skutečnými formulemi na skutečné trati, závodilo se s virtuálními formulemi na virtuální trati.

Organizátoři závodu pro zúčastněné týmy připravili simulátor, ve kterém mezi sebou změřily síly naše řídící algoritmy, které dostaly za úkol ovládat virtuální formuli a bezpečně s ní projet neznámou trať.

Jako na skutečných závodech je i zde trať vyznačená žlutými a modrými kužely. Cílem závodu je projet tuto trať bez vyjetí mimo vyznačenou trasu nebo sražení kuželů co nejrychleji a bezpečně na konci formuli zastavit.

Pro úspěšné projetí tratě bylo třeba nasadit celou řadu řídících a rozpoznávacích algoritmů. Mezi nimi například algoritmy pro rozpoznání kuželů na trati, algoritmus pro plánovaní optimální trasy skrze detekovanou trať a algoritmy pro řízení samotné formule – řízení rychlosti, natočení kol atd.

Příprava na závody

Příprava před závody se skládala ze dvou částí. Zaprvé bylo třeba upravit náš stávající software formule, aby byl schopný komunikovat se simulátorem, který nám poskytli organizátoři. Toto bylo zásadní, jelikož kdybychom nedokázali řídit naši formuli v simulátoru, všechna práce na rozpoznávání a autonomním řízení by přišla nazmar.

Abychom měli na FS Online šanci na úspěch, bylo třeba vyladit náš autonomní systém pro virtuální prostředí, ve kterém se závody odehrávaly. Toto bylo třeba hlavně proto, že nám organizátoři poskytnuli jen určité virtuální sensory, které bylo možno použít. Mezi nimi byly kamery, LiDAR a inerciální jednotka (IMU).

Kamery se v soutěži Formula Student používají velmi hojně, a to zejména pro jejich nízkou cenu. I náš autonomní systém byl před FS Online postavený výlučně na kamerách. Při použití kamer pro autonomní řízení rozlišujeme dva základní typy. Mono a stereo kamery.

Mono kamery jsou klasické kamery, které znáte. Kamery pořizují barevné video záznamy. Problém těchto kamer je, že nemají dostatek informace na to, aby ze záznamu zrekonstruovali 3D polohu objektů ve scéně, což je potřebné pro lokalizaci kuželů. Pokud bychom v takové kameře viděli kužel na trati, nedokázali bychom jednoznačně určit, jak daleko se nachází. Stereo kamery tento problém řeší tím, že kombinují dvě mono kamery, které jsou synchronizované a jejich vzájemná poloha je známa. Pokud se obě kamery dívají na ten samý objekt ve scéně, je možné určit jeho 3D polohu. Tento princip je podobný principu, na kterém fungují lidské oči. Náš systém byl postaven právě na stereo kamerách, díky kterým je možné získat relativně přesné pozice kuželů.

Snímání blízkého okolí pomocí stereokamer

LiDAR je přístroj určený k mapování terénu za pomoci laserových paprsků. Na rozdíl od kamer, LiDAR neznamenává 2D obraz scény ale tzv. point cloud neboli mrak bodů. LiDAR vyšle laserový paprsek a na základě doby odrazu dokáže určit vzdálenost k objektu, od kterého se paprsek odrazil. Každý takový odraz je jeden bod ve zmíněném mraku bodů. Čím více paprsků LiDAR vyšle, tím přesněji dokáže zmapovat okolní terén. Oproti kamerám má LiDAR výhody v mnohem větším dosahu a větší přesnosti. Nevýhoda LiDARu je typicky mnohem větší cena v porovnání se stereo kamerami.

Ouster OS1-64

Vizualizace bodů v okolí formule snímaných LiDARem

IMU neboli inerciální jednotka je zařízení kombinující akcelerometry a gyroskopy, které dokáží měřit rychlost, zrychlení, orientaci formule a pohybujících se objektů obecně. IMU je užitečná hlavně k určení polohy, ale většinou bývá poměrně nepřesná a je třeba ji kombinovat s dalšími senzory - např. s GPS.

Pro závody FS Online jsme se rozhodli nasadit LiDAR. Alternativou bylo použít mono kamery, ale zde byl právě zmíněný problém s nemožností získat 3D polohy kuželů. Rozhodnutí použít LiDAR byl risk, jelikož v té době jsme s LiDARem teprve začínali a neměli jsme pro něj vyvinuté žádné algoritmy. Zde se hned také ukázal první problém - virtuální LiDAR nedokázal poskytovat informace o intenzitě. Intenzita je jednoduše řečeno energie s jakou se daný paprsek odrazil od objektu. Jelikož každá barva pohlcuje jiné množství světla, odražený paprsek bude mít v závislosti na barvě objektu jinou intenzitu, což se dá v případě kuželů použit pro určení barvy.

Barva kužele je velice užitečná, protože výrazně usnadňuje práci algoritmu, který plánuje optimální trasu. Ten totiž musí správně poznat, jestli daná trasa skutečně vede uvnitř a ne vně trati. Díky tomu, že žluté kužely jsou vždy napravo a modré nalevo, je planování o to jednoduší. I bez informace o barvě se ale podařilo navrhnout nový plánovací algoritmus, který nepotřeboval barvy kuželů znát.

Zároveň bylo také třeba navrhnout algoritmy pro detekci kuželů v mraku bodů. Kužely jsou relativně malé objekty a proto jsou v mraku bodů většinou reprezentované jen jako malé množství bodů. Typicky se odrazí i třeba pouze 5 bodů od jednoho kuželu. Pro detekci byly použity robustní algoritmy, které kombinovaly filtrování nezajímavých bodů a shlukování bodů, které patřily jednomu kuželu. Výsledkem byl relativně rychlý algoritmus, který dokázal spolehlivě detekovat kužely na trati.

Na závěr byl také použit mapovací algoritmus speciálně vyvinutý pro soutěž FS Online, který pomocí dat z IMU a LiDARu dokázal postavit mapu dané trati. To opět pomohlo plánovacím a řídícím algoritmům, které při znalosti celé mapy mohly počítat optimálnější trasy.

Průběh

S velkým spánkovým deficitem se nám den před závody podařilo dostat náš systém do funkčního stavu. Teď bylo na čase zjistit, jestli naše usilovná práce k něčemu byla.

Samotné závody se uskutečnily během tří dnů. Každý den jsme čelili nové trati jejíž obtížnost postupně narůstala. Pravidla umožnovala dělat modifikace i během závodů, a tak každý den po tom, co naše formule skončila závod jsme pokračovali na vylepšování až do rána dalšího dne, kdy bylo třeba nahrát finální kód pro daný den.

Po několika problémech během prvních dvou dnů, kdy se nám bohužel kvůli chybě v softwaru nepodařilo odjet celou trať, se nám poslední den do třetice všeho dobrého jako jedinému týmu povedlo odjet celou trať a dokončit závod!

Formula Student Online pro nás byl jasný úspěch, jelikož se jednalo o vůbec první závod pro náš autonomní tým a i přes určité problémy během prvních dvou dnů jsme dokázali, že naše formule je schopná (i když virtuálně) autonomně projet neznámou tratí jen na základě vstupu ze sensorů a našich chytrých algoritmů. Tyto závody nám také ukázaly, jak užitečný může LiDAR být, a daly nám základ pro další rozvoj a začlenění LiDARu do našeho autonomního systému.

Simulátor vytvořený pro FS Online se ukázal užitečný i potom, co závody skončily, pro další rozvoj naší formule. Můžeme na něm jednoduše testovat rozpoznávání kuželů z kamer a LiDARu, řídicí a plánovací algoritmy i mnohé další.