SLAM G 03
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 76 | |
Autor | ||
Lizenz | CC-Namensnennung - keine kommerzielle Nutzung - keine Bearbeitung 3.0 Deutschland: Sie dürfen das Werk bzw. den Inhalt in unveränderter Form zu jedem legalen und nicht-kommerziellen Zweck nutzen, vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/49034 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | |
Genre |
SLAM and path planning23 / 76
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
00:00
InformationOrdnung <Mathematik>RauschenSelbst organisierendes SystemVarianzMatrizenrechnungMAPDerivation <Algebra>TaskAggregatzustandBelegleserFunktionalRechenwerkSpeicherabzugUmkehrfunktionWinkelSystemprogrammEinflussgrößeSpannweite <Stochastik>AbstandPropagatorRobotikMailing-ListeSkalenniveauElektronische PublikationSchreib-Lese-KopfMessbare AbbildungKonstruktor <Informatik>NeuroinformatikLikelihood-FunktionCracker <Computerkriminalität>PartikelsystemInverseOrtsoperatorCodeMehrrechnersystemInverses ProblemKovarianzmatrixKreiszylinderMereologieStrömungsrichtungKovarianzfunktionComputeranimation
02:59
RoboterMathematikDisplacement MappingPartikelsystemJensen-MaßSinusfunktionKovarianzfunktionFunktionalSystemprogrammKlasse <Mathematik>Elektronische PublikationKonstruktor <Informatik>PartikelsystemProgramm/QuellcodeXML
03:05
Web-SeiteJensen-MaßPartikelsystemDisplacement MappingKovarianzfunktionRoboterFunktion <Mathematik>Derivation <Algebra>Programm/QuellcodeXML
03:14
Displacement MappingCodeRoboterMatrizenrechnungSynchronisierungKorrelationEinflussgrößeSinusfunktionWinkelFehlermeldungKonstanteKreiszylinderUmkehrung <Mathematik>Produkt <Mathematik>SkalarproduktKoordinatenPhysikalisches SystemKovarianzfunktionInstantiierungJensen-MaßAggregatzustandFunktionalMatrizenrechnungMereologieÜberlagerung <Mathematik>EinfügungsdämpfungMailing-ListeNeuroinformatikPartikelsystemOrtsoperatorKovarianzmatrixXML
03:25
WinkelEinflussgrößeFehlermeldungRoboterKonstanteInstantiierungDialektJensen-MaßWeb-SeiteDisplacement MappingCodeProdukt <Mathematik>MatrizenrechnungSkalarproduktStereometrieUmkehrung <Mathematik>KoordinatenPhysikalisches SystemSinusfunktionKovarianzfunktionMailing-ListePartikelsystemOrtsoperatorProgramm/QuellcodeXML
03:35
EinflussgrößeKovarianzfunktionWinkelEigenwertproblemDialektDisplacement MappingVarianzRoboterKonstanteDigitalfilterAbstandFehlermeldungStandardabweichungOrientierung <Mathematik>PartikelsystemPhysikalisches SystemMinimalgradHochdruckBelegleserFunktionalKoordinatenEinflussgrößeCASE <Informatik>Wurzel <Mathematik>Physikalisches SystemResultanteTeilmengePartikelsystemOrtsoperatorComputeranimation
04:11
OrtsoperatorKovarianzfunktionInformationKartesische KoordinatenDatentypDefaultEllipseFehlermeldungWinkelTotal <Mathematik>CodeProgrammierungKovarianzmatrixResultanteTermWinkelZahlenbereichEllipseSpannweite <Stochastik>AbstandCASE <Informatik>FehlermeldungPunktKovarianzfunktionKartesische KoordinatenRichtungDiagonale <Geometrie>DifferenteMinimalgradMultiplikationsoperatorOrtsoperatorMatrizenrechnungComputeranimationDiagramm
Transkript: Englisch(automatisch erzeugt)
00:00
Now let's have a look at part B where our task is to initialize a new landmark. So the situation is our robot is here. It measures a distance and bearing angle, so that's our measurement C, to a cylinder and it determines by computing the likelihoods that this is a new landmark that should be incorporated into its list of current landmarks.
00:23
So all we have to do is, using the known position, compute the position of the landmark and of course compute the appropriate covariance. So as for the landmark position, we know that the measurement can be computed from our current pose and landmark coordinates using our measurement function H.
00:41
So what we want now is the inverse of this. We want to get our landmark from the current pose and our measurement. So with regard to M and C, this is the inverse function. So this is already the first step. We use the inverse function, the current pose and the known range and bearing measurement to compute the landmark position M.
01:02
Now in our Python code, we'll have to compute the scanner pose because it is different from the robot's pose and we may use the lego.log file .scannerToWorld function to compute the world coordinates M of our new landmark from the X, Y coordinates in the scanner's coordinate system. So this is what we'll use in the code.
01:21
Now let's have a look at the covariance matrix. So we know that the Jacobian of H is a capital H, that's the derivative of H with respect to the landmark and we use that already to compute the likelihoods. Now we would have to take this at the current state and the landmark coordinates X and Y which we just computed.
01:40
Now this H matrix is the Jacobian of this H function which translates from our landmark coordinates to our measurement. So this H gives us the information how our landmark noise translates to a measurement noise. But now we have the inverse problem. Our robot measured the range and bearing and this noise translates to the noise of
02:01
the landmark. So we need the Jacobian of the inverse of H which is of course the inverse of this H matrix. And so in order to compute this covariance which we're looking for, all we have to do is take the measurement noise which is the variance in range and bearing and use variance propagation now with the matrix H minus one.
02:21
And after this we'll have to append our new landmark coordinates to our landmark positions list and our new covariance matrix to the landmark covariances list. And that's all there is to do. So in summary, we compute the landmark's coordinates mathematically by computing H minus one of the state and our measurement and practically by computing the scanner pose and using the
02:44
scanner to world function. Then we compute the Jacobian which we take at the current state and at the landmark coordinates which we just computed. We invert this and compute our landmark covariance by this variance propagation. Now I have prepared the SLAM-10C new landmark file for you and as usual it contains our
03:04
particle class with a constructor and a utility function. It also contains the derivative of H with respect to a landmark which we just had in our previous exercise. And then here, this is the function you'll have to implement. And here in the first part, I gave a hint how to compute the scanner pose given the particle state.
03:24
And then remember, after you computed the position and covariance matrix of the landmark, insert them into the particles list of positions and covariances. So that's all there is to do. Let's have a look at the main function. Now the main function again places the scanner at the origin of the coordinate system.
03:43
After setting up the particle, three landmarks are measured and those measurements are given in the scanner's coordinate system. The first measurement is at X equals 1000 relative to the scanner which happens to be aligned with our world coordinate system in this case. So this is at 1000, 0.
04:01
The second measurement is at 2000, 0. And the third measurement is at 1000, 1000 divided by the square root of 2 which means it will be here. And after you run this, you should see the following result. So for landmark 0, position is initialized as 1000, 0. So that's correct.
04:20
And the landmark covariance matrix contains 40,000 and 68,000 on the main diagonal which is converging to the error ellipse here. So it means 200 along the axis with degree 0 and 260 along the other axis. So it's slightly elongated. Now for the first landmark, we get 2000, 0. So that's correct too. With the covariance matrix which corresponds to an error ellipse which is 200 in one direction,
04:44
again, so it's the same. But 523 in the other direction which is just double the value that we had earlier. So this is times two. And the reason is of course that this error is dependent on the range accuracy. And so it's the same in both cases. But the error along the other axis is dependent on the error of the bearing angle measurement.
05:06
And so it increases linearly with the distance. And finally for the third landmark, landmark number two, again, we get the correct result for the position which is here. Now our covariance looks much more complicated. But as we see in terms of the error ellipse, we'll have the exactly same as in the first case.
05:23
So it's 200 along one axis and 261 along the other axis. That's exactly what we have here. The first axis is at minus 45 degrees, so the axis is like that. We have 261 along this axis and 200 along the other axis, so it's slightly elongated.
05:42
And of course we see it's the exactly same error ellipse as the red one because this point is measured at the same distance. The only difference being that this ellipse is turned by 45 degrees. So now please program the code to initialize a new landmark.