mirror of
https://gitee.com/dlmu-cone/half-steering-basic-framework
synced 2026-10-24 01:52:20 +08:00
改底盘(疯2)
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
#define CHASSIS_WHEEL_OFFSET 1.0f // 机器人底盘轮子修正偏移量
|
||||
#elif defined(CHASSIS_STEERING_WHEEL)
|
||||
#define CHASSIS_WHEEL_OFFSET 30.0f // 机器人底盘轮子修正偏移量
|
||||
//#define CHASSIS_WHEEL_OFFSET 2.0f
|
||||
#define SQRT2 1.41421356f // 根号2
|
||||
#elif defined(CHASSIS_OMNI_WHEEL)
|
||||
#define CHASSIS_WHEEL_OFFSET 0.7071f // 机器人底盘轮子修正偏移量,根号2/2,即45度,用于修正全向轮的安装位置
|
||||
@@ -54,7 +55,7 @@ static Chassis_Ctrl_Cmd_s chassis_cmd_recv; // 底盘接收到的控制
|
||||
static Chassis_Upload_Data_s chassis_feedback_data; // 底盘回传的反馈数据
|
||||
|
||||
static referee_info_t* referee_data; // 用于获取裁判系统的数据
|
||||
static Referee_Interactive_info_t ui_data; // UI数据,将底盘中的数据传入此结构体的对应变量中,UI会自动检测是否变化,对应显示UI
|
||||
static Referee_Interactive_info_t ui_data; // UI数据,将底盘中的数据传入此结构体的对应变量中,UI会自动检测是否变化,对应显示UI/
|
||||
|
||||
static SuperCapInstance *cap; // 超级电容
|
||||
static LKMotorInstance *motor_rf,*motor_lb; // 轮电机9015
|
||||
@@ -103,11 +104,11 @@ void ChassisInit()
|
||||
|
||||
chassis_motor_config.can_init_config.tx_id = 1;
|
||||
// chassis_motor_config.controller_setting_init_config.motor_reverse_flag = MOTOR_DIRECTION_REVERSE;
|
||||
motor_rf = LKMotorInit(&chassis_motor_config);
|
||||
motor_lb= LKMotorInit(&chassis_motor_config);
|
||||
|
||||
chassis_motor_config.can_init_config.tx_id = 2;
|
||||
// chassis_motor_config.controller_setting_init_config.motor_reverse_flag = MOTOR_DIRECTION_REVERSE;
|
||||
motor_lb = LKMotorInit(&chassis_motor_config);
|
||||
motor_rf = LKMotorInit(&chassis_motor_config);
|
||||
|
||||
// 舵电机6020初始化
|
||||
Motor_Init_Config_s chassis_motor_steering_config = {
|
||||
@@ -407,10 +408,11 @@ void ChassisTask() {
|
||||
{
|
||||
single_round_offset += 360.0f;
|
||||
}
|
||||
chassis_cmd_recv.wz = PIDCalculate(&chassis_follow_pid, single_round_offset, 0)/90;
|
||||
chassis_cmd_recv.wz = -PIDCalculate(&chassis_follow_pid, single_round_offset, 0)/70.0f;
|
||||
break;
|
||||
case CHASSIS_ROTATE: // 自旋,同时保持全向机动;当前wz维持定值,后续增加不规则的变速策略
|
||||
chassis_cmd_recv.wz = 0.75;
|
||||
// chassis_cmd_recv.wz = 0.75;
|
||||
chassis_cmd_recv.wz = -0.75;//实验版
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -421,8 +423,10 @@ void ChassisTask() {
|
||||
static float sin_theta, cos_theta;
|
||||
cos_theta = arm_cos_f32(chassis_cmd_recv.offset_angle * DEGREE_2_RAD);
|
||||
sin_theta = arm_sin_f32(chassis_cmd_recv.offset_angle * DEGREE_2_RAD);
|
||||
chassis_vx = chassis_cmd_recv.vx * cos_theta - chassis_cmd_recv.vy * sin_theta;
|
||||
chassis_vy = chassis_cmd_recv.vx * sin_theta + chassis_cmd_recv.vy * cos_theta;
|
||||
// chassis_vx = chassis_cmd_recv.vx * cos_theta - chassis_cmd_recv.vy * sin_theta;
|
||||
// chassis_vy = chassis_cmd_recv.vx * sin_theta + chassis_cmd_recv.vy * cos_theta;
|
||||
chassis_vy = chassis_cmd_recv.vx * cos_theta - chassis_cmd_recv.vy * sin_theta;//实验版
|
||||
chassis_vx = chassis_cmd_recv.vx * sin_theta + chassis_cmd_recv.vy * cos_theta;
|
||||
|
||||
// 根据控制模式进行正运动学解算,计算底盘输出
|
||||
SteeringWheelCalculate();
|
||||
|
||||
Reference in New Issue
Block a user