Jedním z obratnějších dvounohých robotů je Atlas od Boston Dynamics (2018):
V roce 2015 se utkali dvounozí roboti v soutěži DARPA. Diváci se mohli pobavit neobratností těchto špičkových strojů, které se snažily plnit úkoly šité na míru hasičům. Což je povolání, kde by se často hodilo nasadit robota, ale zatím jsou jejich možnosti v terénu omezené a zastaví je někdy i obyčejná klika.
Důvodů pro divnou chůzi robotů je více. „Pro dojem z chůze robota je důležité, jestli je chůze statická nebo dynamická,“ vysvětlil nám Jiří Zemánek, výzkumník z FEL ČVUT. „Statická chůze znamená, že je v každém okamžiku robot stabilní. Byla u humanoidních robotů asi známější, třeba u robota Asimo, a roboti při ní chodí, jako by měli v kalhotách. Lepší dojem udělá dynamická chůze, jako má Atlas, protože se podobá lidské chůzi.“
Hbitá a efektivní chůze je pro robota velmi náročná z mnoha důvodů. Lidé si obvykle neuvědomují, jak obtížné pro ně bylo naučit se chodit, kolik vjemů mozek vyhodnocuje a jak přesné musejí být pohyby, které zajišťují plynulou chůzi.
Lehce na cvičišti...
Jak se vůbec roboti učí chodit? Jedním ze způsobu je vytvořit sekvenci příkazů, tedy v podstatě předem naprogramovat robotovi chůzi jako sérii pokynů. Vývojář pak v takovém případě musí zkusit vyladit sekvenci příkazů: „0,32 sekund toč motorkem číslo osm po směru hodinových ručiček a zároveň motorkem číslo dva...“. Takový přístup je ale náročný, náchylný na chyby a hlavně nepříliš flexibilní.
Další možností je naprogramování numerického modelu. Programátor tedy nedělá robotovi neměnnou sekvenci příkazů, ale vytváří matematický model doplněný různými numerickými optimalizacemi. Na jeho základě pak robot vyhodnocuje svůj stav, polohu a podle daných pravidel volí konkrétní pohyby pro danou situaci.
Opačným směrem jdou systémy založené na neuronových sítích. Několik týmů ukázalo, že neuronová síť se umí postupně vytrénovat k tomu, aby metodou pokus omyl našla algoritmus chůze, který umí reagovat na vnější vlivy i překážky. V roce 2013 například tým Thomase Geijtenbeekapředstavil simulaci chůze po dvou nohách, ve které se každá generace „bytostí“ naučila něco z chyb té předchozí. A tak zatímco třeba sedmnáctá generace má problém udržet se na nohou o devět set generací později už se počítač naučí koordinovat pohyby a obstojně chodit. Je zajímavé sledovat, jak si neuronová síť postupně najde cestu k chůzi, která vypadá velmi podobně jako lidská.
Také Google, respektive firma Alphabet, která Google vlastní, ukázala ve svém výzkumu publikovaném roku 2017 možnosti využití strojového učení. Jednoduché modely (obvykle postavičky se dvěma nohama) se naučily pohybovat se v rozmanitém simulovaném prostředí jen na základě systému odměn.
Co to je neuronová síť a jak se učíUmělá neuronová síť do jisté míry napodobuje způsob, jakým informace zpracovává lidský mozek „Umělá inteligence“, tedy přesněji strojové učení, je specifický počítačový program (algoritmus), který není napsaný programátorem „od začátku do konce“. Nejedná se jen o sekvenci příkazů, ale o provázaný systém zpětných vazeb. Díky trénování se může taková neuronová síť naučit plnit i velmi komplexní úkon. Počítačem simulovaná struktura pro zpracování dat – tzv. neuronová síť nebo umělá neuronová síť – se inspirovala u anatomie lidského mozku. Skládá se obvykle z vrstev velkého množství „neuronů“, což je samostatná jednotka, která má vstupy a výstupy. Více takových neuronů a vrstev znamená síť náročnější na simulaci, čili je třeba velký výpočetní výkon. Neuronová síť se učí (trénuje) na základě vstupních (testovacích, trénovacích) dat a zpětné vazby. Neuronová síť může také „učit sama sebe“, což zjednodušeně znamená, že sama sobě dává otázku, na kterou zná správnou odpověď, a trénuje sama sebe tak dlouho, dokud tuto odpověď není schopna poskytnout s určitou spolehlivostí. O umělých neuronových sítích se v teoretické rovině diskutovalo už v roce 1943 (PDF). Brzy se ale zjistilo, že počítače ještě dlouho nebudou dostatečně výkonné na to, aby šlo tento koncept rozumně využít. Významný teoretický pokrok udělali vědci v 80. letech (PDF). Teprve ve 21. století, do značné míry díky paralelním výpočtům v grafických kartách, se výzkum rozhoupal. V posledních deseti letech pak neuronové sítě, a strojové učení obecně, zažívá nebývalý rozmach. Příkladem může být třeba neuronová síť učící se rozpoznávat obličeje, hrát poker, analyzovat rizika nebo překládat cizojazyčné texty. Mezi hlavní výhody patří schopnost neuronové sítě řešit velmi komplexní problémy a postupně se zlepšovat. Kritici poukazují na to, že u neuronové sítě je velmi složité říci, proč se rozhodla tak, jak se rozhodla. To přináší řadu etických problémů. |
V praxi to drhne
Simulovat chodící roboty v počítači tedy už není problém. Potíž ale bývá v převodu simulovaného systému do praxe. To, co fungovalo teoreticky, najednou v realitě naráží na limity a nedokonalosti, způsobené například pomalejší odezvou, třením, zpožděním senzorů nebo kontaktem s okolím.
„Vývojář tedy musí naprogramovat adekvátně komplexní model řízení, který je potřeba otestovat a vyladit. Trvá to obvykle několik měsíců a tyto testy a následné doladění je potřeba zopakovat pro každý jednotlivý manévr,“ popisuje obvyklý problém švýcarský tým Hwangbo et al. v časopise Science. Přišli s inovativním řešením, od kterého si slibují rychlejší vývoj, testování a nasazení chodících robotů.
Tým Jemina Hwangba vytrénoval na reálném robotovi aktuátorovou neuronovou síť, která se naučila, jaké zpoždění mají různé senzory a motorky.
„Náš systém využívá simulaci a strojové učení. Naše metoda v podstatě eliminuje problém, který obvykle nastává při převodu ze simulace do reality,“ píší vědci z ETH Zurich (Spolková vysoká technická škola v Curychu). „Doposud šlo strojové učení využít především v simulaci. V praxi se tyto systémy až na pár výjimek neosvědčily. Hlavním důvodem je, že trénování reálného robota je složité a drahé.“
Zato i běžný kancelářský počítač dokáže simulovat tisíce robotů, což samozřejmě učení výrazně urychluje. Švýcarští inženýři zajímavě zkombinovali simulaci, strojové učení a reálná měření. Nejprve vytvořili matematický model čtyřnohého robota. Poté nasbírali data o běhu motorků ze skutečného robota. Na těchto datech pak natrénovali neuronovou síť (vědci v práci mluví o aktuátorové síti). Natrénovanou síť pak nahráli do robota.
Tento postup vyzkoušeli na známém čtyřnohém robotovi ANYmal. „S využitím toho, co se robot naučil v simulaci, dosáhl čtyřnohý stroj mnohem lepších pohybových výsledků, než bylo možné s předchozími metodami,“ ukazují vývojáři.
Takto vycvičený robot robot se pohyboval lépe a rychleji než robot programovaný klasickými postupy. Ještě důležitější možná je, že byl nový algoritmus v podstatě stejně úspěšný v simulaci jako v realitě. To znamená, že natrénovaná aktuátorová síť eliminovala onu propast mezi simulací a realitou.
Nelze ale říci, že by se robot naučil chodit zcela sám. „Přestože náš přístup umožňuje téměř zcela automatizované vyladění chůze, stále je potřeba lidského zásahu,“ píší vědci v práci. „Pro každý úkon jsme museli navrhnout a vyladit systém odměn.“ Právě podle těchto odměn se neuronová síť „evolučně“ učí, co vede k cíli a co je naopak slepá ulička vývoje.
Pro odborníka, který dobře rozumí strojovému učení i robotice, je toto nastavení otázkou přibližně dvou dní, v případě komplikovanějších manévrů jako „zotavení se z pádu“ trvalo vyladění systému odměn i týden. To vše ale probíhalo v simulaci, což opět snižuje náklady na vývoj.
Roboti jako děti
Tato metoda by podle Hoda Lipsona, amerického vývojáře robotů, který práci okomentoval pro Nature, mohla znamenat důležitý přelom v tom, jak se roboti učí chodit. „Švýcarský tým ukázal, jak uzavřít propast mezi simulací a realitou tím, že klasické teorie řízení zkombinoval s postupy strojového učení. To ukazuje na významný posun v robotice.“
Podle Lipsona jde ale jen o první fázi. „Dalším krokem bude úplné vyřazení analytického modelu.“ Přestat vyučovat klasické teorie řízení je podle něj sice zatím předčasné, ale domnívá se, že budoucnost je zřejmá: „Budoucí vývojáři nebudou robotům říkat, jak mají chodit. Místo toho nechají roboty, aby se to naučili sami, s využitím dat, která roboti získají ve vlastních tělech.“
Pro vývojáře by to ale znamenalo vzdát se kontroly nad tím, jak se robot naučí chodit. Museli by to nechat na něm. Některým vývojářům takový postup připadá nebezpečný, protože to znamená svěřit vývoj nějaké černé skříňce, u které není zcela jasné, co přesně dělá, jak a proč. „Klasická teorie řízení umí k regulátorům udělat analýzu, v jakých mezích se systém bude chovat ještě dobře a jak moc je tedy řízení robustní,“ doplňuje Zemánek. „U neuronových sítí tohle jde těžko, protože se nedá garantovat, jak se bude systém chovat. U chodících robotů to tolik nevadí, ale třeba u autonomních vozidel je to trochu nepříjemné.“
Lipson je ale optimista a na roboty, kteří se budou učit bez předchozích instrukcí, se těší: „Pro mě je úžasné sledovat, jak se robot – podobně, jako dítě – učí chodit.“