mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 17:17:47 +08:00
CI: use ubuntu arm runners instead of QEMU (#1771)
* CI: use ubuntu arm runners instead of QEMU * removed focal deps docker image ci * run tests in docker ci * revert temporary test * trigger ci jobs with modified files * ldconfig * arm64 ldconfig order * No response filtering here: cv::goodFeaturesToTrack() already applies GFTT/QualityLevel, relative to the best corner's measure. Re-applying it as an absolute floor on KeyPoint::response double-filtered (~86% of keypoints ropped on OpenCV 4.5), and dropped *every* keypoint on OpenCV < 4.5, whose GFTTDetector leaves response at 0. * fixing ExtractXYZCorrespondencesRANSAC ci error * increased windows timeout (probably caused by gftt fix now extracting more features)
This commit is contained in:
@@ -298,6 +298,45 @@ TEST_F(CameraModelTest, ReprojectInt)
|
||||
EXPECT_NEAR(v, static_cast<int>(cy_), 1);
|
||||
}
|
||||
|
||||
TEST_F(CameraModelTest, ReprojectIgnoresTx)
|
||||
{
|
||||
// A Tx set on a single camera model tags a left camera having stereo
|
||||
// observations (the BA optimizers read the baseline from it to build their
|
||||
// stereo edges), so reprojection stays that of the camera itself. Use
|
||||
// StereoCameraModel::reproject() to get both images of a stereo pair.
|
||||
double baseline = 0.12;
|
||||
CameraModel withTx(fx_, fy_, cx_, cy_, CameraModel::opticalRotation(), -baseline*fx_, imageSize_);
|
||||
CameraModel withoutTx(fx_, fy_, cx_, cy_, CameraModel::opticalRotation(), 0.0, imageSize_);
|
||||
EXPECT_DOUBLE_EQ(withTx.Tx(), -baseline*fx_);
|
||||
|
||||
float x = 0.3f, y = -0.2f, z = 2.0f;
|
||||
|
||||
float u, v, uNoTx, vNoTx;
|
||||
withTx.reproject(x, y, z, u, v);
|
||||
withoutTx.reproject(x, y, z, uNoTx, vNoTx);
|
||||
|
||||
EXPECT_FLOAT_EQ(u, uNoTx);
|
||||
EXPECT_FLOAT_EQ(v, vNoTx);
|
||||
EXPECT_FLOAT_EQ(u, static_cast<float>(fx_*x/z + cx_));
|
||||
EXPECT_FLOAT_EQ(v, static_cast<float>(fy_*y/z + cy_));
|
||||
}
|
||||
|
||||
TEST_F(CameraModelTest, ReprojectProjectRoundTripNoTx)
|
||||
{
|
||||
CameraModel model(fx_, fy_, cx_, cy_, CameraModel::opticalRotation(), 0.0, imageSize_);
|
||||
|
||||
float x = 0.35f, y = -0.15f, z = 2.5f;
|
||||
|
||||
float u, v;
|
||||
model.reproject(x, y, z, u, v);
|
||||
|
||||
float x2, y2, z2;
|
||||
model.project(u, v, z, x2, y2, z2);
|
||||
EXPECT_NEAR(x2, x, 0.001f);
|
||||
EXPECT_NEAR(y2, y, 0.001f);
|
||||
EXPECT_FLOAT_EQ(z2, z);
|
||||
}
|
||||
|
||||
// Field of View Tests
|
||||
|
||||
TEST_F(CameraModelTest, FieldOfView)
|
||||
|
||||
Reference in New Issue
Block a user