navigator: missions work again, loiter when finished or no mission available or sd card removed works as well

This commit is contained in:
Julian Oes
2014-06-04 01:07:50 +02:00
parent 5ed3652c2f
commit 93295861c5
6 changed files with 191 additions and 38 deletions
+12 -4
View File
@@ -58,7 +58,7 @@
class Navigator;
class Mission : public control::SuperBlock
class __EXPORT Mission : public control::SuperBlock
{
public:
/**
@@ -97,6 +97,11 @@ protected:
*/
void mission_item_to_position_setpoint(const struct mission_item_s *item, struct position_setpoint_s *sp);
/**
* Set a loiter item, if possible reuse the position setpoint, otherwise take the current position
*/
void set_loiter_item(bool reuse_current_pos_sp, struct position_setpoint_triplet_s *pos_sp_triplet);
class Navigator *_navigator;
bool _waypoint_position_reached;
@@ -179,13 +184,14 @@ private:
void publish_mission_result();
control::BlockParamFloat _param_onboard_enabled;
int _onboard_mission_sub;
int _offboard_mission_sub;
control::BlockParamFloat _param_loiter_radius;
struct mission_s _onboard_mission;
struct mission_s _offboard_mission;
int _current_onboard_mission_index;
int _current_offboard_mission_index;
struct mission_item_s _mission_item;
orb_advert_t _mission_result_pub;
@@ -197,6 +203,8 @@ private:
MISSION_TYPE_OFFBOARD
} _mission_type;
bool _loiter_set;
MissionFeasibilityChecker missionFeasiblityChecker; /**< class that checks if a mission is feasible */
};