Commit b9aba9840224a1d4720ba5597874d2a7a165ca47

Authored by Sakthi Sivaraman
1 parent 5fa8013d19
Exists in master

With laser error & 3 move list configurations

Showing 75 changed files with 1835 additions and 69 deletions Side-by-side Diff

PA2_final2/launch/solution_python.launch View file @ b9aba98
... ... @@ -5,11 +5,13 @@
5 5 <node pkg="cse_190_assi_2" type="robot.py" name="particle_filter_localization" output="screen" required="true"/>
6 6 <node pkg="stage_ros" type="stageros" name="stageros" args="$(arg world_file)">
7 7 <param name="base_watchdog_timeout" value="1000"/>
  8 + <remap from="base_scan" to="original_scan"/>
8 9 </node>
9 10 <node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)">
10 11 <param name="frame_id" value="/map"/>
11 12 </node>
12 13 <node name="rviz" pkg="rviz" type="rviz" args="-d $(find cse_190_assi_2)/rviz/PA2.rviz"/>
  14 + <node pkg="cse_190_assi_2" type="laser_model.py" name="laser_model" output="screen" cwd="node"/>
13 15 <node pkg="cse_190_assi_2" type="test_metric.py" name="test_metric" output="screen" cwd="node"/>
14 16  
15 17 </launch>
PA2_final2/logs/log_seeds3/seed_0/configuration.json View file @ b9aba98
... ... @@ -21,9 +21,9 @@
21 21 "first_move_sigma_x": 2,
22 22 "first_move_sigma_y": 2,
23 23 "first_move_sigma_angle": 0.08,
24   - "resample_sigma_x": 0.1,
25   - "resample_sigma_y": 0.1,
26   - "resample_sigma_angle": 0.02,
  24 + "resample_sigma_x": 1,
  25 + "resample_sigma_y": 1,
  26 + "resample_sigma_angle": 0.01,
27 27  
28 28 "laser_z_hit": 0.80,
29 29 "laser_z_rand": 0.05,
PA2_final2/logs/log_seeds3/seed_0/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_0/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_0/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_0/metric_results.json View file @ b9aba98
  1 +{
  2 +"metric" : [2.0]
  3 +}
PA2_final2/logs/log_seeds3/seed_0/std_dev_results.json View file @ b9aba98
  1 +{
  2 +"std_dev_x" : [75.29445706760256]
  3 +}
  4 +{
  5 +"std_dev_y" : [55.166854597354295]
  6 +}
  7 +{
  8 +"std_dev_angle" : [1.823933683962769]
  9 +}
PA2_final2/logs/log_seeds3/seed_0/time_results.json View file @ b9aba98
  1 +{
  2 +"time_elapsed" : [0.05081304907798767]
  3 +}
PA2_final2/logs/log_seeds3/seed_1/configuration.json View file @ b9aba98
... ... @@ -21,9 +21,9 @@
21 21 "first_move_sigma_x": 2,
22 22 "first_move_sigma_y": 2,
23 23 "first_move_sigma_angle": 0.08,
24   - "resample_sigma_x": 0.1,
25   - "resample_sigma_y": 0.1,
26   - "resample_sigma_angle": 0.02,
  24 + "resample_sigma_x": 1,
  25 + "resample_sigma_y": 1,
  26 + "resample_sigma_angle": 0.01,
27 27  
28 28 "laser_z_hit": 0.80,
29 29 "laser_z_rand": 0.05,
PA2_final2/logs/log_seeds3/seed_1/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_1/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_1/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_1/metric_results.json View file @ b9aba98
1 1 {
2   -"metric" : [2.0, 1.4238824005445838, 1.3160411740551194, 5.346618424337531, 1.323874074745884, 1.2749475780049355]
  2 +"metric" : [2.0]
3 3 }
PA2_final2/logs/log_seeds3/seed_1/std_dev_results.json View file @ b9aba98
1 1 {
2   -"std_dev_x" : [72.67294079455658, 132.09895365149464, 131.6037862389534, 15.36313400545684, 15.07225697714103, 15.495711131211916]
  2 +"std_dev_x" : [75.29445706760256]
3 3 }
4 4 {
5   -"std_dev_y" : [57.754087049913004, 33.40434621983984, 31.63286848549998, 11.567760396843116, 131.97188641885, 142.12453873531828]
  5 +"std_dev_y" : [55.166854597354295]
6 6 }
7 7 {
8   -"std_dev_angle" : [1.811602678529423, 2.439484416869617, 2.874551402596871, 3.4857881328337146, 2.8984217333727913, 2.8955277495231933]
  8 +"std_dev_angle" : [1.823933683962769]
9 9 }
PA2_final2/logs/log_seeds3/seed_1/time_results.json View file @ b9aba98
1 1 {
2   -"time_elapsed" : [0.0500895120203495, 2.243685584515333, 2.5015218667685986, 3.6171631813049316, 4.424445133656263, 4.533289115875959]
  2 +"time_elapsed" : [0.05081304907798767]
3 3 }
PA2_final2/logs/log_seeds3/seed_100/configuration.json View file @ b9aba98
... ... @@ -21,9 +21,9 @@
21 21 "first_move_sigma_x": 2,
22 22 "first_move_sigma_y": 2,
23 23 "first_move_sigma_angle": 0.08,
24   - "resample_sigma_x": 0.1,
25   - "resample_sigma_y": 0.1,
26   - "resample_sigma_angle": 0.02,
  24 + "resample_sigma_x": 2,
  25 + "resample_sigma_y": 2,
  26 + "resample_sigma_angle": 0.01,
