Go to the documentation of this file.
5 Pose2D::Pose2D (
const Point2D &
p,
double orientation_ ) : position_ (
p ), orientation_ ( orientation_ ), cossin_uptodate_ ( false ) {};
6 Pose2D::Pose2D (
const Pose2D &
p ) : position_ (
p.position_ ), orientation_ (
p.orientation_ ), cossin_uptodate_ ( false ) {};
7 Pose2D::Pose2D (
double x,
double y,
double orientation_ ) : position_ ( x,y ), orientation_ ( orientation_ ), cossin_uptodate_ ( false ) {};
8 Pose2D::Pose2D (
const cv::Vec<double, 3> &s ) : position_ (
s ( 0 ),
s ( 1 ) ), orientation_ (
s ( 2 ) ), cossin_uptodate_ ( false ) {};
142 return this->
theta ();
162 return cv::Vec<double, 3> (
x(),
y(),
theta() );
192 this->
x() += s.val[0], this->
y() += s.val[1], this->
theta() += s.val[2];
263 return std::string(
str);
272 double d_position = cv::norm(o.
position() - this->position());
274 return (d_position < tolerance) && (fabs(d_angle) < tolerance);
std::string format(const cv::Mat_< int8_t > &m)
void recompute_cached_cos_sin() const
std::string str(const char *format="[%6.4lf, %6.4lf, %6.5lf]") const
cv::Matx< double, 3, 3 > Tf2D
void update_cached_cos_sin() const
double angle_normalize(double angle, double min_angle=-M_PI, double max_angle=+M_PI)
Pose2D transform_into(const Pose2D &target) const
Pose2D & operator+=(const cv::Vec< double, 3 > &s)
double orientation_
position
bool equal(const Pose2D &o, double tolerance) const
Pose2D & operator-=(const cv::Vec< double, 3 > &s)
const Point2D & position() const
Point2D point_ahead(double d=1.) const
Pose2D & set(double x, const double y, double phi)
Point2D & transform_into_base(const Point2D &src, Point2D &des) const
void normalizeOrientation()
Point2D & set(double x, double y)
double angle_difference(double alpha0, double angle1)
double costheta_
rotation in rad
cv::Vec< double, 3 > state_vector() const
const double & theta() const
tuw_geometry
Author(s): Markus Bader
autogenerated on Sun Feb 26 2023 03:25:40