SaDVIO
parametersBlock.hpp
Go to the documentation of this file.
1 #include "isaeslam/typedefs.h"
2 #include "utilities/geometry.h"
3 
4 #include <Eigen/Core>
5 
6 namespace isae {
7 
12 
13  public:
14  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
15 
17 
18  PoseParametersBlock(const Eigen::Affine3d &T_w_f) {
19  Eigen::Map<Vector6d> x(values_);
20  x = geometry::se3_RTtoVec6d(T_w_f);
21  }
22 
24  for (size_t i = 0; i < ndim_; i++) {
25  values_[i] = block.values_[i];
26  }
27  }
28 
30  for (size_t i = 0; i < ndim_; i++) {
31  values_[i] = block.values_[i];
32  }
33  return *this;
34  }
35 
36  Eigen::Affine3d getPose() {
37  Eigen::Map<Vector6d> x(values_);
38  return geometry::se3_Vec6dtoRT(x);
39  }
40 
41  inline double *values() { return values_; }
42 
43  static const size_t ndim_ = 6;
44  double values_[ndim_] = {0., 0., 0., 0., 0., 0.};
45 };
46 
51 
52  public:
53  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
54 
56 
57  PointXYZParametersBlock(const Eigen::Vector3d &X) { Eigen::Map<Eigen::Vector3d>(values_, 3, 1) = X; }
58 
60  for (size_t i = 0; i < ndim_; i++) {
61  values_[i] = block.values_[i];
62  }
63  }
64 
66  for (size_t i = 0; i < ndim_; i++) {
67  values_[i] = block.values_[i];
68  }
69  return *this;
70  }
71 
72  Eigen::Affine3d getPose() {
73  Eigen::Affine3d plmk(Eigen::Affine3d::Identity());
74  Eigen::Map<Eigen::Vector3d> tlmk(values_);
75  plmk.translation() = tlmk;
76  return plmk;
77  }
78 
79  inline double *values() { return values_; }
80 
81  static const size_t ndim_ = 3;
82  double values_[ndim_] = {0., 0., 0.};
83 };
84 
85 } // namespace isae
geometry.h
isae::PoseParametersBlock::operator=
PoseParametersBlock & operator=(const PoseParametersBlock &block)
Definition: parametersBlock.hpp:29
isae::PoseParametersBlock::PoseParametersBlock
PoseParametersBlock(const PoseParametersBlock &block)
Definition: parametersBlock.hpp:23
isae::PointXYZParametersBlock::values
double * values()
Definition: parametersBlock.hpp:79
isae::PoseParametersBlock::ndim_
static const size_t ndim_
Definition: parametersBlock.hpp:43
isae::PointXYZParametersBlock::values_
double values_[ndim_]
Definition: parametersBlock.hpp:82
isae::PoseParametersBlock::PoseParametersBlock
EIGEN_MAKE_ALIGNED_OPERATOR_NEW PoseParametersBlock()
Definition: parametersBlock.hpp:16
isae::PointXYZParametersBlock::PointXYZParametersBlock
PointXYZParametersBlock(const Eigen::Vector3d &X)
Definition: parametersBlock.hpp:57
typedefs.h
isae::PoseParametersBlock::values_
double values_[ndim_]
Definition: parametersBlock.hpp:44
isae::geometry::se3_RTtoVec6d
Vector6d se3_RTtoVec6d(Eigen::Affine3d RT)
Compute the logarithm of the SO(3)xT(3) composite manifold.
Definition: geometry.h:203
isae::PoseParametersBlock
A Parameter block for pose that does the interface between a double* and an Eigen::Affine3d.
Definition: parametersBlock.hpp:11
isae
Definition: AFeature2D.h:8
isae::PoseParametersBlock::PoseParametersBlock
PoseParametersBlock(const Eigen::Affine3d &T_w_f)
Definition: parametersBlock.hpp:18
isae::PointXYZParametersBlock
A Parameter block for 3D position that does the interface between a double* and an Eigen::Vector3d.
Definition: parametersBlock.hpp:50
isae::PointXYZParametersBlock::ndim_
static const size_t ndim_
Definition: parametersBlock.hpp:81
isae::PoseParametersBlock::values
double * values()
Definition: parametersBlock.hpp:41
isae::PointXYZParametersBlock::PointXYZParametersBlock
PointXYZParametersBlock(const PointXYZParametersBlock &block)
Definition: parametersBlock.hpp:59
isae::PointXYZParametersBlock::getPose
Eigen::Affine3d getPose()
Definition: parametersBlock.hpp:72
isae::PointXYZParametersBlock::operator=
PointXYZParametersBlock & operator=(const PointXYZParametersBlock &block)
Definition: parametersBlock.hpp:65
isae::PointXYZParametersBlock::PointXYZParametersBlock
EIGEN_MAKE_ALIGNED_OPERATOR_NEW PointXYZParametersBlock()
Definition: parametersBlock.hpp:55
isae::PoseParametersBlock::getPose
Eigen::Affine3d getPose()
Definition: parametersBlock.hpp:36
isae::geometry::se3_Vec6dtoRT
Eigen::Affine3d se3_Vec6dtoRT(Vector6d pose)
Compute the Exponential of the SO(3)xT(3) composite manifold.
Definition: geometry.h:222