修改RectifyRCjoystick()改了左摇杆限幅

This commit is contained in:
guoxy06
2026-03-15 16:41:00 +08:00
parent 4ac9cba1d7
commit 3ebb57d86b
5 changed files with 62 additions and 24 deletions

View File

@@ -26,10 +26,10 @@ void GimbalInit()
},
.controller_param_init_config = {
.angle_PID = {
//.Kp = 0.685, // 8
.Kp = 0.585, // 8
//.Kp = 0.785, // 8
.Kp = 3, // 8
//.Ki = 0.315,
.Ki = 0.25,
.Ki = 0.45,
.Kd = 0.03,
//.DeadBand = 0.1
.Improve = PID_Trapezoid_Intergral | PID_Integral_Limit | PID_Derivative_On_Measurement | PID_DerivativeFilter | PID_ChangingIntegrationRate,
@@ -40,9 +40,9 @@ void GimbalInit()
.Derivative_LPF_RC = 0.001
},
.speed_PID = {
.Kp = 8000, // 50
.Kp = 500, // 50
//.Kp = 5000, // 50
.Ki = 5000, // 200
.Ki = 2000, // 200
.Kd = 0,
.CoefB = 1,
.CoefA = 10,
@@ -132,7 +132,18 @@ void GimbalTask()
DJIMotorChangeFeed(pitch_motor, SPEED_LOOP, OTHER_FEED);
DJIMotorSetRef(yaw_motor, gimbal_cmd_recv.yaw); // yaw和pitch会在robot_cmd中处理好多圈和单圈
DJIMotorSetRef(pitch_motor, gimbal_cmd_recv.pitch);
break;
// // 根据底盘速度进行补偿,保持云台稳定
// // 这里简化处理,实际应用中可能需要更复杂的补偿算法
// float yaw_ref = gimbal_cmd_recv.yaw;
// float pitch_ref = gimbal_cmd_recv.pitch;
//
// // 当底盘移动时,云台需要保持相对稳定
// // 这里可以根据底盘速度调整云台的控制参考值
// // 例如,当底盘向前移动时,云台可能需要稍微向后调整以保持稳定
//
// DJIMotorSetRef(yaw_motor, yaw_ref); // yaw和pitch会在robot_cmd中处理好多圈和单圈
// DJIMotorSetRef(pitch_motor, pitch_ref);
break;
// 云台自由模式,使用编码器反馈,底盘和云台分离,仅云台旋转,一般用于调整云台姿态(英雄吊射等)/能量机关
case GIMBAL_FREE_MODE: // 后续删除,或加入云台追地盘的跟随模式(响应速度更快)
DJIMotorEnable(yaw_motor);
@@ -159,4 +170,13 @@ void GimbalTask()
// gimbal_feedback_data.yaw_motor_total_angle = gimba_IMU_data->YawTotalAngle;
// 推送消息
PubPushMessage(gimbal_pub, (void *)&gimbal_feedback_data);
}
}
// /**
// * @brief 获取云台IMU数据指针
// *
// * @return attitude_t* 云台IMU数据指针
// */
// attitude_t *GetGimbalIMUData()
// {
// return gimba_IMU_data;
// }