Er_sentry/User/module/config.c

318 lines
8.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "config.h"
#include "string.h"
#define DEBUG
#define CONFIG_BASE_ADDRESS (ADDR_FLASH_SECTOR_11)
#ifdef DEBUG
Config_Param_t config = {
#else
static const Config_Param_t config = {
#endif
.chassis = {
.motor_3508_param[0] = {BSP_CAN_1, 0x201, MOTOR_M3508, false, false},
.motor_3508_param[1] = {BSP_CAN_1, 0x202, MOTOR_M3508, false, false},
.motor_3508_param[2] = {BSP_CAN_1, 0x203, MOTOR_M3508, false, false},
.motor_3508_param[3] = {BSP_CAN_1, 0x204, MOTOR_M3508, false, false},
.motor_6020_param[0] = {BSP_CAN_1, 0x205, MOTOR_GM6020, false, false},
.motor_6020_param[1] = {BSP_CAN_1, 0x206, MOTOR_GM6020, false, false},
.motor_6020_param[2] = {BSP_CAN_1, 0x207, MOTOR_GM6020, false, false},
.motor_6020_param[3] = {BSP_CAN_1, 0x208, MOTOR_GM6020, false, false},
.C6020Omega_param = {
.k = 1.0f,
.p = 0.5f,
.i = 0.1f,
.d = 0.0f,
.i_limit = 1.0f,
.out_limit = 1.0f,
.d_cutoff_freq = -1.0f,
.range = -1.0f},
.C6020Angle_param = {
.k = 0.2f,
.p = 0.21f,
.i = 0.1f,
.d = 0.0f,
.i_limit = 1.0f,
.out_limit = 30.0f,
.d_cutoff_freq = -1.0f,
.range = 360
},
.M3508v_param = {
// .k=0.2f,
// .p=0.25f,
// .i=0.1f,
// .d=0.0f,
// .i_limit=1.0f,
// .out_limit=1.0f,
// .d_cutoff_freq= -1.0f,
// .range=-1.0f
.k = 1.0f,
.p = 4.0f,
.i = 0.0f,
.d = 0.0f,
.i_limit = 1.0f,
.out_limit = 1.0f,
.d_cutoff_freq = -1.0f,
.range = -1.0f
},
.chassis_follow_gimbalPID = {
.k = 0.7f,
.p = 0.5f,
.i = 0.1f,
.d = 0.0f,
.i_limit = 1.0f,
.out_limit = 0.5f,
.d_cutoff_freq = -1.0f,
.range = M_2PI
},
/*这两个数据是云台6020的零点和机械限位*/
.mech_zero = 1.31f,
.travel = 1.4f,
.mech_zero_4310=2.06f,
},
.gimbal = {
.yaw_6020_motor ={BSP_CAN_2, 0x209, MOTOR_GM6020, false, true},
.yaw_4310_motor = {
.can = BSP_CAN_2,
.can_id = 0x1,
.master_id = 0x11,
.module = MOTOR_DM_J4310,
.reverse = false
},
.pitch_4310_motor = {
.can = BSP_CAN_2,
.can_id = 0x2,
.master_id = 0x12,
.module = MOTOR_DM_J4310,
.reverse = true
},
.pid.pitch_4310_motor_angle = {
.k = -2.0f,
.p = 3.1f, //2.0
.i = 0.1f, //0.0
.d = 2.5f, //0.0
.i_limit = 1.0f,
.out_limit = 10.0f,
.d_cutoff_freq = -1.0f,
.range = M_2PI
},
.pid.pitch_4310_motor_omega = {
.k = 0.3f,
.p = 0.3f,
.i = 0.0f,
.d = 0.0f,
.i_limit = 0.0f,
.out_limit = 1.0f,
.d_cutoff_freq = -1.0f,
.range = -1.0f
},
.pid.yaw_4310_motor_angle = {
// .k = 2.0f,
// .p = 6.0f,
// .i = 0.01f,
// .d = 0.1f,
// .i_limit = 0.0f,
// .out_limit = 7.0f,
// .d_cutoff_freq = 20.0f,
// .range = M_2PI
.k = 2.0f,
.p = 5.0f,
.i = 0.0f,
.d = 1.0f,
.i_limit = 0.0f,
.out_limit = 10.0f,
.d_cutoff_freq = 20.0f,
.range = M_2PI
},
.pid.yaw_4310_motor_omega = {
.k = 0.5f,
.p = 0.5f,
.i = 0.0f,
.d = 0.0f,
.i_limit = 0.0f,
.out_limit = 1.0f,
.d_cutoff_freq = -1.0f,
.range = -1.0f
},
.pid.yaw_6020_motor_angle = {
// .k = 2.0f,
// .p = 2.5f,
// .i = 0.0f,
// .d = 0.0f,
// .i_limit = 0.0f,
// .out_limit = 10.0f,
// .d_cutoff_freq = 0.0f,
// .range = M_2PI
/*上面一组pid会导致电机超调可能是因为pid计算错误正在进行重新修改pid*/
// .k = 2.0f,
// .p = 5.0f,
// .i = 0.0f,
// .d = 0.0f,
// .i_limit = 1.0f,
// .out_limit = 10.0f,
// .d_cutoff_freq = 0.0f,
// .range = M_2PI
.k = 2.0f,
.p = 7.0f,
.i = 0.5f,
.d = 1.0f,
.i_limit = 1.0f,
.out_limit = 10.0f,
.d_cutoff_freq = 0.0f,
.range = M_2PI
},
.pid.yaw_6020_motor_omega = {
// .k = 0.30f,
// .p = 0.4f,
// .i = 0.01f,
// .d = 0.0f,
// .i_limit = 1.0f,
// .out_limit = 1.0f,
// .d_cutoff_freq = -1.0f,
// .range = -1.0f
// .k = 0.35f,
// .p = 0.3f,
// .i = 0.0f,
// .d = 0.0f,
// .i_limit = 1.0f,
// .out_limit = 1.0f,
// .d_cutoff_freq = -1.0f,
// .range = -1.0f
.k = 0.35f,
.p = 0.35f,
.i = 0.0f,
.d = 0.0f,
.i_limit = 1.0f,
.out_limit = 1.0f,
.d_cutoff_freq = -1.0f,
.range = -1.0f
},
.mech_zero = {
.yaw_6020 = 1.31f,
.yaw_4310 = 2.06f, /*大yaw零点*/
.pitch_4310 = 0.93f,
},
.travel = {
.yaw_6020 = 1.4f,
.yaw_4310 = -1.0f, /*大yaw无限位*/
.pitch_4310 = 0.9f,
// .pitch_4310=-1.0f,/*pitch无限位*/
},
.low_pass_cutoff_freq={
.out = -1.0f,
.gyro = 20.0f,
}
},
.shoot = {
.motor.fric[0] = {{BSP_CAN_2, 0x201, MOTOR_M3508, false, false},.level=1},
.motor.fric[1] = {{BSP_CAN_2, 0x202, MOTOR_M3508, true, false},.level=1},
.motor.trig = {BSP_CAN_2, 0x203, MOTOR_M2006, false, true},
.basic.projectileType = SHOOT_PROJECTILE_17MM,
.basic.fric_num = 2,
.basic.extra_deceleration_ratio = 1,
.basic.ratio_multilevel[0] = 1.0f,
.basic.num_trig_tooth = 8,
.basic.shot_freq = 5.0f,
.basic.shot_burst_num = 1,
.jamDetection.enable = true,
.jamDetection.threshold = 120.0f,
.jamDetection.suspectedTime = 0.5f,
.pid = {
.fric_follow = {
.k = 1.0f,
.p = 1.5f,
.i = 0.3f,
.d = 0.0f,
.i_limit = 0.2f,
.out_limit = 0.9f,
.d_cutoff_freq = -1.0f,
.range = -1.0f,
},
.fric_err={
.k=0.0f,
.p=4.0f,
.i=0.4f,
.d=0.0f,
.i_limit=0.25f,
.out_limit=0.25f,
.d_cutoff_freq=-1.0f,
.range=-1.0f,
},
.trig_2006={
.k=0.7f,
.p=0.7f,
.i=0.5f,
.d=0.05f,
.i_limit=0.2f,
.out_limit=1.0f,
.d_cutoff_freq=-1.0f,
.range=M_2PI,
},
.trig_omg_2006={
.k=3.0f,
.p=2.0f,
.i=0.2f,
.d=0.5f,
.i_limit=0.2f,
.out_limit=1.0f,
.d_cutoff_freq=-1.0f,
.range=-1.0f,
},
},
.filter = {
.fric = {
.in = 30.0f,
.out = 30.0f,
},
.trig = {
.in = 30.0f,
.out = 30.0f,
},
}
}
};
/**
* @brief 获取机器人配置参数
* @return 机器人配置参数指针
*/
Config_Param_t *Config_GetRobotParam(void)
{
return &config;
}