rapidly exploring random trees rrts
play

Rapidly-Exploring Random Trees (RRTs) Robert Platt Northeastern - PowerPoint PPT Presentation

Rapidly-Exploring Random Trees (RRTs) Robert Platt Northeastern University These slides contain material aggregated/developed by Howie Choset and others Basic RRT Algorithm (no goal) function RRT ( q init ): T=q init for i = 1 to K do: q rand =


  1. Rapidly-Exploring Random Trees (RRTs) Robert Platt Northeastern University These slides contain material aggregated/developed by Howie Choset and others

  2. Basic RRT Algorithm (no goal) function RRT ( q init ): T=q init for i = 1 to K do: q rand = RANDOM_CONFIG(); T.EXTEND( q rand ) q new q rand q near q init

  3. Basic RRT Algorithm (no goal) function RRT ( q init ): T=q init for i = 1 to K do: q rand = RANDOM_CONFIG(); T.EXTEND( q rand ) q new q rand q near q init

  4. Basic RRT Algorithm (no goal) STEP_LENGTH: How far to sample function RRT ( q init ): 1. Sample just at end point 2. Sample all along T=q init 3. Small Step for i = 1 to K do: q rand = RANDOM_CONFIG(); Extend returns 1. Trapped, cant make it T.EXTEND( q rand ) 2. Extended, steps toward node 3. Reached, connects to node q new q rand q near q init

  5. Basic RRT Algorithm function RRT ( q init, q goal ): STEP_LENGTH: How far to sample T=q init 1. Sample just at end point for i = 1 to K do: 2. Sample all along if rand01() < 0.1: 3. Small Step q rand = q goal Extend returns else 1. Trapped, cant make it q rand = RANDOM_CONFIG(); 2. Extended, steps toward node 3. Reached, connects to node T.EXTEND( q rand ) q new q rand q near q init

  6. RRT versus a naïve random tree Naïve random tree RRT Growing the naïve random tree: 1. pick a node at random 2. sample a new node near it 3. grow tree from random node to new node

  7. RRTs and Bias toward large Voronoi regions http://msl.cs.uiuc.edu/rrt/gallery.html

  8. Biases ● Bias toward larger spaces ● Bias toward goal  When generating a random sample, with some probability pick the goal instead of a random node when expanding  This introduces another parameter  5-10% is probably the right choice

  9. RRT probabilistic completeness Theorem (LaValle and Kuffner, 2001): If a path planning problem is feasible, then there exist constants n_0 and a>0, such that: where n >n_0 is the number of samples Notice that this is exactly the same theorem as given for PRMs... 9

  10. RRT-Connect q new q target q goal q near q init

  11. A single RRT-Connect iteration... q goal q init

  12. 1) One tree grown using random target q goal q init

  13. 2) New node becomes target for other tree q target q goal q init

  14. 3) Calculate node “nearest” to target q target q goal q near q init

  15. 4) Try to add new collision-free branch q new q target q goal q near q init

  16. 5) If successful, keep extending branch q new q target q goal q near q init

  17. 5) If successful, keep extending branch q new q target q goal q near q init

  18. 5) If successful, keep extending branch q new q target q goal q near q init

  19. 6) Path found if branch reaches target q goal q near q init

  20. 7) Return path connecting start and goal q goal q init

  21. Basic RRT-Connect function RRT_CONNECT ( q init, q goal ): T a =q init ; T b =q goal ; for i = 1 to K do q rand = RANDOM_CONFIG(); if ( T a . EXTEND( q rand ) = extended) then if ( T b . EXTEND( q new ) = reached) then Return PATH( T a, T b ); SWAP( T a, T b );

  22. Basic RRT-Connect function RRT_CONNECT ( q init, q goal ): Successfully added T a =q init ; T b =q goal ; a node to tree for i = 1 to K do q rand = RANDOM_CONFIG(); if ( T a . EXTEND( q rand ) = extended) then if ( T b . EXTEND( q new ) = reached) then Return PATH( T a, T b ); SWAP( T a, T b ); Successfully connected T_b to q_new Instead of switching, use T a as smaller tree.

  23. Smoothing the path 23

  24. Smoothing the path 24

  25. Smoothing the path 25

  26. Smoothing the path 26

  27. Smoothing the path 27

  28. Smoothing the path 28

  29. Smoothing the path 29

  30. Smoothing the path 30

  31. Smoothing the path 31

  32. Smoothing the path 32

  33. Smoothing the path 33

  34. Smoothing the path 34

  35. Smoothing the path Notice that it wasn't the shortest path... – we're just smoothing, not optimizing 35

  36. Kinodynamic planning with RRTs So far, we have assumed that the system has no dynamics – the system can instantaneously move in any direction in c-space – but what if that's not true? Consider the Dubins car: – c-space: x-y position and velocity, angle – control forward velocity and steering angle – plan a path through c-space with the corresponding control signals where: x_t – state (x/y position and velocity, steering angle) u_t – control signal (forward velocity, steering angle)

  37. Kinodynamic planning with RRTs But, what if x_{near} isn't the right node to expand ???

  38. So, what do they do? ● Use nearest neighbor anyway ● As long as heuristic is not bad, it helps (you have already given up completeness and optimality, so what the heck?) ● Nearest neighbor calculations begin to dominate the collision avoidance ● Remember K-D trees

  39. Articulated Robot

  40. Highly Articulated Robot

  41. Hovercraft with 2 Thusters

  42. Out of This World Demo

  43. Left-turn only forward car

  44. Applications of RRTs Robotics Applications Robotics Applications mobile robotics mobile robotics manipulation manipulation humanoids humanoids Other Applications Other Applications biology (drug design) biology (drug design) manufacturing and virtual prototyping (assembly analysis) manufacturing and virtual prototyping (assembly analysis) verification and validation verification and validation computer animation and real-time graphics computer animation and real-time graphics aerospace aerospace RRT extensions RRT extensions discrete planning (STRIPS and Rubik's cube) discrete planning (STRIPS and Rubik's cube) real-time RRTs real-time RRTs anytime RRTs anytime RRTs dynamic domain RRTs dynamic domain RRTs deterministic RRTs deterministic RRTs parallel RRTs parallel RRTs hybrid RRTs hybrid RRTs

Recommend


More recommend