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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ℑNbIAWtQ$$JLVPN8 zV>~S<s2$9Lk;En{Mrs4?jHDW=Ew$cBHA26_@S@BWm+m5LA+aBz7HL1=rJiwo;ea`j zxlo|=dzKBpFQRAQh}5V2I+D!b6V)mvQmvjz?cl&&hE(T>Dg8B_3<Pt-=t37wJg7S% zG~5a*i;hupe<8oY{k2_%JCG{bOpUGI%#3I_YK+c9XaUlx(a{YdLZH-eG5*I3h@P7L zV=)O3w9^$p5M9_2FU-P3%ur=v0+%ew_*oNz6}Ry6v~*}g-hGiZ=7-m}-=F)=%m4D; zoo7=j4DC9*^yyUCi1td!J<{<g-wmRLqORy6TEEGH3@PeG(#6&v@sVDi^&2SGWLlMv z<Wvb6iXZ1RwziNHZ6U)wP&eP;5Na4YfDJF!M-tT{Kac1V>sxI5Itz+UaRiaxVwg~r z(c!W`b+e>aBDc=2Az#&T>wNn`w)<_0fG063{^yGlWvrwyb&B&0B=C9j45WJAn9V|p zn-CG174Ze>-HB&MMV-iqzr@2p0)tpVF+yY@H3RhLzZ&yC<TC!<1^?@UKd^$lUrXTt zj-mT!D(?vyDstxDL$Nk?fEW;Vpb@QSf@=NmlCt$;BF(|ckVaxwGA5lwqU1jW(22o@ z+M;x)F|eMB@{1L82aVQuS^N$Q5$wN$ngk-`pRjZwLjD;bCFsA#F^q3|FnNZdFJvUd zqaFQ-5C(S4eF%wC4MqF>8IeyzhREmtD=kB*QZ47rB2@OYxwe2lv88OA|6*d>@(PKK zT#mEX#G`c*1N6Hy!dC$wLl%21Zn1cmMVH0<Ecz_I%0d822x@=|6MmbI0%UTc^*s~= zj*!|R{7am*jAf~;gH;rHvydrFPu)ft|Be-o6pDpHVXSbzU=<3b2lW{!7sRT?TO*zQ zfkA8i96Pco5JtJ74Oo(pwqn_CkvqhqYX^_X`x)$S2ilfq5JsEPJlNsiS1@>4<Lnt) 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 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 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