Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error to run extrinsic_calib #79

Open
LeatherWang opened this issue Jun 14, 2018 · 9 comments
Open

error to run extrinsic_calib #79

LeatherWang opened this issue Jun 14, 2018 · 9 comments

Comments

@LeatherWang
Copy link

Hi,
I am clibrating the extrinsic of one monocular and wheel encoder mounted on a indoor service robot, but I have these errors below,

my parameters are:
camera-count: 1
keydist: 0.01
motions: 300

I collect the all inout data in a room of ten meters by ten meters in three minutes with 6000 pictures.

I can't understand the parameters begin-stage and focal, and I use the default value. How I should modify these parameters? Thank you very much!


# INFO: P3P RANSAC yielded 100 inliers with a reprojection error of 0.58 px.
# INFO: Found 54 new feature correspondences.
# INFO: Triangulated 45 new points.
# INFO: Window reprojection error before optimization: min = 0 | max = 10.5056 | avg = 0.199166
# INFO: Window reprojection error after optimization: min = 5.73329e-10 | max = 10.5025 | avg = 0.184622
# INFO: Feature detection took 0.0275359s.
# INFO: Descriptor computation took 0.00580645s.
# INFO: Descriptor matching took 0.00310922s.
# INFO: Removed 3 matches via cross-checking.
# INFO: # good matches: 148
# INFO: Added frame 14.
# INFO: Found 146 feature correspondences in last 2 frames.
# INFO: Using 107 scene points to compute pose via P3P RANSAC.
# INFO: Computed pose in frame 14:
  0.970967  0.0648157   0.230263  -0.874598
 -0.062423   0.997893 -0.0176689  0.0934642
 -0.230923  0.0027822   0.972968  0.0029632
        -0         -0         -0          1
# INFO: P3P RANSAC yielded 107 inliers with a reprojection error of 0.36 px.
# INFO: Found 35 new feature correspondences.
# INFO: Triangulated 34 new points.
# INFO: Window reprojection error before optimization: min = 0 | max = 10.5025 | avg = 0.190155
# INFO: Window reprojection error after optimization: min = 0 | max = 10.5025 | avg = 0.184659
# INFO: Use provided odometry estimate for camera 0...
Rotation: 
 0.00263442    0.247987     0.96876
  -0.999987 -0.00366104  0.00365651
 0.00445343   -0.968756    0.247974
