5 #include "position_controller_config.pb.h"
6 #include "velocity_controller_config.pb.h"
11 template <
class GoalType>
65 PositionYaw position_yaw_diff = current_position_yaw - goal;
67 status <<
"PositionYawDiff: " << position_yaw_diff.
x << position_yaw_diff.
y
68 << position_yaw_diff.
z << position_yaw_diff.
yaw;
69 const config::Position &tolerance_pos = config_.goal_position_tolerance();
70 const double &tolerance_yaw = config_.goal_yaw_tolerance();
72 if (std::abs(position_yaw_diff.
x) < tolerance_pos.x() &&
73 std::abs(position_yaw_diff.
y) < tolerance_pos.y() &&
74 std::abs(position_yaw_diff.
z) < tolerance_pos.z() &&
75 std::abs(position_yaw_diff.
yaw) < tolerance_yaw) {
76 VLOG_EVERY_N(1, 50) <<
"Reached goal";
86 PositionControllerConfig config_;
121 VelocityYaw velocity_yaw_diff = current_velocity_yaw - goal;
124 status <<
"Error Velocity, Yaw: " << velocity_yaw_diff.
x
125 << velocity_yaw_diff.
y << velocity_yaw_diff.
z
126 << velocity_yaw_diff.
yaw;
127 const config::Velocity &tolerance_vel = config_.goal_velocity_tolerance();
128 const double &tolerance_yaw = config_.goal_yaw_tolerance();
130 if (std::abs(velocity_yaw_diff.
x) < tolerance_vel.vx() &&
131 std::abs(velocity_yaw_diff.
y) < tolerance_vel.vy() &&
132 std::abs(velocity_yaw_diff.
z) < tolerance_vel.vz() &&
133 std::abs(velocity_yaw_diff.
yaw) < tolerance_yaw) {
134 VLOG_EVERY_N(1, 50) <<
"Reached goal";
144 VelocityControllerConfig config_;
double yaw
Orientation around global z axis.
Definition: velocity_yaw.h:33
Builtin velocity controller.
Definition: builtin_controller.h:92
Base Controller class.
Definition: base_controller.h:18
double y
y component in m
Definition: position.h:23
double z
z component in m/s
Definition: velocity.h:21
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
Status of the controller.
Definition: controller_status.h:10
double x
x component in m/s
Definition: velocity.h:19
Store velocity and yaw Used as goal for builtin velocity and yaw controller for UAV system...
Definition: velocity_yaw.h:10
A controller that simply outputs the set goal.
Definition: builtin_controller.h:12
BuiltInVelocityController(VelocityControllerConfig config)
Constructor to store velocity controller configuration.
Definition: builtin_controller.h:99
double y
y component in m/s
Definition: velocity.h:20
BuiltInVelocityController()
Constructor with default configuration.
Definition: builtin_controller.h:105
BuiltInPositionController(PositionControllerConfig config)
Constructor that store position controller configuration.
Definition: builtin_controller.h:43
virtual ControllerStatus isConvergedImplementation(VelocityYaw current_velocity_yaw, VelocityYaw goal)
Check if current velocity yaw is close to Goal velocity yaw Uses velocity controller config...
Definition: builtin_controller.h:119
virtual ControllerStatus isConvergedImplementation(PositionYaw current_position_yaw, PositionYaw goal)
Check if current position yaw is close to Goal position yaw Uses position controller config...
Definition: builtin_controller.h:63
double yaw
Orientation about body axis rad.
Definition: position_yaw.h:51
double z
z component in m
Definition: position.h:24
void setStatus(ControllerStatus::Status status, std::string status_description="")
Set the internal status of controller status.
Definition: controller_status.h:106
Controller active.
Definition: controller_status.h:16
Controller completed.
Definition: controller_status.h:17
virtual bool runImplementation(GoalType, GoalType goal, GoalType &control)
Run the control loop. Simply returns the goal.
Definition: builtin_controller.h:27
Builtin position controller.
Definition: builtin_controller.h:36
BuiltInPositionController()
Constructor that uses default constructor.
Definition: builtin_controller.h:49
virtual ~BuiltInController()
Destructor.
Definition: builtin_controller.h:17