mirror of
https://gitee.com/dlmu-cone/half-steering-basic-framework
synced 2026-10-24 01:52:20 +08:00
功率,热量
This commit is contained in:
@@ -249,7 +249,7 @@ static void MouseKeySet()
|
|||||||
chassis_cmd_send.vy = rc_data[TEMP].key[KEY_PRESS].w * 40 - rc_data[TEMP].key[KEY_PRESS].s * 40; // a向左,d向右
|
chassis_cmd_send.vy = rc_data[TEMP].key[KEY_PRESS].w * 40 - rc_data[TEMP].key[KEY_PRESS].s * 40; // a向左,d向右
|
||||||
|
|
||||||
gimbal_cmd_send.yaw += (float)rc_data[TEMP].mouse.x / 660 * 10; // 系数待测
|
gimbal_cmd_send.yaw += (float)rc_data[TEMP].mouse.x / 660 * 10; // 系数待测
|
||||||
gimbal_cmd_send.pitch += (float)rc_data[TEMP].mouse.y / 660 * 10;
|
gimbal_cmd_send.pitch += (float)rc_data[TEMP].mouse.y / 660 * 8;
|
||||||
|
|
||||||
// 云台软件限位
|
// 云台软件限位
|
||||||
if (gimbal_cmd_send.pitch > PITCH_MAX_ANGLE)
|
if (gimbal_cmd_send.pitch > PITCH_MAX_ANGLE)
|
||||||
|
|||||||
@@ -70,18 +70,43 @@ void GimbalInit()
|
|||||||
.can_handle = &hcan2,
|
.can_handle = &hcan2,
|
||||||
.tx_id = 2,//2
|
.tx_id = 2,//2
|
||||||
},
|
},
|
||||||
|
// .controller_param_init_config = {
|
||||||
|
// .angle_PID = {
|
||||||
|
// .Kp = 40, // 10
|
||||||
|
// .Ki = 0,
|
||||||
|
// .Kd = 0,
|
||||||
|
// .MaxOut = 1000,
|
||||||
|
// },
|
||||||
|
// .speed_PID = {
|
||||||
|
// .Kp = 60, // 50
|
||||||
|
// .Ki = 15, // 350
|
||||||
|
// .Kd = 0.6, // 0
|
||||||
|
// .MaxOut = 20000,//20000
|
||||||
|
// },
|
||||||
.controller_param_init_config = {
|
.controller_param_init_config = {
|
||||||
.angle_PID = {
|
.angle_PID = {
|
||||||
.Kp = 40, // 10
|
.Kp = 0.75, //0.55
|
||||||
.Ki = 0,
|
.Ki = 0.05,//0.05
|
||||||
.Kd = 0,
|
.Kd = 0.02,//0.02
|
||||||
.MaxOut = 1000,
|
.CoefA =0.5,//0.5
|
||||||
|
.CoefB = 0.6,//0.6
|
||||||
|
.Output_LPF_RC = 0.01,
|
||||||
|
.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,
|
||||||
|
.IntegralLimit = 1,
|
||||||
|
.MaxOut = 600,
|
||||||
},
|
},
|
||||||
.speed_PID = {
|
.speed_PID = {
|
||||||
.Kp = 60, // 50
|
.Kp = 500,//22000
|
||||||
.Ki = 15, // 350
|
.Ki = 0,//
|
||||||
.Kd = 0.6, // 0
|
.Kd =0.0005,
|
||||||
.MaxOut = 20000,//20000
|
// .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,
|
||||||
},
|
},
|
||||||
.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坐标系说明
|
||||||
@@ -96,6 +121,7 @@ void GimbalInit()
|
|||||||
// .close_loop_type = SPEED_LOOP,
|
// .close_loop_type = SPEED_LOOP,
|
||||||
.motor_reverse_flag = MOTOR_DIRECTION_NORMAL,
|
.motor_reverse_flag = MOTOR_DIRECTION_NORMAL,
|
||||||
},
|
},
|
||||||
|
|
||||||
.motor_type = GM6020,
|
.motor_type = GM6020,
|
||||||
};
|
};
|
||||||
// 电机对total_angle闭环,上电时为零,会保持静止,收到遥控器数据再动
|
// 电机对total_angle闭环,上电时为零,会保持静止,收到遥控器数据再动
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ void ShootTask()
|
|||||||
case LOAD_1_BULLET:
|
case LOAD_1_BULLET:
|
||||||
DJIMotorOuterLoop(loader, ANGLE_LOOP);// 切换到角度环
|
DJIMotorOuterLoop(loader, ANGLE_LOOP);// 切换到角度环
|
||||||
static float target_angle = -1900;
|
static float target_angle = -1900;
|
||||||
target_angle += 51*36;
|
target_angle += 51.2*36;
|
||||||
//float target_angle = loader->measure.total_angle + 51*36;
|
//float target_angle = loader->measure.total_angle + 51*36;
|
||||||
DJIMotorSetRef(loader, target_angle);
|
DJIMotorSetRef(loader, target_angle);
|
||||||
hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
||||||
@@ -176,9 +176,9 @@ void ShootTask()
|
|||||||
// hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
// hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
||||||
// dead_time = 300; // 完成3发弹丸发射的时间
|
// dead_time = 300; // 完成3发弹丸发射的时间
|
||||||
// break;
|
// break;
|
||||||
DJIMotorOuterLoop(loader, ANGLE_LOOP);// 切换到角度环
|
DJIMotorOuterLoop(loader, ANGLE_LOOP);// 切换到角度环.
|
||||||
//static float target_angle = -1872;
|
//static float target_angle = -1872;
|
||||||
target_angle += (51*36)*3;
|
target_angle += (51.2*36)*3;
|
||||||
//float target_angle = loader->measure.total_angle + 51*36;
|
//float target_angle = loader->measure.total_angle + 51*36;
|
||||||
DJIMotorSetRef(loader, target_angle);
|
DJIMotorSetRef(loader, target_angle);
|
||||||
hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
||||||
|
|||||||
Reference in New Issue
Block a user