#include <pose2d.h>
Public Member Functions | |
template<typename T > | |
void | copyToROSPose (T &des) const |
bool | equal (const Pose2D &o, double tolerance) const |
double | get_theta () const |
double | get_x () const |
double | get_y () const |
Pose2D | inv () const |
void | normalizeOrientation () |
Pose2D & | operator+= (const cv::Vec< double, 3 > &s) |
Pose2D & | operator-= (const cv::Vec< double, 3 > &s) |
Point2D | point_ahead (double d=1.) const |
Pose2D () | |
Pose2D (const Point2D &p, double orientation) | |
Pose2D (const Pose2D &p) | |
Pose2D (double x, double y, double orientation) | |
Pose2D (const cv::Vec< double, 3 > &s) | |
const Point2D & | position () const |
Point2D & | position () |
void | recompute_cached_cos_sin () const |
Pose2D & | set (double x, const double y, double phi) |
Pose2D & | set (const Point2D &position, const Point2D &point_ahead) |
Pose2D & | set (const Pose2D &p) |
void | set_theta (double v) |
void | set_x (double v) |
void | set_y (double v) |
cv::Vec< double, 3 > | state_vector () const |
std::string | str (const char *format="[%6.4lf, %6.4lf, %6.5lf]") const |
Tf2D | tf () const |
const double & | theta () const |
double & | theta () |
double | theta_cos () const |
double | theta_sin () const |
Pose2D | transform_into (const Pose2D &target) const |
Point2D & | transform_into_base (const Point2D &src, Point2D &des) const |
const double & | x () const |
double & | x () |
const double & | y () const |
double & | y () |
Protected Member Functions | |
void | update_cached_cos_sin () const |
Protected Attributes | |
bool | cossin_uptodate_ |
double | costheta_ |
rotation in rad More... | |
double | orientation_ |
position More... | |
Point2D | position_ |
double | sintheta_ |
Friends | |
std::ostream & | operator<< (std::ostream &os, const Pose2D &o) |
class to represent a pose in 2D space the class caches the cos(theta) and sin(theta) values
Pose2D::Pose2D | ( | ) |
Definition at line 4 of file pose2d.cpp.
Pose2D::Pose2D | ( | const Point2D & | p, |
double | orientation | ||
) |
Definition at line 5 of file pose2d.cpp.
Pose2D::Pose2D | ( | const Pose2D & | p | ) |
Definition at line 6 of file pose2d.cpp.
Pose2D::Pose2D | ( | double | x, |
double | y, | ||
double | orientation | ||
) |
Definition at line 7 of file pose2d.cpp.
Pose2D::Pose2D | ( | const cv::Vec< double, 3 > & | s | ) |
Definition at line 8 of file pose2d.cpp.
|
inline |
bool Pose2D::equal | ( | const Pose2D & | o, |
double | tolerance | ||
) | const |
double Pose2D::get_theta | ( | ) | const |
double Pose2D::get_x | ( | ) | const |
double Pose2D::get_y | ( | ) | const |
Pose2D Pose2D::inv | ( | ) | const |
void Pose2D::normalizeOrientation | ( | ) |
normalizes the orientation value betwenn -PI and PI
Definition at line 147 of file pose2d.cpp.
Pose2D & Pose2D::operator+= | ( | const cv::Vec< double, 3 > & | s | ) |
adds a state vector [x, y, theta] the orientation will be normalized between -PI and PI
s | object |
adds a state vector [x, y, theta]
s | object |
Definition at line 191 of file pose2d.cpp.
Pose2D & Pose2D::operator-= | ( | const cv::Vec< double, 3 > & | s | ) |
substracts a state vector [x, y, theta] the orientation will be normalized between -PI and PI
s | object |
substracts a state vector [x, y, theta]
s | object |
Definition at line 202 of file pose2d.cpp.
Point2D Pose2D::point_ahead | ( | double | d = 1. | ) | const |
computes a transformation matrix
point infront of the pose
d | distance ahead |
Definition at line 54 of file pose2d.cpp.
const Point2D & Pose2D::position | ( | ) | const |
position
location as vector
Definition at line 47 of file pose2d.cpp.
Point2D & Pose2D::position | ( | ) |
void Pose2D::recompute_cached_cos_sin | ( | ) | const |
enforces the recompuation of the cached value of cos(theta) and sin(theta), recomputing it only once when theta changes.
Definition at line 221 of file pose2d.cpp.
Pose2D & Pose2D::set | ( | double | x, |
const double | y, | ||
double | phi | ||
) |
set the pose
x | |
y | |
phi | (orientation) |
set the pose
x | |
y | |
phi | (orientation_) |
Definition at line 16 of file pose2d.cpp.
set the pose based on two points in world coordinates
position | |
point_ahead |
Definition at line 28 of file pose2d.cpp.
void Pose2D::set_theta | ( | double | v | ) |
void Pose2D::set_x | ( | double | v | ) |
void Pose2D::set_y | ( | double | v | ) |
cv::Vec< double, 3 > Pose2D::state_vector | ( | ) | const |
retuns a state vector [x, y, theta]
Definition at line 161 of file pose2d.cpp.
std::string Pose2D::str | ( | const char * | format = "[%6.4lf, %6.4lf, %6.5lf]" | ) | const |
returns x, y and theta as formated string
format | using printf format |
Definition at line 259 of file pose2d.cpp.
Tf2D Pose2D::tf | ( | ) | const |
translational x component
computes a transformation matrix
Definition at line 153 of file pose2d.cpp.
const double & Pose2D::theta | ( | ) | const |
rotational component
roational component
Definition at line 73 of file pose2d.cpp.
double & Pose2D::theta | ( | ) |
position
roational component
Definition at line 97 of file pose2d.cpp.
double Pose2D::theta_cos | ( | ) | const |
get a (cached) value of cos(theta), recomputing it only once when theta changes.
Definition at line 241 of file pose2d.cpp.
double Pose2D::theta_sin | ( | ) | const |
get a (cached) value of cos(theta), recomputing it only once when theta changes.
Definition at line 250 of file pose2d.cpp.
transforms a pose into the target frame the orientation will be normalized between -PI and PI
target | target frame |
Definition at line 213 of file pose2d.cpp.
transforms a point from pose target space into pose base space
src | point in pose target space |
des | point in pose base space |
Definition at line 178 of file pose2d.cpp.
|
protected |
Updates the cached value of cos(phi) and sin(phi), recomputing it only once when phi changes.
Definition at line 230 of file pose2d.cpp.
const double & Pose2D::x | ( | ) | const |
point in front of the pose
d | distance ahead |
translational x component
Definition at line 61 of file pose2d.cpp.
double & Pose2D::x | ( | ) |
translational y component
translational x component
Definition at line 85 of file pose2d.cpp.
const double & Pose2D::y | ( | ) | const |
double & Pose2D::y | ( | ) |
rotational component
translational y component
Definition at line 91 of file pose2d.cpp.
|
friend |
|
mutableprotected |