[rotorcraft] fix takeoff-land-takeoff in nav via flightplan

This commit is contained in:
Felix Ruess
2013-08-30 01:43:21 +02:00
parent bb3043547d
commit a45a9872f4
4 changed files with 14 additions and 0 deletions
@@ -39,6 +39,8 @@
<define name="AHRS_GRAVITY_UPDATE_NORM_HEURISTIC" value="TRUE"/> <define name="AHRS_GRAVITY_UPDATE_NORM_HEURISTIC" value="TRUE"/>
</subsystem> </subsystem>
<subsystem name="ins"/> <subsystem name="ins"/>
<!--define name="KILL_ON_GROUND_DETECT" value="TRUE"/-->
</firmware> </firmware>
<servos driver="Pwm"> <servos driver="Pwm">
+4
View File
@@ -71,8 +71,12 @@
</block> </block>
<block name="flare"> <block name="flare">
<exception cond="NavDetectGround()" deroute="Holding point"/> <exception cond="NavDetectGround()" deroute="Holding point"/>
<exception cond="!nav_is_in_flight()" deroute="landed"/>
<call fun="NavStartDetectGround()"/> <call fun="NavStartDetectGround()"/>
<stay climb="-0.8" vmode="climb" wp="TD"/> <stay climb="-0.8" vmode="climb" wp="TD"/>
</block> </block>
<block name="landed">
<attitude pitch="0" roll="0" throttle="0" vmode="throttle" until="FALSE"/>
</block>
</blocks> </blocks>
</flight_plan> </flight_plan>
@@ -341,4 +341,11 @@ bool_t nav_detect_ground(void) {
return TRUE; return TRUE;
} }
bool_t nav_is_in_flight(void) {
if (autopilot_in_flight)
return TRUE;
else
return FALSE;
}
void nav_home(void) {} void nav_home(void) {}
@@ -81,6 +81,7 @@ unit_t nav_reset_alt( void ) __attribute__ ((unused));
void nav_periodic_task(void); void nav_periodic_task(void);
void nav_move_waypoint(uint8_t wp_id, struct EnuCoor_i * new_pos); void nav_move_waypoint(uint8_t wp_id, struct EnuCoor_i * new_pos);
bool_t nav_detect_ground(void); bool_t nav_detect_ground(void);
bool_t nav_is_in_flight(void);
void nav_home(void); void nav_home(void);