avisingh599 / mono-vo

An OpenCV based implementation of Monocular Visual Odometry
MIT License
780 stars 294 forks source link

【an error】 #3

Open slbcs opened 9 years ago

slbcs commented 9 years ago

I am so sorry to trouble you, as I found a problem in your code,when you try to calculate R and t. First, you calculate t_f and then calculate R_f (By using 1. t_f = tf + scale(R_f_t); 2.R_f = R_R_f in you code) .What's more, I think you made the wrong order as we should calculate R_f at first and then calculate t_f (By using 1.R_f = R_R_f 2. t_f = tf + scale(R_f_t)),which was described in the Constructing Trajectory part of your blog(http://avisingh599.github.io/vision/monocular-vo). Sorry for my disturbance and thank you very much for your code.I sincerely want to know whether I am right or not and I need your help. Thanks and best wishes!

kerolex commented 8 years ago

Actually, inverting the two formulas generates a mistake in the second one: the translation part will be updated based on the new rotation matrix, instead of using the previous one as it should be. From an implementation point of view, if you create two variables prevR and prevT and you replace them in the two formulas, you will see the order does not matter anymore.