20.08.2013 Views

Path planning in mobile robotics (PDF, 1.7Mb, 48 σελίδες) - Εθνικό ...

Path planning in mobile robotics (PDF, 1.7Mb, 48 σελίδες) - Εθνικό ...

Path planning in mobile robotics (PDF, 1.7Mb, 48 σελίδες) - Εθνικό ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Ε.Μ.Π., ΣΗΜΜΥ, Ακαδημαϊκό Έτος 2010-11, 8ο Εξάμηνο<br />

Μάθημα: Ρομποτική ΙΙ. Διδάσκων: Κ.Τζαφέστας<br />

ΕΝΟΤΗΤΑ 2:<br />

Αυτόνομα Ευφυή Κινούμενα<br />

Ρομποτικά Συστήματα<br />

Σχεδιασμός Δρόμου – Πλοήγηση<br />

(path-<strong>plann<strong>in</strong>g</strong>, navigation)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Αυτόνομα Ευφυή Κινούμενα Ρομπότ<br />

– Περιεχόμενα Ενότητας<br />

• Μηχανισμοί Κίνησης στο χώρο (locomotion)<br />

• Αισθητήριες Διατάξεις (sens<strong>in</strong>g)<br />

– Proprioception (<strong>in</strong>ternal state ) / Exteroception etc.<br />

– Σύνθεση αισθητηρίων πληροφοριών (sensor fusion)<br />

• Αρχιτεκτονικές ελέγχου<br />

(<strong>mobile</strong> robot control architectures)<br />

• Αυτοεντοπισμός θέσης / Χαρτογράφηση<br />

(self-localisation / map-build<strong>in</strong>g)<br />

• Σχεδιασμός Δρόμου - Πλοήγηση<br />

(path <strong>plann<strong>in</strong>g</strong> / navigation)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

perception<br />

action<br />

1<br />

motion<br />

control<br />

sens<strong>in</strong>g<br />

reason<strong>in</strong>g<br />

2


Βασικό Σχήμα Αρχιτεκτονικής Ελέγχου<br />

Αντίληψη<br />

(Perception)<br />

Αίσθηση<br />

(sens<strong>in</strong>g)<br />

Μοντελοποίηση<br />

(Model)<br />

Σχεδιασμός Δράσης<br />

(Plan)<br />

Περιβάλλον<br />

(environment)<br />

Εκτέλεση εργασίας<br />

(Execute)<br />

Έλεγχος<br />

(Motor Control)<br />

Δράση<br />

(action)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Σχεδιασμός Κίνησης / Δρόμου<br />

(motion / path <strong>plann<strong>in</strong>g</strong>)<br />

Motion / <strong>Path</strong> Planner<br />

Ενδιάμεσοι στόχοι<br />

Trajectory Generator<br />

Controller<br />

Ομαλή τροχιά<br />

Motors / sensors / hardware<br />

Σήματα ελέγχου (to jo<strong>in</strong>t controllers/drivers)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

3<br />

4


Σχεδιασμός Κίνησης: Το βασικό πρόβλημα<br />

Πρόβλημα: Αρχική θέση (διάταξη) C 0 Τελική θέση C f<br />

Σχεδιασμός δρόμου: εύρεση «βέλτιστης» ακολουθίας ενδιάμεσων θέσεων C i<br />

Σχεδιασμός τροχιάς: υπολογισμός «ομαλής» τροχιάς ...<br />

C 0<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Αλγόριθμοι Σχεδιασμού Δρόμου<br />

Αλγόρθμοι σχεδιασμού δρόμου: υποθέσεις / απαιτήσεις<br />

• Παράσταση/μοντελοποίηση περιβάλλοντος & ρομπότ<br />

• Εγκυρότητα λύσεων (soundness)<br />

• Πληρότητα αλγορίθμων (completeness)<br />

• «Βέλτιστες» λύσεις (optimality)<br />

• Πολυπλοκότητα αλγορίθμων (space/time complexity)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

C f<br />

5<br />

6


Παράσταση Χώρου Κίνησης (1)<br />

