Er_sentry/User/module/config.c
2025-12-02 20:17:08 +08:00

194 lines
3.7 KiB
C

#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=0.8f,
.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=1.0f,
.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,
},
.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 = 2.0f,
.i = 0.0f,
.d = 0.0f,
.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 = 7.0f,
.i = 0.01f,
.d = 0.1f,
.i_limit = 0.0f,
.out_limit = 7.0f,
.d_cutoff_freq = 20.0f,
.range = M_2PI
},
.pid.yaw_4310_motor_omega={
.k = 0.0f,
.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_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.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
},
.mech_zero={
.yaw_6020=1.31f,
.yaw_4310=0.0f,/*大yaw无限位与零点*/
.pitch_4310=1.0f,
},
.travel={
.yaw_6020=1.4f,
.yaw_4310=-1.0f,/*大yaw无限位*/
.pitch_4310=0.9f,
// .pitch_4310=-1.0f,/*pitch无限位*/
},
},
};
/**
* @brief 获取机器人配置参数
* @return 机器人配置参数指针
*/
Config_Param_t* Config_GetRobotParam(void) {
return &config;
}