1. 项目背景与竞赛概述
全国大学生智能汽车竞赛已经连续举办了二十一届,是国内最具影响力的高校科技创新赛事之一。今年的"雁过留痕"组别特别引人注目,它要求参赛车辆在行驶过程中不仅要完成常规的路径识别和循迹任务,还需要实时记录并处理行驶轨迹信息,实现"走过必留痕"的智能记录功能。
这个组别的设计初衷是为了探索智能车辆在环境感知与信息记录方面的综合能力。与传统的循迹组别相比,"雁过留痕"对车载系统的数据处理能力和存储效率提出了更高要求。参赛车辆需要在保证实时性的前提下,准确记录行驶过程中的各类环境数据,包括但不限于路径信息、时间戳、传感器读数等关键参数。
2. 系统架构设计
2.1 硬件平台选型
我们的参赛车辆基于STM32H743主控芯片搭建,这款芯片具有双核Cortex-M7架构,主频高达480MHz,能够满足实时数据处理的需求。传感器配置方面,我们选择了:
- 线性CCD阵列用于路径识别
- MPU6050六轴传感器用于姿态检测
- 超声波模块用于障碍物测距
- 高精度编码器用于里程计算
特别值得一提的是,我们为数据记录功能专门配备了一片W25Q128 Flash存储芯片,其128Mbit的容量足以存储数小时的行驶数据。考虑到数据完整性要求,我们还设计了双缓冲存储机制,确保即使在意外断电情况下也不会丢失关键信息。
2.2 软件架构设计
软件系统采用分层架构:
- 底层驱动层:负责各硬件模块的初始化和基础功能实现
- 算法处理层:包含图像处理、控制算法、数据压缩等核心算法
- 应用逻辑层:实现竞赛要求的各项功能逻辑
- 数据记录层:专门处理轨迹数据的采集、压缩和存储
这种架构设计使得各功能模块高度解耦,便于调试和优化。特别是在数据记录方面,我们实现了独立的数据处理线程,避免了对主控制回路的干扰。
3. 核心算法实现
3.1 路径识别与跟踪控制
路径识别采用改进的加权中线算法。传统的加权中线算法在处理复杂路径时容易产生振荡,我们通过引入历史路径预测和动态权重调整,显著提高了系统的稳定性。具体实现上:
- 对CCD采集的图像进行二值化处理
- 计算各有效边缘点的权重值
- 根据历史路径预测当前可能的中线位置
- 动态调整左右边缘的权重分配
- 输出最终的中线位置和转向建议
控制算法采用模糊PID控制器,其参数根据车速和路径曲率动态调整。实测表明,这种控制策略在直道和弯道都能保持良好的跟踪性能。
3.2 轨迹记录与压缩算法
"雁过留痕"的核心挑战在于如何高效记录行驶轨迹。我们设计了一种混合编码方案:
- 基础信息记录:每100ms记录一次车辆位置、速度、方向等基础数据
- 关键点标记:在路径转折点、特殊标志处增加详细记录
- 差分压缩:对连续帧中不变或渐变的数据采用差分编码
- 行程编码:对重复出现的相同数据值进行压缩
这种方案在测试中实现了平均85%的压缩率,大大延长了有效记录时间。同时,我们还设计了完善的数据索引机制,确保能够快速检索特定时间段的轨迹信息。
4. 系统优化与调试
4.1 实时性优化
为了保证系统的实时性能,我们采取了多项优化措施:
- 关键代码段使用汇编优化
- 中断服务程序尽可能精简
- 数据记录采用DMA传输
- 算法中使用查表法替代实时计算
通过这些优化,即使在满载运行情况下,系统的主控制周期仍能稳定在5ms以内,完全满足竞赛要求。
4.2 存储可靠性保障
数据记录的可靠性是"雁过留痕"组别的关键评分点。我们实现了:
- 双缓冲存储机制:当一块缓冲区正在写入时,另一块保持完整
- CRC校验:每条记录都附带校验码
- 坏块管理:自动检测并标记损坏的存储区块
- 断电保护:超级电容提供紧急供电,确保关键数据保存
在严苛的测试中,这套机制成功经受住了突然断电、强烈震动等异常情况的考验。
5. 竞赛表现与经验总结
在实际竞赛中,我们的智能车表现出色,特别是在轨迹记录的完整性和准确性方面获得了评委的高度评价。几个关键的技术亮点:
- 独创的混合压缩算法使记录时长达到同类方案的3倍
- 优化的路径识别算法在复杂赛道环境下保持稳定
- 可靠的存储机制确保所有关键数据完整保存
从这次参赛经历中,我们总结了几个重要经验:
- 数据记录功能需要从系统设计初期就纳入考量,后期添加往往事倍功半
- 在资源受限的嵌入式系统中,算法效率比绝对精度更重要
- 充分的压力测试是发现系统薄弱环节的有效手段
特别值得一提的是,我们开发的这套轨迹记录系统不仅适用于竞赛场景,经过适当调整后,完全可以应用于工业巡检、环境监测等实际应用领域。这为我们的技术方案提供了更广阔的应用前景。