From 752e8cd9ae38ab27929bde90a2bf6af32137d328 Mon Sep 17 00:00:00 2001 From: William Chen <billyskc@ucla.edu> Date: Thu, 30 May 2019 19:24:40 -0700 Subject: [PATCH] finished simulation for jounral 1 --- CoLo-AT/Algorithm Comparison.pdf | Bin 18393 -> 27907 bytes .../__pycache__/data_analyzer.cpython-36.pyc | Bin 6875 -> 6905 bytes CoLo-AT/data_analysis/data_analyzer.py | 8 +- ...simulated_dataset_manager_w.cpython-36.pyc | Bin 7071 -> 7048 bytes .../simulated_dataset_manager_w.py | 2 +- CoLo-AT/gs_ci_journal_sim.py | 69 ++++++++++-------- .../centralized_ekf.cpython-36.pyc | Bin 3620 -> 3626 bytes .../__pycache__/ekf_gs_ci2.cpython-36.pyc | Bin 4341 -> 4318 bytes .../__pycache__/ekf_gs_sci2.cpython-36.pyc | Bin 5435 -> 5445 bytes .../__pycache__/ekf_ls_bda.cpython-36.pyc | Bin 4814 -> 4820 bytes .../__pycache__/ekf_ls_ci.cpython-36.pyc | Bin 3807 -> 3813 bytes CoLo-AT/localization_algos/centralized_ekf.py | 4 +- CoLo-AT/localization_algos/ekf_gs_ci2.py | 3 +- CoLo-AT/localization_algos/ekf_gs_sci2.py | 6 +- CoLo-AT/localization_algos/ekf_ls_bda.py | 4 +- CoLo-AT/localization_algos/ekf_ls_ci.py | 4 +- .../__pycache__/sim_manager.cpython-36.pyc | Bin 5346 -> 5319 bytes CoLo-AT/simulation_process/sim_manager.py | 2 +- 18 files changed, 53 insertions(+), 49 deletions(-) diff --git a/CoLo-AT/Algorithm Comparison.pdf b/CoLo-AT/Algorithm Comparison.pdf index a1d4ee81737be9c0f6d25f3cacc10dabf459062f..ecf54c22f8094da499d2356a5eb9472b84c1e26d 100644 GIT binary patch delta 17212 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 a<YVOI;^Aawjs)W5<mN)6q7qXONBTda(>hZC delta 7827 zcmZWrbzBr-*99p-1f)e`>4puK?vU;fkZzWAX%I$Gx*58qk&-S^36WM(DM3U~5D-bp z4}JN5@2l<~Gxs_3Jonsl?w$GV!x_x!c+97rm_U|lJnd_A=)n#*%8`F=;K16kvk9Zy z%#dj@)SdS&xq>c<f{D)aqvJCTc^}(J_b_KiOU#h4&g`K+-|UD!-Kg0&#P<T~LpSWt zP6LmFj<21c-iw|UIyqip{9fuqTpT*MSZZD^^;w5MRx0$g^xV()@axA4VEK+@-DXz! z%nhKFgumk;xo|(?^Vqod{-AoQTx*X2$@`irDKj7S=j*owWK~DZ{n4psE00%IBP4n} zB|RfQ(WZHd9eiA$t-g1B`f;6V_RcwJGj$V{lthEy&DK@D+kCdsh2~6Bv2SP9W}_Jx z&iGDF_m@^T^31>aE9Zq%@7O+?SQqDZPgtk`WC%}nR7MJmXnJ+IijEqH8co)yk>YhH zGC|Emp<a%?wAS4+nqRc?YP&1b=0?S(#w`1{rYzO6@7!jvT;5M6I&~B)n&aC}yk1=w z@J6HD)R+Kqa5T{g6AwI|n6*uvQ3X7Yk`}6Dm<eQ^3X|XG680RbQ7^yemv{{yG>Uu( zoS3nqsndjY`(dlQHXOb7OOSW>%4<tW88~Z~eYj<KMkK8m%7@skVUlE5{YF%Y9OJf? zB3WPD#Sf`%7T1lflDrw?_^M|*F<l~M?J+jJz7E&K={vJ$fd@y&@qnKWfHx|?(m;Zi z@qmlav*r;$j+o~f{8ZdTyIxlIk=h#{c!M3!V6<Y}bYpfd-Xy6#j>qP1yyMEW+zYy& zYGsFsbTM5oE$7k7o1%4iwBpetm3!XHh~STkq&SJY#_XFR?L_1Sv1WH~axSk2Z)ZTR zI`0rCs!*)kS}2_cjiiywDF?=kHBoI<PNA~g&QII77B+5dzuPcTl~{ty>Nh6v0j-%4 zCi9ZdKAd?Rd$pr-n}B(DiK9ZpsK(gaj9u8prsrQz9^;|p29U!Wvu;f_XJ7XgK0Nn7 z-4HT&tC5r}3yRD3Ut5WzClIc#GoCK&iSk{!_Bf>^X6l&L;v_g7o~iiRJ`ztMmnnvt zd~?xnC_+)%Yl!z=iyqoZFA}zu4iu_Zs`uR_v&RrYAM<`)GwgWJwwHujYc)zwgDz=_ z!DnzPdc%ZE2U&Jcl!7&@>ND6J1(IdNYc;<zI+7WXKaj~%GrCVcCNWytGlw=f^!P;T ztgK?u5Y^zK!=KJx@qKani?_5I<Hvo4tVPAp(tO<ajCF;@_N^>ep1l81WCT<%KKwe5 zUs|qirA2U%&?s&?^KJO3klK^<W8vN>S;JvUbu&J!`&lZl`pO4_Kp|Qxk1_uyLPP7! z`->tWSbolM>jM`I2|?;=+l|qbc-T_g3=;(#h$9l7svcK`r>!%GJJ%im>VE9d+N-A( zi)PVO2_z2LAh~9!5;pY7)&g*k0f{G)f!~Ka4%e7d<mI))vC7B38@I}Ai*6Hb5M#`s zzLu0%o?d9|P@CD}E>j?Rmt>iK=IMN6iMl_%>PAQjC4wWg!isH<RKcRRBCh8f3$iVG zI@{m*$D@iUNbpnn8Vu^p>>>7R(Bx!d@`f+RByvTVBD@KoC*BTy#s&atj}n`i@Zdcc zhMQ6HWl8q3StN}f(Fqt(Wy-2A$O5CsPa_O;a$x({cAF;OjkhQ|qWlD<@rXkU&^Rb| zgr+0vihA{7LF9y_32XD_(H*qVP(}yeJ&<z9nSwZxxTkPTEL?m}5?N@nhMh!ulYvbL zc(sym8C4R`v`}P{^9U##trS%08?ThUg?T@5vvM<EK4Y@7*H?B<*V=_ju;x|eTWN~# zrW;C~=dA^`{hWO)^36$;_VnG&<!b>Bw`__jK^YSFkZY;~so6c+=xYtZcok2>s>*$7 zSztJk;!8AK>hi7O>Uere9F<oiR%BI-*hsjHoJa<@c02g^g!zFL%K!{3mc&R*3O1G( zgpeum9t>k_lR4Rv(!|Wc(){4XCV`Ucc)lzQAs7PLlr&`Dzm$j=4rV;LO3ty?ROy6X ziXt410b6u>dF*-^`xb=~?o=yQIJ^#N3eGER>d%z^;guDser?p%;^D`dG#t17XSgif zRy1BNH2!K@tiho`A3iA)@1Ylag1jzR<4W^o<@oLW1d;1Mm8jI_#68%`LfCYVwF2() z&VR;Mu`SOVJe37=pR~xxy?^>%F8j7%YeL5Tn|5|XU&pLA8@TYq;X)bRx@Bu-6$2)^ zUyIXn*{E2C%SFQ%?5=hH$bF0jCVb}dq?RIain8#tTGR=B0;J%&IvIzwrab$YHauXH zZ8WTEP^|a<X!K@LR6n-{HmV)3-$E2A(P^TltG}TacWcT=WLs&)u$8-O+6G06!E#%> zwR^QFNQiwvCvu4ML(514;dR0%O6i+}o#itd1|c!V?Y9m1#;$fQqW9jhgg0qVje5>j zmAy&!Rc+!BdI-ohNpVsAP{hYJ(-o~-NUgvkRltd-=G4z=?ynyh*6Ji%qnsh$i5kd& zDB~o}4K}FR;p8XK#LjXO<uG{EcU3-_mBmwwM1DTr<;q9*F6giC9O{!J=X8*`WFZ9N zVZ~lN)0;Rd;0FZ?;?{5WW!%MuKgtaOGMZr20flj*9Khw5xc?+c=y~q*D;#QO!RtI7 znGzH#%UZl)X+7v#>um+*&@lcxKK7h8KVfnaW>5QB<Bg)WS)S@G;1|*;LNSyYKfV&s zyN1lNIbv?-<+$!(Guc&U5P1l%(8s`ccr$Gki(P5ZP0C@KTr;hm+2wjQOWKiu4Uvp= zm`JvmZ3e7(lQ7|8abI1omW7jTD>rS1zsz=RV0*)A)f=N0szUE9P{9jb_WwF0m(MC< zs4nf9qC~^)w=lW2OvYJ6syx6L8+M3F{7OgBITfSxknYL@rx~25Z(|rHVrN=+2Xkmq zedUbI%O=A|i;ZoTPWVw6oW|@S2Ew&hi7Vv`oST5aFnFmqcM^8DfG<l}1T#uqpdnX! z;QOTh_Io|1&plQf`O9?dVfmyttD5`ikK}Z3xCAd3@tu}q5t<@+dkHhYhgW*fGqmve zzld7#Bz2&iWoWUZUmvcZ4D|95E}kx!*Gj<<VrN#_-RNX4&YQ=#i6`>WjmJ!tQjc|a z5G4aXEy)-st4p%s)Ngdg#AAWRu_aev1(sCX5yq)bm3FUfEI}Dm<Bj<vsSpkg^D4S3 zx&gS!FrWTZ?20-|*+SKLvEWD1iL5y8Dz!T#?pXHGDl9Em2*1+y-*n<=Xp`WSkQrQC zuaJgR+$Q*Og|1(q_2r|59J7i(%7><#(d+>Lf!Wg6wR%?H-kk;<74!1En=_e%os2q) zyfULlR*_+EwoQ4s5=G0+uHV)fCoz`8ZoBes`mGq&u;+2BKWmY9%yK&!F-sg5OB4>g z_Hf@{AwPgl(qUBgr(~vr67A1;!KRO#9^O+CF>dX57KQPz?vS&wJlGROF-CR-0?0~F zz&s$9g*~%Be5SFIrvL0AP&sOu+a1|>Hx}E$v6z?QtwCX69gT8@LY@WwAfY>cQQV5z zE@xY`k+~_gvBP(D{|4IWSD7&D#?<_)R$;^34fw)|_rFNye9UoJBY~w1X(z^XmxS0I zKNwSs>W*ST;b!zKE7xn+G5O_q4T<a10h<n7NnGO%bFP9GnckZ3dBm~eDkvB_SfRP^ zmXTSM%-&K|v;(OAXNMNDPML_nA!pIfH^{3nk*cd&)l3;1oUDf0OluA#Q2o8<i4_4P zNy!trQ>Gd;8bU8}B|9m&ljOWIx$Mwb9ho(s9QGeeu73`vtz%3lFQIzFr%6Nj1K8cT zMHk#Ddj6SDzuI6op+cnn*}$YSQfEzTmv9OJRgazuqw2nG{$;aZ(PQrks_cP1NpoFK z{=@c{HCA*c%qD~w_pWSO+3`-{kKwY#8)F!W*o^Z9vOPfD2T(XSN@i-{av8fO3|-x$ zde@a{MIl=mFX`q&(*$0s;4qEt=K&%5PxP9o_?*k}So$X+7{D|eER0CgESMobU&JuZ z!lI!RAD91`{@%BO>PPg}qCF4#c2kvKndev((!P4r$M8JhFn*(EUzkGjvB$_8&AcR~ z_(R71qhtgB1J0_Rw&Sbivt6?_k{x%T^Eq)*?C`bWvu|k^|LJ-%({}eO#_|EW-L3<- zE%T0(jg4dT=64K|&(5Fba@0!+i_$f3MTKU^1XwHyq#(x+N>;AnWYD7q_t)B@0U0$# z`Ql`sv}YW4HPJFf1#RBRle1lSi1A>;(%JF>++q<~e){$M+t9p*#>4z+(&sb$wKm^W zx^7zSjpN??VDN#cO(pgAH=h)M_cLHrcbXKAMYM9*lUvgxvg!6>KZJ{Yonmh>LCjp2 zVdUeG&E~+mb|WQm%@0Gn8%-X$&C<t#_M)0w1I0%;Pjp^vy7fPLpA|3l%)gz9o1U3l zoJot~F8w~a6I&a_-q~tS+2kiO_wiWVrwhW$XN0Eh41OfR8{TX40#!4VfQoiUeExjA z_`s&{&J9?A=<Z<hH_<&v`|1ROB0zL+kmdhZKmA4bb{f`$mNwq_WP2Cg)l{69X{g>I zstXtqC#zhwexX*i`I_F=hxRx^M}pzl7VbqCkTCD@Ekpj->d5nQB`8rkRR73vQjJ_8 zsa%Q}h>E(U-xiq4UDe~8uRb88;)eg+f=-l+uCST&_Fk_uxm&hb(3!ZX=ykVK@42(p zV~s-86-!ii=eu>s&p*fI+uwGtVea^UkU=j*hCoZ&qKJEgmhFXgYDv^Y$QMrgSX+0L zIx(;$<ydn&=%*#$B+Z-{4l$zgk0-jh0)Gax0H>Q9Sw8&0VN2lo=8G}<8z`Rm&~L=G zMWt<L-&YNF^31&Y5?S=mySAnfid-k<J*`};OR|`?qAfL}DPj}@ZWOqrx3Vb7Q~-(z z1jh%;8#Bo0B8QIiC7E{mXE8G3KXTS)p$)N)(VOzOoD<$uvJD8ZJ#!xVqJd)CP-pJ* z29^bonA`707&j-1tGmBvFu>9xjKoi>fE#JlRy`}=W^nU2{~qFDBT(UP0or*ws~^jy z|3i$FhA;1!&XxnrtbFp7(OQ_lUZA`Y5wPh~ZK0hY_Y9r6@7EO^OzVFOyWJUlC5_rk z*MQJcD{YfuI(u6sZD+4orKi6jy0bk3s4n>tDAuMGV)1fL;O`p*6|hpU&y6mvzf@t$ zW%5yTt4r?9x1}1tkEGf%VO`?U8QL||D;BWS^0ae@rDVDv3y7Y))Ma8lubA~3P4>^T zK@pFjHhGGBIvuMO6iDYEPdNw&Sulmq1WcZ6$jcMym-yK}q$G~?{gTuDwLd2epzVbo z>kbCHEh|krtj17Pm03!x#X5@BMzI(Z2`%}tQzWi!4~E`R(YDDTXl}K&C*PB}QMOnz zi?2`=xw|ht|5Ki|ksjOB{}Wl_)C1VJr#V8jg73}c>`JeP8>gDhXGbF^?qS*-@OqDF z1*rXa-`bgj*wxGzccHQ_yJIs@3fwcm>w5bEF5B!=jAdR{VS%)dp)wb4lVCKT?#tnm zS91_5b)dQ{+{XJ|lZ4WUL;dZ<^ygO;Dr6lfk;WF?PzxsiLpmyL2PGqwomXO-!t$~a zEpr;4`4hN4*^s;U^M{_?=r{XJMb|g~RsU0p?%cF=q+;KQI}cn7Gj$@?jUC|AGTS<F zuArhQQ}qrSzS)(7-|+s{DAksDeiPp-#&v0|fftWdze{*iy1y?aw-i-xt`GEP^7cWy z+aKE`C7yPElis&{$-$q_7QL=(Li!+Rx!{O}UerSj78sS5^z4K#LbA%WA-1W1>1WYF zx`-HW%lQ3>;BJBJ&{-of)6xcj+pR%K?3x-4=IRgckr4!oq}8`D`dw8oN%z(D7`s-< z0NO92Mp=Sy3oUECQXw#N<!3onAoZ7n3jR6`_I=M!``&dLm`Wl((LB`}#^a5`;SFV? zIFTQ|<aEwvh$<M<eK??t5T(nQ3~^=8)qt_S5DRSHxwn+NvK!uuMJLn)j0`O$uUUNx z8_>!bxy}dIsNmFlCDNP|EjPrnkfUI(m+dY-s5u)MS+DqREQUdt<en(p>E*P>{j80g zf^i_)b(~EIweqsr5qVmGScrB7KRkMd_r_|rvH&_KCejSLu;Kb;@6EIdx{R%+)ZNv) zWi@cPTWO+})h1i;dg6m0AV@KOv)60&*07-b1M>4S&l~n8sHi-zudzb9!4z_>bVl`$ zHC4la(|XWu#_O<I5YJUD?W+H?X^n~Wo<~U_ZuHIZd9B*xwH#{Z9;=))y3Sy#@wLUA zAHfvkQ&m61nelXnqVDh7h`U?aT^m)OjXX&T57<f_#fwulRkCM811MB!U6@&n<HnF@ zbVibD*qaEvGv%?VXfQN7h{me3=5dfk-m=V<K+&uQP*W!>!kf!2QIqmk&o*;he<nzs z&3Km_WHog!vALlJC#Or<sy$>?P5bECWtBFBC=OLzPWtSUr{T}zs*FEo=PAaEQiiR3 z^|VU0xk3BM`3qAj&|o|s?N+y=f|B4AOU1x5?qAuZt*)FL;mSyFc{&-bKbF|*=gO|5 zJeAAZeo9%ooM=!I?W5AK!q1#Y*GkQr!F5FCXOxFIY9|s$7Um_K(=e{qy=D)Spv)-Z z{jyjy_jZI8|Iv}>cX2J{vF?&EvP7H3>UCFkdgZ&C=Y8uh0VbmtFXwFV_(+vg9()*j zG88ONbA+2Og4M*q=)_kC%pAuYs*s<K`kn0?@ZWV=EPNp@CEqcj3H76iS+5twdHB5j z=$pJ|afK1trenct{gc3f)i+stg1rr{hmCCh>g7jj{ZD3TzV2;v^Y+~r7<aO>sb$}$ zSwqrlG^*|MJq0xPXbwnSN&@dceeT+HkN8njjqkgLntPgg8Ad|2y@9a-jQV%n1Lt{Q z;dtj?`~bX!mT?1Wy{d4G$XgbcVDC|kkyYmGG<{$%kA9eB$kT0<1g;X%?V=xF5O(ud zT~75seW!h(V#1uf9`I7~P}NNI&X29614}dXNXtm8Q)U{#7)`OfA;3E>7Ih_7GJccU zrGfv2a*ZNbI;TgTG3zKAvvwb|XF2b|hcJW$w&z-2{HRlY<XYa&9`|nd7bX#9^9`}A z?r#Nw3GJms<I!;x)0^hG)!Pc|ds23X;h|2uZ_gg(0_FbcY%J_Vfm34lf0h~+^Rb<4 zxqJ0fc3U(9@eCCd;|S%g{mnqG>7<Hf-;c&u2fxc~v~=xW!H?t~Un<K>JlD?j13sQ5 zPZ{&<SO<OEu6qMIG~<LX_<NTgbJ}@*Ig$)9+irUpTp*DS`2Jkm+dnJa_~gb91ax%x zpEsv5e0YAcH@Pk~B>agCH^OHBG1j%-waqSb62ZWq0M8ZQv@!oVN&;O6K%)+Ay1!<L zkAv+gMhPgEcQvjLKI|5m*j}G09!=U1*dfg^Tw#5#^D11<TiGnD)!~l6efqmeqO2`8 zU+0c<Ja4}llhN6wRG<Dl%T%Pw_rarc6_j6;;hEa-{F&Bp$C}i{*S*yBwwI(iZr@k5 z?Zkm=)PcG+bOS#rrA`ix&rkPW=ZO0rN*SPZ%s@inTi8fJ7!u?WhJiOFjll_FPB2^2 z8-$2*)r(7A!34F%I6*#jl6oI$YfMl~oCCZfYXSO7aMVZ1YGZ=i5*#3wJPP!b<fu=P zzm5r#N^ydN3U;8RG$&|$+X|eP;jI6B8y6F_l;s4)q)0#(r5$iaj<a4`nF14ZmgfY6 zR7$`?1&(?(RccHSewzb~QS%2oZgbT0se538-xN8(ehq7oN|~$PK$9L5)K}pGbG2TA z%&J^qg!Ue2t;PwK=(vG6>YQM{1PQ32D-GsraDvUc&p}>Ij`|!u7fjGg>sJ;MP}V>X zG}q>+e{Nug2?ptKfbxb=kV2Oe%rPtk<1X$ON&%#fNcFrl;d&r}Ddd6oaP}%rdC=xU zSh6{RT!TSWW*lXT<4;>geO{37#fGv=<gFhE{REL@Nq1OhiU||7eu{_cy|5pA_IxV) z21GT500fg>vtBzRO#8q`yK3zu70>J=;cuZI^N194kesa0$w;)lJ2Un~yaZEf=?1#m zuo<AWrck=xc5jAaOK!)nj|O6wo*G49Y7j{oB(t5bSQU6+sAmWn-Jn%=kBQYveBd2C zqeLiDPuX6^e`J)Lj_<h<&9qtYl2myp+sah*h*;8-r|gB`r@@*yl_Mo?C$$-$LS@Gx zCa^k9!A;05P@+Y8hi?Ed8-~c}PH{Nif2;E($C@MarfsMXZ6=|>YufN3GVyQ(Y4UC$ zN07NHTN_8B6w&p^fH{3(Og63?rpIVrQxq1}_OxXUtwreAtIXv<X)ZE<i=*>*hkj=# zShP(K^gt^;v3f_Ni~iypaDq>a2f>t!d+uFb@RlJbNMqsvdKq%mKQTdJGVpskplxj- z{B~|$=!>hP_eJdC=zDRo^|o~-09DM8L=b*U4{Jw9Ye%%TmkR+HYbJU9;yHxh6T<HW z;rAw}e{c302T+5+1R+p}4uoGF0u%aAqyvEo|0mLgz(oEN=|SMo|3sD$IP6zM@W1&X zaQJ_oT0!85%Lr|0?PTleY-{HUfeZYBp&jiVE<hv%3jE4r4S`?QU;}|))?f>PU)Ep; zfnV0}TPNbOjNj4`zbk?8+d~k)`3d+PA&5(U7YO2#)fIxcp!%iJ4T892a&xtXAcP>m zZ`j=y?dWC$LHuSU;73Ccmy8||flIpI#zF)x`F?pVaH-hC-O}0?B5=v-2@&|sN^sdC zflFpjA2*1=CASwu;8LX*v#X6Q+QZrneUaf(uQx>CH#-5pzb)Dgf`rz)*ok0b!oX5{ z793#&90~>B+WTO_K_v%1N0<;4d9nM~58?_T_#MCmg@1M9Zwz@+*I$^3$VEkeVnWbg zQ}8#25C#_<Q~{_UROlZzB;r>i|2%<&{fh|*{+gvf_X#3|E>!=4K?PwKTK>l1zd8;4 zwGkom??%CYF(DZA;_#nmh2R&>{~Hs8{cRCcNJ#L%9Ke74g$hH3{tNy;28Uftz@H?- z2;|>=fC>vD|8@&1Eb=cV0vGxxA0Q&|kNr>)A(6jrg<kaaZ^bYuLg?>eV9<*`{Z%v! zD*S8Y{}2L$L4|%f^UMGLP8kgGF9{6!j|(uE;IH@auY|&a|6p*q;NL=EZ~^H5V88nh zg~9(-41)^`|2;@B1XSc7bqFN%Z(Csq;a{JpKMNFq3jUK%KneD5LIK3DFUp^Xg<$_X z>7HmyM`v3!fw(w?U)j~};*ExZZ=I=c!6A~81RkE2Xis0XtsMbO=%V8UtgH%}w+a3a DQ*?x8 diff --git a/CoLo-AT/data_analysis/__pycache__/data_analyzer.cpython-36.pyc b/CoLo-AT/data_analysis/__pycache__/data_analyzer.cpython-36.pyc index 4e73685ba4848d50830b3fc9c200733bc22d692b..00026763e21aa8bcb83c2edf9f8367b7c06a0654 100644 GIT binary patch delta 339 zcmca@`qPxtn3tC;s{cdG&W)U+LX1(9<%LewGpBGjGchvMuw`+iu%z(xGD6wBDWWO- zy&xI(ES403W{^007HbM8l*N`J2xYOSz|3GrG6TfsO%a2bQNobLnZlhS1Tr1S=Bi;y z5f*0v=@%>EP7whyfWkb@42%pZ48aVV;*-;a&7?U(GILWEqKjjz*n@n76{2%v(~ZI4 zvHj#V!U24|!I|l~iSflinK+}^$+9BGjJ%TrMU=U2aTKSP#8>8I=1wjVnaOB0nNL)P zpOFU$`IxyFL6C=Wv#Dq#BV*3wela=GECvRKqHGZ103tF#MCRs0Vwy~hrIX)Cd|=F- Ud{@$)I|n3Q03vE8>r1Tx0Bwm-SpWb4 delta 292 zcmexqdfSxKn3tD}v*km~_KlpPLX1w6<%Lewv!rnMGBPsMuw}8Q@T7>P@bxkQdF)v% zDg4bKarP|M6agrUEkzK@Vo!nTV+ZRKhv+L|$l^#5N)ZN`2xN2Cu%w8HGl2AzaHWWX zX@)HBW(G!v6oz01O$oo3lN*FhCd;x4Og=9hFxit;f-~J13?AE0))g^k<e8i(qCB}z zWG18DWDQXnaV8!{K4vaPAOy33JVp-2D*4Hd;*y&yL`@hOvnQ_=lM~HkU|=Z90uc@% mA{|6zY<?i7$;4PPnM?8mW6tE?lJ4BuAn|+<Q9apLY7GFQ=|Ow| diff --git a/CoLo-AT/data_analysis/data_analyzer.py b/CoLo-AT/data_analysis/data_analyzer.py index 0e2fd62..a68e60d 100644 --- a/CoLo-AT/data_analysis/data_analyzer.py +++ b/CoLo-AT/data_analysis/data_analyzer.py @@ -233,9 +233,9 @@ class Analyzer(): fig2.plot(trace[0], trace[1], label = trace[2]) fig1.set_title('Location error') - fig1.set_xlabel('Time[s]') - fig1.set_ylabel('RMS[m]') - fig1.set_ylim(0, 0.5) + fig1.set_xlabel('Time [s]') + fig1.set_ylabel('RMS [m]') + fig1.set_ylim(0, 0.6) fig1.legend(loc=1) fig1.legend(loc='center left', bbox_to_anchor=(1, 0.5)) #fig1.tick_params(labelsize=18) @@ -243,7 +243,7 @@ class Analyzer(): fig2.set_title('Trace of state covariance') fig2.set_xlabel('Time [s]') fig2.set_ylabel('Sigma_s [m^2]') - #fig2.set_ylim(0, 0.2) + fig2.set_ylim(0, 0.6) fig2.legend(loc=1) fig2.legend(loc='center left', bbox_to_anchor=(1, 0.5)) #fig2.tick_params(labelsize=18) diff --git a/CoLo-AT/dataset_manager/__pycache__/simulated_dataset_manager_w.cpython-36.pyc b/CoLo-AT/dataset_manager/__pycache__/simulated_dataset_manager_w.cpython-36.pyc index 43e34a0be729cd1dc1ba44c010498b30d68197cb..381de36ccc1f4eb7c7dd8ef1ec3fc445ea46b36d 100644 GIT binary patch delta 163 zcmbPl-eJyZ%*)Glru9S2)Qz04`DCszF)-9HW-&A~)Uu>7*0R<x7fFEV2~2q#CJXR? z<PND}PvOgEn!s4JZt?~JdB(WOIs%p48-SvMKvAZmIH>3afwswMg1WL|H7w1Hj36_` zYk0vdhAieRiDrfxhIq-z8w6DuB`04K{KF_U`La;g<|JW9M#ikkOGFYFnKrYF&R_!o Dyzek9 delta 185 zcmeA$pKs1-%*)FaU-Kbm%0|xDd@@g%7#M08vlyBgYFSbkYgucUizGnw1g5+LlLh!c za;Ma=r|@MnO<*iqH+h4AJY(Ku9f3;j13*zhpeR#O9#r&#K$}2`SPerKdkvc;Lyb@~ z6C=aqFhN~e@fwz9Mn;e&5;eSF7DE<umSi(S4MV)t<OPDNj8c=23I1V}o_tuSi>b(Y ZvzM?7BV*3wevt%bMghjnA4F!b0RW7JG^zjq diff --git a/CoLo-AT/dataset_manager/simulated_dataset_manager_w.py b/CoLo-AT/dataset_manager/simulated_dataset_manager_w.py index eac9c42..bd0238a 100755 --- a/CoLo-AT/dataset_manager/simulated_dataset_manager_w.py +++ b/CoLo-AT/dataset_manager/simulated_dataset_manager_w.py @@ -185,7 +185,7 @@ class Sim_Dataset_Manager: bearing = math.atan2(delta_y, delta_x) - gt_orientation + np.random.normal(0, self.noise_bearing) message['data'] = {'time':req_time, 'subject_ID': observed_label, 'measurment_range': meas_range, 'bearing':bearing} valid_respond = True - print(self.robot_lables[rbt_idx], observed_label) + #print(self.robot_lables[rbt_idx], observed_label) message['groundtruth'] = {'time':req_time, 'x_pos':gt_x, 'y_pos':gt_y, 'orientation':gt_orientation} self.current_states[self.robot_lables[rbt_idx]] = {'x': gt_x, 'y': gt_y, 'orientation': gt_orientation} diff --git a/CoLo-AT/gs_ci_journal_sim.py b/CoLo-AT/gs_ci_journal_sim.py index 7adbe72..9769bc1 100644 --- a/CoLo-AT/gs_ci_journal_sim.py +++ b/CoLo-AT/gs_ci_journal_sim.py @@ -18,8 +18,12 @@ from data_analysis.realtime_plot import animate_plot # load algorithms sys.path.append(os.path.join(os.path.dirname(__file__), "localization_algos")) +from centralized_ekf import Centralized_EKF # works +from ekf_ls_bda import EKF_LS_BDA +from ekf_ls_ci import EKF_LS_CI from ekf_gs_ci2 import EKF_GS_CI2 from gs_ci_bound import GS_CI_Bound +from ekf_gs_sci2 import EKF_GS_SCI2 ############################################################################## @@ -34,11 +38,11 @@ robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) sim = SimulationManager('sim gs_ci') state_recorder = StatesRecorder('gs_ci', robot_labels) -sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder, simple_plot = True) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder, simple_plot = False) -loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder, plot_graphs = True, selected_labels = [1]) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder, plot_graphs = False, selected_labels = [1]) -analyzer.trajectory_plot(state_recorder) +#analyzer.trajectory_plot(state_recorder) @@ -50,8 +54,9 @@ robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) sim = SimulationManager('sim gs_ci_bound') state_recorder_bound = StatesRecorder('gs_ci_bound', robot_labels, state_var_only = True) -sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_bound, simple_plot = True) -loc_err_per_run, trace_per_run_b, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_bound, plot_graphs = True, selected_labels = [1]) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_bound, simple_plot = False) +loc_err_per_run, trace_per_run_b, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_bound, plot_graphs = False, selected_labels = [1]) +############################################################################## testing_dataset.dataset_reset() @@ -60,41 +65,41 @@ robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) sim = SimulationManager('sim cen_ekf') state_recorder_LS_cen = StatesRecorder('LS_cen', robot_labels) - sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_cen, simple_plot = False, robots_cant_observe_lm = robots_cant_observe_lm) - loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_cen, plot_graphs = False) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_cen, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_cen, plot_graphs = False) - ############################################################################## +############################################################################## - testing_dataset.dataset_reset() - loc_algo = EKF_LS_BDA('algo') - robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) +testing_dataset.dataset_reset() +loc_algo = EKF_LS_BDA('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) - sim = SimulationManager('sim ls_bda') - state_recorder_LS_BDA = StatesRecorder('LS_BDA', robot_labels) - sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_BDA, simple_plot = False, robots_cant_observe_lm = robots_cant_observe_lm) - loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_BDA, plot_graphs = False) +sim = SimulationManager('sim ls_bda') +state_recorder_LS_BDA = StatesRecorder('LS_BDA', robot_labels) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_BDA, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_BDA, plot_graphs = False) - ############################################################################## +############################################################################## - testing_dataset.dataset_reset() - loc_algo = EKF_LS_CI('algo') - robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) +testing_dataset.dataset_reset() +loc_algo = EKF_LS_CI('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) - sim = SimulationManager('sim ls_ci') - state_recorder_LS_CI = StatesRecorder('LS_CI', robot_labels) - sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_CI, simple_plot = False, robots_cant_observe_lm = robots_cant_observe_lm) - loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_CI, plot_graphs = False) +sim = SimulationManager('sim ls_ci') +state_recorder_LS_CI = StatesRecorder('LS_CI', robot_labels) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_CI, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_CI, plot_graphs = False) - ############################################################################## +############################################################################## - testing_dataset.dataset_reset() - loc_algo = EKF_GS_SCI2('algo') - robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) +testing_dataset.dataset_reset() +loc_algo = EKF_GS_SCI2('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) - sim = SimulationManager('sim gs_sci') - state_recorder_GS_SCI = StatesRecorder('GS_SCI', robot_labels) - sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_GS_SCI, simple_plot = False, robots_cant_observe_lm = robots_cant_observe_lm) - loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_GS_SCI, plot_graphs = False) +sim = SimulationManager('sim gs_sci') +state_recorder_GS_SCI = StatesRecorder('GS_SCI', robot_labels) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_GS_SCI, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_GS_SCI, plot_graphs = False) -analyzer.algos_comparison([state_recorder, state_recorder_bound], only_trace = ['gs_ci_bound'], selected_labels = [1]) \ No newline at end of file +analyzer.algos_comparison([state_recorder, state_recorder_LS_cen, state_recorder_LS_BDA, state_recorder_LS_CI, state_recorder_GS_SCI, state_recorder_bound], only_trace = ['gs_ci_bound'], selected_labels = [1]) \ No newline at end of file diff --git a/CoLo-AT/localization_algos/__pycache__/centralized_ekf.cpython-36.pyc b/CoLo-AT/localization_algos/__pycache__/centralized_ekf.cpython-36.pyc index b622a79aa5e6e569d0346267045d4f76a5f9e92b..712e9c467ad91a8c3ed5dc2086cc45ebe01529a6 100644 GIT binary patch delta 547 zcmZ1?vr2~3n3tC;r2Rw8?2VijOpLcCJ25pgE}49cX(gk><N{_({t|{P#u}Dp#$X0b zCch$~&6}8onHYs8A7j-JQe<FYC;}0hOkk==aT1$_k|a>z7I$%KUU7a=d`e<TVv!U` zoivD$0THs3qu5Ls#U}T&$#Bbo6f?TtVhq2vc^exClcEqv1tW+68T|4;5EK~!S(@BM zN+40?$@e)V;#GjmTP&F+skueGAW>B?KRva?Q&Xx)03-r(MUfhaK(`$vrVb)BfW$41 z;>`5i#Q6NAA~BGd4v3JO9LA|Bb&EYEHK!yoz5>Rmyv14-pOIK{Yx7J_QFNDr9SLzM z7m`csK`sS558_Z0AXih8BqtV`f{Z|N9gusAJ3py7wJ1I_FD132$Q-1=0wm0sRb&aG zSv=x1vx@8(7{nQhY(TR1Ai@DeID!bL$sc)zCr{v6Dk=`*Du4(>5aA3W+$VeSRsxg4 H5#9s<sl0aQ delta 600 zcma))Jxc>I7{@PZZF{W;R;g&MSnKQIp!nL>7f=v&k%EJ83fC)*wxzX_J48iv&~K2* z$;CxC>C(a3LHq>y27U_7zbc568Gd>4&lB<s<S}ud&}R%Id@0xWZlCltC6-vD*W^aL z&<Bzg$G(hy5!}&Cy3M1Frmu^VsCa7|?@Vf%#sQPICY}_5Kswc<5*cyXkz40>(eWJK zi^e$62P8y3FgqSYTd>Hgo@0BGoXD`tst2}LV(LUcHpzx0yH?{l5TaL693((e;r&Am zKBX!%!UvJ2fDoVq6z~B<3esQpSdAN454YBb%-b^KyaNe*`3UgW6WJ&*h8-Dl%ZD|` zt`|7m`2^4}_H{FEeZS-Mr#O>s=XS~Qtj3)l`)l74|FRGN!@i~bB|ojMG<*NA4Z|5t z%W1!jRVX9%g3GvFJ}R<PK8Ln>#H7L()NJ`T?Q(@@kf(txum~&x%i_Ad8S6$l089ca Oz^cd@XX^jF8u?FFta{)8 diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_gs_ci2.cpython-36.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_gs_ci2.cpython-36.pyc index c9eaca6174e11a6bd773ac94e0954da503cad1bf..bac96246273de72566a102ee4ecc5854305bbdd9 100644 GIT binary patch delta 98 zcmV-o0G<E!A>JVgGYt(2K!)&K<FN^s0tb5(u1Dc|q_d|2iwFUxlkf*Lvu6ui0h7=S zPXP;)APqN@UJbYbHj@_)H<S1Z53^qmS^)u!le!Oc21x(_0CG{2!4MadN)Q_XE0bmr EkHo$pjsO4v delta 133 zcmV;00DAx4A@v~%GYt(2v4Zei{jmv`0tdJrh3iqcp0lR{iwFU<lkf*Lvu6ui0Tgr# zd<J|Ld=(e~g8~5nd<A?Nd=isi2^Evw3^bFk2@#Vb4JQfO1#og{ZgeRclMN3elWq-@ n0XUNa4mSY~vp5cF0RfGZqYrZiN&o-=a#E8V5HbNQlTQ$j)!ZoM diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_gs_sci2.cpython-36.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_gs_sci2.cpython-36.pyc index a64128bd845eeebcb7647366896682e70e402de9..c8abb3b50d3e7bbaa105b4b78ae49a4178137b74 100644 GIT binary patch delta 54 zcmV-60LlNmD#a=ZGYt(2B9HJ~)3FJ+0tb5(u1Dc|q?5-2%mG-Flmkr+bO34rd<laA MWC0rhv*QC;5gJz#Z~y=R delta 44 ycmX@AwOfnRn3tF9&Z@UDCpU6#XJVf<69jfnKF)N8(Qon;W?!ZnuFY?mBLo4Um=YNP diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_ls_bda.cpython-36.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_ls_bda.cpython-36.pyc index a42dc7eb13d092bdaa51326b6ba1e3eed3daf393..df5af6c196922ce05dc1069d82fc707493feac86 100644 GIT binary patch delta 44 zcmX@7dPSAfn3tE!x&1?o!$!{4OpHq=Z)IA{=rB2w*^;A#A&aqwrI~T_6lN=a07R1w Ag8%>k delta 38 ucmcbjdQO$on3tEUzy3~)-A2yUOpGm)w=ykew3-~rY{^u^zIhh26+Zy`<qRtT diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_ls_ci.cpython-36.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_ls_ci.cpython-36.pyc index 8f679589595ce4259c225d0622f73a6b0385245e..afce9361e52bcb64064c282a899d61e489672928 100644 GIT binary patch delta 44 zcmcaF`&5?Gn3tE!uKh#Io{gL<m>8E#-o&(s(P45Zvn59fLl$EVOEcr<3C#Z7097Im A4gdfE delta 38 ucmaDVdta8*n3tF9K-TS;T^l)9Ffq1F-o&(s(Q0xivn5jv`{rrP{@ef!Mhw;f diff --git a/CoLo-AT/localization_algos/centralized_ekf.py b/CoLo-AT/localization_algos/centralized_ekf.py index 821c31e..507d7a1 100755 --- a/CoLo-AT/localization_algos/centralized_ekf.py +++ b/CoLo-AT/localization_algos/centralized_ekf.py @@ -16,13 +16,13 @@ class Centralized_EKF(ekf_algo_framework): ekf_algo_framework.__init__(self, algo_name) def state_variance_init(self, num_robots): - return 0.01*np.matrix(np.identity(2*num_robots), dtype = float) + return 0.04*np.matrix(np.identity(2*num_robots), dtype = float) def calculate_trace_state_variance(self, robot_data): [s, orinetations, sigma_s, index] = robot_data i = 2*index trace_state_var = np.trace(sigma_s[i:i+2, i:i+2]) - return trace_state_var + return np.trace(sigma_s) #ef propagation_update(self, s, orinetations, sigma_s, input_data, sigma_odo, index): def propagation_update(self, robot_data, sensor_data): diff --git a/CoLo-AT/localization_algos/ekf_gs_ci2.py b/CoLo-AT/localization_algos/ekf_gs_ci2.py index 13aa509..2adbad7 100644 --- a/CoLo-AT/localization_algos/ekf_gs_ci2.py +++ b/CoLo-AT/localization_algos/ekf_gs_ci2.py @@ -12,7 +12,7 @@ class EKF_GS_CI2(ekf_algo_framework): ekf_algo_framework.__init__(self, algo_name) def state_variance_init(self, num_robots): - return 0.03*np.matrix(np.identity(2*num_robots), dtype = float) + return 0.04*np.matrix(np.identity(2*num_robots), dtype = float) def calculate_trace_state_variance(self, robot_data): [s, orinetations, sigma_s, index] = robot_data @@ -133,7 +133,6 @@ class EKF_GS_CI2(ekf_algo_framework): kalman_gain = sigma_s*H.getT()*sigma_invention.getI() s = s + kalman_gain*(z - z_hat) - print(index, z - z_hat) sigma_s = sigma_s - kalman_gain*H*sigma_s return [s, orinetations, sigma_s] diff --git a/CoLo-AT/localization_algos/ekf_gs_sci2.py b/CoLo-AT/localization_algos/ekf_gs_sci2.py index 9e97932..e95628a 100644 --- a/CoLo-AT/localization_algos/ekf_gs_sci2.py +++ b/CoLo-AT/localization_algos/ekf_gs_sci2.py @@ -11,8 +11,8 @@ class EKF_GS_SCI2(ekf_algo_framework): self.algo_name = algo_name def state_variance_init(self, num_robots): - sigma_d = 0.1*np.matrix(np.identity(2*num_robots), dtype = float) - sigma_i = 0.1*np.matrix(np.identity(2*num_robots), dtype = float) + sigma_d = 0.04*np.matrix(np.identity(2*num_robots), dtype = float) + sigma_i = 0.04*np.matrix(np.identity(2*num_robots), dtype = float) state_variance = [sigma_d, sigma_i] return state_variance @@ -22,7 +22,7 @@ class EKF_GS_SCI2(ekf_algo_framework): [sigma_d, sigma_i] = sigma_s total_sigma = sigma_d + sigma_i trace_state_var = np.trace(total_sigma[i:i+2, i:i+2])/2 - return trace_state_var + return np.trace(total_sigma)/2 def propagation_update(self, robot_data, sensor_data): diff --git a/CoLo-AT/localization_algos/ekf_ls_bda.py b/CoLo-AT/localization_algos/ekf_ls_bda.py index 83d0ad6..d8dab87 100644 --- a/CoLo-AT/localization_algos/ekf_ls_bda.py +++ b/CoLo-AT/localization_algos/ekf_ls_bda.py @@ -20,13 +20,13 @@ class EKF_LS_BDA(ekf_algo_framework): ekf_algo_framework.__init__(self, algo_name) def state_variance_init(self, num_robots): - return 0.01*np.matrix(np.identity(2*num_robots), dtype = float) + return 0.04*np.matrix(np.identity(2*num_robots), dtype = float) def calculate_trace_state_variance(self, robot_data): [s, orinetations, sigma_s, index] = robot_data i = 2*index trace_state_var = np.trace(sigma_s[i:i+2, i:i+2]) - return trace_state_var + return np.trace(sigma_s) def propagation_update(self, robot_data, sensor_data): [s, orinetations, sigma_s, index] = robot_data diff --git a/CoLo-AT/localization_algos/ekf_ls_ci.py b/CoLo-AT/localization_algos/ekf_ls_ci.py index cfe89cd..5f0738d 100644 --- a/CoLo-AT/localization_algos/ekf_ls_ci.py +++ b/CoLo-AT/localization_algos/ekf_ls_ci.py @@ -15,13 +15,13 @@ class EKF_LS_CI(ekf_algo_framework): ekf_algo_framework.__init__(self, algo_name) def state_variance_init(self, num_robots): - return 0.01*np.matrix(np.identity(2*num_robots), dtype = float) + return 0.04*np.matrix(np.identity(2*num_robots), dtype = float) def calculate_trace_state_variance(self, robot_data): [s, orinetations, sigma_s, index] = robot_data i = 2*index trace_state_var = np.trace(sigma_s[i:i+2, i:i+2]) - return trace_state_var + return np.trace(sigma_s) #def propagation_update(self, s, orinetations, sigma_s, input_data, sigma_odo, index): def propagation_update(self, robot_data, sensor_data): diff --git a/CoLo-AT/simulation_process/__pycache__/sim_manager.cpython-36.pyc b/CoLo-AT/simulation_process/__pycache__/sim_manager.cpython-36.pyc index 73c6d492da67ac9b0409341a80ca3aa9d5e6c4c5..8406071719767482050a4be41f2168eaa7139445 100644 GIT binary patch delta 380 zcmaE)d0dmzn3tDJqU}S>?TwsXY+Ni13=GadT&y-ZmaRpwtcD?rt%kFPOPnE_VFF{( zx6Pl}>=-AzaOi6D)Uag90j1?rxOy2G8A=#ZxSJs~4@grp6C(qN4rb8gojiwQ+GYz* zAto+epwYLOQgVy*CWmk<^WI`f&d<#)as!GM=}&Iv-p80S*@-8Dk$Ll6o~<lw+CcFt zy~*=AWG0sgidyJ^lz~hr(gP6&Ai@wt7=Z|55Mcr$Oo7BL=A6{LB6ASeV)8*j@p?-T z(+VWRQJh*5Us73+T4W6p1NpYd9z?i;2pbS#2O^w61TTni0TQ>Eiz|z7u@shOmO$Lg z3KZ0oDq;gE06WSZ!~(m_1Eiictthpy7_9adZ_(y(AyFnq+sU~ivW%9KyG6nQEzeb6 delta 430 zcmXAlOG^S#6vyv8oMy%siV>D*)M_vv5J*{B(8F@uqKIOUW~?!1)H6mHLqWC*g5Z9V zkf2rDzQct!eS+u{bWbks@4Wu!+{5`az71_T8r8o}eoon|)==~iA!M6Bze>-P$HY@W z+Df1W`V6@uFCysUU!^9b2E@_>A(&1R&QzL=B!SSfTFB1_ay!d=a#r|R5D3>rMiU#w zNh47pXb*`IqnUV_zN;;T$>&|y9cQ(qs2BOyOtf4m(Q0@x0(l-o9Z{z3@Q2W%M&wu$ zQsVd_@+K=wymDKlxp;;)v}DZ4K>@Wmg-^IkWbUEDeI|8m4^}X{ilONBnA(Jkn@byP zCb^CWRV=PyQT6SCIT-eASjXHBVhgc{*g$L|@JbLx>~b*4ANox0Ups@zzIaGub^#Pr y{4cbRUI}r)!9p#t`##jimE@e5t6@rRcO8#SSq^wj*Ji3|ww#V_noy;^)X^V+(Pv}; diff --git a/CoLo-AT/simulation_process/sim_manager.py b/CoLo-AT/simulation_process/sim_manager.py index 3024da4..a575a10 100644 --- a/CoLo-AT/simulation_process/sim_manager.py +++ b/CoLo-AT/simulation_process/sim_manager.py @@ -128,7 +128,7 @@ class SimulationManager(): comm_rsp.set_message(message) if comm_rsp != None: - print('comm', robot_labels[sender_idx], robot_labels[receiver_idx]) + #print('comm', robot_labels[sender_idx], robot_labels[receiver_idx]) robot_state = robot_system.localization_update(comm_rsp) state_var.append(robot_state['state variance']) -- GitLab