Mobile Robot Workspace Obstacles | Free-space<br />

1. Spatial Decomposition<br />

Grid-based representations (occupancy grids)<br />

Sample environment Uniform decomposition<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Παράσταση Χώρου Κίνησης (2)<br />

1. Spatial Decomposition (occupancy grids) (συνέχεια)<br />

Quadtree (or octree) representations<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

7<br />

8


Παράσταση Χώρου Κίνησης (3)<br />

1. Spatial Decomposition (occupancy grids) (συνέχεια)<br />

B<strong>in</strong>ary Space Partition<strong>in</strong>g trees (BSP) Exact Decomposition<br />

1<br />

2 3<br />

4<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Παράσταση Χώρου Κίνησης (4)<br />

2. Geometric Representations (Γεωμετρικά μοντέλα χώρου κίνησης)<br />

• 2D maps: po<strong>in</strong>ts, l<strong>in</strong>es, l<strong>in</strong>e segments, polynomials etc.<br />

(π.χ. παράσταση κάτοψης χώρου κίνησης: τοίχοι, πόρτες, διάδρομοι κλπ.)<br />

• 3D maps: po<strong>in</strong>ts, planar surfaces, polyhedra, ellipsoids etc.<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

2<br />

1<br />

3<br />

4<br />

Μετρικοί χάρτες<br />

(metric maps)<br />

9<br />

10


Παράσταση Χώρου Κίνησης (5)<br />

3. Topological Representations (Τοπολογικά μοντέλα χώρου κίνησης)<br />

Metric vs. Topological representations<br />

Metric: exact, analytical representations<br />

Topological: graph representations approximate (global) regions<br />

1 2 3<br />

[1] [2] [3]<br />

[4]<br />

5<br />

4<br />

1 2 3<br />

4<br />

Metric representation Topological representation<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Παράσταση του κινούμενου ρομπότ (1)<br />

Configuration Space (C-space) (Χώρος Διάταξης του Ρομπότ)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

[1]<br />

5<br />

[2]<br />

[4]<br />

[3]<br />

11<br />

12


Παράσταση του κινούμενου ρομπότ (2)<br />

Configuration Space (C-space) (συνέχεια)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Παράσταση του κινούμενου ρομπότ (3)<br />

Configuration Space (C-space) (συνέχεια)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

13<br />

14


Παράσταση του κινούμενου ρομπότ (4)<br />

Configuration Space (C-space) (συνέχεια)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Παράσταση του κινούμενου ρομπότ (5)<br />

Configuration Space (C-space) (συνέχεια)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

15<br />

16


Μεθοδολογίες Σχεδιασμού Δρόμου<br />

Σχεδιασμός δρόμου κινούμενων ρομπότ (robot path <strong>plann<strong>in</strong>g</strong>)<br />

• Μέθοδοι «οδικού χάρτη» (roadmap methods)<br />

Visibility graph, Voronoi diagrams, silhouettes,<br />

probabilistic roadmaps, etc.<br />

• Γράφοι συννεκτικότητας (connectivity graphs)<br />

Exact or Approximate cell decomposition<br />

• Μέθοδος Δυναμικών πεδίων (potential fields)<br />

Local collision avoidance / Global navigation functions<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Σχεδιασμός Δρόμου σε Διακριτό Χώρο<br />

Γενική Ρουτίνα Αναζήτησης σε Γράφο (graph search)<br />

1. Procedure GraphSearch(s, goal)<br />

2. OPEN = {s}; CLOSED = {};<br />

3. found=false;<br />

4. while (OPEN ≠∅) and (not found)<br />

5. Select a node n from OPEN;<br />

6. OPEN = OPEN –{n}; CLOSED = CLOSED ∪ {n}<br />

«Επισκέψιμοι κόμβοι»<br />

Εαν OPEN: ουρά (queue) breadth-first<br />

Εαν OPEN: στοίβα (stack) depth-first<br />

Εαν OPEN: ordered us<strong>in</strong>g an evaluation<br />

function f (n) best-first<br />

7. if n ∈ goal then<br />

8. found = true;<br />

9. else<br />

10. Let M the set of all nodes accessible from n and not <strong>in</strong> CLOSED<br />

11. OPEN = OPEN ∪ M ;<br />

12. end-if<br />

13. end-while<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

17<br />

18


Αλγόριθμος Dijkstra<br />

(S<strong>in</strong>gle-Source Shortest <strong>Path</strong>)<br />

Procedure Dijkstra(G, s)<br />

1. Initialize_S<strong>in</strong>gle_Source(G, s)<br />

2. OPEN = {s}; CLOSED = {};<br />

3. found=false;<br />

4. while (OPEN ≠∅) and (not found)<br />

5. Select a node: u Extract_M<strong>in</strong>(OPEN);<br />

6. OPEN = OPEN –{u}; CLOSED = CLOSED ∪ {u}<br />

7. if u ∈ goal then found = true;<br />

8. else<br />

9. for each node v ∈ Adjacency(u) and v ∉ CLOSED<br />

10. OPEN = OPEN ∪ v;<br />

11. Relax(u, v, w);<br />

12. end-if<br />

13. end-while<br />

Weights(G)<br />

(Υπόθεση: w≥0)<br />

Initialize_S<strong>in</strong>gle_Source(G, s)<br />

1. For each node v ∈ V(G)<br />

2. d[v] = ∞;<br />

3. π[v] = NULL;<br />

4. d[s] = 0;<br />

Relax(u, v, w)<br />

1. if d[u] + w(u, v) < d[v]<br />

2. d[v] = d[u] + w(u, v);<br />

3. π[v] = u;<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Αλγόριθμος Dijkstra –<br />

Παράδειγμα Εφαρμογής (1)<br />

Start with upper bound<br />

(d[u]: shortest-path distance to u)<br />

(π[v]: predecessor of v, <strong>in</strong><br />

shortest-path tree)<br />

Relax bounds at each step<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

19<br />

20


«Μέτωπο εξερεύνησης»<br />

αλγορίθμου Dijkstra<br />

Αλγόριθμος Dijkstra –<br />

Παράδειγμα Εφαρμογής (2)<br />

Αποτέλεσμα αλγορίθμου Dijkstra σε<br />

πρόβλημα με «παγίδα»<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Αλγόριθμος Α*<br />

(S<strong>in</strong>gle-Pair Shortest <strong>Path</strong>)<br />

1.<br />

Procedure A*(G, s, goal)<br />

Initialization: d[s]=0; f[s]=d[s]+h(s); π[s]=null;<br />

2.<br />

3.<br />

OPEN = {s}; CLOSED = {};<br />

while (OPEN ≠∅)<br />

f[.]: cost associated with each node<br />

d[.]: distance from start node s<br />

h(.): heuristic estimated distance to goal<br />

4. Select a node: u Get_Best_Node(OPEN); /* m<strong>in</strong> f[u] */<br />

5. if (u == goal) then return true;<br />

6. for each node v ∈ Adjacency(u)<br />

7. new_f = d[u] + w(u, v) + h(v) ; Heuristic function h[.]:<br />

8. if (new_f < f[v]) then<br />

estimated distance to target<br />

9. d[v] = d[u] + w(u, v); f[v] = new_f; π[v] = u;<br />

10. Add v to OPEN;<br />

11.<br />

12.<br />

end-if<br />

end-for<br />

π[v]: predecessor of v, <strong>in</strong><br />

shortest-path tree<br />

13. Remove u from OPEN ; Add u to CLOSED;<br />

14. end-while<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

21<br />

22


«Μέτωπο εξερεύνησης»<br />

αλγορίθμου αναζήτησης Α*<br />

Αλγόριθμος Α*<br />

Παράδειγμα Εφαρμογής<br />

Αποτέλεσμα αλγορίθμου Α* σε<br />

πρόβλημα με «παγίδα»<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Μεθοδολογίες «Οδικού Χάρτη»<br />

(roadmap path-<strong>plann<strong>in</strong>g</strong> methods) (1)<br />

