Skip to content

Commit f221331

Browse files
committed
x
1 parent 0c53339 commit f221331

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

libraries/AC_AutoTune/AC_AutoTune_Heli.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,11 @@ void AC_AutoTune_Heli::dwell_test_run(uint8_t freq_resp_input, float start_frq,
991991
velocity_bf.y = -velocity_ned.x * ahrs_view->sin_yaw() + velocity_ned.y * ahrs_view->cos_yaw();
992992
}
993993

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);
995999
if (settle_time == 0) {
9961000
if (dwell_type == RATE) {
9971001
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,
10161020
} else {
10171021
target_angle_cd = 0.0f;
10181022
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;
10201024
}
10211025
dwell_start_time_ms = now;
10221026
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,
11041108
command_reading = motors->get_roll();
11051109
if (dwell_type == DRB) {
11061110
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;
11081112
} else {
11091113
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;
11111115
}
11121116
break;
11131117
case PITCH:
11141118
attitude_control->input_euler_angle_roll_pitch_euler_rate_yaw(trim_angle_cd.x, target_angle_cd + trim_angle_cd.y, 0.0f);
11151119
command_reading = motors->get_pitch();
11161120
if (dwell_type == DRB) {
11171121
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;
11191123
} else {
11201124
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;
11221126
}
11231127
break;
11241128
case YAW:
11251129
case YAW_D:
11261130
command_reading = motors->get_yaw();
11271131
if (dwell_type == DRB) {
11281132
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;
11301134
} else {
11311135
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;
11331137
}
11341138
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);
11351139
break;

0 commit comments

Comments
 (0)