fix: remove attitude_t, unify with INS_t

- Delete attitude_t struct from ins_task.h
- INS_Init() returns INS_t* directly instead of casting from INS.Gyro offset
- Change Gimbal_Upload_Data_s.gimbal_imu_data to INS_t* pointer
- Update gimbal.c and robot_cmd.c accordingly
This commit is contained in:
2026-05-30 00:27:39 +08:00
parent 9b52a9ec64
commit ea493af11f
6 changed files with 18 additions and 28 deletions
+10 -10
View File
@@ -96,8 +96,8 @@ static void SwitchToAutoMode(void)
return;
/* 同步角度参考值为当前 IMU 角度 */
gimbal_yaw_ref = gimbal_fetch_data.gimbal_imu_data.YawTotalAngle;
gimbal_pitch_ref = gimbal_fetch_data.gimbal_imu_data.Pitch;
gimbal_yaw_ref = gimbal_fetch_data.gimbal_imu_data->YawTotalAngle;
gimbal_pitch_ref = gimbal_fetch_data.gimbal_imu_data->Pitch;
vision_data.manual_updated = 0; // 清除手动数据残留
VisionPIDReset();
@@ -110,8 +110,8 @@ static void SwitchToManualMode(void)
if (current_mode == VISION_MODE_MANUAL)
return;
gimbal_yaw_ref = gimbal_fetch_data.gimbal_imu_data.YawTotalAngle;
gimbal_pitch_ref = gimbal_fetch_data.gimbal_imu_data.Pitch;
gimbal_yaw_ref = gimbal_fetch_data.gimbal_imu_data->YawTotalAngle;
gimbal_pitch_ref = gimbal_fetch_data.gimbal_imu_data->Pitch;
vision_data.auto_updated = 0; // 清除自动数据残留
current_mode = VISION_MODE_MANUAL;
@@ -250,8 +250,8 @@ static void ManualModeSet()
/* 零力子模式 */
vision_data.manual_updated = 0;
gimbal_cmd_send.gimbal_mode = GIMBAL_ZERO_FORCE;
gimbal_yaw_ref = gimbal_fetch_data.gimbal_imu_data.YawTotalAngle;
gimbal_pitch_ref = gimbal_fetch_data.gimbal_imu_data.Pitch;
gimbal_yaw_ref = gimbal_fetch_data.gimbal_imu_data->YawTotalAngle;
gimbal_pitch_ref = gimbal_fetch_data.gimbal_imu_data->Pitch;
}
else if (vision_data.manual_updated)
{
@@ -285,16 +285,16 @@ static void EmergencyHandler()
{
robot_state = ROBOT_STOP;
gimbal_cmd_send.gimbal_mode = GIMBAL_ZERO_FORCE;
gimbal_cmd_send.yaw = gimbal_fetch_data.gimbal_imu_data.YawTotalAngle;
gimbal_cmd_send.pitch = gimbal_fetch_data.gimbal_imu_data.Pitch;
gimbal_cmd_send.yaw = gimbal_fetch_data.gimbal_imu_data->YawTotalAngle;
gimbal_cmd_send.pitch = gimbal_fetch_data.gimbal_imu_data->Pitch;
laser_off();
}
if (!switch_is_down(rc_data[TEMP].rc.switch_right) && robot_state == ROBOT_STOP)
{
robot_state = ROBOT_READY;
gimbal_yaw_ref = gimbal_fetch_data.gimbal_imu_data.YawTotalAngle;
gimbal_pitch_ref = gimbal_fetch_data.gimbal_imu_data.Pitch;
gimbal_yaw_ref = gimbal_fetch_data.gimbal_imu_data->YawTotalAngle;
gimbal_pitch_ref = gimbal_fetch_data.gimbal_imu_data->Pitch;
LOGINFO("[CMD] reinstate, robot ready");
}
}