In this lab, we implemented a Bayes Filter to perform grid localization with a simulator in Python in a grid similar to this:
Specifically, most of the work in this lab was dedicated to implementing the algorithm shown below along with its helper functions:
The first function I implemented was the compute_control function. This function takes a current and previous pose and computes the required actions to get the robot from the previous pose to the current pose. Essentially, it computes the "u" in the Bayes Filter:
More specifically, it computes the first rotation (delta_rot_1), the translation (delta_trans), and the second rotation (delta_rot_2) described in this diagram from lecture:
I used simple trigonometry using the inverse tangent and the difference of the current and previous pose in the x and y axes to calculate the first rotation. Then I used the Pythagorean Theorem and the difference of the current and previous pose in the x and y axes to calculate the translation. Finally, to get the third rotation, I subtracted the first rotation and previous pose rotation from the current pose and normalized it. Here is the code I wrote for this function:
def compute_control(cur_pose, prev_pose):
new_rot_1 = (180/np.pi)*np.arctan2((cur_pose[1] - prev_pose[1]), (cur_pose[0]-prev_pose[0]))
delta_rot_1 = loc.mapper.normalize_angle(new_rot_1 - prev_pose[2])
delta_trans = np.sqrt((cur_pose[0]-prev_pose[0])**2 + (cur_pose[1] - prev_pose[1])**2)
delta_rot_2 = loc.mapper.normalize_angle(cur_pose[2] - delta_rot_1 - prev_pose[2])
return delta_rot_1, delta_trans, delta_rot_2
Next, I implemented the odom_motion_model function, which correlates to this part of the Bayes Filter:
This function takes the current and previous pose as well as the control input u as parameters. Then it essentially computes the probability that the robot is at the current pose given the previous pose and control input u. To calculate this, I first calculated the control input between the current and previous poses that were passed into the function. Then I used the Gaussian function to essentially "compare the similarity" between the passed in control input u and the other control input calculated from the passed in current and previous pose - the closer the values are the higher the relative likelihood and the farther the values are the lower the relative likelihood. I did this for each of the two rotations and the translation and multiplied the likelihoods together, which I returned. Here is the code I wrote for this function:
def odom_motion_model(cur_pose, prev_pose, u):
x_i_delta_rot_1, x_i_delta_trans, x_i_delta_rot_2 = compute_control(cur_pose,prev_pose)
rot_1_prob = loc.gaussian(x_i_delta_rot_1,u[0],loc.odom_rot_sigma)
trans_prob = loc.gaussian(x_i_delta_trans,u[1],loc.odom_trans_sigma)
rot_2_prob = loc.gaussian(x_i_delta_rot_2,u[2],loc.odom_rot_sigma)
prob = rot_1_prob * trans_prob * rot_2_prob
return prob
Next, I implemented the prediction_step function, which correlates to these parts of the Bayes Filter:
This function takes in the current and previous odometry data as parameters. Then it essentially fills the bel_bar matrix with the marginal probability distribution of where it thinks it is without knowing its sensor measurements yet. To calculate this, I used 6 nested for loops to represent the outer loop in the Bayes Filter and the inner summation on the second line of the Bayes Filter (there are 6 nested loops instead of 2 as expected from the Bayes Filter formula because we are looking at 3 dimensions). Since this is an incredibly expensive operation, I optimized it by including an if statement in the middle that checks to see if it is worth computing (I first ran it without this optimization and it took over 30 seconds each time). At the inside of the last nested for loops, I essentially just transcribed the contents of the summation on line 2 of the Bayes Filter in Python, which was very easy with the helper functions. Finally, when the loops were all done, I normalized everything. Here is the code I wrote for this function:
def prediction_step(cur_odom, prev_odom):
u = compute_control(cur_odom, prev_odom)
for x_t_minus_1_i in range(mapper.MAX_CELLS_X):
for y_t_minus_1_i in range(mapper.MAX_CELLS_Y):
for a_t_minus_1_i in range(mapper.MAX_CELLS_A):
if loc.bel[x_t_minus_1_i,y_t_minus_1_i,a_t_minus_1_i] > 0.0001:
for x_t_i in range(mapper.MAX_CELLS_X):
for y_t_i in range(mapper.MAX_CELLS_Y):
for a_t_i in range(mapper.MAX_CELLS_A):
pose_t_i = mapper.from_map(x_t_i,y_t_i,a_t_i)
pose_t_minus_1_i = mapper.from_map(x_t_minus_1_i,y_t_minus_1_i,a_t_minus_1_i)
loc.bel_bar[x_t_i, y_t_i, a_t_i] += odom_motion_model(pose_t_i, pose_t_minus_1_i,u) * loc.bel[x_t_minus_1_i,y_t_minus_1_i,a_t_minus_1_i]
eta = 1/(np.sum(loc.bel_bar)) # normalization constant
loc.bel_bar = loc.bel_bar*eta # normalize
Next, I implemented the sensor_model function, which correlates to this part of the Bayes Filter:
This function takes in an array of the 18 observed sensor measurements as well as an array of the 18 precached sensor measurements at that position. Then it calculates the probability that the sensor measurements are true at that position using the precached values at that point. The way it does this is similar to the Motion Model, where it uses the Gaussian function to essentially "compare the similarity" between the measured sensor values and the precached values at that position - the closer the values are the higher the relative likelihood and the farther the values are the lower the relative likelihood. Each of the likelihoods is stored in an array that is returned (they will be multiplied together in the Update Step). Here is the code I wrote for this function:
def sensor_model(obs, precached):
prob_array = []
for i in range(18):
prob_array.append(loc.gaussian(obs[i],precached[i],loc.sensor_sigma))
return prob_array
Next, I implemented the update_step function, which correlates to this part of the Bayes Filter:
This function essentially just updates the bel matrix with the probability distribution of where it thinks the robot is given the sensor measurements and bel_bar. To calculate this, I used three nested for loops with one loop for each dimension. At the inside of the last nested for loop, I essentially just transcribed line 3 of the Bayes Filter in Python. Finally, I normalized everything. Here is the code I wrote for this function:
def update_step():
for x_t_i in range(mapper.MAX_CELLS_X):
for y_t_i in range(mapper.MAX_CELLS_Y):
for a_t_i in range(mapper.MAX_CELLS_A):
#sensor_model step is not right at all - returns an ARRAY, should probably be a float:
loc.bel[x_t_i, y_t_i, a_t_i] = np.prod(sensor_model(loc.obs_range_data,mapper.get_views(x_t_i,y_t_i,a_t_i))) * loc.bel_bar[x_t_i, y_t_i, a_t_i]
eta = 1/(np.sum(loc.bel)) # normalization constant
loc.bel = loc.bel * eta # normalize
Finally, I ran the code to see how well my Bayes Filter implementation worked as the robot traversed its pre-planned trajectory. Below are videos of these demonstrations, with and without the marginal distribution plotting.
Plotting Ground Truth (green), Belief (blue), and Odometry (red):
Plotting Ground Truth (green), Belief (blue), Odometry (red), and Marginal Distribution (white blocks; whiter means greater probability):
Below is the console output of the specific stats of one of the runs. As can be seen, the most probable states match the the ground truth pose very closely for the X and Y dimensions. The Bayes Filter seems to work well here for these X and Y values because in this simulated environment the sensor data is fairly accurate and precise, but it will likely work much less well when given less reliable and more noisy sensors. However, the yaw angle dimensions do not match very well, and I think this is probably due to me normalizing the angles.
----------------- 0 -----------------
2022-04-25 21:04:22,515 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:22,521 | INFO |: GT index : (6, 3, 6)
2022-04-25 21:04:22,522 | INFO |: Prior Bel index : (4, 3, 3) with prob = 0.1074386
2022-04-25 21:04:22,523 | INFO |: POS ERROR : (0.591, 0.215, 69.607)
2022-04-25 21:04:22,525 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:25,886 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:04:25,893 | INFO |: GT index : (6, 3, 6)
2022-04-25 21:04:25,894 | INFO |: Bel index : (6, 4, 6) with prob = 1.0
2022-04-25 21:04:25,895 | INFO |: Bel_bar prob at index = 0.00013881729127078254
2022-04-25 21:04:25,896 | INFO |: GT : (0.286, -0.090, 319.607)
2022-04-25 21:04:25,897 | INFO |: Belief : (0.305, 0.000, -50.000)
2022-04-25 21:04:25,898 | INFO |: POS ERROR : (-0.019, -0.090, 369.607)
2022-04-25 21:04:25,899 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 1 -----------------
2022-04-25 21:04:28,023 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:28,041 | INFO |: GT index : (7, 2, 5)
2022-04-25 21:04:28,042 | INFO |: Prior Bel index : (5, 1, 3) with prob = 0.0821984
2022-04-25 21:04:28,046 | INFO |: POS ERROR : (0.511, 0.369, 406.306)
2022-04-25 21:04:28,049 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:31,452 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:04:31,458 | INFO |: GT index : (7, 2, 5)
2022-04-25 21:04:31,459 | INFO |: Bel index : (7, 2, 6) with prob = 1.0
2022-04-25 21:04:31,460 | INFO |: Bel_bar prob at index = 0.0005083305329467872
2022-04-25 21:04:31,461 | INFO |: GT : (0.511, -0.546, 656.306)
2022-04-25 21:04:31,461 | INFO |: Belief : (0.610, -0.610, -50.000)
2022-04-25 21:04:31,462 | INFO |: POS ERROR : (-0.098, 0.064, 706.306)
2022-04-25 21:04:31,467 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 2 -----------------
2022-04-25 21:04:32,552 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:32,562 | INFO |: GT index : (7, 2, 4)
2022-04-25 21:04:32,563 | INFO |: Prior Bel index : (6, 4, 4) with prob = 0.1503744
2022-04-25 21:04:32,564 | INFO |: POS ERROR : (0.207, -0.546, 723.386)
2022-04-25 21:04:32,565 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:35,908 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:04:35,920 | INFO |: GT index : (7, 2, 4)
2022-04-25 21:04:35,920 | INFO |: Bel index : (7, 2, 4) with prob = 0.9999999
2022-04-25 21:04:35,921 | INFO |: Bel_bar prob at index = 6.287308582071773e-05
2022-04-25 21:04:35,921 | INFO |: GT : (0.511, -0.546, 993.386)
2022-04-25 21:04:35,922 | INFO |: Belief : (0.610, -0.610, -90.000)
2022-04-25 21:04:35,923 | INFO |: POS ERROR : (-0.098, 0.064, 1083.386)
2022-04-25 21:04:35,923 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 3 -----------------
2022-04-25 21:04:37,030 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:37,044 | INFO |: GT index : (7, 0, 4)
2022-04-25 21:04:37,045 | INFO |: Prior Bel index : (8, 0, 5) with prob = 0.1644957
2022-04-25 21:04:37,046 | INFO |: POS ERROR : (-0.379, 0.267, 1063.386)
2022-04-25 21:04:37,047 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:40,439 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:04:40,455 | INFO |: GT index : (7, 0, 4)
2022-04-25 21:04:40,456 | INFO |: Bel index : (6, 1, 4) with prob = 0.9999983
2022-04-25 21:04:40,457 | INFO |: Bel_bar prob at index = 0.0021077392866740005
2022-04-25 21:04:40,458 | INFO |: GT : (0.535, -0.952, 1353.386)
2022-04-25 21:04:40,459 | INFO |: Belief : (0.305, -0.914, -90.000)
2022-04-25 21:04:40,460 | INFO |: POS ERROR : (0.231, -0.037, 1443.386)
2022-04-25 21:04:40,461 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 4 -----------------
2022-04-25 21:04:43,585 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:43,587 | INFO |: GT index : (8, 0, 8)
2022-04-25 21:04:43,588 | INFO |: Prior Bel index : (7, 2, 10) with prob = 0.0971906
2022-04-25 21:04:43,589 | INFO |: POS ERROR : (0.192, -0.491, 1409.806)
2022-04-25 21:04:43,591 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:46,976 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:04:46,993 | INFO |: GT index : (8, 0, 8)
2022-04-25 21:04:46,993 | INFO |: Bel index : (8, 1, 9) with prob = 1.0
2022-04-25 21:04:46,994 | INFO |: Bel_bar prob at index = 0.00034693014259250314
2022-04-25 21:04:46,995 | INFO |: GT : (0.801, -1.101, 1799.806)
2022-04-25 21:04:46,996 | INFO |: Belief : (0.914, -0.914, 10.000)
2022-04-25 21:04:46,996 | INFO |: POS ERROR : (-0.113, -0.187, 1789.806)
2022-04-25 21:04:46,997 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 5 -----------------
2022-04-25 21:04:53,127 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:53,142 | INFO |: GT index : (11, 0, 11)
2022-04-25 21:04:53,143 | INFO |: Prior Bel index : (10, 0, 11) with prob = 0.1668739
2022-04-25 21:04:53,144 | INFO |: POS ERROR : (0.075, 0.280, 1800.225)
2022-04-25 21:04:53,145 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:56,511 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:04:56,516 | INFO |: GT index : (11, 0, 11)
2022-04-25 21:04:56,517 | INFO |: Bel index : (10, 1, 11) with prob = 1.0
2022-04-25 21:04:56,518 | INFO |: Bel_bar prob at index = 0.004791596696405744
2022-04-25 21:04:56,519 | INFO |: GT : (1.599, -0.940, 2210.225)
2022-04-25 21:04:56,520 | INFO |: Belief : (1.524, -0.914, 50.000)
2022-04-25 21:04:56,522 | INFO |: POS ERROR : (0.075, -0.025, 2160.225)
2022-04-25 21:04:56,523 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 6 -----------------
2022-04-25 21:04:58,634 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:04:58,638 | INFO |: GT index : (11, 2, 12)
2022-04-25 21:04:58,639 | INFO |: Prior Bel index : (11, 2, 13) with prob = 0.2058537
2022-04-25 21:04:58,640 | INFO |: POS ERROR : (-0.155, 0.070, 2149.357)
2022-04-25 21:04:58,640 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:02,008 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:02,010 | INFO |: GT index : (11, 2, 12)
2022-04-25 21:05:02,011 | INFO |: Bel index : (10, 2, 12) with prob = 0.9999999
2022-04-25 21:05:02,012 | INFO |: Bel_bar prob at index = 2.909084993446881e-06
2022-04-25 21:05:02,013 | INFO |: GT : (1.674, -0.540, 2599.356)
2022-04-25 21:05:02,013 | INFO |: Belief : (1.524, -0.610, 70.000)
2022-04-25 21:05:02,014 | INFO |: POS ERROR : (0.150, 0.070, 2529.356)
2022-04-25 21:05:02,015 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 7 -----------------
2022-04-25 21:05:04,107 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:04,125 | INFO |: GT index : (11, 3, 13)
2022-04-25 21:05:04,125 | INFO |: Prior Bel index : (9, 4, 13) with prob = 0.0889599
2022-04-25 21:05:04,126 | INFO |: POS ERROR : (0.522, -0.180, 2514.992)
2022-04-25 21:05:04,127 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:07,449 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:07,464 | INFO |: GT index : (11, 3, 13)
2022-04-25 21:05:07,465 | INFO |: Bel index : (11, 3, 13) with prob = 1.0
2022-04-25 21:05:07,466 | INFO |: Bel_bar prob at index = 0.004101168849040615
2022-04-25 21:05:07,467 | INFO |: GT : (1.741, -0.180, 2964.992)
2022-04-25 21:05:07,468 | INFO |: Belief : (1.829, -0.305, 90.000)
2022-04-25 21:05:07,469 | INFO |: POS ERROR : (-0.088, 0.125, 2874.992)
2022-04-25 21:05:07,470 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 8 -----------------
2022-04-25 21:05:10,604 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:10,617 | INFO |: GT index : (11, 5, 14)
2022-04-25 21:05:10,618 | INFO |: Prior Bel index : (10, 4, 15) with prob = 0.1116641
2022-04-25 21:05:10,619 | INFO |: POS ERROR : (0.209, 0.320, 2858.392)
2022-04-25 21:05:10,624 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:13,935 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:13,944 | INFO |: GT index : (11, 5, 14)
2022-04-25 21:05:13,945 | INFO |: Bel index : (11, 5, 14) with prob = 0.9998590
2022-04-25 21:05:13,946 | INFO |: Bel_bar prob at index = 0.004612065584525311
2022-04-25 21:05:13,946 | INFO |: GT : (1.733, 0.320, 3348.392)
2022-04-25 21:05:13,947 | INFO |: Belief : (1.829, 0.305, 110.000)
2022-04-25 21:05:13,948 | INFO |: POS ERROR : (-0.096, 0.015, 3238.392)
2022-04-25 21:05:13,949 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 9 -----------------
2022-04-25 21:05:17,118 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:17,125 | INFO |: GT index : (11, 6, 16)
2022-04-25 21:05:17,126 | INFO |: Prior Bel index : (10, 4, 15) with prob = 0.0988329
2022-04-25 21:05:17,127 | INFO |: POS ERROR : (0.202, 0.650, 3259.450)
2022-04-25 21:05:17,129 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:20,426 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:20,433 | INFO |: GT index : (11, 6, 16)
2022-04-25 21:05:20,434 | INFO |: Bel index : (11, 7, 16) with prob = 1.0
2022-04-25 21:05:20,435 | INFO |: Bel_bar prob at index = 1.5448765854544247e-05
2022-04-25 21:05:20,436 | INFO |: GT : (1.726, 0.650, 3749.450)
2022-04-25 21:05:20,438 | INFO |: Belief : (1.829, 0.914, 150.000)
2022-04-25 21:05:20,440 | INFO |: POS ERROR : (-0.102, -0.265, 3599.450)
2022-04-25 21:05:20,441 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 10 -----------------
2022-04-25 21:05:22,544 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:22,546 | INFO |: GT index : (10, 6, 17)
2022-04-25 21:05:22,547 | INFO |: Prior Bel index : (11, 8, 16) with prob = 0.1184147
2022-04-25 21:05:22,548 | INFO |: POS ERROR : (-0.540, -0.311, 3610.912)
2022-04-25 21:05:22,550 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:25,865 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:25,874 | INFO |: GT index : (10, 6, 17)
2022-04-25 21:05:25,875 | INFO |: Bel index : (9, 7, 17) with prob = 0.9999999
2022-04-25 21:05:25,876 | INFO |: Bel_bar prob at index = 1.127051139552993e-05
2022-04-25 21:05:25,876 | INFO |: GT : (1.289, 0.908, 4120.912)
2022-04-25 21:05:25,877 | INFO |: Belief : (1.219, 0.914, 170.000)
2022-04-25 21:05:25,878 | INFO |: POS ERROR : (0.069, -0.006, 3950.912)
2022-04-25 21:05:25,879 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 11 -----------------
2022-04-25 21:05:28,999 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:29,006 | INFO |: GT index : (7, 6, 4)
2022-04-25 21:05:29,007 | INFO |: Prior Bel index : (6, 8, 2) with prob = 0.0687248
2022-04-25 21:05:29,008 | INFO |: POS ERROR : (0.114, -0.472, 4350.396)
2022-04-25 21:05:29,009 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:32,335 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:32,349 | INFO |: GT index : (7, 6, 4)
2022-04-25 21:05:32,350 | INFO |: Bel index : (7, 7, 3) with prob = 0.7120126
2022-04-25 21:05:32,351 | INFO |: Bel_bar prob at index = 0.038325344273912446
2022-04-25 21:05:32,352 | INFO |: GT : (0.418, 0.747, 4580.397)
2022-04-25 21:05:32,353 | INFO |: Belief : (0.610, 0.914, -110.000)
2022-04-25 21:05:32,354 | INFO |: POS ERROR : (-0.191, -0.168, 4690.397)
2022-04-25 21:05:32,355 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 12 -----------------
2022-04-25 21:05:34,587 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:34,602 | INFO |: GT index : (7, 4, 6)
2022-04-25 21:05:34,603 | INFO |: Prior Bel index : (6, 4, 6) with prob = 0.0450771
2022-04-25 21:05:34,603 | INFO |: POS ERROR : (0.003, 0.095, 4676.243)
2022-04-25 21:05:34,605 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:37,975 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:37,991 | INFO |: GT index : (7, 4, 6)
2022-04-25 21:05:37,992 | INFO |: Bel index : (6, 4, 6) with prob = 1.0
2022-04-25 21:05:37,994 | INFO |: Bel_bar prob at index = 0.04507718482584398
2022-04-25 21:05:37,994 | INFO |: GT : (0.308, 0.095, 4986.243)
2022-04-25 21:05:37,995 | INFO |: Belief : (0.305, 0.000, -50.000)
2022-04-25 21:05:37,996 | INFO |: POS ERROR : (0.003, 0.095, 5036.243)
2022-04-25 21:05:37,998 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 13 -----------------
2022-04-25 21:05:40,102 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:40,104 | INFO |: GT index : (6, 3, 2)
2022-04-25 21:05:40,105 | INFO |: Prior Bel index : (4, 2, 3) with prob = 0.0626157
2022-04-25 21:05:40,105 | INFO |: POS ERROR : (0.388, 0.366, 5026.354)
2022-04-25 21:05:40,107 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:43,474 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:43,490 | INFO |: GT index : (6, 3, 2)
2022-04-25 21:05:43,491 | INFO |: Bel index : (5, 3, 2) with prob = 1.0
2022-04-25 21:05:43,492 | INFO |: Bel_bar prob at index = 0.034304265987684004
2022-04-25 21:05:43,492 | INFO |: GT : (0.083, -0.243, 5276.354)
2022-04-25 21:05:43,494 | INFO |: Belief : (0.000, -0.305, -130.000)
2022-04-25 21:05:43,497 | INFO |: POS ERROR : (0.083, 0.061, 5406.354)
2022-04-25 21:05:43,499 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 14 -----------------
2022-04-25 21:05:46,602 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:46,619 | INFO |: GT index : (5, 2, 1)
2022-04-25 21:05:46,620 | INFO |: Prior Bel index : (2, 1, 17) with prob = 0.0686621
2022-04-25 21:05:46,621 | INFO |: POS ERROR : (0.637, 0.482, 5083.431)
2022-04-25 21:05:46,624 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:50,010 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:50,022 | INFO |: GT index : (5, 2, 1)
2022-04-25 21:05:50,022 | INFO |: Bel index : (4, 3, 1) with prob = 1.0
2022-04-25 21:05:50,023 | INFO |: Bel_bar prob at index = 0.001523708046172246
2022-04-25 21:05:50,024 | INFO |: GT : (-0.277, -0.433, 5613.431)
2022-04-25 21:05:50,024 | INFO |: Belief : (-0.305, -0.305, -150.000)
2022-04-25 21:05:50,025 | INFO |: POS ERROR : (0.028, -0.128, 5763.431)
2022-04-25 21:05:50,027 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------
----------------- 15 -----------------
2022-04-25 21:05:53,175 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:53,187 | INFO |: GT index : (3, 2, 0)
2022-04-25 21:05:53,188 | INFO |: Prior Bel index : (3, 4, 15) with prob = 0.1535830
2022-04-25 21:05:53,189 | INFO |: POS ERROR : (-0.066, -0.463, 5460.126)
2022-04-25 21:05:53,190 | INFO |: ---------- PREDICTION STATS -----------
2022-04-25 21:05:56,532 | INFO |: ---------- UPDATE STATS -----------
2022-04-25 21:05:56,547 | INFO |: GT index : (3, 2, 0)
2022-04-25 21:05:56,550 | INFO |: Bel index : (3, 2, 0) with prob = 1.0
2022-04-25 21:05:56,551 | INFO |: Bel_bar prob at index = 0.0026602650853020317
2022-04-25 21:05:56,553 | INFO |: GT : (-0.676, -0.463, 5950.126)
2022-04-25 21:05:56,554 | INFO |: Belief : (-0.610, -0.610, -170.000)
2022-04-25 21:05:56,555 | INFO |: POS ERROR : (-0.066, 0.147, 6120.126)
2022-04-25 21:05:56,556 | INFO |: ---------- UPDATE STATS -----------
-------------------------------------