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:
+10
-10
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "message_center.h"
|
||||
#include "general_def.h"
|
||||
|
||||
static attitude_t *gimbal_IMU_data;
|
||||
static INS_t *gimbal_IMU_data;
|
||||
|
||||
static Publisher_t *gimbal_pub;
|
||||
static Subscriber_t *gimbal_sub;
|
||||
@@ -96,6 +96,6 @@ void GimbalTask()
|
||||
DMMotorSetRef(pitch_motor, gimbal_cmd_recv.pitch);
|
||||
}
|
||||
|
||||
gimbal_feedback_data.gimbal_imu_data = *gimbal_IMU_data;
|
||||
gimbal_feedback_data.gimbal_imu_data = gimbal_IMU_data;
|
||||
PubPushMessage(gimbal_pub, (void *)&gimbal_feedback_data);
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ typedef struct
|
||||
/* ---- gimbal 发布给 CMD 的反馈数据 ---- */
|
||||
typedef struct
|
||||
{
|
||||
attitude_t gimbal_imu_data;
|
||||
INS_t *gimbal_imu_data; // 指向 INS 实例的指针
|
||||
uint16_t yaw_motor_single_round_angle;
|
||||
uint8_t gimbal_power;
|
||||
} Gimbal_Upload_Data_s;
|
||||
|
||||
Reference in New Issue
Block a user