diff --git a/src/processor/processor_visual_odometry.cpp b/src/processor/processor_visual_odometry.cpp index 0be8e83c3f3ff5eaf3d60dd7a598fa05c35ecc54..ae13d5d32c18b277ae66cc2d4a6cc68c35cb42ab 100644 --- a/src/processor/processor_visual_odometry.cpp +++ b/src/processor/processor_visual_odometry.cpp @@ -492,7 +492,6 @@ LandmarkBasePtr ProcessorVisualOdometry::emplaceLandmark(FeatureBasePtr _feat) double distance = 1; Eigen::Vector4d vec_homogeneous_c; vec_homogeneous_c = {point3d(0),point3d(1),point3d(2),point3d.norm()/distance}; - vec_homogeneous_c.normalize(); //TODO: lmk from camera to world coordinate frame. Transform<double,3,Isometry> T_w_r @@ -505,6 +504,9 @@ LandmarkBasePtr ProcessorVisualOdometry::emplaceLandmark(FeatureBasePtr _feat) * T_r_c * vec_homogeneous_c; + // normalize to make equivalent to a unit quaternion + vec_homogeneous_w.normalize(); + auto lmk_hp_ptr = LandmarkBase::emplace<LandmarkHp>(getProblem()->getMap(), vec_homogeneous_w, feat_pi->getKeyPoint().getDescriptor());