From a8d01e7f749e374289c9f67de062f7471d59da47 Mon Sep 17 00:00:00 2001 From: Robofish <1683502971@qq.com> Date: Sun, 15 Mar 2026 17:12:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E9=99=80=E8=9E=BA=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E6=96=B9=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- User/module/balance_chassis.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/User/module/balance_chassis.c b/User/module/balance_chassis.c index ea7b3ef..f35a311 100644 --- a/User/module/balance_chassis.c +++ b/User/module/balance_chassis.c @@ -767,11 +767,11 @@ int8_t Chassis_LQRControl(Chassis_t *c, const Chassis_CMD_t *c_cmd) { /* ==================== 速度控制 ==================== */ if (c_cmd->mode == CHASSIS_MODE_BALANCE_ROTOR) { - /* 小陀螺平移:将世界坐标系期望速度投影到机体坐标系 */ - float yaw_angle = c->feedback.imu.euler.yaw; + /* 小陀螺平移:将云台坐标系(用户视角)速度投影到机体坐标系 */ + float gimbal_offset = c->feedback.yaw.rotor_abs_angle - c->param->mech.mech_zero_yaw; float world_vx = c_cmd->move_vec.vx * c->param->rotor_ctrl.max_trans_speed; float world_vy = c_cmd->move_vec.vy * c->param->rotor_ctrl.max_trans_speed; - c->chassis_state.target_velocity_x = world_vx * cosf(yaw_angle) + world_vy * sinf(yaw_angle); + c->chassis_state.target_velocity_x = world_vx * cosf(gimbal_offset) + world_vy * sinf(gimbal_offset); c->chassis_state.last_target_velocity_x = c->chassis_state.target_velocity_x; c->chassis_state.target_x += c->chassis_state.target_velocity_x * c->dt; } else {