Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,380 --> 00:00:04,907
In the probabilistic roadmap procedure,
the basic idea was to construct
2
00:00:04,907 --> 00:00:09,880
a roadmap of the free space consisting of
random samples and edges between them.
3
00:00:09,880 --> 00:00:13,881
Once that had been constructed,
you could connect your desired start and
4
00:00:13,881 --> 00:00:18,300
endpoints to this graph and
plan a path from one end to the other.
5
00:00:18,300 --> 00:00:22,940
Note that the first phase constructs
a generic roadmap of the entire
6
00:00:22,940 --> 00:00:27,280
free space without considering any
particular pair of start and end points.
7
00:00:27,280 --> 00:00:31,180
The advantage of this approach is that
you can reuse the roadmap over and
8
00:00:31,180 --> 00:00:34,720
over again to answer
multiple planning problems.
9
00:00:34,720 --> 00:00:35,970
There are times though,
10
00:00:35,970 --> 00:00:40,060
when you're only interested in answering
one specific planning problem.
11
00:00:40,060 --> 00:00:41,710
And in those situations,
12
00:00:41,710 --> 00:00:45,650
it can be wasteful to construct roadmaps
that span the entire free space.
13
00:00:46,840 --> 00:00:51,620
In these situations, it may be better to
use procedures that explicitly consider
14
00:00:51,620 --> 00:00:54,560
the start and the goal locations
in the sampling procedure.
15
00:00:56,260 --> 00:00:59,390
In this section,
we will describe one such approach.
16
00:00:59,390 --> 00:01:02,560
The Rapidly Exploring Random Tree or
RRT Method.
17
00:01:03,800 --> 00:01:06,310
Like the probabilistic roadmap technique,
18
00:01:06,310 --> 00:01:10,260
this approach works by generating random
samples and connecting them together
19
00:01:10,260 --> 00:01:13,110
to form a graph, but
the sampling scheme is a bit different.
20
00:01:14,610 --> 00:01:20,390
The RRT procedure proceeds by constructing
a special kind of graph called a tree,
21
00:01:20,390 --> 00:01:23,510
where every node is connected
to a single parent and
22
00:01:23,510 --> 00:01:26,280
the tree is rooted at
a given starting location.
23
00:01:26,280 --> 00:01:30,810
The following animation shows how
the algorithm evolves to construct a tree
24
00:01:30,810 --> 00:01:33,840
in a two-dimensional configuration
space containing obstacles.
25
00:01:35,860 --> 00:01:40,050
Notice how the graph grows outward
organically from the start or
26
00:01:40,050 --> 00:01:42,049
seed location at the center of the figure.
27
00:01:43,800 --> 00:01:47,745
The basic tree construction algorithm
is outlined here in pseudocode.
28
00:01:49,730 --> 00:01:53,810
Just as in the PRM procedure,
the basic algorithm proceeds
29
00:01:53,810 --> 00:01:57,340
by sampling points at random and
connecting them to the current graph.
30
00:01:58,440 --> 00:02:01,370
The difference lies in the way
the construction is carried out.
31
00:02:02,770 --> 00:02:07,380
On every iteration, the system generates
a random point in the configurations base
32
00:02:07,380 --> 00:02:08,780
and checks if there's a free space.
33
00:02:09,900 --> 00:02:13,490
It then searches for
the closest point in the existing tree and
34
00:02:13,490 --> 00:02:18,110
tries to generate a new node in
the tree by moving in a straight line
35
00:02:18,110 --> 00:02:21,170
between the current vertex of the tree and
new random vertex.
36
00:02:22,270 --> 00:02:26,900
The distance that it tries to move,
delta is a parameter of the algorithm.
37
00:02:28,250 --> 00:02:32,000
Note that id the distance between
the random configuration and
38
00:02:32,000 --> 00:02:35,550
the closest existing node in
the tree is less than delta,
39
00:02:35,550 --> 00:02:39,400
the algorithm will try to directly
connect these two locations.
40
00:02:40,450 --> 00:02:42,830
These sequence of figures
shows the basic idea.
41
00:02:44,220 --> 00:02:46,310
The first slide shows the original tree.
42
00:02:47,700 --> 00:02:53,880
Here the red node depicts the new random
configuration that the system generates,
43
00:02:53,880 --> 00:02:57,070
while y depicts the closest
existing node in the tree.
44
00:02:59,410 --> 00:03:05,650
This next figure shows a new node z, which
is generated by finding a configuration
45
00:03:05,650 --> 00:03:10,350
that is distance delta away from
y along the line towards x.
46
00:03:12,460 --> 00:03:18,040
Finally, this slide shows the new state
of the tree after adding the node z.
47
00:03:20,920 --> 00:03:26,360
If the procedure does not succeed in this
process of stepping towards a random node,
48
00:03:26,360 --> 00:03:29,770
it's simply abandons a point and
moves on to the next iteration
49
00:03:29,770 --> 00:03:32,140
where it will generate a new
random sample and try again.
50
00:03:33,180 --> 00:03:34,736
Like the PRM algorithm,
51
00:03:34,736 --> 00:03:39,530
this procedure assumes that we have some
kind of distance function that we can use
52
00:03:39,530 --> 00:03:44,040
to measure the effective displacement
between two points in configuration space.
53
00:03:44,040 --> 00:03:47,980
We also use the same local planner
procedure to decide whether two
54
00:03:47,980 --> 00:03:52,510
points in configuration space can be
linked by a collision free trajectory.
55
00:03:52,510 --> 00:03:55,650
It turns out that this procedure for
generating random samples is
56
00:03:55,650 --> 00:04:00,600
very effective at growing trees that
explore and span the free space.
57
00:04:00,600 --> 00:04:03,780
Hence, the name,
Rapidly Exploring Random Tree or RRT.
58
00:04:05,070 --> 00:04:08,260
In order to construct a path
between the stark configuration and
59
00:04:08,260 --> 00:04:12,670
an end configuration,
we actually construct two trees.
60
00:04:12,670 --> 00:04:15,330
One rooted at the start location and
one at the goal.
61
00:04:16,630 --> 00:04:19,640
The procedure then tries to grow
both trees until they meet.
62
00:04:19,640 --> 00:04:22,217
This animation shows
the procedure in action
63
00:04:22,217 --> 00:04:25,755
on a two-dimensional configuration
space with obstacles.
64
00:04:30,963 --> 00:04:34,790
Here, we have outlined this
two-tree procedure in pseudocode.
65
00:04:36,600 --> 00:04:41,220
On every iteration of the algorithm,
the system generates a random sample and
66
00:04:41,220 --> 00:04:44,720
tries to grow the current tree
towards that random sample.
67
00:04:46,760 --> 00:04:49,610
If it succeeds in adding
a new node to the tree,
68
00:04:49,610 --> 00:04:53,450
it tries to connect that new node
to the other tree to form a bridge.
69
00:04:54,910 --> 00:04:59,868
Note that if you succeed in finding such
a bridge, you can claim success since it
70
00:04:59,868 --> 00:05:03,571
means that you have now forged
a path between the two trees.
71
00:05:03,571 --> 00:05:07,878
On every route of this procedure,
it swaps the two trees.
72
00:05:07,878 --> 00:05:11,130
That way, both trees are growing
towards each other at the same rate.
73
00:05:12,290 --> 00:05:15,353
Here's a depiction of a few
rounds of this procedure.
74
00:05:15,353 --> 00:05:18,863
On the first round,
we generate a random sample and
75
00:05:18,863 --> 00:05:22,547
grow the blue tree towards
that sample as shown here.
76
00:05:25,171 --> 00:05:29,940
We then try to link the newly added node
to the red tree by seeing if we can link
77
00:05:29,940 --> 00:05:34,129
the new node that we just added to
the closest node in the red tree.
78
00:05:36,046 --> 00:05:39,131
In this case,
this linking attempt does not succeed,
79
00:05:39,131 --> 00:05:41,290
because of an intervening obstacle.
80
00:05:43,930 --> 00:05:47,440
In the next round,
we generate a new random sample and
81
00:05:47,440 --> 00:05:49,730
try to grow the red tree
towards that point.
82
00:05:51,350 --> 00:05:53,580
Once we have done this, we turn around and
83
00:05:53,580 --> 00:05:55,470
try to connect that
point to the blue tree.
84
00:05:57,060 --> 00:06:01,400
Here we succeed, so we can now
forge her out between the start and
85
00:06:01,400 --> 00:06:02,340
the goal locations.
86
00:06:04,760 --> 00:06:07,534
Like the probabilistic roadmap procedure,
87
00:06:07,534 --> 00:06:11,320
the RRT algorithm is
probabilisticly complete.
88
00:06:11,320 --> 00:06:15,527
So, there's a certain probability that the
method will find the path from the start
89
00:06:15,527 --> 00:06:16,838
to the goal if one exists.
90
00:06:16,838 --> 00:06:21,098
In practice, the RRT Method is
very effective at forging paths in
91
00:06:21,098 --> 00:06:24,046
high-dimensional configuration spaces.
92
00:06:24,046 --> 00:06:28,608
Another important feature of the RRT
approach is it can be used on systems that
93
00:06:28,608 --> 00:06:32,129
have dynamic constraints,
which limit how they can move.
94
00:06:32,129 --> 00:06:36,392
A simple example of this would be a
car-like robot where limits on the turning
95
00:06:36,392 --> 00:06:39,148
radius imply that it can
not translate sideways or
96
00:06:39,148 --> 00:06:41,129
turn in place around it's center.9085
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.