I have spent a few hours back tracking through the code to figure out why the publishers start but nothing ever happens. It seems that the tracking state (mState in Tracking is never getting set to OK), caused by a never ending loop of failing to initialize in Tracking:MonocularInitialization(). This is caused by the condition if(mpInitializer->Initialize(mCurrentFrame, mvIniMatches, Rcw, tcw, mvIniP3D, vbTriangulated)) always returning false and preventing the CreateInitialMapMonocular from running. I do not understand what is happening enough, but the ReconstructH method being called in Initializer is always returning false.
matcher.SearchForInitialization(mInitialFrame,mCurrentFrame,mvbPrevMatched,mvIniMatches,100) is always returning 100-500 matches which I would think tells me that a transformation should be possible. Initializer::Initializer always results in trying a homography (with SH~=3000, and SF~=3700 when the camera is static), but then I get something like d1=573829, d2=573267, d3=573165 which apparently they should not be.
I am trying to run ORB_SLAM2 through ravburn's wrapper so I can't as easily try the other sample data sets but this doesn't make sense to me why a transformation cannot be found for a stationary camera when it is getting matches
I have spent a few hours back tracking through the code to figure out why the publishers start but nothing ever happens. It seems that the tracking state (
mState
in Tracking is never getting set toOK
), caused by a never ending loop of failing to initialize inTracking:MonocularInitialization()
. This is caused by the conditionif(mpInitializer->Initialize(mCurrentFrame, mvIniMatches, Rcw, tcw, mvIniP3D, vbTriangulated))
always returning false and preventing theCreateInitialMapMonocular
from running. I do not understand what is happening enough, but theReconstructH
method being called inInitializer
is always returning false.matcher.SearchForInitialization(mInitialFrame,mCurrentFrame,mvbPrevMatched,mvIniMatches,100)
is always returning 100-500 matches which I would think tells me that a transformation should be possible.Initializer::Initializer
always results in trying a homography (with SH~=3000, and SF~=3700 when the camera is static), but then I get something liked1=573829, d2=573267, d3=573165
which apparently they should not be. I am trying to run ORB_SLAM2 through ravburn's wrapper so I can't as easily try the other sample data sets but this doesn't make sense to me why a transformation cannot be found for a stationary camera when it is getting matches