1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels...

31
1 Motion Planning (simpel) Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor A van start naar doel waarbij A niet tegen obstakels in B opbotst. Een “robot” kan een voorwerp zijn, een robot-arm, een auto, etc. De beweging moet mogelijk (feasible) zijn voor de robot.

Transcript of 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels...

Page 1: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

1

Motion Planning (simpel)

• Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor A van start naar doel waarbij A niet tegen obstakels in B opbotst.

• Een “robot” kan een voorwerp zijn, een robot-arm, een auto, etc.

• De beweging moet mogelijk (feasible) zijn voor de robot.

Page 2: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

2

Configuratie

• De “positie” van de robot wordt beschreven door een aantal parameters. Dit wordt een configuratie genoemd.

• De parameters worden wel vrijheidsgraden genoemd.– Cirkel in het vlak: (x,y)– Solid in het vlak: (x,y,– Free-flying solid in de ruimte:

(x,y,z,yaw,pitch,roll)– Robot arm: aantal joints– Auto met aanhanger: (x,y,

(x,y)

(x,y)

Page 3: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

3

Configuratieruimte

• De ruimte C van alle configuraties voor de robot.

• Dimensie is het aantal vrijheidsgraden m

• De ruimte is niet Rm !– Speciale rol rotationele parameters– Lokaal wel– Je kunt hem voorstellen als een aantal

“kaarten”

Page 4: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

4

Workspace

• De ruimte W waarin de robot zich beweegt (R2 of R3).

• Voorbeelden:– Cirkel in vlak: W = R2, C = R2

– Solid in vlak: W = R2, C = R2x[0:360]– Solid in de ruimte: W = R3, C =

R3x[0:360]2x[0:180]– Robot arm: W = R3, C = [0:360]m

Page 5: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

5

Obstakels

• Een obstakel Bi in de workspace correspondeert met een obstakel

CBi = {q in C waarvoor A(q) Bi snijdt}

A(q) is de robot a in configuratie q

Page 6: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

6

Vrije ruimte

• Cforb = vereniging van alle Cbi

• Cfree = C – Cforb

• Vrije configuratie ruimte bestaat uit alle configuraties waarbij de robot geen obstakel snijdt.

Page 7: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

7

Voorbeeld voor translatie

Workspace

Configuration ruimte

Minkowski verschil

Page 8: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

8

Beweging

• Een beweging is eeen continue verandering van de configuratie, eventueel met tijd-informatie.

• Een beweging van de robot in de workspace is een pad in de configuratie ruimte.

• Een beweging is botsingsvrij als in Cfree ligt.

Page 9: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

9

Beweging

Page 10: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

10

Motion Planning

• Motion planning is dus in feit het vinden van een (kort) pad in the vrije ruimte.

• Problemen:– Dimensie configuratie is hoog– Vorm van vrije ruimte is complex

• Typisch O(nm) complexiteit• Hoge orde algebraische krommen

• Oplossingen– Als m klein is (2 of 3) dan is het te doen– Benader de ruimte– Probeer in de workspace te werken

Page 11: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

11

Oplossingsstrategieen

• Roadmap methodes– Bouw een netwerk (graaf) van goede

bewegingen

• Cell decompositie– Bereken een benadering van de vrije ruimte

• Locale methodes– Neem beslissingen op grond van locale

informatie– Potentiaalveld methode

Page 12: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

12

Roadmap methodes

• Een roadmap is een netwerk van wegen door de vrije ruimte.

• Na het berekenen hiervan vind men een pad door– Naar het netwerk te

gaan– Dit te volgen tot dichtbij

het doen– Naar het doel te gaan

s

g

Page 13: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

13

Roadmap methodes

• Visibility graph• Voronoi diagram• Probabilistic roadmaps• …

Page 14: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

14

Visibility Graph

• Bepaal alle raaklijnen aan 2 obstakels (in het vlak)

• Bepaal de raaklijnen vanuit start en goal aan de obstakels.

• Vindt het kortste pad in deze graph.– Is ook echt het kortste pad– Complexiteit is hoog– Generaliseert niet goed

Page 15: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

15

Visibility Graph

Page 16: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

16

Voronoi Diagram

• Een Voronoi diagram bestaat uit de posities met gelijke afstand tot 2 obstakels

Page 17: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

17

Retractie

Page 18: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

18

Probabilistic Roadmap Method

• Bouw de roadmap met behulp van random configuraties en random verbindingen

Page 19: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

19

Cell decompositie

• Bereken een verdeling van de vrije configuratie ruimte in eenvoudige (convexe cellen)

• Kies een configuratie in elke cell en in de plek waar paren cellen elkaar raken.

• Bouw hieruit een graaf.• Voor een query: bepaal de cellen van

start en doel, beweeg in die cellen naar het middelpunt en volg vervolgens de graaf.

Page 20: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

20

Cell decompositie

s

g

Exact of benadering (bijvoorbeeld met quad-boom)

Page 21: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

21

Local Methods

• Bepaal op grond van de huidige configuratie, de configuratie waar de robot naar toe moet, en obstakels in de buurt een goede richting.

• Beweeg een klein stapje in die richting en herhaal het proces.

• Probeer te vermijden dat je vast komt te zitten.

Page 22: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

22

Local Methods

• Potentiaal-veld methode: doel trek de robot aan, obstakels stoten de robot af.

Page 23: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

23

Uitbreidingen

• Meerdere bewegende objecten– Meerdere robots– Robot armen

• Kinematische beperkingen– Auto

• Onzekerheid– Compliant motion

• Beweegbare objecten– Manipulatie– Grasping

Page 24: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

24

Meerdere robots

• Beschouw als 1 robot systeem met nxm vrijheidsgraden en plan alle paden tegelijkertijd (centralized planning)

• Plan de paden apart en coordineer deze paden (decoupled planning)

• Gebruik exclusion zones en wijs deze aan robots toe

Page 25: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

25

Decoupled planning

• Men gebruikt een coordinatie diagram

Pad 1

Pad 2

Page 26: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

26

Robot armen

• Elke joint is een vrijheidsgraad.• Meestal beperkingen op de

hoek.• Probleem: voor eindpositie

alleen tool positie aangegeven– Gebruik inverse kinematics– Hoe kies je uit meerdere

oplossingen?

Page 27: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

27

Kinematische beperkingen

• Het aantal sturings parameters is kleiner dan het aantal vrijheidsgraden.

• In de configuratieruimte kan men niet op willekeurige wijze bewegen. Het pad moet aan bepaalde eisen voldoen.

• Voor een auto: -sin dx + cos dy = 0• Small-time locally controllable

– Als de afstand tussen start en doel in de configuratie ruimte naar 0 gaat gaat de lengte van het pad ook naar 0 (indien geen obstakels)

Page 28: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

28

Kinematische beperkingen

Page 29: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

29

Onzekerheid

• Robot voeren bewegingen niet precies uit.– Control probleem– Onzekerheid kan beperkt worden door

compliant motion

• De kennis over de omgeving is onvolledig– Combineer met sensing gegevens en gebruik

herplanning indien nodig.– Maak gebruik van grove benaderingen van

obstakels.

Page 30: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

30

Beweegbare objecten

• Om objecten te manipuleren moet eeh robot ze oppakken en verplaatsen.– We moeten de beweging voor de robot alleen

en voor de combinatie plannen.– Hoe pakken we het voorwerp beet (grasping).– Op welke plekken kunnen we het neerzetten.

• Om ruimte te maken is het some mogelijk voorwerpen tijdelijk te verplaatsen.

Page 31: 1 Motion Planning (simpel) •Gegeven een “robot” A in een ruimte W, een verzameling obstakels B, en een start en doel positie, bepaal een beweging voor.

31

AI en taskplanning

• De AI van een systeem bepaald de taken van de “robot”

• De taskplanning vertaald die taken in bepaalde gewenste locaties

• De motion planning bepaald de juiste beweging om bij die locaties te komen