diff --git a/application/chassis/balance.c b/application/chassis/balance.c index d8fbb2e..55218c7 100644 --- a/application/chassis/balance.c +++ b/application/chassis/balance.c @@ -113,7 +113,7 @@ void BalanceInit() // 腿长控制 PID_Init_Config_s leg_length_pid_conf = { .Kp = 1200, - .Kd = 200, + .Kd = 300, .Ki = 0, .MaxOut = 60, .DeadBand = 0.0001f, @@ -126,7 +126,7 @@ void BalanceInit() // roll轴补偿 PID_Init_Config_s roll_compensate_pid_conf = { .Kp = 0.0008f, - .Kd = 0.0001f, + .Kd = 0.0002f, .Ki = 0.0f, .MaxOut = 0.05, .DeadBand = 0.001f, @@ -162,7 +162,7 @@ void BalanceInit() // 抗劈叉 PID_Init_Config_s anti_crash_pid_conf = { .Kp = 15, - .Kd = 1, + .Kd = 2, .Ki = 0.0, .MaxOut = 30, .DeadBand = 0.001f, @@ -227,6 +227,8 @@ static void ResetChassis() { EnableAllMotor(); // 打开全部电机,关节复位到起始角度,驱动电机响应速度输入以从墙角或固连中脱身 + // 目标速度置0 + chassis.target_v = 0; // 复位时清空距离和腿长积累量,保证顺利站起 chassis.dist = chassis.target_dist = 0; l_side.target_len = r_side.target_len = 0.12; @@ -279,6 +281,8 @@ static void WokingStateSet() } else if (chassis_cmd_recv.chassis_mode == CHASSIS_ZERO_FORCE) // 未收到遥控器和云台指令底盘进入急停 { + // 目标速度置0 + chassis.target_v = 0; // 清空腿长和距离 l_side.target_len = r_side.target_len = 0.12; chassis.dist = chassis.target_dist = 0;