27 27  
28 28 "laser_z_hit": 0.80,
29 29 "laser_z_rand": 0.05,
PA2_final2/logs/log_seeds3/seed_100/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_100/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_100/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_100/metric_results.json View file @ b9aba98
1 1 {
2   -"metric" : [2.0, 1.255122694134589, 1.3677448924917321, 4.7678214655569136, 1.493727131754932, 1.4332167484558647, 1.35222161766123, 1.2407375091338992, 9.330162566065018]
  2 +"metric" : [2.0, 1.312661061114163, 1.2202156476751216, 4.591019979488673, 1.8643313902928007, 1.873668312339455, 1.6219660319778713, 1.6311532176396148, 7.136024788701019, 1.37246105985668, 1.5422224905225188, 1.6164194803290424, 1.8440773465336955, 3.130895361733332]
3 3 }
PA2_final2/logs/log_seeds3/seed_100/std_dev_results.json View file @ b9aba98
1 1 {
2   -"std_dev_x" : [75.14032723274629, 175.0153246323058, 154.66195748591215, 18.505117120726347, 27.434637279186052, 27.59700191579456, 15.224136503406239, 13.88431882597507, 8.37734930853692]
  2 +"std_dev_x" : [75.14032723274629, 167.98355393289492, 172.60755598036562, 17.86035021595178, 28.96492652354512, 30.75422638069578, 24.639383675326215, 25.11520381469188, 13.399697649079084, 126.99908903060421, 122.58906508857699, 124.097313227931, 110.25304253425278, 72.2924055751403]
3 3 }
4 4 {
5   -"std_dev_y" : [56.621614368670805, 18.594497715172025, 16.57970327738344, 11.561042658924382, 117.66709628933917, 126.78295433104391, 120.99499317477213, 146.27646060547403, 6.810029490614684]
  5 +"std_dev_y" : [56.621614368670805, 22.864367666923084, 25.561230856304537, 14.69680537613156, 92.16716637945932, 94.75285922785606, 99.0217789811163, 107.71006400129929, 6.839845899986884, 23.409079329354654, 35.49694028949164, 10.341894254981705, 7.279531323726846, 36.296860061067086]
6 6 }
7 7 {
8   -"std_dev_angle" : [1.8108835899975961, 2.513206134572855, 2.3737442012656595, 3.972450595111907, 2.5326251425629276, 2.55739280954278, 3.118412846430211, 3.016066018027615, 2.942496179584507]
  8 +"std_dev_angle" : [1.8108835899975961, 2.3900034071120237, 2.659103386046222, 3.460471442610306, 2.0336126646619834, 1.9488329927663532, 2.5872274558038644, 2.3202583526307956, 2.052711479843312, 2.8123740097536816, 2.249490861533352, 2.1035267380825826, 1.8244356138057347, 0.9202542915867028]
9 9 }
PA2_final2/logs/log_seeds3/seed_100/time_results.json View file @ b9aba98
1 1 {
2   -"time_elapsed" : [0.04321293532848358, 2.3422266840934753, 2.6050062850117683, 3.7588519491255283, 4.585372284054756, 4.6997894160449505, 5.714456085115671, 6.01973969861865, 6.731148734688759]
  2 +"time_elapsed" : [0.0527929812669754, 2.3228813633322716, 2.5824946463108063, 3.6821464970707893, 4.501981779932976, 4.611185930669308, 5.598457332700491, 5.895772032439709, 6.65541448071599, 7.208454847335815, 7.664150848984718, 8.207474283874035, 8.317491181194782, 8.987497765570879]
3 3 }
PA2_final2/logs/log_seeds3/seed_12345/configuration.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 12345,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 1,
  25 + "resample_sigma_y": 1,
  26 + "resample_sigma_angle": 0.01,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_12345/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_12345/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_12345/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_124/configuration.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 1,
  25 + "resample_sigma_y": 1,
  26 + "resample_sigma_angle": 0.01,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_124/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_124/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_124/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_3/configuration.json View file @ b9aba98
... ... @@ -21,9 +21,9 @@
21 21 "first_move_sigma_x": 2,
22 22 "first_move_sigma_y": 2,
23 23 "first_move_sigma_angle": 0.08,
24   - "resample_sigma_x": 0.1,
25   - "resample_sigma_y": 0.1,
26   - "resample_sigma_angle": 0.02,
  24 + "resample_sigma_x": 1,
  25 + "resample_sigma_y": 1,
  26 + "resample_sigma_angle": 0.01,
27 27  
28 28 "laser_z_hit": 0.80,
29 29 "laser_z_rand": 0.05,
PA2_final2/logs/log_seeds3/seed_3/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_3/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_3/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_3/metric_results.json View file @ b9aba98
1 1 {
2   -"metric" : [2.0, 1.1047828861426765, 1.1835747218847406, 8.903377286221659, 1.276974031756708, 1.2341781690004434]
  2 +"metric" : [2.0]
3 3 }
PA2_final2/logs/log_seeds3/seed_3/std_dev_results.json View file @ b9aba98
1 1 {
2   -"std_dev_x" : [75.29445706760256, 197.85988866540802, 174.77799561288876, 7.424109748284507, 13.420795160982415, 13.617511999894298]
  2 +"std_dev_x" : [75.29445706760256]
3 3 }
4 4 {
5   -"std_dev_y" : [55.166854597354295, 23.2629821875162, 21.20965564273314, 8.386703518048716, 138.66694223149509, 148.35908632262718]
  5 +"std_dev_y" : [55.166854597354295]
6 6 }
7 7 {
8   -"std_dev_angle" : [1.823933683962769, 2.866673071401528, 2.7914221332162263, 3.2010866094180113, 3.0049805342936318, 3.0016065065352353]
  8 +"std_dev_angle" : [1.823933683962769]
9 9 }
PA2_final2/logs/log_seeds3/seed_3/time_results.json View file @ b9aba98
1 1 {
2   -"time_elapsed" : [0.05094929784536362, 2.4942609667778015, 2.7580668963491917, 3.8890277966856956, 4.737251713871956, 4.8554511442780495]
  2 +"time_elapsed" : [0.05081304907798767]
3 3 }
PA2_final2/logs/log_seeds3/seed_4/configuration.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 4,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 1,
  25 + "resample_sigma_y": 1,
  26 + "resample_sigma_angle": 0.01,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_4/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_4/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_4/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_444/configuration.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 444,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 1,
  25 + "resample_sigma_y": 1,
  26 + "resample_sigma_angle": 0.01,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_444/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_444/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_444/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_563/configuration.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 563,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 1,
  25 + "resample_sigma_y": 1,
  26 + "resample_sigma_angle": 0.01,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_563/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_563/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_563/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_9/configuration.json View file @ b9aba98
... ... @@ -21,9 +21,9 @@
21 21 "first_move_sigma_x": 2,
22 22 "first_move_sigma_y": 2,
23 23 "first_move_sigma_angle": 0.08,
24   - "resample_sigma_x": 0.1,
25   - "resample_sigma_y": 0.1,
26   - "resample_sigma_angle": 0.02,
  24 + "resample_sigma_x": 1,
  25 + "resample_sigma_y": 1,
  26 + "resample_sigma_angle": 0.01,
27 27  
28 28 "laser_z_hit": 0.80,
29 29 "laser_z_rand": 0.05,
PA2_final2/logs/log_seeds3/seed_9/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 3,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 + "first_move_sigma_x": 2,
  22 + "first_move_sigma_y": 2,
  23 + "first_move_sigma_angle": 0.08,
  24 + "resample_sigma_x": 0.1,
  25 + "resample_sigma_y": 0.1,
  26 + "resample_sigma_angle": 0.02,
  27 +
  28 + "laser_z_hit": 0.80,
  29 + "laser_z_rand": 0.05,
  30 + "laser_sigma_hit": 2,
  31 +
  32 +
  33 + "num_particles": 800
  34 +
  35 +
  36 +}
PA2_final2/logs/log_seeds3/seed_9/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 124,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 + "first_move_sigma_x": 2,
  14 + "first_move_sigma_y": 2,
  15 + "first_move_sigma_angle": 0.04,
  16 + "resample_sigma_x": 2,
  17 + "resample_sigma_y": 2,
  18 + "resample_sigma_angle": 0.04,
  19 +
  20 + "laser_z_hit": 0.80,
  21 + "laser_z_rand": 0.05,
  22 + "laser_sigma_hit": 2,
  23 +
  24 +
  25 + "num_particles": 800
  26 +
  27 +
  28 +}
PA2_final2/logs/log_seeds3/seed_9/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 1,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.04,
  17 + "resample_sigma_x": 2,
  18 + "resample_sigma_y": 2,
  19 + "resample_sigma_angle": 0.04,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/logs/log_seeds3/seed_9/metric_results.json View file @ b9aba98
  1 +{
  2 +"metric" : [2.0]
  3 +}
PA2_final2/logs/log_seeds3/seed_9/std_dev_results.json View file @ b9aba98
  1 +{
  2 +"std_dev_x" : [75.29445706760256]
  3 +}
  4 +{
  5 +"std_dev_y" : [55.166854597354295]
  6 +}
  7 +{
  8 +"std_dev_angle" : [1.823933683962769]
  9 +}
PA2_final2/logs/log_seeds3/seed_9/time_results.json View file @ b9aba98
  1 +{
  2 +"time_elapsed" : [0.05081304907798767]
  3 +}
PA2_final2/map/Other Maps/MAP_first.png View file @ b9aba98

5.01 KB

PA2_final2/map/stage.world View file @ b9aba98
... ... @@ -33,7 +33,7 @@
33 33 )
34 34  
35 35 # throw in a robot in the map
36   -robot( pose [ 125.0 90.0 0.0 0.0 ] name "robot" color "red")
  36 +robot( pose [ 225.0 15.0 0.0 0.0 ] name "robot" color "red")
37 37  
38 38 #FloorPlan Properties
39 39 define floorplan model
PA2_final2/map/stage1.world View file @ b9aba98
  1 +#Laser Ranger Properties
  2 +define topurg ranger
  3 +(
  4 + #Laser Sensor
  5 + #range => min & max ranger of a laser scan
  6 + #fov => angle of laser spread
  7 + #samples => number of laser scans
  8 +
  9 + sensor(
  10 + range [ 0.0 200.0 ]
  11 + fov 360
  12 + samples 100
  13 + )
  14 +
  15 + color "black"
  16 + size [ 0.05 0.05 0.1 ]
  17 +)
  18 +
  19 +#Robot Properties
  20 +define robot position
  21 +(
  22 + #DONT CHANGE SIZE, lot of random issues pop up if you try to increase it
  23 + size [0.35 0.35 0.25]
  24 + origin [0 0 0 0]
  25 + gui_nose 1
  26 + #Differential Turn
  27 + drive "diff"
  28 + #Min-Max velocities for x,y,z,theta
  29 + velocity_bounds [-40 40 -1 1 -1 1 -360 360 ]
  30 + acceleration_bounds [-1 1 -1 1 -1 1 -360 360]
  31 + #Laser sensor placed on the robot
  32 + topurg(pose [ 0.000 0.000 0 0.000 ])
  33 +)
  34 +
  35 +# throw in a robot in the map
  36 +robot( pose [ 125.0 90.0 0.0 0.0 ] name "robot" color "red")
  37 +
  38 +#FloorPlan Properties
  39 +define floorplan model
  40 +(
  41 + # sombre, sensible, artistic
  42 + color "gray30"
  43 +
  44 + # most maps will need a bounding box
  45 + boundary 1
  46 +
  47 + gui_nose 0
  48 + gui_grid 0
  49 +
  50 + gui_outline 0
  51 + gripper_return 0
  52 + fiducial_return 0
  53 + laser_return 1
  54 +)
  55 +
  56 +# set the resolution of the underlying raytrace model in meters
  57 +resolution 0.02
  58 +interval_sim 100 # simulation timestep in milliseconds
  59 +
  60 +#Window Properties
  61 +window
  62 +(
  63 + size [ 612.000 484.000 ]
  64 +
  65 + rotate [ 0.000 0.0 ]
  66 + scale 2.358
  67 +)
  68 +
  69 +# load an environment bitmap
  70 +floorplan
  71 +(
  72 + name "tutorial"
  73 + bitmap "MAP.png"
  74 + size [259.0 194.0 0.5]
  75 + pose [ 129.5 97.0 0.0 0.0 ]
  76 +)