Translation: 
100 0 0
# INFO: Reprojection error for camera 0: avg = 2.40404 px | max = 62043 px
# INFO: Completed camera-odometry calibration for all cameras.
# INFO: Saving intermediate data... Done. Took 2.31s.
# INFO: Running camera rig calibration.
# INFO: # segments = 11
# INFO:   Segment 0: # frame sets = 15
# INFO:   Segment 1: # frame sets = 26
# INFO:   Segment 2: # frame sets = 73
# INFO:   Segment 3: # frame sets = 35
# INFO:   Segment 4: # frame sets = 37
# INFO:   Segment 5: # frame sets = 18
# INFO:   Segment 6: # frame sets = 30
# INFO:   Segment 7: # frame sets = 28
# INFO:   Segment 8: # frame sets = 16
# INFO:   Segment 9: # frame sets = 16
# INFO:   Segment 10: # frame sets = 14
# INFO: Reprojection error: avg = 0.52 px | max = 293.33 px | # obs = 56000
# INFO: Triangulating feature correspondences... 
# INFO: Reprojection error after triangulation: avg = 2.55 px | max = 1097.19 px | # obs = 31736
# INFO: # 3D scene points: 8118
# INFO: Checking the validity of the graph...
# INFO: Finished checking the validity of the graph.
# INFO: Reprojection error after pruning: avg = 2.55 px | max = 1097.19 px | # obs = 31736
# INFO: # 3D scene points: 8118
# INFO: Running BA on odometry data... 
# INFO: Loss parameter = 25
# INFO: sqrt precision matrix (keypoint position):
5 0
0 5
E0614 20:46:52.475142 14033 solver.cc:487] Terminating: Can't use SPARSE_NORMAL_CHOLESKY as sparse_linear_algebra_library_type is NO_SPARSE.
Ceres Solver Report: Iterations: -2, Initial cost: -1.000000e+00, Final cost: -1.000000e+00, Termination: FAILURE
# INFO: Done.
# INFO: Reprojection error after BA (odometry): avg = 2.55 px | max = 1097.19 px | # obs = 31736
# INFO: # 3D scene points: 8118
# INFO: Running robust pose graph optimization... 
# INFO: Building odometry edges...
# INFO: Built 297 odometry edges.
# INFO: Building loop closure edges...
terminate called after throwing an instance of 'std::string'
E0614 20:46:55.799499 14033 extrinsic_calib.cc:42] *** Aborted at 1528980415 (unix time) try "date -d @1528980415" if you are using GNU date ***
E0614 20:46:55.807651 14033 extrinsic_calib.cc:42] PC: @     0x7f7c98c7cc37 (unknown)
E0614 20:46:55.814091 14033 extrinsic_calib.cc:42] *** SIGABRT (@0x3e8000036d1) received by PID 14033 (TID 0x7f7c9ed85a40) from PID 14033; stack trace: ***
E0614 20:46:55.821746 14033 extrinsic_calib.cc:42]     @     0x7f7c99539330 (unknown)
E0614 20:46:55.822572 14033 extrinsic_calib.cc:42]     @     0x7f7c98c7cc37 (unknown)
E0614 20:46:55.823309 14033 extrinsic_calib.cc:42]     @     0x7f7c98c80028 (unknown)
E0614 20:46:55.823938 14033 extrinsic_calib.cc:42]     @     0x7f7c99285535 (unknown)
E0614 20:46:55.824537 14033 extrinsic_calib.cc:42]     @     0x7f7c992836d6 (unknown)
E0614 20:46:55.825163 14033 extrinsic_calib.cc:42]     @     0x7f7c99283703 (unknown)
E0614 20:46:55.825762 14033 extrinsic_calib.cc:42]     @     0x7f7c99283922 (unknown)
E0614 20:46:55.826261 14033 extrinsic_calib.cc:42]     @     0x7f7c94d75359 DBoW2::TemplatedVocabulary<>::load()
E0614 20:46:55.826752 14033 extrinsic_calib.cc:42]     @     0x7f7c94d68219 camodocal::LocationRecognition::setup()
E0614 20:46:55.848026 14033 extrinsic_calib.cc:42]     @     0x7f7c98679723 camodocal::PoseGraph::findLoopClosures()
E0614 20:46:55.849459 14033 extrinsic_calib.cc:42]     @     0x7f7c9867a352 camodocal::PoseGraph::buildEdges()
E0614 20:46:55.858290 14033 extrinsic_calib.cc:42]     @     0x7f7c9e2d01cd camodocal::CameraRigBA::run()
E0614 20:46:55.859398 14033 extrinsic_calib.cc:42]     @     0x7f7c9e30bdb4 camodocal::CamRigOdoCalibration::start()
E0614 20:46:55.859500 14033 extrinsic_calib.cc:42]     @           0x456604 main
E0614 20:46:55.860219 14033 extrinsic_calib.cc:42]     @     0x7f7c98c67f45 (unknown)
E0614 20:46:55.860437 14033 extrinsic_calib.cc:42]     @           0x457167 (unknown)
E0614 20:46:55.861268 14033 extrinsic_calib.cc:42]     @                0x0 (unknown)


That is all. I am looking forward to your reply.

@Unlingius
Copy link

Unlingius commented Aug 14, 2018

I have also only one camera and crash at loop closure stage. Have you solved your problem?

@singhsonam2509
Copy link

singhsonam2509 commented Dec 12, 2018

In case if you are still looking for solution, according to the shared error log by you, the problem is with loading the voc data provided by the author. One thing you could try is to extract the surf64.yml file from the provided .gz file and provide the absolute path to the voc.load function in locationRecognition.

@debuleilei
Copy link

@LeatherWang hello ,I just want to test extrinsic_calib ,but without effective dataset. Can you give me some help.thank you all the same.

@jd110145derek
Copy link

@LeatherWang hi, have you solve this problem, i also encounter the same problem

GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=-0.863899, qw=0.503665 [297399]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=0.868302, qw=-0.496036 [297599]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=0.87087, qw=-0.491513 [297799]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=0.866787, qw=-0.498679 [297999]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=0.872353, qw=-0.488876 [298199]
IMG: 297999 -> ../dataset2/input//frames_0/camera_0_1490.png
Pose : 298199
-0.517796  0.846075         0
-0.846075 -0.517796        -0
       -0         0         1
LOC: 4685949.624653 277054.318119 0.000000
# INFO: Feature detection took 0.0792429s.
# INFO: Descriptor computation took 0.0520101s.
# INFO: Descriptor matching took 0.00974917s.
# INFO: Removed 67 matches via cross-checking.
# INFO: # good matches: 983
# INFO: Added frame 4.
# INFO: Found 982 feature correspondences in last 2 frames.
# INFO: Using 60 scene points to compute pose via P3P RANSAC.
# INFO: Computed pose in frame 4:
  0.996381 -0.0227528  0.0818955    -3.1859
 0.0514799   0.928223  -0.368444    -1.5801
-0.0676342   0.371327   0.926036   -4.85823
        -0         -0         -0          1
# INFO: P3P RANSAC yielded 48 inliers with a reprojection error of 1.89 px.
# INFO: Found 742 new feature correspondences.
# INFO: Triangulated 449 new points.
# INFO: Window reprojection error before optimization: min = 0 | max = 2.01112 | avg = 0.395658
# INFO: Pruned 11 scene points that had too high reprojection errors.
# INFO: Window reprojection error after optimization: min = 2.37761e-08 | max = 5.42281 | avg = 0.283391
IMG: 297999 -> ../dataset2/input//frames_1/camera_1_1490.png
Pose : 298199
-0.517796  0.846075         0
-0.846075 -0.517796        -0
       -0         0         1
# INFO: Feature detection took 0.0822718s.
# INFO: Descriptor computation took 0.0892906s.
# INFO: Descriptor matching took 0.0398977s.
# INFO: Removed 44 matches via cross-checking.
# INFO: # good matches: 334
# INFO: Added frame 1.
# INFO: Found 332 feature correspondences in last 2 frames.
# INFO: Computed pose in frame 0 wrt pose in frame 1 with 149 inliers:
[0.9999062979523855, -0.01176855610885814, -0.006992596246588958;
 0.01165237131711372, 0.9997971165830093, -0.0164300917522674;
 0.007184536021429336, 0.01634707189109105, 0.9998405651316336]
[-0.05993969186897249;
 0.9878905100649813;
 -0.1431068602904961]
# INFO: Triangulated 113 points.
# INFO: Window reprojection error before optimization: min = 0 | max = 1.94441 | avg = 0.431082
# INFO: Window reprojection error after optimization: min = 1.85527e-10 | max = 1.49945 | avg = 0.362262
IMG: 297999 -> ../dataset2/input//frames_2/camera_2_1490.png
Pose : 298199
-0.517796  0.846075         0
-0.846075 -0.517796        -0
       -0         0         1
# INFO: Feature detection took 0.0853186s.
# INFO: Descriptor computation took 0.0242233s.
# INFO: Descriptor matching took 0.00135827s.
# INFO: Removed 44 matches via cross-checking.
# INFO: # good matches: 366
# INFO: Added frame 3.
# INFO: Found 366 feature correspondences in last 2 frames.
# INFO: Using 166 scene points to compute pose via P3P RANSAC.
# INFO: Computed pose in frame 3:
  0.997037  0.0762402  0.0101883   0.317112
