From 24160f21dce0ad6f4feb017fbcdfa4bbac39a098 Mon Sep 17 00:00:00 2001 From: Robofish <1683502971@qq.com> Date: Sun, 5 Oct 2025 17:39:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9rc=EF=BC=8C=E6=94=B9pid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- User/module/balance_chassis.c | 10 +++++----- User/module/config.c | 2 +- User/task/rc.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/User/module/balance_chassis.c b/User/module/balance_chassis.c index d03439d..c661ecb 100644 --- a/User/module/balance_chassis.c +++ b/User/module/balance_chassis.c @@ -263,10 +263,10 @@ void Chassis_Output(Chassis_t *c) { // } float out[4] = { c->output.joint[0], c->output.joint[1], c->output.joint[2], c->output.joint[3]}; - out[0] = -1.0f; - out[1] = 1.0f; - out[2] = 1.0f; - out[3] = -1.0f; + // out[0] = -1.0f; + // out[1] = 1.0f; + // out[2] = 1.0f; + // out[3] = -1.0f; Virtual_Chassis_SendJointTorque(&virtual_chassis, out); Virtual_Chassis_SendWheelCommand(&virtual_chassis, c->output.wheel[0], c->output.wheel[1]); // for (int i = 0; i < 2; i++) { @@ -382,7 +382,7 @@ int8_t Chassis_LQRControl(Chassis_t *c, const Chassis_CMD_t *c_cmd) { c->vmc_[0].leg.L0, leg_d_length[0], c->dt); // 腿长控制力 = LQR摆杆力矩的径向分量 + PID腿长控制输出 + 基础支撑力 - 横滚角补偿力(左腿减少支撑力) - virtual_force[0] = (c->lqr[0].control_output.Tp) * sinf(c->vmc_[0].leg.theta) + pid_output + 50.0f - roll_compensation_force; + virtual_force[0] = (c->lqr[0].control_output.Tp) * sinf(c->vmc_[0].leg.theta) + pid_output + 10.0f ; // VMC逆解算(包含摆角补偿) if (VMC_InverseSolve(&c->vmc_[0], virtual_force[0], diff --git a/User/module/config.c b/User/module/config.c index 659e802..2096bd6 100644 --- a/User/module/config.c +++ b/User/module/config.c @@ -49,7 +49,7 @@ Config_RobotParam_t robot_config = { }, .leg_length={ - .k = 40.0f, + .k = 10.0f, .p = 5.0f, .i = 0.0f, .d = 1.0f, diff --git a/User/task/rc.c b/User/task/rc.c index 3c90335..d9d6ee8 100644 --- a/User/task/rc.c +++ b/User/task/rc.c @@ -63,8 +63,8 @@ void Task_rc(void *argument) { cmd_for_chassis.mode = CHASSIS_MODE_RELAX; break; } - cmd_for_chassis.move_vec.vx = dr16.data.ch_l_x; - cmd_for_chassis.move_vec.vy = dr16.data.ch_l_y; + cmd_for_chassis.move_vec.vx = dr16.data.ch_l_y; + cmd_for_chassis.move_vec.vy = dr16.data.ch_l_x; cmd_for_chassis.move_vec.wz = dr16.data.ch_r_x; cmd_for_chassis.height = dr16.data.res;