20 float speed =
norm(vel.
x,vel.
y);
37 switch (
copter.g.wp_yaw_behavior) {
62 if (
_mode == yaw_mode) {
103 const int32_t curr_yaw_target =
copter.attitude_control->get_att_target_euler_cd().z;
106 if (!relative_angle) {
112 angle_deg = -angle_deg;
136 if (roi_location.
alt == 0 && roi_location.
lat == 0 && roi_location.
lng == 0) {
141 if (
copter.camera_mount.get_mode() == MAV_MOUNT_MODE_GPS_POINT) {
142 copter.camera_mount.set_mode_to_default();
144 #endif // MOUNT == ENABLED 148 if (!
copter.camera_mount.has_pan_control()) {
149 roi =
copter.pv_location_to_vector(roi_location);
153 copter.camera_mount.set_roi_target(roi_location);
163 roi =
copter.pv_location_to_vector(roi_location);
165 #endif // MOUNT == ENABLED 196 return copter.initial_armed_bearing;
202 return copter.wp_nav->get_yaw();
float norm(const T first, const U second, const Params... parameters)
#define WP_YAW_BEHAVIOR_LOOK_AT_NEXT_WP
void set_mode_to_default(bool rtl)
#define WP_YAW_BEHAVIOR_LOOK_AT_NEXT_WP_EXCEPT_RTL
auto wrap_360_cd(const T angle) -> decltype(wrap_360(angle, 100.f))
void set_fixed_yaw(float angle_deg, float turn_rate_dps, int8_t direction, bool relative_angle)
#define AUTO_YAW_SLEW_RATE
autopilot_yaw_mode default_mode(bool rtl) const
auto wrap_180_cd(const T angle) -> decltype(wrap_180(angle, 100.f))
int32_t get_bearing_cd(const struct Location &loc1, const struct Location &loc2)
#define WP_YAW_BEHAVIOR_LOOK_AHEAD
void set_mode(autopilot_yaw_mode new_mode)
bool is_zero(const T fVal1)
#define YAW_LOOK_AHEAD_MIN_SPEED
int32_t constrain_int32(const int32_t amt, const int32_t low, const int32_t high)
void set_rate(float new_rate_cds)
void set_roi(const Location &roi_location)
AP_HAL_MAIN_CALLBACKS & copter
int16_t _fixed_yaw_slewrate
#define WP_YAW_BEHAVIOR_NONE