1 #ifndef __BASE_POSE_HH__ 2 #define __BASE_POSE_HH__ 85 bool test(
double other_distance,
double other_angle );
124 : position(Position::Zero()), orientation(Orientation::Identity()) {}
126 Pose(Position
const& p, Orientation
const& o)
127 : position(p), orientation(o) {}
153 position = t.translation();
154 orientation = t.linear();
167 t.pretranslate( position );
177 void fromVector6d(
const Vector6d &v );
207 : position(Position2D::Zero()), orientation(0) {}
209 Pose2D(Position2D
const& p, Orientation2D
const& o)
210 : position(p), orientation(o) {}
212 Pose2D(Position
const& p, Orientation
const& o)
216 : position(
Vector2d(p.position.x(), p.position.y())), orientation(p.
getYaw()) {}
218 bool isApprox(
const Pose2D &other,
double distPecision,
double anglePrecision)
const 220 return ((other.
position - position).norm() < distPecision) &&
std::ostream & operator<<(std::ostream &os, Angle angle)
Definition: Angle.cpp:25
Position2D position
Definition: Pose.hpp:203
double getPitch(const Orientation &orientation)
Definition: Pose.cpp:46
Eigen::Matrix< double, 6, 1, Eigen::DontAlign > Vector6d
Definition: Eigen.hpp:22
Vector3d getEuler(const Orientation &orientation)
Definition: Pose.cpp:6
Representation for a pose in 3D.
Definition: Pose.hpp:115
base::Quaterniond Orientation
Definition: Pose.hpp:11
double getYaw() const
Definition: Pose.hpp:190
double getYaw(const Orientation &orientation)
Definition: Pose.cpp:36
Pose()
Default constructor will initialize to zero.
Definition: Pose.hpp:123
double Orientation2D
Definition: Pose.hpp:15
Eigen::Affine3d toTransform() const
transform matrix which represents the pose transform as a 4x4 homogenous matrix
Definition: Pose.hpp:163
Orientation2D orientation
Definition: Pose.hpp:204
Pose(Position const &p, Orientation const &o)
Definition: Pose.hpp:126
base::Vector3d Position
Definition: Pose.hpp:10
void fromTransform(const Eigen::Affine3d &t)
set the pose based on a 4x4 matrix
Definition: Pose.hpp:151
Pose2D(Position2D const &p, Orientation2D const &o)
Definition: Pose.hpp:209
bool isApprox(const Pose2D &other, double distPecision, double anglePrecision) const
Definition: Pose.hpp:218
Eigen::AngleAxis< double > AngleAxisd
Definition: Eigen.hpp:34
Position position
Definition: Pose.hpp:117
Eigen::Quaternion< double, Eigen::DontAlign > Quaterniond
Definition: Eigen.hpp:33
static Angle fromRad(double rad)
Definition: Angle.hpp:85
bool test(double other_distance, double other_angle)
Definition: Pose.cpp:105
double getRoll(const Orientation &orientation)
Definition: Pose.cpp:56
Pose(const Eigen::Affine3d &t)
constructor based on a 4x4 transform matrix
Definition: Pose.hpp:135
Orientation orientation
Definition: Pose.hpp:118
double distance
Definition: Pose.hpp:104
Definition: LinearAngular6DCommand.hpp:8
Pose(const Vector6d &v)
Definition: Pose.hpp:140
PoseUpdateThreshold()
Definition: Pose.cpp:97
double angle
Definition: Pose.hpp:105
Pose2D(Position const &p, Orientation const &o)
Definition: Pose.hpp:212
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vector3d
Definition: Eigen.hpp:20
Pose2D()
Definition: Pose.hpp:206
Eigen::Transform< double, 3, Eigen::Affine > Affine3d
Definition: Eigen.cpp:20
Eigen::Matrix< double, 2, 1, Eigen::DontAlign > Vector2d
Definition: Eigen.hpp:19
bool isApprox(Angle other, double prec=1e-5) const
Definition: Angle.hpp:147
Pose2D(const Pose &p)
Definition: Pose.hpp:215
Orientation removeYaw(const Orientation &orientation)
Definition: Pose.cpp:66
Orientation removeRoll(const Orientation &orientation)
Definition: Pose.cpp:86
base::Vector2d Position2D
Definition: Pose.hpp:14
Orientation removePitch(const Orientation &orientation)
Definition: Pose.cpp:76