From 2b18d6047666ab8d6bb92894f42667ebd119c2e0 Mon Sep 17 00:00:00 2001 From: guoxy06 <209087794@qq.com> Date: Tue, 26 May 2026 19:43:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8A=E8=88=B5=E6=97=97=E8=88=B0=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/chassis/chassis.c | 2 +- application/gimbal/gimbal.c | 22 +++++++++++----------- application/robot_def.h | 4 ++-- modules/remote/remote_control.c | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/application/chassis/chassis.c b/application/chassis/chassis.c index f22e2a1..ad69260 100644 --- a/application/chassis/chassis.c +++ b/application/chassis/chassis.c @@ -427,7 +427,7 @@ void ChassisTask() { { // 补偿系数 K 需要实车微调。 // 根据你的描述 wz=0.95 时偏差约45度,初始 K 值可以设为 45.0 / 0.95 ≈ 47.3f - float lag_compensation_K = 45.0f;//47.3f; + float lag_compensation_K = 47.3f;//47.3f;45.0f // 符号(+或-)取决于你的电机正方向、底盘旋转正方向,如果不正就改成减号 real_offset_angle -= (chassis_cmd_recv.wz * lag_compensation_K); diff --git a/application/gimbal/gimbal.c b/application/gimbal/gimbal.c index d001b27..dfdf342 100644 --- a/application/gimbal/gimbal.c +++ b/application/gimbal/gimbal.c @@ -85,12 +85,12 @@ void GimbalInit() // }, .controller_param_init_config = { .angle_PID = { - .Kp = 0.75, //0.55 - .Ki = 0.05,//0.05 - .Kd = 0.02,//0.02 + .Kp = 0.53, //0.55 + .Ki = 0.1,//0.05 + .Kd = 0.0148,//0.02 .CoefA =0.5,//0.5 .CoefB = 0.6,//0.6 - .Output_LPF_RC = 0.01, + .Output_LPF_RC = 0.0068, .DeadBand = 0.005,//0.02 .Derivative_LPF_RC=0.01,//0.008 .Improve = PID_Trapezoid_Intergral |PID_ChangingIntegrationRate| PID_Integral_Limit |PID_Derivative_On_Measurement | PID_OutputFilter |PID_DerivativeFilter, @@ -98,15 +98,15 @@ void GimbalInit() .MaxOut = 600, }, .speed_PID = { - .Kp = 500,//22000 - .Ki = 0,// - .Kd =0.0005, - // .CoefA = 0.8, - // .CoefB = 0.1, + .Kp = 3400,//22000 + .Ki = 15,// + .Kd =1, + .CoefA = 0.8, + .CoefB = 0.1, .Output_LPF_RC = 0.002,//0.002 .Improve = PID_Trapezoid_Intergral |PID_Integral_Limit |PID_Derivative_On_Measurement | PID_OutputFilter, - .IntegralLimit = 5000, - .MaxOut = 20000, + .IntegralLimit = 6000, + .MaxOut = 30000, }, .other_angle_feedback_ptr = &gimba_IMU_data->Pitch, // 还需要增加角速度额外反馈指针,注意方向,ins_task.md中有c板的bodyframe坐标系说明 diff --git a/application/robot_def.h b/application/robot_def.h index bd02153..294f3ab 100644 --- a/application/robot_def.h +++ b/application/robot_def.h @@ -35,8 +35,8 @@ // #define CHASSIS_OMNI_WHEEL // 是否为全向轮底盘 // #define CHASSIS_MCNAMEE_WHEEL // 是否为麦克纳姆轮底盘 #define CHASSIS_STEERING_WHEEL // 是否为舵轮 -#define STEERING_CHASSIS_ALIGN_ECD_RF 7330 // 舵电机 A 编码器值,若有机械改动需要修改 -#define STEERING_CHASSIS_ALIGN_ECD_LB 5099 // 舵电机 D 编码器值,若有机械改动需要修改 +#define STEERING_CHASSIS_ALIGN_ECD_RF 7066 // 舵电机 A 编码器值,若有机械改动需要修改 +#define STEERING_CHASSIS_ALIGN_ECD_LB 7138 // 舵电机 D 编码器值,若有机械改动需要修改 #define STEERING_CHASSIS_ALIGN_ANGLE_RF STEERING_CHASSIS_ALIGN_ECD_RF / 8192.f * 360.f // 舵轮 A 对齐角度 #define STEERING_CHASSIS_ALIGN_ANGLE_LB STEERING_CHASSIS_ALIGN_ECD_LB / 8192.f * 360.f // 舵轮 D 对齐角度 diff --git a/modules/remote/remote_control.c b/modules/remote/remote_control.c index a57e655..fc897e0 100644 --- a/modules/remote/remote_control.c +++ b/modules/remote/remote_control.c @@ -40,7 +40,7 @@ static void sbus_to_rc(const uint8_t *sbus_buf) rc_ctrl[TEMP].rc.rocker_l_ = (((sbus_buf[2] >> 6) | (sbus_buf[3] << 2) | (sbus_buf[4] << 10)) & 0x07ff) - RC_CH_VALUE_OFFSET; //!< Channel 2 rc_ctrl[TEMP].rc.rocker_l1 = (((sbus_buf[4] >> 1) | (sbus_buf[5] << 7)) & 0x07ff) - RC_CH_VALUE_OFFSET; //!< Channel 3 rc_ctrl[TEMP].rc.dial = ((sbus_buf[16] | (sbus_buf[17] << 8)) & 0x07FF) - RC_CH_VALUE_OFFSET; - rc_ctrl[TEMP].rc.rocker_l_= rc_ctrl[TEMP].rc.rocker_l_+1.5; + rc_ctrl[TEMP].rc.rocker_l_= rc_ctrl[TEMP].rc.rocker_l_+5.5; // 左侧拨轮 RectifyRCjoystick(); // 开关,0左1右