From ba61c1061385cc4322a36df0c0cb623e1f648b6b Mon Sep 17 00:00:00 2001 From: Robofish <1683502971@qq.com> Date: Fri, 20 Mar 2026 06:20:16 +0800 Subject: [PATCH] fix ai --- User/module/cmd/cmd.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/User/module/cmd/cmd.c b/User/module/cmd/cmd.c index 82f1dd3..30a9275 100644 --- a/User/module/cmd/cmd.c +++ b/User/module/cmd/cmd.c @@ -206,17 +206,23 @@ static void CMD_NUC_BuildGimbalCmd(CMD_t *ctx) { } /* 使用AI提供的云台控制数据 */ - - // if (ctx->input.nuc.mode!=0) { - ctx->output.gimbal.cmd.mode = GIMBAL_MODE_AI_CONTROL; - ctx->output.gimbal.cmd.mode_ai = (uint8_t)ctx->input.nuc.mode; /* 直接使用AI模式细分字段 */ - ctx->output.gimbal.cmd.setpoint_yaw = ctx->input.nuc.gimbal.setpoint.yaw; - ctx->output.gimbal.cmd.setpoint_pit = ctx->input.nuc.gimbal.setpoint.pit; - ctx->output.gimbal.cmd.ff_vel_yaw = ctx->input.nuc.gimbal.vel.yaw; - ctx->output.gimbal.cmd.ff_vel_pit = ctx->input.nuc.gimbal.vel.pit; - ctx->output.gimbal.cmd.ff_accl_yaw = ctx->input.nuc.gimbal.accl.yaw; - ctx->output.gimbal.cmd.ff_accl_pit = ctx->input.nuc.gimbal.accl.pit; - // } + if (ctx->input.nuc.mode != 0) { + /* AI有目标:进入自瞄模式,下发setpoint和前馈 */ + ctx->output.gimbal.cmd.mode = GIMBAL_MODE_AI_CONTROL; + ctx->output.gimbal.cmd.mode_ai = (uint8_t)ctx->input.nuc.mode; + ctx->output.gimbal.cmd.setpoint_yaw = ctx->input.nuc.gimbal.setpoint.yaw; + ctx->output.gimbal.cmd.setpoint_pit = ctx->input.nuc.gimbal.setpoint.pit; + ctx->output.gimbal.cmd.ff_vel_yaw = ctx->input.nuc.gimbal.vel.yaw; + ctx->output.gimbal.cmd.ff_vel_pit = ctx->input.nuc.gimbal.vel.pit; + ctx->output.gimbal.cmd.ff_accl_yaw = ctx->input.nuc.gimbal.accl.yaw; + ctx->output.gimbal.cmd.ff_accl_pit = ctx->input.nuc.gimbal.accl.pit; + } else { + /* AI丢失目标(mode==0):保持普通模式,不使用全零的AI数据 */ + ctx->output.gimbal.cmd.mode = GIMBAL_MODE_ABSOLUTE; + ctx->output.gimbal.cmd.mode_ai = 0; + ctx->output.gimbal.cmd.delta_yaw = 0.0f; + ctx->output.gimbal.cmd.delta_pit = 0.0f; + } } #endif /* CMD_ENABLE_SRC_NUC && CMD_ENABLE_MODULE_GIMBAL */