mirror of
https://gitee.com/dlmu-cone/half-steering-basic-framework
synced 2026-10-23 17:42:20 +08:00
半舵旗舰版
This commit is contained in:
@@ -427,7 +427,7 @@ void ChassisTask() {
|
|||||||
{
|
{
|
||||||
// 补偿系数 K 需要实车微调。
|
// 补偿系数 K 需要实车微调。
|
||||||
// 根据你的描述 wz=0.95 时偏差约45度,初始 K 值可以设为 45.0 / 0.95 ≈ 47.3f
|
// 根据你的描述 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);
|
real_offset_angle -= (chassis_cmd_recv.wz * lag_compensation_K);
|
||||||
|
|||||||
@@ -85,12 +85,12 @@ void GimbalInit()
|
|||||||
// },
|
// },
|
||||||
.controller_param_init_config = {
|
.controller_param_init_config = {
|
||||||
.angle_PID = {
|
.angle_PID = {
|
||||||
.Kp = 0.75, //0.55
|
.Kp = 0.53, //0.55
|
||||||
.Ki = 0.05,//0.05
|
.Ki = 0.1,//0.05
|
||||||
.Kd = 0.02,//0.02
|
.Kd = 0.0148,//0.02
|
||||||
.CoefA =0.5,//0.5
|
.CoefA =0.5,//0.5
|
||||||
.CoefB = 0.6,//0.6
|
.CoefB = 0.6,//0.6
|
||||||
.Output_LPF_RC = 0.01,
|
.Output_LPF_RC = 0.0068,
|
||||||
.DeadBand = 0.005,//0.02
|
.DeadBand = 0.005,//0.02
|
||||||
.Derivative_LPF_RC=0.01,//0.008
|
.Derivative_LPF_RC=0.01,//0.008
|
||||||
.Improve = PID_Trapezoid_Intergral |PID_ChangingIntegrationRate| PID_Integral_Limit |PID_Derivative_On_Measurement | PID_OutputFilter |PID_DerivativeFilter,
|
.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,
|
.MaxOut = 600,
|
||||||
},
|
},
|
||||||
.speed_PID = {
|
.speed_PID = {
|
||||||
.Kp = 500,//22000
|
.Kp = 3400,//22000
|
||||||
.Ki = 0,//
|
.Ki = 15,//
|
||||||
.Kd =0.0005,
|
.Kd =1,
|
||||||
// .CoefA = 0.8,
|
.CoefA = 0.8,
|
||||||
// .CoefB = 0.1,
|
.CoefB = 0.1,
|
||||||
.Output_LPF_RC = 0.002,//0.002
|
.Output_LPF_RC = 0.002,//0.002
|
||||||
.Improve = PID_Trapezoid_Intergral |PID_Integral_Limit |PID_Derivative_On_Measurement | PID_OutputFilter,
|
.Improve = PID_Trapezoid_Intergral |PID_Integral_Limit |PID_Derivative_On_Measurement | PID_OutputFilter,
|
||||||
.IntegralLimit = 5000,
|
.IntegralLimit = 6000,
|
||||||
.MaxOut = 20000,
|
.MaxOut = 30000,
|
||||||
},
|
},
|
||||||
.other_angle_feedback_ptr = &gimba_IMU_data->Pitch,
|
.other_angle_feedback_ptr = &gimba_IMU_data->Pitch,
|
||||||
// 还需要增加角速度额外反馈指针,注意方向,ins_task.md中有c板的bodyframe坐标系说明
|
// 还需要增加角速度额外反馈指针,注意方向,ins_task.md中有c板的bodyframe坐标系说明
|
||||||
|
|||||||
@@ -35,8 +35,8 @@
|
|||||||
// #define CHASSIS_OMNI_WHEEL // 是否为全向轮底盘
|
// #define CHASSIS_OMNI_WHEEL // 是否为全向轮底盘
|
||||||
// #define CHASSIS_MCNAMEE_WHEEL // 是否为麦克纳姆轮底盘
|
// #define CHASSIS_MCNAMEE_WHEEL // 是否为麦克纳姆轮底盘
|
||||||
#define CHASSIS_STEERING_WHEEL // 是否为舵轮
|
#define CHASSIS_STEERING_WHEEL // 是否为舵轮
|
||||||
#define STEERING_CHASSIS_ALIGN_ECD_RF 7330 // 舵电机 A 编码器值,若有机械改动需要修改
|
#define STEERING_CHASSIS_ALIGN_ECD_RF 7066 // 舵电机 A 编码器值,若有机械改动需要修改
|
||||||
#define STEERING_CHASSIS_ALIGN_ECD_LB 5099 // 舵电机 D 编码器值,若有机械改动需要修改
|
#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_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 对齐角度
|
#define STEERING_CHASSIS_ALIGN_ANGLE_LB STEERING_CHASSIS_ALIGN_ECD_LB / 8192.f * 360.f // 舵轮 D 对齐角度
|
||||||
|
|||||||
@@ -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_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.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.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();
|
RectifyRCjoystick();
|
||||||
// 开关,0左1右
|
// 开关,0左1右
|
||||||
|
|||||||
Reference in New Issue
Block a user