1. 项目概述:智能车电磁组环岛挑战
环岛处理一直是智能车竞赛中的经典难题。不同于普通弯道可以通过简单的PID控制实现稳定循迹,环岛区域由于磁场信号的复杂叠加特性,往往会让依赖传统算法的智能车"晕头转向"。我在参与全国大学生智能车竞赛时,曾亲眼目睹多辆赛车在环岛区域反复打转甚至冲出赛道。
这个问题的本质在于:环岛区域的磁场分布会形成特殊的"时空干扰"。当车辆接近环岛时,直道磁场和环形磁场会产生叠加效应,导致电感传感器采集到的信号出现严重畸变。更棘手的是,入环、环内运行和出环这三个关键节点的信号特征极其相似,传统if-else逻辑很难做出准确区分。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心设计思路:七状态机解析
2.1 状态机设计的必要性
在常规赛道中,电磁信号的分布相对规律,PID控制器可以根据电感值的差异自动调整转向。但环岛区域存在三个特殊现象:
- 信号叠加:入环时直道和环道的磁场矢量叠加,导致信号发散
- 信号盲区:某些位置可能出现磁场抵消,导致信号瞬间归零
- 镜像特征:出环时的信号特征与入环时高度相似
这些特性使得单一控制策略完全失效。我们的解决方案是将环岛过程分解为7个明确的状态,每个状态对应特定的控制策略和状态转移条件。
2.2 七状态详细定义
2.2.1 阶段0:空闲寻找(RING_IDLE)
这是系统的默认状态,小车正常循迹的同时持续扫描环岛特征。我们采用双条件触发机制:
- 纵向电感差值阈值(如rightshu - leftshu > 45)
- 横向信号强度阈值(如left_adc + right_adc > 120)
这种双重验证有效避免了误触发。在实际调试中,我们发现将纵向差值阈值设为正常弯道最大差值的1.5倍左右效果最佳。
2.2.2 阶段1:发现环岛(RING_DETECTED)
这个阶段的核心是"温柔引导"。直接给大转向量会导致车辆撞向内环路沿。我们的策略是:
c复制Steer_Offset = -Direction_Factor * 10; // 轻微转向补偿
Direction_Factor取值为±1,分别对应右环和左环。这个补偿量约为正常急弯转向量的30%,确保车辆缓慢靠近环岛入口。
