Skip to content

Commit 29d83da

Browse files
committed
Implements a consistent kernel configuration
1 parent 0defabd commit 29d83da

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

12_Datenfusion.md

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
author: Sebastian Zug & Georg Jäger
44
5-
version: 1.0.1
5+
version: 1.1.0
66
language: de
77
comment: In dieser Vorlesungen werden die Schichten einer Roboterarchitektur adressiert.
88
narrator: Deutsch Female
@@ -278,7 +278,7 @@ style="width: 100%; min-width: 380px; max-width: 720px; display: block; margin-l
278278
Schild erkannt +------+------+
279279
nein | 1 | 7 | 8
280280
+------+------+
281-
12 8 20
281+
11 9 20
282282
```
283283

284284
_Vierfeldertafel unseres "Schilderkenners"_
@@ -314,7 +314,7 @@ Wie können wir diese Sensorcharakteristik nun für unser Roboterbeispiel verwen
314314
import numpy as np
315315

316316
markers = np.array([0, 1., 0, 0, 1., 1., 0, 0, 0, 0])
317-
truePositive = 0.72
317+
truePositive = 0.83
318318
belief = markers / sum(markers)*truePositive
319319
belief[markers == 0] = (1-truePositive)/np.count_nonzero(markers==0)
320320
print(belief)
@@ -374,7 +374,7 @@ $$posteriori = \frac{likelihood \cdot prior}{normalization}$$
374374
import numpy as np
375375
apriori = np.array([1./10]*10)
376376
markers = np.array([0, 1., 0, 0, 1., 1., 0, 0, 0, 0])
377-
truePositive = 0.72
377+
truePositive = 0.83
378378
belief = markers / sum(markers)*truePositive
379379
belief[markers == 0] = (1-truePositive)/np.count_nonzero(markers==0)
380380
posteriori = (apriori * belief) / sum(apriori*belief)
@@ -431,13 +431,13 @@ Wie können wir unsere Positionsschätzung verbessern:
431431
2. Einbettung weiterer Sensoren
432432
3. Wiederholung der Messungen (sofern wir von statistisch unabhängigen Messungen ausgehen)
433433
434-
Lassen Sie uns die Messung einige Male wiederholen und diese Erkenntnis einfließen.
434+
Lassen Sie uns die Messung einige Male wiederholen. Das folgende Diagramm zeigt die Schätzung an der Position 1, nachdem mehrere Messungen fusioniert wurden.
435435
436436
```python constantPosition.py
437437
import numpy as np
438438
apriori = np.array([1./10]*10)
439439
markers = np.array([0, 1., 0, 0, 1., 1., 0, 0, 0, 0])
440-
truePositive = 0.72
440+
truePositive = 0.83
441441
belief = markers / sum(markers)*truePositive
442442
belief[markers == 0] = (1-truePositive)/np.count_nonzero(markers==0)
443443
p_1 = []; p_1.append(apriori[1])
@@ -588,7 +588,7 @@ def predict_move(belief, move, p_under, p_correct, p_over):
588588
belief = [0., 0., 1. , 0. , 0., 0., 0., 0., 0., 0.]
589589
#belief = [0., 0., .4, .6, 0., 0., 0., 0., 0., 0.]
590590
print(belief)
591-
print( predict_move(belief, 1, .1, .8, .1))
591+
print( predict_move(belief, 1, .1, .7, .2))
592592
```
593593
```js -Visualization
594594
var lines = data.Result.split('\n');
@@ -659,9 +659,9 @@ Wie groß ist die Wahrscheinlichkeit, dass wir Segment x erreichen? Dabei berüc
659659
| 0 | | nicht erreichbar |
660660
| 1 | | nicht erreichbar |
661661
| 2 | $0.4 \cdot 0.1$ | $0.04$ |
662-
| 3 | $0.4 \cdot 0.8 + 0.6 \cdot 0.1$ | $0.38$ |
663-
| 4 | $0.4 \cdot 0.1 + 0.6 \cdot 0.8$ | $0.52$ |
664-
| 5 | $0.6 \cdot 0.1$ | $0.06$ |
662+
| 3 | $0.4 \cdot 0.7 + 0.6 \cdot 0.1$ | $0.34$ |
663+
| 4 | $0.4 \cdot 0.2 + 0.6 \cdot 0.7$ | $0.5$ |
664+
| 5 | $0.6 \cdot 0.2$ | $0.12$ |
665665
| 6 | | nicht erreichbar |
666666
| 7 | | ... |
667667

@@ -671,16 +671,21 @@ Grafisch dargestellt ergibt sich damit folgendes Bild:
671671
style="width: 100%; min-width: 380px; max-width: 720px; display: block; margin-left: auto; margin-right: auto;"
672672
-->
673673
```ascii
674-
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
674+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
675675
676-
priori 0 0 0.4 0.6 0 0 0 0 0 0
677-
[0.1 0.8 0.1] -->
676+
priori 0 0 0.4 0.6 0 0 0 0 0 0
678677
679-
[0.1 0.8 0.1]
680-
0.04
678+
Reihenfolge [0.2 0.7 0.1] An die Stelle i=2 kann ich von i=0 (p=0.2)
679+
invertiert 0.04 und i=1 (p=0.7) gelangen.
680+
====
681681
682-
[0.1 0.8 0.1]
683-
0.38
682+
[0.2 0.8 0.1]
683+
0.34
684+
====
685+
686+
[0.2 0.8 0.1]
687+
0.5
688+
====
684689
```
685690
_Abbildung des Streckenmodels (O = Orange Warnschilder am Ufer, S = Starke Strömung, B = Brücken)_
686691

@@ -696,7 +701,7 @@ from scipy import ndimage
696701

697702
belief = [.05, .5, .05, .05, .05, .05, .05, .05, .05, .05]
698703
print(belief)
699-
kernel = [.1, 0.8, 0.1]
704+
kernel = [.1, 0.7, 0.2]
700705
prior = ndimage.convolve(np.roll(belief, len(kernel) / 2), kernel, mode='wrap')
701706
print(prior)
702707
#belief = prior # Multiple movements
@@ -805,9 +810,9 @@ import numpy as np
805810
from scipy import ndimage
806811
807812
priori = np.array([1./10]*10)
808-
kernel = [.1, 0.8, 0.1]
813+
kernel = [.1, 0.7, 0.2]
809814
markers = np.array([0, 1., 0, 0, 1., 1., 0, 0, 0, 0])
810-
truePositive = 0.72
815+
truePositive = 0.83
811816
belief = markers / sum(markers)*truePositive
812817
belief[markers == 0] = (1-truePositive)/np.count_nonzero(markers==0)
813818
# FIRST LOOP - prediction

0 commit comments

Comments
 (0)