Manipulation planning problem A General Manipulation Task Planner Marlies Mooijekind Overzicht Probleem definitie Oplossing m.b.v. probabilistic roadmap Verbetering: connected components Verbetering: visibility probabilistic roadmap Resultaten Conclusie Manipulation planning problem Definitie: motion planning van een robot die objecten manipuleert Oppakken Transporteren Loslaten Manipulation planning problem Movable object: Vastgehouden door robot met stabiele grasp Stabiele placement Placements: verzameling van stabiele placements Grasps: verzameling van stabiele grasps Continu: Placements = U Pk , k = 1,..,n Grasps = U Gi , i = 1,..,m Manipulation planning problem Twee soorten paden: Transit path: motions van robot terwijl object op stabiele placement blijft Transfer path: motions van robot terwijl het het object vasthoudt in stabiele grasp Oplossing is een Manipulation path: reeks van transit paths en transfer paths gescheiden door grasp/ungrasp operaties Algoritme Meeste algoritmen gebruiken discrete verzamelingen Grasps en Placements Nadelen: Gebruiker moet zelf initiële kennis geven Oplossing met probabilistic roadmap Genereert automatisch grasps + placements uit continue verzamelingen van Grasps en Placements Probabilistic roadmap CS = CSrobot x Csobject CSfree = alle configuraties van CS waar 2 stappen: bewegende objecten niet snijden Learning phase: genereer roadmap door random configuraties in CSfree te genereren en te verbinden Query phase: verbind qinit en qgoal met roadmap en vind een pad Learning phase Genereer random nieuwe configuratie Welke random configuratie? Verbind nieuwe configuratie met andere configuraties in roadmap m.b.v. local planner Welke local planner? Random configuratie Genereer random nieuwe configuratie waarin object stabiele placement heeft en stabiele grasp Kies random verzameling Pk uit Placements Genereer random placement p in Pk Kies random verzameling Gi uit Grasps Genereer random grasp g in Gi Random configuratie Controleer of nieuwe configuratie feasible is in virtual closed chain Random Loop Generator vergroot kans op feasibility bij virtual closed chains Local planner Local planner verbindt 2 configuraties q1 met (g1, p1) en q2 met (g2, p2) met elkaar als Transfer path van (g1, p1) naar (g1, p2) gevolgd door transit path van (g1, p2) naar (g2, p2) Transit path van (g1, p1) naar (g2, p1) gevolgd door transit path van (g2, p1) naar (g2, p2) Local planner is duur Maak gebruik van paden berekend tijdens preprocessing Local planner Transfer of transit path vinden: Genereer een roadmap zonder movable object Voeg movable object toe en label paden blocked die object in huidige positie snijden Local planner Verbind de 2 configuraties met labeled roadmap Zoek naar een pad in labeled roadmap Geen pad local planner faalt Pad zonder blocked edges local planner slaagt Pad met blocked edges vind pad tussen eindpunten van blocked edges met Rapid Random Tree Query phase Verbind qinit en qgoal met de roadmap uit de learning phase m.b.v. local planner Zoek naar een pad in roadmap Verbetering Local planner wordt vaak aangeroepen = duur Oplossing: Groepeer configuraties in componenten z.d.d. tussen 2 configuraties binnen hetzelfde component eraltijd een pad is Verbind componenten met elkaar door transit en transfer paths m.b.v. local planner Connected components Placements = U Pk , k = 1,..,n Grasps = U Gi , i = 1,..,m CPk = alle configuraties waar movable object op een placement p єPk CGi = alle configuraties met movable object in een grasp g єGi Componenten worden gevormd door doorsnede van CPk ∩ CGi voor elke k en i Connected components Voorbeeld: 4 componenten Connected components Learning phase: constructie roadmap Genereer connected components m.b.v. Random Loop Generator Verbind componenten door transit/transfer paths met elkaar m.b.v. local planner Query phase: Verbind qinit en qgoal met roadmap m.b.v. local planner Vind een pad en transformeer het pad Connected components Roadmap = Manipulation Graph Node = componenten Edge = transit/transfer path tussen 2 configuraties van verschillende componenten Planning in componenten en tussen componenten Connected components Gevonden pad bestaat uit transit/transfer paths en paden binnen componenten Pad binnen connected component transformeren naar transit/transfer paths Visibility PRM Roadmap is groot Visibility PRM Houd roadmap klein door toevoegen van nuttige configuraties Guards Connectors Voorbeeld 1 Cage Voorbeeld 2 MobM Voorbeeld 3 RoBr Resultaten Example Cage MobM RoBr Total Time 96 s 293 s 146 s CG CP 23 s 6s 1s Transit/transfer paths 70 s 284 s 143 s # nodes 32 45 10 # paths 12 14 6 Conclusie Manipulation path: transfer en transit paths (Visibility) Probabilistic roadmap Bereken connected components Random configuraties met stabiele placement en grasp (virtual closed chain) Verbind components door transfer en transit paths met local planner Problemen: Meerdere objecten Ingewikkelde workspace Vragen ?