本文整理汇总了C++中eigen::Matrix::isApprox方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix::isApprox方法的具体用法?C++ Matrix::isApprox怎么用?C++ Matrix::isApprox使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eigen::Matrix
的用法示例。
在下文中一共展示了Matrix::isApprox方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: att
TEST(MEKFGyroAccMagTestGroup, vect_measurement_jacobian)
{
Eigen::Quaternionf att(Eigen::AngleAxisf(M_PI/2, Eigen::Vector3f::UnitZ()));
Eigen::Vector3f v_i(0, 1, 0); // expectation of v in inertial frame
// expectation of v is along [0,1,0] in inertial and [1,0,0] in body frame,
// because the body frame is oriented +90deg yaw
k.reset(att);
Eigen::Vector3f v_b = att.conjugate()._transformVector(v_i); // [1,0,0]
Eigen::Matrix3f b_to_m = k.vect_measurement_basis_b_frame(v_i);
//std::cout << std::endl << v_b << std::endl;
Eigen::Matrix<float, 2, 3> Ha = MEKFGyroAccMag::vect_measurement_jacobian(b_to_m, v_b);
Eigen::Matrix<float, 2, 3> Ha_exp;
// sensitivity of z (= last 2 components of v_m) with respect to a:
// with respect to a1 (=roll right) = [0, 0]' (v_b is [1, 0, 0], along roll axis)
// with respect to a2 (=pitch up) = [0, 1]' (v_b goes down (positive))
// with respect to a3 (=yaw right) = [-1, 0]' (v_b goes left (negative))
Ha_exp << 0, 0, -1,
0, 1, 0;
//std::cout << std::endl << Ha << std::endl;
CHECK_TRUE(Ha.isApprox(Ha_exp));
}
示例2:
bool k_means_tree<Point, K, Data, Lp>::compare_centroids(const Eigen::Matrix<float, rows, dim>& centroids,
const Eigen::Matrix<float, rows, dim>& last_centroids) const
{
return centroids.isApprox(last_centroids, 1e-30f);//1e-30f);
}
示例3: REQUIRE
// Generate random 3D points
Eigen::Matrix<double, 3, Eigen::Dynamic> points = eight::utils::samplePointsInBox(Eigen::Vector3d(-500, -500, 300), Eigen::Vector3d(500, 500, 1500), nPoints);
// Assume the first camera at origin and the second freely transformed.
Eigen::AffineCompact3d t0;
t0.setIdentity();
Eigen::AffineCompact3d t1;
t1 = Eigen::Translation3d(15.0, 0.0, 3.5) * Eigen::AngleAxisd(0.25*M_PI, Eigen::Vector3d(0.5, -0.3, 0.2).normalized());
// Generate projected image points
Eigen::Matrix<double, 3, 4> cam0 = eight::cameraMatrix(k, t0);
Eigen::Matrix<double, 3, 4> cam1 = eight::cameraMatrix(k, t1);
Eigen::Matrix<double, 2, Eigen::Dynamic> image0 = eight::perspectiveProject(points, cam0).colwise().hnormalized();
Eigen::Matrix<double, 2, Eigen::Dynamic> image1 = eight::perspectiveProject(points, cam1).colwise().hnormalized();
Eigen::Matrix3d F = eight::fundamentalMatrix(image0, image1);
std::cout << F << std::endl;
Eigen::Matrix3d E = eight::essentialMatrix(k, F);
Eigen::Matrix<double, 3, 4> pose = eight::pose(E, k, image0, image1);
std::cout << "Should be: " << std::endl << t1.matrix() << std::endl;
std::cout << "Pose: " << std::endl << pose << std::endl;
// Note: Translation can only be compared up to scale.
Eigen::Matrix<double, 3, 4> tm = t1.matrix();
tm.block<3, 1>(0, 3).normalize();
REQUIRE(pose.isApprox(tm, 1e-3));
}