From 32704bd2b12a6c11700d4549a0405217873c05b6 Mon Sep 17 00:00:00 2001
From: William Chen <billyskc@ucla.edu>
Date: Fri, 12 Oct 2018 11:33:08 -0700
Subject: [PATCH] adding documentations

---
 CoLo-AT/README.md                             |  21 ++++---
 .../__pycache__/data_analyzer.cpython-35.pyc  | Bin 5900 -> 5996 bytes
 .../__pycache__/data_analyzer.cpython-36.pyc  | Bin 5441 -> 5557 bytes
 .../__pycache__/realtime_plot.cpython-35.pyc  | Bin 6464 -> 6434 bytes
 .../__pycache__/realtime_plot.cpython-36.pyc  | Bin 5818 -> 5784 bytes
 CoLo-AT/data_analysis/data_analyzer.py        |  31 +++++-----
 CoLo-AT/data_analysis/data_analyzer.pyc       | Bin 7036 -> 6688 bytes
 CoLo-AT/data_analysis/realtime_plot.py        |  33 +++++++----
 CoLo-AT/data_analysis/realtime_plot.pyc       | Bin 8238 -> 7568 bytes
 CoLo-AT/dataset_manager/__init__.pyc          | Bin 0 -> 172 bytes
 CoLo-AT/dataset_manager/existing_dataset.pyc  | Bin 0 -> 14964 bytes
 CoLo-AT/full_test9.gif                        | Bin 1820 -> 0 bytes
 .../__pycache__/ekf_gs_ci2.cpython-36.pyc     | Bin 4224 -> 4175 bytes
 .../localization_algos/centralized_ekf.pyc    | Bin 0 -> 4287 bytes
 CoLo-AT/localization_algos/ekf_gs_ci2.py      |   2 +-
 .../localization_algo_framework.pyc           | Bin 0 -> 2650 bytes
 CoLo-AT/requests/request_response.pyc         | Bin 0 -> 4016 bytes
 CoLo-AT/robots/robot_centralized.pyc          | Bin 4426 -> 3691 bytes
 CoLo-AT/robots/robot_distributive.pyc         | Bin 7181 -> 5956 bytes
 CoLo-AT/robots/robot_system.pyc               | Bin 4903 -> 4737 bytes
 CoLo-AT/ros_compatibility.py                  |   3 +-
 CoLo-AT/ros_demo.py                           |   6 +-
 CoLo-AT/simulation_process/__init__.pyc       | Bin 0 -> 175 bytes
 .../__pycache__/state_recorder.cpython-35.pyc | Bin 5037 -> 5033 bytes
 CoLo-AT/simulation_process/sim_manager.pyc    | Bin 0 -> 4448 bytes
 CoLo-AT/simulation_process/state_recorder.pyc | Bin 0 -> 5783 bytes
 CoLo-AT/test_simulation.py                    |  31 +++++-----
 CoLo-D/README.md                              |  54 ++++++++++++++++++
 CoLo-PE/README.md                             |  36 ++++++++++++
 README.md                                     |  17 ++++++
 30 files changed, 182 insertions(+), 52 deletions(-)
 create mode 100644 CoLo-AT/dataset_manager/__init__.pyc
 create mode 100644 CoLo-AT/dataset_manager/existing_dataset.pyc
 delete mode 100644 CoLo-AT/full_test9.gif
 create mode 100644 CoLo-AT/localization_algos/centralized_ekf.pyc
 create mode 100644 CoLo-AT/localization_algos/localization_algo_framework.pyc
 create mode 100644 CoLo-AT/requests/request_response.pyc
 create mode 100644 CoLo-AT/simulation_process/__init__.pyc
 create mode 100644 CoLo-AT/simulation_process/sim_manager.pyc
 create mode 100644 CoLo-AT/simulation_process/state_recorder.pyc
 create mode 100755 CoLo-D/README.md

diff --git a/CoLo-AT/README.md b/CoLo-AT/README.md
index b2cb09a..5bb0256 100755
--- a/CoLo-AT/README.md
+++ b/CoLo-AT/README.md
@@ -1,11 +1,10 @@
-# LEMUR-CoLo-Sim
-
-
+# LEMUR CoLo-AT
 
 ## Synopsis
 
 Cooperative localization is still a challenging task for cooperative robot control. CoLo is a robotic simulation environment for cooperative localization or cooperative simultaneous localization and mapping (SLAM) using real world dataset[1] or simulated data. The goal of this project to let users to create and test their own algorithms with some existing algorithms. Compared with other popular robotic simulation environments[2], it has fewer dependencies and more convenient to add localization algorithms without worry much about the robot settings. Moreover, it is able to use both real world data and simulated data to test the robustness and liabilities of these algorithms, whereas other simulation environments use only simulated data.
 https://drive.google.com/file/d/1NlUM2QXT_KfZkVOJu3Xsm8_QL8OSy6hz/view?usp=sharing
+
 ## Features
 
 Real world dataset 
@@ -52,8 +51,15 @@ python Localization_envir.py
 
 
 
-## Dataset:
-UTIAS dataset:
+## Compatible Datasets:
+CoLo Datasets: (in CoLo-D folder)
+- official_dataset1
+- official_dataset2
+- official_dataset3
+- official_dataset4
+
+
+UTIAS dataset (created by the Autonomous Space Robotics Lab (ASRL) at the University of Toronto):
 - MRCLAM_Dataset1
 - MRCLAM_Dataset2
 - MRCLAM_Dataset3