PA2_final2/map/stage2.world View file @ b9aba98
1 1 #Laser Ranger Properties
2 2 define topurg ranger
3 3 (
4   - sensor(
5   - range [ 0.0 100.0 ]
  4 + #Laser Sensor
  5 + #range => min & max ranger of a laser scan
  6 + #fov => angle of laser spread
  7 + #samples => number of laser scans
  8 +
  9 + sensor(
  10 + range [ 0.0 200.0 ]
6 11 fov 360
7   - samples 1000
  12 + samples 100
8 13 )
  14 +
9 15 color "black"
10   - size [ 0.050 0.050 0.100 ]
  16 + size [ 0.05 0.05 0.1 ]
11 17 )
12 18  
13 19 #Robot Properties
14 20 define robot position
15 21 (
16 22 #DONT CHANGE SIZE, lot of random issues pop up if you try to increase it
17   - size [0.350 0.350 0.250]
18   - origin [0.000 0.000 0.000 0.000]
  23 + size [0.35 0.35 0.25]
  24 + origin [0 0 0 0]
19 25 gui_nose 1
  26 + #Differential Turn
20 27 drive "diff"
21   - velocity_bounds [-40 40 -1 1 -1 1 -360 360 ]
  28 + #Min-Max velocities for x,y,z,theta
  29 + velocity_bounds [-40 40 -1 1 -1 1 -360 360 ]
22 30 acceleration_bounds [-1 1 -1 1 -1 1 -360 360]
23   - topurg(pose [ 0.000 0.000 0.000 0.000 ])
  31 + #Laser sensor placed on the robot
  32 + topurg(pose [ 0.000 0.000 0 0.000 ])
24 33 )
25 34  
26   -# throw in a robot
27   -robot( pose [ 229.400 99.800 0.000 -180.000 ] name "robot" color "red")
  35 +# throw in a robot in the map
  36 +robot( pose [ 225.0 15.0 0.0 0.0 ] name "robot" color "red")
28 37  
29 38 #FloorPlan Properties
30 39 define floorplan model
31 40  
... ... @@ -51,9 +60,9 @@
51 60 #Window Properties
52 61 window
53 62 (
54   - size [ 612 484 ]
  63 + size [ 612.000 484.000 ]
55 64  
56   - rotate [ 0.000 0.000 ]
  65 + rotate [ 0.000 0.0 ]
57 66 scale 2.358
58 67 )
59 68  
... ... @@ -62,7 +71,7 @@
62 71 (
63 72 name "tutorial"
64 73 bitmap "MAP.png"
65   - size [259.000 194.000 0.000]
66   - pose [ 129.500 97.000 0.000 0.000 ]
  74 + size [259.0 194.0 0.5]
  75 + pose [ 129.5 97.0 0.0 0.0 ]
67 76 )
PA2_final2/map/stage3.world View file @ b9aba98
  1 +#Laser Ranger Properties
  2 +define topurg ranger
  3 +(
  4 + #Laser Sensor
  5 + #range => min & max ranger of a laser scan
  6 + #fov => angle of laser spread
  7 + #samples => number of laser scans
  8 +
  9 + sensor(
  10 + range [ 0.0 200.0 ]
  11 + fov 360
  12 + samples 100
  13 + )
  14 +
  15 + color "black"
  16 + size [ 0.05 0.05 0.1 ]
  17 +)
  18 +
  19 +#Robot Properties
  20 +define robot position
  21 +(
  22 + #DONT CHANGE SIZE, lot of random issues pop up if you try to increase it
  23 + size [0.35 0.35 0.25]
  24 + origin [0 0 0 0]
  25 + gui_nose 1
  26 + #Differential Turn
  27 + drive "diff"
  28 + #Min-Max velocities for x,y,z,theta
  29 + velocity_bounds [-40 40 -1 1 -1 1 -360 360 ]
  30 + acceleration_bounds [-1 1 -1 1 -1 1 -360 360]
  31 + #Laser sensor placed on the robot
  32 + topurg(pose [ 0.000 0.000 0 0.000 ])
  33 +)
  34 +
  35 +# throw in a robot in the map
  36 +robot( pose [ 225.0 15.0 0.0 0.0 ] name "robot" color "red")
  37 +
  38 +#FloorPlan Properties
  39 +define floorplan model
  40 +(
  41 + # sombre, sensible, artistic
  42 + color "gray30"
  43 +
  44 + # most maps will need a bounding box
  45 + boundary 1
  46 +
  47 + gui_nose 0
  48 + gui_grid 0
  49 +
  50 + gui_outline 0
  51 + gripper_return 0
  52 + fiducial_return 0
  53 + laser_return 1
  54 +)
  55 +
  56 +# set the resolution of the underlying raytrace model in meters
  57 +resolution 0.02
  58 +interval_sim 100 # simulation timestep in milliseconds
  59 +
  60 +#Window Properties
  61 +window
  62 +(
  63 + size [ 612.000 484.000 ]
  64 +
  65 + rotate [ 0.000 0.0 ]
  66 + scale 2.358
  67 +)
  68 +
  69 +# load an environment bitmap
  70 +floorplan
  71 +(
  72 + name "tutorial"
  73 + bitmap "MAP.png"
  74 + size [259.0 194.0 0.5]
  75 + pose [ 129.5 97.0 0.0 0.0 ]
  76 +)
PA2_final2/map/willow-erratic.world View file @ b9aba98
  1 +define block model
  2 +(
  3 + size [0.500 0.500 0.500]
  4 + gui_nose 0
  5 +)
  6 +
  7 +define topurg ranger
  8 +(
  9 + sensor(
  10 + range [ 0.0 30.0 ]
  11 + fov 270.25
  12 + samples 1081
  13 + )
  14 +
  15 + # generic model properties
  16 + color "black"
  17 + size [ 0.050 0.050 0.100 ]
  18 +)
  19 +
  20 +define erratic position
  21 +(
  22 + #size [0.415 0.392 0.25]
  23 + size [0.350 0.350 0.250]
  24 + origin [-0.050 0.000 0.000 0.000]
  25 + gui_nose 1
  26 + drive "diff"
  27 + topurg(pose [ 0.050 0.000 0.000 0.000 ])
  28 +)
  29 +
  30 +define floorplan model
  31 +(
  32 + # sombre, sensible, artistic
  33 + color "gray30"
  34 +
  35 + # most maps will need a bounding box
  36 + boundary 1
  37 +
  38 + gui_nose 0
  39 + gui_grid 0
  40 +
  41 + gui_outline 0
  42 + gripper_return 0
  43 + fiducial_return 0
  44 + laser_return 1
  45 +)
  46 +
  47 +# set the resolution of the underlying raytrace model in meters
  48 +resolution 0.02
  49 +
  50 +interval_sim 100 # simulation timestep in milliseconds
  51 +
  52 +
  53 +window
  54 +(
  55 + size [ 1295 744 ]
  56 +
  57 + rotate [ 0.000 -1.560 ]
  58 + scale 11.918
  59 +)
  60 +
  61 +# load an environment bitmap
  62 +floorplan
  63 +(
  64 + name "willow"
  65 + bitmap "MAP.png"
  66 + size [50.0 30.0 0.5]
  67 + pose [ 25.0 15.0 0.0 0.0 ]
  68 + #size [54.0 58.7 0.5]
  69 + #pose [ 0 0 0 0.000 ]
  70 +)
  71 +
  72 +# throw in a robot
  73 +erratic( pose [ 6 6 0 180.000 ] name "era" color "blue")
  74 +block( pose [ -13.924 25.020 0.000 180.000 ] color "red")
PA2_final2/scripts/basetruth.json View file @ b9aba98
  1 +{
  2 +"basetruth" : [19.0, 185.00000000000227]
  3 +}
PA2_final2/scripts/configuration.json View file @ b9aba98
1 1 {
2 2  
3   - "seed": 3,
  3 + "seed": 0,
4 4  
5 5 "move_list": [
6   - [0.0, 5.0,24],
7   - [90.0,10.0,1],
8   - [90.0,10.0,10],
9   - [-90.0,10.0,7],
10   - [0.0,5.0,1],
11   - [180.0,20.0,7],
12   - [0.0,5.0,3],
13   - [180.0,20.0,4],
14   - [90.0,20.0,4],
15   - [-90.0,10.0,3],
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
16 9 [90.0,10.0,4],
17 10 [0.0,5.0,1],
18 11 [-90.0,10.0,5]
19 12 ],
20 13  
  14 +
21 15 "first_move_sigma_x": 2,
22 16 "first_move_sigma_y": 2,
23 17 "first_move_sigma_angle": 0.08,
24   - "resample_sigma_x": 0.1,
25   - "resample_sigma_y": 0.1,
26   - "resample_sigma_angle": 0.02,
  18 + "resample_sigma_x": 1,
  19 + "resample_sigma_y": 1,
  20 + "resample_sigma_angle": 0.01,
27 21  
28 22 "laser_z_hit": 0.80,
29 23 "laser_z_rand": 0.05,
PA2_final2/scripts/configuration1.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 0,
  4 +
  5 + "move_list": [
  6 + [0.0, 5.0,24],
  7 + [90.0,10.0,1],
  8 + [90.0,10.0,10],
  9 + [-90.0,10.0,7],
  10 + [0.0,5.0,1],
  11 + [180.0,20.0,7],
  12 + [0.0,5.0,3],
  13 + [180.0,20.0,4],
  14 + [90.0,20.0,4],
  15 + [-90.0,10.0,3],
  16 + [90.0,10.0,4],
  17 + [0.0,5.0,1],
  18 + [-90.0,10.0,5]
  19 + ],
  20 +
  21 +
  22 + "first_move_sigma_x": 2,
  23 + "first_move_sigma_y": 2,
  24 + "first_move_sigma_angle": 0.08,
  25 + "resample_sigma_x": 1,
  26 + "resample_sigma_y": 1,
  27 + "resample_sigma_angle": 0.01,
  28 +
  29 + "laser_z_hit": 0.80,
  30 + "laser_z_rand": 0.05,
  31 + "laser_sigma_hit": 2,
  32 +
  33 +
  34 + "num_particles": 800
  35 +
  36 +
  37 +}
PA2_final2/scripts/configuration2.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 100,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [90.0, 10.0, 4],
  9 + [-90.0,10.0,5],
  10 + [90.0,10.0,5]
  11 + ],
  12 +
  13 +
  14 + "first_move_sigma_x": 2,
  15 + "first_move_sigma_y": 2,
  16 + "first_move_sigma_angle": 0.08,
  17 + "resample_sigma_x": 1,
  18 + "resample_sigma_y": 1,
  19 + "resample_sigma_angle": 0.01,
  20 +
  21 + "laser_z_hit": 0.80,
  22 + "laser_z_rand": 0.05,
  23 + "laser_sigma_hit": 2,
  24 +
  25 +
  26 + "num_particles": 800
  27 +
  28 +
  29 +}
PA2_final2/scripts/configuration3.json View file @ b9aba98
  1 +{
  2 +
  3 + "seed": 0,
  4 +
  5 + "move_list": [
  6 + [90.0, 5.0, 18],
  7 + [90.0, 10.0, 16],
  8 + [-90.0, 10.0, 3],
  9 + [90.0,10.0,4],
  10 + [0.0,5.0,1],
  11 + [-90.0,10.0,5]
  12 + ],
  13 +
  14 +
  15 + "first_move_sigma_x": 2,
  16 + "first_move_sigma_y": 2,
  17 + "first_move_sigma_angle": 0.08,
  18 + "resample_sigma_x": 1,
  19 + "resample_sigma_y": 1,
  20 + "resample_sigma_angle": 0.01,
  21 +
  22 + "laser_z_hit": 0.80,
  23 + "laser_z_rand": 0.05,
  24 + "laser_sigma_hit": 2,
  25 +
  26 +
  27 + "num_particles": 800
  28 +
  29 +
  30 +}
PA2_final2/scripts/laser_model.py View file @ b9aba98
  1 +#!/usr/bin/env python
  2 +import rospy
  3 +import numpy as np
  4 +import random as r
  5 +from math import *
  6 +from read_config import read_config
  7 +
  8 +from sensor_msgs.msg import LaserScan
  9 +
  10 +class laserModel():
  11 + def __init__(self):
  12 + rospy.init_node("laser_model")
  13 + self.config = read_config()
  14 + r.seed(self.config['seed'])
  15 + self.laser_sigma_hit = self.config['laser_sigma_hit']
  16 + rospy.Subscriber('original_scan', LaserScan, self.scan_callback)
  17 + self.base_scan_pub = rospy.Publisher('base_scan', LaserScan, queue_size = 10)
  18 + rospy.spin()
  19 +
  20 + def scan_callback(self, laser_scan):
  21 + self.base_scan_msg = LaserScan()
  22 + self.base_scan_msg.header = laser_scan.header
  23 + self.base_scan_msg.angle_min = laser_scan.angle_min
  24 + self.base_scan_msg.angle_max = laser_scan.angle_max
  25 + self.base_scan_msg.angle_increment = laser_scan.angle_increment
  26 + self.base_scan_msg.time_increment = laser_scan.time_increment
  27 + self.base_scan_msg.scan_time = laser_scan.scan_time
  28 + self.base_scan_msg.range_min = laser_scan.range_min
  29 + self.base_scan_msg.range_max = laser_scan.range_max
  30 + self.base_scan_msg.intensities = laser_scan.intensities
  31 + for i in range(len(laser_scan.ranges)):
  32 + if laser_scan.ranges[i] == laser_scan.range_max:
  33 + self.base_scan_msg.ranges.append(laser_scan.ranges[i])
  34 + else:
  35 + self.base_scan_msg.ranges.append(laser_scan.ranges[i] + ceil(r.gauss(0, self.laser_sigma_hit)*100.)/100.)
  36 + self.base_scan_pub.publish(self.base_scan_msg)
  37 +
  38 +
  39 +if __name__ == '__main__':
  40 + lm = laserModel()
