mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-12 02:48:28 -04:00
AP_Gimbal: disable gimbal motors if copter is fliped
This commit is contained in:
parent
ebaf1e28b1
commit
4bdae02cfd
@ -22,7 +22,7 @@ void AP_Gimbal::receive_feedback(mavlink_channel_t chan, mavlink_message_t *msg)
|
|||||||
update_targets_from_rc();
|
update_targets_from_rc();
|
||||||
decode_feedback(msg);
|
decode_feedback(msg);
|
||||||
update_state();
|
update_state();
|
||||||
if (_ekf.getStatus()){
|
if (_ekf.getStatus() && !isCopterFliped()){
|
||||||
send_control(chan);
|
send_control(chan);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,3 +177,7 @@ void AP_Gimbal::update_targets_from_rc()
|
|||||||
// Update tilt
|
// Update tilt
|
||||||
_angle_ef_target_rad.y = constrain_float(_angle_ef_target_rad.y + tilt_change,_tilt_angle_min,_tilt_angle_max);
|
_angle_ef_target_rad.y = constrain_float(_angle_ef_target_rad.y + tilt_change,_tilt_angle_min,_tilt_angle_max);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t AP_Gimbal::isCopterFliped(){
|
||||||
|
return fabs(_ahrs.roll)>1.0f || fabs(_ahrs.pitch)>1.0f;
|
||||||
|
}
|
@ -97,6 +97,8 @@ private:
|
|||||||
void decode_feedback(mavlink_message_t *msg);
|
void decode_feedback(mavlink_message_t *msg);
|
||||||
void update_targets_from_rc();
|
void update_targets_from_rc();
|
||||||
|
|
||||||
|
uint8_t isCopterFliped();
|
||||||
|
|
||||||
// Control loop functions
|
// Control loop functions
|
||||||
Vector3f getGimbalRateDemVecYaw(Quaternion quatEst);
|
Vector3f getGimbalRateDemVecYaw(Quaternion quatEst);
|
||||||
Vector3f getGimbalRateDemVecTilt(Quaternion quatEst);
|
Vector3f getGimbalRateDemVecTilt(Quaternion quatEst);
|
||||||
|
Loading…
Reference in New Issue
Block a user