@@ -64,11 +70,9 @@ UTIAS dataset:
 - MRCLAM_Dataset8
 - MRCLAM_Dataset9
 details info: [UTIAS Dataset](http://asrl.utias.utoronto.ca/datasets/mrclam/).
-
-
+Note: to use UTIAS dataset, users need to create measurment_x files from measurement files using barcode_2_id.py 
 
 ## Authors
-
 Shengkang Chen
 Cade Mallett
 Kyle Wong
@@ -77,7 +81,6 @@ Kyle Wong
 
 
 ## Analytical Tool:
-
 Plots:
 1. Estimation deviation error vs. time
 2. Trace of state variance vs. time
diff --git a/CoLo-AT/data_analysis/__pycache__/data_analyzer.cpython-35.pyc b/CoLo-AT/data_analysis/__pycache__/data_analyzer.cpython-35.pyc
index ce6de0632fa7a1a0d7e09c19fa612bd312bd0984..957a8ef427c43e0f9c0e22385fa6c384afc58433 100644
GIT binary patch
delta 1159
zcmZvbOH30{6o${8zM!2_`j|pn!~%kXPy#3_0`iiLKnxEPsDu<|z?PPgJH-dVkcdme
z=Ej&9jd4$+hP^H{afb_C5nUM<O?2<dc+MpP8fG$I&i&81Co}gy^Dyxv;SPJf?)RI|
zlIhCV?kg;Iq4|cHGn#Lwv)Obi*W7OonG#LC<J&J-g~D>;jqMeS2-DuV9)%51*jf=}
zoS>J2?gu>p8;nWG1v;uI1^1;Q&_n-8#h{~#bb}t-Z-)yF^f0cmmjf~$(91wCm+L%0
zM#Tu2QwJEUuMj1U2Z6{qPt6%|b3Sh6Q+XpkXNqgVD)G({YTYfGH<$8Odeta|0H9Ec
zSXD<>a#U^3S_a=O&ZcIKtSl+PtoZI|XI@d^OsbxIdTw#%W{RhBmbm5IWC`JL)w+WW
zZzar1ZQHG`h>bOfA@?fgKDa-!dhysZfyz(MptBFVSyRIA*S1I0mp0ZSe*2=6t*G)g
z!WqPFv9Yw0GdR9B_mX&)(2l70b9x=#LAXfhB6Jfj5qby;p_kAnmP?<o`$F|UXIZi3
zf4aVRxY80kWE}FC@w`2ImY{?dsnUW2361lDZkKAwo+Vg_yL@EwUrR8L-b(Ledvpog
z2M+ggz&iC0{;Oq<=#QHZ_a}>SByd)=eaqd_a_M+@r0@wpxA2+1nGtM+tArNBYRQl}
zm&&KjrQx{2xyiZoy_{06@pR5eTGNFvt(>F7W69h!_tRF5P=+W3D0k#URrg0Qx6mf9
zZ<p#lJW9J_gkywCLYz=Vs3z19P7rDdbz&!2qn)O(k<dgqNjN2(p@ycn7+Q4*U@G%5
zpW<b8^4T9c<scH1p^nHF)-C|tvq{?F&RtkzFfhF=wn8-#1@P1s6|hEu{v`%$3M{&S
zFN!ar8Am7X9TYv<aqTijTqV%#@pFWv$ZHMSB!yE1If?xg4Tx>6CG-_Ti%u8+M!dbO
olEuU?Z9+>>jqEr^QIc?7%!V6Xb%7pVms%+vh0n97*a>(40bQf#D*ylh

delta 1030
zcmY+COH30{6o${8zMxDgrJcdbt5QG;luA%U<drBc1W_pvA~6kgrr6qc$Zd<JK`}vh
z5)<!I7sR+V(U7=fp*vS5%EGWRabZYw>CObtnL^b&nJ@o;=H8jff6kAd$30Hf<#OKN
z8((<Y_{KTGCR34HMn;d^Nv6}u#Y`lc%oNg#`J|Bzk7rkt+{kA1Y(AVYc=&>0tmqt{
zt?J=PBfgkU7R`;3L?Iie6S?gb)*!J7v1xhDd}72p6jxvaB(_!oDLZI2u))AI4$$mn
zQvsT%Y$`!Rk92~jmJZt>g{BrXFM7uE0I4cez%+nps7@SMA4+vI;;K^>@4SBT*5<1&
z%2S0*z(@p)rJT;iZ(Bc;MW1~^JhN}IZV_^{Rk#>lk}7S_JNy>bD!8-AI>b-sM-~)2
zRkK*}%9q&K_6_-iWxWdk_ALY(!A>~96>{)y)I3b+LF`rP*+Pa=(z%O@5yB}%$iu5i
zpC+6koFxnp&JhL)65%{y2(jno#*&ebi5E3b><_Szn-(!y5tE)r_^+Ql&)3aBt&p-&
zY)1y8t}Gjj8q=!+O)dq9-M~PtpjDT)puxlLviaL5eDd#MpV<vc-)tB*WCJ3lcHq~J
z+M!JCf5so(-$ignpxF3jLKldjEfVA&G{veo&XvvsX+4qWwOIL%H?FUv#d0%`&-t*j
z+-I(DqamsEvTIoUPdmASC9V>V5&VRDLIa_Z&_rk^1VocBsI-x6C!8dlAhd`%UuS3s
zWv&GQOlEH8mRzj;@Gi~F;p{N+$~WlW!hOpC_beu@a5n>M3@+Z(pDIBYX2@Vog4+(@
zF)^gXZ2h=>Mr<j~$|x!>6KFnoFCi*+l}_b4$!UT)EyJWngjenLeL<O{P=ML-a<L}n
m7W3+?(m{L7H(ntXCCrHTYPX}ccFa92*Nb2308>Oy-N+w%+tLC6

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 c1276daac2b6a95b0506869361272989136596e3..c17ec2640ce6bff4e56915b4fe2430c236bdde2a 100644
GIT binary patch
delta 1089
zcmZvaOKTHR6vyYzWG0iFNt#SDePT&l+d8SWO5epkd<%W4O&1cXPID)a*kt4;g%X8=
zg1dI%T?m5p6R1dWBZw4SxpASm2)J}H-@uLNJ(CzBn2_I`bM86+JGu9NlzcmcM?)d}
zasPQb*Zl?$N}`I`sB|B-v)9s)-9dtTA`%{`d4;r)2#MA+KT(L@$W#(*$^t|sosBt6
z;>6fPTtm(WNh@iCxGdzgM*<RvuqK#YY|!^u??_QAV<((!qExoZb|T}j_rCE7H!cW*
ziK=SWDV9sQitR>tp`xv97ogYKEZNiz*Lnh5)~3A$O;6-06k^kIS__tQnY*{|S=1_&
z7?bzWDb}m><1pf1F^n|na8-FJq9psJR?rCB34BH-yNcI&<p5ts=MR72d1-f<Z$MW7
ztAJ}9RjIgLNL7Oc+bV5SyI>c~RDwmXcN8KRaJ?E#xiZvX)Kwt54iGs^Uv1`JefKy2
zn0`9OJJ#tqG*56;12*5+ru>L#2#S+{DGoDA;T-5$z${=MumCs*I1hjg=>@<=_A~qp
zJ!Guqg&09>EV8r9FD~F+urDtYOoEL}AzD-BCq5D);d-YE#;9Mgk3<_9GS|=>Q!+PD
ztSM{Okn=T--I_B3e;vbJf*USrU2(tg*LJ_cyCZ;ivT)EQqBr@Y5?*pLRypSs6E>v|
zb=zxe2CVs0xq_W8ZMdzFDL0na(uED`nM<TPuTewj;qnl2Js7S0*OEQ#T~wRtfVLp*
zguyPrF+evU0pL;s?FIA!jsyAu11zTZ8AA}B1PlWP0Vmj^o*e$b!_okUfK-GL7BNbA
zzlLMEYwO+>*@1q9=GdKBudxUc8UVaNrvX{^G?p|7gf_r)#wCcZuy3(5=sQ#6GlA2*
tkm7%Ni7mz_jS*P(#BM>91>{-CXk)M9hJOGr;90eseTq+^P9_<1e*iAP=dAz$

delta 918
zcmZva&rcIU6vt<FyY24w2Xwm&8bC|=l`Wzo2_OPR6Hzeq0wg9V2{7xSNg+<#XbK6M
zsy9y0i(d2}Fvbus8e=$m@*oGpMG{R+PkQvG?`>BTjl0=TzWe6;W_IU0FZ=hh=1@Ft
ze!BN?=~c%IvrkpNGZ<1gc?zDZ{d2a6?kJpX>4mUps&QXML^x2oXbzMibm0VEtze3z
zuy)X0W`$^taVFS2b6X%6deGduAXnDB^u~>Jsk~D5($H>o!jF)hsK)Y@BGormOP+)a
z+9;2~rnUs1wH<x}ZiahwljE%<l-;M{XA19zyiw&YyffbOE_h@vV&$7T&8K#Uqd9f^
z5@SqWCd?3K5eMperMPeqEqW`Ziu8)!dReM8=z9l9QA6FYQCD4~8nxELq^=MYgd1w~
z{5^mDCthwuo<zr@JVoZyhy%mJbv=o{E8|ogB%DFGNtqx$Oc)`YC5#cy5ylC$pqwB~
z!c5a+eh0oZJy8xB+;6_U?FSGlXhIKESQvqd2vb-h<_D-1LL%<hHS{I|^*dCpK;Bft
zi=kn#A{hi|{0Y#`*FWG_)c5IAI6-AGByF6_<vfG6(0K1xe8cN7=PJ@dAybIze_|h)
zvvCAn{&p|@t4--pcMIVN;V7Yv&`#(e93vbjq@iYYIXxtM34Mf4LIz%2S@#XfQU<}e
z?jIwQr<KOjI8?#m;$Wrr_$chBGR{S6$3JX@C5K2YL)6YX*GOI`_|fG^orhU_kbi_N
wd(6mUVFCAK8s6F?j!VP-WLHTo6IS7_(+U~KiFBJ&=7in`lg=o2;FdG_3svH}F#rGn

diff --git a/CoLo-AT/data_analysis/__pycache__/realtime_plot.cpython-35.pyc b/CoLo-AT/data_analysis/__pycache__/realtime_plot.cpython-35.pyc
index 60ef9783aab84de2bb519a65425e593e61c2875b..e02adf784a5865eee4553c1a29f93871a9fe3835 100644
GIT binary patch
delta 1163
zcmY*XO=ufe5dPk-R=>NlEy?<^>%>mt6x*?#C`k#l;Is{OLW?Qnkb^O<tl21%Ew8-V
z){48r0nxkR1w(rbfn0hizVs5(YtFfe-h)o1g+QRC?z~lzZSC99%s2DRdpqCzt@x}M
z&stXe-SqR-&!>KgTZw%Qq{HJCf*%8gQ1F2Q8R%%}2;?XXilC#5b_%Uug=eT5U#Rq*
zwHKnDh97~SW=a%=c4iR8I2wf?J;`MUk;>)Z8=RAeiQk1Go8~>XFU`5j266=g{0aP^
zp}@O{ojM*ca(^bi@<rvRAJy;mQO=ss#n1BQ@R#>GKsyF6iW;9^fcV@R+HrVc)Z*~t
zpljSnpq)4c75k8R3JS^h!{_!BpzEqfCHQ>dTd0|!8>b-E*MgdmK#)(OKO~+&M~DC#
z0`XxYI0X%Z_$Vh(0yQS`c4we{X7YY#FlO?8Cy*I1nS2IfBCj(L6L}3FZzNEF;}I4V
z?Icc+RDcX2Noi09Gz!Xsa`K;%j|*IFfQ9y0Yu3|(KLno}r{veEnQ@)PWNDeecSp&p
zgVoy9;l7ejQ_GWe?SUF1C-U$Mpgf4}7-$^y0cb-0othWt<V?DlJr8d}DbItYNzfGN
z0_dXLN$2)24W`YBY4~g}s~tPggwF#RpdW&62Dw?#T)!eDlw?y}%X*zhjhkKp&4U&|
zi=eCAS`)zy`)H-718{FEBa|6q(=}{)D>Hm)Spj$1?8RF1rB=1MT3_3XJs!Bpubi@M
zX1*6;`A6onQp0r`Zd&n^8yik*-E-DU+vP`&`?i0H|6Kat=`HnQsw}i!cDD8`HqJWP
zb!VYceb^1}x>e71yNPPORI&N3mN&cl!$!0BiL8%~=X?JiA0N9d=Fezuga6ze<zJMC
zqs^jgsJ_u<w@UXLcDWmAe!J1wa=dP|X?yFft!lmRJyu>weUkh%`y?ISvMcsBbwkZZ
z&Mw>1clObn?5rq$!|kBOgegpYNK2WfNQpE*(;C}|75FM1JceA%&&9N?xS+)~_du5N
L2jW2fm0$S}KHLHx

delta 1183
zcmZ8f&2JM|5dXd1IR4s=9oz9oLg)rWiwP9!e$iGcRiTYgQ6vZwhkitxjB(c3th@UR
z6xK>rE9Zh<RjEDnP^s#<$|aXd6&LsedRlSq!KGL3on50O@~$**<~P5YH}htGZT!{9
zlua|UGx*{2o7Nv0GrO&WrXY35DFkUy0<{3B(KLn{h5{8zf>IdjVo<=nJs}ejClHbQ
z(wD!BK@mX`L6Jk!s0~W{R)(!P1gQgGdEbhB6$G58sD8{o6Vu8!F0=g8SUx+AN{xVE
z5jz@ce2e(HiyMrr)w8RgwtoI8`bHO8dq;PkU)}p<cg9@Q#Y1&E|JgPP&^u8(T;UMf
zARTqoPJx@@E`|_7vYm<g;bJ-UAQLmPAO=|)+%c1;(KZk;^ez`5Fv#KnIzNVtL(mMk
zIxbc{$yc^bP%e5m5twMRCm$!CjT1*u4pf+cm{L3pW#hoo1jK=J6A%ZM4?_mpExxic
zfpKJY0^-QpAxO@~qv1)<^Q1AD!2z-mBb?(1Xc2T2^a{vQ|IU6;V{!t#0Frlr=WHU#
zA>h;t>cc{P!Q>(H$hqj5@wj=@fLl7er|P@Higic35j_a+K@|a4vjjQ@Iu3ddbOQ9M
z8Wqln*Hoq0D4&E}j5dPbmFl2Vpk>f$wO*`jpV@zG3-mhZEa)8Q4NwF0CeK`t2f@C#
zKyQzCfXBPU8brKQ@2`f*n@-Dj?l(sUfKi%7Xh^5ECD%LlH*Q~E4|VDGTJ<l!fBfR)
ze-}nNGrW&j+@D{%=w5NHYwm_CtxL_WYpprme#e%Md)r%K#;BzJDOxI1TFB3T;!CF+
zyDVznaa6tZKqS;}rH`BTJ;x8HILB6)xVz<S^3k>1t`|<lW#u?gnC{pc%}#7**sg1y
z&4;%!)<vX8g7H|NAM5TueoQ@>^UsGlzrWGzxYA#@sonRbmtaPiTJaoO>oqsSl;7`3
zM|PTF@+H%g%urVO+d@`4o43|`wr6*_Tz|{GySrOHB^qBb0a{uZ!q9VCL92?qD2QVG
hpGcc8wXq#bP35Y~NpVEW>)s=EvHDOvQh!%h{|A_#0~i1R

diff --git a/CoLo-AT/data_analysis/__pycache__/realtime_plot.cpython-36.pyc b/CoLo-AT/data_analysis/__pycache__/realtime_plot.cpython-36.pyc
index d60b97bfd306ab8c036651f323b5266f1c646b1d..edb0d1c6d571e3816fea6931c4a2caf88f608c60 100644
GIT binary patch
delta 1601
zcmYk6-*3}a6vusSCvhCx`PH<9UoDhUN>>DQ3<hK6M_bSYeE>~pq2MJsZg5EK=-Q0X
zIqIZn+8$P^(tUtUd)ULYmuZ^Nw5i&Efc6heenNYhx|eB__OO?+bDa<p%U_?*Ip^Nk
z=iYmMo_jK<&g;7R&(znqFCTcS9*>g}I~TuA=6`q`zeUJN_GjWMInT~0PssxNLwQb?
z*)PdUWf3G_^5q~2a#09`q5!e3*d=2E#38XMcXC^#UGZZe2c#=53R~pPjZQvD1bNI<
zib7|kZzs_%1j@ia+P9O;QGX;cb|`fkbu~4K`cbNwQdgF1UwqDg&)9dV&o)Z2hG}_z
zNp6@mzodB8vLA6Gve2b9T=dzl6S-3Zs`+$L5CnP#CDfX>WBPW}GRu_GH@W{Tmp8ba
z=CXtmN`Bi%X||}rF=lyeTbm~5*mJE$R@qg3DSm+`Uu0L3NBNxe65@<R7uhrYEV;{M
z1IT;qdu41dy^fJj@b)wmfyhK93aUovb@ruEB%iXMjQNeO&`J7AJqZNFuGmricwG%t
zm?;Wf(n<B{Xhd3{WDq_ULEyS3MiD*G>nWH8v4$%|1SAb!dr3G-$F=ME4ZeDyY>H7<
z8a9$cm;rS_sk#BFAxeWbL>bTrq+zBpL}^G5Q3f(E$<N}_Cm`FEI!52l83<{}!w3{$
z6vo)U>FI2?8|&o#JSOWwI><ndoyhDNlW-r61_izwJ7a+a!hLCr(7#zVb1J`mi+}T2
zuq!CSE-1oo*u%cfESY;@AMD?ZcgFqwSm%jgqCO7e{YoH#3=>f$v^u9bm_*N^O_>N-
zvjbfLYcyUz2vcwvrs2q@M6l*Jg_&b3I})xay}%x4Ck|ghbB55X_*hT2=gMu{yWPCA
zo_sVgjcaa|{g!oNam*>PcXLyC0zb@6Z_J3H+@fxa<}vVlZ`1#^&^LA#c9MK*nL79g
zjY`FBo4#w7o$5W8Mngi`sk)7I9mO@lYP!d2_F9;-o8_8?w_Uxz^A?{%4C4=}?OQaI
z)>__-NC|o=nT}#T*p2qie=lCVpzWU5<tZ(0Pcl7Uxy<)DJ%|#<*X-H@YS9=6<qEao
zX3MIE3GYFr)o}e#@hsnLH|%E5dc-Z6mxXQTk6H74p7VTY4Bx2f(Y@R;$z_4dG8bOn
zlD_=Fsa|yOYxv=&t2}U*i;U8n+q2iLFy63gmII;e-E$wJmOrrAJ0nvk__-fC-~1HP
zeOy#NUaWcabxx<a97id!uSP~TN;&FQT;F`zMm+2~bc%=5wqyHd%e5Wfi&~8_?7&8(
z_qgoei^AF~#Gq)`UbP);W=*pl>7!DrQFfqNruR)7XfexQC&wjfUMu{crLtp}*tNou
zlkX!6VjLTZBB`RLDcDX7ympJI2{p1g53U&drZAhtXiii_y2XAi+#qkW+0lK61`9D%
P_g6LM%?r~TqbvUd9)g~H

delta 1652
zcmYjR&2Jk;6yMqPuI>G>9ozYE=!e@TO-yMB{h*~qP180hMJN(2&_fIE#&2V<YkSS?
zn5NZQsjw;#B5Khf@p0%0i4#H<0#yhh#Fak)X-`}Y6`bJG3vV`V>Rs(`-|xLQvomkr
z{ysnW<3atfW$AaipI%ujKG5ei67rMU6>{Xe&$P>g9OnPTUm>UX@x%jin*W*jgPiBT
zCC}Ij#F)ZjK@!x06i5XLw4U4};}XOnu^H=T?~(OYrh*!fo_tQaN8Y~J%?0rwhndNO
z)XfiU9qrK|vF#rl*g9|N-xG~b8OIQ>8v77$8-={FvRwW03vu-qst<SF`RnzE_xV@G
z#~Y#AC_6q2V~ui^g$ci6vxvtd3teWzL!axlBDb;4s*Em4l0;uZ2+gM3Dl@m~lx<4s
z3E@8};Fy5p0+ta%g{?D$W}Bu2RUMyyYtE3D`R`_xRQQ6mq%Df%GyEfKE^!vkl0ujG
zFV+d-@W&RAYy4Vj;^+znKETH}5hM~LI!Pd!go;QdCcJp<!6%E4n8#n|-=q$2z#QNS
zY|7nakgO*_1#OcMi6!g0sDDrH>gYEh2|5^?GDftz8R+nQLF$pNF<|o%GY8B9>5dGN
zz%@CFSb<fyAl1W}(MmxYGF!6+8&*9HBiq!fXCS-H3{1@pu{7j|SO!M7nTeTWLo5yB
zLo5RmPZ%4)wunQar*u=o&LWval7?qs2keAhu$w<h&zvpv)NYRDFxd*yK?ZZwZl2|l
z8-W?9ffmGqOfQZdHwq?p-Wa|ue2)hTNY|Bng#O3h${fx8bXn|pJeUXyP=ps?FYM#@
zGfNv&Fb(@RweD`Vt0#4fL9xCYW(M^s!Yq{FSvat%MD;4db8s*^6|KIfClRddC8>01
zr7sS<pG0`0B!}@ex9YpMoX})$wZ_T~`=-}n)za0wzy3S>XrV-~&AfJB!F0NK9`V-X
zS?@Kkc+p$+Sn-_G^op0<W~UK#c0Z2^B|<NVY$9M10o(K4j@`JGj0TD!yf(5UGr8nr
zqetV4;JoMZ4@X+6D)RZ`k!e(cJ=vM1FovJ0g=*8Td$ga%Xh{iU_PXnb>W!LPsf97I
z`o1nABuqB!Ri`05C7D*yM{5ZD=j=oZ9Ub8i%PQ^Ve`i-Oh<>Jf5kd{C(4kJ4_B*TX
zhR6J}4fT%CXtbWhdFsNYwo}31y3=MZYdB$ikV$Xjc+PWka74^@O3bFZ%xU^`hj8o@
za9V&U9u;*At>sRuve+7Io>oM_5g>jz{D#BI(UBO;tz0j+ZE81t+-J?Z!T0B<mxWLa
z34%CIx>JBCLMT^#dQ`9%1<VUqj*7!7KT#Y%5+MFbeqtj`yDgWM+n(FPJq!6t4LeY^
ztSxS{S`;>)QVhy&^{Gao@-@rr5#9`qhTVduO|O?-pd(@>LO`~J?oF{K#csJFpB<e&
z^bS%<)=+s8iY}XS3iZb%spy_e>H}+wM=106M-RkFMm81tHUDAsB3a<cv7J-f2QXCc
Or?nM|hUu@4t^5x$y|&;0

diff --git a/CoLo-AT/data_analysis/data_analyzer.py b/CoLo-AT/data_analysis/data_analyzer.py
index a41061c..96f3aba 100644
--- a/CoLo-AT/data_analysis/data_analyzer.py
+++ b/CoLo-AT/data_analysis/data_analyzer.py
@@ -43,19 +43,21 @@ class Analyzer():
 		#fig1.set_ylim(0, 6)
 		fig1.legend(loc='center left', bbox_to_anchor=(1, 0.5))
 
-		fig2.set_title('Trace of state variance')
+		fig2.set_title('Trace of state covariance')
 		fig2.set_xlabel('Time [s]')
 		fig2.set_ylabel('Sigma_s [m^2]')
 		#fig2.set_ylim(0, 0.08)
 		fig2.legend(loc='center left', bbox_to_anchor=(1, 0.5))
 
 
-		fig3.set_title('Observation counts')
-		fig3.set_xlabel('Time[s]')
-		fig3.set_ylabel('Num of obser') 
+		fig3.set_title('Observation counts', fontsize=20)
+		fig3.set_xlabel('Time[s]', fontsize=16)
+		fig3.set_ylabel('Num of obser', fontsize=16) 
 		#fig1.set_ylim(0, 6)
 		fig3.legend(loc='center left', bbox_to_anchor=(1, 0.5))
-			
+		fig3.tick_params(labelsize=14)
+
+
 		fig.subplots_adjust(hspace = 1.2)
 		plt.show()
 
@@ -197,17 +199,20 @@ class Analyzer():
 		for trace in arr_trace:
 			fig2.plot(trace[0], trace[1], label = trace[2])
 
-		fig1.set_title('Estimation deviation error')
-		fig1.set_xlabel('Time[s]')
-		fig1.set_ylabel('RMS[m]') 
+		fig1.set_title('Location error', fontsize = 24)
+		fig1.set_xlabel('Time[s]', fontsize = 22)
+		fig1.set_ylabel('RMS[m]', fontsize = 22) 
 		#fig1.set_ylim(0, 6)
-		fig1.legend(loc='center left', bbox_to_anchor=(1, 0.5))
+		fig1.legend(loc=1, fontsize = 20)
+		fig1.tick_params(labelsize=18)
 
-		fig2.set_title('Trace of state variance')
-		fig2.set_xlabel('Time [s]')
-		fig2.set_ylabel('Sigma_s [m^2]')
+		fig2.set_title('Trace of state covariance', fontsize = 24)
+		fig2.set_xlabel('Time [s]', fontsize = 22)
+		fig2.set_ylabel('Sigma_s [m^2]', fontsize = 22)
 		#fig2.set_ylim(0, 0.08)
-		fig2.legend(loc='center left', bbox_to_anchor=(1, 0.5))
+		fig2.legend(loc=1, fontsize = 20)
+		fig2.tick_params(labelsize=18)
+
 		plt.subplots_adjust(hspace=.6)
 		plt.show()
 
diff --git a/CoLo-AT/data_analysis/data_analyzer.pyc b/CoLo-AT/data_analysis/data_analyzer.pyc
index 44b59bceea581694a219af7ee3b8c4aa2ee15c96..62723c50380466ecc81e42b9f09d4ea9427355aa 100644
GIT binary patch
delta 1687
zcmb7^&u<$=6vyA}+FmEN<0SqO$8H^$l+-{&peZS+Kq)~2s>Xy#xU_`G@ovI8wioSg
zRfLQT&6x^mIF=u0PC>aKE=Y(Y7X*hK=&64~B~BdpzF9~L0usEMkKVjD^St}scjmW+
zFV0)${mk(9w?F;Lx+bd65YgP*Ue}qs>2^A9vpcuwUG+3(FR$+Hip8VWs9jN08|LN_
zsr0f7v2&uU+Ob_RsVebj2W8qJL-do>PLMrH_88gYv?GLeS!BZtSMI=-Bs>2%*AUt8
zg2QB24$@&#AiIb;a>c2gB71`DlAeb|?KCVB37cr8enNc{zf+h*Ay)ln%c*&rwIFPU
zPOarBH}U+%Fp1En*9!ypJ;%*s;*J7A8fe_;@_KJ0aQtuxj!tvK>F9+cn5nN54Utin
z)z79d4c*rE`a4a(*$vb!>-KRfHb_p1$JOV_hlg_lk5Lq(=H3s<lqpWB{nTe-M%_&R
ziU#yDZ_S><U(_)o1pnPy-H$6H3*yDS4@dUR!5Qq6yjwoPcofhd<n(TI9UtY8Tn70V
z<1AwqsE@J5-z}eDJjs}6oM$}6SYTj~yuf%G2y=k%ZFu2&$7`*JZr4%!<DKKwV=q@1
zx707Wj_9aY^LGYO^R;AR)Q)QzKo6-%GH^jcX)TdM7lf4|JEpxOkz}wCyRt08KP7`W
zw5PSD(?dl_KmK5@I1M;|?ytV~Kjg>e2lKN8Az5g-a3INHElI7&BFfWne*)c~85raW
zK)%A30R$|stKOTfX6Smon&bPPFWKjoIBEf_DC_lL&E;%C0+359*Sl+yb*p78vuurX
z_}|oj=Cow3Z_Vr9y-RhLvD97XeUeXuET|8P6KPpt`vl{p`lNXF@<VJ+Gfp$Aj49y%
zNmNdhuYHSM!3;nmEwUnOWW<af2WP@Kv_?hC#7Y)r9Agn9_!8J6df(KH(Yt->3wmiS
zRNqZZzibeyzHLw-iSG)N`UY)V<oBp=QaeVtpZbYELR%)3MWRR4hi0Of6~$DoRH(*z
z4?;TziOAYCaL4c)HRL(9QktIDt+)h7bjV^H@_LTsp6OF1m(|Cm`9g!|uQBx5;^QnY
zs{K;+IOoKf%;)c7N5CDzO@}8Vs-mJknp{}sQbs3Pzs3?zml>}!-T)4Jq^+axk}0)S
dE?6_!7t+rSRn<;;NsOr<%O{WXs%w?0-vP~wR&W3S

delta 1989
zcmcJQ&u`O66vyA#iIX-lX`5e7fi`Rk1Vjk5P_a@GNNfcQG^hgtgajy!-PR$tOYHJX
zVY}K2i3_K9SgnNEJ?tL<syK4l>mC;g#0kV<IRFwu;>3aXoD$$pY|TgSJ3l<nGvBfQ
z+VgQDqQ2LAe|a|bAaYKer~^QG!L`luRjbjks&@ILWiK_VzU4ZlDd&pSbRFAt{L-A;
zEFE&)MYBn5SIp9Jw^nUfH-e7kxh1E@BRqVO%dh?^3f*|{D2CM8ZX}F<t7GCAK2h(B
z6y6R^*3z&7ifBclu7S}9D*^%$0YmGEC>Z@6(E|o)VlNn(_TVtoNeqCIBrSvwP>)dr
z!T>l~%;L}CyWuP?{wbV^Wl`1k_Iq)Xl_fjx&gI=%&upTnRYV;B(OOuE-08}j=b|HG
z2mTn{9MuKgN=8{-h{jYgjDGB%C}1-FL2Sfc{lbM|O0Gzy4X+En!H4>UIJo*+f2vxe
zG?CoQ*uvOK@OucRvt+XaO&R5SPDpNJY$p`^IpS`z#MsH$#n{alV~jJXfZW5_i=~0z
zy0Wrw28!CRG=(Seou0;BNhylBlDxYdxG4nnFni{+AfNSg1o@1t69XgOb`M#R+!O+1
zUAqej8l32eFD9jyuLq|BE3)+hw~`xIV65#$n(ea})0Ab!`j2QmW>5i35abj`3ZNI>
zw@tD;y%?cJp98a*Z<uqw)Je}%q3ihp?`uB~>vA2{&W{JzOZ-DCj`vc9OfdQw1B@ht
zQ;-=3KSB;Na*QGTKfPmlgu^^z6JtGN1EG6<EE`q7da>$M8`nJx-{z9&XNFEcqB*@E
z2q5AjArgu%wyc%*;aNLGqEFOR>cv(JQ#nM%yGNj<x~T>X!L>zb3Ha&!0=~)=W@zUW
zXen?h0?k=ysZdveK0qxEc<&XMSA*?#09xdoc3b4zw#!L4V<>R=NQ*W+gbUdXqKvn)
zg&|HsPBMb?65)u?i=4)Pv*XLhI6Te>PR#^I`v^X7wr|<yMbEF=i(Z#jTV4BYpgWjK
zJ*6qV6aj=rw=RZ70)HQzST0aiJN@8Aj<TF4_#r~Ybxb)!!Iu<+==*)8w9fBs1SfOp
c$Y|nVe1Fe+Je!-g149REtaUSmP6h`)0S7<&Q2+n{

diff --git a/CoLo-AT/data_analysis/realtime_plot.py b/CoLo-AT/data_analysis/realtime_plot.py
index 4ae8f2c..f8dd0c7 100644
--- a/CoLo-AT/data_analysis/realtime_plot.py
+++ b/CoLo-AT/data_analysis/realtime_plot.py
@@ -95,7 +95,7 @@ def update(i, num_robots, fig, l_est, l_gt, scat_est, scat_gt, location_est, loc
 	res = []
 	for txt in fig.texts:
 		txt.set_visible(False)
-	tmp = fig.text(0.8, 0.03, "Time: " + str(round(times[0][i], 1)), fontsize=16)
+	tmp = fig.text(0.2, 0.2, "Time: " + str(round(times[0][i], 1)), fontsize=16)
 	for robotNum in range(0, num_robots):
 		# factor out common variables
 		est_x = location_est[robotNum]['x']
@@ -154,6 +154,8 @@ def animate_plot(dataset_labels, data_recorder, analyzer, lm = None):
 	# determine number of robots under consideration for this animation
 	num_robots = int(len(dataset_labels))
 	# initialize graphs: error, demo, state variance
+	
+	'''
 	fig = plt.figure(figsize=(12, 9), tight_layout=True)
 	fig.subplots_adjust(top=0.88)
 	gs = gridspec.GridSpec(3, 2)
@@ -161,24 +163,34 @@ def animate_plot(dataset_labels, data_recorder, analyzer, lm = None):
 	ax_err = plt.subplot(gs[0, 0])
 	ax_var = plt.subplot(gs[0, 1])
 	ax = plt.subplot(gs[1:, :])
-	#ax.set_xlim([-2, 2])
-	#ax.set_ylim([-2, 2])
+	'''
+	fig = plt.figure()
+	gs = gridspec.GridSpec(3, 2)
+	ax_err = plt.subplot(gs[0, 0])
+	ax_var = plt.subplot(gs[0, 1])
+	ax = plt.subplot(gs[1:, :])
+
+	ax.set_xlim([-2, 2])
+	ax.set_ylim([-2, 2])
 	# configure graph
 	# set bounds
 	#fig.set_size_inches((18,18))
 	#ax = plt.axes(xlim=(-6, 6), ylim=(-6, 8))
 	#ax_err = plt.axes(xlim=(0, 100), ylim=(0, 0.4))
 	# assign labels
-	ax.axis('equal')
+	plt.axis('equal')
 	ax.set_title('CoLo Demo', fontsize=16)
 	ax.set_xlabel('x-axis[m]', fontsize=16)
 	ax.set_ylabel('y-axis[m]', fontsize=16)
-	ax_err.set_title('Estimation deviation error', fontsize=16)
+	ax_err.set_title('Location error', fontsize=16)
 	ax_err.set_xlabel('Time[s]', fontsize=16)
 	ax_err.set_ylabel('RMS[m]', fontsize=16)
 	ax_var.set_title('Trace of state variance', fontsize=16)
 	ax_var.set_xlabel('Time [s]', fontsize=16)
 	ax_var.set_ylabel('Sigma_s [m^2]', fontsize=16)
+
+
+	
 	# obtain robot locations from dataset
 	robot_locations_est = get_robot_locations(num_robots, robot_loc_time_unit, 'est')
 	robot_locations_gt = get_robot_locations(num_robots, robot_loc_time_unit, 'gt')
@@ -199,7 +211,7 @@ def animate_plot(dataset_labels, data_recorder, analyzer, lm = None):
 		for landmark_id, [x, y] in lm.items():
 			lm_x.append(x)
 			lm_y.append(y)
-		ax.scatter(lm_x, lm_y, s=120, marker=(5,0), label='Landmark')
+		ax.scatter(lm_x, lm_y, s=120, marker= 6, label='Landmark')
 
 	# obtain robot timestamps
 	times = get_robot_times(num_robots, robot_loc_time_unit)
@@ -210,11 +222,10 @@ def animate_plot(dataset_labels, data_recorder, analyzer, lm = None):
 	# Show legend
 	fontP = FontProperties()
 	fontP.set_size('x-large')
-	ax.tick_params(axis='both', which='major', size=15)
-	
-	ax.tick_params(labelsize=10)
-
+	#ax.legend(prop=fontP, bbox_to_anchor=(1.0, 0.8), loc=9, ncol=1)
+	ax.legend(prop=fontP, loc =1)
+	ax_var.legend(prop=fontP, bbox_to_anchor=(1.1, 0.8), loc=9, ncol=1)
 	# Show graph
 	plt.show() 
 	# (optional) save as GIF, comment the following line if you don't want this
-	#ani.save('full_test9.gif', writer="imagemagick", fps=60)
+	ani.save('colo_demo.gif', writer="imagemagick", fps=60)
diff --git a/CoLo-AT/data_analysis/realtime_plot.pyc b/CoLo-AT/data_analysis/realtime_plot.pyc
index 0873796d526d99aa6a6f0b56e08abaa3fe4fc654..5636f0855568a79906ecbb7fd5e3a92ca59d7fc9 100644
GIT binary patch
delta 1852
zcma)6O=}xR7=C6~vMgC&mMlvvSs!(*#;NT(Ned-SNMaHwr6Ck0AtyIgJ;L3MWX0Bo
zsIWo-Lve3~=_S3ihd^^G6#av?haPh4Zzwc{Kp_-*Y20VliEW*voz<&-pLyPQX5Nqa
z@$%Q_L*|QE<YndYPoZ_AbPmAk=j~Qw^?}`N+V$4zmG-r^FILuWszj)wem9<tK^rUu
z;$j@$lVENXZ;%N6F^Z$NHrNP1AIbY}>aQ`jrT&fnHx5n4xBCLpfE$1tgcpW1VR?Wh
z1K2gNE0C2z$O-J4qL)H<Pq-7B;|V=|b^U?prQwC(rD+m^)tfogCaGoMO&-n79%_0n
z3y&+N)y>4OBA~3~70UHwc|L%w<rPt(f3e-dZ3*013^TFUH@|(PpJ(ca<bp^Jo+kH3
zhD&Gsm(+`KVo{xWJepQk?`4+7BPBB*eYgws!f+?yFl>Glx#eC2jF1z77lAwjixKQi
z9fQsuK+$7RK%JZ|^{1c%ZD7-ny6|FfqQj8(8}oA^;LpdwkjqKPFcT$wC;`cJhoB@R
zeIG$naA-*1Lr|ZVbUuX9lFTD0>RXaH1W_k(2%<iH405Oa#B;AH))9Jf93g2RNgys~
zATyA&kXgu_`g8WYMRpLZFPA08GK#@Vz@zW9x{y6}nuXe9MbRd3P)#OSDtArn{A_G8
zH92T$q5D2O6V9yqDqHBY=nA^3g=fK`GUqGXE#tNhcn%(43zBahvH&>;S%fUH*iEqo
zxYnza=u8*k=D|wUDK5b+z?st><kFz*)55y+J$3}opMn>Mr{cLnzXG@P%1*ukIS+XP
zZkbC2dS$p3=(?)FtH9yx!ohC2Ir6F+m2X1619=MaEyyK(`dtKcTRJDSsqo5h79f`)
zS0LYpT!lPMCx-AF>0Ml8C)p<Z$u_j$54O<a<^KLYF9D#jeZSu9=$6yBXXR?6)vm2+
zMv_8(Y!yRseq3vBsE5{<OSNS^)urGbfL49yZez#RpEXTme~??>lAKV%{F!JcM4-FU
ztnX|#)a88fELA>#UwYl%mul10ZM{CPC17i#-R#8p!T<Ih$=#@L@{8hvdYV6(Cd}uU
z@nTgK3wvudeL{cj4|Z&M<6dLK)$4Zde|E3gcKwM?!@bjO+O0$73$5rC>s`B}o)^|E
ztz2(!HT<yHZll$yWeL?vgNt)d#=3lNl`@}xLK7Ha5fxE0VWgr_krHW+szDiw`QKVU
z97al{jEt5d$59dy5iz1-f}<>AVp>$q1bwa3XH3kS>bKJO!P-MEqPEMK(U(|7{Zl^o
EKjOfbCIA2c

delta 2505
zcmcImO>7%Q6#iyyC-J`%$3Gj#u}NLkAx$09B2;onqf&uHRfL0-ORJD(HtxD>Z|WU~
zQmu(1t0*@>b3kxF2q95{goJ#l#H|tsF5I}&V}JuF;)-~)j+}~K<6Zgfd~d$@-t2qx
zX8rN<_g6-JN6}C^viHO2E$yv3fXW@aVN~8TEz8_&RMyN!+u9VS-CVfV+%;QvvtcyF
z!nWO7xN6%wMvLZljfLy>)~01X@Q9V|c5_QvIC4K+lwWCw!|>bt*%xC&ahwWdhvWF}
z$WOy?T<W#P4u|2mDDRHM<)hG#r=8~BemFmj1()P+k;Wwr+y~)@2*3@3`=Psl&I9Ob
z=rUyZ2>2+vKGvDQ{R1Wl`sIE!JwFD$GYNMTZj$&xLMgaoeWd2n0~C}`qQ9_!{3Ldj
z<gc;9d;l5U&7(*$*u4hUIj~j^Q9IqJeg2uc4p(ZAXCD6X_Tw*PI$mOt-g5ll)N{~#
znn<3yQ?HAcCcZxHT|j;dGMPNj-j!F9Z|-phzNpG2#?Xb<399PVsel1c#kycjgisHw
z+HqoN=!85*1XL;>0uNJli8O+G6fWVHpi{X!VVtOz`l`q?swk*b4>j!3qd(f#`YiGi
zMLh-{Q`?3q5C@MBKmt6`2VsvkJ^)0U7yzOr`yk@cCI^6MsR39fUfM%q+}mgLni<-q
z=)`cM$$A<x)WN5~bKuk9dHL_;vQFdxI!TD6XHKh+!zHI#SxwEABK`fF0*}%tgBsAu
zdQ!*zSK<0lPs#66xi#A4x&ESb)Co*`;NCfHT_qp`Hw#x+>1TpQ)E(4HREs=>4r&0E
z@fnCI)N`sjf|fTUFQk|D3K02Y0xyEU06q&bL$>}7O%<rX=oH}=QK#86{S{C^;+2$^
zp9Q}NURJ%$=hRzt;b$(T^jXHG=NPK?v&7w_0v1p|13nLa9()1(0(gbuXw2)?msPKd
zQIgwc%`qPsW`xFOkc3bpVb<=54Qum#yDfxIDeRrv+|7@k{8RpO#Z(GYBjHSuxN2Xw
zi&gu!EsC!h4ZBDm(YfQVXmwRFV@l8uCL`gfAfAn4%X}uER9>z*!fbe7)FL-_O}U!+
zP#$F#Lv*f@O=HutWF?z_rGLEqy+RdL*Iz5uaeC1C2Q;^At9H@5j#eBMbh~X?8^UnJ
zW%)t2oR}e1SuOkcW#u>7b1y#U&|?hz4C0ha@@e+q4KLC=t+pZJ<j85?-mz@qY;5v+
z+YwbSQ)4vodduW%JH{4uw_@!GQ&@(V?_(4Bt-hL2uVxCP;Z!p;s?PQNQ;&vop#7dp
zRc=xYXh9ZX5no)J(6TJSCRozD&jzFHf45wmp3Jckx(hTl&JtRj3~!NxD4S)on%tQF
bvf-uUhTSx(pOW*kif|&FVf?{b&tLuzd}q2B

diff --git a/CoLo-AT/dataset_manager/__init__.pyc b/CoLo-AT/dataset_manager/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..11d756c59240b3450235ff457ad1d2955fd3d137
GIT binary patch
literal 172
zcmZSn%*$1G%QZTg0ScIav;z<q^8twzAYx?5VPFVJVPXi@U<L|hG6D$=5K#gmwEQ4!
zAd^7@l_)j?^7S+Fb5r%pGjnn>6La;Q^L_Hcgsx+VeoA6VVsUCod~RZ1VtQ(ketdjp
dUS>&ryk0?N2?tQCO>TZlX-=vg$eLo1(EvF(A$$M;

literal 0
HcmV?d00001

diff --git a/CoLo-AT/dataset_manager/existing_dataset.pyc b/CoLo-AT/dataset_manager/existing_dataset.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..12409e0618c4c6be934c1e59474de8d881176866
GIT binary patch
literal 14964
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
WN`mwfP|TMW_{~}=k2_Bn3jYu4zji$U

literal 0
HcmV?d00001

diff --git a/CoLo-AT/full_test9.gif b/CoLo-AT/full_test9.gif
deleted file mode 100644
index 31759e06f486ca6ddc1867ff549f8b0d90842bcd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1820
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
K+~9_!0028R*st;c

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 557e2e83be46e54cd8480385a25d1c0802ece75f..8df35967a6061613cd38380d1e83eb03ec81166c 100644
GIT binary patch
delta 64
zcmZorJg>lM%*)G_b9Gwu&yAeojMCQn8Tq-X`sJB9Ihl#M`p)@2`CvlVF=TTNV=5zi
Rwa7a6hgB_`Z!oRk1pu{o7G?kd

delta 113
zcmX@F(4fd^%*)GFcgr>U$3{+ZMxPx0jQreG{qoG5oXo^r{ou^p(wxMS%=|oE*SxaK
zqWrwv)VvbiwEQAn=luMF)FPl<S*os2esW??W))bWep+c>GDt`9W^2Y&M)p}VL15?R
I<xDGh0W;?-bN~PV

diff --git a/CoLo-AT/localization_algos/centralized_ekf.pyc b/CoLo-AT/localization_algos/centralized_ekf.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..93d611749e5ab20eb8bdbefa5868940f564f1f0b
GIT binary patch
literal 4287
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
RlBVn+bumfp`TKsa{cjLh2B81|

literal 0
HcmV?d00001

diff --git a/CoLo-AT/localization_algos/ekf_gs_ci2.py b/CoLo-AT/localization_algos/ekf_gs_ci2.py
index 0c3d51d..5743b3f 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.1*np.matrix(np.identity(2*num_robots), dtype = float)
+		return 0.01*np.matrix(np.identity(2*num_robots), dtype = float)
 
 	def calculate_trace_state_variance(self, robot_data):
 		[s, orinetations, sigma_s, index] = robot_data
diff --git a/CoLo-AT/localization_algos/localization_algo_framework.pyc b/CoLo-AT/localization_algos/localization_algo_framework.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e8e2d22b04a8c318634b3861df4f2e575fd17121
GIT binary patch
literal 2650
zcmdT`Pj3@P6o0#GJ8?)Vpm0NFX{E~L0OH1>s;VF;m*z0x(iCYl*%>=a);p`6aY!oX
z(!dAgv-AVB@Ao#29q6SpJz#sD-|Tzy{=YYy{k5~T`{DiX1zmnJ{{NX*_>O_)UqThp
zK|(eq+asINJE9As-wt@6(Eg~;eC6N#*^9Rsb;o0Es)^U*)=b@7-yUCyPMEyQD`@a_
zLK%u27J86D2atuDgFaN^$$)HMkPWf}K{m;52r?wQDaaPtp&&O%?T@yg=vM~us0=y(
z;*ra*Y|7u3@hCS{l{Y?w@~~pstS(~d>yVFqn^(RtRr!a(6Xu)vmJdurk+Q_adIl9c
z4CV>ViP$Sk91ys<Com2fm0;8yixJMn9)sYju>#wOR|moq##WU|5X0k79xdbgs5y(9
zd`j!GE~C~+M1T%T3J6~;F>`|-u#Io78`v2EMumf)#hi(Y8t%fhg*l6e;a|+T$w-vq
zx=83xE-u&w>R!khzA$CwY#x1X-MFk>9-@gZKQV1->cTx(M)&z?;Tj}KPKy^2sjp{K
z-TFfx!`e=L&EiDAUg(#A-@s#-%;Eko{{6rwKJhQMrf|6*|Er@4nf=H=@l9J3&D#Eb
z!_v9fi&@1n)?$gi?(bL3v2Ydji<R+`RGu+1mmWS&sl9huWoU_vE>hYDEhW&N3XKWZ
zXqnJn2`&AI))QJIv}}dO!{C>fQZobAz88^;ruB`PNW+FZysu1cr=~s5{b6wJ$&%1I
zcC<X<a4!iFZCv>2bXJ!|#|o#*`h=%|&1Vfq+Ku4147n9ux}(LrOf!eUS2GTxNM5BZ
zbY7z<m@Pu3ZWTI4T<JvWc-A=C2UiE*ex7VYr;Mad$t~Un%xy}x)0@e5a<$R|DaPD@
z+mh=0jBxT^_vk#MbB297A0W^39?knS$*!g!GtvlWm!2u<dCZy+w;A$8tsS>DMs5Ua
zC?`|Hl_wWUZQbd*m93x#)g9mgCAX9R!zG32DGUjPvQsF8wJk?Ee#`62vm9;n{TFFD
zI^*H0<s;P3<rRw?O>4PYw4Qo9tFT4cYHfX?wL-Tj6q=H{$JMXUT~dV#2~~(q*Yu36
zUnCF$tupQg$sieKm*1UX58ti~!6Hq?cOt(s;I670#c;&};auY#<i{=~KS_H-!*==)
D1^++o

literal 0
HcmV?d00001

diff --git a/CoLo-AT/requests/request_response.pyc b/CoLo-AT/requests/request_response.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6877f67f023df3e19c239075d4058013b0af4765
GIT binary patch
literal 4016
zcmd5<U2hvj6urB4oY<v&1%gTu@&lq4g1Dg|s;EM3Bi^WmCVjzuSZ#Nw=~mudcV{dT
zDdHvkO8y3afOGDy*H%>_if~d#bN9}j*}dm}&ZP6#^}+9d{`4e~=GVdVK8A}xQjsZW
zAn8ETQ2r3P5czeAc}Hv@&%ktBX(;K|Qrc^!9Z9#B(w$b?m9#I%qia<31IXa0vaz@6
zuq=j;7k2nyUJZwLhTq;kJh*%K{cSJ@cL#&}@xnhZtHa@M*=&}@`M|%Aca43yu+B%7
zb@Q@twlyWd;zMe93Swaj;0hs30X0wt=+vw!0CiNd)tEHx(Hw5xmQ>A|?$8uU`jV<C
zQ+TDXl51j)M+2xy=s%7g#u0}54#cYy&*3p>4&^*l2C8~;(v^!q&P5_Di825saLzVf
zocJzZ&vNVOtEzlj`Y0<>d#Vd*>|<Rxsmeu>`U?ITh1lr$8doRvlrOLCnT+(ax+zP%
zerr+|)>CJ0or_Pb-vM7mRpig+c0`kOo3pcLhMx5lW$Eb%4^iSCfg3+Bb31MVG(IYS
zE|q-q;PKdH`C=CPtSq8=RVGj~-rpZrb@<$pY2&y*KT`}549<KMX|fQqgtvl(5SByz
zOz3dq3%ZUA6QzdYn(LFp*ce!Kvh`8p!1tiaF&MH!%c-K}-Wn}3@y4-6X=1p1>9C0t
z;f~gl>jQ}15IVEr(xEd&37wg~`{tOLOqY&%>F%|1{P;D{nZo~+*EIc-@_OlIHiA#q
zpfX!I7<z@uv_X?=^ZH)OV&s;Iwv07jQ)pO`^#YiUl_lXjBni9dr{t*{HOU9Zzk<(=
zuZ7R1Kf>4;{OkBO;Wy=(o_<EbD>iVdA>i&h1USFd{cF8YbB0@M&+8PkjX`fckHq;L
zdj1<~?cgiaI^85{J!jzXri~9*z(?<ZZ_cD5&TSNVhChn(GF{9tHGJ1_mti2xyCf`l
zqZbv{hxw3%&B}ZPvPvE0{{JJ?K#8!>9M$#0ezzYsf1Ud23H6t%oa5wusi$uOf&Q2~
z4>25(zjA}Zg@?=Sg@?^lQ}7lTTzFn+BVaCua?z21B3ym+CUg->u<8x!(K5xo!B=N`
z(@@a0GwG>X)^-cC>6%l`UqZ27qa@f3Y6R@lW{-q%-hAlTY`?(Jy6J@)s7E$-R~9Im
zoddw4vbin%TNA6V=_DrL)y3)tlz&AS>{Lyxj><g0vRJXI698BgS)!Njw<cP5=%%ZU
z)=fY-AdEU%le(6-Aklw;q9`pBv~$eGunG;sYxvg2t6sa|z4}D?k%yhz0qKRiH}`sb
G+kXT6u33Em

literal 0
HcmV?d00001

diff --git a/CoLo-AT/robots/robot_centralized.pyc b/CoLo-AT/robots/robot_centralized.pyc
index 8919a640757c222bf23ab03e38b3216f6eb69b1f..2a0cdb6bd91dc280a5bd1e6d7ac8704c2b843968 100644
GIT binary patch
delta 583
zcmX@5^je0U`7<w<)5X?}?43+<W(*7r`WgATsru!aIXRh$x%$reKKWom*D+)gm*OVo
z7Dj@qWG8=MsUWCIaq<n;MuMtjCm&@iB0|+-_8cNqRdZw#p(=ngk)WzFf+}Pu2XL}X
ve#S+N$`jldh%k?Zw~3%C#mV1zzY<g>J2{+xB0*I$lY<5F2&kGYAZP^uS5C8h

literal 4426
zcmc&%TW{P%6h5{$$!;#aK)Hk#Drk|GO9&EDC8UBX0^$Yb!FfQ0!pL1uwhq25_H0O^
z^eIR@@K5-A`~djAGxp{}0ksd^Y<zsiGxnTwzHiQ)iT+$$zW1B^ekAQ*g!=<r&DRhq
z{sYNHc7sk2WjE~fNOq%6@5ydYQglH^@~g<H$alL7e1B)SfNy1g;cwf$3U$ktu1@mo
z*rsvysB$|;jkCqfgaAXnz|}l~u-)YNBxerzZB84i(#^)1dirEh(gjtPBwbXcFX@sh
z14;X;EK532Wku3uRaPZkQDsfiRaLG?yfa*b1*0BBcWu!wxF#oooQN1Gp(=qmD50GC
z=aIOc>@TQ<Mfz|*k{d94PY1Q*mM)CL7cuDan7*7uItT3c3hWnzl}2r6A!NpwWw>Ox
z0)e?j%A~OF3Y0W)Nn@SKlSejhT!cqC5Lo7zX<=$Y(7<{$CvFk9B5`$g=!n{}t*b`0
z#wE@=e!Z$Qyq;uL*|_Uy=hcW{CJs+bl8-B$RmYoyq|TCZWYtzRtFifBOmkz-7}JU&
zE-#ufw9Us=VK;xt@;pn5&7G{6=KAf8ugZh0uF3+lZ|qg|##U8LY>mDHyYbCABR2P@
z<%rfao8CEpGov%!eKa|8eavM{R%Xta0rZB!l4uYNf~&zWxQqLUHZquug<}5)l*8Y}
z0eFBF5brO4IF^T@Ji$NU0o0MK1Mzk81Dt3dg!+K+Vo(Ss1Z2Yft{d;P=(pXWymo0w
z&kyPG^|tHhYw|5$Taf)lHE5|LAV^P&(C%#|hNp;<g$x+dV@F{@0!Gm)Ac~R83L7&#
zF$X9{?qz5fG1bt;j805iD8%t9G<VgHt)202Bz5hSp~@uX;hZpkiI!n4z^>Y5<=7ke
z3ZK$)32p_~gWJI!T#7y8#Y?egHkhq@4KJPA9x9vZ^N>R|1hF>JniH?-BT>8!3mRG_
z&*+b0IH~P{nbg%pztx<%=QNItp(&~Z#*vdXa{`rn$_&&C2EFsV?koGx{Pj(SQC)nY
zX^Km*_0HLMpW7i_qBDNFC4MLy7m1k{YFte-zqnB_w9my=%~I#UV#MY|#cQoo?H;L{
z(1+*zVyfsa%_+oz8Jx-bTsEQV^9s|_oSf-n>M;@tD~XSxci?mm@cv&;kZp5!f{4%w
ztpwT{=#!^7!%b10VK(uIQ2NR(lyNizh$A&2_}x(#7DJ(le@;-bjG~v^Z>P;Yv^uZ|
z0xjk~t^R!g<)8jxUmN#W!>}uoeXTN3+;psDA#urRUl+WE4%B}m7HQU?t{>TU*PqpX
z8Za#k7%LA%R;Kn)Yf#^2kvgZ?y$+)oyQkUyDf$|QPJ)}yx`Wc=JSo#6sedv>GC7x_
z?xJf>-f~grRg%)8&!Bfap_2r8#*-h>_*b5Q9y6XORZ#SvM)J^~PxM8jONSM(rZ>uN
zF`<A3+5VSWWDCy|W;y{qtQNDrx_TQudKU3L#vM)k*`%>$Q`LrSin;mEDaeH0m%iS>
z2W<0bMH;;y3|Sqv=MN@VV{|1L)Gp~XM>FQ;7~h~^Z5orJ@jAs#idz(KQgHRfEb`(z
z6f6(o_aM&vR_#R=EHS1REic}HvKS6l2g`#<f4xC(rbXUF21QQ=IE74(Vlq&VAUK0Q
h)-x%NpUfZ4QKKK8qhku#eGk#+Osh>FVl~iT_%|@b9q|AF

diff --git a/CoLo-AT/robots/robot_distributive.pyc b/CoLo-AT/robots/robot_distributive.pyc
index b333a179b26b0fb5b38fb217928739b4d7d64ced..6dccc8c459229f099f628cb86c45d05b53a2ee19 100644
GIT binary patch
delta 984
zcmeCRIHJeS{F#@_>0;|f_KnPP<_ruB`WgATsru!aIXRh$x%$reKKWom*D+*rp{U$u
zRTg0;BGgS@%GN|!nbPDL>=}fW$xY7X$RtLYGiMGl%4E2*2rE;X{GBU|urjsDhq#GQ
zCO5g2Cxx(Sa+AY&%ZX8D#aBm+GF5(}!tFPI12Lw(5FpA6I|btjo2E9oS167cWeLLj
z2`iJE+#@oLu(ArmN@OR8igglJCO6qzoTwNullVi(v_{FNgp?GD%1*u{wU)3lxyf&&
F6#*EPGCBYN

literal 7181
zcmd5>>u%IW6h5{$m(7I`k`SU&TCUor4XH$nR0*{em#Pv~q&i5bDadlxPU5g@FZOI8
zDEtDc@6fmC>+~7=uMg0k@0<1Rl14$vj~ap}XKwcS=6vVO%!&8+^u+Do%&$%9{qywq
z_xco(7Wzbvv_v+XQg&s-EoDzOyi%^oMvby7tr2+?*JO88cE=>r5jA<^iW7}Ur1epG
zEAmF<myL0}e7!NQA4>kwe`^g#MT25F(L#!Ew0My2C3%*%<22aH^5Cbe8McyFp-Hkd
zSWnvB7RA-AZrVg!u^P6vv*5wQAIz-IzMm8(Pd2+I*^B*bGc$dluJ+!=NB-0zE+MLJ
ziZ52B9eL{zlM976RC$lWDDa>~v5Zhq90avd2S9X9NHk7iQldJADTyX1OiMIL;fzF6
z6lNrvrf^oGGZbbenxSw`qO%m{B$}l#FVQ&)3lhyy(CPCO&P%jFVNs&<6fTIr-dI$4
z&6*bFa}S{Z(Bi<616P&~L;_n;flX*}#dsL;Mq9L66Egyfq8vlZu3FoXEf)iNW5(q`
zr|97NJA)&)H-7%`gb8-kWp}bSqW2<QEHwcCZ`(KOs)<qs5Y`e9B!T%zlExX8R4tKK
zxEZ(1L@5<P5gRk9)f|Qok~E56DkvQoryQ1c+X4FugV&`UGpfJZp)%$r-}oxdvx2Y4
z@<b<vAQ*Yo8m1u_$MJ;;O>E}$C6t1_Fi*m?8SA$bW1#4}?VPlg$IlBwGr(8Gtt}r~
z`luOrhkh);HySDni(*Hm)t#&zuf9lHtt4!(4t!x{;4)@KeP-oemUZG>{bVm*8TOwc
zr?JbhYF8>6a+;f+ed-VpLl9tji*r!Kn|A8@Gvi%z>$Qe+!EHio7y=Jjc3n*cmML9C
zmel+t8#$K$E-(KQU3YYPpwRuNi9B)TwI{D@oK@2)mY*P-62X%mh3?>`==S)=p>9_e
zEz9~tbQnG{g6X}k=gaaq&G_X}d~Zm_W4_k|@t#liMji20XfY<c>Ln`FOQ+FL0cK;#
z*2w1}dSg8sAg~X5k{u>#$EL2eSjh{U#+EBn7zNvqH9jXzqY6g*U>-l=pH<1sXrV;R
zO<?I5=DAtWwr6SfA`LRL6X)pBeq|oxaY7BM;veXyzHD_$(rv5uCulvdg*fxhsB_Wz
z#JTERaqG?%=Z161YhumHhit@pSW|1f<EkT)*j>lR0yZ$5OJu8BtHRx2-X2^Ne~Ak8
z66b`7X!JfJGlmx>+wCwYs<I;t&<BR#cnb}u0tc!OnTu6zs={1wDWK|Y5j=$4M%$@?
zVe=RQ#;P_|0gU@q>2?7k56)w!gN2YY1dG**V3qF0efQ1~B1D7oVZeaPAXp<n4}}UU
zk2*s|Rn7z$+iD%c_)aUOVM+-2eGCk4Cu!J@39V8n<2@+Q=I(Jw7{O_fT|IRU%)%(g
zJ@2wkuO1Negl%{g0jdW_pz^eh_Q4)zX@=4smt4`4Z^=50<c?%_cn0>$`G=4Tj5tDc
ziyyUin1DFH65yvQSb%x}vlwxZ8%T?n*BKnvc&xW^f+rfhqIz>84ghK=D;}zN80Y&O
z4fjy9V-GF;D?#<BaN+~1|ERWh1V(rmZHW!Z+Op47J-ffdR4{|lB{6ZE=h5oHLT!NM
z0oUH;uu=c4%_lS`&)d}lLJ$BTUV3@eeRK*eABKOGTN!WYkB@-SXCF{o_SxXER1%Ln
z0ORC`1&QX_I0OmG_JiZiLy!QhycKWP<h6~HnoiRjEK@BdWZvus_dYDm;PPiKX;m|2
zP2|Voz~rH3A?$6hOiB!nV@!thuKuA3t2)tKP?Z^wj!^cg_7zw&aV|McL|i;DIHS^%
z3WuT+s+w1D`>_eLiF7mTrV;mM{|jyNucP>|XhRi4)$63e30Nu*PW}zmA{x>jgfAc3
zYhD`$Sr;{xCLVP{No{&F?FCkM@^~-k<XMMzkRjSKFTgxSJKIBE0C$wiZnrqb^|KVg
zutwYH0VX-&9p1pbTVWct!~9v$4m$(z{#V*nm8ass-paxVD(UU04-Wnav*DqgL1F8c
zD9fX*bxi~}W_LAxXVY_FgeH_dd1AA^oQsq+^U+7V#}R!=Nt)y1A#Mjej(0neMnvXY
zZ8i)&wlOgKotWv~B2EkaV}p(i{T1!6YN26&8?~*5ZPWo2VQ|@LAnx_jv$$pi0Rvp1
z?2EcBt@>~gp2Z&J-PlKj^)bi)2*pJdAEUr-;Ul5uUq*2S#Z?s7P{5siEP?+Sie(g^
zqrl$fBSYoiLh&^U<Ol}KMd^RdR{Pi(#`P(n*r;1yn3}D7$Ntp%y^B_J97vd(*CcCa
z-^cl%i>QAZ*x{cF^sfToda+*^q<`$**$H#Cfr;~igF6@uTP0}`=Z1P!xiI9(9m|Yw
Qu}B5jHRaf!33tx<7wXou2><{9

diff --git a/CoLo-AT/robots/robot_system.pyc b/CoLo-AT/robots/robot_system.pyc
index 621918c1802b1bc0c429dd372643cf257501cd80..d4b958ce743a9523e79572f2bdc5f7b71d8aa114 100644
GIT binary patch
delta 1694
zcma)7O>Y}T7=C8fUVp9EpTTxxyH3>7s#US*p@&i_LRD3S0##jls}xzDt-H3fPS%_7
zwTsmTu6$@Oz>Nz?91sX0rAR#>@eBG7+CwG8jUE7T;hpiiHEK~}duN`Rc|V@#otgDF
zFWx?$&>m;gkN*1Xhr~mz`7(g^t?{PSe%l_6?Cxg!;&^?mnlrDy6@C@3{CFj%v4ibK
z2b)yFiN13fvn#Q9cr9`JFsA2|r_Cm5h|_bCp2<JqB)LBQ8zPP%0Y3(zqZT9;N)SrH
zi(wFlNJ6C0=du-P3Fx=S5TxO!5oDA@h8zs|hBO)i?tKUvQcQ;0O^(a2i7b3zpu^Xq
z87~20PGzJ!3=X8TKg*s&t*;><k6C~xju)I?nNN)J7;?B39uX`o5KJx*G~t_bf<+>j
zQvpka@(Ptvn+631X;}b64enhgv&!)jhA}x7FQ@_$`xFKwI;YeZ;TIA4e9s8`6m%Ah
zG?P)E>Y9Z|LUe4GxtCGk9;YQK$iPsCJLOzd=HU$tNb@XwDf0A7{}Xuo9v4;VISWio
zD4X*&WPNI?KKq<Nw6&3ZmG^0qGNzJ>33roAK+LEngFN<t8$^5w0co$msVd4jJi9~=
z{u2BOW;^zrBeS?888}4m2%QI?#NX%slmutwmIYOH259!W7ICU8K%D5r45+enNUPZ6
zxDi7@!j2$Vo>wk1DoWx(9os)guF_4Lduq?|oRa1N?VYCfv<}BoN~t2BE@ppHk$K*z
zT9Vm3sdMU?BK_BTF^?UGUxQeFMW!y-L>=eUSPex3m6~YMR2||db;}Sf>gd9(;9Ssv
z-@vt#tKlhQeLBh0UG6&lol)0q?OLO8&-UK!zhD0D@`Lw2T(fBr{V%_epSx>x;{aie
zyzYiKF$wo}T-S2EmS=BT=UXb&mTT>9Y`NpDjcBq;c9&dt?6z#DHzxa@*NS4Sc$x4M
z<7i^P`O)uJ_dgDQGHw}@64~3%Zg*shu#o+nmBMecmyUTU8RngywdL7khfWFb=Gd`1
zGCExmB58SH-0ZSu*f*~hPRnUV&8}MPZiK&>$K#z<nhF0fFR&9~JNMgR-g+P88=X7k
z1#Yk`OViijI$>R6ZAJDp%CREL@e(U@gR41Z*`n1VGgytKc#7xLNN07fv+zNFiD}`V
t`8V{l6ua|M_<EsnwnOlw%=NUH9QdzM4IdWPSUX%TP7k9;zVMCG^1r3EX=eZc

delta 1915
zcmcIlO>f&q5PeHZq$yL>hiQxSM;imN;W|)^UVJj*0*0X;oR2zJ1BH^670D7=%d`We
z%MgK!0x5i3AU`2N4h_)eTA;UF+T@ZykQV5nm-f&<&{;}?UD&==5;>gRoq6xg>`HvH
z@M6)_|H<e6GLs+7-}T$~0IWO+yN#8Htxl&^@2=c!bq_oBs1*j)&ETlj3xjSWh^o6`
zueuS2Up0EPcGReDh4<^7)}u6VW%n?+uQCqgdbaZVqm0f*0Nfb?W<`F;9*zX}JLB7t
z;BK1NoH^RGEZrM)AN(jEn_I~n@GN2zA_H!~kH-*Y(9VL>)EHcK^D#6vkmZ(g=sISI
zEeH#7E=^?c1<*DibogF84nfygx|D<8)Dhd~;?{y!Ok@-AaqMa6y<-DjTQOb0mxss?
z`SK*xNf90L3aM8hub6tY%8S^`pm)T0DJ_n~nP`(DC)HkpD1ifedV*e;(LfMLKU>w}
zph-=!5s`8O`@gU#mpYNg%PAg_6C^1&(EFM7{WjIuhc6EjMfnok{YdL0@&t+}cn(1=
zpGZ3qYUB)dWKd|zb&5Zcvggseswrv`GXcL{z%j5xie1E$h^G*EX`F-eOOzm7h$$rf
z%^CFGx}^6x1SHQz?Q=l|Kh*@4np2w;R}cVd($<v}()50)iH<^>T1w}rf@2Lk8N?o9
zAMx~XOGtR4qDo46JcIrH6odp*o<2;~FHWT_icu$V20>%kk=g)39mLbJhrEMso#9Ln
zET8Mrf5XobwXzT%_@ttCeLjWN(;=^*;&YFtX25-VOoLC;!vvqfYCH=ui@Qs+^wYbw
zog*8KlaVLmH!97yztU&R{j5bZXnyU!s{Qupn{`>U=gsy{k@PapWN1H-f7>UlEJc2E
zYTHu)x{7W@w0VRX1`YW~zRu=k&H2JwR_lz6eCaIMkx3qJbfWr~k$ms0u|-)d{5g`p
znd`;5og-p{X0trY(bv`t@(uDnAv<YKFqg*j>5N)0l2>Ln^O>btn!yS*GT1D6)*!FU
zEcUVH(aKd#zAoNOJ|+C^sxq!Jlgd<-@s&|6-o8U-iS9Gz;QxAOnWrx;Pj*Y|?7IBE
Ml#HaE_41W}0Y}-?fdBvi

diff --git a/CoLo-AT/ros_compatibility.py b/CoLo-AT/ros_compatibility.py
index fd4b125..26f560a 100644
--- a/CoLo-AT/ros_compatibility.py
+++ b/CoLo-AT/ros_compatibility.py
@@ -22,7 +22,8 @@ sys.path.append(os.path.join(os.path.dirname(__file__), "localization_algos"))
 from centralized_ekf import Centralized_EKF
 
 compname = getpass.getuser()
-dataset_path = "/home/"+ compname +"/full_tests/full_test_v3_6/"
+dataset_path = "/home/"+ compname +"/CoLo/CoLo-D/CoLo-Datasets/official_dataset3/"
+
 
 dataset_labels = [1,2,3]
 duration = 310 # duration for the simulation in sec
diff --git a/CoLo-AT/ros_demo.py b/CoLo-AT/ros_demo.py
index 1915587..6d0d045 100644
--- a/CoLo-AT/ros_demo.py
+++ b/CoLo-AT/ros_demo.py
@@ -25,10 +25,10 @@ from centralized_ekf import Centralized_EKF # works
 #dataset_path = '/home/william/catkin_ws/ros_colo_dataset/'
 #dataset_path = '/home/william/UTIAS-dataset/MRCLAM_Dataset3/'
 compname = getpass.getuser()
-dataset_path = "/home/"+ compname +"/full_tests/full_test_v3_6/"
+dataset_path = "/home/"+ compname +"/CoLo/CoLo-D/CoLo-Datasets/official_dataset2/"
 
-dataset_labels = [1, 2,3]
-duration = 240 # duration for the simulation in sec
+dataset_labels = [1,2,3]
+duration = 120 # duration for the simulation in sec
 testing_dataset = Dataset('testing')
 start_time, starting_states, dataset_data, time_arr = testing_dataset.load_MRCLAMDatasets(dataset_path, dataset_labels, duration, delay_start = 0)
 loc_algo = Centralized_EKF('algo')
diff --git a/CoLo-AT/simulation_process/__init__.pyc b/CoLo-AT/simulation_process/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..400ad9f195a1b43c946cf565e35e7a2fd53e3104
GIT binary patch
literal 175
zcmZSn%*$1G%QZTg0ScIav;z<q^8twzAYx?5VPFVJVPXi@U<L|hG6D$=5K#gmwEQ4!
zAd^7@l_<6Z^7S+Fb5r%pGjnn>6La;Q^L_Hcgsx+VesN}QX-;BEW`16LK~a8kYH_iC
ge0*kJW=VX!UO{CE2T-?7ZhlH>PO2Tqrecuk0KPpV0ssI2

literal 0
HcmV?d00001

diff --git a/CoLo-AT/simulation_process/__pycache__/state_recorder.cpython-35.pyc b/CoLo-AT/simulation_process/__pycache__/state_recorder.cpython-35.pyc
index 3b7e1eaa2350cb227f65d1287e931c9781c61a44..0fcd11cf4edee175cfe5045297dadb820276eb77 100644
GIT binary patch
delta 29
lcmZ3hzEYi2jF*>7r+G@Wz(&p!9IQp63=9mLZ*g4a0swXA2p#|c

delta 33
mcmZ3fzE+)6jF*?|+pmeyLK`_xaB!wGfWZU%&DS_Ca{&ObF$!G(

diff --git a/CoLo-AT/simulation_process/sim_manager.pyc b/CoLo-AT/simulation_process/sim_manager.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..53439f6dc5f040798dd79624f43cb3f4c0d8b051
GIT binary patch
literal 4448
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

literal 0
HcmV?d00001

diff --git a/CoLo-AT/simulation_process/state_recorder.pyc b/CoLo-AT/simulation_process/state_recorder.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..60c70abad1ad9cc386d7829e5807f86a1bda8d04
GIT binary patch
literal 5783
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
HZ?*hiBy+;Y

literal 0
HcmV?d00001

diff --git a/CoLo-AT/test_simulation.py b/CoLo-AT/test_simulation.py
index 79192ed..19d3ab9 100644
--- a/CoLo-AT/test_simulation.py
+++ b/CoLo-AT/test_simulation.py
@@ -7,6 +7,7 @@ Created on Sun Apr  8 17:55:06 2018
 """
 
 import os, sys
+import getpass
 sys.path.append(os.path.join(os.path.dirname(__file__), "."))
 from dataset_manager.existing_dataset import Dataset
 from simulation_process.sim_manager import  SimulationManager
@@ -26,33 +27,35 @@ from ekf_ls_ci import EKF_LS_CI
 from ekf_gs_bound import EKF_GS_BOUND
 from ekf_gs_ci2 import EKF_GS_CI2
 
-
-dataset_path = '/home/william/UTIAS-dataset/MRCLAM_Dataset3/'
+compname = getpass.getuser()
+#dataset_path = "/home/"+ compname +"/CoLo/CoLo-D/UTIAS-Datasets/MRCLAM_Dataset3/"
+dataset_path = "/home/"+ compname +"/CoLo/CoLo-D/CoLo-Datasets/official_dataset2/"
 
 dataset_labels = [1,2,3]
-duration = 300 # duration for the simulation in sec
+duration = 120 # duration for the simulation in sec
 testing_dataset = Dataset('testing')
 analyzer = Analyzer('analyzer', dataset_labels)
 
 start_time, starting_states, dataset_data, time_arr = testing_dataset.load_MRCLAMDatasets(dataset_path, dataset_labels, duration)
 
-loc_algo = EKF_GS_CI2('algo')
+loc_algo = EKF_LS_BDA('algo')
 robot = RobotSystem('robot', dataset_labels, loc_algo, distr_sys = False)
 
-sim = SimulationManager('sim EKF_GS_CI')
-state_recorder = StatesRecorder('EKF_GS_CI',dataset_labels)
-sim.sim_process_native(dataset_labels, testing_dataset, robot, state_recorder, simple_plot = True)
-loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder, plot_graphs = True)
+sim = SimulationManager('sim LS-BDA')
+state_recorde_gs_ci = StatesRecorder('LS-BDA', dataset_labels)
+sim.sim_process_native(dataset_labels, testing_dataset, robot, state_recorde_gs_ci, simple_plot = True)
+loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorde_gs_ci, plot_graphs = True)
+
 ##############################################################################
 
 testing_dataset.dataset_reset()
 loc_algo = Centralized_EKF('algo')
-robot = RobotSystem('robot', dataset_labels, loc_algo, distr_sys = True)
+robot = RobotSystem('robot', dataset_labels, loc_algo, distr_sys = False)
 
-sim_n = SimulationManager('Centralized_EKF')
-state_recorder_n = StatesRecorder('Centralized_EKF ',dataset_labels)
-sim_n.sim_process_native(dataset_labels, testing_dataset, robot, state_recorder_n, simple_plot = True)
-loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_n, plot_graphs = True)
+sim = SimulationManager('Centralized_EKF')
+state_recorder_cen = StatesRecorder('Cen-EKF', dataset_labels)
+sim.sim_process_native(dataset_labels, testing_dataset, robot, state_recorder_cen, simple_plot = True)
+loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_cen, plot_graphs = True)
 
-analyzer.algos_comparison([state_recorder, state_recorder_n])
+analyzer.algos_comparison([state_recorde_gs_ci, state_recorder_cen])
 
diff --git a/CoLo-D/README.md b/CoLo-D/README.md
new file mode 100755
index 0000000..13fffb5
--- /dev/null
+++ b/CoLo-D/README.md
@@ -0,0 +1,54 @@
+# LEMUR CoLo-D
+
+## Synopsis
+
+CoLo-D provides 2d datasets for studying problem like like cooperative localization (with only a team robots), cooperative localization with a known map, and cooperative simultaneous localization and mapping (SLAM). It includes datasets that are compatible with CoLo-AT, a software analysis tool for localization algorithms. These datases can be collected by CoLo-PE, the physical experiment of CoLo.
+
+
+## CoLo Compatible Datasets:
+
+CoLo Datasets:
+4 individual dataset with 3 robots
+- official_dataset1
+- official_dataset2
+- official_dataset3
+- official_dataset4
+
+
+UTIAS dataset (created by the Autonomous Space Robotics Lab (ASRL) at the University of Toronto):
+9 individual dataset with 5 robots
+- MRCLAM_Dataset1
+- MRCLAM_Dataset2
+- MRCLAM_Dataset3
+- MRCLAM_Dataset4
+- MRCLAM_Dataset5
+- MRCLAM_Dataset6
+- MRCLAM_Dataset7
+- MRCLAM_Dataset8
+- MRCLAM_Dataset9
+details info: [UTIAS Dataset](http://asrl.utias.utoronto.ca/datasets/mrclam/).
+
+## CoLo Dataset format
+
+For a team of 3 robots, there are:
+3 odometry files (filename: Robot[subject #]_Odometry.dat ), one for each robot:
+[time [s] | linear velocity [m/s] | angular velocity [rad/s]]
+
+3 measurement files (filename: Robot[subject id]_Measurement.dat ), one for each robot with respect to its camera
+[time [s] | ArUco Code | range [m] | bearing [rad]]
+
+3 measurement_x files (filename: Robot[subject id]_Measurement_x.dat ), one for each robot with respect to its center and covert ArUco Code to subject id
+[time [s] |subject id | range [m] | bearing [rad]]
+
+3 groudntruth files (filename: Robot[subject id]_Groundtruth.dat ), one for each robot
+[time [s] | x [m] | y [m] | orientation [rad]] 
+
+1 landmark groundtruth files (file name: Landmark_Groundtruth.dat ), for conversion between subject id and landmark locations
+[subject id | x [m] | y [m]]
+
+Note: for landmark, subject id is the same as its AruCo code; for robots subject id is from 0 to 5. 
+
+## Authors
+Shengkang Chen
+
+
diff --git a/CoLo-PE/README.md b/CoLo-PE/README.md
index e69de29..a35b34a 100644
--- a/CoLo-PE/README.md
+++ b/CoLo-PE/README.md
@@ -0,0 +1,36 @@
+# LEMUR CoLo-PE
+
+## Synopsis
+
+CoLo-PE is the physical experiment of CoLo. It is a physical experiment setup for robots to collect 2-D datasets for multi-robot problems like cooperative localization (with only a team robots), cooperative localization with a known map, and cooperative simultaneous localization and mapping (SLAM). 
+
+In CoLo-PE, there is a team of ground robots equipped with cameras and a groundtruth data collection system. Each robot can will log its odometry data and measurement data (based on AruCo) into its odometry file and measurement files
+
+The manual will explain the software and hardware used in CoLo-PE for users to help them create their own experiments in details. 
+
+## Running CoLo-PE
+
+1. Make sure the groundtruth data collection system can capture all the needed subjects includes landmarks and robots
+2. Start groundtruth data collection
+3. Remotely start robots 
+4. Wait for data collection process 
+5. Remotely deactivate robots 
+6. Stop groundtruth data collection
+7. Organized all the files into a single folder 
+8. Data processing for collected data 
+
+## Robot Control 
+
+In CoLo-PE, we use desktop sharing for the remote control of the robots.
+
+'''
+$ cd catkin_ws
+$ source devel/setup.bash
+$ ./robot_full_run.sh
+'''
+
+
+## Authors
+
+Shengkang Chen
+Clara Chun
diff --git a/README.md b/README.md
index e69de29..79fc62d 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1,17 @@
+# LEMUR CoLo
+
+## Synopsis
+
+CoLo is a performance evaluation system for two-dimensional cooperative localization algorithms. The system consists of a physical experiment (CoLo-PE) for data collection and a software analysis tool (CoLo-AT) using real-world datasets to evaluate the performances of users’ cooperative localization algorithms.
+
+## Structure
+
+There are two main parts in CoLo: a physical experiment (CoLo-PE) for data collection and a software analysis tool (CoLo-AT)
+In CoLo-PE, it will shows the requriment hardwares and softwares needed for setting up the the physical experiments. 
+In CoLo-AT, users can load their localization algorithms and test their performances using different datasets on various settings. 
+Each parts can be used independetly for users' needs. 
+
+
+## Authors
+
+**Shengkang Chen**
-- 
GitLab