PA2_final2/scripts/max_limit_results.json View file @ b9aba98
  1 +{
  2 +"max_limit_percentage" : 100.0
  3 +}
PA2_final2/scripts/metric_results.json View file @ b9aba98
1 1 {
2   -"metric" : [2.0, 1.7067430792770657, 1.4983150168217945, 2.4730210322669306, 1.6974163987510016, 1.6573910336913142, 1.6383895045301693, 1.5022194981557067, 6.252232915514105, 1.279662391939394, 2.1745364017745326, 13.453712172124224, 11.875753998752808, 22.921697985100863]
  2 +"metric" : [2.0, 2.356703674805745, 6.635552032937232, 22.85081266976654, 26.7714287771245, 32.929158732078136, 52.37025846671281]
3 3 }
PA2_final2/scripts/robot.py View file @ b9aba98
... ... @@ -33,20 +33,22 @@
33 33  
34 34 def sense(self, scan_msg, likelihood_field):
35 35 xs, ys = self.laser_range_end(scan_msg)
36   - #total_prob = 0
37   - total_prob = 1 # BIAS
  36 + total_prob = 0
  37 + #total_prob = 1
  38 + bias = 0.5
38 39  
39   - for i in range(0, len(xs), 5):
  40 + for i in range(0, len(xs), 10):
40 41 likelihood = likelihood_field.get_cell(xs[i], ys[i])
41 42 if np.isnan(likelihood):
42 43 likelihood = 0
43 44 pz=(laser_z_hit * likelihood + laser_z_rand)
44 45 #total_prob += pz
  46 + #total_prob += pz*pz
45 47 total_prob += pz*pz*pz
46 48 #total_prob *= pz
47 49  
48 50 if len(xs)>0:
49   - self.weight *= total_prob
  51 + self.weight *= (total_prob+bias)
50 52 return self.weight
51 53  
52 54 def laser_range_end(self, scan_msg):
... ... @@ -57,7 +59,8 @@
57 59 xs = []
58 60 ys = []
59 61  
60   - for i in range(len(ranges)/4, 3*len(ranges)/4):
  62 + #for i in range(5*len(ranges)/8, 7*len(ranges)/8):
  63 + for i in range(len(ranges)):
61 64 if ranges[i] == scan_msg.range_max:
62 65 continue
63 66 #print "Obstacle Seen"
... ... @@ -270,6 +273,14 @@
270 273 if (j == 0 and s < prob_pos[j]) or (s > prob_pos[j-1] and s < prob_pos[j]):
271 274  
272 275 # Add resample Noise
  276 + if self.first_move == 1 :
  277 + noise = ceil(r.gauss(0, self.first_move_sigma_x)*100.)/100. #2m std dev
  278 + self.particles[j].x += noise
  279 + noise = ceil(r.gauss(0, self.first_move_sigma_y)*100.)/100. #2m std dev
  280 + self.particles[j].y += noise
  281 + noise = ceil(r.gauss(0, self.first_move_sigma_angle)*100.)/100. #4.5 degree std dev per metre
  282 + self.particles[j].theta += noise
  283 + self.particles[j].pose = get_pose(self.particles[j].x, self.particles[j].y, self.particles[j].theta)
