42 #include <Eigen/Geometry> 55 typedef Eigen::Matrix<double, 6, 1>
Vector6d;
59 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
67 Eigen::Matrix<double,3,4>
w2n;
68 Eigen::Matrix<double,3,4>
w2i;
72 Eigen::Matrix3d dRdx, dRdy,
dRdz;
78 setKcam(1,1,0.5,0.5,0);
83 SBACam(
const Eigen::Quaterniond& r_,
const Eigen::Vector3d& t_) :
SE3Quat(r_, t_)
102 _t += update.head(3);
104 Eigen::Quaterniond qr;
105 qr.vec() = update.segment<3>(3);
106 qr.w() = sqrt(1.0 - qr.vec().squaredNorm());
118 const Eigen::Vector3d &trans,
119 const Eigen::Quaterniond &qrot)
121 m.block<3,3>(0,0) = qrot.toRotationMatrix().transpose();
130 const Eigen::Vector3d &trans,
131 const Eigen::Quaterniond &qrot)
133 m.block<3,3>(0,0) = qrot.toRotationMatrix();
138 void setKcam(
double fx,
double fy,
double cx,
double cy,
double tx)
163 Eigen::Matrix3d dRidx, dRidy, dRidz;
164 dRidx << 0.0,0.0,0.0,
167 dRidy << 0.0,0.0,-2.0,
170 dRidz << 0.0,2.0,0.0,
175 dRdx = dRidx * w2n.block<3,3>(0,0);
176 dRdy = dRidy * w2n.block<3,3>(0,0);
177 dRdz = dRidz * w2n.block<3,3>(0,0);
187 out_str << cam.
translation().transpose() << std::endl;
188 out_str << cam.
rotation().coeffs().transpose() << std::endl << std::endl;
189 out_str << cam.
Kcam << std::endl << std::endl;
190 out_str << cam.
w2n << std::endl << std::endl;
191 out_str << cam.
w2i << std::endl << std::endl;
203 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
229 y = y - normal(1)*normal;
232 R.row(0) = normal.cross(R.row(1));
#define G2O_TYPES_SBA_API
some general case utility functions
static void transformF2W(Eigen::Matrix< double, 3, 4 > &m, const Eigen::Vector3d &trans, const Eigen::Quaterniond &qrot)
SBACam(const Eigen::Quaterniond &r_, const Eigen::Vector3d &t_)
Eigen::Matrix< double, 3, 4 > w2i
const Eigen::Quaterniond & rotation() const
void update(const Vector6d &update)
static void transformW2F(Eigen::Matrix< double, 3, 4 > &m, const Eigen::Vector3d &trans, const Eigen::Quaterniond &qrot)
std::ostream & operator<<(std::ostream &os, const G2OBatchStatistics &st)
void setKcam(double fx, double fy, double cx, double cy, double tx)
Eigen::Matrix< double, 3, 4 > w2n
const Vector3D & translation() const
Matrix< double, 6, 1, Eigen::ColMajor > Vector6d