-0.0744665    0.98993  -0.120387   -1.77095
-0.0192641   0.119272   0.992675 -0.0119976
        -0         -0         -0          1
# INFO: P3P RANSAC yielded 159 inliers with a reprojection error of 0.99 px.
# INFO: Found 124 new feature correspondences.
# INFO: Triangulated 77 new points.
# INFO: Window reprojection error before optimization: min = 0 | max = 1.98643 | avg = 0.390315
# INFO: Window reprojection error after optimization: min = 1.15576e-08 | max = 1.96048 | avg = 0.310322
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=0.866787, qw=-0.498678 [298399]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=0.86689, qw=-0.498499 [298599]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=-0.863364, qw=0.504581 [298799]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=-0.854565, qw=0.519345 [298999]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=-0.861657, qw=0.507491 [299199]
IMG: 298999 -> ../dataset2/input//frames_0/camera_0_1495.png
Pose : 299199
 -0.48093  0.867396         0
-0.867396  -0.48093        -0
       -0         0         1
LOC: 4685949.584666 277055.576118 0.000000
# INFO: Feature detection took 0.0845788s.
# INFO: Descriptor computation took 0.0510938s.
# INFO: Descriptor matching took 0.00772309s.
# INFO: Removed 89 matches via cross-checking.
# INFO: # good matches: 996
# INFO: Added frame 5.
# INFO: Found 996 feature correspondences in last 2 frames.
# INFO: Using 376 scene points to compute pose via P3P RANSAC.
# INFO: Computed pose in frame 5:
  0.998718 -0.0335195  0.0379415   -1.65021
 0.0436284   0.950026  -0.309108   -1.66997
-0.0256842   0.310367    0.95027   -3.28222
        -0         -0         -0          1
# INFO: P3P RANSAC yielded 174 inliers with a reprojection error of 7.40 px.
# INFO: Found 365 new feature correspondences.
# INFO: Triangulated 129 new points.
# INFO: Window reprojection error before optimization: min = 0 | max = 5.42281 | avg = 0.38259
# INFO: Pruned 5 scene points that had too high reprojection errors.
# INFO: Window reprojection error after optimization: min = 7.341e-12 | max = 5.34693 | avg = 0.341953
IMG: 298999 -> ../dataset2/input//frames_1/camera_1_1495.png
Pose : 299199
 -0.48093  0.867396         0
-0.867396  -0.48093        -0
       -0         0         1
# INFO: Feature detection took 0.0825782s.
# INFO: Descriptor computation took 0.0868769s.
# INFO: Descriptor matching took 0.0353603s.
# INFO: Removed 32 matches via cross-checking.
# INFO: # good matches: 421
# INFO: Added frame 2.
# INFO: Found 421 feature correspondences in last 2 frames.
# INFO: Using 29 scene points to compute pose via P3P RANSAC.
# INFO: Computed pose in frame 2:
    0.999883  0.000989127   -0.0152823     0.172974
-0.000634962     0.999732    0.0231623      2.40866
   0.0153011   -0.0231499     0.999615     -0.55871
          -0           -0           -0            1
# INFO: P3P RANSAC yielded 16 inliers with a reprojection error of 3.05 px.
# INFO: Found 273 new feature correspondences.
# INFO: Triangulated 169 new points.
# INFO: Window reprojection error before optimization: min = 0 | max = 1.96551 | avg = 0.424391
# INFO: Pruned 6 scene points that had too high reprojection errors.
# INFO: Window reprojection error after optimization: min = 3.1801e-10 | max = 1.72911 | avg = 0.369844
IMG: 298999 -> ../dataset2/input//frames_2/camera_2_1495.png
Pose : 299199
 -0.48093  0.867396         0
-0.867396  -0.48093        -0
       -0         0         1
