1
00:00:03,790 --> 00:00:09,580
Another major problem that you'll encounter in the real world is the filter initialization or setting

2
00:00:09,580 --> 00:00:15,220
the initial conditions of the filter, the quality of the initial conditions of the filter can have

3
00:00:15,220 --> 00:00:19,390
a direct impact on how accurate the filter is and how robustly it can run.

4
00:00:20,260 --> 00:00:23,140
The filter state must be initialized close to the truth.

5
00:00:23,410 --> 00:00:27,850
And this is because we use approximations in all the different types of the common filter.

6
00:00:28,390 --> 00:00:32,170
It also means that all the states inside of you don't need to be initialized as well.

7
00:00:33,520 --> 00:00:36,860
Now the filter American parents must also be small.

8
00:00:37,390 --> 00:00:42,010
This is so that it doesn't include the nonlinearities in the error range.

9
00:00:42,520 --> 00:00:47,950
So even though the common filters, the extended and uncynical Matilda can work on non-linear systems,

10
00:00:48,340 --> 00:00:51,480
we always want the estimated error to be small.

11
00:00:51,490 --> 00:00:52,630
So we want the filter.

12
00:00:52,630 --> 00:00:58,000
Eric invariance to be as small as possible so that when we do the transformations, we do not get too

13
00:00:58,000 --> 00:01:01,090
much error in these uncertain transformations.

14
00:01:01,900 --> 00:01:09,070
So the error averages need to be set to be approximately the true uncertainty size in the system.

15
00:01:09,220 --> 00:01:11,140
And we want this to be as small as possible.

16
00:01:12,220 --> 00:01:17,500
So we should not start the filter until we have a good estimate of the starting state and the amount

17
00:01:17,500 --> 00:01:19,780
of error inside that starting state estimate.

18
00:01:20,740 --> 00:01:26,650
This means we might need a initialization filter, a process to estimate the starting or initial emissions

19
00:01:26,890 --> 00:01:29,490
if we can't make appropriate assumptions.

20
00:01:30,430 --> 00:01:35,920
Now, a trade off of this process is that we need to wait until the filter has started and values have

21
00:01:35,920 --> 00:01:36,850
converged before.

22
00:01:36,850 --> 00:01:41,150
We can robustly use the output for different purposes such as control.

23
00:01:41,830 --> 00:01:47,920
So if we try to estimate so far a self-driving car, we need to have a good estimate of the state of

24
00:01:47,920 --> 00:01:52,240
the vehicle before we can actually start to use that state inside the control process.

25
00:01:52,780 --> 00:01:57,430
If we don't have a good estimate of what the value is for control, we could actually make the filter

26
00:01:57,610 --> 00:02:00,750
unstable and actually cause a car to drive out of control.

27
00:02:01,900 --> 00:02:09,280
So following on with a 2D self-driving car example, we need to find the initial conditions for the

28
00:02:09,280 --> 00:02:13,200
zwi position, for the velocity and the heading of the vehicle.

29
00:02:13,810 --> 00:02:17,830
We can estimate the position directly from the GPS position measurement.

30
00:02:18,700 --> 00:02:25,240
We could estimate the velocity by measuring how quickly sequential GPS samples are changing, such as

31
00:02:25,240 --> 00:02:26,290
the position derivative.

32
00:02:26,470 --> 00:02:32,440
However, this is only going to work if we are actually moving in the first place and moving fast enough

33
00:02:32,710 --> 00:02:39,910
that the amount of noise inside the differentiation process is larger than the noise of the GPS.

34
00:02:41,020 --> 00:02:43,740
However, this will not tell us the heading of the vehicle.

35
00:02:44,260 --> 00:02:49,030
We won't know whether we're moving forwards or backwards or being stationary just by looking at the

36
00:02:49,030 --> 00:02:50,890
GPS of lost information.

37
00:02:51,340 --> 00:02:54,750
This is because it is given in the world frame.

38
00:02:54,760 --> 00:02:56,740
It is not given relative to the body frame.

39
00:02:56,740 --> 00:03:00,700
So we can't imply what the heading of the vehicle is going to be.

40
00:03:03,020 --> 00:03:09,920
So for a 30 vehicle example, a better initialization process might be to first use the GPS position

41
00:03:09,920 --> 00:03:16,040
measurements to initialize the X Y position states, we then filter the GPS position measurements to

42
00:03:16,040 --> 00:03:18,880
estimate the X Y velocity or Travelocity.

43
00:03:20,030 --> 00:03:26,180
We then can use the GPS position and a lot of measurements to know landmarks when available to estimate

44
00:03:26,180 --> 00:03:29,370
the heading of the vehicle as well as the position information.

45
00:03:29,390 --> 00:03:30,030
Again, if we want.

46
00:03:31,040 --> 00:03:36,920
So now using all this information, we can combine the outputs of the three processes above to generate

47
00:03:36,920 --> 00:03:40,430
the full instrumentation and then start the four common filter.

48
00:03:40,850 --> 00:03:42,380
Using all the information above.

49
00:03:42,380 --> 00:03:46,760
We get the X Y states, we get the velocity and we get the heading.

50
00:03:47,240 --> 00:03:52,670
So this would be a better initialization process for a for the 2D vehicle example.

51
00:03:54,470 --> 00:03:58,970
So to recap, all the states must be initialized close to the real truth.

52
00:03:59,510 --> 00:04:04,580
So they even need to be measured or appropriate approximations need to be made of what the value would

53
00:04:04,580 --> 00:04:04,940
be.

54
00:04:06,110 --> 00:04:11,300
All the error variances should be as small as possible to avoid non-linear effects.

55
00:04:13,160 --> 00:04:18,590
Now, this might require a special initialization process specifically written to initialize the filter

56
00:04:18,590 --> 00:04:20,030
before I can actually start running it.
