30 #include <mc_rbdyn/rpy_utils.h>
31 #include <mc_rtc/Configuration.h>
32 #include <mc_rtc/constants.h>
34 #include <SpaceVecAlg/SpaceVecAlg>
47 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
68 SE2d(
const sva::PTransformd & pose)
70 x = pose.translation().x();
71 y = pose.translation().y();
72 theta = mc_rbdyn::rpyFromMat(pose.rotation()).z();
80 inline sva::PTransformd
operator*(
const sva::PTransformd & X_0_a)
const
91 return {mc_rbdyn::rpyToMat(0., 0.,
theta), Eigen::Vector3d{
x,
y, 0.}};
99 inline Eigen::Vector2d
pos()
const
109 inline Eigen::Vector2d
ori()
const
119 inline const Eigen::Vector3d
vector() const noexcept
131 return {
x,
y, mc_rtc::constants::toDeg(
theta)};
140 res.
theta = in(
"theta", 0);
147 mc_rtc::Configuration res;
152 res.add(
"theta", mc_rtc::constants::toDeg(
theta));
156 res.add(
"theta",
theta);
172 os << se2d.
x <<
", " << se2d.
y <<
", " << se2d.
theta;
std::ostream & operator<<(std::ostream &os, const lipm_walking::utils::SE2d &se2d)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SE2d(double x=0., double y=0., double theta=0.)
mc_rtc::Configuration toConfiguration(bool toDeg=false) const
sva::PTransformd asPTransform() const
Eigen::Vector3d vectorDegrees() const
static SE2d fromConfiguration(const mc_rtc::Configuration &in)
sva::PTransformd operator*(const sva::PTransformd &X_0_a) const
const Eigen::Vector3d vector() const noexcept
SE2d(const sva::PTransformd &pose)
Eigen::Vector2d ori() const
SE2d(const Eigen::Vector3d &v)
Eigen::Vector2d pos() const