273 284 if self.first_move != 1 :
274 285 noise = ceil(r.gauss(0, self.resample_sigma_x)*100.)/100. #0.3m std dev
275 286 self.particles[j].x += noise
PA2_final2/scripts/robot.py~ View file @ b9aba98
  1 +#!/usr/bin/env python
  2 +
  3 +import rospy
  4 +import random
  5 +import math
  6 +import numpy as np
  7 +from read_config import read_config
  8 +from nav_msgs.msg import OccupancyGrid
  9 +from std_msgs.msg import String, Float32, Bool
  10 +from geometry_msgs.msg import Pose, PoseArray
  11 +from map_utils import Map
  12 +from helper_functions import get_pose, move_function
  13 +from sklearn.neighbors import KDTree
  14 +from sensor_msgs.msg import LaserScan
  15 +
  16 +class Particle():
  17 + def __init__(self, _x, _y, _theta):
  18 + self.x = _x
  19 + self.y = _y
  20 + self.theta = _theta
  21 +
  22 +class Robot():
  23 +
  24 + def __init__(self):
  25 + """Read config file and setup ROS things"""
  26 + self.config = read_config()
  27 + rospy.init_node("robot")
  28 +
  29 + self.map_service = rospy.Subscriber(
  30 + "/map",
  31 + OccupancyGrid,
  32 + self.map_service_callback
  33 + )
  34 + self.base_scan_service = rospy.Subscriber(
  35 + "/base_scan",
  36 + LaserScan,
  37 + self.scan_service_callback
  38 + )
  39 + # result publisher
  40 + self.particle_publisher = rospy.Publisher(
  41 + "/particlecloud",
  42 + PoseArray,
  43 + queue_size = 10
  44 + )
  45 + self.likelihood_publisher = rospy.Publisher(
  46 + "/likelihood_field",
  47 + OccupancyGrid,
  48 + queue_size = 10,
  49 + latch = True
  50 + )
  51 + # get the constants
  52 + move_list = self.config['move_list']
  53 + first_move_sigma_x = self.config['first_move_sigma_x']
  54 + first_move_sigma_y = self.config['first_move_sigma_y']
  55 + first_move_sigma_angle = self.config['first_move_sigma_angle']
  56 + resample_sigma_x = self.config['resample_sigma_x']
  57 + resample_sigma_y = self.config['resample_sigma_y']
  58 + resample_sigma_angle = self.config['resample_sigma_angle']
  59 + self.laser_z_hit = self.config['laser_z_hit']
  60 + self.laser_z_rand = self.config['laser_z_rand']
  61 + self.laser_sigma_hit = self.config['laser_sigma_hit']
  62 + self.num_particles = self.config['num_particles']
  63 + # initialize some variables
  64 + move_count = 1
  65 + self.map_setup = 0
  66 + rospy.sleep(1)
  67 + rospy.spin()
  68 +
  69 + if self.map_setup == 1:
  70 + # move the robot first time
  71 + a = move_list[0][0]
  72 + d = move_list[0][1]
  73 + n = move_list[0][2]
  74 + move_function(a, 0)
  75 + for i in range(0, n):
  76 + move_function(0, d)
  77 +
  78 + # motion model for particle filter
  79 + for i in range(0, self.num_particles):
  80 + # decompose motion command to get dx and dy
  81 + dx = n * d * math.cos(math.radians(a + self.particles[i].theta))
  82 + dy = n * d * math.sin(math.radians(a + self.particles[i].theta))
  83 + self.particles[i].x += dx + np.random.normal(0, first_move_sigma_x, 1)[0]
  84 + self.particles[i].y += dy + np.random.normal(0, first_move_sigma_y, 1)[0]
  85 + self.particles[i].theta += a + np.random.normal(0, first_move_sigma_angle, 1)[0]
  86 +
  87 + # scan and move
  88 + while move_count <= len(move_list):
  89 + weights_sum = 0.0
  90 + for i in range(0, len(self.particles)):
  91 + cur_angle = self.laserScan.angle_min + self.particles[i].theta
  92 + # for each particle, calculate its p total and weight
  93 + p_tot = 0.0
  94 + for j in range(0, len(self.laserScan.ranges)):
  95 + dx = self.laserScan.ranges[j] * math.cos(cur_angle)
  96 + dy = self.laserScan.ranges[j] * math.sin(cur_angle)
  97 + x = self.particles[i].x + dx
  98 + y = self.particles[i].y + dy
  99 + lp = self.likelihoods.get_cell(x, y)
  100 + p_z = self.laser_z_hit * lp + self.laser_z_rand
  101 + p_tot += p_z
  102 + cur_angle += self.laserScan.angle_increment
  103 + self.weights[i] *= p_tot
  104 + weights_sum += self.weights[i]
  105 +
  106 + # normalize the weights
  107 + for i in range(0, len(self.particles)):
  108 + self.weights[i] /= weights_sum
  109 +
  110 + # resample particles
  111 + resample_index = []
  112 + pointer = 1.0 / self.num_particles
  113 + cur_weight = 0
  114 + for i in range(0, len(self.particles)):
  115 + cur_weight += self.weights[i]
  116 + while pointer <= cur_weight:
  117 + resample_index.append(i)
  118 + pointer += 1.0 / self.num_particles
  119 +
  120 + new_particles = []
  121 +
  122 + for i in range(0, self.num_particles):
  123 + idx = resample_index[i]
  124 + new_x = self.particles[idx].x + np.random.normal(0, resample_sigma_x, 1)[0]
  125 + new_y = self.particles[idx].y + np.random.normal(0, resample_sigma_y, 1)[0]
  126 + new_theta = particles[idx].theta + np.random.normal(0, resample_sigma_angle, 1)[0]
  127 + new_particles.append(Particle(new_x, new_y, new_theta))
  128 + poses[i] = get_pose(new_x, new_y, new_theta)
  129 +
  130 + self.particles = new_particles
  131 +
  132 + # publish the particles after rasampling
  133 + poseArray = PoseArray()
  134 + poseArray.poses = poses
  135 + self.particle_publisher.publish(poseArray)
  136 +
  137 + # check whether there's any more available move
  138 + if move_count == len(move_list):
  139 + rospy.signal_shutdown("No more move")
  140 +
  141 + # move the robot
  142 + a = move_list[move_count][0]
  143 + d = move_list[move_count][1]
  144 + n = move_list[move_count][2]
  145 + move_function(a, 0)
  146 + for i in range(0, n):
  147 + move_function(0, d)
  148 +
  149 + # motion model for particle filter
  150 + for i in range(0, self.num_particles):
  151 + # decompose motion command to get dx and dy
  152 + dx = n * d * math.cos(math.radians(a + self.particles[i].theta))
  153 + dy = n * d * math.sin(math.radians(a + self.particles[i].theta))
  154 + self.particles[i].x += dx
  155 + self.particles[i].y += dy
  156 + self.particles[i].theta += a
  157 +
  158 + move_count += 1
  159 +
  160 + def map_service_callback(self, occupancyGrid):
  161 + """Callback function for the map service subscriber.
  162 + """
  163 + map_data = Map(occupancyGrid)
  164 + self.likelihoods = Map(occupancyGrid)
  165 +
  166 + width = map_data.width
  167 + height = map_data.height
  168 + self.weights = []
  169 + self.particles = []
  170 + poses = []
  171 +
  172 + # get n random particles
  173 + random_numbers = np.random.random((self.num_particles, 3))
  174 + for i in range(0, self.num_particles):
  175 + cur_particle = Particle(random_numbers[i][0] * width, random_numbers[i][1] * height, random_numbers[i][2] * 360)
  176 + self.particles.append(cur_particle)
  177 + poses.append(get_pose(cur_particle.x, cur_particle.y, cur_particle.theta))
  178 + self.weights.append(1.0 / self.num_particles)
  179 +
  180 + # publish initial particles
  181 + poseArray = PoseArray()
  182 + poseArray.poses = poses
  183 + self.particle_publisher.publish(poseArray)
  184 +
  185 + # Construct the Likelihood Field
  186 + obstacles = []
  187 + for i in range(0, height):
  188 + for j in range(0, width):
  189 + if map_data.grid[i][j] == 1:
  190 + obstacles.append([i, j])
  191 +
  192 + kdtree = KDTree(obstacles)
  193 +
  194 + for i in range(0, height):
  195 + for j in range(0, width):
  196 + dist, ind = kdtree.query([i, j], k = 1)
  197 + min_dist_square = dist[0] * dist[0]
  198 + val = self.laser_z_hit * self.gaussian(min_dist_square, 0, self.laser_sigma_hit) + self.laser_z_rand
  199 + self.likelihoods.set_cell(i, j, val)
  200 +
  201 + # publish the likelihood
  202 + self.likelihood_publisher.publish(self.likelihoods.to_message())
  203 +
  204 + self.map_setup = 1
  205 +
  206 + def scan_service_callback(self, _laserScan):
  207 + self.laserScan = _laserScan
  208 +
  209 + def gaussian(self, x, mu, sigma):
  210 + a = 1 / (math.sqrt(2 * math.pi) * sigma)
  211 + return a * math.exp(-(x-mu)*(x-mu) / (2*sigma*sigma))
  212 +
  213 +
  214 +
  215 +if __name__ == '__main__':
  216 + rs = Robot()