# INFO: Feature detection took 0.0851276s.
# INFO: Descriptor computation took 0.0247226s.
# INFO: Descriptor matching took 0.0011642s.
# INFO: Removed 35 matches via cross-checking.
# INFO: # good matches: 460
# INFO: Added frame 4.
# INFO: Found 460 feature correspondences in last 2 frames.
# INFO: Using 206 scene points to compute pose via P3P RANSAC.
# INFO: Computed pose in frame 4:
  0.997453   0.070402  0.0114099   0.389267
 -0.068981   0.992948 -0.0964192   -1.44085
-0.0181176  0.0953866   0.995275 -0.0165284
        -0         -0         -0          1
# INFO: P3P RANSAC yielded 195 inliers with a reprojection error of 0.80 px.
# INFO: Found 105 new feature correspondences.
# INFO: Triangulated 85 new points.
# INFO: Window reprojection error before optimization: min = 0 | max = 1.97811 | avg = 0.367037
# INFO: Window reprojection error after optimization: min = 4.54747e-13 | max = 1.97004 | avg = 0.32006
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=-0.853059, qw=0.521815 [299399]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=-0.851815, qw=0.523843 [299599]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=-0.851405, qw=0.524509 [299799]
GPS: lat=42.2939, lon=-83.7044, alt=0, qx=0, qy=0, qz=-0.847723, qw=0.530439 [299999]
# INFO: Before refinement:
H_cam_odo = 
 0.550015  0.667254  -0.50225 -0.938575
-0.755231  0.140657 -0.640188  -1.85668
-0.356524  0.731428  0.581295         0
        0         0         0         1
scales = 
0.606285 0.0236088 1.24614 
# INFO: Before refinement:
H_cam_odo = 
 -0.116968    0.98172   0.150146   -1.61226
0.00468886   0.151728  -0.988411    1.42772
 -0.993125  -0.114908 -0.0223505          0
         0          0          0          1
scales = 
0.114315 3.63548 1.56326 0.00815201 
Ceres Solver Report: Iterations: 12, Initial cost: 5.678176e+01, Final cost: 4.951073e+01, Termination: FUNCTION_TOLERANCE.
# INFO: After refinement:
H_cam_odo = 
 0.0812597   0.994488 -0.0662576  -0.766051
 -0.410784 -0.0271519  -0.911328   -2.91914
 -0.908104   0.101272   0.406314          0
         0          0          0          1
scales = 
0.522771 -0.00559585 1.1143 
# INFO: Calibrating odometry - camera 1...
Rotation: 
 0.0812597   0.994488 -0.0662576
 -0.410784 -0.0271519  -0.911328
 -0.908104   0.101272   0.406314
Translation: 
-0.766051  -2.91914         0
# INFO: Before refinement:
H_cam_odo = 
 -0.190661   0.980977  0.0364991    3.24889
 -0.391874 -0.0419686  -0.919061   -4.75121
 -0.900046  -0.189532   0.392421          0
         0          0          0          1
scales = 
2.34522 0.264317 0.0434796 
Ceres Solver Report: Iterations: 15, Initial cost: 1.233887e+02, Final cost: 9.860917e+01, Termination: FUNCTION_TOLERANCE.
# INFO: After refinement:
H_cam_odo = 
 0.356935  0.740433  0.569524   -2.0829
 0.443375  0.402345  -0.80096   1.64746
-0.822202  0.538403 -0.184678         0
        0         0         0         1
scales = 
-0.106856 -3.25947 0.890406 0.00244523 
# INFO: Calibrating odometry - camera 0...
Rotation: 
 0.356935  0.740433  0.569524
 0.443375  0.402345  -0.80096
-0.822202  0.538403 -0.184678
Translation: 
-2.0829 1.64746       0
# INFO: Reprojection error for camera 1: avg = 0.35336 px | max = 3.14553 px
Ceres Solver Report: Iterations: 7, Initial cost: 6.798111e+01, Final cost: 6.626897e+01, Termination: FUNCTION_TOLERANCE.
# INFO: After refinement:
H_cam_odo = 
-0.125612  0.991919 0.0178653   3.00557
-0.713659 -0.077836 -0.696156  -4.86509
-0.689139 -0.100195  0.717669         0
        0         0         0         1
