280 likes | 388 Vues
This presentation details an innovative approach to motion planning utilizing a Kohonen Self-Organizing Map (SOM) to create a collision-free roadmap for robots. The method emphasizes the goal of transitioning from a start configuration to a target configuration without collisions, leveraging a colored SOM that intelligently organizes configurations. By combining deterministic techniques with the network’s adaptive learning capabilities, the method enhances precision and expands the configuration space, addressing challenges typical to traditional motion planning techniques.
E N D
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
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
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
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
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??