PA2_final2/scripts/std_dev_results.json View file @ b9aba98
1 1 {
2   -"std_dev_x" : [75.29445706760256, 110.4656340550364, 111.43968024079918, 40.97831452669745, 43.64283268690735, 43.40163063156963, 36.941909447821075, 26.392394670257715, 13.858259198780601, 99.59084201559187, 84.24856040749864, 5.810436782944739, 6.68665740377187, 7.277817790273729]
  2 +"std_dev_x" : [119.70247120780475, 94.04370611139275, 21.485272285004346, 18.397058179766205, 4.828066929638059, 3.745806085128746, 3.701635409800251]
3 3 }
4 4 {
5   -"std_dev_y" : [55.166854597354295, 51.33974432072303, 45.68346449600554, 23.289640742281268, 98.31339589212018, 104.71684957022526, 96.11816631822906, 118.32776213442683, 12.091742044327376, 18.750450360329523, 31.200370293939947, 4.074427465075527, 4.508154573157117, 4.125298083229201]
  5 +"std_dev_y" : [100.40326940808279, 31.855508931835285, 12.437092106547519, 9.060726673609949, 3.3967558983216, 2.9847509824228107, 3.3052978016215797]
6 6 }
7 7 {
8   -"std_dev_angle" : [1.823933683962769, 1.9393755833944504, 2.5216470116549, 3.7020312608645707, 2.1984436697315477, 2.187113070524559, 2.491977268746382, 2.4906925725330584, 1.5495309415801248, 5.086332577696456, 1.6061902382763953, 6.064114392873878, 6.054213755064956, 0.15504319460925553]
  8 +"std_dev_angle" : [1.8512396722819926, 2.36363676415545, 5.410265744269727, 0.12153398916464855, 6.062400208335854, 5.988920746591626, 0.08862907665405621]
9 9 }
PA2_final2/scripts/test_metric.py View file @ b9aba98
... ... @@ -7,6 +7,7 @@
7 7 import json
8 8 import tf
9 9 from math import *
  10 +from read_config import read_config
10 11  
11 12 class RobotLogger():
12 13 def __init__(self):
... ... @@ -32,6 +33,8 @@
32 33 self.handle_shutdown
33 34 )
34 35 self.init_files()
  36 + self.config = read_config()
  37 + self.num_particles = self.config['num_particles']
35 38 rospy.spin()
36 39  
37 40 def init_files(self):
... ... @@ -131,6 +134,18 @@
131 134  
132 135 self.update_metric()
133 136  
  137 + #particles_meeting_max_limit
  138 + count = 0.0
  139 + for particle_index in range(len(self.particlecloud_poses)):
  140 + pose = self.particlecloud_poses[particle_index]
  141 + diff_x_value = (pose.position.x - self.base_truth_x)
  142 + diff_y_value = (pose.position.y - self.base_truth_y)
  143 + diff_dist_val = sqrt(diff_x_value**2 + diff_y_value**2)
  144 + if (diff_dist_val <= 55):
  145 + count += 1
  146 + #percentage
  147 + self.particles_meeting_max_limit = float(count*100.0/self.num_particles)
  148 +
134 149 if message.data:
135 150 with open('time_results.json', 'w') as time:
136 151 time.write('{\n"time_elapsed" : ')
... ... @@ -150,6 +165,17 @@
150 165 metric_file.write('{\n"metric" : ')
151 166 json.dump(self.metric_data, metric_file)
152 167 metric_file.write('\n} \n')
  168 + with open('max_limit_results.json', 'w') as max_limit_file:
  169 + max_limit_file.write('{\n"max_limit_percentage" : ')
  170 + json.dump(self.particles_meeting_max_limit, max_limit_file)
  171 + max_limit_file.write('\n} \n')
  172 + with open('basetruth.json', 'w') as bt_file:
  173 + base_truth = []
  174 + base_truth.append(self.base_truth_x)
  175 + base_truth.append(self.base_truth_y)
  176 + bt_file.write('{\n"basetruth" : ')
  177 + json.dump(base_truth, bt_file)
  178 + bt_file.write('\n} \n')
153 179  
154 180  
155 181 if __name__ == '__main__':
PA2_final2/scripts/time_results.json View file @ b9aba98
1 1 {
2   -"time_elapsed" : [0.051666666666666666, 2.228333333333333, 2.4883333333333337, 3.6166666666666667, 4.451666666666667, 4.558333333333334, 5.58, 5.878333333333333, 6.635000000000001, 7.166666666666667, 7.611666666666666, 8.135, 8.245, 8.908333333333333]
  2 +"time_elapsed" : [0.04720960184931755, 1.9634521342813969, 3.6755722165107727, 4.140649318695068, 4.699574884027243, 4.812452383339405, 5.501383017748594]
3 3 }