scales = 
2.31404 0.141733 -0.00951979 
# INFO: Calibrating odometry - camera 2...
Rotation: 
-0.125612  0.991919 0.0178653
-0.713659 -0.077836 -0.696156
-0.689139 -0.100195  0.717669
Translation: 
 3.00557 -4.86509        0
# INFO: Reprojection error for camera 2: avg = 0.387265 px | max = 20.3658 px
# INFO: Reprojection error for camera 0: avg = 0.453998 px | max = 27.8478 px
# INFO: Completed camera-odometry calibration for all cameras.
# INFO: Saving intermediate data... Done. Took 6.35s.
# INFO: Running camera rig calibration.
# INFO: # segments = 4
# INFO:   Segment 0: # frame sets = 21
# INFO:   Segment 1: # frame sets = 27
# INFO:   Segment 2: # frame sets = 36
# INFO:   Segment 3: # frame sets = 20
# INFO: Reprojection error: avg = 0.41 px | max = 27.85 px | # obs = 73927
# INFO: Triangulating feature correspondences... 
# INFO: Reprojection error after triangulation: avg = 783.22 px | max = 12175254.80 px | # obs = 48104
# INFO: # 3D scene points: 15118
# INFO: Checking the validity of the graph...
# INFO: Finished checking the validity of the graph.
# INFO: Reprojection error after pruning: avg = 208.67 px | max = 528456.13 px | # obs = 44423
# INFO: # 3D scene points: 14518
# INFO: Running BA on odometry data... 
# INFO: Loss parameter = 25
# INFO: sqrt precision matrix (keypoint position):
5 0
0 5
Ceres Solver Report: Iterations: 89, Initial cost: 2.616784e+07, Final cost: 4.234443e+06, Termination: PARAMETER_TOLERANCE.
# INFO: Done.
# INFO: Reprojection error after BA (odometry): avg = 13.20 px | max = 182.59 px | # obs = 44312
# INFO: # 3D scene points: 14481
# INFO: Running robust pose graph optimization... 
# INFO: Building odometry edges...
# INFO: Built 100 odometry edges.
# INFO: Building loop closure edges...
terminate called after throwing an instance of 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >'
Aborted (core dumped)

@chunxiaoqiao
Copy link

@jd110145derek
Hi, Can I try your dataset ?
My e-mail is [chxqiao@gmail.com ]
Thanks!

@jd110145derek
Copy link

jd110145derek commented May 18, 2021 via email

@Vslamer
Copy link

Vslamer commented Nov 23, 2021

hi, have you solve this problem, i also encounter the same problem

hello, have you solve this problem, i also hace the same problem

@Vslamer
Copy link

Vslamer commented Dec 7, 2021

In case if you are still looking for solution, according to the shared error log by you, the problem is with loading the voc data provided by the author. One thing you could try is to extract the surf64.yml file from the provided .gz file and provide the absolute path to the voc.load function in locationRecognition.

I solve this problem according your way.
`void
LocationRecognition::setup(const SparseGraph& graph)
{
m_frameTags.clear();
m_frames.clear();
m_frameMap.clear();

Surf64Vocabulary voc;
//Change to absolute path
voc.load("/home/{your path}/camodocal/data/vocabulary/surf64.yml.gz");

m_db.setVocabulary(voc);`

@sandeepnmenon
Copy link
Contributor

sandeepnmenon commented May 26, 2022

In case if you are still looking for solution, according to the shared error log by you, the problem is with loading the voc data provided by the author. One thing you could try is to extract the surf64.yml file from the provided .gz file and provide the absolute path to the voc.load function in locationRecognition.

Replaced the below line


with
voc.load("/root/camodocal/data/vocabulary/surf64.yml.gz");

The error is resolved

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants