ASCO Aerial Autonomy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
position_yaw.h
Go to the documentation of this file.
1 #pragma once
4 
10 struct PositionYaw : public Position {
16  PositionYaw() : Position(), yaw(0) {}
23  PositionYaw(Position p, double yaw) : Position(p), yaw(yaw) {}
32  PositionYaw(double x, double y, double z, double yaw)
33  : Position(x, y, z), yaw(yaw) {}
34 
39  Position position() { return Position(x, y, z); }
40 
45  void setPosition(const Position &p) {
46  x = p.x;
47  y = p.y;
48  z = p.z;
49  }
50 
51  double yaw;
52 
60  bool operator==(const PositionYaw &p) const {
61  return (Position::operator==(p) && yaw == p.yaw);
62  }
70  bool operator!=(const PositionYaw &p) const { return !(*this == p); }
76  PositionYaw operator+(const PositionYaw &p) const {
77  Position p1(this->x, this->y, this->z);
78  Position p2(p.x, p.y, p.z);
79  return PositionYaw(p1 + p2, this->yaw + p.yaw);
80  }
86  PositionYaw operator-(const PositionYaw &p) const {
87  Position p1(this->x, this->y, this->z);
88  Position p2(p.x, p.y, p.z);
89  return PositionYaw(p1 - p2, math::angleWrap(this->yaw - p.yaw));
90  }
91 };
void setPosition(const Position &p)
Set the Position.
Definition: position_yaw.h:45
PositionYaw operator-(const PositionYaw &p) const
Subtract two position and yaw entities.
Definition: position_yaw.h:86
PositionYaw(double x, double y, double z, double yaw)
Explicit constructor with x,y,z, and yaw.
Definition: position_yaw.h:32
double y
y component in m
Definition: position.h:23
Position()
Implicit constructor Instantiate position to (0,0,0)m.
Definition: position.h:13
bool operator==(const PositionYaw &p) const
Compare two position and yaw entities.
Definition: position_yaw.h:60
double x
x component in m
Definition: position.h:22
Stores Position, yaw. PositionYaw is used as the goal for UAV systems.
Definition: position_yaw.h:10
double angleWrap(double x)
Wrap an angle to be in the range [-pi, pi)
Definition: math.cpp:11
PositionYaw operator+(const PositionYaw &p) const
Add two position and yaw entities.
Definition: position_yaw.h:76
bool operator!=(const PositionYaw &p) const
Compare two position and yaw entities.
Definition: position_yaw.h:70
PositionYaw()
Implicit constructor.
Definition: position_yaw.h:16
PositionYaw(Position p, double yaw)
Explicit constructor that takes in position, yaw.
Definition: position_yaw.h:23
double yaw
Orientation about body axis rad.
Definition: position_yaw.h:51
double z
z component in m
Definition: position.h:24
Store 3D position.
Definition: position.h:8
Position position()
Return position.
Definition: position_yaw.h:39