From 354e112898e10a31ae4e6d2a5e91aea101a33df9 Mon Sep 17 00:00:00 2001 From: gfuse Date: Mon, 4 Oct 2021 19:01:54 +0200 Subject: [PATCH] change the open_cl --- GPU_version/vio/depth_filter_log.txt | 136 -- GPU_version/vio/frame_handler_log.txt | 1977 +++--------------- GPU_version/vio/include/vio/cl_class.h | 141 +- GPU_version/vio/param/vo_fast.yaml | 4 +- GPU_version/vio/src/cl_class.cpp | 9 +- GPU_version/vio/src/feature_detection.cpp | 44 +- GPU_version/vio/src/frame_handler_mono.cpp | 33 - GPU_version/vio/src/sparse_img_align_gpu.cpp | 85 +- GPU_version/vio/test.png | Bin 0 -> 173964 bytes 9 files changed, 410 insertions(+), 2019 deletions(-) create mode 100644 GPU_version/vio/test.png diff --git a/GPU_version/vio/depth_filter_log.txt b/GPU_version/vio/depth_filter_log.txt index bfe23b7..e69de29 100755 --- a/GPU_version/vio/depth_filter_log.txt +++ b/GPU_version/vio/depth_filter_log.txt @@ -1,136 +0,0 @@ -[11:32:26.215] New key frame -[11:32:26.215] BA loop run -[11:32:26.217] init error: 8.472095 -[11:32:26.222] end error: 0.002451 -[11:32:26.332] New key frame -[11:32:26.332] BA loop run -[11:32:26.334] init error: 12.629072 -[11:32:26.340] end error: 2.173331 -[11:32:26.468] New key frame -[11:32:26.468] BA loop run -[11:32:26.470] init error: 65.010863 -[11:32:26.477] end error: 1.928134 -[11:32:26.617] New key frame -[11:32:26.617] BA loop run -[11:32:26.619] init error: 111.982387 -[11:32:26.627] end error: 8.215693 -[11:32:26.780] New key frame -[11:32:26.780] BA loop run -[11:32:26.782] init error: 133637.531428 -[11:32:26.789] end error: 11.632299 -[11:32:27.443] New key frame -[11:32:27.443] BA loop run -[11:32:27.447] init error: 1319.422136 -[11:32:27.455] end error: 12.848739 -[11:32:27.621] New key frame -[11:32:27.621] BA loop run -[11:32:27.625] init error: 182.371153 -[11:32:27.641] end error: 13.471113 -[11:32:27.930] New key frame -[11:32:27.930] BA loop run -[11:32:27.935] init error: 281.210624 -[11:32:27.952] end error: 70.606181 -[11:32:28.077] New key frame -[11:32:28.077] BA loop run -[11:32:28.082] init error: 309.023063 -[11:32:28.422] end error: 23.878624 -[11:32:28.430] New key frame -[11:32:28.430] BA loop run -[11:32:28.440] init error: 399.805659 -[11:32:29.963] end error: 21.797671 -[11:32:29.976] New key frame -[11:32:29.976] BA loop run -[11:32:29.984] init error: 10406.282878 -[11:32:30.266] end error: 27.018722 -[11:32:30.497] New key frame -[11:32:30.497] BA loop run -[11:32:30.505] init error: 306.484531 -[11:32:30.770] end error: 29.021864 -[11:32:30.843] New key frame -[11:32:30.843] BA loop run -[11:32:30.868] init error: 218.967075 -[11:32:31.623] end error: 38.436167 -[11:32:31.642] New key frame -[11:32:31.642] BA loop run -[11:32:31.668] init error: 242.205017 -[11:32:31.915] end error: 39.613393 -[11:32:32.126] New key frame -[11:32:32.126] BA loop run -[11:32:32.137] init error: 1068.056513 -[11:32:32.471] end error: 32.717972 -[11:32:32.628] New key frame -[11:32:32.628] BA loop run -[11:32:32.640] init error: 205.632654 -[11:32:33.290] end error: 46.394407 -[11:32:33.307] New key frame -[11:32:33.307] BA loop run -[11:32:33.327] init error: 257.984168 -[11:32:34.235] end error: 45.118705 -[11:32:34.253] New key frame -[11:32:34.253] BA loop run -[11:32:34.269] init error: 378.196667 -[11:32:35.135] end error: 72.485312 -[11:32:35.152] New key frame -[11:32:35.152] BA loop run -[11:32:35.166] init error: 2940.286773 -[11:32:36.051] end error: 70.470916 -[11:32:36.064] New key frame -[11:32:36.064] BA loop run -[11:32:36.098] init error: 175.651875 -[11:32:36.564] end error: 51.774350 -[11:32:36.576] New key frame -[11:32:36.576] BA loop run -[11:32:36.594] init error: 212.690168 -[11:32:37.025] end error: 60.040802 -[11:32:37.035] New key frame -[11:32:37.035] BA loop run -[11:32:37.065] init error: 224.779653 -[11:32:37.748] end error: 50.944995 -[11:32:37.762] New key frame -[11:32:37.762] BA loop run -[11:32:37.799] init error: 144.458647 -[11:32:38.281] end error: 55.943794 -[11:32:38.292] New key frame -[11:32:38.292] BA loop run -[11:32:38.308] init error: 417.348226 -[11:32:38.776] end error: 65.937311 -[11:32:38.793] New key frame -[11:32:38.793] BA loop run -[11:32:38.826] init error: 321.374078 -[11:32:39.508] end error: 117.666568 -[11:32:39.522] New key frame -[11:32:39.522] BA loop run -[11:32:39.560] init error: 582.482623 -[11:32:40.106] end error: 56.439056 -[11:32:40.120] New key frame -[11:32:40.120] BA loop run -[11:32:40.145] init error: 406.636760 -[11:32:40.672] end error: 56.901814 -[11:32:40.685] New key frame -[11:32:40.685] BA loop run -[11:32:40.728] init error: 855.372149 -[11:32:41.341] end error: 65.671640 -[11:32:41.357] New key frame -[11:32:41.357] BA loop run -[11:32:41.397] init error: 587.088866 -[11:32:41.858] end error: 114.055639 -[11:32:41.936] New key frame -[11:32:41.936] BA loop run -[11:32:41.963] init error: 439.136273 -[11:32:42.631] end error: 63.348724 -[11:32:42.646] New key frame -[11:32:42.646] BA loop run -[11:32:42.681] init error: 661.332414 -[11:32:43.163] end error: 88.189274 -[11:32:43.327] New key frame -[11:32:43.327] BA loop run -[11:32:43.341] init error: 526.133967 -[11:32:44.023] end error: 79.628375 -[11:32:44.038] New key frame -[11:32:44.038] BA loop run -[11:32:44.060] init error: 490.175656 -[11:32:44.972] end error: 50.982413 -[11:32:44.982] New key frame -[11:32:44.982] BA loop run -[11:32:45.005] init error: 610.616898 -[11:32:45.434] end error: 57.851118 diff --git a/GPU_version/vio/frame_handler_log.txt b/GPU_version/vio/frame_handler_log.txt index 6ee0ce5..bbab24c 100755 --- a/GPU_version/vio/frame_handler_log.txt +++ b/GPU_version/vio/frame_handler_log.txt @@ -1,1704 +1,273 @@ -[11:32:17.330] Init: frame zero: 0.000000, 0.000000 0.000000 -[11:32:17.330] Init: Selected first frame. -[11:32:17.330] frame process finished the id is: 0 the obs is:0 -[11:32:17.354] Init: px average disparity is:0.096920 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:17.354] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:17.354] frame process finished the id is: 1 the obs is:0 -[11:32:17.448] Init: px average disparity is:0.120159 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:17.448] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:17.448] frame process finished the id is: 2 the obs is:0 -[11:32:17.549] Init: px average disparity is:0.166353 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:17.549] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:17.549] frame process finished the id is: 3 the obs is:0 -[11:32:17.650] Init: px average disparity is:0.191240 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:17.650] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:17.650] frame process finished the id is: 4 the obs is:0 -[11:32:17.746] Init: px average disparity is:0.207745 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:17.746] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:17.746] frame process finished the id is: 5 the obs is:0 -[11:32:17.854] Init: px average disparity is:0.227178 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:17.854] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:17.854] frame process finished the id is: 6 the obs is:0 -[11:32:17.956] Init: px average disparity is:0.236689 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:17.956] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:17.956] frame process finished the id is: 7 the obs is:0 -[11:32:18.057] Init: px average disparity is:0.269724 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.057] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.057] frame process finished the id is: 8 the obs is:0 -[11:32:18.159] Init: px average disparity is:0.279740 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.159] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.159] frame process finished the id is: 9 the obs is:0 -[11:32:18.259] Init: px average disparity is:0.324433 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.259] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.259] frame process finished the id is: 10 the obs is:0 -[11:32:18.359] Init: px average disparity is:0.332425 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.359] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.359] frame process finished the id is: 11 the obs is:0 -[11:32:18.458] Init: px average disparity is:0.360695 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.458] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.459] frame process finished the id is: 12 the obs is:0 -[11:32:18.560] Init: px average disparity is:0.331429 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.560] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.560] frame process finished the id is: 13 the obs is:0 -[11:32:18.658] Init: px average disparity is:0.364890 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.658] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.658] frame process finished the id is: 14 the obs is:0 -[11:32:18.757] Init: px average disparity is:0.336525 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.757] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.757] frame process finished the id is: 15 the obs is:0 -[11:32:18.857] Init: px average disparity is:0.393741 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.857] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.857] frame process finished the id is: 16 the obs is:0 -[11:32:18.958] Init: px average disparity is:0.365818 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:18.958] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:18.958] frame process finished the id is: 17 the obs is:0 -[11:32:19.056] Init: px average disparity is:0.362293 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.056] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.056] frame process finished the id is: 18 the obs is:0 -[11:32:19.158] Init: px average disparity is:0.361204 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.158] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.158] frame process finished the id is: 19 the obs is:0 -[11:32:19.246] Init: px average disparity is:0.348439 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.246] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.246] frame process finished the id is: 20 the obs is:0 -[11:32:19.337] Init: px average disparity is:0.350235 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.337] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.337] frame process finished the id is: 21 the obs is:0 -[11:32:19.458] Init: px average disparity is:0.355781 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.458] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.458] frame process finished the id is: 22 the obs is:0 -[11:32:19.559] Init: px average disparity is:0.350137 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.559] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.559] frame process finished the id is: 23 the obs is:0 -[11:32:19.657] Init: px average disparity is:0.351329 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.657] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.657] frame process finished the id is: 24 the obs is:0 -[11:32:19.757] Init: px average disparity is:0.309508 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.757] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.757] frame process finished the id is: 25 the obs is:0 -[11:32:19.858] Init: px average disparity is:0.347856 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.858] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.858] frame process finished the id is: 26 the obs is:0 -[11:32:19.959] Init: px average disparity is:0.323454 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:19.959] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:19.959] frame process finished the id is: 27 the obs is:0 -[11:32:20.056] Init: px average disparity is:0.334123 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.056] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.057] frame process finished the id is: 28 the obs is:0 -[11:32:20.161] Init: px average disparity is:0.373803 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.161] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.161] frame process finished the id is: 29 the obs is:0 -[11:32:20.242] Init: px average disparity is:0.323537 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.243] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.243] frame process finished the id is: 30 the obs is:0 -[11:32:20.338] Init: px average disparity is:0.339853 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.338] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.338] frame process finished the id is: 31 the obs is:0 -[11:32:20.440] Init: px average disparity is:0.355549 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.440] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.440] frame process finished the id is: 32 the obs is:0 -[11:32:20.538] Init: px average disparity is:0.327988 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.538] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.538] frame process finished the id is: 33 the obs is:0 -[11:32:20.638] Init: px average disparity is:0.334005 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.638] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.638] frame process finished the id is: 34 the obs is:0 -[11:32:20.739] Init: px average disparity is:0.329450 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.739] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.739] frame process finished the id is: 35 the obs is:0 -[11:32:20.841] Init: px average disparity is:0.353743 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.841] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.841] frame process finished the id is: 36 the obs is:0 -[11:32:20.937] Init: px average disparity is:0.325713 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:20.937] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:20.937] frame process finished the id is: 37 the obs is:0 -[11:32:21.038] Init: px average disparity is:0.336127 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.038] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.038] frame process finished the id is: 38 the obs is:0 -[11:32:21.141] Init: px average disparity is:0.339370 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.141] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.141] frame process finished the id is: 39 the obs is:0 -[11:32:21.237] Init: px average disparity is:0.341702 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.237] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.237] frame process finished the id is: 40 the obs is:0 -[11:32:21.422] Init: px average disparity is:0.322163 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.422] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.422] frame process finished the id is: 41 the obs is:0 -[11:32:21.446] Init: px average disparity is:0.327227 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.446] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.446] frame process finished the id is: 42 the obs is:0 -[11:32:21.556] Init: px average disparity is:0.337917 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.556] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.556] frame process finished the id is: 43 the obs is:0 -[11:32:21.655] Init: px average disparity is:0.347184 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.656] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.656] frame process finished the id is: 44 the obs is:0 -[11:32:21.757] Init: px average disparity is:0.345335 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.757] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.757] frame process finished the id is: 45 the obs is:0 -[11:32:21.857] Init: px average disparity is:0.349314 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.857] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.857] frame process finished the id is: 46 the obs is:0 -[11:32:21.959] Init: px average disparity is:0.325428 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:21.959] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:21.959] frame process finished the id is: 47 the obs is:0 -[11:32:22.057] Init: px average disparity is:0.333423 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.057] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.057] frame process finished the id is: 48 the obs is:0 -[11:32:22.157] Init: px average disparity is:0.322207 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.157] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.157] frame process finished the id is: 49 the obs is:0 -[11:32:22.259] Init: px average disparity is:0.332989 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.259] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.259] frame process finished the id is: 50 the obs is:0 -[11:32:22.357] Init: px average disparity is:0.326103 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.357] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.357] frame process finished the id is: 51 the obs is:0 -[11:32:22.457] Init: px average disparity is:0.338467 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.457] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.457] frame process finished the id is: 52 the obs is:0 -[11:32:22.558] Init: px average disparity is:0.351026 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.558] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.558] frame process finished the id is: 53 the obs is:0 -[11:32:22.658] Init: px average disparity is:0.344845 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.658] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.658] frame process finished the id is: 54 the obs is:0 -[11:32:22.757] Init: px average disparity is:0.332508 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.757] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.757] frame process finished the id is: 55 the obs is:0 -[11:32:22.857] Init: px average disparity is:0.340312 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.858] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.858] frame process finished the id is: 56 the obs is:0 -[11:32:22.956] Init: px average disparity is:0.359988 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:22.956] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:22.956] frame process finished the id is: 57 the obs is:0 -[11:32:23.058] Init: px average disparity is:0.342481 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.058] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.058] frame process finished the id is: 58 the obs is:0 -[11:32:23.157] Init: px average disparity is:0.336252 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.157] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.157] frame process finished the id is: 59 the obs is:0 -[11:32:23.258] Init: px average disparity is:0.332147 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.258] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.258] frame process finished the id is: 60 the obs is:0 -[11:32:23.360] Init: px average disparity is:0.330074 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.360] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.360] frame process finished the id is: 61 the obs is:0 -[11:32:23.462] Init: px average disparity is:0.344951 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.462] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.462] frame process finished the id is: 62 the obs is:0 -[11:32:23.554] Init: px average disparity is:0.336023 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.554] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.554] frame process finished the id is: 63 the obs is:0 -[11:32:23.657] Init: px average disparity is:0.336179 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.657] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.657] frame process finished the id is: 64 the obs is:0 -[11:32:23.756] Init: px average disparity is:0.331562 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.756] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.756] frame process finished the id is: 65 the obs is:0 -[11:32:23.857] Init: px average disparity is:0.343314 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.857] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.857] frame process finished the id is: 66 the obs is:0 -[11:32:23.957] Init: px average disparity is:0.344914 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:23.957] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:23.957] frame process finished the id is: 67 the obs is:0 -[11:32:24.058] Init: px average disparity is:0.343931 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.058] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.058] frame process finished the id is: 68 the obs is:0 -[11:32:24.157] Init: px average disparity is:0.342843 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.157] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.157] frame process finished the id is: 69 the obs is:0 -[11:32:24.258] Init: px average disparity is:0.319272 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.258] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.258] frame process finished the id is: 70 the obs is:0 -[11:32:24.358] Init: px average disparity is:0.332929 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.358] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.358] frame process finished the id is: 71 the obs is:0 -[11:32:24.458] Init: px average disparity is:0.335166 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.458] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.458] frame process finished the id is: 72 the obs is:0 -[11:32:24.557] Init: px average disparity is:0.322458 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.557] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.557] frame process finished the id is: 73 the obs is:0 -[11:32:24.671] Init: px average disparity is:0.333361 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.671] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.671] frame process finished the id is: 74 the obs is:0 -[11:32:24.757] Init: px average disparity is:0.364620 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.757] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.757] frame process finished the id is: 75 the obs is:0 -[11:32:24.865] Init: px average disparity is:0.361013 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.865] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.865] frame process finished the id is: 76 the obs is:0 -[11:32:24.956] Init: px average disparity is:0.352700 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:24.957] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:24.957] frame process finished the id is: 77 the obs is:0 -[11:32:25.058] Init: px average disparity is:0.342237 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:25.058] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:25.058] frame process finished the id is: 78 the obs is:0 -[11:32:25.084] Odometry x=0.000000, y=0.000000, theta=-0.000000 -[11:32:25.158] Init: px average disparity is:0.338066 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:25.158] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:25.158] frame process finished the id is: 79 the obs is:0 -[11:32:25.185] Odometry x=0.000001, y=0.031996, theta=-0.000009 -[11:32:25.260] Init: px average disparity is:0.342626 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:25.260] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:25.260] frame process finished the id is: 80 the obs is:0 -[11:32:25.284] Odometry x=0.000006, y=0.059582, theta=0.000466 -[11:32:25.368] Init: px average disparity is:6.551406 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:25.368] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:25.368] frame process finished the id is: 81 the obs is:0 -[11:32:25.382] Odometry x=0.000020, y=0.085205, theta=0.001202 -[11:32:25.460] Init: px average disparity is:3.524687 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:25.460] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:25.460] frame process finished the id is: 82 the obs is:0 -[11:32:25.481] Odometry x=-0.000021, y=0.110075, theta=0.002741 -[11:32:25.560] Init: px average disparity is:5.077399 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:25.560] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:25.560] frame process finished the id is: 83 the obs is:0 -[11:32:25.581] Odometry x=-0.000087, y=0.134640, theta=0.005900 -[11:32:25.662] Init: px average disparity is:4.551499 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:25.662] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:25.662] frame process finished the id is: 84 the obs is:0 -[11:32:25.675] Odometry x=-0.000206, y=0.159072, theta=0.007554 -[11:32:25.764] Init: px average disparity is:6.954029 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:25.764] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:25.764] frame process finished the id is: 85 the obs is:0 -[11:32:25.781] Odometry x=-0.000404, y=0.183499, theta=0.005726 -[11:32:25.862] Init: px average disparity is:8.102174 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:25.862] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:25.862] frame process finished the id is: 86 the obs is:0 -[11:32:25.882] Odometry x=-0.000535, y=0.207888, theta=0.009038 -[11:32:25.986] Odometry x=-0.000728, y=0.232270, theta=0.012466 -[11:32:26.070] Init: Homography RANSAC (inlier) is:0 ,While 50 inliers minimum required. px average disparity is:12.099699 ,While minimum is: 10.000000 KLT tracked: 1212 -[11:32:26.070] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:26.070] frame process finished the id is: 87 the obs is:0 -[11:32:26.082] Odometry x=-0.001044, y=0.256663, theta=0.009062 -[11:32:26.096] Init: px average disparity is:9.941098 ,While minimum is: 10.000000 KLT tracked : 1212 -[11:32:26.096] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 -[11:32:26.096] frame process finished the id is: 88 the obs is:0 -[11:32:26.180] Odometry x=-0.001251, y=0.281037, theta=0.008997 -[11:32:26.215] Init finished: Homography RANSAC (inlier) is:176 ,While 50 inliers minimum required. px average disparity is:11.320633 ,While minimum is: 10.000000 KLT tracked: 1212 -[11:32:26.215] Init: distance between the first and current frame is x:-0.001474 ,z=0.305438,angle between two frames: 0.011551 -[11:32:26.215] Init: Selected Second frame. The number of features: 176 depth mean:-0.431382 min:-1.054871 -[11:32:26.215] frame process finished the id is: 89 the obs is:176 -[11:32:26.279] Odometry x=-0.001474, y=0.305438, theta=0.011551 -[11:32:26.331] After Reprojection Map nMatches:190 ,distance between ekf and vo x:0.000037 ,z=-0.000043,angle between two frames:0.000112 -[11:32:26.331] n deleted obs = 35 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =155 error init =0.018453 error end=0.018453 -[11:32:26.331] After pose optimization, distance between ekf and vo x:0.000037 ,z=-0.000043,angle between two frames:0.000112 -[11:32:26.331] Update EKF and 3D points the number of feature in the new frame: 155 and number of obs: 155 -[11:32:26.332] need key frame pitch dis: 0.011460 translation dif:0.309115 -[11:32:26.332] Choose frame as a key frame Scene Depth mean:-0.286836 ,depth min:-1.022053 -[11:32:26.332] frame process finished the id is: 90 the obs is:155 -[11:32:26.378] Odometry x=-0.001483, y=0.309112, theta=0.011460 -[11:32:26.465] After Reprojection Map nMatches:265 ,distance between ekf and vo x:0.000101 ,z=-0.000225,angle between two frames:0.000306 -[11:32:26.466] n deleted obs = 52 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =213 error init =0.015022 error end=0.014173 -[11:32:26.466] After pose optimization, distance between ekf and vo x:-0.002982 ,z=-0.011829,angle between two frames:0.008450 -[11:32:26.466] Update EKF and 3D points the number of feature in the new frame: 213 and number of obs: 213 -[11:32:26.468] need key frame pitch dis: 0.020496 translation dif:0.109230 -[11:32:26.468] Choose frame as a key frame Scene Depth mean:-0.383560 ,depth min:-4.324615 -[11:32:26.468] frame process finished the id is: 91 the obs is:213 -[11:32:26.481] Odometry x=-0.004041, y=0.303543, theta=0.018824 -[11:32:26.580] Odometry x=-0.004549, y=0.330945, theta=0.018343 -[11:32:26.612] After Reprojection Map nMatches:281 ,distance between ekf and vo x:0.000005 ,z=-0.000015,angle between two frames:0.000011 -[11:32:26.613] n deleted obs = 50 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =231 error init =0.010394 error end=0.010069 -[11:32:26.613] After pose optimization, distance between ekf and vo x:0.001030 ,z=0.000331,angle between two frames:0.002532 -[11:32:26.613] Update EKF and 3D points the number of feature in the new frame: 231 and number of obs: 231 -[11:32:26.617] need key frame pitch dis: 3.102728 translation dif:0.067422 -[11:32:26.617] Choose frame as a key frame Scene Depth mean:-0.236570 ,depth min:-4.251899 -[11:32:26.617] frame process finished the id is: 92 the obs is:231 -[11:32:26.682] Odometry x=-0.003319, y=0.312034, theta=0.023730 -[11:32:26.776] After Reprojection Map nMatches:360 ,distance between ekf and vo x:0.000010 ,z=-0.000020,angle between two frames:0.000027 -[11:32:26.776] n deleted obs = 91 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =269 error init =0.151705 error end=0.151705 -[11:32:26.776] After pose optimization, distance between ekf and vo x:0.000010 ,z=-0.000020,angle between two frames:0.000027 -[11:32:26.776] Update EKF and 3D points the number of feature in the new frame: 269 and number of obs: 269 -[11:32:26.780] need key frame pitch dis: 3.156125 translation dif:0.431282 -[11:32:26.780] Choose frame as a key frame Scene Depth mean:-0.132685 ,depth min:-9.544774 -[11:32:26.780] frame process finished the id is: 93 the obs is:269 -[11:32:26.781] Odometry x=-0.003402, y=0.316395, theta=0.024196 -[11:32:26.880] Odometry x=-0.004104, y=0.343784, theta=0.015783 -[11:32:26.943] After Reprojection Map nMatches:391 ,distance between ekf and vo x:0.000015 ,z=-0.000098,angle between two frames:0.000007 -[11:32:26.944] n deleted obs = 131 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =260 error init =0.027811 error end=0.027811 -[11:32:26.944] After pose optimization, distance between ekf and vo x:0.000015 ,z=-0.000098,angle between two frames:0.000007 -[11:32:26.944] Update EKF and 3D points the number of feature in the new frame: 260 and number of obs: 260 -[11:32:26.946] need key frame pitch dis: 0.052741 translation dif:0.044082 -[11:32:26.946] frame process finished the id is: 94 the obs is:260 -[11:32:26.982] Odometry x=-0.003562, y=0.324527, theta=0.024337 -[11:32:27.081] Odometry x=-0.004212, y=0.351895, theta=0.027853 -[11:32:27.114] After Reprojection Map nMatches:336 ,distance between ekf and vo x:-0.000007 ,z=-0.000181,angle between two frames:0.000006 -[11:32:27.115] n deleted obs = 64 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =272 error init =0.025647 error end=0.025647 -[11:32:27.115] After pose optimization, distance between ekf and vo x:-0.000007 ,z=-0.000181,angle between two frames:0.000006 -[11:32:27.115] Update EKF and 3D points the number of feature in the new frame: 272 and number of obs: 272 -[11:32:27.117] need key frame pitch dis: 0.053851 translation dif:0.051426 -[11:32:27.117] frame process finished the id is: 95 the obs is:272 -[11:32:27.179] Odometry x=-0.003774, y=0.332586, theta=0.025447 -[11:32:27.277] After Reprojection Map nMatches:392 ,distance between ekf and vo x:-0.000005 ,z=-0.000013,angle between two frames:0.000000 -[11:32:27.278] n deleted obs = 93 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =299 error init =0.029747 error end=0.029747 -[11:32:27.278] After pose optimization, distance between ekf and vo x:-0.000005 ,z=-0.000013,angle between two frames:0.000000 -[11:32:27.278] Update EKF and 3D points the number of feature in the new frame: 299 and number of obs: 299 -[11:32:27.280] need key frame pitch dis: 0.055652 translation dif:0.055478 -[11:32:27.280] frame process finished the id is: 96 the obs is:299 -[11:32:27.292] Odometry x=-0.003879, y=0.336938, theta=0.027248 -[11:32:27.386] Odometry x=-0.004653, y=0.364328, theta=0.022051 -[11:32:27.439] After Reprojection Map nMatches:401 ,distance between ekf and vo x:-0.000002 ,z=-0.000037,angle between two frames:0.000003 -[11:32:27.441] n deleted obs = 62 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =339 error init =0.103242 error end=0.042839 -[11:32:27.441] After pose optimization, distance between ekf and vo x:0.035938 ,z=0.078177,angle between two frames:0.025780 -[11:32:27.441] Update EKF and 3D points the number of feature in the new frame: 339 and number of obs: 339 -[11:32:27.443] need key frame pitch dis: 0.032166 translation dif:0.135588 -[11:32:27.443] Choose frame as a key frame Scene Depth mean:-0.026640 ,depth min:-6.870626 -[11:32:27.443] frame process finished the id is: 97 the obs is:339 -[11:32:27.484] Odometry x=0.026293, y=0.411194, theta=0.003762 -[11:32:27.576] Odometry x=0.026152, y=0.438582, theta=-0.006887 -[11:32:27.617] After Reprojection Map nMatches:411 ,distance between ekf and vo x:0.000034 ,z=-0.000081,angle between two frames:0.000005 -[11:32:27.618] n deleted obs = 80 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =331 error init =0.027805 error end=0.027805 -[11:32:27.618] After pose optimization, distance between ekf and vo x:0.000034 ,z=-0.000081,angle between two frames:0.000005 -[11:32:27.618] Update EKF and 3D points the number of feature in the new frame: 331 and number of obs: 331 -[11:32:27.621] need key frame pitch dis: 3.116656 translation dif:0.246529 -[11:32:27.621] Choose frame as a key frame Scene Depth mean:-0.542208 ,depth min:-72.710638 -[11:32:27.621] frame process finished the id is: 98 the obs is:331 -[11:32:27.679] Odometry x=0.026328, y=0.419340, theta=0.002090 -[11:32:27.779] After Reprojection Map nMatches:401 ,distance between ekf and vo x:0.000073 ,z=-0.000008,angle between two frames:0.000004 -[11:32:27.779] n deleted obs = 87 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =314 error init =2.703475 error end=0.207958 -[11:32:27.779] After pose optimization, distance between ekf and vo x:-0.306685 ,z=-0.220684,angle between two frames:0.050956 -[11:32:27.779] frame process finished the id is: 98 the obs is:331 -[11:32:27.781] Odometry x=0.026231, y=0.446720, theta=-0.005001 -[11:32:27.879] Odometry x=0.026352, y=0.472278, theta=0.001596 -[11:32:27.925] After Reprojection Map nMatches:404 ,distance between ekf and vo x:-0.000018 ,z=-0.000051,angle between two frames:0.000001 -[11:32:27.927] n deleted obs = 89 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =315 error init =0.030853 error end=0.030307 -[11:32:27.927] After pose optimization, distance between ekf and vo x:-0.012245 ,z=-0.004072,angle between two frames:0.000276 -[11:32:27.927] Update EKF and 3D points the number of feature in the new frame: 315 and number of obs: 315 -[11:32:27.930] need key frame pitch dis: 3.128348 translation dif:0.247930 -[11:32:27.930] Choose frame as a key frame Scene Depth mean:-0.262903 ,depth min:-29.491323 -[11:32:27.930] frame process finished the id is: 100 the obs is:315 -[11:32:27.981] Odometry x=0.015898, y=0.450992, theta=-0.005523 -[11:32:28.073] After Reprojection Map nMatches:402 ,distance between ekf and vo x:0.000002 ,z=0.000001,angle between two frames:0.000000 -[11:32:28.074] n deleted obs = 97 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =305 error init =0.036685 error end=0.036685 -[11:32:28.074] After pose optimization, distance between ekf and vo x:0.000002 ,z=0.000001,angle between two frames:0.000000 -[11:32:28.074] Update EKF and 3D points the number of feature in the new frame: 305 and number of obs: 305 -[11:32:28.077] need key frame pitch dis: 3.101580 translation dif:0.543103 -[11:32:28.077] Choose frame as a key frame Scene Depth mean:-0.591945 ,depth min:-84.031884 -[11:32:28.077] frame process finished the id is: 101 the obs is:305 -[11:32:28.078] Odometry x=0.015911, y=0.455374, theta=-0.007854 -[11:32:28.181] Odometry x=0.016234, y=0.482763, theta=0.013110 -[11:32:28.274] Odometry x=0.015862, y=0.508324, theta=0.022683 -[11:32:28.386] Odometry x=0.015247, y=0.533170, theta=0.033285 -[11:32:28.402] After Reprojection Map nMatches:430 ,distance between ekf and vo x:-0.000001 ,z=0.000018,angle between two frames:0.000000 -[11:32:28.425] n deleted obs = 108 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =322 error init =0.024234 error end=0.024234 -[11:32:28.425] After pose optimization, distance between ekf and vo x:-0.000001 ,z=0.000018,angle between two frames:0.000000 -[11:32:28.425] Update EKF and 3D points the number of feature in the new frame: 322 and number of obs: 322 -[11:32:28.430] need key frame pitch dis: 3.118440 translation dif:0.669385 -[11:32:28.430] Choose frame as a key frame Scene Depth mean:-0.409449 ,depth min:-6.247414 -[11:32:28.430] frame process finished the id is: 102 the obs is:322 -[11:32:28.487] Odometry x=0.015725, y=0.471035, theta=0.000218 -[11:32:28.583] Odometry x=0.015760, y=0.498409, theta=0.008975 -[11:32:28.680] Odometry x=0.015539, y=0.523952, theta=0.001274 -[11:32:28.780] Odometry x=0.015507, y=0.548782, theta=0.005282 -[11:32:28.880] Odometry x=0.015382, y=0.573335, theta=0.005073 -[11:32:28.963] After Reprojection Map nMatches:459 ,distance between ekf and vo x:-0.000015 ,z=-0.000022,angle between two frames:0.000001 -[11:32:28.976] Odometry x=0.015258, y=0.597795, theta=0.009327 -[11:32:29.074] Odometry x=0.015032, y=0.622232, theta=0.011322 -[11:32:29.176] Odometry x=0.014750, y=0.646617, theta=0.013988 -[11:32:29.277] Odometry x=0.014398, y=0.671003, theta=0.015433 -[11:32:29.377] Odometry x=0.014007, y=0.695409, theta=0.012154 -[11:32:29.479] Odometry x=0.013712, y=0.719800, theta=0.014397 -[11:32:29.578] Odometry x=0.013372, y=0.744210, theta=0.017445 -[11:32:29.680] Odometry x=0.012934, y=0.768590, theta=0.017710 -[11:32:29.777] Odometry x=0.012514, y=0.792986, theta=0.021833 -[11:32:29.877] Odometry x=0.011986, y=0.817380, theta=0.024094 -[11:32:29.968] n deleted obs = 83 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =376 error init =0.018778 error end=0.018761 -[11:32:29.968] After pose optimization, distance between ekf and vo x:0.000426 ,z=-0.000365,angle between two frames:0.000428 -[11:32:29.968] Update EKF and 3D points the number of feature in the new frame: 376 and number of obs: 376 -[11:32:29.976] need key frame pitch dis: 3.128084 translation dif:0.641537 -[11:32:29.976] Choose frame as a key frame Scene Depth mean:-0.014445 ,depth min:-6.308068 -[11:32:29.976] frame process finished the id is: 103 the obs is:376 -[11:32:29.978] Odometry x=0.015444, y=0.527244, theta=0.002840 -[11:32:30.075] Odometry x=0.015323, y=0.554601, theta=-0.003745 -[11:32:30.180] Odometry x=0.015418, y=0.580158, theta=-0.007601 -[11:32:30.282] Odometry x=0.015604, y=0.605005, theta=-0.007674 -[11:32:30.374] Odometry x=0.015803, y=0.629567, theta=-0.010975 -[11:32:30.477] Odometry x=0.016091, y=0.654027, theta=-0.012322 -[11:32:30.491] After Reprojection Map nMatches:550 ,distance between ekf and vo x:0.000017 ,z=0.000005,angle between two frames:0.000005 -[11:32:30.492] n deleted obs = 116 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =434 error init =0.010660 error end=0.010660 -[11:32:30.492] After pose optimization, distance between ekf and vo x:0.000017 ,z=0.000005,angle between two frames:0.000005 -[11:32:30.492] Update EKF and 3D points the number of feature in the new frame: 434 and number of obs: 434 -[11:32:30.497] need key frame pitch dis: 3.139714 translation dif:0.475743 -[11:32:30.497] Choose frame as a key frame Scene Depth mean:-0.072726 ,depth min:-6.332547 -[11:32:30.497] frame process finished the id is: 104 the obs is:434 -[11:32:30.579] Odometry x=0.015591, y=0.550309, theta=0.000926 -[11:32:30.681] Odometry x=0.015567, y=0.577669, theta=0.001165 -[11:32:30.780] Odometry x=0.015542, y=0.603245, theta=-0.003613 -[11:32:30.831] After Reprojection Map nMatches:675 ,distance between ekf and vo x:-0.000014 ,z=-0.000001,angle between two frames:0.000001 -[11:32:30.833] n deleted obs = 119 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =556 error init =0.037529 error end=0.037529 -[11:32:30.833] After pose optimization, distance between ekf and vo x:-0.000014 ,z=-0.000001,angle between two frames:0.000001 -[11:32:30.833] Update EKF and 3D points the number of feature in the new frame: 556 and number of obs: 556 -[11:32:30.842] need key frame pitch dis: 3.115849 translation dif:0.455984 -[11:32:30.843] Choose frame as a key frame Scene Depth mean:-0.102017 ,depth min:-9.992358 -[11:32:30.858] frame process finished the id is: 105 the obs is:556 -[11:32:30.882] Odometry x=0.015574, y=0.562243, theta=0.000590 -[11:32:30.980] Odometry x=0.015510, y=0.589601, theta=-0.007756 -[11:32:31.077] Odometry x=0.015699, y=0.615140, theta=-0.006833 -[11:32:31.181] Odometry x=0.015857, y=0.639965, theta=-0.001587 -[11:32:31.282] Odometry x=0.015870, y=0.664517, theta=0.008842 -[11:32:31.378] Odometry x=0.015670, y=0.688967, theta=0.019389 -[11:32:31.487] Odometry x=0.015187, y=0.713374, theta=0.022752 -[11:32:31.509] After Reprojection Map nMatches:602 ,distance between ekf and vo x:-0.000025 ,z=-0.000009,angle between two frames:0.000001 -[11:32:31.580] Odometry x=0.014657, y=0.737765, theta=0.031203 -[11:32:31.630] n deleted obs = 96 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =506 error init =0.007685 error end=0.007681 -[11:32:31.630] After pose optimization, distance between ekf and vo x:-0.000247 ,z=-0.000074,angle between two frames:0.000022 -[11:32:31.630] Update EKF and 3D points the number of feature in the new frame: 506 and number of obs: 506 -[11:32:31.637] need key frame pitch dis: 3.135212 translation dif:0.476473 -[11:32:31.638] Choose frame as a key frame Scene Depth mean:-0.044486 ,depth min:-10.085976 -[11:32:31.658] frame process finished the id is: 106 the obs is:506 -[11:32:31.681] Odometry x=0.015142, y=0.592644, theta=0.006130 -[11:32:31.780] Odometry x=0.014818, y=0.620009, theta=-0.018648 -[11:32:31.882] Odometry x=0.015305, y=0.645550, theta=-0.019617 -[11:32:31.979] Odometry x=0.015746, y=0.670386, theta=-0.012404 -[11:32:32.082] Odometry x=0.016033, y=0.694945, theta=-0.008503 -[11:32:32.120] After Reprojection Map nMatches:688 ,distance between ekf and vo x:-0.000008 ,z=0.000001,angle between two frames:0.000001 -[11:32:32.122] n deleted obs = 165 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =523 error init =0.048481 error end=0.048481 -[11:32:32.122] After pose optimization, distance between ekf and vo x:-0.000008 ,z=0.000001,angle between two frames:0.000001 -[11:32:32.122] Update EKF and 3D points the number of feature in the new frame: 523 and number of obs: 523 -[11:32:32.125] need key frame pitch dis: 3.111961 translation dif:0.512741 -[11:32:32.126] Choose frame as a key frame Scene Depth mean:-14.428677 ,depth min:-922.205821 -[11:32:32.126] frame process finished the id is: 107 the obs is:523 -[11:32:32.177] Odometry x=0.015303, y=0.611991, theta=0.003962 -[11:32:32.280] Odometry x=0.015146, y=0.639362, theta=-0.004296 -[11:32:32.382] Odometry x=0.015239, y=0.664915, theta=-0.000768 -[11:32:32.483] Odometry x=0.015243, y=0.689751, theta=0.000953 -[11:32:32.576] Odometry x=0.015220, y=0.714323, theta=-0.004777 -[11:32:32.622] After Reprojection Map nMatches:704 ,distance between ekf and vo x:-0.000011 ,z=0.000039,angle between two frames:0.000000 -[11:32:32.624] n deleted obs = 180 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =524 error init =0.020284 error end=0.020284 -[11:32:32.624] After pose optimization, distance between ekf and vo x:-0.000011 ,z=0.000039,angle between two frames:0.000000 -[11:32:32.624] Update EKF and 3D points the number of feature in the new frame: 524 and number of obs: 524 -[11:32:32.628] need key frame pitch dis: 3.113562 translation dif:0.523407 -[11:32:32.628] Choose frame as a key frame Scene Depth mean:-15.366708 ,depth min:-923.243252 -[11:32:32.628] frame process finished the id is: 108 the obs is:524 -[11:32:32.676] Odometry x=0.015298, y=0.631368, theta=0.002115 -[11:32:32.777] Odometry x=0.015251, y=0.658724, theta=0.000721 -[11:32:32.880] Odometry x=0.015254, y=0.684280, theta=-0.005880 -[11:32:32.982] Odometry x=0.015399, y=0.709088, theta=0.000264 -[11:32:33.006] After Reprojection Map nMatches:705 ,distance between ekf and vo x:-0.000020 ,z=0.000077,angle between two frames:0.000000 -[11:32:33.080] Odometry x=0.015376, y=0.733651, theta=0.005315 -[11:32:33.178] Odometry x=0.015244, y=0.758103, theta=0.010702 -[11:32:33.280] Odometry x=0.014968, y=0.782522, theta=0.009203 -[11:32:33.297] n deleted obs = 130 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =575 error init =0.017708 error end=0.017704 -[11:32:33.297] After pose optimization, distance between ekf and vo x:-0.004673 ,z=0.002358,angle between two frames:0.000113 -[11:32:33.297] Update EKF and 3D points the number of feature in the new frame: 575 and number of obs: 575 -[11:32:33.306] need key frame pitch dis: 3.072346 translation dif:0.574377 -[11:32:33.306] Choose frame as a key frame Scene Depth mean:-13.031509 ,depth min:-922.274546 -[11:32:33.307] frame process finished the id is: 109 the obs is:575 -[11:32:33.380] Odometry x=0.013565, y=0.769541, theta=0.007495 -[11:32:33.482] Odometry x=0.013411, y=0.793926, theta=0.009405 -[11:32:33.583] Odometry x=0.013160, y=0.818329, theta=0.008947 -[11:32:33.681] Odometry x=0.012966, y=0.842723, theta=0.010498 -[11:32:33.778] Odometry x=0.012732, y=0.867124, theta=0.013822 -[11:32:33.874] Odometry x=0.012407, y=0.891520, theta=0.019807 -[11:32:33.949] After Reprojection Map nMatches:783 ,distance between ekf and vo x:-0.000011 ,z=0.000035,angle between two frames:0.000000 -[11:32:33.980] Odometry x=0.011923, y=0.915916, theta=0.025734 -[11:32:34.079] Odometry x=0.011302, y=0.940301, theta=0.024456 -[11:32:34.176] Odometry x=0.010686, y=0.964651, theta=0.018391 -[11:32:34.244] n deleted obs = 218 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =565 error init =0.022388 error end=0.022387 -[11:32:34.244] After pose optimization, distance between ekf and vo x:-0.000063 ,z=0.000034,angle between two frames:0.000000 -[11:32:34.244] Update EKF and 3D points the number of feature in the new frame: 565 and number of obs: 565 -[11:32:34.252] need key frame pitch dis: 3.094426 translation dif:0.746329 -[11:32:34.253] Choose frame as a key frame Scene Depth mean:-0.109958 ,depth min:-18.970613 -[11:32:34.253] frame process finished the id is: 110 the obs is:565 -[11:32:34.282] Odometry x=0.013013, y=0.803024, theta=0.009316 -[11:32:34.380] Odometry x=0.012727, y=0.830400, theta=0.004532 -[11:32:34.482] Odometry x=0.012600, y=0.855965, theta=0.008531 -[11:32:34.582] Odometry x=0.012402, y=0.880792, theta=0.009045 -[11:32:34.679] Odometry x=0.012171, y=0.905335, theta=0.012706 -[11:32:34.781] Odometry x=0.011856, y=0.929801, theta=0.010278 -[11:32:34.867] After Reprojection Map nMatches:723 ,distance between ekf and vo x:-0.000001 ,z=-0.000099,angle between two frames:0.000000 -[11:32:34.879] Odometry x=0.011622, y=0.954173, theta=0.007220 -[11:32:34.981] Odometry x=0.011446, y=0.978570, theta=0.008312 -[11:32:35.083] Odometry x=0.011237, y=1.002969, theta=0.007838 -[11:32:35.144] n deleted obs = 110 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =613 error init =0.015481 error end=0.015392 -[11:32:35.145] After pose optimization, distance between ekf and vo x:-0.001339 ,z=0.022006,angle between two frames:0.002693 -[11:32:35.145] Update EKF and 3D points the number of feature in the new frame: 613 and number of obs: 613 -[11:32:35.151] need key frame pitch dis: 3.093285 translation dif:0.810285 -[11:32:35.151] Choose frame as a key frame Scene Depth mean:-0.724512 ,depth min:-66.132653 -[11:32:35.152] frame process finished the id is: 111 the obs is:613 -[11:32:35.180] Odometry x=0.011583, y=0.855869, theta=0.006003 -[11:32:35.282] Odometry x=0.011517, y=0.883248, theta=0.021235 -[11:32:35.383] Odometry x=0.011517, y=0.883248, theta=0.021235 -[11:32:35.481] Odometry x=0.010983, y=0.908801, theta=0.017314 -[11:32:35.583] Odometry x=0.010560, y=0.933529, theta=0.007593 -[11:32:35.682] Odometry x=0.010560, y=0.933529, theta=0.007593 -[11:32:35.783] After Reprojection Map nMatches:615 ,distance between ekf and vo x:-0.000013 ,z=0.000009,angle between two frames:0.000000 -[11:32:35.788] Odometry x=0.010560, y=0.955403, theta=0.019692 -[11:32:35.882] Odometry x=0.009969, y=0.977114, theta=0.012441 -[11:32:35.979] Odometry x=0.009619, y=1.000552, theta=0.003926 -[11:32:36.058] n deleted obs = 99 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =516 error init =0.016885 error end=0.016885 -[11:32:36.058] After pose optimization, distance between ekf and vo x:-0.000030 ,z=0.000013,angle between two frames:0.000107 -[11:32:36.058] Update EKF and 3D points the number of feature in the new frame: 516 and number of obs: 516 -[11:32:36.064] need key frame pitch dis: 3.131407 translation dif:0.800670 -[11:32:36.064] Choose frame as a key frame Scene Depth mean:-0.669719 ,depth min:-66.155746 -[11:32:36.064] frame process finished the id is: 112 the obs is:516 -[11:32:36.084] Odometry x=0.011267, y=0.881443, theta=0.007229 -[11:32:36.181] Odometry x=0.011197, y=0.908804, theta=0.028173 -[11:32:36.283] Odometry x=0.010441, y=0.934326, theta=0.041033 -[11:32:36.374] Odometry x=0.009418, y=0.959141, theta=0.040768 -[11:32:36.391] After Reprojection Map nMatches:538 ,distance between ekf and vo x:-0.000025 ,z=0.000010,angle between two frames:0.000002 -[11:32:36.475] Odometry x=0.008451, y=0.983666, theta=0.033538 -[11:32:36.571] n deleted obs = 103 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =435 error init =0.013066 error end=0.013066 -[11:32:36.571] After pose optimization, distance between ekf and vo x:-0.000025 ,z=0.000010,angle between two frames:0.000002 -[11:32:36.571] Update EKF and 3D points the number of feature in the new frame: 435 and number of obs: 435 -[11:32:36.575] need key frame pitch dis: 3.113797 translation dif:0.784460 -[11:32:36.575] Choose frame as a key frame Scene Depth mean:-1.060066 ,depth min:-66.166889 -[11:32:36.576] frame process finished the id is: 113 the obs is:435 -[11:32:36.588] Odometry x=0.010707, y=0.900775, theta=0.010097 -[11:32:36.674] Odometry x=0.010495, y=0.928126, theta=0.022625 -[11:32:36.774] Odometry x=0.009912, y=0.953646, theta=0.028105 -[11:32:36.879] Odometry x=0.009257, y=0.978484, theta=0.023627 -[11:32:36.965] After Reprojection Map nMatches:650 ,distance between ekf and vo x:-0.000002 ,z=-0.000023,angle between two frames:0.000000 -[11:32:36.979] Odometry x=0.008679, y=1.003038, theta=0.027125 -[11:32:37.031] n deleted obs = 167 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =483 error init =0.036249 error end=0.036096 -[11:32:37.031] After pose optimization, distance between ekf and vo x:-0.009956 ,z=0.003148,angle between two frames:0.009344 -[11:32:37.031] Update EKF and 3D points the number of feature in the new frame: 483 and number of obs: 483 -[11:32:37.035] need key frame pitch dis: 3.083646 translation dif:0.779916 -[11:32:37.035] Choose frame as a key frame Scene Depth mean:-0.998488 ,depth min:-66.153800 -[11:32:37.035] frame process finished the id is: 114 the obs is:483 -[11:32:37.088] Odometry x=0.001844, y=0.922761, theta=0.019678 -[11:32:37.180] Odometry x=0.001350, y=0.950090, theta=0.028789 -[11:32:37.280] Odometry x=0.000606, y=0.975621, theta=0.039012 -[11:32:37.380] Odometry x=-0.000339, y=1.000393, theta=0.034075 -[11:32:37.387] After Reprojection Map nMatches:573 ,distance between ekf and vo x:-0.000006 ,z=-0.000004,angle between two frames:0.000000 -[11:32:37.489] Odometry x=-0.001138, y=1.024956, theta=0.019610 -[11:32:37.585] Odometry x=-0.001593, y=1.049412, theta=0.023173 -[11:32:37.677] Odometry x=-0.002172, y=1.073801, theta=0.030600 -[11:32:37.755] n deleted obs = 168 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =405 error init =0.061555 error end=0.060755 -[11:32:37.755] After pose optimization, distance between ekf and vo x:-0.026395 ,z=-0.002455,angle between two frames:0.000594 -[11:32:37.755] Update EKF and 3D points the number of feature in the new frame: 405 and number of obs: 405 -[11:32:37.762] need key frame pitch dis: 3.097624 translation dif:0.807675 -[11:32:37.762] Choose frame as a key frame Scene Depth mean:-0.845741 ,depth min:-30.785237 -[11:32:37.778] frame process finished the id is: 115 the obs is:405 -[11:32:37.789] Odometry x=-0.021233, y=0.947404, theta=0.024379 -[11:32:37.882] Odometry x=-0.021832, y=0.974769, theta=0.034313 -[11:32:37.981] Odometry x=-0.022706, y=1.000311, theta=0.027427 -[11:32:38.082] Odometry x=-0.023339, y=1.025128, theta=0.013473 -[11:32:38.122] After Reprojection Map nMatches:583 ,distance between ekf and vo x:-0.000010 ,z=-0.000007,angle between two frames:0.000000 -[11:32:38.181] Odometry x=-0.023644, y=1.049667, theta=0.004392 -[11:32:38.277] Odometry x=-0.023765, y=1.074117, theta=0.008210 -[11:32:38.287] n deleted obs = 149 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =434 error init =0.035989 error end=0.035964 -[11:32:38.287] After pose optimization, distance between ekf and vo x:-0.001030 ,z=0.000026,angle between two frames:0.000003 -[11:32:38.287] Update EKF and 3D points the number of feature in the new frame: 434 and number of obs: 434 -[11:32:38.292] need key frame pitch dis: 3.021011 translation dif:0.951317 -[11:32:38.292] Choose frame as a key frame Scene Depth mean:-0.706635 ,depth min:-8.704209 -[11:32:38.292] frame process finished the id is: 116 the obs is:434 -[11:32:38.382] Odometry x=-0.023745, y=1.067427, theta=0.024636 -[11:32:38.484] Odometry x=-0.024362, y=1.091799, theta=0.030882 -[11:32:38.578] Odometry x=-0.025108, y=1.116210, theta=0.027117 -[11:32:38.680] Odometry x=-0.025769, y=1.140589, theta=0.014314 -[11:32:38.721] After Reprojection Map nMatches:644 ,distance between ekf and vo x:-0.000017 ,z=0.000018,angle between two frames:0.000001 -[11:32:38.776] Odometry x=-0.026113, y=1.164973, theta=0.009481 -[11:32:38.785] n deleted obs = 168 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =476 error init =0.024380 error end=0.023777 -[11:32:38.785] After pose optimization, distance between ekf and vo x:-0.028703 ,z=0.010089,angle between two frames:0.006334 -[11:32:38.785] Update EKF and 3D points the number of feature in the new frame: 476 and number of obs: 476 -[11:32:38.792] need key frame pitch dis: 3.011969 translation dif:1.038597 -[11:32:38.792] Choose frame as a key frame Scene Depth mean:-0.301384 ,depth min:-11.415562 -[11:32:38.793] frame process finished the id is: 117 the obs is:476 -[11:32:38.883] Odometry x=-0.033585, y=1.148683, theta=0.020053 -[11:32:38.980] Odometry x=-0.034088, y=1.173076, theta=0.024089 -[11:32:39.079] Odometry x=-0.034653, y=1.197466, theta=0.031478 -[11:32:39.182] Odometry x=-0.035354, y=1.221813, theta=0.047994 -[11:32:39.253] After Reprojection Map nMatches:543 ,distance between ekf and vo x:-0.000014 ,z=0.000005,angle between two frames:0.000001 -[11:32:39.286] Odometry x=-0.036498, y=1.246173, theta=0.056335 -[11:32:39.382] Odometry x=-0.037886, y=1.270492, theta=0.057802 -[11:32:39.475] Odometry x=-0.039328, y=1.294802, theta=0.049416 -[11:32:39.516] n deleted obs = 120 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =423 error init =0.018477 error end=0.018477 -[11:32:39.516] After pose optimization, distance between ekf and vo x:-0.000004 ,z=0.000004,angle between two frames:0.000001 -[11:32:39.516] Update EKF and 3D points the number of feature in the new frame: 423 and number of obs: 423 -[11:32:39.522] need key frame pitch dis: 3.139233 translation dif:1.030319 -[11:32:39.522] Choose frame as a key frame Scene Depth mean:-0.546760 ,depth min:-7.250742 -[11:32:39.522] frame process finished the id is: 118 the obs is:423 -[11:32:39.581] Odometry x=-0.043948, y=1.100111, theta=0.018227 -[11:32:39.680] Odometry x=-0.044407, y=1.127479, theta=0.024469 -[11:32:39.780] Odometry x=-0.045023, y=1.153031, theta=0.022350 -[11:32:39.879] Odometry x=-0.045580, y=1.177860, theta=0.032570 -[11:32:39.976] Odometry x=-0.046403, y=1.202389, theta=0.047368 -[11:32:39.983] After Reprojection Map nMatches:596 ,distance between ekf and vo x:-0.000001 ,z=-0.000019,angle between two frames:0.000004 -[11:32:40.078] Odometry x=-0.047573, y=1.226811, theta=0.057833 -[11:32:40.114] n deleted obs = 151 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =445 error init =0.033428 error end=0.032908 -[11:32:40.114] After pose optimization, distance between ekf and vo x:-0.063675 ,z=0.030558,angle between two frames:0.028806 -[11:32:40.114] Update EKF and 3D points the number of feature in the new frame: 445 and number of obs: 445 -[11:32:40.119] need key frame pitch dis: 3.077485 translation dif:1.064497 -[11:32:40.120] Choose frame as a key frame Scene Depth mean:-1.200794 ,depth min:-77.108636 -[11:32:40.120] frame process finished the id is: 119 the obs is:445 -[11:32:40.179] Odometry x=-0.065435, y=1.228667, theta=0.036527 -[11:32:40.277] Odometry x=-0.066336, y=1.253047, theta=0.036169 -[11:32:40.376] Odometry x=-0.067229, y=1.277446, theta=0.033052 -[11:32:40.478] Odometry x=-0.067986, y=1.301811, theta=0.036246 -[11:32:40.578] After Reprojection Map nMatches:595 ,distance between ekf and vo x:0.000009 ,z=0.000071,angle between two frames:0.000001 -[11:32:40.580] Odometry x=-0.068874, y=1.326184, theta=0.034043 -[11:32:40.679] n deleted obs = 177 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =418 error init =0.051282 error end=0.051267 -[11:32:40.679] After pose optimization, distance between ekf and vo x:0.000120 ,z=-0.003071,angle between two frames:0.000096 -[11:32:40.679] Update EKF and 3D points the number of feature in the new frame: 418 and number of obs: 418 -[11:32:40.684] need key frame pitch dis: 3.066082 translation dif:1.100218 -[11:32:40.685] Choose frame as a key frame Scene Depth mean:-1.298467 ,depth min:-78.367347 -[11:32:40.685] frame process finished the id is: 120 the obs is:418 -[11:32:40.687] Odometry x=-0.065967, y=1.244655, theta=0.037604 -[11:32:40.778] Odometry x=-0.066913, y=1.272018, theta=0.051855 -[11:32:40.879] Odometry x=-0.068250, y=1.297552, theta=0.041744 -[11:32:40.978] Odometry x=-0.069255, y=1.322347, theta=0.033247 -[11:32:41.080] Odometry x=-0.070073, y=1.346866, theta=0.027814 -[11:32:41.175] Odometry x=-0.070759, y=1.371278, theta=0.021499 -[11:32:41.215] After Reprojection Map nMatches:695 ,distance between ekf and vo x:0.000015 ,z=0.000101,angle between two frames:0.000001 -[11:32:41.276] Odometry x=-0.071283, y=1.395641, theta=0.022547 -[11:32:41.350] n deleted obs = 179 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =516 error init =0.041752 error end=0.040106 -[11:32:41.350] After pose optimization, distance between ekf and vo x:-0.004389 ,z=-0.010461,angle between two frames:0.000168 -[11:32:41.350] Update EKF and 3D points the number of feature in the new frame: 516 and number of obs: 516 -[11:32:41.357] need key frame pitch dis: 3.151938 translation dif:1.095105 -[11:32:41.357] Choose frame as a key frame Scene Depth mean:-0.834102 ,depth min:-78.310823 -[11:32:41.375] frame process finished the id is: 121 the obs is:516 -[11:32:41.378] Odometry x=-0.070590, y=1.262533, theta=0.035226 -[11:32:41.476] Odometry x=-0.071510, y=1.289900, theta=0.043062 -[11:32:41.583] Odometry x=-0.072652, y=1.315393, theta=0.045364 -[11:32:41.680] Odometry x=-0.073740, y=1.340219, theta=0.037299 -[11:32:41.776] Odometry x=-0.074656, y=1.364754, theta=0.042022 -[11:32:41.880] Odometry x=-0.075686, y=1.389187, theta=0.035830 -[11:32:41.922] After Reprojection Map nMatches:730 ,distance between ekf and vo x:0.000006 ,z=-0.000017,angle between two frames:0.000000 -[11:32:41.928] n deleted obs = 174 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =556 error init =0.018299 error end=0.018266 -[11:32:41.928] After pose optimization, distance between ekf and vo x:0.008122 ,z=-0.002038,angle between two frames:0.000328 -[11:32:41.928] Update EKF and 3D points the number of feature in the new frame: 556 and number of obs: 556 -[11:32:41.935] need key frame pitch dis: 3.129895 translation dif:1.154951 -[11:32:41.936] Choose frame as a key frame Scene Depth mean:-0.414075 ,depth min:-78.379694 -[11:32:41.936] frame process finished the id is: 122 the obs is:556 -[11:32:41.990] Odometry x=-0.064603, y=1.283832, theta=0.036367 -[11:32:42.082] Odometry x=-0.065529, y=1.311166, theta=0.051409 -[11:32:42.350] After Reprojection Map nMatches:695 ,distance between ekf and vo x:0.000013 ,z=-0.000032,angle between two frames:0.000000 -[11:32:42.640] n deleted obs = 162 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =533 error init =0.042343 error end=0.042332 -[11:32:42.640] After pose optimization, distance between ekf and vo x:0.002171 ,z=0.000043,angle between two frames:0.000020 -[11:32:42.640] Update EKF and 3D points the number of feature in the new frame: 533 and number of obs: 533 -[11:32:42.645] need key frame pitch dis: 3.096440 translation dif:1.119709 -[11:32:42.646] Choose frame as a key frame Scene Depth mean:-0.744444 ,depth min:-12.757831 -[11:32:42.662] frame process finished the id is: 123 the obs is:533 -[11:32:43.319] After Reprojection Map nMatches:738 ,distance between ekf and vo x:-0.000003 ,z=-0.000022,angle between two frames:0.000005 -[11:32:43.323] n deleted obs = 149 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =589 error init =0.024365 error end=0.024346 -[11:32:43.323] After pose optimization, distance between ekf and vo x:0.004316 ,z=-0.000675,angle between two frames:0.000443 -[11:32:43.323] Update EKF and 3D points the number of feature in the new frame: 589 and number of obs: 589 -[11:32:43.326] need key frame pitch dis: 3.108392 translation dif:1.085851 -[11:32:43.326] Choose frame as a key frame Scene Depth mean:1.060522 ,depth min:-25.268198 -[11:32:43.327] frame process finished the id is: 124 the obs is:589 -[11:32:43.933] After Reprojection Map nMatches:627 ,distance between ekf and vo x:0.000084 ,z=0.000018,angle between two frames:0.000007 -[11:32:44.031] n deleted obs = 204 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =423 error init =0.056061 error end=0.055962 -[11:32:44.031] After pose optimization, distance between ekf and vo x:0.010728 ,z=-0.023455,angle between two frames:0.000581 -[11:32:44.031] Update EKF and 3D points the number of feature in the new frame: 423 and number of obs: 423 -[11:32:44.037] need key frame pitch dis: 3.101957 translation dif:1.077278 -[11:32:44.037] Choose frame as a key frame Scene Depth mean:3.435905 ,depth min:-17.438895 -[11:32:44.038] frame process finished the id is: 125 the obs is:423 -[11:32:44.659] After Reprojection Map nMatches:573 ,distance between ekf and vo x:0.000024 ,z=0.000002,angle between two frames:0.000000 -[11:32:44.976] n deleted obs = 123 n obs with reprojection error less than 2.0 / frame->cam_->errorMultiplier2() =450 error init =0.025035 error end=0.025035 -[11:32:44.976] After pose optimization, distance between ekf and vo x:0.000024 ,z=0.000002,angle between two frames:0.000000 -[11:32:44.976] Update EKF and 3D points the number of feature in the new frame: 450 and number of obs: 450 -[11:32:44.981] need key frame pitch dis: 3.075397 translation dif:1.080714 -[11:32:44.981] Choose frame as a key frame Scene Depth mean:11188.199790 ,depth min:-17.424678 -[11:32:44.982] frame process finished the id is: 126 the obs is:450 -[11:32:44.996] Image Alignment failed 0 -[11:32:44.996] frame process finished the id is: 126 the obs is:450 -[11:32:45.062] Image Alignment failed 0 -[11:32:45.062] frame process finished the id is: 126 the obs is:450 -[11:32:45.160] Image Alignment failed 0 -[11:32:45.160] frame process finished the id is: 126 the obs is:450 -[11:32:45.260] Image Alignment failed 0 -[11:32:45.260] frame process finished the id is: 126 the obs is:450 -[11:32:45.361] Image Alignment failed 0 -[11:32:45.361] frame process finished the id is: 126 the obs is:450 -[11:32:45.459] Image Alignment failed 0 -[11:32:45.459] frame process finished the id is: 126 the obs is:450 -[11:32:45.563] Image Alignment failed 0 -[11:32:45.563] frame process finished the id is: 126 the obs is:450 -[11:32:45.664] Image Alignment failed 0 -[11:32:45.664] frame process finished the id is: 126 the obs is:450 -[11:32:45.767] Image Alignment failed 0 -[11:32:45.767] frame process finished the id is: 126 the obs is:450 -[11:32:45.864] Image Alignment failed 0 -[11:32:45.864] frame process finished the id is: 126 the obs is:450 -[11:32:45.965] Image Alignment failed 0 -[11:32:45.965] frame process finished the id is: 126 the obs is:450 -[11:32:46.064] Image Alignment failed 0 -[11:32:46.064] frame process finished the id is: 126 the obs is:450 -[11:32:46.165] Image Alignment failed 0 -[11:32:46.165] frame process finished the id is: 126 the obs is:450 -[11:32:46.264] Image Alignment failed 0 -[11:32:46.264] frame process finished the id is: 126 the obs is:450 -[11:32:46.365] Image Alignment failed 0 -[11:32:46.365] frame process finished the id is: 126 the obs is:450 -[11:32:46.464] Image Alignment failed 0 -[11:32:46.464] frame process finished the id is: 126 the obs is:450 -[11:32:46.565] Image Alignment failed 0 -[11:32:46.565] frame process finished the id is: 126 the obs is:450 -[11:32:46.664] Image Alignment failed 0 -[11:32:46.664] frame process finished the id is: 126 the obs is:450 -[11:32:46.765] Image Alignment failed 0 -[11:32:46.765] frame process finished the id is: 126 the obs is:450 -[11:32:46.865] Image Alignment failed 0 -[11:32:46.865] frame process finished the id is: 126 the obs is:450 -[11:32:46.965] Image Alignment failed 0 -[11:32:46.965] frame process finished the id is: 126 the obs is:450 -[11:32:47.065] Image Alignment failed 0 -[11:32:47.065] frame process finished the id is: 126 the obs is:450 -[11:32:47.167] Image Alignment failed 0 -[11:32:47.167] frame process finished the id is: 126 the obs is:450 -[11:32:47.266] Image Alignment failed 0 -[11:32:47.266] frame process finished the id is: 126 the obs is:450 -[11:32:47.369] Image Alignment failed 0 -[11:32:47.369] frame process finished the id is: 126 the obs is:450 -[11:32:47.464] Image Alignment failed 0 -[11:32:47.464] frame process finished the id is: 126 the obs is:450 -[11:32:47.564] Image Alignment failed 0 -[11:32:47.564] frame process finished the id is: 126 the obs is:450 -[11:32:47.664] Image Alignment failed 0 -[11:32:47.664] frame process finished the id is: 126 the obs is:450 -[11:32:47.764] Image Alignment failed 0 -[11:32:47.764] frame process finished the id is: 126 the obs is:450 -[11:32:47.864] Image Alignment failed 0 -[11:32:47.864] frame process finished the id is: 126 the obs is:450 -[11:32:47.963] Image Alignment failed 0 -[11:32:47.963] frame process finished the id is: 126 the obs is:450 -[11:32:48.064] Image Alignment failed 0 -[11:32:48.065] frame process finished the id is: 126 the obs is:450 -[11:32:48.165] Image Alignment failed 0 -[11:32:48.165] frame process finished the id is: 126 the obs is:450 -[11:32:48.264] Image Alignment failed 0 -[11:32:48.264] frame process finished the id is: 126 the obs is:450 -[11:32:48.365] Image Alignment failed 0 -[11:32:48.365] frame process finished the id is: 126 the obs is:450 -[11:32:48.464] Image Alignment failed 0 -[11:32:48.464] frame process finished the id is: 126 the obs is:450 -[11:32:48.566] Image Alignment failed 0 -[11:32:48.566] frame process finished the id is: 126 the obs is:450 -[11:32:48.665] Image Alignment failed 0 -[11:32:48.665] frame process finished the id is: 126 the obs is:450 -[11:32:48.765] Image Alignment failed 0 -[11:32:48.765] frame process finished the id is: 126 the obs is:450 -[11:32:48.865] Image Alignment failed 0 -[11:32:48.865] frame process finished the id is: 126 the obs is:450 -[11:32:48.965] Image Alignment failed 0 -[11:32:48.965] frame process finished the id is: 126 the obs is:450 -[11:32:49.064] Image Alignment failed 0 -[11:32:49.064] frame process finished the id is: 126 the obs is:450 -[11:32:49.164] Image Alignment failed 0 -[11:32:49.164] frame process finished the id is: 126 the obs is:450 -[11:32:49.264] Image Alignment failed 0 -[11:32:49.264] frame process finished the id is: 126 the obs is:450 -[11:32:49.361] Image Alignment failed 0 -[11:32:49.361] frame process finished the id is: 126 the obs is:450 -[11:32:49.465] Image Alignment failed 0 -[11:32:49.465] frame process finished the id is: 126 the obs is:450 -[11:32:49.565] Image Alignment failed 0 -[11:32:49.566] frame process finished the id is: 126 the obs is:450 -[11:32:49.665] Image Alignment failed 0 -[11:32:49.665] frame process finished the id is: 126 the obs is:450 -[11:32:49.765] Image Alignment failed 0 -[11:32:49.765] frame process finished the id is: 126 the obs is:450 -[11:32:49.865] Image Alignment failed 0 -[11:32:49.865] frame process finished the id is: 126 the obs is:450 -[11:32:49.965] Image Alignment failed 0 -[11:32:49.965] frame process finished the id is: 126 the obs is:450 -[11:32:50.065] Image Alignment failed 0 -[11:32:50.065] frame process finished the id is: 126 the obs is:450 -[11:32:50.165] Image Alignment failed 0 -[11:32:50.165] frame process finished the id is: 126 the obs is:450 -[11:32:50.264] Image Alignment failed 0 -[11:32:50.264] frame process finished the id is: 126 the obs is:450 -[11:32:50.366] Image Alignment failed 0 -[11:32:50.366] frame process finished the id is: 126 the obs is:450 -[11:32:50.465] Image Alignment failed 0 -[11:32:50.465] frame process finished the id is: 126 the obs is:450 -[11:32:50.564] Image Alignment failed 0 -[11:32:50.564] frame process finished the id is: 126 the obs is:450 -[11:32:50.665] Image Alignment failed 0 -[11:32:50.665] frame process finished the id is: 126 the obs is:450 -[11:32:50.766] Image Alignment failed 0 -[11:32:50.766] frame process finished the id is: 126 the obs is:450 -[11:32:50.864] Image Alignment failed 0 -[11:32:50.864] frame process finished the id is: 126 the obs is:450 -[11:32:50.964] Image Alignment failed 0 -[11:32:50.964] frame process finished the id is: 126 the obs is:450 -[11:32:51.064] Image Alignment failed 0 -[11:32:51.065] frame process finished the id is: 126 the obs is:450 -[11:32:51.164] Image Alignment failed 0 -[11:32:51.164] frame process finished the id is: 126 the obs is:450 -[11:32:51.264] Image Alignment failed 0 -[11:32:51.264] frame process finished the id is: 126 the obs is:450 -[11:32:51.365] Image Alignment failed 0 -[11:32:51.365] frame process finished the id is: 126 the obs is:450 -[11:32:51.464] Image Alignment failed 0 -[11:32:51.464] frame process finished the id is: 126 the obs is:450 -[11:32:51.564] Image Alignment failed 0 -[11:32:51.564] frame process finished the id is: 126 the obs is:450 -[11:32:51.665] Image Alignment failed 0 -[11:32:51.665] frame process finished the id is: 126 the obs is:450 -[11:32:51.764] Image Alignment failed 0 -[11:32:51.765] frame process finished the id is: 126 the obs is:450 -[11:32:51.863] Image Alignment failed 0 -[11:32:51.863] frame process finished the id is: 126 the obs is:450 -[11:32:51.964] Image Alignment failed 0 -[11:32:51.964] frame process finished the id is: 126 the obs is:450 -[11:32:52.064] Image Alignment failed 0 -[11:32:52.064] frame process finished the id is: 126 the obs is:450 -[11:32:52.165] Image Alignment failed 0 -[11:32:52.165] frame process finished the id is: 126 the obs is:450 -[11:32:52.265] Image Alignment failed 0 -[11:32:52.265] frame process finished the id is: 126 the obs is:450 -[11:32:52.365] Image Alignment failed 0 -[11:32:52.365] frame process finished the id is: 126 the obs is:450 -[11:32:52.466] Image Alignment failed 0 -[11:32:52.466] frame process finished the id is: 126 the obs is:450 -[11:32:52.565] Image Alignment failed 0 -[11:32:52.565] frame process finished the id is: 126 the obs is:450 -[11:32:52.668] Image Alignment failed 0 -[11:32:52.668] frame process finished the id is: 126 the obs is:450 -[11:32:52.768] Image Alignment failed 0 -[11:32:52.768] frame process finished the id is: 126 the obs is:450 -[11:32:52.867] Image Alignment failed 0 -[11:32:52.867] frame process finished the id is: 126 the obs is:450 -[11:32:52.961] Image Alignment failed 0 -[11:32:52.961] frame process finished the id is: 126 the obs is:450 -[11:32:53.065] Image Alignment failed 0 -[11:32:53.065] frame process finished the id is: 126 the obs is:450 -[11:32:53.165] Image Alignment failed 0 -[11:32:53.165] frame process finished the id is: 126 the obs is:450 -[11:32:53.265] Image Alignment failed 0 -[11:32:53.265] frame process finished the id is: 126 the obs is:450 -[11:32:53.365] Image Alignment failed 0 -[11:32:53.365] frame process finished the id is: 126 the obs is:450 -[11:32:53.465] Image Alignment failed 0 -[11:32:53.465] frame process finished the id is: 126 the obs is:450 -[11:32:53.566] Image Alignment failed 0 -[11:32:53.566] frame process finished the id is: 126 the obs is:450 -[11:32:53.664] Image Alignment failed 0 -[11:32:53.665] frame process finished the id is: 126 the obs is:450 -[11:32:53.765] Image Alignment failed 0 -[11:32:53.765] frame process finished the id is: 126 the obs is:450 -[11:32:53.865] Image Alignment failed 0 -[11:32:53.865] frame process finished the id is: 126 the obs is:450 -[11:32:53.966] Image Alignment failed 0 -[11:32:53.966] frame process finished the id is: 126 the obs is:450 -[11:32:54.065] Image Alignment failed 0 -[11:32:54.065] frame process finished the id is: 126 the obs is:450 -[11:32:54.166] Image Alignment failed 0 -[11:32:54.166] frame process finished the id is: 126 the obs is:450 -[11:32:54.264] Image Alignment failed 0 -[11:32:54.264] frame process finished the id is: 126 the obs is:450 -[11:32:54.367] Image Alignment failed 0 -[11:32:54.367] frame process finished the id is: 126 the obs is:450 -[11:32:54.468] Image Alignment failed 0 -[11:32:54.468] frame process finished the id is: 126 the obs is:450 -[11:32:54.566] Image Alignment failed 0 -[11:32:54.566] frame process finished the id is: 126 the obs is:450 -[11:32:54.666] Image Alignment failed 0 -[11:32:54.666] frame process finished the id is: 126 the obs is:450 -[11:32:54.768] Image Alignment failed 0 -[11:32:54.768] frame process finished the id is: 126 the obs is:450 -[11:32:54.864] Image Alignment failed 0 -[11:32:54.864] frame process finished the id is: 126 the obs is:450 -[11:32:54.966] Image Alignment failed 0 -[11:32:54.966] frame process finished the id is: 126 the obs is:450 -[11:32:55.064] Image Alignment failed 0 -[11:32:55.064] frame process finished the id is: 126 the obs is:450 -[11:32:55.165] Image Alignment failed 0 -[11:32:55.165] frame process finished the id is: 126 the obs is:450 -[11:32:55.264] Image Alignment failed 0 -[11:32:55.264] frame process finished the id is: 126 the obs is:450 -[11:32:55.365] Image Alignment failed 0 -[11:32:55.365] frame process finished the id is: 126 the obs is:450 -[11:32:55.465] Image Alignment failed 0 -[11:32:55.465] frame process finished the id is: 126 the obs is:450 -[11:32:55.566] Image Alignment failed 0 -[11:32:55.566] frame process finished the id is: 126 the obs is:450 -[11:32:55.664] Image Alignment failed 0 -[11:32:55.665] frame process finished the id is: 126 the obs is:450 -[11:32:55.768] Image Alignment failed 0 -[11:32:55.768] frame process finished the id is: 126 the obs is:450 -[11:32:55.866] Image Alignment failed 0 -[11:32:55.866] frame process finished the id is: 126 the obs is:450 -[11:32:55.963] Image Alignment failed 0 -[11:32:55.963] frame process finished the id is: 126 the obs is:450 -[11:32:56.066] Image Alignment failed 0 -[11:32:56.066] frame process finished the id is: 126 the obs is:450 -[11:32:56.167] Image Alignment failed 0 -[11:32:56.167] frame process finished the id is: 126 the obs is:450 -[11:32:56.265] Image Alignment failed 0 -[11:32:56.265] frame process finished the id is: 126 the obs is:450 -[11:32:56.366] Image Alignment failed 0 -[11:32:56.366] frame process finished the id is: 126 the obs is:450 -[11:32:56.466] Image Alignment failed 0 -[11:32:56.466] frame process finished the id is: 126 the obs is:450 -[11:32:56.565] Image Alignment failed 0 -[11:32:56.565] frame process finished the id is: 126 the obs is:450 -[11:32:56.663] Image Alignment failed 0 -[11:32:56.663] frame process finished the id is: 126 the obs is:450 -[11:32:56.767] Image Alignment failed 0 -[11:32:56.767] frame process finished the id is: 126 the obs is:450 -[11:32:56.865] Image Alignment failed 0 -[11:32:56.865] frame process finished the id is: 126 the obs is:450 -[11:32:56.965] Image Alignment failed 0 -[11:32:56.965] frame process finished the id is: 126 the obs is:450 -[11:32:57.066] Image Alignment failed 0 -[11:32:57.066] frame process finished the id is: 126 the obs is:450 -[11:32:57.168] Image Alignment failed 0 -[11:32:57.168] frame process finished the id is: 126 the obs is:450 -[11:32:57.265] Image Alignment failed 0 -[11:32:57.265] frame process finished the id is: 126 the obs is:450 -[11:32:57.365] Image Alignment failed 0 -[11:32:57.366] frame process finished the id is: 126 the obs is:450 -[11:32:57.465] Image Alignment failed 0 -[11:32:57.465] frame process finished the id is: 126 the obs is:450 -[11:32:57.565] Image Alignment failed 0 -[11:32:57.565] frame process finished the id is: 126 the obs is:450 -[11:32:57.665] Image Alignment failed 0 -[11:32:57.665] frame process finished the id is: 126 the obs is:450 -[11:32:57.765] Image Alignment failed 0 -[11:32:57.765] frame process finished the id is: 126 the obs is:450 -[11:32:57.864] Image Alignment failed 0 -[11:32:57.865] frame process finished the id is: 126 the obs is:450 -[11:32:57.966] Image Alignment failed 0 -[11:32:57.966] frame process finished the id is: 126 the obs is:450 -[11:32:58.068] Image Alignment failed 0 -[11:32:58.068] frame process finished the id is: 126 the obs is:450 -[11:32:58.164] Image Alignment failed 0 -[11:32:58.164] frame process finished the id is: 126 the obs is:450 -[11:32:58.264] Image Alignment failed 0 -[11:32:58.264] frame process finished the id is: 126 the obs is:450 -[11:32:58.365] Image Alignment failed 0 -[11:32:58.366] frame process finished the id is: 126 the obs is:450 -[11:32:58.464] Image Alignment failed 0 -[11:32:58.464] frame process finished the id is: 126 the obs is:450 -[11:32:58.565] Image Alignment failed 0 -[11:32:58.565] frame process finished the id is: 126 the obs is:450 -[11:32:58.665] Image Alignment failed 0 -[11:32:58.665] frame process finished the id is: 126 the obs is:450 -[11:32:58.766] Image Alignment failed 0 -[11:32:58.766] frame process finished the id is: 126 the obs is:450 -[11:32:58.865] Image Alignment failed 0 -[11:32:58.865] frame process finished the id is: 126 the obs is:450 -[11:32:58.967] Image Alignment failed 0 -[11:32:58.967] frame process finished the id is: 126 the obs is:450 -[11:32:59.068] Image Alignment failed 0 -[11:32:59.068] frame process finished the id is: 126 the obs is:450 -[11:32:59.167] Image Alignment failed 0 -[11:32:59.167] frame process finished the id is: 126 the obs is:450 -[11:32:59.265] Image Alignment failed 0 -[11:32:59.265] frame process finished the id is: 126 the obs is:450 -[11:32:59.366] Image Alignment failed 0 -[11:32:59.367] frame process finished the id is: 126 the obs is:450 -[11:32:59.466] Image Alignment failed 0 -[11:32:59.466] frame process finished the id is: 126 the obs is:450 -[11:32:59.566] Image Alignment failed 0 -[11:32:59.566] frame process finished the id is: 126 the obs is:450 -[11:32:59.666] Image Alignment failed 0 -[11:32:59.666] frame process finished the id is: 126 the obs is:450 -[11:32:59.767] Image Alignment failed 0 -[11:32:59.767] frame process finished the id is: 126 the obs is:450 -[11:32:59.864] Image Alignment failed 0 -[11:32:59.864] frame process finished the id is: 126 the obs is:450 -[11:32:59.966] Image Alignment failed 0 -[11:32:59.966] frame process finished the id is: 126 the obs is:450 -[11:33:00.067] Image Alignment failed 0 -[11:33:00.067] frame process finished the id is: 126 the obs is:450 -[11:33:00.165] Image Alignment failed 0 -[11:33:00.165] frame process finished the id is: 126 the obs is:450 -[11:33:00.267] Image Alignment failed 0 -[11:33:00.267] frame process finished the id is: 126 the obs is:450 -[11:33:00.365] Image Alignment failed 0 -[11:33:00.365] frame process finished the id is: 126 the obs is:450 -[11:33:00.466] Image Alignment failed 0 -[11:33:00.466] frame process finished the id is: 126 the obs is:450 -[11:33:00.572] Image Alignment failed 0 -[11:33:00.572] frame process finished the id is: 126 the obs is:450 -[11:33:00.658] Image Alignment failed 0 -[11:33:00.658] frame process finished the id is: 126 the obs is:450 -[11:33:00.765] Image Alignment failed 0 -[11:33:00.765] frame process finished the id is: 126 the obs is:450 -[11:33:00.865] Image Alignment failed 0 -[11:33:00.865] frame process finished the id is: 126 the obs is:450 -[11:33:00.965] Image Alignment failed 0 -[11:33:00.965] frame process finished the id is: 126 the obs is:450 -[11:33:01.065] Image Alignment failed 0 -[11:33:01.065] frame process finished the id is: 126 the obs is:450 -[11:33:01.168] Image Alignment failed 0 -[11:33:01.168] frame process finished the id is: 126 the obs is:450 -[11:33:01.265] Image Alignment failed 0 -[11:33:01.265] frame process finished the id is: 126 the obs is:450 -[11:33:01.366] Image Alignment failed 0 -[11:33:01.366] frame process finished the id is: 126 the obs is:450 -[11:33:01.465] Image Alignment failed 0 -[11:33:01.465] frame process finished the id is: 126 the obs is:450 -[11:33:01.566] Image Alignment failed 0 -[11:33:01.566] frame process finished the id is: 126 the obs is:450 -[11:33:01.666] Image Alignment failed 0 -[11:33:01.666] frame process finished the id is: 126 the obs is:450 -[11:33:01.766] Image Alignment failed 0 -[11:33:01.766] frame process finished the id is: 126 the obs is:450 -[11:33:01.867] Image Alignment failed 0 -[11:33:01.867] frame process finished the id is: 126 the obs is:450 -[11:33:01.965] Image Alignment failed 0 -[11:33:01.965] frame process finished the id is: 126 the obs is:450 -[11:33:02.065] Image Alignment failed 0 -[11:33:02.065] frame process finished the id is: 126 the obs is:450 -[11:33:02.167] Image Alignment failed 0 -[11:33:02.167] frame process finished the id is: 126 the obs is:450 -[11:33:02.265] Image Alignment failed 0 -[11:33:02.265] frame process finished the id is: 126 the obs is:450 -[11:33:02.366] Image Alignment failed 0 -[11:33:02.366] frame process finished the id is: 126 the obs is:450 -[11:33:02.466] Image Alignment failed 0 -[11:33:02.466] frame process finished the id is: 126 the obs is:450 -[11:33:02.566] Image Alignment failed 0 -[11:33:02.566] frame process finished the id is: 126 the obs is:450 -[11:33:02.666] Image Alignment failed 0 -[11:33:02.666] frame process finished the id is: 126 the obs is:450 -[11:33:02.767] Image Alignment failed 0 -[11:33:02.767] frame process finished the id is: 126 the obs is:450 -[11:33:02.865] Image Alignment failed 0 -[11:33:02.865] frame process finished the id is: 126 the obs is:450 -[11:33:02.966] Image Alignment failed 0 -[11:33:02.966] frame process finished the id is: 126 the obs is:450 -[11:33:03.065] Image Alignment failed 0 -[11:33:03.065] frame process finished the id is: 126 the obs is:450 -[11:33:03.166] Image Alignment failed 0 -[11:33:03.166] frame process finished the id is: 126 the obs is:450 -[11:33:03.265] Image Alignment failed 0 -[11:33:03.265] frame process finished the id is: 126 the obs is:450 -[11:33:03.367] Image Alignment failed 0 -[11:33:03.368] frame process finished the id is: 126 the obs is:450 -[11:33:03.465] Image Alignment failed 0 -[11:33:03.465] frame process finished the id is: 126 the obs is:450 -[11:33:03.566] Image Alignment failed 0 -[11:33:03.566] frame process finished the id is: 126 the obs is:450 -[11:33:03.668] Image Alignment failed 0 -[11:33:03.669] frame process finished the id is: 126 the obs is:450 -[11:33:03.766] Image Alignment failed 0 -[11:33:03.766] frame process finished the id is: 126 the obs is:450 -[11:33:03.865] Image Alignment failed 0 -[11:33:03.865] frame process finished the id is: 126 the obs is:450 -[11:33:03.966] Image Alignment failed 0 -[11:33:03.966] frame process finished the id is: 126 the obs is:450 -[11:33:04.065] Image Alignment failed 0 -[11:33:04.065] frame process finished the id is: 126 the obs is:450 -[11:33:04.166] Image Alignment failed 0 -[11:33:04.166] frame process finished the id is: 126 the obs is:450 -[11:33:04.273] Image Alignment failed 0 -[11:33:04.273] frame process finished the id is: 126 the obs is:450 -[11:33:04.361] Image Alignment failed 0 -[11:33:04.361] frame process finished the id is: 126 the obs is:450 -[11:33:04.465] Image Alignment failed 0 -[11:33:04.465] frame process finished the id is: 126 the obs is:450 -[11:33:04.567] Image Alignment failed 0 -[11:33:04.567] frame process finished the id is: 126 the obs is:450 -[11:33:04.666] Image Alignment failed 0 -[11:33:04.666] frame process finished the id is: 126 the obs is:450 -[11:33:04.766] Image Alignment failed 0 -[11:33:04.766] frame process finished the id is: 126 the obs is:450 -[11:33:04.865] Image Alignment failed 0 -[11:33:04.865] frame process finished the id is: 126 the obs is:450 -[11:33:04.965] Image Alignment failed 0 -[11:33:04.965] frame process finished the id is: 126 the obs is:450 -[11:33:05.065] Image Alignment failed 0 -[11:33:05.065] frame process finished the id is: 126 the obs is:450 -[11:33:05.165] Image Alignment failed 0 -[11:33:05.165] frame process finished the id is: 126 the obs is:450 -[11:33:05.265] Image Alignment failed 0 -[11:33:05.266] frame process finished the id is: 126 the obs is:450 -[11:33:05.366] Image Alignment failed 0 -[11:33:05.366] frame process finished the id is: 126 the obs is:450 -[11:33:05.466] Image Alignment failed 0 -[11:33:05.466] frame process finished the id is: 126 the obs is:450 -[11:33:05.566] Image Alignment failed 0 -[11:33:05.566] frame process finished the id is: 126 the obs is:450 -[11:33:05.667] Image Alignment failed 0 -[11:33:05.667] frame process finished the id is: 126 the obs is:450 -[11:33:05.766] Image Alignment failed 0 -[11:33:05.767] frame process finished the id is: 126 the obs is:450 -[11:33:05.865] Image Alignment failed 0 -[11:33:05.865] frame process finished the id is: 126 the obs is:450 -[11:33:05.965] Image Alignment failed 0 -[11:33:05.965] frame process finished the id is: 126 the obs is:450 -[11:33:06.065] Image Alignment failed 0 -[11:33:06.065] frame process finished the id is: 126 the obs is:450 -[11:33:06.166] Image Alignment failed 0 -[11:33:06.166] frame process finished the id is: 126 the obs is:450 -[11:33:06.268] Image Alignment failed 0 -[11:33:06.268] frame process finished the id is: 126 the obs is:450 -[11:33:06.341] Odometry x=-0.054308, y=1.292630, theta=0.039501 -[11:33:06.366] Image Alignment failed 0 -[11:33:06.366] frame process finished the id is: 126 the obs is:450 -[11:33:06.442] Odometry x=-0.053236, y=1.265280, theta=0.041255 -[11:33:06.466] Image Alignment failed 0 -[11:33:06.467] frame process finished the id is: 126 the obs is:450 -[11:33:06.542] Odometry x=-0.052176, y=1.239758, theta=0.042955 -[11:33:06.567] Image Alignment failed 0 -[11:33:06.567] frame process finished the id is: 126 the obs is:450 -[11:33:06.642] Odometry x=-0.051104, y=1.214960, theta=0.044360 -[11:33:06.666] Image Alignment failed 0 -[11:33:06.666] frame process finished the id is: 126 the obs is:450 -[11:33:06.742] Odometry x=-0.050025, y=1.190405, theta=0.039098 -[11:33:06.766] Image Alignment failed 0 -[11:33:06.766] frame process finished the id is: 126 the obs is:450 -[11:33:06.841] Odometry x=-0.049080, y=1.165956, theta=0.051278 -[11:33:06.868] Image Alignment failed 0 -[11:33:06.868] frame process finished the id is: 126 the obs is:450 -[11:33:06.942] Odometry x=-0.047836, y=1.141593, theta=0.059902 -[11:33:06.966] Image Alignment failed 0 -[11:33:06.966] frame process finished the id is: 126 the obs is:450 -[11:33:07.042] Odometry x=-0.046343, y=1.117250, theta=0.055289 -[11:33:07.066] Image Alignment failed 0 -[11:33:07.066] frame process finished the id is: 126 the obs is:450 -[11:33:07.141] Odometry x=-0.045005, y=1.092918, theta=0.055711 -[11:33:07.168] Image Alignment failed 0 -[11:33:07.168] frame process finished the id is: 126 the obs is:450 -[11:33:07.240] Odometry x=-0.043604, y=1.068546, theta=0.046945 -[11:33:07.264] Image Alignment failed 0 -[11:33:07.264] frame process finished the id is: 126 the obs is:450 -[11:33:07.341] Odometry x=-0.042517, y=1.044174, theta=0.054174 -[11:33:07.368] Image Alignment failed 0 -[11:33:07.368] frame process finished the id is: 126 the obs is:450 -[11:33:07.444] Odometry x=-0.041165, y=1.019827, theta=0.052163 -[11:33:07.468] Image Alignment failed 0 -[11:33:07.468] frame process finished the id is: 126 the obs is:450 -[11:33:07.538] Odometry x=-0.039922, y=0.995470, theta=0.055324 -[11:33:07.569] Image Alignment failed 0 -[11:33:07.569] frame process finished the id is: 126 the obs is:450 -[11:33:07.643] Odometry x=-0.038618, y=0.971147, theta=0.070483 -[11:33:07.668] Image Alignment failed 0 -[11:33:07.668] frame process finished the id is: 126 the obs is:450 -[11:33:07.742] Odometry x=-0.036866, y=0.946817, theta=0.068634 -[11:33:07.760] Image Alignment failed 0 -[11:33:07.760] frame process finished the id is: 126 the obs is:450 -[11:33:07.841] Odometry x=-0.035243, y=0.922517, theta=0.070405 -[11:33:07.866] Image Alignment failed 0 -[11:33:07.866] frame process finished the id is: 126 the obs is:450 -[11:33:07.941] Odometry x=-0.033545, y=0.898169, theta=0.068827 -[11:33:07.967] Image Alignment failed 0 -[11:33:07.967] frame process finished the id is: 126 the obs is:450 -[11:33:08.037] Odometry x=-0.031831, y=0.873883, theta=0.063407 -[11:33:08.068] Image Alignment failed 0 -[11:33:08.068] frame process finished the id is: 126 the obs is:450 -[11:33:08.141] Odometry x=-0.030286, y=0.849535, theta=0.064626 -[11:33:08.169] Image Alignment failed 0 -[11:33:08.169] frame process finished the id is: 126 the obs is:450 -[11:33:08.241] Odometry x=-0.028705, y=0.825193, theta=0.068556 -[11:33:08.270] Image Alignment failed 0 -[11:33:08.270] frame process finished the id is: 126 the obs is:450 -[11:33:08.346] Odometry x=-0.027060, y=0.800884, theta=0.072221 -[11:33:08.368] Image Alignment failed 0 -[11:33:08.368] frame process finished the id is: 126 the obs is:450 -[11:33:08.441] Odometry x=-0.025261, y=0.776554, theta=0.071650 -[11:33:08.468] Image Alignment failed 0 -[11:33:08.468] frame process finished the id is: 126 the obs is:450 -[11:33:08.541] Odometry x=-0.023492, y=0.752270, theta=0.070596 -[11:33:08.568] Image Alignment failed 0 -[11:33:08.568] frame process finished the id is: 126 the obs is:450 -[11:33:08.641] Odometry x=-0.021751, y=0.727928, theta=0.062211 -[11:33:08.668] Image Alignment failed 0 -[11:33:08.668] frame process finished the id is: 126 the obs is:450 -[11:33:08.743] Odometry x=-0.020230, y=0.703600, theta=0.053469 -[11:33:08.767] Image Alignment failed 0 -[11:33:08.767] frame process finished the id is: 126 the obs is:450 -[11:33:08.841] Odometry x=-0.018937, y=0.679210, theta=0.061983 -[11:33:08.868] Image Alignment failed 0 -[11:33:08.868] frame process finished the id is: 126 the obs is:450 -[11:33:08.941] Odometry x=-0.017426, y=0.654911, theta=0.062654 -[11:33:08.966] Image Alignment failed 0 -[11:33:08.966] frame process finished the id is: 126 the obs is:450 -[11:33:09.041] Odometry x=-0.015898, y=0.630579, theta=0.066373 -[11:33:09.066] Image Alignment failed 0 -[11:33:09.066] frame process finished the id is: 126 the obs is:450 -[11:33:09.143] Odometry x=-0.014276, y=0.606239, theta=0.070622 -[11:33:09.166] Image Alignment failed 0 -[11:33:09.166] frame process finished the id is: 126 the obs is:450 -[11:33:09.243] Odometry x=-0.012504, y=0.581946, theta=0.065702 -[11:33:09.266] Image Alignment failed 0 -[11:33:09.266] frame process finished the id is: 126 the obs is:450 -[11:33:09.344] Odometry x=-0.010922, y=0.557587, theta=0.069493 -[11:33:09.367] Image Alignment failed 0 -[11:33:09.367] frame process finished the id is: 126 the obs is:450 -[11:33:09.442] Odometry x=-0.009248, y=0.533249, theta=0.070172 -[11:33:09.468] Image Alignment failed 0 -[11:33:09.468] frame process finished the id is: 126 the obs is:450 -[11:33:09.542] Odometry x=-0.007516, y=0.508952, theta=0.057413 -[11:33:09.566] Image Alignment failed 0 -[11:33:09.566] frame process finished the id is: 126 the obs is:450 -[11:33:09.642] Odometry x=-0.006123, y=0.484607, theta=0.062585 -[11:33:09.666] Image Alignment failed 0 -[11:33:09.666] frame process finished the id is: 126 the obs is:450 -[11:33:09.742] Odometry x=-0.004593, y=0.460280, theta=0.067243 -[11:33:09.767] Image Alignment failed 0 -[11:33:09.767] frame process finished the id is: 126 the obs is:450 -[11:33:09.842] Odometry x=-0.002956, y=0.435929, theta=0.077865 -[11:33:09.866] Image Alignment failed 0 -[11:33:09.866] frame process finished the id is: 126 the obs is:450 -[11:33:09.941] Odometry x=-0.001054, y=0.411649, theta=0.078179 -[11:33:09.967] Image Alignment failed 0 -[11:33:09.967] frame process finished the id is: 126 the obs is:450 -[11:33:10.041] Odometry x=0.000850, y=0.387339, theta=0.077449 -[11:33:10.066] Image Alignment failed 0 -[11:33:10.066] frame process finished the id is: 126 the obs is:450 -[11:33:10.145] Odometry x=0.002699, y=0.363006, theta=0.083197 -[11:33:10.160] Image Alignment failed 0 -[11:33:10.160] frame process finished the id is: 126 the obs is:450 -[11:33:10.245] Odometry x=0.004764, y=0.338734, theta=0.080568 -[11:33:10.266] Image Alignment failed 0 -[11:33:10.266] frame process finished the id is: 126 the obs is:450 -[11:33:10.344] Odometry x=0.006750, y=0.314444, theta=0.076180 -[11:33:10.366] Image Alignment failed 0 -[11:33:10.366] frame process finished the id is: 126 the obs is:450 -[11:33:10.441] Odometry x=0.008589, y=0.290109, theta=0.076314 -[11:33:10.466] Image Alignment failed 0 -[11:33:10.466] frame process finished the id is: 126 the obs is:450 -[11:33:10.536] Odometry x=0.010438, y=0.265803, theta=0.077942 -[11:33:10.567] Image Alignment failed 0 -[11:33:10.567] frame process finished the id is: 126 the obs is:450 -[11:33:10.642] Odometry x=0.012329, y=0.241493, theta=0.079011 -[11:33:10.666] Image Alignment failed 0 -[11:33:10.666] frame process finished the id is: 126 the obs is:450 -[11:33:10.737] Odometry x=0.014308, y=0.217181, theta=0.070552 -[11:33:10.767] Image Alignment failed 0 -[11:33:10.767] frame process finished the id is: 126 the obs is:450 -[11:33:10.842] Odometry x=0.016012, y=0.192882, theta=0.069323 -[11:33:10.866] Image Alignment failed 0 -[11:33:10.866] frame process finished the id is: 126 the obs is:450 -[11:33:10.947] Odometry x=0.017738, y=0.168552, theta=0.066985 -[11:33:10.967] Image Alignment failed 0 -[11:33:10.967] frame process finished the id is: 126 the obs is:450 -[11:33:11.041] Odometry x=0.019376, y=0.144244, theta=0.056723 -[11:33:11.066] Image Alignment failed 0 -[11:33:11.066] frame process finished the id is: 126 the obs is:450 -[11:33:11.142] Odometry x=0.020776, y=0.119913, theta=0.054775 -[11:33:11.167] Image Alignment failed 0 -[11:33:11.167] frame process finished the id is: 126 the obs is:450 -[11:33:11.236] Odometry x=0.022102, y=0.095588, theta=0.061411 -[11:33:11.266] Image Alignment failed 0 -[11:33:11.266] frame process finished the id is: 126 the obs is:450 -[11:33:11.342] Odometry x=0.023598, y=0.071262, theta=0.065053 -[11:33:11.367] Image Alignment failed 0 -[11:33:11.367] frame process finished the id is: 126 the obs is:450 -[11:33:11.442] Odometry x=0.025154, y=0.046947, theta=0.067525 -[11:33:11.468] Image Alignment failed 0 -[11:33:11.468] frame process finished the id is: 126 the obs is:450 -[11:33:11.540] Odometry x=0.026815, y=0.022627, theta=0.062567 -[11:33:11.569] Image Alignment failed 0 -[11:33:11.569] frame process finished the id is: 126 the obs is:450 -[11:33:11.639] Odometry x=0.028357, y=-0.001699, theta=0.059138 -[11:33:11.669] Image Alignment failed 0 -[11:33:11.669] frame process finished the id is: 126 the obs is:450 -[11:33:11.741] Odometry x=0.029769, y=-0.026026, theta=0.067850 -[11:33:11.768] Image Alignment failed 0 -[11:33:11.768] frame process finished the id is: 126 the obs is:450 -[11:33:11.844] Odometry x=0.031452, y=-0.050344, theta=0.072096 -[11:33:11.866] Image Alignment failed 0 -[11:33:11.866] frame process finished the id is: 126 the obs is:450 -[11:33:11.940] Odometry x=0.033237, y=-0.074681, theta=0.075476 -[11:33:11.966] Image Alignment failed 0 -[11:33:11.966] frame process finished the id is: 126 the obs is:450 -[11:33:12.036] Odometry x=0.035077, y=-0.098978, theta=0.078750 -[11:33:12.067] Image Alignment failed 0 -[11:33:12.067] frame process finished the id is: 126 the obs is:450 -[11:33:12.140] Odometry x=0.036986, y=-0.123292, theta=0.084971 -[11:33:12.166] Image Alignment failed 0 -[11:33:12.166] frame process finished the id is: 126 the obs is:450 -[11:33:12.240] Odometry x=0.039049, y=-0.147622, theta=0.085633 -[11:33:12.267] Image Alignment failed 0 -[11:33:12.267] frame process finished the id is: 126 the obs is:450 -[11:33:12.345] Odometry x=0.041137, y=-0.171922, theta=0.084549 -[11:33:12.372] Image Alignment failed 0 -[11:33:12.372] frame process finished the id is: 126 the obs is:450 -[11:33:12.443] Odometry x=0.043194, y=-0.196212, theta=0.086007 -[11:33:12.457] Image Alignment failed 0 -[11:33:12.457] frame process finished the id is: 126 the obs is:450 -[11:33:12.543] Odometry x=0.045285, y=-0.220499, theta=0.087818 -[11:33:12.567] Image Alignment failed 0 -[11:33:12.567] frame process finished the id is: 126 the obs is:450 -[11:33:12.642] Odometry x=0.047400, y=-0.244819, theta=0.093396 -[11:33:12.666] Image Alignment failed 0 -[11:33:12.666] frame process finished the id is: 126 the obs is:450 -[11:33:12.738] Odometry x=0.049651, y=-0.269119, theta=0.096917 -[11:33:12.767] Image Alignment failed 0 -[11:33:12.767] frame process finished the id is: 126 the obs is:450 -[11:33:12.838] Odometry x=0.052005, y=-0.293405, theta=0.103276 -[11:33:12.867] Image Alignment failed 0 -[11:33:12.867] frame process finished the id is: 126 the obs is:450 -[11:33:12.942] Odometry x=0.054477, y=-0.317671, theta=0.116393 -[11:33:12.968] Image Alignment failed 0 -[11:33:12.968] frame process finished the id is: 126 the obs is:450 -[11:33:13.040] Odometry x=0.057330, y=-0.341881, theta=0.109720 -[11:33:13.067] Image Alignment failed 0 -[11:33:13.067] frame process finished the id is: 126 the obs is:450 -[11:33:13.139] Odometry x=0.060067, y=-0.366139, theta=0.093712 -[11:33:13.166] Image Alignment failed 0 -[11:33:13.166] frame process finished the id is: 126 the obs is:450 -[11:33:13.239] Odometry x=0.062319, y=-0.390410, theta=0.095369 -[11:33:13.267] Image Alignment failed 0 -[11:33:13.267] frame process finished the id is: 126 the obs is:450 -[11:33:13.338] Odometry x=0.064628, y=-0.414689, theta=0.093620 -[11:33:13.377] Image Alignment failed 0 -[11:33:13.377] frame process finished the id is: 126 the obs is:450 -[11:33:13.438] Odometry x=0.066890, y=-0.438986, theta=0.101079 -[11:33:13.467] Image Alignment failed 0 -[11:33:13.467] frame process finished the id is: 126 the obs is:450 -[11:33:13.539] Odometry x=0.069403, y=-0.463226, theta=0.098150 -[11:33:13.567] Image Alignment failed 0 -[11:33:13.567] frame process finished the id is: 126 the obs is:450 -[11:33:13.639] Odometry x=0.071776, y=-0.487496, theta=0.104984 -[11:33:13.667] Image Alignment failed 0 -[11:33:13.667] frame process finished the id is: 126 the obs is:450 -[11:33:13.739] Odometry x=0.074357, y=-0.511720, theta=0.099072 -[11:33:13.767] Image Alignment failed 0 -[11:33:13.767] frame process finished the id is: 126 the obs is:450 -[11:33:13.843] Odometry x=0.076820, y=-0.535962, theta=0.091674 -[11:33:13.866] Image Alignment failed 0 -[11:33:13.866] frame process finished the id is: 126 the obs is:450 -[11:33:13.943] Odometry x=0.079085, y=-0.560257, theta=0.081421 -[11:33:13.967] Image Alignment failed 0 -[11:33:13.967] frame process finished the id is: 126 the obs is:450 -[11:33:14.039] Odometry x=0.081065, y=-0.584596, theta=0.081652 -[11:33:14.066] Image Alignment failed 0 -[11:33:14.066] frame process finished the id is: 126 the obs is:450 -[11:33:14.138] Odometry x=0.083054, y=-0.608875, theta=0.084785 -[11:33:14.167] Image Alignment failed 0 -[11:33:14.167] frame process finished the id is: 126 the obs is:450 -[11:33:14.240] Odometry x=0.085133, y=-0.633194, theta=0.084019 -[11:33:14.267] Image Alignment failed 0 -[11:33:14.267] frame process finished the id is: 126 the obs is:450 -[11:33:14.345] Odometry x=0.085133, y=-0.633194, theta=0.084019 -[11:33:14.367] Image Alignment failed 0 -[11:33:14.367] frame process finished the id is: 126 the obs is:450 -[11:33:14.441] Odometry x=0.087161, y=-0.657468, theta=0.090464 -[11:33:14.467] Image Alignment failed 0 -[11:33:14.467] frame process finished the id is: 126 the obs is:450 -[11:33:14.545] Odometry x=0.087161, y=-0.657468, theta=0.090464 -[11:33:14.566] Image Alignment failed 0 -[11:33:14.567] frame process finished the id is: 126 the obs is:450 -[11:33:14.638] Odometry x=0.089151, y=-0.679126, theta=0.092712 -[11:33:14.666] Image Alignment failed 0 -[11:33:14.666] frame process finished the id is: 126 the obs is:450 -[11:33:14.744] Odometry x=0.091295, y=-0.700758, theta=0.086325 -[11:33:14.768] Image Alignment failed 0 -[11:33:14.768] frame process finished the id is: 126 the obs is:450 -[11:33:14.844] Odometry x=0.093383, y=-0.724101, theta=0.078234 -[11:33:14.867] Image Alignment failed 0 -[11:33:14.867] frame process finished the id is: 126 the obs is:450 -[11:33:14.942] Odometry x=0.095266, y=-0.748046, theta=0.078124 -[11:33:14.970] Image Alignment failed 0 -[11:33:14.970] frame process finished the id is: 126 the obs is:450 -[11:33:15.060] Odometry x=0.097147, y=-0.772218, theta=0.079891 -[11:33:15.068] Image Alignment failed 0 -[11:33:15.068] frame process finished the id is: 126 the obs is:450 -[11:33:15.142] Odometry x=0.099101, y=-0.796494, theta=0.082792 -[11:33:15.167] Image Alignment failed 0 -[11:33:15.167] frame process finished the id is: 126 the obs is:450 -[11:33:15.244] Odometry x=0.101101, y=-0.820784, theta=0.088321 -[11:33:15.267] Image Alignment failed 0 -[11:33:15.267] frame process finished the id is: 126 the obs is:450 -[11:33:15.338] Odometry x=0.103247, y=-0.845081, theta=0.093091 -[11:33:15.368] Image Alignment failed 0 -[11:33:15.368] frame process finished the id is: 126 the obs is:450 -[11:33:15.437] Odometry x=0.105527, y=-0.869335, theta=0.093115 -[11:33:15.468] Image Alignment failed 0 -[11:33:15.468] frame process finished the id is: 126 the obs is:450 -[11:33:15.537] Odometry x=0.107807, y=-0.893578, theta=0.087321 -[11:33:15.567] Image Alignment failed 0 -[11:33:15.567] frame process finished the id is: 126 the obs is:450 -[11:33:15.638] Odometry x=0.109986, y=-0.917840, theta=0.070739 -[11:33:15.742] Odometry x=0.109986, y=-0.917840, theta=0.070739 -[11:33:15.757] Image Alignment failed 0 -[11:33:15.757] frame process finished the id is: 126 the obs is:450 -[11:33:15.771] Image Alignment failed 0 -[11:33:15.771] frame process finished the id is: 126 the obs is:450 -[11:33:15.840] Odometry x=0.111709, y=-0.942136, theta=0.061175 -[11:33:15.866] Image Alignment failed 0 -[11:33:15.866] frame process finished the id is: 126 the obs is:450 -[11:33:15.944] Odometry x=0.112999, y=-0.963955, theta=0.064452 -[11:33:15.968] Image Alignment failed 0 -[11:33:15.968] frame process finished the id is: 126 the obs is:450 -[11:33:16.044] Odometry x=0.114512, y=-0.987361, theta=0.064522 -[11:33:16.068] Image Alignment failed 0 -[11:33:16.068] frame process finished the id is: 126 the obs is:450 -[11:33:16.144] Odometry x=0.116063, y=-1.011344, theta=0.064794 -[11:33:16.168] Image Alignment failed 0 -[11:33:16.168] frame process finished the id is: 126 the obs is:450 -[11:33:16.244] Odometry x=0.117657, y=-1.035535, theta=0.061210 -[11:33:16.267] Image Alignment failed 0 -[11:33:16.268] frame process finished the id is: 126 the obs is:450 -[11:33:16.339] Odometry x=0.119144, y=-1.059839, theta=0.061159 -[11:33:16.368] Image Alignment failed 0 -[11:33:16.368] frame process finished the id is: 126 the obs is:450 -[11:33:16.444] Odometry x=0.120609, y=-1.084159, theta=0.067031 -[11:33:16.467] Image Alignment failed 0 -[11:33:16.467] frame process finished the id is: 126 the obs is:450 -[11:33:16.544] Odometry x=0.122222, y=-1.108488, theta=0.071259 -[11:33:16.568] Image Alignment failed 0 -[11:33:16.568] frame process finished the id is: 126 the obs is:450 -[11:33:16.644] Odometry x=0.123938, y=-1.132801, theta=0.074929 -[11:33:16.668] Image Alignment failed 0 -[11:33:16.668] frame process finished the id is: 126 the obs is:450 -[11:33:16.744] Odometry x=0.125752, y=-1.157099, theta=0.077801 -[11:33:16.768] Image Alignment failed 0 -[11:33:16.768] frame process finished the id is: 126 the obs is:450 -[11:33:16.839] Odometry x=0.127650, y=-1.181408, theta=0.078220 -[11:33:16.868] Image Alignment failed 0 -[11:33:16.868] frame process finished the id is: 126 the obs is:450 -[11:33:16.944] Odometry x=0.129549, y=-1.205729, theta=0.082414 -[11:33:16.967] Image Alignment failed 0 -[11:33:16.967] frame process finished the id is: 126 the obs is:450 -[11:33:17.040] Odometry x=0.131554, y=-1.230013, theta=0.081088 -[11:33:17.068] Image Alignment failed 0 -[11:33:17.068] frame process finished the id is: 126 the obs is:450 -[11:33:17.145] Odometry x=0.133509, y=-1.254314, theta=0.083882 -[11:33:17.170] Image Alignment failed 0 -[11:33:17.170] frame process finished the id is: 126 the obs is:450 -[11:33:17.245] Odometry x=0.135542, y=-1.278599, theta=0.082022 -[11:33:17.261] Image Alignment failed 0 -[11:33:17.261] frame process finished the id is: 126 the obs is:450 -[11:33:17.338] Odometry x=0.137542, y=-1.302895, theta=0.081907 -[11:33:17.368] Image Alignment failed 0 -[11:33:17.368] frame process finished the id is: 126 the obs is:450 -[11:33:17.436] Odometry x=0.139535, y=-1.327179, theta=0.083116 -[11:33:17.466] Image Alignment failed 0 -[11:33:17.466] frame process finished the id is: 126 the obs is:450 -[11:33:17.543] Odometry x=0.141594, y=-1.351460, theta=0.076198 -[11:33:17.567] Image Alignment failed 0 -[11:33:17.567] frame process finished the id is: 126 the obs is:450 -[11:33:17.637] Odometry x=0.143448, y=-1.375782, theta=0.081423 -[11:33:17.666] Image Alignment failed 0 -[11:33:17.666] frame process finished the id is: 126 the obs is:450 -[11:33:17.743] Odometry x=0.145423, y=-1.400085, theta=0.085216 -[11:33:17.769] Image Alignment failed 0 -[11:33:17.769] frame process finished the id is: 126 the obs is:450 -[11:33:17.844] Odometry x=0.147509, y=-1.424361, theta=0.084080 -[11:33:17.868] Image Alignment failed 0 -[11:33:17.868] frame process finished the id is: 126 the obs is:450 -[11:33:17.945] Odometry x=0.149561, y=-1.448625, theta=0.088897 -[11:33:17.969] Image Alignment failed 0 -[11:33:17.969] frame process finished the id is: 126 the obs is:450 -[11:33:18.041] Odometry x=0.151729, y=-1.472890, theta=0.084750 -[11:33:18.069] Image Alignment failed 0 -[11:33:18.070] frame process finished the id is: 126 the obs is:450 -[11:33:18.141] Odometry x=0.153789, y=-1.497197, theta=0.088616 -[11:33:18.168] Image Alignment failed 0 -[11:33:18.168] frame process finished the id is: 126 the obs is:450 -[11:33:18.236] Odometry x=0.155936, y=-1.521486, theta=0.096097 -[11:33:18.269] Image Alignment failed 0 -[11:33:18.269] frame process finished the id is: 126 the obs is:450 -[11:33:18.341] Odometry x=0.158245, y=-1.545777, theta=0.101256 -[11:33:18.371] Image Alignment failed 0 -[11:33:18.371] frame process finished the id is: 126 the obs is:450 -[11:33:18.442] Odometry x=0.160698, y=-1.570031, theta=0.102564 -[11:33:18.468] Image Alignment failed 0 -[11:33:18.468] frame process finished the id is: 126 the obs is:450 -[11:33:18.542] Odometry x=0.163229, y=-1.594273, theta=0.098366 -[11:33:18.569] Image Alignment failed 0 -[11:33:18.569] frame process finished the id is: 126 the obs is:450 -[11:33:18.642] Odometry x=0.165648, y=-1.618509, theta=0.094673 -[11:33:18.668] Image Alignment failed 0 -[11:33:18.668] frame process finished the id is: 126 the obs is:450 -[11:33:18.737] Odometry x=0.167944, y=-1.642781, theta=0.102550 -[11:33:18.769] Image Alignment failed 0 -[11:33:18.769] frame process finished the id is: 126 the obs is:450 -[11:33:18.838] Odometry x=0.170436, y=-1.667046, theta=0.104288 -[11:33:18.870] Image Alignment failed 0 -[11:33:18.870] frame process finished the id is: 126 the obs is:450 -[11:33:18.942] Odometry x=0.172944, y=-1.691308, theta=0.111281 -[11:33:18.969] Image Alignment failed 0 -[11:33:18.969] frame process finished the id is: 126 the obs is:450 -[11:33:19.044] Odometry x=0.175661, y=-1.715542, theta=0.110532 -[11:33:19.069] Image Alignment failed 0 -[11:33:19.069] frame process finished the id is: 126 the obs is:450 -[11:33:19.138] Odometry x=0.178347, y=-1.739772, theta=0.108916 -[11:33:19.170] Image Alignment failed 0 -[11:33:19.170] frame process finished the id is: 126 the obs is:450 -[11:33:19.242] Odometry x=0.181002, y=-1.764004, theta=0.108735 -[11:33:19.268] Image Alignment failed 0 -[11:33:19.268] frame process finished the id is: 126 the obs is:450 -[11:33:19.341] Odometry x=0.183622, y=-1.788242, theta=0.115114 -[11:33:19.370] Image Alignment failed 0 -[11:33:19.370] frame process finished the id is: 126 the obs is:450 -[11:33:19.440] Odometry x=0.186393, y=-1.812468, theta=0.120505 -[11:33:19.474] Image Alignment failed 0 -[11:33:19.474] frame process finished the id is: 126 the obs is:450 -[11:33:19.543] Odometry x=0.189296, y=-1.836680, theta=0.126268 -[11:33:19.561] Image Alignment failed 0 -[11:33:19.561] frame process finished the id is: 126 the obs is:450 -[11:33:19.645] Odometry x=0.192371, y=-1.860871, theta=0.125368 -[11:33:19.668] Image Alignment failed 0 -[11:33:19.668] frame process finished the id is: 126 the obs is:450 -[11:33:19.741] Odometry x=0.195426, y=-1.885048, theta=0.129438 -[11:33:19.769] Image Alignment failed 0 -[11:33:19.769] frame process finished the id is: 126 the obs is:450 -[11:33:19.837] Odometry x=0.198557, y=-1.909219, theta=0.136674 -[11:33:19.867] Image Alignment failed 0 -[11:33:19.867] frame process finished the id is: 126 the obs is:450 -[11:33:19.943] Odometry x=0.201901, y=-1.933370, theta=0.138700 -[11:33:19.969] Image Alignment failed 0 -[11:33:19.969] frame process finished the id is: 126 the obs is:450 -[11:33:20.040] Odometry x=0.205283, y=-1.957512, theta=0.131270 -[11:33:20.067] Image Alignment failed 0 -[11:33:20.067] frame process finished the id is: 126 the obs is:450 -[11:33:20.139] Odometry x=0.208466, y=-1.981689, theta=0.127667 -[11:33:20.177] Image Alignment failed 0 -[11:33:20.177] frame process finished the id is: 126 the obs is:450 -[11:33:20.244] Odometry x=0.211574, y=-2.005871, theta=0.129658 -[11:33:20.267] Image Alignment failed 0 -[11:33:20.267] frame process finished the id is: 126 the obs is:450 -[11:33:20.337] Odometry x=0.214741, y=-2.030030, theta=0.127195 -[11:33:20.367] Image Alignment failed 0 -[11:33:20.367] frame process finished the id is: 126 the obs is:450 -[11:33:20.437] Odometry x=0.217849, y=-2.054207, theta=0.122806 -[11:33:20.466] Image Alignment failed 0 -[11:33:20.466] frame process finished the id is: 126 the obs is:450 -[11:33:20.543] Odometry x=0.220802, y=-2.078381, theta=0.125315 -[11:33:20.567] Image Alignment failed 0 -[11:33:20.567] frame process finished the id is: 126 the obs is:450 -[11:33:20.636] Odometry x=0.223822, y=-2.102578, theta=0.129952 -[11:33:20.667] Image Alignment failed 0 -[11:33:20.667] frame process finished the id is: 126 the obs is:450 -[11:33:20.739] Odometry x=0.226967, y=-2.126748, theta=0.132716 -[11:33:20.769] Image Alignment failed 0 -[11:33:20.769] frame process finished the id is: 126 the obs is:450 -[11:33:20.840] Odometry x=0.230219, y=-2.150904, theta=0.127980 -[11:33:20.869] Image Alignment failed 0 -[11:33:20.869] frame process finished the id is: 126 the obs is:450 -[11:33:20.941] Odometry x=0.233354, y=-2.175071, theta=0.122768 -[11:33:20.968] Image Alignment failed 0 -[11:33:20.968] frame process finished the id is: 126 the obs is:450 -[11:33:21.041] Odometry x=0.236330, y=-2.199249, theta=0.125144 -[11:33:21.068] Image Alignment failed 0 -[11:33:21.068] frame process finished the id is: 126 the obs is:450 -[11:33:21.141] Odometry x=0.239351, y=-2.223430, theta=0.127809 -[11:33:21.168] Image Alignment failed 0 -[11:33:21.168] frame process finished the id is: 126 the obs is:450 -[11:33:21.235] Odometry x=0.242451, y=-2.247610, theta=0.130982 -[11:33:21.267] Image Alignment failed 0 -[11:33:21.267] frame process finished the id is: 126 the obs is:450 -[11:33:21.345] Odometry x=0.245648, y=-2.271788, theta=0.127086 -[11:33:21.370] Image Alignment failed 0 -[11:33:21.370] frame process finished the id is: 126 the obs is:450 -[11:33:21.441] Odometry x=0.248729, y=-2.295978, theta=0.124391 -[11:33:21.467] Image Alignment failed 0 -[11:33:21.467] frame process finished the id is: 126 the obs is:450 -[11:33:21.541] Odometry x=0.251748, y=-2.320173, theta=0.126367 -[11:33:21.569] Image Alignment failed 0 -[11:33:21.569] frame process finished the id is: 126 the obs is:450 -[11:33:21.641] Odometry x=0.254811, y=-2.344352, theta=0.132725 -[11:33:21.669] Image Alignment failed 0 -[11:33:21.669] frame process finished the id is: 126 the obs is:450 -[11:33:21.742] Odometry x=0.258013, y=-2.368529, theta=0.140044 -[11:33:21.769] Image Alignment failed 0 -[11:33:21.769] frame process finished the id is: 126 the obs is:450 -[11:33:21.836] Odometry x=0.261399, y=-2.392684, theta=0.143283 -[11:33:21.868] Image Alignment failed 0 -[11:33:21.868] frame process finished the id is: 126 the obs is:450 -[11:33:21.941] Odometry x=0.264854, y=-2.416809, theta=0.149555 -[11:33:21.959] Image Alignment failed 0 -[11:33:21.960] frame process finished the id is: 126 the obs is:450 -[11:33:22.041] Odometry x=0.268506, y=-2.440923, theta=0.150044 -[11:33:22.067] Image Alignment failed 0 -[11:33:22.067] frame process finished the id is: 126 the obs is:450 -[11:33:22.142] Odometry x=0.272152, y=-2.465026, theta=0.152980 -[11:33:22.171] Image Alignment failed 0 -[11:33:22.171] frame process finished the id is: 126 the obs is:450 -[11:33:22.239] Odometry x=0.275844, y=-2.489126, theta=0.159846 -[11:33:22.268] Image Alignment failed 0 -[11:33:22.268] frame process finished the id is: 126 the obs is:450 -[11:33:22.344] Odometry x=0.279689, y=-2.513208, theta=0.165144 -[11:33:22.368] Image Alignment failed 0 -[11:33:22.368] frame process finished the id is: 126 the obs is:450 -[11:33:22.444] Odometry x=0.283688, y=-2.537265, theta=0.164441 -[11:33:22.467] Image Alignment failed 0 -[11:33:22.467] frame process finished the id is: 126 the obs is:450 -[11:33:22.540] Odometry x=0.287687, y=-2.561332, theta=0.166945 -[11:33:22.568] Image Alignment failed 0 -[11:33:22.568] frame process finished the id is: 126 the obs is:450 -[11:33:22.639] Odometry x=0.291731, y=-2.585365, theta=0.170375 -[11:33:22.667] Image Alignment failed 0 -[11:33:22.667] frame process finished the id is: 126 the obs is:450 -[11:33:22.742] Odometry x=0.295887, y=-2.609397, theta=0.171587 -[11:33:22.767] Image Alignment failed 0 -[11:33:22.767] frame process finished the id is: 126 the obs is:450 -[11:33:22.838] Odometry x=0.300065, y=-2.633423, theta=0.170359 -[11:33:22.867] Image Alignment failed 0 -[11:33:22.867] frame process finished the id is: 126 the obs is:450 -[11:33:22.937] Odometry x=0.304172, y=-2.657466, theta=0.175537 -[11:33:22.967] Image Alignment failed 0 -[11:33:22.967] frame process finished the id is: 126 the obs is:450 -[11:33:23.046] Odometry x=0.308453, y=-2.681465, theta=0.170240 -[11:33:23.069] Image Alignment failed 0 -[11:33:23.069] frame process finished the id is: 126 the obs is:450 -[11:33:23.140] Odometry x=0.312596, y=-2.705489, theta=0.164733 -[11:33:23.169] Image Alignment failed 0 -[11:33:23.169] frame process finished the id is: 126 the obs is:450 -[11:33:23.241] Odometry x=0.316617, y=-2.729527, theta=0.159814 -[11:33:23.272] Image Alignment failed 0 -[11:33:23.272] frame process finished the id is: 126 the obs is:450 -[11:33:23.341] Odometry x=0.320500, y=-2.753612, theta=0.160948 -[11:33:23.367] Image Alignment failed 0 -[11:33:23.367] frame process finished the id is: 126 the obs is:450 -[11:33:23.477] Image Alignment failed 0 -[11:33:23.477] frame process finished the id is: 126 the obs is:450 -[11:33:23.567] Image Alignment failed 0 -[11:33:23.567] frame process finished the id is: 126 the obs is:450 -[11:33:23.669] Image Alignment failed 0 -[11:33:23.669] frame process finished the id is: 126 the obs is:450 -[11:33:23.769] Image Alignment failed 0 -[11:33:23.769] frame process finished the id is: 126 the obs is:450 -[11:33:23.869] Image Alignment failed 0 -[11:33:23.869] frame process finished the id is: 126 the obs is:450 -[11:33:23.969] Image Alignment failed 0 -[11:33:23.969] frame process finished the id is: 126 the obs is:450 -[11:33:24.069] Image Alignment failed 0 -[11:33:24.069] frame process finished the id is: 126 the obs is:450 -[11:33:24.168] Image Alignment failed 0 -[11:33:24.168] frame process finished the id is: 126 the obs is:450 -[11:33:24.267] Image Alignment failed 0 -[11:33:24.267] frame process finished the id is: 126 the obs is:450 -[11:33:24.362] Image Alignment failed 0 -[11:33:24.362] frame process finished the id is: 126 the obs is:450 -[11:33:24.468] Image Alignment failed 0 -[11:33:24.468] frame process finished the id is: 126 the obs is:450 -[11:33:24.568] Image Alignment failed 0 -[11:33:24.568] frame process finished the id is: 126 the obs is:450 -[11:33:24.661] Image Alignment failed 0 -[11:33:24.661] frame process finished the id is: 126 the obs is:450 -[11:33:24.767] Image Alignment failed 0 -[11:33:24.767] frame process finished the id is: 126 the obs is:450 -[11:33:24.868] Image Alignment failed 0 -[11:33:24.868] frame process finished the id is: 126 the obs is:450 -[11:33:24.972] Image Alignment failed 0 -[11:33:24.972] frame process finished the id is: 126 the obs is:450 -[11:33:25.069] Image Alignment failed 0 -[11:33:25.069] frame process finished the id is: 126 the obs is:450 -[11:33:25.167] Image Alignment failed 0 -[11:33:25.167] frame process finished the id is: 126 the obs is:450 -[11:33:25.267] Image Alignment failed 0 -[11:33:25.267] frame process finished the id is: 126 the obs is:450 -[11:33:25.370] Image Alignment failed 0 -[11:33:25.370] frame process finished the id is: 126 the obs is:450 -[11:33:25.471] Image Alignment failed 0 -[11:33:25.471] frame process finished the id is: 126 the obs is:450 -[11:33:25.568] Image Alignment failed 0 -[11:33:25.568] frame process finished the id is: 126 the obs is:450 -[11:33:25.668] Image Alignment failed 0 -[11:33:25.668] frame process finished the id is: 126 the obs is:450 -[11:33:25.767] Image Alignment failed 0 -[11:33:25.767] frame process finished the id is: 126 the obs is:450 -[11:33:25.867] Image Alignment failed 0 -[11:33:25.867] frame process finished the id is: 126 the obs is:450 -[11:33:25.967] Image Alignment failed 0 -[11:33:25.967] frame process finished the id is: 126 the obs is:450 -[11:33:26.067] Image Alignment failed 0 -[11:33:26.067] frame process finished the id is: 126 the obs is:450 -[11:33:26.167] Image Alignment failed 0 -[11:33:26.167] frame process finished the id is: 126 the obs is:450 -[11:33:26.268] Image Alignment failed 0 -[11:33:26.268] frame process finished the id is: 126 the obs is:450 -[11:33:26.368] Image Alignment failed 0 -[11:33:26.368] frame process finished the id is: 126 the obs is:450 -[11:33:26.468] Image Alignment failed 0 -[11:33:26.468] frame process finished the id is: 126 the obs is:450 -[11:33:26.568] Image Alignment failed 0 -[11:33:26.568] frame process finished the id is: 126 the obs is:450 -[11:33:26.668] Image Alignment failed 0 -[11:33:26.668] frame process finished the id is: 126 the obs is:450 -[11:33:26.768] Image Alignment failed 0 -[11:33:26.768] frame process finished the id is: 126 the obs is:450 +[19:00:44.606] Init: frame zero: 0.000000, 0.000000 0.000000 +[19:00:44.606] Init: Selected first frame. +[19:00:44.606] frame process finished the id is: 0 the obs is:0 +[19:00:44.616] Init: px average disparity is:0.473971 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:44.616] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:44.616] frame process finished the id is: 1 the obs is:0 +[19:00:44.669] Init: px average disparity is:0.799725 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:44.669] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:44.669] frame process finished the id is: 2 the obs is:0 +[19:00:44.767] Init: px average disparity is:0.714416 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:44.767] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:44.767] frame process finished the id is: 3 the obs is:0 +[19:00:44.868] Init: px average disparity is:0.971124 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:44.868] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:44.868] frame process finished the id is: 4 the obs is:0 +[19:00:44.971] Init: px average disparity is:0.879417 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:44.971] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:44.971] frame process finished the id is: 5 the obs is:0 +[19:00:45.071] Init: px average disparity is:0.889379 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:45.071] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:45.071] frame process finished the id is: 6 the obs is:0 +[19:00:45.171] Init: px average disparity is:0.874557 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:45.171] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:45.171] frame process finished the id is: 7 the obs is:0 +[19:00:45.269] Init: px average disparity is:0.815383 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:45.269] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:45.269] frame process finished the id is: 8 the obs is:0 +[19:00:45.369] Init: px average disparity is:0.940910 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:45.369] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:45.369] frame process finished the id is: 9 the obs is:0 +[19:00:45.464] Odometry x=0.000000, y=0.000000, theta=-0.000000 +[19:00:45.477] Init: px average disparity is:0.848222 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:45.477] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:45.477] frame process finished the id is: 10 the obs is:0 +[19:00:45.557] Odometry x=0.000001, y=0.000003, theta=-0.032076 +[19:00:45.571] Init: px average disparity is:1.059612 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:45.571] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:45.571] frame process finished the id is: 11 the obs is:0 +[19:00:45.655] Odometry x=0.000002, y=0.000008, theta=-0.056003 +[19:00:45.670] Init: px average disparity is:0.932428 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:45.670] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:45.670] frame process finished the id is: 12 the obs is:0 +[19:00:45.757] Odometry x=0.000002, y=0.000017, theta=-0.020362 +[19:00:45.768] Init: px average disparity is:5.262729 ,While minimum is: 10.000000 KLT tracked : 83 +[19:00:45.768] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:45.769] frame process finished the id is: 13 the obs is:0 +[19:00:45.856] Odometry x=0.000002, y=0.000026, theta=-0.044279 +[19:00:45.938] Init: Homography RANSAC (inlier) is:3 ,While 50 inliers minimum required. px average disparity is:12.408803 ,While minimum is: 10.000000 KLT tracked: 83 +[19:00:45.938] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:45.938] frame process finished the id is: 14 the obs is:0 +[19:00:45.958] Odometry x=0.000008, y=0.000031, theta=-0.064631 +[19:00:46.040] Init: Homography RANSAC (inlier) is:3 ,While 50 inliers minimum required. px average disparity is:19.518357 ,While minimum is: 10.000000 KLT tracked: 83 +[19:00:46.040] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.040] frame process finished the id is: 15 the obs is:0 +[19:00:46.056] Odometry x=0.000014, y=0.000030, theta=-0.094272 +[19:00:46.135] Init: Homography RANSAC (inlier) is:3 ,While 50 inliers minimum required. px average disparity is:30.053924 ,While minimum is: 10.000000 KLT tracked: 83 +[19:00:46.135] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.135] frame process finished the id is: 16 the obs is:0 +[19:00:46.159] Odometry x=0.000011, y=0.000035, theta=-0.127582 +[19:00:46.245] Init: Homography RANSAC (inlier) is:7 ,While 50 inliers minimum required. px average disparity is:42.428978 ,While minimum is: 10.000000 KLT tracked: 83 +[19:00:46.245] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.245] frame process finished the id is: 17 the obs is:0 +[19:00:46.261] Odometry x=0.000010, y=0.000041, theta=-0.157710 +[19:00:46.352] Init: Homography RANSAC (inlier) is:10 ,While 50 inliers minimum required. px average disparity is:52.700594 ,While minimum is: 10.000000 KLT tracked: 83 +[19:00:46.352] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.352] frame process finished the id is: 18 the obs is:0 +[19:00:46.359] Odometry x=0.000015, y=0.000060, theta=-0.185663 +[19:00:46.433] Init: Homography RANSAC (inlier) is:17 ,While 50 inliers minimum required. px average disparity is:60.617139 ,While minimum is: 10.000000 KLT tracked: 83 +[19:00:46.433] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.434] frame process finished the id is: 19 the obs is:0 +[19:00:46.457] Odometry x=0.000005, y=0.000053, theta=-0.209954 +[19:00:46.534] Init: Homography RANSAC (inlier) is:28 ,While 50 inliers minimum required. px average disparity is:73.339014 ,While minimum is: 10.000000 KLT tracked: 83 +[19:00:46.534] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.534] frame process finished the id is: 20 the obs is:0 +[19:00:46.558] Odometry x=0.000006, y=0.000054, theta=-0.242321 +[19:00:46.632] Init: Homography RANSAC (inlier) is:34 ,While 50 inliers minimum required. px average disparity is:83.594415 ,While minimum is: 10.000000 KLT tracked: 83 +[19:00:46.632] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.632] frame process finished the id is: 21 the obs is:0 +[19:00:46.657] Odometry x=0.000014, y=0.000061, theta=-0.273941 +[19:00:46.734] Init: Homography RANSAC (inlier) is:44 ,While 50 inliers minimum required. px average disparity is:90.121913 ,While minimum is: 10.000000 KLT tracked: 79 +[19:00:46.734] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.734] frame process finished the id is: 22 the obs is:0 +[19:00:46.755] Odometry x=0.000008, y=0.000070, theta=-0.302972 +[19:00:46.843] Init: Homography RANSAC (inlier) is:49 ,While 50 inliers minimum required. px average disparity is:101.655556 ,While minimum is: 10.000000 KLT tracked: 78 +[19:00:46.843] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.843] frame process finished the id is: 23 the obs is:0 +[19:00:46.870] Odometry x=-0.000001, y=0.000085, theta=-0.331944 +[19:00:46.934] Init: Homography RANSAC (inlier) is:49 ,While 50 inliers minimum required. px average disparity is:112.383410 ,While minimum is: 10.000000 KLT tracked: 76 +[19:00:46.934] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:46.934] frame process finished the id is: 24 the obs is:0 +[19:00:46.954] Odometry x=0.000009, y=0.000090, theta=-0.360283 +[19:00:47.032] Init: Homography RANSAC (inlier) is:47 ,While 50 inliers minimum required. px average disparity is:127.603326 ,While minimum is: 10.000000 KLT tracked: 75 +[19:00:47.032] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.032] frame process finished the id is: 25 the obs is:0 +[19:00:47.055] Odometry x=0.000021, y=0.000094, theta=-0.388027 +[19:00:47.133] Init: Homography RANSAC (inlier) is:47 ,While 50 inliers minimum required. px average disparity is:132.293300 ,While minimum is: 10.000000 KLT tracked: 74 +[19:00:47.133] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.133] frame process finished the id is: 26 the obs is:0 +[19:00:47.156] Odometry x=0.000021, y=0.000105, theta=-0.416193 +[19:00:47.232] Init: Homography RANSAC (inlier) is:45 ,While 50 inliers minimum required. px average disparity is:141.620341 ,While minimum is: 10.000000 KLT tracked: 74 +[19:00:47.232] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.232] frame process finished the id is: 27 the obs is:0 +[19:00:47.256] Odometry x=0.000029, y=0.000107, theta=-0.443198 +[19:00:47.342] Init: Homography RANSAC (inlier) is:45 ,While 50 inliers minimum required. px average disparity is:147.389189 ,While minimum is: 10.000000 KLT tracked: 73 +[19:00:47.342] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.342] frame process finished the id is: 28 the obs is:0 +[19:00:47.356] Odometry x=0.000032, y=0.000123, theta=-0.470818 +[19:00:47.433] Init: Homography RANSAC (inlier) is:42 ,While 50 inliers minimum required. px average disparity is:157.488062 ,While minimum is: 10.000000 KLT tracked: 73 +[19:00:47.433] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.433] frame process finished the id is: 29 the obs is:0 +[19:00:47.456] Odometry x=0.000036, y=0.000133, theta=-0.499043 +[19:00:47.533] Init: Homography RANSAC (inlier) is:44 ,While 50 inliers minimum required. px average disparity is:167.104507 ,While minimum is: 10.000000 KLT tracked: 72 +[19:00:47.533] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.533] frame process finished the id is: 30 the obs is:0 +[19:00:47.556] Odometry x=0.000045, y=0.000135, theta=-0.527744 +[19:00:47.634] Init: Homography RANSAC (inlier) is:42 ,While 50 inliers minimum required. px average disparity is:174.971463 ,While minimum is: 10.000000 KLT tracked: 72 +[19:00:47.634] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.634] frame process finished the id is: 31 the obs is:0 +[19:00:47.656] Odometry x=0.000046, y=0.000157, theta=-0.554848 +[19:00:47.732] Init: Homography RANSAC (inlier) is:40 ,While 50 inliers minimum required. px average disparity is:183.676455 ,While minimum is: 10.000000 KLT tracked: 72 +[19:00:47.732] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.732] frame process finished the id is: 32 the obs is:0 +[19:00:47.756] Odometry x=0.000052, y=0.000160, theta=-0.582837 +[19:00:47.833] Init: Homography RANSAC (inlier) is:35 ,While 50 inliers minimum required. px average disparity is:192.877858 ,While minimum is: 10.000000 KLT tracked: 72 +[19:00:47.833] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.833] frame process finished the id is: 33 the obs is:0 +[19:00:47.856] Odometry x=0.000058, y=0.000173, theta=-0.612653 +[19:00:47.933] Init: Homography RANSAC (inlier) is:33 ,While 50 inliers minimum required. px average disparity is:200.975313 ,While minimum is: 10.000000 KLT tracked: 72 +[19:00:47.933] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:47.933] frame process finished the id is: 34 the obs is:0 +[19:00:47.956] Odometry x=0.000063, y=0.000184, theta=-0.640015 +[19:00:48.033] Init: Homography RANSAC (inlier) is:33 ,While 50 inliers minimum required. px average disparity is:218.061818 ,While minimum is: 10.000000 KLT tracked: 68 +[19:00:48.033] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.033] frame process finished the id is: 35 the obs is:0 +[19:00:48.056] Odometry x=0.000072, y=0.000193, theta=-0.666514 +[19:00:48.133] Init: Homography RANSAC (inlier) is:35 ,While 50 inliers minimum required. px average disparity is:227.576310 ,While minimum is: 10.000000 KLT tracked: 68 +[19:00:48.133] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.133] frame process finished the id is: 36 the obs is:0 +[19:00:48.156] Odometry x=0.000084, y=0.000194, theta=-0.692234 +[19:00:48.233] Init: Homography RANSAC (inlier) is:35 ,While 50 inliers minimum required. px average disparity is:237.847084 ,While minimum is: 10.000000 KLT tracked: 68 +[19:00:48.233] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.233] frame process finished the id is: 37 the obs is:0 +[19:00:48.260] Odometry x=0.000088, y=0.000203, theta=-0.716222 +[19:00:48.333] Init: Homography RANSAC (inlier) is:40 ,While 50 inliers minimum required. px average disparity is:240.005752 ,While minimum is: 10.000000 KLT tracked: 67 +[19:00:48.333] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.333] frame process finished the id is: 38 the obs is:0 +[19:00:48.358] Odometry x=0.000101, y=0.000201, theta=-0.739915 +[19:00:48.433] Init: Homography RANSAC (inlier) is:41 ,While 50 inliers minimum required. px average disparity is:250.076907 ,While minimum is: 10.000000 KLT tracked: 66 +[19:00:48.433] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.433] frame process finished the id is: 39 the obs is:0 +[19:00:48.457] Odometry x=0.000109, y=0.000201, theta=-0.764789 +[19:00:48.533] Init: Homography RANSAC (inlier) is:40 ,While 50 inliers minimum required. px average disparity is:254.907180 ,While minimum is: 10.000000 KLT tracked: 65 +[19:00:48.533] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.533] frame process finished the id is: 40 the obs is:0 +[19:00:48.556] Odometry x=0.000107, y=0.000215, theta=-0.789204 +[19:00:48.635] Init: Homography RANSAC (inlier) is:41 ,While 50 inliers minimum required. px average disparity is:260.793378 ,While minimum is: 10.000000 KLT tracked: 65 +[19:00:48.635] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.635] frame process finished the id is: 41 the obs is:0 +[19:00:48.657] Odometry x=0.000114, y=0.000218, theta=-0.814621 +[19:00:48.733] Init: Homography RANSAC (inlier) is:42 ,While 50 inliers minimum required. px average disparity is:267.518219 ,While minimum is: 10.000000 KLT tracked: 65 +[19:00:48.733] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.733] frame process finished the id is: 42 the obs is:0 +[19:00:48.756] Odometry x=0.000129, y=0.000211, theta=-0.838907 +[19:00:48.840] Init: Homography RANSAC (inlier) is:41 ,While 50 inliers minimum required. px average disparity is:271.233263 ,While minimum is: 10.000000 KLT tracked: 65 +[19:00:48.840] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.840] frame process finished the id is: 43 the obs is:0 +[19:00:48.856] Odometry x=0.000128, y=0.000217, theta=-0.859705 +[19:00:48.933] Init: Homography RANSAC (inlier) is:39 ,While 50 inliers minimum required. px average disparity is:275.420367 ,While minimum is: 10.000000 KLT tracked: 65 +[19:00:48.933] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:48.933] frame process finished the id is: 44 the obs is:0 +[19:00:48.959] Odometry x=0.000134, y=0.000220, theta=-0.884868 +[19:00:49.033] Init: Homography RANSAC (inlier) is:38 ,While 50 inliers minimum required. px average disparity is:284.566041 ,While minimum is: 10.000000 KLT tracked: 63 +[19:00:49.033] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.033] frame process finished the id is: 45 the obs is:0 +[19:00:49.052] Odometry x=0.000141, y=0.000223, theta=-0.911048 +[19:00:49.132] Init: Homography RANSAC (inlier) is:35 ,While 50 inliers minimum required. px average disparity is:291.995306 ,While minimum is: 10.000000 KLT tracked: 61 +[19:00:49.132] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.132] frame process finished the id is: 46 the obs is:0 +[19:00:49.148] Odometry x=0.000149, y=0.000231, theta=-0.939505 +[19:00:49.232] Init: Homography RANSAC (inlier) is:35 ,While 50 inliers minimum required. px average disparity is:303.980714 ,While minimum is: 10.000000 KLT tracked: 60 +[19:00:49.232] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.232] frame process finished the id is: 47 the obs is:0 +[19:00:49.251] Odometry x=0.000167, y=0.000243, theta=-0.963619 +[19:00:49.332] Init: Homography RANSAC (inlier) is:35 ,While 50 inliers minimum required. px average disparity is:307.498332 ,While minimum is: 10.000000 KLT tracked: 60 +[19:00:49.332] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.332] frame process finished the id is: 48 the obs is:0 +[19:00:49.350] Odometry x=0.000174, y=0.000245, theta=-0.986702 +[19:00:49.433] Init: Homography RANSAC (inlier) is:34 ,While 50 inliers minimum required. px average disparity is:316.473181 ,While minimum is: 10.000000 KLT tracked: 58 +[19:00:49.433] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.433] frame process finished the id is: 49 the obs is:0 +[19:00:49.459] Odometry x=0.000183, y=0.000257, theta=-1.017360 +[19:00:49.534] Init: Homography RANSAC (inlier) is:35 ,While 50 inliers minimum required. px average disparity is:325.768615 ,While minimum is: 10.000000 KLT tracked: 57 +[19:00:49.534] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.534] frame process finished the id is: 50 the obs is:0 +[19:00:49.551] Odometry x=0.000202, y=0.000247, theta=-1.046171 +[19:00:49.633] Init: Homography RANSAC (inlier) is:35 ,While 50 inliers minimum required. px average disparity is:332.044408 ,While minimum is: 10.000000 KLT tracked: 57 +[19:00:49.633] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.633] frame process finished the id is: 51 the obs is:0 +[19:00:49.649] Odometry x=0.000218, y=0.000236, theta=-1.072559 +[19:00:49.733] Init: Homography RANSAC (inlier) is:35 ,While 50 inliers minimum required. px average disparity is:332.460232 ,While minimum is: 10.000000 KLT tracked: 57 +[19:00:49.733] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.733] frame process finished the id is: 52 the obs is:0 +[19:00:49.752] Odometry x=0.000221, y=0.000238, theta=-1.100897 +[19:00:49.833] Init: Homography RANSAC (inlier) is:34 ,While 50 inliers minimum required. px average disparity is:333.207718 ,While minimum is: 10.000000 KLT tracked: 54 +[19:00:49.833] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.833] frame process finished the id is: 53 the obs is:0 +[19:00:49.858] Odometry x=0.000236, y=0.000239, theta=-1.132927 +[19:00:49.931] Init: Homography RANSAC (inlier) is:31 ,While 50 inliers minimum required. px average disparity is:351.981230 ,While minimum is: 10.000000 KLT tracked: 45 +[19:00:49.931] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:49.931] frame process finished the id is: 54 the obs is:0 +[19:00:49.956] Odometry x=0.000243, y=0.000234, theta=-1.163311 +[19:00:50.031] Init: Homography RANSAC (inlier) is:26 ,While 50 inliers minimum required. px average disparity is:371.991880 ,While minimum is: 10.000000 KLT tracked: 40 +[19:00:50.031] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.031] frame process finished the id is: 55 the obs is:0 +[19:00:50.049] Odometry x=0.000243, y=0.000226, theta=-1.189955 +[19:00:50.130] Init: Homography RANSAC (inlier) is:17 ,While 50 inliers minimum required. px average disparity is:382.732262 ,While minimum is: 10.000000 KLT tracked: 39 +[19:00:50.130] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.131] frame process finished the id is: 56 the obs is:0 +[19:00:50.152] Odometry x=0.000251, y=0.000229, theta=-1.217019 +[19:00:50.231] Init: Homography RANSAC (inlier) is:14 ,While 50 inliers minimum required. px average disparity is:390.563643 ,While minimum is: 10.000000 KLT tracked: 36 +[19:00:50.231] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.231] frame process finished the id is: 57 the obs is:0 +[19:00:50.249] Odometry x=0.000251, y=0.000217, theta=-1.241489 +[19:00:50.341] Init: Homography RANSAC (inlier) is:14 ,While 50 inliers minimum required. px average disparity is:399.795167 ,While minimum is: 10.000000 KLT tracked: 35 +[19:00:50.341] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.341] frame process finished the id is: 58 the obs is:0 +[19:00:50.352] Odometry x=0.000253, y=0.000213, theta=-1.269540 +[19:00:50.431] Init: Homography RANSAC (inlier) is:13 ,While 50 inliers minimum required. px average disparity is:412.235442 ,While minimum is: 10.000000 KLT tracked: 34 +[19:00:50.431] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.431] frame process finished the id is: 59 the obs is:0 +[19:00:50.450] Odometry x=0.000270, y=0.000216, theta=-1.294399 +[19:00:50.531] Init: Homography RANSAC (inlier) is:13 ,While 50 inliers minimum required. px average disparity is:417.374925 ,While minimum is: 10.000000 KLT tracked: 34 +[19:00:50.531] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.531] frame process finished the id is: 60 the obs is:0 +[19:00:50.548] Odometry x=0.000278, y=0.000211, theta=-1.315688 +[19:00:50.633] Init: Homography RANSAC (inlier) is:13 ,While 50 inliers minimum required. px average disparity is:421.917540 ,While minimum is: 10.000000 KLT tracked: 34 +[19:00:50.633] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.633] frame process finished the id is: 61 the obs is:0 +[19:00:50.651] Odometry x=0.000289, y=0.000214, theta=-1.339349 +[19:00:50.731] Init: Homography RANSAC (inlier) is:13 ,While 50 inliers minimum required. px average disparity is:429.667852 ,While minimum is: 10.000000 KLT tracked: 33 +[19:00:50.731] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.731] frame process finished the id is: 62 the obs is:0 +[19:00:50.749] Odometry x=0.000308, y=0.000212, theta=-1.365769 +[19:00:50.831] Init: Homography RANSAC (inlier) is:12 ,While 50 inliers minimum required. px average disparity is:436.227970 ,While minimum is: 10.000000 KLT tracked: 33 +[19:00:50.831] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.831] frame process finished the id is: 63 the obs is:0 +[19:00:50.852] Odometry x=0.000318, y=0.000217, theta=-1.394214 +[19:00:50.931] Init: Homography RANSAC (inlier) is:6 ,While 50 inliers minimum required. px average disparity is:443.378560 ,While minimum is: 10.000000 KLT tracked: 33 +[19:00:50.931] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:50.931] frame process finished the id is: 64 the obs is:0 +[19:00:50.951] Odometry x=0.000320, y=0.000218, theta=-1.424681 +[19:00:51.031] Init: Homography RANSAC (inlier) is:6 ,While 50 inliers minimum required. px average disparity is:448.605855 ,While minimum is: 10.000000 KLT tracked: 32 +[19:00:51.031] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:51.031] frame process finished the id is: 65 the obs is:0 +[19:00:51.049] Odometry x=0.000333, y=0.000215, theta=-1.449791 +[19:00:51.135] Init: Homography RANSAC (inlier) is:6 ,While 50 inliers minimum required. px average disparity is:453.192396 ,While minimum is: 10.000000 KLT tracked: 30 +[19:00:51.135] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:51.135] frame process finished the id is: 66 the obs is:0 +[19:00:51.152] Odometry x=0.000324, y=0.000210, theta=-1.481215 +[19:00:51.227] Init: Homography RANSAC (inlier) is:6 ,While 50 inliers minimum required. px average disparity is:470.768732 ,While minimum is: 10.000000 KLT tracked: 26 +[19:00:51.227] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:51.227] frame process finished the id is: 67 the obs is:0 +[19:00:51.252] Odometry x=0.000321, y=0.000209, theta=-1.510540 +[19:00:51.326] Init: Homography RANSAC (inlier) is:4 ,While 50 inliers minimum required. px average disparity is:469.431223 ,While minimum is: 10.000000 KLT tracked: 26 +[19:00:51.326] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:51.326] frame process finished the id is: 68 the obs is:0 +[19:00:51.351] Odometry x=0.000327, y=0.000195, theta=-1.542459 +[19:00:51.411] Init: Homography RANSAC (inlier) is:4 ,While 50 inliers minimum required. px average disparity is:485.334317 ,While minimum is: 10.000000 KLT tracked: 24 +[19:00:51.411] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000000 +[19:00:51.411] frame process finished the id is: 69 the obs is:0 +[19:00:51.454] Odometry x=0.000333, y=0.000191, theta=-1.568416 +[19:00:51.524] Init: Homography RANSAC (inlier) is:4 ,While 50 inliers minimum required. px average disparity is:487.253639 ,While minimum is: 10.000000 KLT tracked: 24 +[19:00:51.524] Init: distance between the first and current frame is x:0.000000 ,z=0.000000,angle between two frames: 0.000 \ No newline at end of file diff --git a/GPU_version/vio/include/vio/cl_class.h b/GPU_version/vio/include/vio/cl_class.h index 473bea2..fa2fe85 100644 --- a/GPU_version/vio/include/vio/cl_class.h +++ b/GPU_version/vio/include/vio/cl_class.h @@ -13,6 +13,7 @@ #include #include #include +#include class kernel{ public: @@ -22,90 +23,69 @@ public: assert(error== CL_SUCCESS); }; ~kernel(){ - for(auto&& i:_images)i.first.setDestructorCallback((void (*)(_cl_mem *, void *))notify, NULL); - for(auto&& i:_buffers)i.first.first.setDestructorCallback((void (*)(_cl_mem *, void *))notify, NULL); + for(auto&& i:_images)i.first->setDestructorCallback((void (*)(_cl_mem *, void *))notify, NULL); + for(auto&& i:_buffers)i.first->setDestructorCallback((void (*)(_cl_mem *, void *))notify, NULL); _buffers.clear(); _images.clear(); }; template - int32_t write(size_t id/*buffer ID*/,T* buf,cl::CommandQueue* queue,cl::Context* context,size_t buf_size){ + void load(size_t id/*buffer ID*/,T* buf,cl::CommandQueue* queue,cl::Context* context,size_t buf_size){ assert(buf); cl_int error; - _buffers.push_back(std::pair,size_t>(std::pair(cl::Buffer(*context, CL_MEM_READ_WRITE | CL_MEM_USE_HOST_PTR - , sizeof(T) * buf_size,buf,&error), - buf_size),id)); - cl_int err=_kernel->setArg(id,_buffers.back().first.first); - assert(err == CL_SUCCESS); + _buffers.push_back(std::pair,size_t>(std::make_shared(*context, CL_MEM_READ_WRITE | CL_MEM_USE_HOST_PTR, sizeof(T) * buf_size,buf,&error),id)); assert(error == CL_SUCCESS); - return error; + cl::Event event; + T* Map_buf=(T*)queue->enqueueMapBuffer(*_buffers.back().first,CL_NON_BLOCKING,CL_MAP_WRITE,0,sizeof(T) * buf_size,NULL,&event,&error); + event.wait(); + memcpy(Map_buf,buf,sizeof(T) * buf_size); + assert(queue->enqueueUnmapMemObject(*_buffers.back().first,Map_buf,NULL,&event)==CL_SUCCESS); + event.wait(); + cl_int err=_kernel->setArg(id,*_buffers.back().first); + assert(err == CL_SUCCESS); }; - int32_t write(size_t id/*buffer ID*/,cv::Mat& buf,cl::Context* context){ + void load(size_t id/*buffer ID*/,cv::Mat& buf,cl::Context* context){ assert(!buf.empty()); cl_int error; - _images.push_back(std::pair(cl::Image2D(*context, CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR, + _images.push_back(std::pair,size_t>(std::make_shared(*context, CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR, cl::ImageFormat(CL_R, CL_UNSIGNED_INT8), buf.size().width, buf.size().height, 0, reinterpret_cast(buf.data),&error),id)); - cl_int err=_kernel->setArg(id,_images.back().first); + assert(error == CL_SUCCESS); + cl_int err=_kernel->setArg(id,*_images.back().first); assert(err == CL_SUCCESS); - assert(error == CL_SUCCESS); - return error; }; - - template - int32_t reload(size_t id,T* buf,cl::CommandQueue* queue){ - assert(buf); - cl_int error; - for(auto&& i:_buffers)if(i.second==id){ - cl::Event event; - T* Map_buf=(T*)queue->enqueueMapBuffer(i.first.first,CL_NON_BLOCKING,CL_MAP_WRITE,0,sizeof(T) * i.first.second,NULL,&event,&error); - event.wait(); - memcpy(Map_buf,buf,sizeof(T) * i.first.second); - assert(queue->enqueueUnmapMemObject(i.first.first,Map_buf,NULL,&event)==CL_SUCCESS); - event.wait(); - + void release(size_t id/*buffer ID*/){ + for(auto it=_buffers.begin();it!=_buffers.end();++it){ + if((*it).second==id){ + (*it).first.reset(); + _buffers.erase(it); + return; + } } - assert(error == CL_SUCCESS); - return error; - }; - int32_t reload(size_t id,cv::Mat& buf,cl::Context* context){ - assert(!buf.empty()); - cl_int error; - try{ - for(auto&& i:_images)if(i.second==id){ - i.first.setDestructorCallback((void (*)(_cl_mem *, void *))notify, NULL); - i.first=cl::Image2D(*context, CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR, - cl::ImageFormat(CL_R, CL_UNSIGNED_INT8), - buf.size().width, - buf.size().height, - 0, - reinterpret_cast(buf.data),&error); - cl_int err=_kernel->setArg(id,i.first); - assert(err == CL_SUCCESS); - } - assert(error == CL_SUCCESS); - return error; - }catch (std::exception& err){ - std::cerr<<"Reload buffer on GPU failed\n"< read(size_t id){ - for(auto i:_buffers)if(i.second==id)return i.first; + void release(){ + _buffers.clear(); + _images.clear(); } - cl::Image2D read_img(size_t id){ - for(auto i:_images)if(i.second==id)return i.first; + cl::Kernel* _kernel = NULL; + std::shared_ptr read(size_t id){ + for(auto&& i:_buffers)if(i.second==id)return i.first; } private: static void notify(cl_mem *, void * user_data) { - //std::cerr << "Memory object was deleted." << std::endl; } - std::vector,size_t>> _buffers; - std::vector> _images; + std::list,size_t>> _buffers; + std::list,size_t>> _images; }; class read_cl{ @@ -129,35 +109,20 @@ public: ~opencl(); int32_t make_kernel(std::string name){_kernels.push_back(kernel(program,name));}; template - bool write_buf(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/, int size,T* buf) { - if(_kernels.at(id1).write(id2,buf,queue,context,size)!= CL_SUCCESS)return false; - return true; + void load(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/, int size,T* buf) { + _kernels.at(id1).load(id2,buf,queue,context,size); } - bool write_buf(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,cv::Mat& buf) { - if(_kernels.at(id1).write(id2,buf,context)!= CL_SUCCESS)return false; - return true; + void load(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,cv::Mat& buf) { + _kernels.at(id1).load(id2,buf,context); } template - bool write_buf(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,T&& value){ - if(_kernels.at(id1)._kernel->setArg(id2,value)!= CL_SUCCESS)return false; - return true; + void load(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,T&& value){ + _kernels.at(id1)._kernel->setArg(id2,value); }; - template - bool reload_buf(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,T* buf) { - if(_kernels.at(id1).reload(id2,buf,queue)!= CL_SUCCESS)return false; - return true; - } - bool reload_buf(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/,cv::Mat& buf) { - if(_kernels.at(id1).reload(id2,buf,context)!= CL_SUCCESS)return false; - return true; - } cl_int run(size_t id1/*kernal ID*/,std::size_t x=1,std::size_t y=1,std::size_t z=1) { cl_int err=0; cl::Event event; - if(queue->flush()==CL_OUT_OF_HOST_MEMORY){ - std::cerr<<"GPU out of memory goodbye:)\n"; - exit(0); - } + assert(queue->flush()==CL_SUCCESS); if(z>1 && y>1){ err=queue->enqueueNDRangeKernel(*_kernels.at(id1)._kernel, cl::NullRange/*offset*/, cl::NDRange(x,y,z)/*Global*/, cl::NullRange/*local*/,NULL,&event); }else if(z<2 && y>1){ @@ -167,10 +132,7 @@ public: }; assert(err==CL_SUCCESS); event.wait(); - if(queue->finish()==CL_OUT_OF_HOST_MEMORY){ - std::cerr<<"GPU out of memory goodbye:)\n"; - exit(0); - } + assert(queue->finish()==CL_SUCCESS); return 1; } @@ -179,14 +141,19 @@ public: assert(out); cl_int error; cl::Event event; - T* Map_buf=(T*)queue->enqueueMapBuffer(_kernels.at(id1).read(id2).first,CL_NON_BLOCKING,CL_MAP_READ,0,sizeof(T) * size,NULL,&event,&error); + T* Map_buf=(T*)queue->enqueueMapBuffer(*_kernels.at(id1).read(id2),CL_NON_BLOCKING,CL_MAP_READ,0,sizeof(T) * size,NULL,&event,&error); assert(error == CL_SUCCESS); event.wait(); memcpy(out,Map_buf,sizeof(T) * size); - if(queue->enqueueUnmapMemObject(_kernels.at(id1).read(id2).first,Map_buf,NULL,&event)!=CL_SUCCESS)std::cerr<<"Read buffer on GPU failed"<<'\n'; + assert(queue->enqueueUnmapMemObject(*_kernels.at(id1).read(id2),Map_buf,NULL,&event)==CL_SUCCESS); event.wait(); } - void clear_buf(); + void clear_buf(){ + for(auto k:_kernels)k.release(); + }; + void release(size_t id1/*kernal ID*/,size_t id2/*buffer ID*/){ + _kernels.at(id1).release(id2); + } private: std::vector _kernels; cl::Context* context = nullptr; diff --git a/GPU_version/vio/param/vo_fast.yaml b/GPU_version/vio/param/vo_fast.yaml index 0a29dc7..b791080 100644 --- a/GPU_version/vio/param/vo_fast.yaml +++ b/GPU_version/vio/param/vo_fast.yaml @@ -1,6 +1,6 @@ svo: grid_size: 8 #Feature grid size of a cell in [px]. - max_n_kfs: 20 #Limit the number of keyframes in the map. This makes nslam essentially. a Visual Odometry. Set to 0 if unlimited number of keyframes are allowed. Minimum number of keyframes is 3. + max_n_kfs: 15 #Limit the number of keyframes in the map. This makes nslam essentially. a Visual Odometry. Set to 0 if unlimited number of keyframes are allowed. Minimum number of keyframes is 3. loba_num_iter: 10 #Number of iterations in the local bundle adjustment. quality_min_fts: 10 #If the number of tracked features drops below this threshold. Tracking quality is bad. quality_max_drop_fts: 90 #If within one frame, this amount of features are dropped. Tracking quality is bad. @@ -12,5 +12,5 @@ svo: init_min_inliers: 50 ACC_noise: 0.4 #acc white noise in continuous in EKF GYO_noise: 0.4 #gyro white noise in continuous in EKF - svo_ekf: 0.1 #Svo noise that will be devided by number of Reprojected points after opmization in EKF + svo_ekf: 0.2 #Svo noise that will be devided by number of Reprojected points after opmization in EKF Cmd_Cov: 0.1 #control vector noise in EKF diff --git a/GPU_version/vio/src/cl_class.cpp b/GPU_version/vio/src/cl_class.cpp index f615102..449611a 100644 --- a/GPU_version/vio/src/cl_class.cpp +++ b/GPU_version/vio/src/cl_class.cpp @@ -20,6 +20,7 @@ opencl::opencl(vk::AbstractCamera* cam):cam(cam) { std::cout << " No devices found. Check OpenCL installation!\n"; exit(1); } + device = new cl::Device(all_devices[0]); std::cout << "CL_DEVICE_NAME: " << device->getInfo() <<'\n' << "CL_DRIVER_VERSION: " <getInfo()<<'\n' @@ -51,12 +52,10 @@ opencl::opencl(vk::AbstractCamera* cam):cam(cam) { queue=new cl::CommandQueue(*context,*device,CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE,NULL); } opencl::~opencl() { + clear_buf(); + queue->finish(); + delete program; delete context; delete device; } -void opencl::clear_buf() { - queue->finish(); - _kernels.clear(); - delete program; -} diff --git a/GPU_version/vio/src/feature_detection.cpp b/GPU_version/vio/src/feature_detection.cpp index 6c45bcb..676bf70 100644 --- a/GPU_version/vio/src/feature_detection.cpp +++ b/GPU_version/vio/src/feature_detection.cpp @@ -70,51 +70,61 @@ void FastDetector::detect( std::shared_ptr frame, const ImgPyr& img_pyr, const double detection_threshold, - list>& fts){ + list>& fts) + { Corners corners(grid_n_cols_*grid_n_rows_, Corner(0,0,0.0,0,0.0f)); std::vector keypoints; - fts.clear(); for(int L=0; Limg_pyr.size())return; int scale = (1<reload_buf(0,0,img)){ - ROS_ERROR("Failed to write into GPU goodbye :)"); - exit(0); - }; - cl_int icorner[1]={0}; - if(!gpu_fast_->reload_buf(0,2,icorner)){ - ROS_ERROR("Failed to write into GPU goodbye :)"); - exit(0); - }; + gpu_fast_->load(0,0,img); + cl_int2 fast_corner[1000]; + gpu_fast_->load(0,1,1000,fast_corner); + cl_int icorner[1]; + gpu_fast_->load(0,2,1,icorner); gpu_fast_->run(0,img.cols,img.rows); cl_int count[1]={0}; gpu_fast_->read(0,2,1,count); - cl_int2 fast_corners[350000]={0}; - gpu_fast_->read(0,1,350000,fast_corners); if(count[0]<1 ){ - ROS_ERROR("Can not communicate with GPU"); - exit(0); + ROS_ERROR("Can not communicate with GPU"); + exit(0); } int size=count[0]; + cl_int2 fast_corners[size]; + std::cerr<read(0,1,size,fast_corners); for(uint i=0;iimg_pyr[L].cols || fast_corners[i].y>img_pyr[L].rows || fast_corners[i].y<1){ + if(fast_corners[i].x<5 || fast_corners[i].x>img_pyr[L].cols || fast_corners[i].y>img_pyr[L].rows || fast_corners[i].y<5){ continue; } float score = vk::shiTomasiScore(img_pyr[L], fast_corners[i].x, fast_corners[i].y); keypoints.push_back(cv::KeyPoint(fast_corners[i].x*scale, fast_corners[i].y*scale, 7.f,-1,score)); } + gpu_fast_->release(0,0); + gpu_fast_->release(0,1); + gpu_fast_->release(0,2); } if(keypoints.size()<1){ ROS_ERROR("GPU Driver crash try again!"); assert(0); } + std::cerr< extractor = cv::xfeatures2d::FREAK::create(true, true, 22.0f, 4); cv::Mat descriptor; extractor->compute(frame->img(), keypoints, descriptor); - for(auto&& p:_for(keypoints))fts.push_back(make_shared(frame, Vector2d(p.item.pt.x, p.item.pt.y), p.item.response ,0,descriptor.data+(p.index*64))); + fts.clear(); + cv::Mat debug1,debug; + debug1=frame->img().clone(); + cv::cvtColor(debug1,debug,cv::COLOR_GRAY2RGB); + for(auto&& p:_for(keypoints)){ + cv::circle(debug, cv::Point(p.item.pt.x, p.item.pt.y ), 2, cv::Scalar(0, 255,0),2); + fts.push_back(make_shared(frame, Vector2d(p.item.pt.x, p.item.pt.y), p.item.response ,0,descriptor.data+(p.index*64))); + } + cv::imwrite(std::string(PROJECT_DIR)+"/test.png",debug); + //cv::waitKey(); resetGrid(); } diff --git a/GPU_version/vio/src/frame_handler_mono.cpp b/GPU_version/vio/src/frame_handler_mono.cpp index 0722c44..a7664b3 100644 --- a/GPU_version/vio/src/frame_handler_mono.cpp +++ b/GPU_version/vio/src/frame_handler_mono.cpp @@ -40,37 +40,7 @@ FrameHandlerMono::FrameHandlerMono(vk::AbstractCamera* cam,Eigen::Matrixmake_kernel("fast_gray"); - cv::Mat img=cv::Mat(cv::Size(700, 500),CV_8UC1); - std::vector errors; - errors.push_back(gpu_fast_->write_buf(0,0,img)); - cl_int2 corners_[350000]={0}; - errors.push_back(gpu_fast_->write_buf(0,1,350000,corners_)); - cl_int icorner[1]={0}; - errors.push_back(gpu_fast_->write_buf(0,2,1,icorner)); gpu_fast_->make_kernel("compute_residual"); - errors.push_back(gpu_fast_->write_buf(1,0,img)); - errors.push_back(gpu_fast_->write_buf(1,1,img)); - cl_float3 pose[1]={0.0}; - errors.push_back(gpu_fast_->write_buf(1,2,3,pose)); - errors.push_back(gpu_fast_->write_buf(1,3,3,pose)); - cl_float3 f[300]={0}; - errors.push_back(gpu_fast_->write_buf(1,4,300,f)); - cl_float2 px[300]={0}; - errors.push_back(gpu_fast_->write_buf(1,5,300,px)); - cl_float e[300]={0}; - errors.push_back(gpu_fast_->write_buf(1,7,300,e)); - cl_float H[9*300]={0}; - errors.push_back(gpu_fast_->write_buf(1,8,9*300,H)); - cl_float3 J[300]; - errors.push_back(gpu_fast_->write_buf(1,9,300,J)); - cl_float chi2[300]={0.01}; - errors.push_back(gpu_fast_->write_buf(1,10,300,chi2)); - for(auto e:errors){ - if(e!=true){ - std::cerr<<"Failed to write into GPU goodbye :) "<<'\n'; - exit(0); - } - } initialize(); #if VIO_DEBUG log_ =fopen((std::string(PROJECT_DIR)+"/frame_handler_log.txt").c_str(),"w+"); @@ -84,9 +54,6 @@ FrameHandlerMono::FrameHandlerMono(vk::AbstractCamera* cam,Eigen::Matrixwidth(), cam_->height(), Config::gridSize(),gpu_fast_, Config::nPyrLevels())); ba_glob_ = new BA_Glob(map_); ba_glob_->startThread(); } diff --git a/GPU_version/vio/src/sparse_img_align_gpu.cpp b/GPU_version/vio/src/sparse_img_align_gpu.cpp index aea39f4..4818f91 100644 --- a/GPU_version/vio/src/sparse_img_align_gpu.cpp +++ b/GPU_version/vio/src/sparse_img_align_gpu.cpp @@ -15,6 +15,7 @@ // along with this program. If not, see . #include +#include namespace vio { @@ -35,49 +36,58 @@ SparseImgAlignGpu::SparseImgAlignGpu( size_t SparseImgAlignGpu::run(FramePtr ref_frame, FramePtr cur_frame, FILE* log) { reset(); - errors.clear(); cl_float3 ref_pos[1]={(float)ref_frame->pos()(0),(float)ref_frame->pos()(1),(float)ref_frame->T_f_w_.pitch()}; cl_float3 cur_pos[1]={(float)cur_frame->pos()(0),(float)cur_frame->pos()(1),(float)cur_frame->T_f_w_.pitch()}; - errors.push_back(residual_->reload_buf(1,2,cur_pos)); - errors.push_back(residual_->reload_buf(1,3,ref_pos)); + residual_->load(1,2,1,cur_pos); + residual_->load(1,3,1,ref_pos); cl_float3 features[ref_frame->fts_.size()]; cl_float2 featue_px[ref_frame->fts_.size()]; feature_counter_ = 0; // is used to compute the index of the cached jacobian - for(auto it=ref_frame->fts_.begin(); it!=ref_frame->fts_.end();++it){ - if(*it == nullptr)continue; - if((*it)->point == nullptr)continue; - Vector3d xyz_ref=(*it)->f*((*it)->point->pos_ - Eigen::Vector3d(ref_pos[0].x,0.0,ref_pos[0].y)).norm(); - features[feature_counter_].x=xyz_ref(0); - features[feature_counter_].y=xyz_ref(1); - features[feature_counter_].z=xyz_ref(2); - featue_px[feature_counter_].x=(*it)->px(0); - featue_px[feature_counter_].y=(*it)->px(1); - if(feature_counter_>299)break; - ++feature_counter_; + for(auto it:_for(ref_frame->fts_)){ + ++feature_counter_; + if(it.item->point == nullptr){ + features[it.index].x=0.f; + features[it.index].y=0.f; + features[it.index].z=0.f; + featue_px[it.index].x=0.f; + featue_px[it.index].y=0.f; + continue; + } + Vector3d xyz_ref=it.item->f*(ref_frame->se3().inverse()*it.item->point->pos_).norm(); + features[it.index].x=xyz_ref(0); + features[it.index].y=xyz_ref(1); + features[it.index].z=xyz_ref(2); + featue_px[it.index].x=it.item->px(0); + featue_px[it.index].y=it.item->px(1); + } if(!feature_counter_) // more than 10 { return 0; } - errors.push_back(residual_->reload_buf(1,4,features)); - errors.push_back(residual_->reload_buf(1,5,featue_px)); + feature_counter_=ref_frame->fts_.size(); + cl_float error[feature_counter_]; + cl_float chi[feature_counter_]; + residual_->load(1,10,feature_counter_,chi); + residual_->load(1,7,feature_counter_,error); + residual_->load(1,4,feature_counter_,features); + residual_->load(1,5,feature_counter_,featue_px); SE2 T_cur(cur_frame->T_f_w_.se2());///TODO temporary, we can remove it for(level_=max_level_; level_>=min_level_; --level_) { cv::Mat cur_img = cur_frame->img_pyr_.at(level_); cv::Mat ref_img = ref_frame->img_pyr_.at(level_); - errors.push_back(residual_->reload_buf(1,0,cur_img)); - errors.push_back(residual_->reload_buf(1,1,ref_img)); - errors.push_back(residual_->write_buf(1,6,level_)); + residual_->load(1,0,cur_img); + residual_->load(1,1,ref_img); + residual_->load(1,6,level_); mu_ = 1.0; - for(auto&& e:errors)if(!e)return -1; - errors.clear(); optimize(T_cur); + residual_->release(1,0); + residual_->release(1,1); } - for(auto&& e:errors)if(!e)return -1; cl_float3 pos[1]={0}; residual_->read(1,2,1,pos); - if(isnan(pos[0].x) || isnan(pos[0].y) || isnan(pos[0].z))return 0; + if(isnan(pos[0].x) || isnan(pos[0].y) || isnan(pos[0].z))return 1; cur_frame->T_f_w_ = SE2_5(pos[0].x,pos[0].y,pos[0].z); return 1; } @@ -86,17 +96,17 @@ double SparseImgAlignGpu::computeResiduals( bool linearize_system, bool compute_weight_scale) { - cl_float H[9*300]={0}; - cl_float3 J[300]={0.0}; - cl_float chi2_[300]={0.0}; + cl_float H[9*feature_counter_]; + cl_float3 J[feature_counter_]; + cl_float chi2_[feature_counter_]; cl_float scale=(float)scale_; - errors.push_back(residual_->write_buf(1,11,scale)); - errors.push_back(residual_->reload_buf(1,10,chi2_)); - errors.push_back(residual_->reload_buf(1,8,H)); - errors.push_back(residual_->reload_buf(1,9,J)); + residual_->load(1,11,scale); + residual_->load(1,10,feature_counter_,chi2_); + residual_->load(1,8,9*feature_counter_,H); + residual_->load(1,9,feature_counter_,J); residual_->run(1,feature_counter_); - cl_float error[300]={0.0}; - cl_float chi[300]={0.0}; + cl_float error[feature_counter_]; + cl_float chi[feature_counter_]; residual_->read(1,10,feature_counter_,chi); residual_->read(1,7,feature_counter_,error); for(int i = 1; i < feature_counter_; ++i){ @@ -109,8 +119,8 @@ double SparseImgAlignGpu::computeResiduals( bool SparseImgAlignGpu::solve() { - cl_float H[300*9]={0.0}; - cl_float3 J[300]={0.0}; + cl_float H[feature_counter_*9]; + cl_float3 J[feature_counter_]; residual_->read(1,8,feature_counter_*9,H); residual_->read(1,9,feature_counter_,J); for(int i = 1; i < feature_counter_; ++i){ @@ -133,6 +143,10 @@ bool SparseImgAlignGpu::solve() x_ = Eigen::Matrix(Hd).ldlt().solve(Eigen::Vector3d((double)J[0].x,(double)J[0].y,(double)J[0].z)); double norm=x_.norm(); if(norm<=0 ||norm > 1.0)x_=Eigen::Vector3d(0.1,0.1,0.1); + residual_->release(1,10); + residual_->release(1,11); + residual_->release(1,8); + residual_->release(1,9); return true; } void SparseImgAlignGpu::update() @@ -143,7 +157,8 @@ void SparseImgAlignGpu::update() pos[0].x=(float)update.translation()(0); pos[0].y=(float)update.translation()(1); pos[0].z=(float)atan2(update.so2().unit_complex().imag(),update.so2().unit_complex().real()); - errors.push_back(residual_->reload_buf(1,2,pos)); + residual_->release(1,2); + residual_->load(1,2,1,pos); } void SparseImgAlignGpu::startIteration() diff --git a/GPU_version/vio/test.png b/GPU_version/vio/test.png new file mode 100644 index 0000000000000000000000000000000000000000..3c7865eb2df75c61ea99a6407ade8f7302148ce6 GIT binary patch literal 173964 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 literal 0 HcmV?d00001