From bbc8f5aa19f5def8c0144a69fb86034410d7ff71 Mon Sep 17 00:00:00 2001 From: toni Date: Thu, 5 May 2016 09:42:05 +0200 Subject: [PATCH] push before merge --- code/Settings.h | 4 +- code/eval/SmoothingEval1.h | 89 +++++++--------------------------- code/eval/SmoothingEvalBase.h | 8 +-- code/main.cpp | 48 +++++++++--------- tex/bare_conf.dvi | Bin 85344 -> 89320 bytes tex/chapters/experiments.tex | 47 +++++++++++++++++- 6 files changed, 92 insertions(+), 104 deletions(-) diff --git a/code/Settings.h b/code/Settings.h index 7be540c..c9cc6f0 100644 --- a/code/Settings.h +++ b/code/Settings.h @@ -15,9 +15,9 @@ namespace MiscSettings { const int gridSize_cm = 20; - const int timeSteps = 500; + const int timeSteps = 500; - const int numParticles = 50; + const int numParticles = 2500; const int numBSParticles = 25; diff --git a/code/eval/SmoothingEval1.h b/code/eval/SmoothingEval1.h index 78112b9..ed8ad4c 100644 --- a/code/eval/SmoothingEval1.h +++ b/code/eval/SmoothingEval1.h @@ -45,15 +45,23 @@ public: //pf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingPercent(0.10)) ); // state estimation step - pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverageWithAngle())); - //pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationRegionalWeightedAverage())); - //pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationOrderedWeightedAverage(0.50f))); + //pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverageWithAngle())); + //pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationRegionalWeightedAverage())); + pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationOrderedWeightedAverage(0.50f))); //create the backward smoothing filter - bf = new K::BackwardSimulation(MiscSettings::numBSParticles); - //bf = new K::CondensationBackwardFilter; - bf->setSampler( std::unique_ptr>(new K::CumulativeSampler())); + //bf = new K::BackwardSimulation(MiscSettings::numBSParticles); + bf = new K::CondensationBackwardFilter; + //bf->setSampler( std::unique_ptr>(new K::CumulativeSampler())); + + bool smoothing_resample = false; + + bf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationOrderedWeightedAverage(0.50f))); + //bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); + if(smoothing_resample) + bf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); + bf->setTransition(std::unique_ptr( new MySmoothingTransitionExperimental) ); } @@ -80,7 +88,7 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.05; - bool smoothing_resample = true; + bool smoothing_resample = false; //Smoothing using Simple Trans @@ -115,6 +123,7 @@ public: //Smoothing using Simple Trans + //bf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationRegionalWeightedAverage())); //bf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationOrderedWeightedAverage(0.50f))); bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverageWithAngle())); if(smoothing_resample) @@ -146,7 +155,7 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.05; - bool smoothing_resample = true; + bool smoothing_resample = false; //Smoothing using Dijkstra @@ -175,14 +184,6 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.05; - bool smoothing_resample = true; - - - //Smoothing using Simple Trans - bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); - if(smoothing_resample) - bf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); - bf->setTransition(std::unique_ptr( new MySmoothingTransitionExperimental) ); } void bergwerk_path1_nexus_simple() { @@ -243,14 +244,6 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.05; - bool smoothing_resample = true; - - - //Smoothing using Simple Trans - bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); - if(smoothing_resample) - bf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); - bf->setTransition(std::unique_ptr( new MySmoothingTransitionExperimental) ); } void bergwerk_path2_nexus_simple() { @@ -312,14 +305,6 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.05; - bool smoothing_resample = true; - - - //Smoothing using Simple Trans - bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); - if(smoothing_resample) - bf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); - bf->setTransition(std::unique_ptr( new MySmoothingTransitionExperimental) ); } void bergwerk_path3_nexus_simple() { @@ -380,14 +365,6 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.05; - bool smoothing_resample = true; - - - //Smoothing using Simple Trans - bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); - if(smoothing_resample) - bf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); - bf->setTransition(std::unique_ptr( new MySmoothingTransitionExperimental) ); } void bergwerk_path4_nexus_simple() { @@ -449,14 +426,6 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.15; - bool smoothing_resample = true; - - - //Smoothing using Simple Trans - bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); - if(smoothing_resample) - bf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); - bf->setTransition(std::unique_ptr( new MySmoothingTransitionExperimental) ); } void bergwerk_path1_galaxy_simple() { @@ -500,14 +469,6 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.15; - bool smoothing_resample = true; - - - //Smoothing using Simple Trans - bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); - if(smoothing_resample) - bf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); - bf->setTransition(std::unique_ptr( new MySmoothingTransitionExperimental) ); } void bergwerk_path2_galaxy_simple() { @@ -552,14 +513,6 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.15; - bool smoothing_resample = true; - - - //Smoothing using Simple Trans - bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); - if(smoothing_resample) - bf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); - bf->setTransition(std::unique_ptr( new MySmoothingTransitionExperimental) ); } void bergwerk_path3_galaxy_simple() { @@ -605,14 +558,6 @@ public: smoothing_heading_sigma = 5.0; smoothing_baro_sigma = 0.15; - bool smoothing_resample = true; - - - //Smoothing using Simple Trans - bf->setEstimation(std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); - if(smoothing_resample) - bf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); - bf->setTransition(std::unique_ptr( new MySmoothingTransitionExperimental) ); } void bergwerk_path4_galaxy_simple() { diff --git a/code/eval/SmoothingEvalBase.h b/code/eval/SmoothingEvalBase.h index 82c6975..a6c5d43 100644 --- a/code/eval/SmoothingEvalBase.h +++ b/code/eval/SmoothingEvalBase.h @@ -344,10 +344,10 @@ public: //Point2 p2 = p1 + Angle::getPointer(obs.orientation.values[0]) * 0.05; vis.gp << "set arrow 999 from screen " << p1.x<<","<Z=l5PBknz(x;*AXu)E0_O1YX!mM0VRvSknbpIu z1*hlKv7-&+iD#zlsWCAj7@W9O!l9ekH7B-DPi=f^yQFSo6GM|jsapp(aZh5mLH&Jq zW>>OL_ydh*?)~m}zwh_`e&4;ic)0XRzVy&7*EOuEZLV#6qNJpRId4CB%fX)0J?xoz z?C6=_&tw12@blm1Gl^v)FJHC>bdx)Jzhez>r<))8*Jp;)<{D?LzOkle)Mh7tmQR{l zyK?rTL9^P9oSi$iYV!MO+nVX^oYq)OwNzbG5{VIee8)3YWG;Jj)GjM2*{CFx;gQ?y zadWllN(VpeQw%-HEpFs8(!u{Uxn}BylQMKHJ*dXG>GU7E99InPBz1%Ps-{GvX+yEN zqiC_vWP+P8_2%AwgYQps&2kK`#8fSAVp&D|+*X{J&f&TArqMf~niy!N6PD?ynxkYZ z0|)!K1#eub;*$62O{^*-RgCu{7*Rc$N?Xc`a825t8|nW;zi#9r{h#*f)__xyz(lO; z!!^fD>Uc-L4bcWntgLZgpP_2pNt^V3A|?u~@FYBkQ63w$OJ`=<@9FN?(B0E&XRiI~ z-QG?2bZ71DdyXlIxNfM{K(ZQRE_dlqoh=#S&LCpNjYEHVq>5%vm=*rG@_`wuW%5M7 zGj#ZJTu&!rP9JyreZ{mKuIcIcfGr=GZt0GZ)*L+umzh)yD>VRbvYUda1SVYhg1PK( z=h>y*^<%Zjd=U~^`-b}GQ%ItG!LSTPGe!QZ9NK7tuZU9aymuC{n={k4-Is5*^yKJ~ z|JyVEa_`;QFrfMNx~9gO<<+(pllZ-9a<^| z$(8t;AvKZ6NxT_bj;UreeYa`yn4bWE41yq_z}J6GBLq1D?Wu$sRjtH`Z(0}=n~YrX z#*KV(Ymm@ft+mBHI=X0Z0y4q66f#nGO&b z6sE7lIVyQua{GXq;Dl6^Bw~a?q0J~NE6&~09yg3eX^*F1KoXvNFW$=T&iJT)2P<>K zDc1O*b8i(22w_n~-J^6{e}e+gNv&67L>x_iN$Pr>i1$OZfDSePdcU8#VZs+Py$P{cKP@kfOqQa0IxF; z5Rf0^2>75XrhsI8z8@e!)s$sQN|ueje%D=DdumBZetFiOed6OPSBi{b#HcMr-uc|u z-0UA(#3_IBW5_R<^fzO5jX_CLZJn8(&Dv${$Mc9&Z+|(PnZY}nrauL;cesIg)3Ah&q^oAI zen`Vwd(%RkzC#6^e;2O=Tt+A!GJ$JX`|8`I$smEI0k*19x1`rX7 zN5E0eK220uf+N~hXWm-Q-iu@wwppY0m5ayn*r^*i`=X!`XM!XhQ%R;k4-n3uCUq0s zLuulg2y!|VGBQMu$S!-VqNGHaQ=*nCz-5iNWlLrN9=Wn5l~}{zq$W;6O@gx>D?_!b zo2J^QCRA&LA|Mns0iBIih+IIA~r4(NwL8zw$I2K%=B z_%{t6)#Dm!4Rs1X{6PeOq?)7~adR3dny?C?%V=>|{{DNIn3KQ%exapsR-sl-+}6R( zluBCeV-dr0lB!7*0Fx-Os3LfG)!FB+`~CS*`?nX5wOVfE{U22r zrd8z#weM`}$wl6OoQAjcKmvjm0Y77?bhHba#Sf!>%2-qm6~jJ{3F<>sz|PzlL`)UH z{qnm-{Q|}>Uuy*rF8{NFZGZ>iGRZoolf=hX1T(>`G$xn_dc~R(@kY3%^L41CoOHfc z?=!ox6mTL6h4jHv6F%vvbGp|qZ91DL|BI;cMGrtdiqH=Ds`SHGSHAK?k-#fIaDKD- zrVMiTA5(h=(q@$pwL-B*)1;`O6S|fdaUl3soJEur4QvO0|uI$ zTJ}`{^V^G0HXdTPC@@Gp6J*a>&?N$EtRqPeuN9K_!TmI};C4n{{eV?H4 zU>{(yB8UdCF=SBs=zO8Y0_A=5aj!jI-=q`UWvCUvtDg({L*Nj^B(XgiDZ&975xRzu zxzcMLf{9TQ;Q2VDg8HkV6Sk$-Heif1);OW2(_Vd~4^f2CFw7Hel%0`Y+t%q9sf(iv zhAb!2fCbQB+N!}=uCz5NQoa5&;bkEs;1%R*K#w^=-{LDNw0sC>krxUPbmid~io=$N zqs0mZtL{5|ITI&YA5u;9Nb>Nr+bJ+;FL^4V`y(&~#lR#ehCF-=DMlCufge|H{w-v> zrp7M)^^fz#P1$nu?}$C&&4jMO`kJqF3q>iOqA2Z|u%1G@qN-f!7gv>p4#0`h|Ha1z z1&f9q|73{AXmmf$U3U5X&p?mM?>|b5BW$6`_@Uo5iE|oJBryaHcE5D;bre#+J`YXn z0hux;$`2>RLghKEerD#;R$|6SOHkek5Y?mW^|Xbf0ai%TiHuVT`a+!P0}=mQ1ADPq0A8UeP9V$=y^IHsB35sok5|o zfR2|X0TTLQv2EO{sovQwiO^p|EDt}2-Gd~pw?fZ_JZ zpexsIs?W)_U4ecQtZU~}iB39oihu@ifct$T;=~!;6or<08UectCwkFv=OPy#M!R_E zET^V4a^Vr&@>sMVzZf#WEx6dB;DQ`Lf(H8CK-ofzL6c3$C^p%JdT~O!QqX-=I|rX! znZa=#4WOL!0>(oR2(=Rz3b;5Rq{ulJl}tUIsAT9VSQ7*A65S0IH(gwW?K`f)(kNQ> z0ie+>Z8?tG&Xu;*(-dkY&0@coP~vuJ%lFKTxJ)WsS(L7w(~jFH?5!YMF!=cvQDD%O z9(l7E67Iqj*+bW|GmLX@u&(87acr&EX<>AOIJp~jY6A6uZ-*uqaUMUNMeeE zt((s21-5+h-nCHt$G(ZPwv)$D(a49SLHnjlw;+o#bQEaoICz5Szj!%i)4gQ&NJZW3 z;NFFfH;|r<0?jkz?)(H{15b~ZA)k{=2s_P)TfzXqLcIgqMQY62H$U+~;kpHD2cHA! zv4OD3?3cB-KJg+-gnVx65jasMC!97dUHM>aosH|B#ylLKsj`>6Ma$WIsdDRw-n!-N zJ7vM8ocH4@wz2RmuV7mx1jO61g7u1rzh1$X&Yh{gIBLhwF1oap_akY@rNx z_fGa@Z%Q?rEzRxu#9Lg=(&E9dW=ZeWP3(Ga_DXh#{9O6`^TE(vE7>eD!dl7h6A%Bm zl5H0c%WGJ-e58E-KLsP7tYNdf``cKV_k$YvMCK#4Y>Rlfx0Xf4!^|KPcr?ZPNdwy}MlWb&OA5>0*BIJLHL`8u>pv78zOst(X)sz>Q(KEv6!&;)RXF99 zRqWni`6jlZU~s4@{QB)C_EquqLKEBS?byJoid$IV4X;Ht!!4@_k#$IY+d#8#`*EEDNT;TPuWtHOV$XdpOVQa%AwXI{j#hdT01N6wf zPuES_=~L{e_u-xF+0eT)C+}jjn1{bOG~o{F?FW}iZ25ORMPeH~qn^#1{mRbTrZ0H+ zzYV^3bv=ufA1kNp5BhaSD^nzTc&QbO)5A?|Y`*tc1Dox2x3L?)_pNkwBqRvY?l}}vorK~xD(3>M^ANzYo6^y-f8s0jckW_ zcwl2;H>Wlh25k&CF{dls@=zC+7M3n{g@gX53*|tT)J<%sSGp2~{PRt$#rg9mZ}uuT xvxYC<^CR|+C(kZu!C!+)q$`mZ_8(yXb@5oq^(EzJ_H1TmC#WM4`cBw?=rGq$83{s37uwe@y08Vy5K9 zK+1M+f0!tk>K=Q+0n4_e@9&%jB%-)9+r1xnLxMtOqQt_gVnz#M%6{V#Plt)B5?Qm~ z_#M0L0O!N@KZLxY*%E#!5{;?6K2XYf#}Sm|jP=e6*02)F;&fE+PDuwOkx*%|AkGHG z6hRzGaa*6(d*LyLM2M)TAb|vJ+1cCL*6V4~zWUR9-maa!Np0X~ukhg!Nfy*l#HDdt zC%-PQU}=)FlH0jb87ui4<`gMWRDpR`LkX*^g8Vh<2;oI41;2(mW4+cM4Gqhn-)}sgoEkPaj)^Io@Vq4I zoXFUOj1s}T(U3lLE(xu8eYs|RyJXUhWSC<~QhVUs)hJd{WnNSaN;sEM9hoqxG;{kA znv~7AkUg;q9**b#{?q9uRf;6W|GPhX&fAmJ3VrtJmg?G#RqJqxzGB3M-nS4wOjRL5 z6g1`MC~Kw-2>C=t#8bAzoDz{FHH1~^9L9812#0a)G$1Jcn4*vX4I|78WSx|*_tHk0BTE^8ETslHr0UD-=Q!v};iNDx0lrN@^vCHy|&# z;0MTyw4#zIvg^AfeOAfAqidESK$S+57cSW?OviJo`^QJj?KpNA1+@E1La z1f3WwVK=wHgSIbf((K+Ah#7*s6(WXE(hN>k*Z_;zKRr;!>KdTf(DyaKZbNvr0eprq zuMv84PI9B^^h_fR7`8t)!VW`lZv(#}ux+O4&NkSb3u|jK!-kq*zv1-DCNnp7v595+ zumQ2zbUNA$2Mnis%`jAe%}1k1hl`ipW9(B8tYk-8OvmS1%#zs_cqmtCb1M|H)n1s- ze65I=KKZMyFlY$&HX!p+Q(fhDvwwKN!L&9r(@Sm8XZU>C25q@aL+!Jf4z)vvVZ6`| z{p`FKI@uE)u*6WQ9kA07e%%3k*}EPnWa~R&wVq-Hd$QB?ig%hVT<3_m%@^~Ix0nxsCo*r z9Z1f9y9u~!2MigS#qI3QYD_xn0FTh=Hb65x_o{Y@HSm2?}MRI6b80C^(Pz=uW?dbBXy6}x{|r% z?6p2vYIy&)4;iP2J<^Z8>B9H>Vc${|s@=6tWA$}))pK!nj~Q3$fnLM?Ne?`32$wwY zC@XJ;2U(#Pma<)~FyG1u8*7JB*5ZWL)O&Pj@3MdbK$WSqkxs?Uu!L>hgI8p;f!qGM1-`?vD|>Jy3#R_E2R^qh>~6AtnEU(> D(!4M^ diff --git a/tex/chapters/experiments.tex b/tex/chapters/experiments.tex index 2524cef..7de4402 100644 --- a/tex/chapters/experiments.tex +++ b/tex/chapters/experiments.tex @@ -23,9 +23,9 @@ As the Galaxy's \docWIFI{} can not be limited to the \SI{2.4}{\giga\hertz} band Additionally, the Galaxy's barometer sensor provides fare more inaccurate and less frequent readings than the Nexus does. This results in a better localisation using the Nexus smartphone. The computation for both filtering and smoothing was done offline using the aforementioned \mbox{CONDENSATION} algorithm. -The state was then estimated using the weighted arithmetic mean of the particles. However, the filter itself would be fast enough to run on the smartphone itself ($ \approx \SI{100}{\milli\second} $ per transition, single-core Intel\textsuperscript{\textregistered} Atom{\texttrademark} C2750). The computational times of the different smoothing algorithm will be discussed later. +Unless explicitly stated, the state was estimated using the weighted arithmetic mean of the particles. As mentioned earlier, the position of all \docAP{}s (about 5 per floor) is known beforehand. Due to legal terms, we are not allowed to depict their positions and therefore omit this information within the figures. @@ -40,7 +40,6 @@ While the pressure change was assumed to be \SI{0.105}{$\frac{\text{\hpa}}{\text The step size $\mStepSize$ for the transition was configured to be \SI{70}{\centimeter} with an allowed derivation of \SI{10}{\percent}. The heading deviation in \refeq{eq:transSimple}, \refeq{eq:transShortestPath} and \refeq{eq:transMultiPath} was \SI{25}{\degree}. Edges departing from the pedestrian's destination are downvoted using $\mUsePath = 0.9$. - % all paths we evaluated \begin{figure} \input{gfx/eval/paths} @@ -53,10 +52,54 @@ Edges departing from the pedestrian's destination are downvoted using $\mUsePath %kurz zeigen das activity recognition was bringt +By adding the activity recognition to the system of \cite{Ebner-16}, we are able to further improve the overall localisation results. +The approximation error decreases by an average of \SI{66666}{\centimeter} for all 4 paths on 10 MC runs. +Due to this additional knowledge, the state transition samples mostly depending upon the current activity and therefore limits the possibility of false floor changes. +Fig. \ref{dd} shows the recognized activities for path 4 using the Nexus 6. +Despite a short misdetection caused by faulty pressure readings, the recognition can be considered to be very robust and accurate. + +%Fixed Interval Smoothing +At first, both FBS and BS are compared in context of fixed-interval smoothing. +As a reminder, fixed-interval smoother are using all observations until time $T$ and therefore run offline, after the filtering procedure is finished. +Thus, we calculate only the positional error between estimation and ground truth, since timely information are negligible. + +In contrast to BS, the FBS is not able to improve the results using the weighted arithmetic mean for estimating the current position. +As illustrated in fig. \ref{}, the estimated position for filtering and FBS is identical although the weights are highly different. +To address this problem, we are calculating the average state using the \SI{50}{\percent} best weighted particles. +For evaluating the FBS this estimation method was applied to filtering and smoothing likewise. +We deployed 10 MC runs using \SI{2500}{} particles for approximation. +%The resulting positional error between estimated and ground truth along path 4 can be seen in fig. \ref{}. +Now, the positional error along all 4 paths could be improved from \SI{}{} to \SI{}{} for the galaxy and from \SI{}{} to \SI{}{} for the nexus. +%Similar outcomes can be observed by adding a resampling step at the end of every smoothing iteration. + +However, BS still outperforms the FBS by an average of \SI{}{} on all 4 paths using the same number of particles and \SI{500}{} sample realisations. +A visual example comparing both smoothing methods on path 4 is illustrated in fig. \ref{}. +Another advantage of BS over FBS, is the ability to still improve the filtering results even while reducing the number of particles radical. +For example \SI{50}{} particles and \SI{25}{} sample realisations are providing reliable estimations similar to above experiments, though the risk of losing track is higher. + +Despite the very good outcomes provided by both interval smoother, there are some rare situations in which smoothing does not improve the filtered estimation or even improves the visual path. +For example fig. \ref{} depicts such a situation for path 3 using BS and measurements provided by the Galaxy S5. +This shows that the smoothing results are of course highly depend upon the filtering performance. + +At next, we discuss the advantages and disadvantages of utilizing FBS and BS as fixed-lag smoother. +Compared to fixed-interval smoothing, timely errors are now of higher importance due to an interest on real-time localization. +Especially interesting in this context are small lags $\tau < 10$ considering filter updates near \SI{500}{\milli\second}. + +%as seen fbs war im fixed interval schon nicht so gut, im lag ist sein einfluss vernachlässigbar. lediglich eine verbesserung von... deshalb konzentrieren wir uns bei der diskussion auf den BS. + +Fig. \ref{} illustrates the estimation results for path 4 using \SI{2500}{particles}, \SI{50}{sample realisations} for BS and a fixed-lag $\tau = 5$. + +%fbs ist hier mies und liegt direkt über dem filter? oder ein fbs mit anderer estimaton und den filter nicht anzeigen?! das ist doch quatsch... wennn ich den filter net anzeige. notfalls einfach den fbs nicht nehmen. sondern sagen das er net taugt und rauswerfen. %Smoothing mit großen lag kann die zeitliche information schwer halten. das liegt hauptsächlich daran, das im smoothing nur die relativen positionsinfos genutzt werden. das wi-fi wird nicht beachtet und deswegen können absolute justierungen der position (sprünge) nur sehr schlecht abgefedert werden. +%fixed lag smoothing verbessert den pfad ein wenig und vor allem bügelt unrealistische sprunge aus. daher wird der zeitlich verzug gut herrausgerechnet. + +%beispiel multimodalität + +%ein paar worte zur berechenzeit. + %Evaluation: %\begin{itemize} % \item Filter ist immer der gleiche mit MultiPathPrediction und Importance Factors