1. Γράφος «ορατότητας» (visibility graph <strong>plann<strong>in</strong>g</strong>):<br />

G = (V,E), V: κορυφές εμποδίων (vertices), Ε: ακμές που<br />

συνδέουν «ορατές» μεταξύ τους κορυφές (edges)<br />

start<br />

s<br />

goal<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

23<br />

24


Μεθοδολογίες «Οδικού Χάρτη»<br />

(roadmap path-<strong>plann<strong>in</strong>g</strong> methods) (2)<br />

2. Διάγραμμα Voronoi (Voronoi diagrams):<br />

γεωμετρικός τόπος σημείων που απέχουν εξίσου (equidistant)<br />

από τα πλησιέστερα δύο εμπόδια του χώρου<br />

V 1<br />

V 5<br />

E 5<br />

E 4<br />

E7<br />

E 1<br />

V 4<br />

V 7<br />

V 2<br />

E 3<br />

E 6<br />

E 2<br />

V 6<br />

V 3<br />

Vor(C free ): maximizes “clearance”<br />

straight-l<strong>in</strong>es: {configurations} closest<br />

to a pair of edges, or vertices, i.e.<br />

(edge,edge) or (vertex,vertex)<br />

(διχοτόμος) (μεσοκάθετος)<br />

parabolic arc: {configurations} closest<br />

to a pair (edge, vertex)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Μεθοδολογίες «Οδικού Χάρτη» (3):<br />

Πιθανοτικές Μέθοδοι<br />

Πιθανοτικοί Οδικοί Χάρτες<br />

(Probabilistic Roadmaps – PRM)<br />

Πιθανοτικές Μέθοδοι<br />

Μέθοδοι «δειγματοληψίας»<br />

Rapidly explor<strong>in</strong>g Random Trees<br />

(RRT)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

25<br />

26


Πιθανοτικοί «Οδικοί Χάρτες» (1)<br />

(Probabilistic Roadmaps – PRM)<br />

3. «Πιθανοτικοί» οδικοί χάρτες δειγματοληψία χώρου<br />

Α* αναζήτηση<br />

Έλεγχος συμβατότητας<br />

Αρχική θέση Στόχος Δειγματοληψία χώρου κίνησης<br />

Κατασκευή Γράφου<br />

Βέλτιστη Διαδρομή<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Πιθανοτικοί «Οδικοί Χάρτες» (2)<br />

(Probabilistic Roadmaps)<br />

Δειγματοληψία Χώρου<br />

(χώρος διατάξεων - configuration space)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

27<br />

28


Πιθανοτικοί «Οδικοί Χάρτες» (3)<br />

(Probabilistic Roadmaps)<br />

Δειγματοληψία Χώρου (Sampl<strong>in</strong>g_strategy)<br />

Δημιουργία τυχαίων σημείων στο χώρο ρομποτικών διατάξεων<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Πιθανοτικοί «Οδικοί Χάρτες» (4)<br />

(Probabilistic Roadmaps)<br />

Έλεγχος Συμβατότητας ( free configurations)<br />

Διατήρηση τυχαίων σημείων στον «ελεύθερο» χώρο διατάξεων<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

29<br />

30


Πιθανοτικοί «Οδικοί Χάρτες» (5)<br />

(Probabilistic Roadmaps)<br />

Διασύνδεση «γειτονικών» κόμβων<br />

(neighbour_strategy + verify_path)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Πιθανοτικοί «Οδικοί Χάρτες» (6)<br />

(Probabilistic Roadmaps)<br />

Αλγόριθμος κατασκευής πιθανοτικού γράφου PRM<br />

{V, E}<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

31<br />

32


Πιθανοτικοί «Οδικοί Χάρτες» (7)<br />

(Probabilistic Roadmaps)<br />

Γράφος στον «ελεύθερο» χώρο διατάξεων<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Πιθανοτικοί «Οδικοί Χάρτες» (8)<br />

(Probabilistic Roadmaps)<br />

Αναζήτηση βέλτιστης διαδρομής στο γράφο<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

33<br />

34


