dynamic_graph_manager
matrix_geometry.hh
Go to the documentation of this file.
1 
10 #ifndef MATRIX_GEOMETRY_HH
11 #define MATRIX_GEOMETRY_HH
12 
13 #include <dynamic-graph/eigen-io.h>
14 #include <dynamic-graph/linear-algebra.h>
15 #include <Eigen/Core>
16 #include <Eigen/Geometry>
17 
18 #define MRAWDATA(x) x.data()
19 
20 namespace dynamic_graph
21 {
22 typedef Eigen::Transform<double, 3, Eigen::Affine> MatrixHomogeneous;
23 typedef Eigen::Matrix<double, 3, 3> MatrixRotation;
24 typedef Eigen::AngleAxis<double> VectorUTheta;
25 typedef Eigen::Quaternion<double> VectorQuaternion;
26 typedef Eigen::Vector3d VectorRotation;
27 typedef Eigen::Vector3d VectorRollPitchYaw;
28 typedef Eigen::Matrix<double, 6, 6> MatrixForce;
29 typedef Eigen::Matrix<double, 6, 6> MatrixTwist;
30 
31 inline void buildFrom(const MatrixHomogeneous& MH, MatrixTwist& MT)
32 {
33  Eigen::Vector3d _t = MH.translation();
34  MatrixRotation R(MH.linear());
35  Eigen::Matrix3d Tx;
36  Tx << 0, -_t(2), _t(1), _t(2), 0, -_t(0), -_t(1), _t(0), 0;
37  Eigen::Matrix3d sk;
38  sk = Tx * R;
39 
40  MT.block<3, 3>(0, 0) = R;
41  MT.block<3, 3>(0, 3) = sk;
42  MT.block<3, 3>(3, 0).setZero();
43  MT.block<3, 3>(3, 3) = R;
44 }
45 } // namespace dynamic_graph
46 
47 #endif // MATRIX_GEOMETRY_HH
this is this package namespace in order to avoid naming conflict
Definition: device.hh:22