This commit is contained in:
2026-04-12 13:31:07 +08:00
parent a54cc3b274
commit 37a1788543
7 changed files with 290 additions and 60 deletions

View File

@@ -269,14 +269,14 @@ void AppTasks_RunVl53Task_Impl(void *argument)
/* =========================================================
* 4. 走廊导航控制任务 (Nav Pipeline)
* 周期:20ms (50Hz),与 CAN 发送同频
* 周期:由 PARAM_NAV_TASK_PERIOD_MS 配置
* 流水线Obs → Filter → Ctrl → Script → FSM → CmdSlot_Push
* ========================================================= */
void AppTasks_RunNavTask_Impl(void *argument)
{
(void)argument;
uint32_t wake_tick = osKernelGetTickCount();
const uint32_t period_ticks = AppTasks_MsToTicks(20U);
const uint32_t period_ticks = AppTasks_MsToTicks(PARAM_NAV_TASK_PERIOD_MS);
uint32_t last_ms = HAL_GetTick();
/* 等传感器全部就绪再启动 (避免刚上电全是脏数据)。
@@ -293,7 +293,7 @@ void AppTasks_RunNavTask_Impl(void *argument)
uint32_t now_ms = HAL_GetTick();
float dt_s = (float)(now_ms - last_ms) / 1000.0f;
if (dt_s <= 0.0f || dt_s > 0.5f) {
dt_s = 0.02f; /* 容错:防止首拍或溢出 */
dt_s = (float)PARAM_NAV_TASK_PERIOD_MS / 1000.0f; /* 容错:防止首拍或溢出 */
}
last_ms = now_ms;
@@ -440,6 +440,11 @@ void AppTasks_Init(void)
.w_max = PARAM_CTRL_W_MAX, /* 角速度限幅 */
.v_max = PARAM_CTRL_V_MAX, /* 线速度限幅 */
.speed_reduction_k = PARAM_CTRL_SPEED_REDUCTION, /* 调优:弯道减速系数 */
.speed_reduction_deadband = PARAM_CTRL_SPEED_RED_DB,
.w_slew_rate = PARAM_CTRL_W_SLEW_RATE,
.startup_dist = PARAM_CTRL_STARTUP_DIST,
.startup_kp_y_scale = PARAM_CTRL_STARTUP_KPY_SCALE,
.startup_w_scale = PARAM_CTRL_STARTUP_W_SCALE,
.exit_front_dist = PARAM_CTRL_EXIT_FRONT_DIST, /* 调优:出沟检测距离 */
.wall_escape_dist = PARAM_CTRL_WALL_ESCAPE_DIST,
.wall_escape_kp = PARAM_CTRL_WALL_ESCAPE_KP,