Σχεδιασμός Δρόμου με «Γράφους Συννεκτικότητας»<br />

(connectivity graphs) (1)<br />

1. Exact cell decomposition: Διάσπαση του χώρου C free σε ένα<br />

υποσύνολο από μη-επικαλυπτόμενες υποπεριοχές (cells), και<br />

δημιουργία του «γράφου συννεκτικότητας» (connectivity graph)<br />

start<br />

s<br />

1<br />

2<br />

10<br />

8<br />

9<br />

7<br />

3<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

6<br />

5<br />

13<br />

4<br />

12<br />

11<br />

goal<br />

Σχεδιασμός Δρόμου με «Γράφους Συννεκτικότητας»<br />

(connectivity graphs) (2)<br />

1. Exact cell decomposition (συνέχεια)<br />

start<br />

s<br />

1<br />

2<br />

10<br />

8<br />

9<br />

7<br />

3<br />

goal<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

6<br />

5<br />

13<br />

4<br />

12<br />

11<br />

35<br />

36


Μεθοδολογίες «Δυναμικών Πεδίων»<br />

(potential fields methods) (1)<br />

• «Τεχνητά δυναμικά πεδία» (artificial potential fields)<br />

Εμπόδια: “repulsive” potential field Urep (q)<br />

Στόχος: “attractive” potential field Uatt (q)<br />

• Ένα τεχνητό δυναμικό πεδίο πλοήγησης μπορεί:<br />

να αντανακλά την τοπική πληροφορία ύπαρξης εμποδίων<br />

στο χώρο κίνησης «τοπική αποφυγή εμποδίων»<br />

(Πρόβλημα: ύπαρξη τοπικών ελαχίστων – local m<strong>in</strong>ima)<br />

να αντανακλά τη συνολική εικόνα του ελεύθερου χώρου<br />

διατάξεων Cfree , μέσω μιας ιδανικής συνάρτησης πλοήγησης<br />

(navigation function) με ένα μόνο ολικό ελάχιστο στο στόχο.<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Μεθοδολογίες «Δυναμικών Πεδίων»<br />

(potential fields methods) (2)<br />

• Γενική δομή μεθοδολογίας δυναμικών πεδίων:<br />

F(q) = –∇U(q), και U(q) = U att (q) + U rep (q)<br />

Στόχος: “attractive” potential field U att (q)<br />

1<br />

2<br />

Uatt ( q) = ⋅Katt ⋅ρgoal(<br />

q)<br />

2<br />

όπου<br />

ρ ( q) = q−qgoal F ( q) =−∇ U ( q) =−K ⋅ρ ( q) ∇ ρ ( q) =−K ⋅ q−q και att att att goal goal att ( goal)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

37<br />

38


Μεθοδολογίες «Δυναμικών Πεδίων»<br />

(potential fields methods) (3)<br />

Εμπόδια: “repulsive” potential field<br />

όπου<br />

και<br />

ρ<br />

U<br />

rep<br />

n<br />

=∑<br />

k= 1<br />

obstk<br />

U ( q) U ( q)<br />

2<br />

⎧1 ⎛ 1 1 ⎞<br />

⎪ ⋅K ⋅⎜ − ⎟ , óταν ρ ( q)<br />

≤ρ0<br />

= ⎨ ⎝ ⎠<br />

⎪<br />

⎩ 0 , óταν ρk ( q)<br />

> ρ0<br />

rep k<br />

obst ( q) k 2 ρk( q)<br />

ρ0<br />

q = q−q′ k ( ) m<strong>in</strong><br />

q′∈<br />

obstk<br />

F ( q) =−∇U ( q)<br />

obstk obstk<br />

⎛ 1 1 ⎞ 1<br />

⇒ Fobst ( q) = K ( ), ( )<br />

k<br />

rep ⋅⎜ − ρ 2<br />

k ρkρ0 ρk( ) ρ<br />

⎟⋅<br />

⋅∇ q óταν q ≤<br />

⎝ q 0 ⎠ ρk(<br />

q)<br />

F rep<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

q<br />

