Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

25
Robot Motion Robot Motion Planning Planning Bug 2 Bug 2 Probabilistic Roadmaps Probabilistic Roadmaps

Transcript of Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Page 1: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Robot Motion PlanningRobot Motion Planning

Bug 2Bug 2

Probabilistic RoadmapsProbabilistic Roadmaps

Bug 2Bug 2

Probabilistic RoadmapsProbabilistic Roadmaps

Page 2: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Bugs 2Bugs 2

qinit

qtargetM-line

Lj

Hj

New leave point condition: d<d(Hj,Target)

Page 3: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Bug 2 AlgorithmBug 2 Algorithm

1.1. From point LFrom point Lj-1j-1 move along M-line until: move along M-line until:

a.a. Target is reached. StopTarget is reached. Stop

b.b. An obstacle is hit at HAn obstacle is hit at H jj. Goto 2. Goto 2

2.2. Turn left and follow the boundary until:Turn left and follow the boundary until:a.a. Target is reached. StopTarget is reached. Stop

b.b. M-line met at distance M-line met at distance d d from target such from target such that:that:

d < dist(Hd < dist(Hjj,q,qtargettarget))

Define LDefine Ljj, set , set j=j+j=j+11, , and goto 1.and goto 1.

c.c. If we return to If we return to HHjj without meeting the M-line, without meeting the M-line, stop. The target is trapped.stop. The target is trapped.

Page 4: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

A Hard Example for Bug 2A Hard Example for Bug 2

Page 5: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Some resultsSome results• NNii = number of intersections of B Bii with with

M-lineM-line

• LemmaLemma: : in Bug2, any segment of the boundary is passed at most Ni times

• TheoremTheorem: the length of the path verifies

2

ii pnDP

Page 6: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Bug + Noncontact Bug + Noncontact SensorsSensors

• Suppose the robot is provided with info within a disk of radius r

• E.g.: vision, infra-red, ultrasonic

• The robot reconstructs at each point, the path that would generate with no info

• Result: smooth version of previous paths

Page 7: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Bug + Non Contact SensorBug + Non Contact Sensor

Page 8: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Probabilistic Roadmaps Probabilistic Roadmaps • Path planning algorithm are expensive

• If #DOFs’ is large, deterministic algorithms are not effective

• Solution: use a probabilistic roadmap planner (PRM).

• PRM are complete in a probabilistic sense

• An heuristic planner: potential fields. Disadvantage: local minima. Solution: randomize to escape local minima

Page 9: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

PRM: DescriptionPRM: Description

• Roadmap = undirect graph R = (N, E )

• N : (nodes) set of selected configurations in Cfree

• E : (edges) collection of simple paths. The Local Paths

• Local paths are computed by the fast but not powerful local planner

• Idea: connect qinit and qgoal with qinit’ and qgoal’ in N

• Search R for a path

Page 10: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Preprocessing PhasePreprocessing Phase

Three stagesThree stages

1.1. Roadmap constructionRoadmap construction. Objectives:. Objectives:

a)a) Obtain reasonable connected graphObtain reasonable connected graph

b)b) Be sure “difficult regions contain a few Be sure “difficult regions contain a few nodesnodes

2.2. Roadmap expansionRoadmap expansion. Objectives:. Objectives:

Improve graph connectivity by selecting nodes Improve graph connectivity by selecting nodes of of RR which lie in (heuristic) difficult regions which lie in (heuristic) difficult regions and adding nodes thereand adding nodes there

3.3. Roadmap Component reductionRoadmap Component reduction. Optional. . Optional. Attempts to simplify the graphAttempts to simplify the graph

Page 11: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Roadmap ConstructionRoadmap Construction• Initially R is empty

• Repeatedly, generate & add a free configuration to R

• For every new q, select some nodes in R and try to connect them to q using local planner

• On success, add the edge (q, q’ ) to E

: Cfree× Cfree {0,1} is a local function returned by local planner

D: pseudo metric in Cfree

Page 12: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Create random Create random configurationsconfigurations

Page 13: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Update Neighboring Update Neighboring Nodes’ EdgesNodes’ Edges

Page 14: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Connected nodes

End of Construction StepEnd of Construction Step

Page 15: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Expansion StepExpansion Step

Page 16: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

End of Expansion StepEnd of Expansion Step

Page 17: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Select start and goalSelect start and goal

Start Goal

Page 18: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Connect Start and Goal to Connect Start and Goal to RoadmapRoadmap

Start Goal

Page 19: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Find the Path from Start to Find the Path from Start to GoalGoal

Start Goal

Page 20: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Roadmap construction Roadmap construction algorithmalgorithm

1. Nø – E ø

2. Loop

3. q randomly selected free configuration

4. Nq a set of candidate neighbors of q from N

5. N = N {q}

6. q’ Nq in order of increasing D(q,q’ ), do

7. If q, q’ are not in the same connected comp. and (q,q’) =1, then E E {(q, q’ )}

8. Update R’s connected components

How?

Algorithm?

Meaning?

Select

Page 21: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Creation of Random Creation of Random ConfigurationsConfigurations

• Nodes of R = uniform random sampling of Cfree

• Obtain q by drqwing each of its coords. From allowed interval for the corresponding DOF

• Check q for collisions

• If q is collision-free, add it to N. Otherwise discard

Page 22: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

The Local PlannerThe Local Planner

• Deterministic vs. Non-deterministic planner

• Powerful planer = slower planner

• Empirical results: use deterministic and simple but very fast planner

• Example: connect two configurations by a straight line in configuration space

• Check for collisions by bisection

Page 23: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Node NeighborsNode Neighbors

• Choice of Nq is important. Local planner is used for all q’s in Nq

• Nq={q’ N / MaxDist D(q,q’)}

• Skip nodes in the same connected component

• Heuristics: bound the size of Nq by some K. This gives independence on the size of R

Page 24: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Distance FunctionDistance Function

• DD is used for constructing & sorting Nq

• Hopefully, D reflect the chance that the local planner will fail

• Simple selection that works in practice:

D(q,q’)=maxxRobot||x(q)-x(q’)||

Page 25: Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.

Roadmap ExpansionRoadmap Expansion• N should be a fair enough covering of Cfree

• R often consists of a few large components and several small ones

• Expansion = add nodes to form a large component with as many nodes as possible

• Try to cover the “difficult” parts of Cfree

• Define weight w(q). Large w q is in a difficult region

• Add M nodes to the collection