aboutsummaryrefslogtreecommitdiff
path: root/src/modules/navigator/mission.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/navigator/mission.h')
-rw-r--r--src/modules/navigator/mission.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/modules/navigator/mission.h b/src/modules/navigator/mission.h
index a8a644b0f..e9f78e8fd 100644
--- a/src/modules/navigator/mission.h
+++ b/src/modules/navigator/mission.h
@@ -83,6 +83,13 @@ public:
MISSION_ALTMODE_FOH = 1
};
+ enum mission_yaw_mode {
+ MISSION_YAWMODE_NONE = 0,
+ MISSION_YAWMODE_FRONT_TO_WAYPOINT = 1,
+ MISSION_YAWMODE_FRONT_TO_HOME = 2,
+ MISSION_YAWMODE_BACK_TO_HOME = 3
+ };
+
private:
/**
* Update onboard mission topic
@@ -111,6 +118,11 @@ private:
void set_mission_items();
/**
+ * Updates the heading of the vehicle. Rotary wings only.
+ */
+ void heading_sp_update();
+
+ /**
* Updates the altitude sp to follow a foh
*/
void altitude_sp_foh_update();
@@ -155,6 +167,7 @@ private:
control::BlockParamFloat _param_takeoff_alt;
control::BlockParamFloat _param_dist_1wp;
control::BlockParamInt _param_altmode;
+ control::BlockParamInt _param_yawmode;
struct mission_s _onboard_mission;
struct mission_s _offboard_mission;
@@ -177,7 +190,8 @@ private:
float _min_current_sp_distance_xy; /**< minimum distance which was achieved to the current waypoint */
float _mission_item_previous_alt; /**< holds the altitude of the previous mission item,
- can be replaced by a full copy of the previous mission item if needed*/
+ can be replaced by a full copy of the previous mission item if needed */
+ float _on_arrival_yaw; /**< holds the yaw value that should be applied when the current waypoint is reached */
float _distance_current_previous; /**< distance from previous to current sp in pos_sp_triplet,
only use if current and previous are valid */
};