Motion planning with complete knowledge using a colored SOM Jules Vleugels, Joost N. Kok, & Mark Overmars Presentatie: Richard Jacobs Overzicht • Globale beschrijving • Meer gedetailleerde beschrijving • Samenvatting Globale beschrijving • Robot moet van beginconfiguratie naar doelconfiguratie zonder botsingen • Kohonen netwerk: zelf-organiserende roadmap • Verkregen roadmap wordt doorzocht voor oplossing Voorbeeld motion planning probleem Dimensies • 2D/3D-workspace • Translatie en rotatie Tot nu toe: • Cel-decompositie en roadmap-methodes – gebruiken grote datastructuren, met dure berekeningen • Potentiaalveldmethoden – Lokale minima, oplossingen vaak traag Nu: • Gebruik van Kohonen Netwerk in combinatie met deterministische technieken Idee: • Laat netwerk een roadmap maken • Benader Voronoi diagram Netwerk - algemeen • Krijgt input, produceert output • Afwijking van gewenste output • Pas gewichten zodanig aan dat fout kleiner wordt Netwerk - hier • • • • Knooppunten zijn configuraties robot Input: configuraties van robot + label Leren: verschuiving knooppunten Doel: benader Voronoi-diagram en object boundaries Geen neuraal netwerk • Geen output • Geen processing van informatie Voorbeeld netwerk Netwerk • Driehoeken • 1 knooppunt per hoek • Initieel uniforme verdeling van knooppunten over gebied met wat random variatie • Elk knooppunt is safe of unsafe Leren netwerk • • • • Herhaalde leerstappen In: configuratie + label – “safe” of “unsafe” Bepaling best-matching unit (bmu) Onveilige bmu’s naar veilige confgs. toegetrokken (tot grens) • Veilige bmu’s van onveilige configs. weggetrokken (Voronoi...) – Verplaatsing omgekeerd evenredig aan afstand tot bmu – Aantrekkende kracht van safe neighbors Toevoegen knooppunten • Lokaal vergroten precisie netwerk – Error-based – Scene-based Toevoegen knooppunten Error-based • Error per knooppunt bijhouden • Error is sommatie over verschuivingen van knooppunt • Hoge error: veel beweging: veel ruimte rond knooppunt Error-based strategie • Iedere k leerstappen knooppunt bepalen met hoogste error-waarde • Onveilig knooppunt – verste veilige buur bepalen – Voeg knooppunt toe halverwege edge (als unsafe) • Veilig knooppunt – Op lange edges – Enkel tussen veilige knp. met 2 gezamenlijke unsafe neighbours Voorbeeld unsafe node Voorbeeld safe node Scene-based adding • Als veilig knooppunt in verboden configuratieruimte getrokken wordt: onveilig knooppunt toevoegen op deze configuratie. Overtollige edges verwijderen • Edges tussen unsafe knooppunten binnen een obstakel worden verwijderd – Geen common safe neighbor – Geisoleerde knooppunten verwijderen 2e fase • Beweeg elke unsafe node (op object boundary) tussen zijn veilige buren • Als deze configuratie veilig is: extra punt op Voronoi diagram • Einde leerfase Planning a motion • Zoeken opeenvolging knooppunten tussen start en goal zonder botsingen • Opeenvolgende knopen gevonden met A*algoritme • Check voor elk paar knooppunten of de robot daadwerkelijk van de ene naar de andere kan • Artikel gebruikt lineaire interpolatie Stopcriterium • Wanneer heeft netwerk voldoende geleerd? • Om de k leerstappen proberen of een pad gevonden kan worden: zoniet, dan doorgaan Samenvatting • Initialiseer netwerk • Herhaal oneindig – Genereer random input – Pas posities bmu’s aan – Om de zoveel keren • Toevoegen knooppunten • Verwijderen overtollige edges – Om de zoveel keren • Unsafe nodes naar free space • Probeer pad te vinden • Evt. herstellen unsafe nodes en doorgaan Extra dimensie • Rotatie • Wrap-around • Afstand afhankelijk van vorm van robot Conclusie • Methode geschikt voor problemen die anders te veel rekentijd kosten • Kan problemen aan die moeilijk zijn voor traditionele methoden • Beter dan random configuraties uitproberen??