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

rapidly exploring random trees rrts
SMART_READER_LITE
LIVE PREVIEW

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 =


slide-1
SLIDE 1

Rapidly-Exploring Random Trees (RRTs)

These slides contain material aggregated/developed by Howie Choset and others

Robert Platt Northeastern University

slide-2
SLIDE 2

Basic RRT Algorithm (no goal)

qnear qnew qinit qrand

function RRT (qinit): T=qinit for i = 1 to K do: qrand = RANDOM_CONFIG(); T.EXTEND(qrand)

slide-3
SLIDE 3

qnear qnew qinit qrand

function RRT (qinit): T=qinit for i = 1 to K do: qrand = RANDOM_CONFIG(); T.EXTEND(qrand)

Basic RRT Algorithm (no goal)

slide-4
SLIDE 4

qnear qnew qinit qrand

STEP_LENGTH: How far to sample 1. Sample just at end point 2. Sample all along 3. Small Step Extend returns 1. Trapped, cant make it 2. Extended, steps toward node 3. Reached, connects to node

function RRT (qinit): T=qinit for i = 1 to K do: qrand = RANDOM_CONFIG(); T.EXTEND(qrand)

Basic RRT Algorithm (no goal)

slide-5
SLIDE 5

qnear qnew qinit qrand

STEP_LENGTH: How far to sample 1. Sample just at end point 2. Sample all along 3. Small Step Extend returns 1. Trapped, cant make it 2. Extended, steps toward node 3. Reached, connects to node

Basic RRT Algorithm

function RRT (qinit, qgoal): T=qinit for i = 1 to K do: if rand01() < 0.1: qrand =qgoal else qrand = RANDOM_CONFIG(); T.EXTEND(qrand)

slide-6
SLIDE 6

RRT versus a naïve random tree

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 RRT Naïve random tree

slide-7
SLIDE 7

RRTs and Bias toward large Voronoi regions

http://msl.cs.uiuc.edu/rrt/gallery.html

slide-8
SLIDE 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

slide-9
SLIDE 9

9

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

RRT probabilistic completeness

Notice that this is exactly the same theorem as given for PRMs...

slide-10
SLIDE 10

RRT-Connect

qinit qgoal qnew qtarget qnear

slide-11
SLIDE 11

qinit qgoal A single RRT-Connect iteration...

slide-12
SLIDE 12

qinit qgoal 1) One tree grown using random target

slide-13
SLIDE 13

qinit qgoal qtarget 2) New node becomes target for other tree

slide-14
SLIDE 14

qinit qgoal qtarget qnear 3) Calculate node “nearest” to target

slide-15
SLIDE 15

qinit qgoal qnew qtarget qnear 4) Try to add new collision-free branch

slide-16
SLIDE 16

qinit qgoal qnew qtarget qnear 5) If successful, keep extending branch

slide-17
SLIDE 17

qinit qgoal qnew qtarget qnear 5) If successful, keep extending branch

slide-18
SLIDE 18

qinit qgoal qnew qtarget qnear 5) If successful, keep extending branch

slide-19
SLIDE 19

qinit qgoal qnear 6) Path found if branch reaches target

slide-20
SLIDE 20

qinit qgoal 7) Return path connecting start and goal

slide-21
SLIDE 21

Basic RRT-Connect

function RRT_CONNECT (qinit, qgoal): Ta =qinit; Tb=qgoal; for i = 1 to K do qrand = RANDOM_CONFIG(); if (Ta.EXTEND(qrand) = extended) then if (Tb.EXTEND(qnew) = reached) then Return PATH(Ta, Tb); SWAP(Ta, Tb);

slide-22
SLIDE 22

Basic RRT-Connect

function RRT_CONNECT (qinit, qgoal): Ta =qinit; Tb=qgoal; for i = 1 to K do qrand = RANDOM_CONFIG(); if (Ta.EXTEND(qrand) = extended) then if (Tb.EXTEND(qnew) = reached) then Return PATH(Ta, Tb); SWAP(Ta, Tb);

Instead of switching, use Ta as smaller tree.

Successfully added a node to tree Successfully connected T_b to q_new

slide-23
SLIDE 23

23

Smoothing the path

slide-24
SLIDE 24

24

Smoothing the path

slide-25
SLIDE 25

25

Smoothing the path

slide-26
SLIDE 26

26

Smoothing the path

slide-27
SLIDE 27

27

Smoothing the path

slide-28
SLIDE 28

28

Smoothing the path

slide-29
SLIDE 29

29

Smoothing the path

slide-30
SLIDE 30

30

Smoothing the path

slide-31
SLIDE 31

31

Smoothing the path

slide-32
SLIDE 32

32

Smoothing the path

slide-33
SLIDE 33

33

Smoothing the path

slide-34
SLIDE 34

34

Smoothing the path

slide-35
SLIDE 35

35

Smoothing the path

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

slide-36
SLIDE 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)

slide-37
SLIDE 37

Kinodynamic planning with RRTs

But, what if x_{near} isn't the right node to expand ???

slide-38
SLIDE 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
slide-39
SLIDE 39

Articulated Robot

slide-40
SLIDE 40

Highly Articulated Robot

slide-41
SLIDE 41

Hovercraft with 2 Thusters

slide-42
SLIDE 42

Out of This World Demo

slide-43
SLIDE 43

Left-turn only forward car

slide-44
SLIDE 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