@@ -991,7 +991,11 @@ void AC_AutoTune_Heli::dwell_test_run(uint8_t freq_resp_input, float start_frq,
991
991
velocity_bf.y = -velocity_ned.x * ahrs_view->sin_yaw () + velocity_ned.y * ahrs_view->cos_yaw ();
992
992
}
993
993
994
- Vector3f attitude_cd = Vector3f ((float )ahrs_view->roll_sensor , (float )ahrs_view->pitch_sensor , (float )ahrs_view->yaw_sensor );
994
+ const int32_t ahrs_roll_cd = ahrs_view->roll_sensor ;
995
+ const int32_t ahrs_pitch_cd = ahrs_view->pitch_sensor ;
996
+ const int32_t ahrs_yaw_cd = ahrs_view->yaw_sensor ;
997
+
998
+ Vector3f attitude_cd = Vector3f ((float )ahrs_roll_cd, (float )ahrs_pitch_cd, (float )ahrs_yaw_cd);
995
999
if (settle_time == 0 ) {
996
1000
if (dwell_type == RATE) {
997
1001
target_rate_cds = -chirp_input.update ((now - dwell_start_time_ms) * 0.001 , target_rate_mag_cds);
@@ -1016,7 +1020,7 @@ void AC_AutoTune_Heli::dwell_test_run(uint8_t freq_resp_input, float start_frq,
1016
1020
} else {
1017
1021
target_angle_cd = 0 .0f ;
1018
1022
trim_yaw_tgt_reading = (float )attitude_control->get_att_target_euler_cd ().z ;
1019
- trim_yaw_heading_reading = (float )ahrs_view-> yaw_sensor ;
1023
+ trim_yaw_heading_reading = (float )ahrs_yaw_cd ;
1020
1024
}
1021
1025
dwell_start_time_ms = now;
1022
1026
filt_att_fdbk_from_velxy_cd.reset (Vector2f (0 .0f ,0 .0f ));
@@ -1104,32 +1108,32 @@ void AC_AutoTune_Heli::dwell_test_run(uint8_t freq_resp_input, float start_frq,
1104
1108
command_reading = motors->get_roll ();
1105
1109
if (dwell_type == DRB) {
1106
1110
tgt_rate_reading = (target_angle_cd) / 5730 .0f ;
1107
- gyro_reading = ((float )ahrs_view-> roll_sensor + trim_angle_cd.x - target_angle_cd) / 5730 .0f ;
1111
+ gyro_reading = ((float )ahrs_roll_cd + trim_angle_cd.x - target_angle_cd) / 5730 .0f ;
1108
1112
} else {
1109
1113
tgt_rate_reading = ((float )attitude_control->get_att_target_euler_cd ().x ) / 5730 .0f ;
1110
- gyro_reading = ((float )ahrs_view-> roll_sensor ) / 5730 .0f ;
1114
+ gyro_reading = ((float )ahrs_roll_cd ) / 5730 .0f ;
1111
1115
}
1112
1116
break ;
1113
1117
case PITCH:
1114
1118
attitude_control->input_euler_angle_roll_pitch_euler_rate_yaw (trim_angle_cd.x , target_angle_cd + trim_angle_cd.y , 0 .0f );
1115
1119
command_reading = motors->get_pitch ();
1116
1120
if (dwell_type == DRB) {
1117
1121
tgt_rate_reading = (target_angle_cd) / 5730 .0f ;
1118
- gyro_reading = ((float )ahrs_view-> pitch_sensor + trim_angle_cd.y - target_angle_cd) / 5730 .0f ;
1122
+ gyro_reading = ((float )ahrs_pitch_cd + trim_angle_cd.y - target_angle_cd) / 5730 .0f ;
1119
1123
} else {
1120
1124
tgt_rate_reading = ((float )attitude_control->get_att_target_euler_cd ().y ) / 5730 .0f ;
1121
- gyro_reading = ((float )ahrs_view-> pitch_sensor ) / 5730 .0f ;
1125
+ gyro_reading = ((float )ahrs_pitch_cd ) / 5730 .0f ;
1122
1126
}
1123
1127
break ;
1124
1128
case YAW:
1125
1129
case YAW_D:
1126
1130
command_reading = motors->get_yaw ();
1127
1131
if (dwell_type == DRB) {
1128
1132
tgt_rate_reading = (target_angle_cd) / 5730 .0f ;
1129
- gyro_reading = (wrap_180_cd ((float )ahrs_view-> yaw_sensor - trim_yaw_heading_reading - target_angle_cd)) / 5730 .0f ;
1133
+ gyro_reading = (wrap_180_cd ((float )ahrs_yaw_cd - trim_yaw_heading_reading - target_angle_cd)) / 5730 .0f ;
1130
1134
} else {
1131
1135
tgt_rate_reading = (wrap_180_cd ((float )attitude_control->get_att_target_euler_cd ().z - trim_yaw_tgt_reading)) / 5730 .0f ;
1132
- gyro_reading = (wrap_180_cd ((float )ahrs_view-> yaw_sensor - trim_yaw_heading_reading)) / 5730 .0f ;
1136
+ gyro_reading = (wrap_180_cd ((float )ahrs_yaw_cd - trim_yaw_heading_reading)) / 5730 .0f ;
1133
1137
}
1134
1138
attitude_control->input_euler_angle_roll_pitch_yaw (trim_angle_cd.x , trim_angle_cd.y , wrap_180_cd (trim_yaw_tgt_reading + target_angle_cd), false );
1135
1139
break ;
0 commit comments