eigen.cpp
Go to the documentation of this file.
1 #include "eigen.h"
2 
3 #include <algorithm>
4 
5 #include <SimoxUtility/math/convert/mat3f_to_rpy.h>
6 
8 {
9 
10  std::vector<Eigen::Vector3f>
11  to3D(const std::vector<Eigen::Vector2f>& v)
12 
13  {
14  std::vector<Eigen::Vector3f> v3;
15  v3.reserve(v.size());
16 
17  std::transform(v.begin(),
18  v.end(),
19  std::back_inserter(v3),
20  static_cast<Eigen::Vector3f (*)(const Eigen::Vector2f&)>(&to3D));
21 
22  return v3;
23  }
24 
25  std::vector<Eigen::Vector2f>
26  to2D(const std::vector<Eigen::Vector3f>& v)
27 
28  {
29  std::vector<Eigen::Vector2f> v2;
30  v2.reserve(v.size());
31 
32  std::transform(v.begin(),
33  v.end(),
34  std::back_inserter(v2),
35  static_cast<Eigen::Vector2f (*)(const Eigen::Vector3f&)>(&to2D));
36 
37  return v2;
38  }
39 
41  to2D(const core::Pose& p3)
42  {
44  p2.translation() = p3.translation().head<2>();
45 
46  const auto rotatedVec = p3.rotation() * Eigen::Vector3f::UnitX();
47  const float yaw = std::atan2(rotatedVec.y(), rotatedVec.x());
48 
49  p2.linear() = Eigen::Rotation2Df(yaw).toRotationMatrix();
50 
51  return p2;
52  }
53 
54 
55 } // namespace armarx::navigation::conv
armarx::navigation::core::Pose
Eigen::Isometry3f Pose
Definition: basic_types.h:31
armarx::navigation::core::Pose2D
Eigen::Isometry2f Pose2D
Definition: basic_types.h:34
armarx::navigation::conv
This file is part of ArmarX.
Definition: eigen.cpp:7
GfxTL::Identity
void Identity(MatrixXX< N, N, T > *a)
Definition: MatrixXX.h:523
armarx::navigation::conv::to2D
std::vector< Eigen::Vector2f > to2D(const std::vector< Eigen::Vector3f > &v)
Definition: eigen.cpp:26
armarx::ctrlutil::v
double v(double t, double v0, double a0, double j)
Definition: CtrlUtil.h:39
armarx::transform
auto transform(const Container< InputT, Alloc > &in, OutputT(*func)(InputT const &)) -> Container< OutputT, typename std::allocator_traits< Alloc >::template rebind_alloc< OutputT > >
Convenience function (with less typing) to transform a container of type InputT into the same contain...
Definition: algorithm.h:315
armarx::navigation::conv::to3D
std::vector< Eigen::Vector3f > to3D(const std::vector< Eigen::Vector2f > &v)
Definition: eigen.cpp:11
eigen.h