欢迎光临
我们一直在努力

AURIX TC264 智能车实战:GPS 航点导航 + 摄像头循迹怎么搭出来的

AURIX TC264 智能车实战:GPS 航点导航 + 摄像头循迹怎么搭出来的

摘要:本文介绍一款基于 Infineon AURIX TC264D 的智能车软件架构:GPS 航点导航、MT9V03x 摄像头循迹、IMU 航向保持、IPS200 多级菜单在线调参。适合智能车 / 电赛方向同学参考,完整工程已开源。


1. 项目背景

全国大学生智能汽车竞赛等赛题里,常见两类需求:

  • 户外 / 大场地:按预设路径自主行驶(GPS 航点);
  • 赛道 / 黑线:摄像头循迹,要求稳、抗光照。
  • 本项目在同一辆车上做了 「GPS 导航 + 视觉循迹 + IMU 辅助」 的融合方案,底层基于逐飞科技(SEEKFREE)开源库,业务代码集中在自写的 code/ 目录,用屏上菜单实现 不烧录也能改 PID。

    开源仓库
    https://github.com/shuifanyu/TC264-GPS-Vision-Car


    2. 硬件平台

    组件型号 / 说明
    主控 Infineon TC264D(AURIX TriCore,双核)
    开发板 逐飞 SEEKFREE TC264 通用主板
    驱动 TC264-GTM 无刷驱动板(自制 PCB)
    摄像头 MT9V03x 灰度
    IMU IMU963RA(9 轴)
    GPS GNSS 模块(UART3)
    显示 IPS200 TFT(SPI)
    执行器 BLDC(GTM 驱动)+ PWM 舵机 50Hz
    交互 按键 + 拨码;可选 X6F 遥控接收机

    3. 软件架构总览

    3.1 开发环境

    • IDE:AURIX Development Studio (ADS)
    • 编译器:Tasking C/C++
    • 底层库:逐飞 zf_common / zf_driver / zf_device / zf_components + Infineon iLLD
    • 导入工程:ADS → Import → Existing Projects → 选择仓库中的 ALL_THE_LAST_2025_7

    3.2 模块划分(code/)

    模块职责
    GPS.c/h NMEA 解析、航点 Flash 存储、多路径、航向跟踪
    Image.c/h OTSU 二值化、中线提取、转向输出
    Agorithm.c/h 位置式 / 增量式 PID
    IMU_1.c/h IMU963RA 读取与姿态
    Menu.c/h 状态机多级菜单,参数实时修改
    GL_Math.c/h 轻量 sin/cos/atan2/sqrt、低通滤波
    Common_Peripherals.c/h 电机、舵机、按键、LED、遥控等封装

    3.3 中断与主循环分工

    工程里用 CCU6 定时器中断 拆任务,避免主循环里做重计算导致节拍抖动:

    中断周期任务
    CCU60_CH0 20ms IMU 采集与姿态
    CCU60_CH1 5ms 按键扫描
    CCU61_CH0 5ms GPS / 惯性导航计算
    UART3_RX 回调 GNSS 数据接收

    主循环大致是:

    core0_main() {
    /* 初始化 GPS、舵机、BLDC、IPS200、IMU、按键等 */
    /* 启动 CCU60 / CCU61 定时中断 */

    while (1) {
    GPS_parse(); /* 解析 GPS 报文 */
    Menu(); /* 刷新菜单与显示 */
    }
    }

    设计取向:中断里做「周期确定、耗时可控」的采样与轻量控制;菜单刷新、字符串格式化等丢进主循环。


    4. 核心功能拆解

    4.1 GPS 航点导航

    能力

    • 最多 3 条路径,每条最多 16 个航点;
    • 航点写入 Flash,断电不丢;
    • 解算当前位置到目标点的 距离、方位角,用 PID 控舵机转向;
    • 到达阈值内(工程里常用 <1 m 量级)自动切下一个航点。

    思路示意

    GNSS 串口数据 → 解析经纬度 → 与当前航点比对
    → 计算目标方位角 / 距离
    → 方位误差 → PID → 舵机
    → 距离 < 阈值 → next waypoint

    实践建议

  • 先在固定点标定「到达半径」,太小会在航点附近来回转,太大抄近路;
  • 航点录入做在菜单里,现场改路径不用改代码;
  • GPS 丢星 / 漂移时不要硬闭环,切换 IMU 保持航向更稳。

  • 4.2 摄像头循迹(OTSU → 中线 → PID)

    处理链路:

    MT9V03x 灰度图
    → OTSU 自适应阈值二值化
    → 按行/区域扫边界
    → 加权中线(重点区域权重更高,例如核心区 ×3)
    → 一阶低通平滑
    → 误差 e = 中线 – 图像中心
    → PID(或 PD)→ 舵机

    为什么用 OTSU
    室内外光照变化大时,固定阈值很容易「整屏白」或「整屏黑」。OTSU 按直方图把前景/背景分开,适应性更好。

    中线加权
    靠近车头的几行往往比远处更有「立刻要打角」的信息,给更大权重可以降低远处干扰。

    低通
    原始中线跳变会让舵机发抖,一阶低通:

    [
    y_n = \\alpha x_n + (1-\\alpha) y_{n-1}
    ]

    (\\alpha) 过大跟手但抖,过小平滑但滞后,需要跟舵机响应一起调。


    4.3 IMU 航向辅助

    • IMU963RA 约 20ms 周期采样;
    • GPS 有效时以导航解算为主;
    • 信号差时用 IMU 航向「顶住」,避免失控乱转。

    4.4 PID:速度环与转向环分工

    竞赛车里常见分工:

    环路常用形式说明
    电机速度 增量式 PI/PID 编码器反馈,输出 PWM 增量,抗积分饱和更友好
    舵机转向 位置式 PID / PD 输出绝对打角,结构直观
    GPS 航向 位置式 PID 方位角误差 → 舵机

    调参习惯(工程向):

  • 先 P 把响应拉起来,再补 I 消稳态误差,最后用很小的 D 抑振荡;
  • 加 积分限幅,防止起步或长时间偏航积分冲顶;
  • 用菜单 在线改参 + 曲线/现象观察,比每次改宏定义再编译快一个数量级。

  • 4.5 IPS200 多级菜单

    • 状态机 / 表驱动,覆盖 GPS、IMU、舵机中值、电机速度、摄像头相关参数;
    • 按键选择、确认,参数写入 Flash;
    • 调试期价值极高:改参 → 立刻跑 → 再改。

    5. 踩坑记录

    现象可能原因处理思路
    GPS 城市/树荫下失控 丢星、漂移 信号质量判断 + IMU 航向保持
    循迹白天好、阴影差 固定阈值失效 改 OTSU,检查曝光/安装高度
    PID 每次烧录太慢 参考写死在代码 菜单在线调参 + Flash
    中断偶发卡死 优先级/嵌套不当 重计算放主循环,理清 CCU 优先级
    舵机抖 中线噪声 / D 过大 低通、减 D、查舵机死区
    Flash 航点异常 掉电写坏 / 地址冲突 写校验、分区规划

    6. 工程里可复用的小设计

  • 轻量数学库 GL_Math
    嵌入式里 math.h 可能偏大,自写 sin/cos/atan2/sqrt + IIR,Flash 更省。

  • Flash 数据管理
    若浮点存储不便,可做定点化(如 double → int32 保留固定小数位)再读写。

  • 菜单绑定参数表
    参数名、地址、范围、步进做成表,加新参数不用改一堆 if-else。

  • 底层库与业务代码分离
    libraries/ 尽量不动,竞赛逻辑全在 code/,升级库时冲突少。


  • 7. 源码与扩展

    完整 ADS 工程见:

    https://github.com/shuifanyu/TC264-GPS-Vision-Car

    目录要点:

    ALL_THE_LAST_2025_7/
    user/ # cpu0_main、isr
    code/ # GPS / Image / Menu / PID / IMU …
    libraries # 逐飞 + iLLD

    开源说明:基于逐飞 SEEKFREE 库二次开发,请遵循其 GPL-3.0 协议;本文代码片段为示意,以仓库为准。


    8. 小结

    这套智能车软件的关键词可以概括为:

    • 双核 + 定时中断 保证控制节拍;
    • OTSU + 加权中线 + 低通 稳住视觉循迹;
    • GPS 航点 + PID + IMU 补航向 覆盖户外导航;
    • 菜单 + Flash 把调参效率提上来。

    如果你正在做智能车 / 电赛,建议优先打通:编码器速度环 → 摄像头循迹 → 菜单调参,再上 GPS,体验会顺很多。


    参考

    • 逐飞科技开源库与文档(SEEKFREE)
    • Infineon AURIX TC264 相关手册与 iLLD
    • 本项目 GitHub:TC264-GPS-Vision-Car

    作者:shuifanyu
    标签:智能车 AURIX TC264 SEEKFREE GPS导航 摄像头循迹 PID 嵌式 电赛

    赞(0)
    未经允许不得转载:171主机测评 » AURIX TC264 智能车实战:GPS 航点导航 + 摄像头循迹怎么搭出来的
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址