Closed DreamWaterFound closed 3 years ago
Hi @DreamWaterFound. In very rare case, the "RePoEr_cam" matrix is not an orthogonal matrix but near, with the diagonal values slightly greater than 1, for example =1.001; That makes ''acos( (trace_rpe_cam -1.0)/2.0 )'' a non-real number. So I did it to avoid the axis angle being an imaginary number, and show the result with no bug (though it is not a good way to do so). A standard way to do should be to find the nearest orthogonal matrix of 'RePoEr_cam', please refer to here. Anyway, it is just for debug, please ignore it, and i will fix it in later version. If you want to evaluate results of VDO-SLAM, I suggest you run and save the results, and use your own evaluation tool to evaluate them. Hope this helps.
Thanks !!
Thanks for your excellent work!
I have confused with the operation of computing the trace of rotation matrix during calculating camera pose error in Tracking.cc:
https://github.com/halajun/VDO_SLAM/blob/2c3d23313954b6ef509959417a32d1d72538f0db/src/Tracking.cc#L724
Why we need to determine whether the pivot elements are greater than
1
rather than compute trace directly? And what is the meaning of the+ 1.0 - (RePoEr_cam.at<float>(i, i) - 1.0)
operation?That seems related to computational robustness, but I can't figure out why. I sincerely look forward to your reply. Thank you very much! :heart: