From 64581a3ebe0bdce7f6d49f8467853c6d65fc657c Mon Sep 17 00:00:00 2001 From: William Chen <billyskc@ucla.edu> Date: Tue, 4 Sep 2018 17:50:21 -0700 Subject: [PATCH] modified schedule functionality of CoLo-AT --- .../existing_dataset.cpython-36.pyc | Bin 12920 -> 12584 bytes CoLo-AT/dataset_manager/existing_dataset.py | 32 +++++++----------- .../__pycache__/robot_system.cpython-36.pyc | Bin 3636 -> 3628 bytes CoLo-AT/robots/robot_system.py | 6 ++-- .../__pycache__/sim_manager.cpython-36.pyc | Bin 3882 -> 3922 bytes .../__pycache__/state_recorder.cpython-36.pyc | Bin 4620 -> 4575 bytes CoLo-AT/simulation_process/sim_manager.py | 7 +++- CoLo-AT/simulation_process/state_recorder.py | 3 +- CoLo-AT/test_simulation.py | 12 ++----- 9 files changed, 27 insertions(+), 33 deletions(-) diff --git a/CoLo-AT/dataset_manager/__pycache__/existing_dataset.cpython-36.pyc b/CoLo-AT/dataset_manager/__pycache__/existing_dataset.cpython-36.pyc index 3c4964b7c5fa18e5c4e54efd6d80b0a0f47841d3..67e140af40210d6d0afaeb1ef2c0b4393be92044 100644 GIT binary patch delta 3277 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 Ra+7VcTMmM3T%5gc^gjqA_EP`= delta 3580 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 N*+Ve9Q~Y~!{J-C%HXr~1 diff --git a/CoLo-AT/dataset_manager/existing_dataset.py b/CoLo-AT/dataset_manager/existing_dataset.py index ec3fc68..966391e 100755 --- a/CoLo-AT/dataset_manager/existing_dataset.py +++ b/CoLo-AT/dataset_manager/existing_dataset.py @@ -351,10 +351,14 @@ class Dataset: v0 = self.dataset_data[req_type][robot_idx][prev_time_idx]['velocity'] v1 = self.dataset_data[req_type][robot_idx][post_time_idx]['velocity'] velocity = linear_interpolation([t0, v0], [t1, v1], req_time) + a_v0 = self.dataset_data[req_type][robot_idx][prev_time_idx]['angular velocity'] + a_v1 = self.dataset_data[req_type][robot_idx][post_time_idx]['angular velocity'] + a_v = linear_interpolation([t0, a_v0], [t1, a_v1], req_time) o0 = self.dataset_data[req_type][robot_idx][prev_time_idx]['orientation'] o1 = self.dataset_data[req_type][robot_idx][post_time_idx]['orientation'] orientation = linear_interpolation([t0, o0], [t1, o1], req_time) - message['data'] = {'time':req_time, 'velocity':velocity, 'orientation':orientation} + + message['data'] = {'time':req_time, 'velocity':velocity, 'angular velocity': a_v, 'orientation':orientation, 'delta_t': 0} else: #measurement: meas_info = {'time':time, 'subject_ID':subject_ID, 'measurment_range': measurment_range, 'bearing':bearing} pass @@ -375,8 +379,8 @@ class Dataset: lx = matched_gt_data['x_pos'] ly = matched_gt_data['y_pos'] + np.random.seed(6) measurment_range = sqrt((lx-gt_x)*(lx-gt_x)+(ly-gt_y)*(ly-gt_y)) + float(np.random.normal(0, sqrt(var_dis), 1)) - # bearing not matching with closest dataline.... bearing = (atan2((ly-gt_y), (lx-gt_x))-gt_orientation)%pi + float(np.random.normal(0, sqrt(var_phi), 1)) if abs(bearing-pi) < abs(bearing): bearing = bearing-pi @@ -394,13 +398,8 @@ class Dataset: message['data'] = self.dataset_data[req_type][robot_idx][time_idx] message['groundtruth'] = self.dataset_matched_gt_data[req_type][robot_idx][time_idx] return message - - def create_additional_dataline(self, req, time_idx, meas_input_var): - message = self.create_synthetic_dataline(req, time_idx, meas_input_var) - return message - - def get_dataline_at_specific_time(self, req, time_diff_limit = 0.1): + def get_dataline_at_specific_time(self, req, time_diff_limit = 0.2): message = req.get_message() req_type = req.get_type() meas_input_var = [0.01, 0.01] @@ -414,16 +413,9 @@ class Dataset: gt_orientation = self.groundtruth_data[robot_idx][g_idx]['orientation'] message['groundtruth'] = {'time':req_time, 'x_pos':gt_x, 'y_pos':gt_y, 'orientation':gt_orientation} if req_type == 'odometry': - message['data'] = {'time':req_time, 'velocity':0 , 'orientation':gt_orientation + float(np.random.normal(0, sqrt(odo_input_var[1]), 1) )} - else: - subject_ID = 6 - [lx, ly] = self.landmark_map[subject_ID] - measurment_range = sqrt((lx-gt_x)*(lx-gt_x)+(ly-gt_y)*(ly-gt_y)) + float(np.random.normal(0, sqrt(meas_input_var[0]), 1)) - bearing = (atan2((ly-gt_y), (lx-gt_x))-gt_orientation)%pi + float(np.random.normal(0, sqrt(meas_input_var[1]), 1)) - if abs(bearing-pi) < abs(bearing): - bearing = bearing-pi - - message['data'] = {'time':req_time, 'subject_ID':subject_ID, 'measurment_range': measurment_range, 'bearing':bearing} + message['data'] = {'time':req_time, 'velocity':0 , 'angular velocity': 0, 'orientation':gt_orientation, 'delta_t': 0} + else: + message['data'] = {'time':req_time, 'subject_ID':None, 'measurment_range': 0, 'bearing':0} valid_dataline = True time_idx = 0 return valid_dataline, message, req_type, robot_idx, time_idx @@ -436,9 +428,9 @@ class Dataset: message['data'] = self.dataset_data[req_type][robot_idx][time_idx] message['groundtruth'] = self.dataset_matched_gt_data[req_type][robot_idx][time_idx] + if abs(respond_time-req_time) > time_diff_limit and self.adding_actifical_dataline: - message = self.create_additional_dataline(req, time_idx, meas_input_var) - + message = self.create_synthetic_dataline(req, time_idx, meas_input_var) if req_time > self.end_time: valid_dataline = False else: diff --git a/CoLo-AT/robots/__pycache__/robot_system.cpython-36.pyc b/CoLo-AT/robots/__pycache__/robot_system.cpython-36.pyc index 764c3acefb5a5748df2049ab1d5b37a629ec6b64..f804a9e8365eebc5c47729bdfb6824eaa49232ac 100644 GIT binary patch delta 926 zcmZWnzi-n(81*@c9Xoc@rfKuLrGQjbY8y}`DwtYTVgMut3J5WnOU?v0u`jxF3sepr ziWmXuKn!Jo1qp<NK>Q7Cz=p($xnkiT=)|29+5*e-cklb&^YiEXSbbYH7Hr$xnS6A8 z@1>CdoSBL8JU5U>9fBJ;e65gzq9}VO>$kA))^B^AjtBkv3ci42m|I?D+limEJWE4J zLPuceI*<^O7cw#?K^pX-D62Aimb_Ax<cvy2BxCIl#G^%Kq}GRP|B??=_cMpASWUYD z-mrVxgUq=oh3vNa7?4$#)lZKq?F9Z7B~iAdpj<mC_#C^akITYhExk6f6b(hnTDq+X z<}4cP>FlX~tYV?@o{sW84Jkb<*c7IP*z^-Bu&;UzJYm1|^Harb0F+27e?(Sfw$xrh zoK$i~IGW;_XV=nK!A<r)y)s>j5_zShL`4)=s9cbzN>q+?RC%82Rio-9Wv0q1#&NOw zCF6s!IqC%)u;U@NYrNAY<qm3W$E;_$)nDy;7l{pX_T8*+9TjbE`7Wif<vN0gJWXiV z3Ga4YZpAiEf1WJJQLw=c>a~36V1)Sybpwit)5IH)cra+XWI8q+@Ltee4|!%FXi%4M z4L8;t4{_6XA$3Xw1}&G&#-a`kkPk`Q>EI@3FEYg~KGej%?~umeR`3iao*RVF!vW=m zznjjV4C00TSn=nWE*+>T&&v9+MQ*=&pteH-o30~5vqdX6bLhUvl%pb?SnehaMTWs@ zmPLc!VZ@p{Q3gq10TbkarfRAcpOPT2CPk&Grogo5r@^>7ET)PH_SvHIC7~x}2~`Ob m5~d_vmT(YYaJ2(_5u9SL>}m1Czt{zVyY|HJe`EQfBfkMY1_;am delta 987 zcmZWo&ubGw6yDh+n`E;|nkH?2S}hgYf-#^6tB9b*lNP~>!icPsok_Y)b|=hkVl5j4 zD?O`o@gRbDQ4kdAzu-kguaZO0J$UgdBF-eSmU{W-&3oVX-kX^>Z!0^M_~~R)FXy*! zzkV4H0m$`G$%JuidnTiG>c3Igl%gm<>$NrNklH=F-L{caTeY2T8~HYMtC!uL&8X`T z*RM7xt1eU8Axy-2q<WQFsBLc!iM2-8wWPx1*F$?JVA}H$^G$(1F%e@dE9$VE1X*ze z)6y#NM)+n$Iu})zksf28Fr-fNZ{hAl>9F%o<Wb^4D*iok7d+!D+IC_oh~Q*PeGJ$o zzN?*GnQVoH9md&yG*H&H^=OdV0{u*o!AdK{eg~N#9ZUpa42nvSYDW474)--TjB^6d z<0+v^30<tEi7ZQ;Md$J{8N*87a5qJ*>0zxMJk8%nkAR2#OZ3WYehUC4kcv-%5$H{| zpBFooEr?9ISXF*5b_?9#Ph-pTg&>quMC}3|TDX{(yK+zpqPX-t(ys)SRb{cvf5ncA zC!CFc;Ct~`T18$+i9gY6X=se@x!b|wx*`9n*B%@dVQ4tS^H7tR!jE8#c^%Wg-yzWG ziHF1Hh|g+*IsiQw_w1&FOo}PYc*ON6GcDRf%to$7*xWGT*l)X?t`8GqLER&4pware zX=A861bOB)hTJA$3o^CQMlN;`Yng3o!333b({?f080aD&mOH!wQx<g`lhwylBZ$lv zV~6BWLH;>WXo-TOwuZ;ii8rQtFfHwa{K@^G`S%1c=`&;zbJVmqNDRNgXhaVU<si#{ z7+LM2=-%t`HKSTcfiN&Y3`_z|)l_L4!jn_^J7Wr{{G;KW%nLRvNGM7uOPG;xLBhXL o9S?OQc?O)~FOu^`m>G3qiPJLqqX=dpp@DoiIWzH}&`2Ho1J>gj=l}o! diff --git a/CoLo-AT/robots/robot_system.py b/CoLo-AT/robots/robot_system.py index ae0849f..d1c9daf 100644 --- a/CoLo-AT/robots/robot_system.py +++ b/CoLo-AT/robots/robot_system.py @@ -96,7 +96,7 @@ class RobotSystem: obj_id = message_data['subject_ID'] meas_range = message_data['measurment_range'] bearing = message_data['bearing'] - if message_data['subject_ID'] > 5: #landmark observation + if message_data['subject_ID'] != None and message_data['subject_ID'] > 5: #landmark observation update_type = 'landmark observation' landmark_loc = self.landmark_map.get(obj_id) if landmark_loc != None: @@ -105,12 +105,13 @@ class RobotSystem: else: valid_update = False else: - update_type = 'relative observation' if obj_id in self.robot_labels: + update_type = 'relative observation' obser_index = self.robot_labels.index(obj_id) valid_update = True sensor_input = [obser_index, meas_range, bearing, message_data['time'], obj_id] else: + update_type = 'invalid observation' valid_update = False sensor_input = None @@ -125,6 +126,7 @@ class RobotSystem: sensor_input = [sender_idx, comm_rbt_state, comm_rbt_state_variance] sensor_covariance = np.matrix([[0.01, 0], [0, 0.01]]) else: + print('undefined message type!') if valid_update: 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 6cfd0e6ece49a18042367124c5337d035c92bd4c..1f52de8ccdebd6de988d3d8bcff8fa717cd86d3d 100644 GIT binary patch delta 740 zcmZvazi-n(6vyw}#BrS1B#raCjZy-lX$b+!FR2v;l?sX&kbnU(7>9F&-6RfYOSIxb zki0NZQFI_7BnH+>2q7jISXh}D{Rc2G@CPs;?nQ`+;XZoj_rC9!Z?E>PrY>okY8`xf z>#*@&y@{(U?YmyzZr^u$J;&;|*Sss<1g-PeKfJ@a7>@Xt_-j1RE%}(Rxx66wS*~i4 z>e~ZiQ_~?^5&tfK)GG)fS)3_x{0sbT;z{-;LvHLbVoDKhqFssB`DJATKjhDqi(|u` z4$&yj3^x}dB5g{$n0AT6;v`;1OfRD<8WmW9<%w2CL|;K7(qQ=zW5lLhp$qY-$YO4R z8LSve7!583x?5x!riap~#7ckj>qJx+ic$fM%B&3eAlFqF%zeTv{U>dTiK5U1LuL$y zU`a6mroRJ3GH{220b(g=C#bkplI4Ts;+#ZJiI!$W#4MTK0Usi{Ny|cW4K)q^DY+^( z_$&DexA+UyubdUzig34yX-il%0Z;(v`2N&586}9_3oJ9>Z&J5$jZ0}#IRNfCz#%{l zPzN;lgLHX34`y7TS)uShXco`}EC3b-qIj3u_k0SmktR$t*dE$u&+!9#1cKUtqu?zK z?5)5YdcN;;dbSxjecQAswYH-~-x-)a?@pBdmq0uQp3~~9$3eaXa)tWCiHM$nZ)X5& zfRljJ0+Hf%{K-R_Ob?sjeXW7J{F%0_Dp<!EoW`oeziP8s;y<*GybRhK{HI>zj^4oQ Nd`F+b8+=cH^atY`yN&<= delta 747 zcmXw$-)qxQ6vyvv(kxAz>_@wH-L(GL?Cf0D%}tT{1KAKK>}^lRLG7B9CFVzWlTJHs ztxyC(2jYDY1i@!tL}U-X`X9K*Jo_*B;)8fkK*IUtoAWE@+<RL2Tv1k4RoVFY@==uk zsyxKoUVT6Ctol>ib?v5C-?6=}+l=hM*YEj<HVJ&s@*}++5PdTUIu_xvLrdQdT20qJ zN)qesuHS-+@Y{2o7qP+Kr9a|%wk)l1y(cYj9!oQ-p@f!iTBKo{&kS}Veb>qeA&Hy7 zEtDA@c{9FCkt4oBR4$<>=q)C{SXq96H&{!)KM<S=S{UN~Bo&=JEzrqf3L}3j(wqVv zquMalFVdnjIYj*u)lA-j3Qn<z`crg@mQ3{)q6MeKmBv-k;l3fpkn_K5ma1h$`BW4& zM3{qSk{NzP$Q-4p;E3?U2+=GQMrCK(9AmxAl?#~s;UmrPk~8M`F~pELku>K`c2F(P z-V4j@cV?8IL|XZP7uhEzoW8-gj&Zw&$s$)|1Rw*}nVuc6lk8)BmKAg6paRbGfQx`x zz#QNbpvn;oVK0ougRUKsd2psVYGne4OU4100X4t^N1SdG>mW>W4VBAA)azIc*A641 zL(&qU&S6aX>~F557$ctTH{76Quyd-uz6|jdh|47GG$Pxx$W`#I0@eW6l4!6OCO4j} z2dlEz>MY)6U(}mb1#3bM%UI*4U?rtU8qV>Df2HOG32P}?JgTzW*($rMtx4CR>lQoG h)+=|ojB|e1>-3hqX5`v?vB=;1aViMO20PVW`~wF#xLg1L 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 8bd85f9ab45ec39fe2de3ed7f2669cf30395c845..2afa61a8e0fddd99c65d8befd44562410b9cfcd7 100644 GIT binary patch delta 127 zcmeBCxv$J=%*)GlPPIRJ)ke<UOw#uH8Tq-X`sJB9Ihl#M`p)@2`CvlVF=Vp<^9dHt zbOtbZV88h;yDcLl^JHnxcE-@ji#aDSMoc#0>Sm0de1K~QW8CCQ?kdKl$zQk|8B-^h a@w75#Z2rR&&CHlRIYQtAqv~W&!NULpD=6~- delta 172 zcmcbw+@r#2%*)GV^{p>@`9{v&Og;tr8Tq-X`sJB9Ihl#M`oWpGr8$WunfZCTu6bpd zMfrKTsd**3Y57IE&iVNTsYO7!vQ%B4{N%)(%qp-#{j}1&WRQ;H&G(s3u&@@1GB7Y~ z-oS3l$jCJL9Y;H3$mBB435?;B*}1wIqb5)0+QAq**@wG|F>&&7?ncIx$(}r|jOm-t U^F%W<W=+->_`s+#Sw`?M05L;6y8r+H diff --git a/CoLo-AT/simulation_process/sim_manager.py b/CoLo-AT/simulation_process/sim_manager.py index 4db0376..d6bd79d 100644 --- a/CoLo-AT/simulation_process/sim_manager.py +++ b/CoLo-AT/simulation_process/sim_manager.py @@ -113,6 +113,12 @@ class SimulationManager(): if valid == False: print('invalid responese') break + message = rsp.get_message() + if rsp.get_type() == "odometry": + delta_t = 1/freqs[0][robot_idx] + message['data']['delta_t'] = delta_t + rsp.set_message(message) + robot_state = robot_system.localization_update(rsp) state_recorder.record_state(rsp, robot_state) @@ -137,7 +143,6 @@ class SimulationManager(): sys.quit('Time inconsistant!') next_possible_time_array[req_type_idx][robot_idx] += 1/freqs[req_type_idx][robot_idx] - if simple_plot: state_recorder.simple_plot(plot_title=self.name) diff --git a/CoLo-AT/simulation_process/state_recorder.py b/CoLo-AT/simulation_process/state_recorder.py index 559fb1d..b9ae1f5 100644 --- a/CoLo-AT/simulation_process/state_recorder.py +++ b/CoLo-AT/simulation_process/state_recorder.py @@ -67,7 +67,8 @@ class StatesRecorder(): print(updata_type) print('neg trace: ', recorded_dataline) - if(loc_err >= 1): + + if(loc_err >= 0.5): print(updata_type) print('>1 m loc err: ',recorded_dataline) print(req.get_message()) diff --git a/CoLo-AT/test_simulation.py b/CoLo-AT/test_simulation.py index 8080a85..a990e7d 100644 --- a/CoLo-AT/test_simulation.py +++ b/CoLo-AT/test_simulation.py @@ -26,17 +26,11 @@ from ekf_ls_ci import EKF_LS_CI from ekf_gs_bound import EKF_GS_BOUND from ekf_gs_ci import EKF_GS_CI -#need to verify these algo -from ekf_gs_sci2 import EKF_GS_SCI2 -from ekf_ls_ci2 import EKF_LS_CI2 -from ekf_gs_ci2 import EKF_GS_CI2 -from centralized_ekf2 import Centralized_EKF2 - dataset_path = '/home/william/UTIAS-dataset/MRCLAM_Dataset3/' dataset_labels = [1,2,3] -duration = 100 # duration for the simulation in sec +duration = 150 # 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) @@ -48,8 +42,8 @@ robot = RobotSystem('robot', dataset_labels, loc_algo, distr_sys = False) sim = SimulationManager('sim Centralized_EKF') state_recorder = StatesRecorder('recorder',dataset_labels) -#sim.sim_process_schedule(dataset_labels, testing_dataset, robot, state_recorder, freqs0, simple_plot = True) -sim.sim_process_naive(dataset_labels, testing_dataset, robot, state_recorder, simple_plot = True) +sim.sim_process_schedule(dataset_labels, testing_dataset, robot, state_recorder, freqs0, simple_plot = True) +#sim.sim_process_naive(dataset_labels, testing_dataset, robot, state_recorder, simple_plot = True) analyzer = Analyzer('analyzer', dataset_labels) loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder, plot_graphs = False) -- GitLab