Try out different Kalman-covariance settings
Closed this issue · 2 comments
shadow1runner commented
I have a high suspicion that the covariance measurement matrix gets configured wrongly.
Consider the following scenario:
frame A: inlier ratio = 0.003
frame B: inlier ratio = 0.002 (= worse than A)
The KF gets fed with the following covariance matrices:
frame A:
R = [ 333 0 \\ 0 333]
frame B:
R = [ 500 0 \\ 0 500] (i.e. better then frame A)
this is off -> try skipping the reciprocal value and instead multiplying each value with e.g. 1000
shadow1runner commented
The following quick results show almost no impact of the choice of the covariance matrix :o
long fisheye
with correct inlier ratio (1000*inlierRatio)
FAIL! : CollisionAvoidanceTestBoscamLongFisheye::_5mHover() 'frameNumber <= dto.upperFrameNumberBound' returned FALSE. ()
FAIL! : CollisionAvoidanceTestBoscamLongFisheye::fenceCrash() 'dto.shouldTriggerCollisionImmanent' returned FALSE. ()
FAIL! : CollisionAvoidanceTestBoscamLongFisheye::fenceHover() 'dto.shouldTriggerCollisionImmanent' returned FALSE. ()
FAIL! : CollisionAvoidanceTestBoscamLongFisheye::_45deg_fenceCrash() 'dto.shouldTriggerCollisionImmanent' returned FALSE. ()
happens: triggered at frame #109
FAIL! : CollisionAvoidanceTestBoscamLongFisheye::_45deg_noCaHover() 'dto.shouldTriggerCollisionImmanent' returned FALSE. ()
happens: in both
FAIL! : CollisionAvoidanceTestBoscamLongFisheye::_45deg_slowFenceOverfly() 'frameNumber >= dto.lowerFrameNumberBound' returned FALSE. ()
happens: 52 >= 55 -> false
with wrong inlier ratio (1/inlierRatio)
FAIL! : CollisionAvoidanceTestBoscamLongFisheye::_45deg_5mHover() 'dto.shouldTriggerCollisionImmanent' returned FALSE. ()
FAIL! : CollisionAvoidanceTestBoscamLongFisheye::_45deg_fenceCrash3() 'frameNumber <= dto.upperFrameNumberBound' returned FALSE. ()
FAIL! : CollisionAvoidanceTestBoscamLongFisheye::_45deg_noCaHover() 'dto.shouldTriggerCollisionImmanent' returned FALSE. ()
cheap fisheye
with correct inlier ratio (1000*inlierRatio)
Totals: 8 passed, 2 failed, 0 skipped, 0 blacklisted
FAIL! : CollisionAvoidanceTestBoscamCheapFisheye::fenceCrash2() 'frameNumber >= dto.lowerFrameNumberBound' returned FALSE. ()
FAIL! : CollisionAvoidanceTestBoscamCheapFisheye::fastMetalFence() 'frameNumber >= dto.lowerFrameNumberBound' returned FALSE. ()
with wrong inlier ratio (1/inlierRatio)
Totals: 7 passed, 4 failed, 0 skipped, 0 blacklisted
FAIL! : CollisionAvoidanceTestBoscamCheapFisheye::fenceCrash() 'frameNumber >= dto.lowerFrameNumberBound' returned FALSE. ()
FAIL! : CollisionAvoidanceTestBoscamCheapFisheye::fenceCrash2() 'frameNumber >= dto.lowerFrameNumberBound' returned FALSE. ()
FAIL! : CollisionAvoidanceTestBoscamCheapFisheye::fastFenceFlyOver() 'frameNumber <= dto.upperFrameNumberBound' returned FALSE. ()
shadow1runner commented
1e5
seems to be an ok-ish value, which also has been graphed in #52