From 824fb4d14ed0c3264aab5f59e631de83c60bbcee Mon Sep 17 00:00:00 2001
From: William Chen <billyskc@ucla.edu>
Date: Mon, 3 Jun 2019 23:08:12 -0700
Subject: [PATCH] finished sim part

---
 CoLo-AT/Algorithm Comparison.pdf              | Bin 22885 -> 29721 bytes
 .../__pycache__/data_analyzer.cpython-36.pyc  | Bin 7073 -> 7145 bytes
 CoLo-AT/data_analysis/data_analyzer.py        |  15 +++++++++------
 ...simulated_dataset_manager_w.cpython-36.pyc | Bin 7048 -> 6884 bytes
 .../simulated_dataset_manager_w.py            |   8 --------
 CoLo-AT/gs_ci_journal_sim.py                  |  10 +++++-----
 .../__pycache__/ekf_gs_sci2.cpython-36.pyc    | Bin 5445 -> 5445 bytes
 CoLo-AT/localization_algos/ekf_gs_sci2.py     |   5 ++---
 .../__pycache__/robot_system.cpython-36.pyc   | Bin 4204 -> 4204 bytes
 .../__pycache__/sim_manager.cpython-36.pyc    | Bin 5319 -> 5354 bytes
 .../__pycache__/state_recorder.cpython-36.pyc | Bin 4989 -> 4989 bytes
 CoLo-AT/simulation_process/sim_manager.py     |   1 +
 12 files changed, 17 insertions(+), 22 deletions(-)

diff --git a/CoLo-AT/Algorithm Comparison.pdf b/CoLo-AT/Algorithm Comparison.pdf
index be8592ab63d020456462f6a207fa78bf16221817..19257be51e0530e4914cf84d90a705e80fff7465 100644
GIT binary patch
delta 16950
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
VBoJzgAoBnL97wdZ5{i;Y{}+&{Fz^5X

delta 10043
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

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 7c702c1fe6559289fc6ad2a6503301457bd71125..487698deadc7a65695954f9daa06aef9cb606afd 100644
GIT binary patch
delta 826
zcmY+B&ubGw6vuaV^K-M4P13||5~)=wb?rflwDDK4X*Jra$-z`@jYyK+wx&tb&TbW9
zFhWof6odg0Z+i7qa`WoNg9kx8xF_+V`2+MM=)7GOoMAuv-pu>HdGqE)ZjcKf##o+`
ze^k3WVLQ0@tKg2$Co2uVX9`*V$NZb)pY@164=$s3{qMmV8b3&JGeohGNDDoL1RCXD
z)EN5XsoYbIWLjWb;l(9?GeU6>^+Y7tVMDdSkN)#xuCIDNm7a*?E)|*z#Z;w3G)Chz
zu`1Dk5r6FG=U^Iz^%dVmK~J%)d@nXuxVbuN*)`i7H7)x_n>~~l;)7p&kQ^`Dg^t-r
z`GL>ZHfwz&q9Noks(eCs*d=TX`=f|YQAT`9yO1I(C<e3t9)A(LOORt3a1~JHaHNgx
zcEySCY}Ph0+vbK%B-nIgr@;cjz+D5?0Q%`l2LZ6I0Ynbn=V|`W@0A=RM|i{{IR?SU
zIh?S`&ov3ZDS<~JCjc`XdYnYThG!zD0A~Pa0rP+b031lp0nW4g@n`5&e@`MMqG>jj
ze2v%nx-NRxSZ6<zMO0vOsV@4~f0HVsz-f>b*|4@RRRHrcKmp7EELPS=^er$6pa|#y
zHUVy37r-h3%Iv8&iPZjEZ59Q*{<2tlBH%Tc719md;&Fe=p=>9;JFo`II{T15v>(zr
z3hC54_Vre+Zni8k0lN)A2(ZG&G6&EID`jRAlYF64(h<4B4P7b`o4w5BQ|=Aiq!uV{
i0eY;R)mS8}X;nEN8kbcP0ZrKP^Tu!9CV6%=yY?G_hP4I&

delta 733
zcmZ9K&ubGw6vy}Nwwq*kC&|Wc(qwA|J?K)fNU7CoEyT9|jt7mlQP8A`k(e}bk_zI8
z)*vDx2oKbQ2;Rh-?9G$-2Y5Gv2f;)1?4bwId0XqjS?0r+_iN_8o&MCTsmKIl#*be=
zFFJ1{ozPaUDT;D-c~Fv;D>sw-u-t8dFGB@*@2`i7;EoDb3zwk_por){6(fafk$m11
ztP35B=qg<mluo1^>zE=ISS2^CLVKd}mQZR;FcA}5L|oV+QPqTAjz1ohwV8;L{mQ@@
z#j|nTxR0NW3Dt|@HuFJPYp*tXTD{`GF;f5q{9t_ofiGA&sTm+YHK3LROSK>gNq;!{
zRgIsQ&G1FS5}|;GJyHmalbfDCjUjONX%xI5(bq{`AgB`F0RO)b1^t%G3-P@awvVtM
z@7hDt(<Bc`cs7rc&Jt*>e1UL;aFlS2KnL*SgcJDDeh#nwYQj-r5^oQ^V>M~_)ZkC?
z8qPTjFpH0zJMhgnlczzSqqKRvoZ9ZplFSn<0-et}K1+>yEt1y>^Mn;blMvkNB&kz`
z9DYgd0n3jMXF=cS7Z=lG`rpYtOfR!*GH&xaw{Sf@qE{)ih;C+l2bJqtyjf~?F4c>r
zO1;g;$Xg<W2^DN)c7cmeGucG&_;McbbJF8!Io`(anHeYOASlWy;|Ad#9&~r7mW-M3
XP9w%mijVXLS5_OXoBRN-xmW)HR+ODX

diff --git a/CoLo-AT/data_analysis/data_analyzer.py b/CoLo-AT/data_analysis/data_analyzer.py
index d1b233b..a6bc957 100644
--- a/CoLo-AT/data_analysis/data_analyzer.py
+++ b/CoLo-AT/data_analysis/data_analyzer.py
@@ -76,7 +76,7 @@ class Analyzer():
 
 
 
-	def calculate_loc_err_and_trace_state_variance_per_run(self, data_recorder, unit_time_interval = 1, plot_graphs = True, selected_labels = None):
+	def calculate_loc_err_and_trace_state_variance_per_run(self, data_recorder, unit_time_interval = 0.5, plot_graphs = True, selected_labels = None):
 		#recorded_dataline = [time, robot_label, est_x_pos, est_y_pos, trace_state_var, gt_x_pos, gt_y_pos, loc_err, update type] 
 		
 		data = data_recorder.get_recorded_data()
@@ -143,10 +143,12 @@ class Analyzer():
 				state_err_per_run.append(state_err_per_time_interval/num_dataline_per_time_iterval)
 				trace_per_run.append(trace_per_time_iterval/num_dataline_per_time_iterval)
 				   
+			
+
 			else:
-				loc_err_per_run.append(0)
-				state_err_per_run.append(0)
-				trace_per_run.append(0)
+				loc_err_per_run.append(loc_err_per_run[-1])
+				state_err_per_run.append(state_err_per_run[-1])
+				trace_per_run.append(trace_per_run[-1])
 
 			lm_measurement_num.append(lm_measurement_count)
 			relative_measurment_num.append(relative_measurement_count)
@@ -157,8 +159,9 @@ class Analyzer():
 			interval_start_time = interval_start_time+unit_time_interval
 
 		print(data_recorder.name,': ')
-		print('Avg location deviation errors per run: ', sum(loc_err_per_run)/len(loc_err_per_run))
-		print('Avg trace of state variances per run: ', sum(trace_per_run)/len(trace_per_run))
+		print('Avg location deviation errors per run: ', np.mean(loc_err_per_run))
+		print('Avg state estimation errors per run: ', np.mean(state_err_per_run))
+		print('Avg trace of state variances per run: ', np.mean(trace_per_run))
 		
 		if plot_graphs:
 			self.plot_loc_err_and_trace(loc_err_per_run, trace_per_run, time_arr, operations_distr = [lm_measurement_num, relative_measurment_num, comm_num], recorder_name = recorder_name)
diff --git a/CoLo-AT/dataset_manager/__pycache__/simulated_dataset_manager_w.cpython-36.pyc b/CoLo-AT/dataset_manager/__pycache__/simulated_dataset_manager_w.cpython-36.pyc
index 35c5604c197dbd43ba397d71f598ccbad8207c35..f2a3c9d7665263c49923681c4c514744357791fd 100644
GIT binary patch
delta 354
zcmeA$e`3mI%*)HQfc;yHiqb|dTe12Z3=9k@j44bl3?&RT3|WlLj4lk#j5Q4LOexG*
zM43}qu!yphu%@s!Gcqy&X*QrKY|TtyHan2b4q}7EfM#-J0$K5#6?Q;AmkUFzNo@kq
zsx0;zMoESg4oQ$Q2%8g$%>|U>p2G~3<E&w{VJNH!XDH#$;sNqOdU?~Bz|Q3ZvO!jZ
ztmFq`zBHC#22CEn$$}gqjMpX$N=#+EKAD{(j`7B1Hpv9dA`zg!i!?!mHjvO{E|LMU
z6+whPNI;;-2E?|WJWo<W)DpzB0ue4C!WBdqPu?Tx%_;$8GEA0|n$FlXd6U#N0D-Mc
AMgRZ+

delta 546
zcmZvYJxjw-6o${aN!m0`+Ej}s+C_vyP;jUsYFY>Dq=+Es;um<S*hxbW!Agg8&^Z(r
z|Ac?WQ5{^mx#;3h&xu6}nvf^&`<{Ex{dilrT{J3|W!!y!?02Uhjp|r?8v!J?;0Vru
zNUBL*icm;p5>8d}C{>?olnaTW7-Y&ILz$OaD2gyNUi+<47p@KFq<jb!>ZC@zq9)U_
zt#=?yQKUs!ha^tRjQpGG()cIMgoeyUh(Ldnw-|{;TcnXSXS7r{Ih=V_Bd^xsVE%>=
ziY;urAXS%#ks+-NX^njDf%j{+(1(lnJqWF4j=V-+z9EwB+N6KxL$g5IZm2up*;@f!
zEc7%&;4zAf8OAK(gsb$#uD*%S@%4BYU*dvuh_CUvbG+**L5Zrt6l0Fi`|9`m-bk>-
y!7?N1th1^xRv12`%BV3`8EcF>V?8dr8>3~CfGK(%EMf^AVaAv4J$B;U#M3ughH)DJ

diff --git a/CoLo-AT/dataset_manager/simulated_dataset_manager_w.py b/CoLo-AT/dataset_manager/simulated_dataset_manager_w.py
index bd0238a..007c7d2 100755
--- a/CoLo-AT/dataset_manager/simulated_dataset_manager_w.py
+++ b/CoLo-AT/dataset_manager/simulated_dataset_manager_w.py
@@ -211,14 +211,6 @@ class Sim_Dataset_Manager:
 
 
     def dataset_reset(self):
-        self.start_time = 0
-        self.starting_states = {}
-        self.starting_states[1] = [self.start_time, 0, 5, pi/2]
-        self.starting_states[2] = [self.start_time, 5, 0, pi]
-        self.starting_states[3] = [self.start_time, 0, -5, 3*pi/2]
-        self.starting_states[4] = [self.start_time, 0, 5, 2*pi]
-
-        self.num_robots = len(self.robot_lables)
         self.measurement_data = [[] for i in range(self.num_robots)]
         self.odometry_data = [[] for i in range(self.num_robots)]
         self.groundtruth_data = [[] for i in range(self.num_robots)]
diff --git a/CoLo-AT/gs_ci_journal_sim.py b/CoLo-AT/gs_ci_journal_sim.py
index 9d4b5c4..ed3498b 100644
--- a/CoLo-AT/gs_ci_journal_sim.py
+++ b/CoLo-AT/gs_ci_journal_sim.py
@@ -27,7 +27,7 @@ from ekf_gs_sci2 import EKF_GS_SCI2
 
 
 ##############################################################################
-duration = 100
+duration = 150
 robot_labels = [1,2,3,4]
 testing_dataset = Sim_Dataset_Manager('testing')
 start_time, starting_states, dataset_data, time_arr = testing_dataset.circular_path_4_robots(duration)
@@ -65,7 +65,7 @@ robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False)
 sim = SimulationManager('sim cen_ekf')
 state_recorder_LS_cen = StatesRecorder('LS_cen', robot_labels)
 sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_cen, simple_plot = False)
-loc_err_per_run, state_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_cen, plot_graphs = False)
+loc_err_per_run, state_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_cen, plot_graphs = False,  selected_labels = [1])
 
 ##############################################################################
 
@@ -76,7 +76,7 @@ robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False)
 sim = SimulationManager('sim ls_bda')
 state_recorder_LS_BDA = StatesRecorder('LS_BDA', robot_labels)
 sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_BDA, simple_plot = False)
-loc_err_per_run, state_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_BDA, plot_graphs = False)
+loc_err_per_run, state_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_BDA, plot_graphs = False,  selected_labels = [1])
 
 
 ##############################################################################
@@ -88,7 +88,7 @@ robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False)
 sim = SimulationManager('sim ls_ci')
 state_recorder_LS_CI = StatesRecorder('LS_CI', robot_labels)
 sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_CI, simple_plot = False)
-loc_err_per_run, state_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_CI, plot_graphs = False)
+loc_err_per_run, state_err_per_run_ls_ci, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_CI, plot_graphs = False,  selected_labels = [1])
 
 ##############################################################################
 
@@ -99,7 +99,7 @@ robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True)
 sim = SimulationManager('sim gs_sci')
 state_recorder_GS_SCI = StatesRecorder('GS_SCI', robot_labels)
 sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_GS_SCI, simple_plot = False)
-loc_err_per_run, state_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_GS_SCI, plot_graphs = False)
+loc_err_per_run, state_err_per_run_sci, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_GS_SCI, plot_graphs = False,  selected_labels = [1])
 
 analyzer.algos_comparison([state_recorder, state_recorder_LS_cen, state_recorder_LS_BDA, state_recorder_LS_CI, state_recorder_GS_SCI, state_recorder_bound], only_trace = ['gs_ci_bound'], selected_labels = [1])
 
diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_gs_sci2.cpython-36.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_gs_sci2.cpython-36.pyc
index c8abb3b50d3e7bbaa105b4b78ae49a4178137b74..a52f11c5e0e8030a79269ec134d0f7da2a092452 100644
GIT binary patch
delta 69
zcmX@AbySPfn3tEUiTzv5rH!2R?CcC+aA9*lyBI4Y<K|^Nr&$;)HWvxjF|zj``l=Dr
X|7!Agq5q5rCVv;+!>B!Zi^xO({E-;q

delta 69
zcmX@AbySPfn3tDJssBUF<&B*6?Ci5<g22wr{p@0_j7*!C@tkI1tlV5ASjPyJdO7*K
T(0|5*lfMh^VbqztMPwoXuOl4B

diff --git a/CoLo-AT/localization_algos/ekf_gs_sci2.py b/CoLo-AT/localization_algos/ekf_gs_sci2.py
index e95628a..7bfb64e 100644
--- a/CoLo-AT/localization_algos/ekf_gs_sci2.py
+++ b/CoLo-AT/localization_algos/ekf_gs_sci2.py
@@ -30,7 +30,7 @@ class EKF_GS_SCI2(ekf_algo_framework):
 		[measurement_data, sensor_covariance] = sensor_data
 		sigma_odo = sensor_covariance
 
-		var_v = 0.1
+		var_v = 0.25
 
 		num_robots = int(len(s)/2)
 		delta_t = measurement_data[0]
@@ -108,7 +108,6 @@ class EKF_GS_SCI2(ekf_algo_framework):
 		kalman_gain = total_sigma*H.getT()*sigma_invention.getI()
 
 		s = s + kalman_gain*(z - z_hat)
-		
 		total_sigma = total_sigma - kalman_gain*H*total_sigma
 		i_mtx = np.identity(num_robots*2)
 		sigma_i = (i_mtx - kalman_gain*H) * sigma_i * (i_mtx.copy() - kalman_gain*H).getT() + kalman_gain * sigma_z * kalman_gain.getT()
@@ -197,7 +196,7 @@ class EKF_GS_SCI2(ekf_algo_framework):
 		[comm_robot_s, orinetations, comm_robot_sigma_s]=comm_data
 		num_robots = int(len(s)/2)
 
-		e =  0.8 # (iii+1)*0.01
+		e =  0.83 # (iii+1)*0.01
 
 		[sigma_d, sigma_i] = sigma_s
 		[comm_robot_sigma_d, comm_robot_sigma_i] = comm_robot_sigma_s
diff --git a/CoLo-AT/robots/__pycache__/robot_system.cpython-36.pyc b/CoLo-AT/robots/__pycache__/robot_system.cpython-36.pyc
index 1fd2769d85d4c09a6c7592f51c8ff5792061162a..f6533f73d45e44a77137725ae12f93b05af62170 100644
GIT binary patch
delta 16
XcmaE(@J4~%n3tEUnd#d`_EZ4?FD3;a

delta 16
XcmaE(@J4~%n3tF9$j`4E*;54oHnIj*

diff --git a/CoLo-AT/simulation_process/__pycache__/sim_manager.cpython-36.pyc b/CoLo-AT/simulation_process/__pycache__/sim_manager.cpython-36.pyc
index 1450bcf5f5e286f03e7a2161ce1cbf2616342420..898bd634c5771fc458900a539937375e91f436bf 100644
GIT binary patch
delta 1337
zcmZWpOK%)S5T2eHugClFdN+<qNQ4t9kr+of3FhI5U<gDG<b??+K`5v-yVKsZHLq0n
zI$jjX5^w;CTXTjpxgno8aE1d1uIYaO5+E)da-yo&aV&EA=IidSYO24gnV;i7;;E%p
ztKReez5UM*Qy1B_InVR%v-=+RG~4huf|PyEn3sAVc(H%|_a>gkp$&^97uGK-TZ5!X
z%iM-ah&1-;nXN+&W#4<yF!$KnWQYro)y%I9q6Wp+pl(+E<zut}2b9*f`(>W<epzTJ
zvrItOeCz+o+UDzE<z(FnK=g&&6u^~E^ibKB5=HuCY5or8whxf9v8Nnpn5CVmUFksE
z0QeTc$Oej-B9=;J!(1c<u5~)D>PczOD47qlM2i&b%kyC&`-zriaRO5-%I~p|g?_}M
zoiD<K9d+0AfvScs!M>{+R-0w#cIIj~L$+Y@`tl*$9th2$?3J2JywDaLq?nHRseXjT
z=3)KH0vQ@VJ5G2Ox%JZ=UL-P2UI>mCE&;u;=6YkUcA4Ur%tqtvb9i$n*i67q3{ZF1
zMw>|{Q(jhR@sEuoYcr%K-<(x&jM#AmJDCfml7ZNBPd?>L7oFi1lzmk40!`Tz7k5rH
zmx75?l)>C?f3`GD3CEULfANeB*RhJ2!F!MQf%^Zbem;{*qrcV41JjwgadOwiPbd*v
ze<}bt9y~B#&Rk;C=C_&C?H5QmnTkv&T*IQ7?!>jzxcBLznQtF8m#4bh@jRTt9Uu>#
zfAA8qmkC}Wc$Hw8;2eStGEu;5v^-BRNqbQOgL`)b2pi<GfY<3@#T_VYqaIZP-k`lp
z1aA|(OYkPbHoQf2m7qiL4gyZx2#4?PP-<|E`+u|H3Q4KkaFz5E<ezd{+d}Hz$;mue
zBhmW=H%NJ?5L=p8rBbq&39gUJT<`=S8DVc_!Lzb&n|m2#x@FB*-TBoI-CNw0*a%d`
zHO7qx`6J5RBe+R$i<D8>Q}`9`4#(p@HO*h$!|WRq9r$ItMOru1F|h@Lj|nsZ^?4uA
zFaZ5DC`!=^zpF6nMhBxtea)T39XnAB^J+BiNYnAfJkgo#!C{QBeyLzUB&-sB?G9XU
re4~^FPKX5e|B5(YmuL$g_t1B7S1&+>1Ofu8Vqayh(5Crr_WAz+-WXIR

delta 1302
zcmZXUOK%)S5Xa}WyR$E^ZEO(&*ioLI0LErRSdm~L4~K*(iem|+5vUpOw0B3$OmC`t
zom~;hf-ew>z97DV4+urRaE1eXhDPE8AmxxlE*ub5v(A&tPu0~`-PQl9nZJYIgKE3k
ztnK{r=!-w^S1;M8YnEl*weMQYimgp6ux|vm@$x9+fnz+$(`_hW#GVBe{iA)e<lw^6
z4{h)(Xar>_>#v>85n4b2A1%}BiY#MYkt+~s%3((T<~*?L`o6oiTgHH}1-#3X9S%&Y
zNDXD!lsu20E~{BIVi4s$ZmOyeT=qp8LyOL?KS}K=m?ls4Ah)MN7ubj}4qZu>WMkvT
zi8NluqujVsHRDO0lVbHZ-fQ-;{U1EASBnQZK=r{C;l)QqX)5k8G2jrXMC6_QbLG!G
zdr^O1>zoN&J+2stEumO~FB!oM9nqxv=AUl$Kn(L(!4My{p#QCXx=!i_hbOn5q-ZD3
z;1n5CBn@ZyTmdLeI3<&8n4&92WwXq9L|DU6Skm|Es|#UulCcwkDfKY%cIfX!X%b`2
zFs1*hzuIX~G|5;f2d|KI7-1?Imon;cJY&*`<awP|8!y`z_pdhEZs`cdhx*&rcWs)T
zLM5CPXL-eV+jwVS!-dCwplSH0c0Ns{!fFR=d;0A3trG`IU&l>jZ~rd=Zs5kA{%QJ(
zUDJ=I-)<eHz)H+h6)^?JbbBW7j-yX+R9AL`ML2;rka&e~5Ri46@CM;c!drx8gmF`z
z!wM}|Y3bwx<44fD)91jAn<Y8CLz`{d^d&Y`jj`ir$ajv=A$&l1m$3UD@qGd{8_pwe
z&c--$w}*+E^ykGU!-o_~U51Y+zC^;wA~tNIS=`A;HMmGYmk5^;;h~(56dMRBldY69
zmFRo3{-Lmfb+c4-!^V^BBp!wO=h?-t){7g8K?r@215C>JWWuk~xf_HlgijEmFSaCp
zhzI?D+??XGp2G=b0}x%D6(+lV9uHHl_3}%9>{cni82JUV775n~UlOR{&wvgC4?&7a
znn~aGU4Pb}_v^Kr#ZE9|O8GDwjA0YEO{1`vvq+`M7R-~&5fVNp!y81(?Za6;ntOev
g=pFr}jC1{CQ^sFNEHZG>Q5^eB5k*bD{&jBYKPh-i4*&oF

diff --git a/CoLo-AT/simulation_process/__pycache__/state_recorder.cpython-36.pyc b/CoLo-AT/simulation_process/__pycache__/state_recorder.cpython-36.pyc
index fecf62bb365b60850ecd554432651b7f9690698c..732abd46ebad50eb45b3176b5055226175851428 100644
GIT binary patch
delta 16
XcmeyX_E(MFn3tDJfaBXn_A+4rF7O2O

delta 16
XcmeyX_E(MFn3tDJ``_1%>}A3LHEae1

diff --git a/CoLo-AT/simulation_process/sim_manager.py b/CoLo-AT/simulation_process/sim_manager.py
index a575a10..08908cd 100644
--- a/CoLo-AT/simulation_process/sim_manager.py
+++ b/CoLo-AT/simulation_process/sim_manager.py
@@ -13,6 +13,7 @@ from random import randint
 class SimulationManager():
 	def __init__(self, name):
 		self.name = name
+		np.random.seed(12) 
 
 	def comm_controller(self, rbt_idx, num_robots, rsp):
 		receiver_idx = rbt_idx
-- 
GitLab