From 8bcd4901303ce5e2789707b192496c1a76dd6cde Mon Sep 17 00:00:00 2001 From: William Chen <billyskc@ucla.edu> Date: Tue, 14 May 2019 18:52:54 -0700 Subject: [PATCH] added isrr2017 sim --- .../__pycache__/data_analyzer.cpython-36.pyc | Bin 5570 -> 5882 bytes CoLo-AT/data_analysis/data_analyzer.py | 27 +++-- CoLo-AT/gs_sci_vs_ls_ci.py | 70 +++++++++++++ CoLo-AT/isrr2017_v2_2019.py | 93 ++++++++++++++++++ .../__pycache__/ekf_ls_bda.cpython-36.pyc | Bin 4743 -> 4770 bytes .../__pycache__/ekf_ls_ci.cpython-36.pyc | Bin 3801 -> 3807 bytes .../__pycache__/gs_ci_bound.cpython-36.pyc | Bin 3400 -> 3409 bytes CoLo-AT/localization_algos/ekf_ls_ci.py | 6 +- CoLo-AT/localization_algos/gs_ci_bound.py | 2 +- 9 files changed, 185 insertions(+), 13 deletions(-) create mode 100644 CoLo-AT/gs_sci_vs_ls_ci.py create mode 100644 CoLo-AT/isrr2017_v2_2019.py 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 71e848bdc21f0e4085fd1f8b06af55246286a44c..98deeb48ab51fd14206fa66498458fe60f18dfe4 100644 GIT binary patch delta 1800 zcmZWp%a0UA7_aKr^lNsWJ+tfr@`h%4gDyTmU{;6{*JXE=3uGO(nss`1W_D|O36Pp> z;&L;Kkh=IM7!N+e)r%fHC>lLF8sfnV#+Z0A@t}TRO``<6^Zn}gJ*uj^>R0vo*q{5| zquH$ceCvlxvs*uLH|eWBA;bc!fprg1LWFTi>sh@_LSni`dN#Bgqid8BVaGbt)@aXB zOb6yFW&rbq6B|MoRG7?M*P+@~zV@&0#U|u4%u4ghUlkUFGR$5#C`qg&6Wb!QMpbLA z(P5${c4CJ)DRY^dGLLyF^O?`8EVr(yX&shVaW{5ZA!QybrVML`(^@aCIjp1-9uyA- z_F|8f(-;<SNQ><_%K}zehn0Xe8CoNhFfv2J5&4X9NPcVwJ8za3>uuJm^X8V$m2SkZ z)ssf29cq2+N+(G=Ena{{mXY!8<`R%l<2p3_e>^8=%tJYIi8tCwUu!RM6T7`_)~GMP zFwg8OF1F@cQN6puqgK>T=GrT*ew9ayFx#~#%{)rTj8)rs1o{)rrZ#m4ua>8Iu%b4s z$v3UZp$g<ZFeQTD<fqp8=>^iu-=Wt}GTJME6~RhiWw7A-hr$((L3Glj9RXack|t>z z8Z5~j%8NIAkrDO=@Gg?}h(Qvg>GBWch0LB+eqWTCIZk?I*mx*mR#W3Yi9p2yQ5bY& znGFPL3Zj_$PzioflvG_w*s8UcuU;g=gDE#o5y;V|4tzrRptOQ0jSj?<0}pyC?>uRj zF`Wt;QYp(q(O}bufCXy%^T5=<3Aaj^lMbgMJ$HFZ9=6Ah=0K~C0E8^64?o~%L1I_< zA}8`9D~1;E2xQky$f}rp$KGM8t(PC!75SyTVC{jm=b;>TTBCduay*rNy$c(wFGg*C z2;8tDKXYE7q5R8P9_4$nY7DEg39rvbb4wAQ<11~xTi$hNkMzq=Xk@;#0%96@LL~$J zsGR)8t?fPs19q<h5FONliqQ<}Q-d1NrY|r#<qexY$jO%tZ#3uX73%9gt<Z{Q(cyb{ zy$4$UH5i0XAzVP1ma9V>S5@%Xqs&7ke@s6_h4X1-co*>*1PvfG_>%)+(ckcd8U8eu zjUyZf=sOXdgoxLZh-WeQEW&dDVSx`J4^JSTL^y?T8sQ8A3SUjgCy>1)Yq|I6-FrXg zzM}M)e82FrRmS+d{G;&t89Xha$Ez3_Mi@aDMR*Ef3&K`}Z2)~QY0Nk0mg>CT>hkRv z-XU)nw+H)>?ngL)uoGdI{7x&$?~7IXjr_eBt=@uQLIxUz6RCq4*WVCyf?S^LnV>Vg zZZ)Q_YnODqw0pMD7-?$VQ^Jfjp*1snTIjJZY&dQZS%6C$bZDqZ=D)~t<s!}l7dd2! zy0{I{v;4Z`9ycd%9^Cubb9!;1!yCz4tu3`q3x2E7?X(|DBRv~Z{-S(P+7>7^zly(x zl2*IHn=&Zx4I1dj2x?c(B0DE%%ZL46fp&3`3AN?B<zvoaptCUKq`Y4q5AZN>HRK$! rCPGKv4yy8C5R8nuuec}d%^a_@(CM2XiKQESGkEfHu!~mZt>EN8Si+9O delta 1526 zcmZWpO>7%Q6rP#=U$5=8*LFzLgpjr&CP4`#P$>O@q(U@pL#38RRH0GmY(mzt<BXju zg|TvoIDllSVuaLlg}6hn98eDxf&)be2^oR77L^0y21xMU*ew!x^}hMud*8m@ee*nj zJb8QEpH8R!U(Wrobbsg*f6&<V2_Y8P99ZKofF?=k9%<RIGEVm>CDKj|&h}`_(aZqm zYGwlSq?4G^kW^aSY8#+-wa*^<USdJseCRug&23%RNt|8o^r*|-9`m@z3p{8uUCicb z9d{FlXL`)#*&ah}v8VN*aH!)RXuEa2#O1kO47H`6)=qq$=TSQc-v?is+9Q;3a-Nj? z)LZ71`qun<C=bmjGhx6Y{>KCLxi$5HJxhHxXV0on?b*@<2nltm-@RB!;WAX{EMy9h zNrCAm-&GsV>G|t)XN=QU2$loOgGD<ZOJ8~>F-V1OHi5G~QXw^y!OLBzf?W%wBi(-R z7D;WNNt$NG7dMsXj_o$SkT#~cRbk?;jJSQ6v?3XHZ{SWp0Y8+vo)1d!b26`WdFkra z-MYL;WC|V?oFkB<6$AK;3}6RCnI9m!ks0vd&aPK0V3rSb2L)2Skx7Fn((<hO(H*2` z)SvG7B<x?)lYnqD?k<+UBT3@RKxSlCreR3ZZ3{BmSFd{q2i`7-cw?oxel;H6e6taY ztH3vFdRx>DZ_PdgeHEk1@~eX#t1i}SO%Xt-V>Gs_9b+S|iE(ht1=aSC(oyxLzctdy zR^ye%wuq~7t+`wSUAie&uEfjrSS*X}nmDK~rY<mXNPWX1bw4%DXQ4!634j<bbs3sT z18PzeR((BKAu>!E<T4O<X}}%<EslcA0%lXje8_|b3<<Cj4U7P=1ewCEcJLDm=iwRR zG{PB#v+AAf{!2PI`5<#ok0hq=;XhZLMP?&gKwto6Q~b9OivEUQ*%4DHdm3R{{gy2p znL+vtKshHe$e%|zf^Zb!7{YOc6A1VK@gl-Y>O^>hzI*HY@GD9u)kpbLc7*ZE>i7I> zvqhlglqg}O51}7nAHsfwL4+ZMM*%vi=K7V&a(zXtR2yO#!;h)=qXWgqk&Yph5k?RW z=$-j4>Z7;SuTi`!A-G0b2AH{XQPPv-jfIv4lSN>nC}(Z9WVGy-0|yu5q{14{Nh_g} zRU9!djf6=!&@i$FhZ{_vsUyz6k*&-kX&StnCHjCfyAv$URd(KkhA+Hars4$^6-SD% z;49(~>ZXckk*%uv;uA%VG)B-Z#<3D7)qBOK{GWj~@SGs(PI1PY0CE8eo>E5Xa1ke1 t=&F~Hts*4q)zU=&s6Xc)bB6?;E@iJ{!7$gaby%&gJ}iyWlKQN4{2v}`J1zhK diff --git a/CoLo-AT/data_analysis/data_analyzer.py b/CoLo-AT/data_analysis/data_analyzer.py index b5be8b8..f608879 100644 --- a/CoLo-AT/data_analysis/data_analyzer.py +++ b/CoLo-AT/data_analysis/data_analyzer.py @@ -26,6 +26,8 @@ class Analyzer(): self.dataset_labels = dataset_labels def plot_loc_err_and_trace(self, loc_err, trace, time_arr, measurement_count, recorder_name = None): + + [lm_measurement_num, relative_measurment_num] = measurement_count fig = plt.figure() plt.suptitle('Correctness analysis') fig1 = fig.add_subplot(311) @@ -34,8 +36,9 @@ class Analyzer(): fig1.plot(time_arr, loc_err, label = recorder_name) fig2.plot(time_arr, trace, label = recorder_name) - fig3.bar(time_arr, measurement_count, label = recorder_name) - + #fig3.bar(time_arr, lm_measurement_num, label = "landmark observation") + fig3.bar(time_arr, relative_measurment_num, label = "relative observation") + fig3.bar(time_arr, lm_measurement_num, bottom = relative_measurment_num, label = "landmark observation") fig1.set_title('Estimation deviation error') fig1.set_xlabel('Time[s]') @@ -78,7 +81,8 @@ class Analyzer(): finish_flag = False loc_err_per_run = [] - measurement_num = [] + lm_measurement_num = [] + relative_measurment_num = [] trace_per_run = [] time_arr = [] @@ -86,7 +90,8 @@ class Analyzer(): loc_err_per_time_iterval = 0 trace_per_time_iterval = 0 num_dataline_per_time_iterval = 0 - measurement_count = 0 + lm_measurement_count = 0 + relative_measurement_count = 0 while interval_start_time <= time < interval_start_time+unit_time_interval: try: @@ -96,8 +101,10 @@ class Analyzer(): break time = data_in_time_order[time_index][0] - if update_in_time_order[time_index] == 'landmark observation' or update_in_time_order[time_index] == 'relative observation': - measurement_count +=1 + if update_in_time_order[time_index] == 'landmark observation': + lm_measurement_count +=1 + if update_in_time_order[time_index] == 'relative observation': + relative_measurement_count +=1 loc_err_per_time_iterval+= data_in_time_order[time_index][7] trace_per_time_iterval += data_in_time_order[time_index][4] @@ -116,7 +123,10 @@ class Analyzer(): loc_err_per_run.append(0) trace_per_run.append(0) - measurement_num.append(measurement_count) + lm_measurement_num.append(lm_measurement_count) + relative_measurment_num.append(relative_measurement_count) + + time_arr.append((interval_start_time+unit_time_interval+interval_start_time)/2) interval_start_time = interval_start_time+unit_time_interval @@ -126,7 +136,7 @@ class Analyzer(): print('Avg trace of state variances per run: ', sum(trace_per_run)/len(trace_per_run)) if plot_graphs: - self.plot_loc_err_and_trace(loc_err_per_run, trace_per_run, time_arr, measurement_count = measurement_num, recorder_name = recorder_name) + self.plot_loc_err_and_trace(loc_err_per_run, trace_per_run, time_arr, measurement_count = [lm_measurement_num, relative_measurment_num], recorder_name = recorder_name) return loc_err_per_run, trace_per_run, time_arr @@ -222,6 +232,7 @@ class Analyzer(): def algos_comparison(self, arr_data_recorder, only_trace=None): + print("************Algorithm Comparison***************") arr_loc_err = [] arr_trace = [] for data_recorder in arr_data_recorder: diff --git a/CoLo-AT/gs_sci_vs_ls_ci.py b/CoLo-AT/gs_sci_vs_ls_ci.py new file mode 100644 index 0000000..e3bba30 --- /dev/null +++ b/CoLo-AT/gs_sci_vs_ls_ci.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Sun Apr 8 17:55:06 2018 + +@author: william +""" + +import os, sys +import getpass +sys.path.append(os.path.join(os.path.dirname(__file__), ".")) +from dataset_manager.realworld_dataset_manager import RW_Dataset_Manager +from simulation_process.sim_manager import SimulationManager +from robots.robot_system import RobotSystem +from simulation_process.state_recorder import StatesRecorder +from data_analysis.data_analyzer import Analyzer +from data_analysis.realtime_plot import animate_plot + +# load algorithms +sys.path.append(os.path.join(os.path.dirname(__file__), "localization_algos")) +from centralized_ekf import Centralized_EKF # works +from ekf_ls_bda import EKF_LS_BDA +from ekf_ls_ci import EKF_LS_CI +from ekf_gs_ci2 import EKF_GS_CI2 +from ekf_gs_sci2 import EKF_GS_SCI2 + + +# dataset_path = "/Users/shengkangchen/Documents/CoLo/CoLo-D/CoLo-Datasets/official_dataset3/" +dataset_path = "/home/william/CoLo/CoLo-D/CoLo-Datasets/official_dataset1/" # for desktop Ubuntu + +robot_labels = [1,2,3] +duration = 180 # duration for the simulation in sec +testing_dataset = RW_Dataset_Manager('testing') +start_time, starting_states, dataset_data, time_arr = testing_dataset.load_datasets(dataset_path, robot_labels, duration) +analyzer = Analyzer('analyzer', robot_labels) + +loc_algo = EKF_GS_CI2('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) +sim = SimulationManager('sim gs_ci') +state_recorder = StatesRecorder('GS_CI', robot_labels) + +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder, plot_graphs = True) + +#animate_plot(robot_labels, state_recorder, analyzer, testing_dataset.get_landmark_map()) + +############################################################################## + + +testing_dataset.dataset_reset() +loc_algo = EKF_LS_CI('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) + +sim = SimulationManager('sim ls_ci') +state_recorder_LS_CI = StatesRecorder('LS_CI', robot_labels) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_CI, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_CI, plot_graphs = True) + +############################################################################## +''' +testing_dataset.dataset_reset() +loc_algo = EKF_GS_SCI2('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) + +sim = SimulationManager('sim gs_sci') +state_recorder_GS_SCI = StatesRecorder('GS_SCI', robot_labels) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_GS_SCI, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_GS_SCI, plot_graphs = True) +''' +analyzer.algos_comparison([state_recorder, state_recorder_LS_CI]) diff --git a/CoLo-AT/isrr2017_v2_2019.py b/CoLo-AT/isrr2017_v2_2019.py new file mode 100644 index 0000000..344afec --- /dev/null +++ b/CoLo-AT/isrr2017_v2_2019.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Sun Apr 8 17:55:06 2018 + +@author: william +""" + +import os, sys +import getpass +sys.path.append(os.path.join(os.path.dirname(__file__), ".")) +from dataset_manager.realworld_dataset_manager import RW_Dataset_Manager +from simulation_process.sim_manager import SimulationManager +from robots.robot_system import RobotSystem +from simulation_process.state_recorder import StatesRecorder +from data_analysis.data_analyzer import Analyzer +from data_analysis.realtime_plot import animate_plot + +# load algorithms +sys.path.append(os.path.join(os.path.dirname(__file__), "localization_algos")) +from centralized_ekf import Centralized_EKF # works +from ekf_ls_bda import EKF_LS_BDA +from ekf_ls_ci import EKF_LS_CI +from ekf_gs_ci2 import EKF_GS_CI2 +from ekf_gs_sci2 import EKF_GS_SCI2 + + +# dataset_path = "/Users/shengkangchen/Documents/CoLo/CoLo-D/CoLo-Datasets/official_dataset3/" +dataset_path = "/home/william/CoLo/CoLo-D/CoLo-Datasets/official_dataset3/" # for desktop Ubuntu + +robot_labels = [1,2,3] +duration = 180 # duration for the simulation in sec +testing_dataset = RW_Dataset_Manager('testing') +start_time, starting_states, dataset_data, time_arr = testing_dataset.load_datasets(dataset_path, robot_labels, duration) +analyzer = Analyzer('analyzer', robot_labels) + +loc_algo = EKF_GS_CI2('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) +sim = SimulationManager('sim gs_ci') +state_recorder = StatesRecorder('GS_CI', robot_labels) + +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder, plot_graphs = True) + +#animate_plot(robot_labels, state_recorder, analyzer, testing_dataset.get_landmark_map()) + +############################################################################## + +testing_dataset.dataset_reset() +loc_algo = Centralized_EKF('algo') +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, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_cen, plot_graphs = True) + + +############################################################################## + +testing_dataset.dataset_reset() +loc_algo = EKF_LS_BDA('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) + +sim = SimulationManager('sim ls_bda') +state_recorder_LS_BDA = StatesRecorder('LS_BDA', robot_labels) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_BDA, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_BDA, plot_graphs = True) + + +############################################################################## + +testing_dataset.dataset_reset() +loc_algo = EKF_LS_CI('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = False) + +sim = SimulationManager('sim ls_ci') +state_recorder_LS_CI = StatesRecorder('LS_CI', robot_labels) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_LS_CI, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_LS_CI, plot_graphs = True) + +############################################################################## + +testing_dataset.dataset_reset() +loc_algo = EKF_GS_SCI2('algo') +robot = RobotSystem('robot', robot_labels, loc_algo, distr_sys = True) + +sim = SimulationManager('sim gs_sci') +state_recorder_GS_SCI = StatesRecorder('GS_SCI', robot_labels) +sim.sim_process_native(robot_labels, testing_dataset, robot, state_recorder_GS_SCI, simple_plot = False) +loc_err_per_run, trace_per_run, t_arr = analyzer.calculate_loc_err_and_trace_state_variance_per_run(state_recorder_GS_SCI, plot_graphs = True) + +analyzer.algos_comparison([state_recorder, state_recorder_LS_cen, state_recorder_LS_BDA, state_recorder_LS_CI, state_recorder_GS_SCI]) diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_ls_bda.cpython-36.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_ls_bda.cpython-36.pyc index dfff1580319cd69bccc411af302e0a2a4aeb2dd0..6843e8adf7a54bbc8527d351585099c800e71b27 100644 GIT binary patch delta 51 zcmZoyU8Krk%*)GFcgr<;BZnTNjJ1A7er~FMd1g*dW@4_sbG}bLn9y|$(cf&&7$67$ DkLeF} delta 24 fcmZ3a+OEoB%*)Glq%=BaBZnR%qr&DO#sEP8QnCg! diff --git a/CoLo-AT/localization_algos/__pycache__/ekf_ls_ci.cpython-36.pyc b/CoLo-AT/localization_algos/__pycache__/ekf_ls_ci.cpython-36.pyc index 7bbf05027bcebec06b2ffaf2f49d45c423207ea6..8f679589595ce4259c225d0622f73a6b0385245e 100644 GIT binary patch delta 168 zcmca9dta8*n3tF9K-TS;T^l)d8D*^WGxBp&^~*DJaxxQh^_}y5^1+0zV~GA{b4EF4 zMvlqb*>om1v8?8);S^ygVX5J5X3S!p?8)lR$ToQ*tK{VMtQVM>f*3b9vH3DH-kN-Y zvw@L$b0F7gCfQr88HpwFS-04WGt+Yu<1=B5tXqt!w<cTinlr{uF65of=ET6jP~<mR Nh|hpgXR<TjGys%aH3t9y delta 164 zcmcaFdsCLvn3tF9NNIG8`$kS(Mn?I~L5y<Dj1rRzS*|OTu-5RWFr_o40AV^1HZzJa zl(5wBHZx|ii7<#WOjcl(m|VcB&B#7^4yz<n5!2*Nte2S?lbAMlu=z4GMoqrP*}%xU zIh^Y>lWY`gMq){PRup@2W_oU7d?t*Mb&D}IYO+1AIb;0fa^Bf&jtmS8MV^x-_zW2J JCVTQt0|3X?EM))y diff --git a/CoLo-AT/localization_algos/__pycache__/gs_ci_bound.cpython-36.pyc b/CoLo-AT/localization_algos/__pycache__/gs_ci_bound.cpython-36.pyc index 83bf5d28309a25e87b1bc794f5adbd1a8d27d0d4..0011e92cb63c4fc5e20457ee0cf17255617a39e5 100644 GIT binary patch delta 55 zcmX>hby14Vn3tF9e#}NT0VXBp8ish56oz01O%}hGObiSR>9b~nz)5>3W9MdlCP{7p DyvY(3 delta 46 zcmca8bwY~Gn3tDJ&3hx80FxwB4MRLj3PUi1CbQp5CI$wE^jR}O;N)ftCP{7p0;UX8 diff --git a/CoLo-AT/localization_algos/ekf_ls_ci.py b/CoLo-AT/localization_algos/ekf_ls_ci.py index fe39646..cfe89cd 100644 --- a/CoLo-AT/localization_algos/ekf_ls_ci.py +++ b/CoLo-AT/localization_algos/ekf_ls_ci.py @@ -40,8 +40,8 @@ class EKF_LS_CI(ekf_algo_framework): s[i+1,0] = s[i+1,0] + sin(self_theta)*v*delta_t #y var_u_v = sigma_odo[0,0] - sigma_s[i:i+2, i:i+2] = sigma_s[i:i+2, i:i+2]+ delta_t*delta_t*rot_mtx(self_theta)*matrix([[var_u_v, 0],[0, 0]])*rot_mtx(self_theta).T - + #sigma_s[i:i+2, i:i+2] = sigma_s[i:i+2, i:i+2]+ delta_t*delta_t*rot_mtx(self_theta)*matrix([[var_u_v, 0],[0, 0]])*rot_mtx(self_theta).T + sigma_s[i:i+2, i:i+2] = sigma_s[i:i+2, i:i+2]+ delta_t*delta_t*rot_mtx(self_theta)*sigma_odo*rot_mtx(self_theta).T return [s, orinetations, sigma_s] @@ -78,8 +78,6 @@ class EKF_LS_CI(ekf_algo_framework): z_hat = rot_mtx(self_theta).getT()*(np.matrix([delta_x, delta_y]).getT()) # shifted to robot frame - - sigma_z = rot_mtx(bearing) * sigma_ob * rot_mtx(bearing).getT() sigma_invention = H * local_sigma * H.getT() + sigma_z kalman_gain = local_sigma*H.getT()*sigma_invention.getI() diff --git a/CoLo-AT/localization_algos/gs_ci_bound.py b/CoLo-AT/localization_algos/gs_ci_bound.py index 21f007c..da3a820 100644 --- a/CoLo-AT/localization_algos/gs_ci_bound.py +++ b/CoLo-AT/localization_algos/gs_ci_bound.py @@ -12,7 +12,7 @@ class GS_CI_Bound(ekf_algo_framework): self.d_max = 2 # max measurement distance self.d_var = 0.2 self.bearing_var = 0.2 - self.var_v = 0.2 + self.var_v = 0.1 def state_variance_init(self, num_robots): return 0.01*np.matrix(np.identity(2*num_robots), dtype = float) -- GitLab