U rep<br />

Μεθοδολογίες «Δυναμικών Πεδίων»<br />

(potential fields methods) (4)<br />

(a) (b) (c)<br />

U att(q)<br />

(d)<br />

U rep(q)<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

q<br />

39<br />

U(q) = U att+U rep<br />

40


Ρομποτικός Σχεδιασμός Δρόμου<br />

οδηγούμενος από «Δυναμικά Πεδία» (1)<br />

“Potential-guided” path <strong>plann<strong>in</strong>g</strong>: local collision avoidance<br />

Το ρομπότ μοντελοποιείται ως μια σημειακή μάζα στο χώρο<br />

κατάστασης, κινούμενη υπό την επίδραση του πεδίου δυνάμεων:<br />

F(q) = –∇U(q) on-l<strong>in</strong>e path generation<br />

a. Depth-First, without backtrack<strong>in</strong>g (σε κάθε βήμα i: qi qi+1 )<br />

a(qi) = F(qi)/||F(qi)|| και<br />

( <strong>in</strong>crement δi : no collision <strong>in</strong><br />

the segment qi qi+1 )<br />

qi+ 1 = qi + δi⋅ ai<br />

qi ∂U<br />

= qi + δi⋅<br />

∂qi<br />

qi<br />

(i) Steepest-descent of the potential function<br />

(ii) Problem of local-m<strong>in</strong>ima<br />

( ) ( )<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Ρομποτικός Σχεδιασμός Δρόμου<br />

οδηγούμενος από «Δυναμικά Πεδία» (2)<br />

“Reactive” collision avoidance based on artificial potential fields<br />

Παράδειγμα: Τοπική («ανακλαστική») αποφυγή εμποδίων<br />

Σύγκλιση σε στόχο με παράλληλη τοπική αποφυγή εμποδίων<br />

Πρόβλημα: πιθανή ύπαρξη τοπικών ελαχίστων<br />

local<br />

Σύγκλιση στο στόχο Αποφυγή εμποδίου Τοπικό ελάχιστο<br />

στόχος<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

goal<br />

41<br />

42


Ρομποτικός Σχεδιασμός Δρόμου<br />

οδηγούμενος από «Δυναμικά Πεδία» (3)<br />

b. (Greedy) Best-First με backtrack<strong>in</strong>g (GC: grid of configurations q i )<br />

Αναδρομική κατασκευή ενός δέντρου T, με κόμβους στο GC και το qstart ως «ρίζα».<br />

Σε κάθε βήμα, ο αλγόριθμος «επισκέπτεται» όλους τους p-γείτονες (p-connectivity,<br />

συνήθως p=4 ή p=8) του φύλλου του Τ με τη μικρότερη τιμή δυναμικού (best-first),<br />

και προσθέτει ως παιδιά τους κόμβους του GC που δεν ανήκουν ήδη στο Τ, και που<br />

το δυναμικό τους δεν ξεπερνά κάποιο ανώτατο κατώφλι ( εμπόδιο).<br />

Για κάθε κόμβο του Τ διατηρούμε και ένα δείκτη προς τον «πατέρα», με στόχο την<br />

ανακατασκευή της βέλτιστης διαδρομής, όταν φτάσουμε στο qgoal .<br />

Best-First με backtrack<strong>in</strong>g (επανιχνηλάτηση): Διακριτή προσέγγιση του steepestdecent<br />

(πλέον απότομης κατάβασης ή μέγιστης κλίσης), αλλά όταν φτάσουμε σε<br />

κάποιο τοπικό ελάχιστο ο αλγόριθμος «οπισθοδρομεί»(«πλημμυρίζοντας το<br />

πηγάδι» του τοπικού ελαχίστου) μέχρις ότου «ξεφύγει», συνεχίζοντας την<br />

αναζήτηση της βέλτιστης διαδρομής προς το στόχο.<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Ρομποτικός Σχεδιασμός Δρόμου<br />

οδηγούμενος από «Δυναμικά Πεδία» (4)<br />

