Skip to content

MingTeer/Front_Car

Repository files navigation

智能车前车系统 - Front Car V2.9.0

项目概述

这是一个基于Infineon TC26B微控制器的智能车前车控制系统,主要用于智能车竞赛中的图像处理、路径规划和运动控制。该系统集成了摄像头图像处理、路径跟踪、特殊元素识别(环岛、十字、斑马线等)和精确的运动控制功能。

硬件平台

  • 主控制器: Infineon TC26B (TriCore架构)
  • 图像传感器: MT9V03X摄像头
  • 存储器: W25N04 NAND Flash (512MB)
  • 通信: UART、SPI接口
  • 调试工具: 逐飞科技串口调试助手

代码结构说明

code/ 文件夹模块详解

系统初始化模块

  • All_Init.c/.h: 系统总初始化模块,负责所有硬件设备和软件模块的初始化配置

控制算法模块

  • PID.c/.h: PID控制器实现,包含位置式PID、增量式PID、差速控制等多种PID算法
  • ladrc.c/.h: 线性自抗扰控制器(LADRC)实现,提供更加鲁棒的控制性能
  • Filter.c/.h: 数字滤波器实现,用于传感器数据滤波处理

图像处理核心模块

  • image_processing.c/.h: 核心图像处理模块
    • 逆透视变换和透视变换
    • 大津阈值处理和自适应阈值
    • 边界线检测和跟踪
    • 种子点搜索
    • 贝塞尔曲线拟合
    • 图像滤波和增强
  • perspective.c/.h: 透视变换专用模块,实现图像坐标系到鸟瞰图的转换
  • exposure_adjust.c/.h: 摄像头曝光时间自动调节,适应不同光照环境

路径处理模块

  • PTS_Deal.c/.h: 点集处理核心模块
    • 边界数据结构管理(BoundaryData, FBoundaryData)
    • 中线数据处理(MidlineData)
    • 左右边界点的提取和处理
  • point_judge.c/.h: 关键点判断,用于识别道路特征点和拐点

特殊元素识别模块

  • Ring.c/.h: 环岛识别与处理
    • 支持左环岛和右环岛检测
    • 多阶段状态机处理环岛进入、通过、退出
    • 基于角度累计的环岛判断
  • cross.c/.h: 十字路口识别与处理
    • 十字路口状态机控制
    • 十字路口入口和出口检测
  • Zebra.c/.h: 斑马线检测,基于图像边缘变化次数判断
  • element_manager.c/.h: 元素管理器,统一管理各种道路元素的识别和处理优先级

速度决策模块

  • speed_decision.c/.h: 智能速度决策,根据道路情况和元素类型动态调整车速

人机交互模块

  • menu.c/.h: 菜单系统实现
    • 多级菜单结构
    • 按键导航和功能执行
    • 参数调试界面
  • menu_list.c: 菜单项列表定义和菜单结构配置
  • key.c/.h: 按键输入处理,支持多按键组合和长短按识别

数据存储模块

  • parameter_flash.c/.h: 参数Flash存储系统
    • 64个可配置参数的管理
    • 参数的保存、加载和重置
    • 实时参数调试功能
  • parameter_scheme.c/.h: 参数方案管理
    • 多套参数方案存储
    • 方案快速切换
    • W25N04外部Flash备份
  • w25n04.c/.h: W25N04 NAND Flash驱动
    • 512MB大容量存储
    • DMA高速数据传输
    • 坏块管理和纠错
  • image_storage.c/.h: 图像存储模块,实现图像数据的Flash存储和回放

通信调试模块

  • pico_gy.c/.h: 逐飞科技上位机通信协议
    • 图像数据实时传输
    • 调试数据可视化
    • 参数实时监控
  • pico_link_ii.c/.h: 逐飞Link II通信协议底层实现
  • Show_data.c/.h: 数据显示模块,用于调试信息的格式化输出

工具类模块

  • clip.c/.h: 数值裁剪和限幅函数
  • infrared_nec.c/.h: 红外遥控器NEC协议解码
  • PIT_Demo.c/.h: 定时器中断演示和配置

其他重要文件夹

libraries/ - 库文件

  • infineon_libraries/: Infineon官方iLLD底层驱动库
  • zf_common/: 逐飞科技通用库
  • zf_components/: 逐飞科技组件库
  • zf_device/: 设备驱动封装
  • zf_driver/: 硬件驱动抽象层

user/ - 用户层

  • cpu0_main.c: CPU0主程序入口
  • cpu1_main.c: CPU1主程序入口
  • isr.c/.h: 中断服务程序

主要功能特性

图像处理能力

  • 实时图像预处理和增强
  • 自适应阈值二值化
  • 逆透视变换生成鸟瞰图
  • 高精度边界线检测和跟踪
  • 曲线拟合和轨迹预测

智能识别

  • 环岛自动识别和处理(左/右环岛)
  • 十字路口检测和通过策略
  • 斑马线识别和停车控制
  • 多元素优先级管理

运动控制

  • PID位置控制和速度控制
  • LADRC自抗扰控制
  • 差速转向控制
  • 智能速度规划

调试系统

  • 参数在线调试
  • 图像实时传输和显示
  • 多方案参数管理
  • Flash数据存储

开发环境

  • IDE: AURIX Development Studio 或 Eclipse
  • 编译器: TASKING C/C++ Compiler for TriCore
  • 调试器: Infineon DAS (Debugger Access Server)
  • 上位机: 逐飞科技串口助手

编程规范

  • 使用标准C语言(C99)
  • 文件命名采用下划线分隔
  • 函数命名采用Pascal命名法
  • 所有头文件使用包含保护
  • 详细的函数注释和文档

编译说明

  1. 打开项目工程文件(.project
  2. 配置编译环境和工具链
  3. 选择目标配置(Debug/Release)
  4. 编译生成.elf可执行文件
  5. 通过调试器下载到目标板

技术支持

如有技术问题,请参考:

  • 逐飞科技官方技术文档
  • Infineon TC26x系列用户手册
  • 项目内的注释和文档

版本信息

  • 当前版本: V2.9.0
  • 更新日期: 2024年
  • 兼容性: TC26B系列微控制器

该项目是智能车竞赛的完整解决方案,集成了从底层驱动到上层算法的全套代码,具有良好的模块化设计和可扩展性。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages