Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,000 --> 00:00:02,953
[MUSIC]
2
00:00:02,953 --> 00:00:10,080
In the previous module,
we talked about configuration space, and
3
00:00:10,080 --> 00:00:15,458
we discussed the idea of
a collision check function
4
00:00:15,458 --> 00:00:20,584
that could be used to decide
whether a given point
5
00:00:20,584 --> 00:00:25,730
in configuration space
was in free space or not.
6
00:00:25,730 --> 00:00:30,267
By checking whether that configuration
led to a collision with the obstacles in
7
00:00:30,267 --> 00:00:31,780
the work space.
8
00:00:31,780 --> 00:00:36,325
We also talked about the idea of a simple
planning scheme that worked by using
9
00:00:36,325 --> 00:00:40,730
the collision check function to sample
the configuration space at a set of
10
00:00:40,730 --> 00:00:43,660
regularly spaced discreet
locations on a grid.
11
00:00:43,660 --> 00:00:46,732
Linking adjacent points in
free space with edges, and
12
00:00:46,732 --> 00:00:49,756
then using this graph to
plan pass through the space.
13
00:00:49,756 --> 00:00:54,970
This approach of discreetizing
the configuration space evenly on a grid,
14
00:00:54,970 --> 00:01:00,320
can work well when the dimension of
the space is small, say two or three.
15
00:01:00,320 --> 00:01:04,150
But the number of samples required
can grow to be frighteningly large
16
00:01:04,150 --> 00:01:08,860
as we increase the dimension of the space
to five, six, eight, ten, or beyond.
17
00:01:09,930 --> 00:01:14,440
An alternative idea for dealing with
these situations is to choose the points
18
00:01:14,440 --> 00:01:18,400
in the configuration space
randomly instead of uniformly.
19
00:01:18,400 --> 00:01:20,980
In the hope that we will choose
a set of configurations that
20
00:01:20,980 --> 00:01:23,990
capture the underlying
structure of the free space.
21
00:01:23,990 --> 00:01:26,970
This set of slides
illustrates the basic idea
22
00:01:26,970 --> 00:01:29,360
on a two dimensional configuration space.
23
00:01:29,360 --> 00:01:34,680
On every iteration, the system chooses
a configuration in the configuration space
24
00:01:34,680 --> 00:01:39,080
at random, and tests whether it is in free
space using the collision check function.
25
00:01:40,250 --> 00:01:43,200
In this figure,
the new random node is the green dot.
26
00:01:44,870 --> 00:01:50,060
If it is in free space, it then
tries to see if it can forge routes
27
00:01:50,060 --> 00:01:54,830
between this new configuration and
the closest existing samples in the graph.
28
00:01:55,840 --> 00:01:59,910
Every path that it creates is
recorded as a new edge in the graph
29
00:01:59,910 --> 00:02:00,770
that the system is building.
30
00:02:02,300 --> 00:02:03,100
In this figure,
31
00:02:03,100 --> 00:02:07,710
the solid green lines correspond to new
links that are added, while the dashed
32
00:02:07,710 --> 00:02:11,710
green line represents a connection that
failed due to collision with the obstacle.
33
00:02:12,810 --> 00:02:15,487
Here's the basic outline of
the procedure in pseudo code.
34
00:02:17,320 --> 00:02:22,160
Again, our goal here is to construct
a graph of configuration space points and
35
00:02:22,160 --> 00:02:25,320
edges that capture the underlying
topology of the freespace.
36
00:02:26,670 --> 00:02:30,050
We can think of the edges between
the random samples as roadways
37
00:02:30,050 --> 00:02:32,990
that form a network that
hopefully spans this freespace.
38
00:02:35,010 --> 00:02:39,750
This helps to explain why we call this
procedure the Probabilistic Road Map
39
00:02:39,750 --> 00:02:41,660
method, or PRM for short.
40
00:02:41,660 --> 00:02:47,080
Probabilistic to reflect the stochastic
nature of the process and road map for
41
00:02:47,080 --> 00:02:51,550
the graph that the procedure constructs
which we hope will serve as a road map for
42
00:02:51,550 --> 00:02:52,930
the freespace.
43
00:02:52,930 --> 00:02:55,970
Note that this procedure
requires two ingredients.
44
00:02:55,970 --> 00:02:59,910
Firstly, a distance function that
considers the configuration space
45
00:02:59,910 --> 00:03:05,360
coordinates of two points, x1 and
x2, and returns a real number
46
00:03:05,360 --> 00:03:09,510
which is supposed to be reflective of the
distance between those two configurations.
47
00:03:11,170 --> 00:03:15,896
Often, this can be done pretty simply by
computing standard functions like the L1
48
00:03:15,896 --> 00:03:17,730
or L2 distances as shown here.
49
00:03:21,380 --> 00:03:23,760
For robots that involve rotational joints,
50
00:03:23,760 --> 00:03:27,890
you usually need to be a bit more careful
to handle wrap around correctly so that
51
00:03:27,890 --> 00:03:32,480
your distance function correctly captures
the topology of the configuration space.
52
00:03:33,530 --> 00:03:38,849
For example, if theta 1 and theta 2
are two angular values in degrees between
53
00:03:38,849 --> 00:03:44,249
0 and 360, you may choose to use a
distance function like this that captures
54
00:03:44,249 --> 00:03:49,260
the fact that 0 and 360 actually
correspond to the same orientation.
55
00:03:53,060 --> 00:03:56,722
The other element of the PRM
procedure is a local planner,
56
00:03:56,722 --> 00:04:01,220
which decides whether there is a path
between two points, x1 and x2.
57
00:04:01,220 --> 00:04:06,068
A common way to handle this is to
construct a set of evenly spaced
58
00:04:06,068 --> 00:04:11,300
samples on a straight line
between the two configurations.
59
00:04:11,300 --> 00:04:13,900
And to use the collision
check function to check that
60
00:04:13,900 --> 00:04:16,970
all of these intermediate
configurations are collision free.
61
00:04:18,040 --> 00:04:22,830
So in this example, the local planet
would decide that there is a path
62
00:04:22,830 --> 00:04:24,372
between the two points in question.
63
00:04:26,680 --> 00:04:29,810
While in the second case,
it would decide that there isn't.
64
00:04:32,570 --> 00:04:35,870
If the sampling between the two
endpoints is fine enough,
65
00:04:35,870 --> 00:04:38,530
this procedure is usually sufficient.
66
00:04:38,530 --> 00:04:41,200
Once the PRM procedure has generated
67
00:04:41,200 --> 00:04:45,630
what we believe to be a sufficient
sampling of the configuration space,
68
00:04:45,630 --> 00:04:50,920
we can try to generate paths between
designated start and end configurations.
69
00:04:50,920 --> 00:04:53,920
We start off by attempting
to connect the start and
70
00:04:53,920 --> 00:04:57,040
goal configurations to
nearby nodes on the roadmap.
71
00:04:58,360 --> 00:05:00,420
If this step succeeds,
72
00:05:00,420 --> 00:05:03,880
one can then attempt to find
a path between the start and
73
00:05:03,880 --> 00:05:09,666
end nodes via the road map using our usual
suite of graph-based planning algorithms.
74
00:05:09,666 --> 00:05:13,260
Like [INAUDIBLE] method or A star.
75
00:05:13,260 --> 00:05:17,660
This second phase, where we are planning
a path between two specific locations
76
00:05:17,660 --> 00:05:20,250
is referred to as the query phase.
77
00:05:20,250 --> 00:05:23,830
This first slide shows the original
probabilistic road map
78
00:05:23,830 --> 00:05:25,480
constructing via random sampling.
79
00:05:27,430 --> 00:05:31,685
The next slide shows the road map
augmented with the start and end notes,
80
00:05:31,685 --> 00:05:35,050
which are attached to the road
map using the green edges.
81
00:05:37,577 --> 00:05:42,230
This final version shows the path
planned through this augmented graph.
82
00:05:46,141 --> 00:05:49,186
Note that once the road
map has been constructed,
83
00:05:49,186 --> 00:05:53,330
it can be used to answer
various path planning problems.
84
00:05:53,330 --> 00:05:55,840
So the cost of constructing
the road map graph
85
00:05:55,840 --> 00:05:59,010
can be amortized over multiple queries.
86
00:05:59,010 --> 00:06:01,940
This is great if you're going to
be running your robot back and
87
00:06:01,940 --> 00:06:03,160
forth through the same environment.8091
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.