b. Αλγόριθμος Best-First-Plann<strong>in</strong>g (συνέχεια)<br />

1. Procedure BFP;<br />

2. Install q<strong>in</strong>it <strong>in</strong> T; INSERT(q<strong>in</strong>it <strong>in</strong> OPEN); Mark q<strong>in</strong>it as visited;<br />

3. success=false;<br />

4. while (OPEN ≠∅) and (not success)<br />

5. (Select a node q from OPEN) ⇒ q = BEST(OPEN);<br />

6. For every neighbor q’of q <strong>in</strong> GC do<br />

7. if U( q’) < Max and q’not visited, then<br />

8. Install q’ <strong>in</strong> T; INSERT(q’, OPEN); Mark q’as visited;<br />

9. if q’= qgoal then success = true;<br />

10. end-if<br />

11. end-while<br />

12. if (success) then return the constructed path by trac<strong>in</strong>g back the po<strong>in</strong>ters<br />

<strong>in</strong> T from qgoal to q<strong>in</strong>it <strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

43<br />

44


Ρομποτικός Σχεδιασμός Δρόμου με<br />

«Συνάρτηση Πλοήγησης» (1)<br />

Κατασκευή Γενικής Συνάρτησης Πλοήγησης (global navigation<br />

function) με βάση αλγορίθμους “wavefront expansion”<br />

α. Κατασκευή «χάρτη απόστασης» (distance map) από το στόχο<br />

Global Distance Map: Global vs. Local <strong>Path</strong> Plann<strong>in</strong>g<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Ρομποτικός Σχεδιασμός Δρόμου με<br />

«Συνάρτηση Πλοήγησης» (2)<br />

Κατασκευή Συνάρτησης Πλοήγησης (global navigation function)<br />

με βάση αλγορίθμους “wavefront expansion” (συνέχεια)<br />

β. Κατασκευή «χάρτη απόστασης» (distance map) από εμπόδια<br />

8<br />

7<br />

6<br />

5<br />

4<br />

4<br />

4<br />

4<br />

4<br />

4<br />

4<br />

4<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

3<br />

3<br />

3<br />

3<br />

3<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

2<br />

2<br />

2<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

2<br />

2<br />

2<br />

2<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

3<br />

3<br />

3<br />

3<br />

3<br />

3<br />

4<br />

5<br />

8<br />

7<br />

6<br />

5<br />

4<br />

4<br />

4<br />

4<br />

4<br />

4<br />

4<br />

4<br />

4<br />

5<br />

Δημιουργία “skeletons”as roadmaps<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

45<br />

46


Ρομποτικός Σχεδιασμός Δρόμου με<br />

«Συνάρτηση Πλοήγησης» – Εφαρμογή<br />

«Human-Demonstration» of Desired Mobile Robot Trajectory<br />

(Tele-<strong>plann<strong>in</strong>g</strong>)<br />

Active Assistance Functions:<br />

collision avoidance / motion guides<br />

Animation–1<br />

Video Clip<br />

Pre-View<strong>in</strong>g / Playback<br />

Automatic Waypo<strong>in</strong>t<br />

Computation / Edit<strong>in</strong>g<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

Βιβλιογραφία<br />

• J-C. Latombe, Robot Motion Plann<strong>in</strong>g, Kluwer, 1991.<br />

• G. Dudek, M.Jenk<strong>in</strong>, Computational Pr<strong>in</strong>ciples of Mobile<br />

Robotics, Cambridge University Press, 2000.<br />

• H. Choset, K. M. Lynch, S. Hutch<strong>in</strong>son, G. Kantor, W. Burgard,<br />

L. E. Kavraki and S. Thrun, Pr<strong>in</strong>ciples of Robot Motion –<br />

Theory, Algorithms and Implementations, The MIT Press,<br />

Cambridge, Massachusetts, 2005<br />

<strong>Εθνικό</strong> Μετσόβιο Πολυτεχνείο, Σχολή ΗΜ&ΜΥ. Μάθημα: Ρομποτική ΙΙ (Κ. Τζαφέστας)<br />

47<br />

<strong>48</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!