MCPcopy Create free account
hub / github.com/UZ-SLAMLab/ORB_SLAM3 / Triangulate

Method Triangulate

src/GeometricTools.cc:47–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45}
46
47bool GeometricTools::Triangulate(Eigen::Vector3f &x_c1, Eigen::Vector3f &x_c2,Eigen::Matrix<float,3,4> &Tc1w ,Eigen::Matrix<float,3,4> &Tc2w , Eigen::Vector3f &x3D)
48{
49 Eigen::Matrix4f A;
50 A.block<1,4>(0,0) = x_c1(0) * Tc1w.block<1,4>(2,0) - Tc1w.block<1,4>(0,0);
51 A.block<1,4>(1,0) = x_c1(1) * Tc1w.block<1,4>(2,0) - Tc1w.block<1,4>(1,0);
52 A.block<1,4>(2,0) = x_c2(0) * Tc2w.block<1,4>(2,0) - Tc2w.block<1,4>(0,0);
53 A.block<1,4>(3,0) = x_c2(1) * Tc2w.block<1,4>(2,0) - Tc2w.block<1,4>(1,0);
54
55 Eigen::JacobiSVD<Eigen::Matrix4f> svd(A, Eigen::ComputeFullV);
56
57 Eigen::Vector4f x3Dh = svd.matrixV().col(3);
58
59 if(x3Dh(3)==0)
60 return false;
61
62 // Euclidean coordinates
63 x3D = x3Dh.head(3)/x3Dh(3);
64
65 return true;
66}
67
68} //namespace ORB_SLAM

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected