V roce 2012 americká agentura DAR PA vyhlásila soutěž, která měla zachránit životy. Vyhlásila otevřenou soutěž pro roboty, kteří by si troufli napodobit lidského hasiče. Na pohled před sebou neměli roboti nic složitého: měli nastoupit do auta, ujít dohromady několik desítek metrů, otevřít dveře, použít několik jednoduchých nástrojů. Výsledek organizátory ani účastníky příliš nepotěšil, spokojeni asi nakonec byli pouze internetoví vtipálci. Roboti selhávali i na těch nejjednodušších úkolech; padali k zemi při nastupování do připraveného vozu, ve chvíli, kdy měli otevřít dveře, a při řadě dalších úkolů, které by pro člověka nepředstavovaly žádný problém. Motorika robotů je prostě v porovnání s „živými stroji“ nesrovnatelně horší a i v jednoduchých situacích zcela nedostatečná. Rozdíl odhalí ostatně už první pohled na robota v pohybu. Chůze všech dosavadních exemplářů je statická: robot se tedy pohybuje pouze tak, aby byl v každém okamžiku plně stabilní. Lidé a všichni ostatní živí tvorové se pohybují dynamicky, jinak řečeno jejich „operační systém“ dokáže pracovat s občasnými nerovnovážnými stavy. To robotické stroje nikdy nedokázaly, a to především proto, že měly s trochou nadsázky řečeno špatné učitele. Co se v počítači naučíš… Vývoj softwaru pro koordinaci a pohyb strojů samozřejmě probíhal v různých týmech a na různých pracovištích jinak, ale zjednodušeně řečeno existovalo několik přístupů. Ten nejkonzervativnější říkal, že jde pouze o sekvenci příkazů, tedy v podstatě předem naprogramovat robotovi chůzi jako sérii pokynů (zapnout servo X, posunout díl Y o úhel Z atd.) Ovšem jak se brzy ukázalo, takový přístup je nesmírně náročný na přípravu a je naopak směšně jednoduché v něm udělat chybu. A především existuje skutečně nepřeberná řada situací, ve kterých se stane něco tak nečekaného, že software prostě nedokáže na vzniklou situaci reagovat. V čisté podobě se tento přístup brzy ukázal nerealizovatelným. Další možností je vytvořit „rámcový návod“, tedy naprogramovat numerický model. Nejedná se o přesnou řadu příkazů, ale algoritmus, který na základě stavu robota, jeho polohy a polohy jeho končetin volí konkrétní pohyby pro danou situaci. Sestrojení takového modelu se však také ukázalo z hlediska dnešní úrovně technologií příliš obtížným, a jak ukázala mimo jiné i na začátku zmíněná soutěž agentury DARPA, zatím nikdo v tomto ohledu neuspěl. Ovšem v zájmu vyváženosti bychom měli dodat, že problematice „kráčejících robotů“ se nevěnuje zase až tak veliká pozornost – i z jiných důvodů je trh pro ně stále omezený. Přesto se nyní řada odborníků domnívá, že se řešení podařilo najít, a to díky systémům založeným na tzv. hlubokých 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 Geijtenbeeka př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. Opravdu se projít V nitru počítače tedy chůzi dokážeme simulovat. Ovšem převod výsledku ze softwarového prostředí do praxe není vždy přímočarý. V realitě teoreticky dokonalé algoritmy narážejí 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 s kolegy 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ů. „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 už 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 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á a proč. Pro výzkumníky i průmysl něco takového může být problém. U běžných algoritmů je možné provést analýzu robustnosti řídicího systému, tedy určit, v jakých mezích se systém bude pohybovat. V případě neuronových sítí se tradiční analytické postupy využít nedají, a tak se tvůrci a uživatelé takových systémů musejí obejít bez „záruk“, na jaké jsou dnes zvyklí. /jj/