智能车竞赛_任务拆解方案.md 16 KB

第二十一届全国大学生智能车竞赛

讯飞组赛项"智慧工厂" — 多团队任务拆解方案

报名日期:2026年5月1日 - 2026年8月1日 场地:5m×6m 智慧工厂场景 核心技术:讯飞星火大模型 Spark X2 + 多模态感知融合 + Gazebo虚实协同


一、整体架构

        ┌─────────────────────────────────────┐
        │          总技术负责人 / PM            │
        │   (指导老师或最靠谱的学生)             │
        │   统筹进度 + 跨组协调 + 系统联调       │
        └──────────────┬──────────────────────┘
                       │
     ┌─────────┬───────┼───────┬────────┬──────────┐
     │         │       │       │        │          │
  ①导航组   ②视觉组  ③决策组  ④语音组  ⑤硬件组   ⑥仿真组
  • 建议6个分组,每组3-4人
  • 各组并行开发,通过ROS接口对接
  • 每组设组长,参加每周跨组对齐会
  • 总负责人专注于协调和联调,不写或少写代码

二、各组任务清单

① 导航与运动控制组(底盘层)

负责人:洪云哲 徐科含

使命:让车动起来、跑得稳、不撞东西

任务清单

序号 任务 说明
1 SLAM建图 用激光雷达对5m×6m场地建图,输出地图文件
2 实时定位 AMCL或其他方案,定位精度≤10cm
3 全局路径规划 A*/Dijkstra,从P点到各目标点
4 局部避障 DWA或TEB,应对8-10个随机锥桶
5 麦克纳姆轮控制 PID调参,实现精准停泊(3轮进框)
6 导航API封装 提供ROS Service供其他组调用

交付接口

接口 类型 说明
/go_to_pose Service 输入目标坐标,返回到达/失败
/nav_status Topic IDLE / MOVING / ARRIVED / ERROR
场地坐标系文档 文档 P点原点、A/B/C仓库坐标、二维码区坐标

技术栈

ROS Navigation Stack, move_base/Nav2, TF坐标变换

验收标准

  • 在模拟场地中从P点导航到指定仓库,3轮停泊
  • 不碰随机摆放的锥桶
  • 停泊精度:3个轮及以上在框内

核心难点

锥桶随机摆放(抽签决定位置和数量),局部避障必须可靠

人数建议:3-4人,需有ROS基础


② 视觉感知组(眼睛层)

使命:看懂场地里的一切标志

任务清单

负责人:方子行 魏晨巧

序号 任务 说明
1 二维码识别 识别3个二维码,解析URL,获取JSON返回({"code":200, "result":"苹果"}),封装为ROS Service
2 厂区标识牌识别 识别"食品加工车间/日用品加工车间/电子产品生产车间",需自建数据集
3 交通灯状态识别 识别自制红绿灯的四种状态(红灯/直行/左转/右转),需与硬件组协调规格,提前采集训练数据
4 视觉巡线 提取地面巡线,输出偏移量给导航组;识别三条巡线路径及岔路口

交付接口

接口 类型 说明
/scan_qrcodes Service 返回3个货品名称列表 → 给决策组
/traffic_light Topic 灯状态:RED / STRAIGHT / LEFT / RIGHT → 给决策组
/line_offset Topic 巡线偏差量(偏移+角度)→ 给导航组
/sign_recognition Topic 厂区标识牌识别结果 → 给决策组

技术栈

OpenCV, PyTorch(轻量分类模型), zbar/pyzbar(二维码)

验收标准

  • 二维码3秒内识别完毕,JSON解析正确
  • 交通灯四种状态识别准确率 > 95%
  • 巡线在模拟光照变化下稳定运行
  • 厂区标识牌识别准确率 > 95%

核心难点

  • 光照变化鲁棒性(场地为喷绘刀刮布,光照不均)
  • 自制红绿灯的识别数据集需自己采集和标注

人数建议:3-4人


③ 大模型与决策组(大脑层)

负责人:刘璐玮 陈智其

使命:货品分类推理 + 全局任务调度(全队指挥中枢)

任务清单

序号 任务 说明
1 星火Spark X2 API封装 封装ROS节点,接收货品列表+目标大类,构建Prompt查询,解析返回结果,异常重试
2 全局任务状态机 5个子任务的状态流转管理 + 异常分支处理
3 决策逻辑 子任务1货品→仓库映射;子任务4交通灯→巡线入口选择

状态机设计

INIT
→ TASK1_LISTEN          (等待语音指令)
→ TASK1_SCAN_QRCODE     (识别二维码)
→ TASK1_INFER           (大模型推理)
→ TASK1_REPORT          (语音播报分类结果)
→ TASK2_NAV             (导航穿越生产区)
→ TASK2_PARK            (精准停泊目标仓库)
→ TASK2_REPORT          (语音播报入库)
→ TASK3_SIGNAL          (发送仿真就绪信号)
→ TASK3_WAIT            (等待仿真完成)
→ TASK3_REPORT          (语音播报仿真完成)
→ TASK4_DETECT_LIGHT    (识别交通灯)
→ TASK4_DECIDE          (决策巡线方向)
→ TASK5_LINE_FOLLOW     (巡线行驶)
→ TASK5_PARK            (终点停泊)
→ TASK5_REPORT          (播报"任务完成")
→ DONE

每个状态需设计超时机制和异常恢复分支。

交付接口

接口 类型 说明
/classify_product Service 输入货品名+大类,返回匹配结果+目标仓库
/task_state Topic 当前状态机状态(全局可见)
/decision Topic 决策输出(导航目标、巡线方向等)

Prompt工程要点

  • 输入:语音指令的目标大类 + 二维码识别出的3个货品名
  • 要求大模型判断哪个货品属于目标大类
  • 必须稳定解析返回,格式异常时有兜底逻辑
  • 测试覆盖:食品类(苹果/猪肉...)、日用品类(毛巾/T恤...)、电子类(手机/电脑...)

技术栈

Python, ROS, SMACH / BehaviorTree, Requests

验收标准

  • 大模型调用成功率 > 95%(含重试机制)
  • 状态机覆盖率测试:每个状态正确进入和退出
  • Prompt在不同货品组合下都能正确分类
  • 全链路Demo:模拟5个任务顺序走通

核心难点

  • Prompt工程的稳定性(模型回复格式不可控)
  • 状态机的异常处理完备性(网络超时、识别失败、播报失败)
  • 比赛规则要求"必须实际调用API,技术欺诈直接取消成绩"

人数建议:3人(需全队最强的编程能力)


④ 语音交互组(耳朵和嘴巴)

负责人:姚伶洁

使命:听懂指令、说出结果

任务清单

序号 任务 说明
1 语音唤醒 实现"小飞小飞"唤醒词检测
2 语音识别(ASR) 解析唤醒后的完整指令,提取目标货品大类和仿真货品大类
3 语音播报(TTS) 按规定格式输出5处播报(见下方)
4 6麦阵列配置 声源定位+降噪,应对赛场噪声

五处语音播报格式

序号 时机 格式
1 子任务1完成 "取得[货品名称]属于[目标大类]应放置在[目标仓库],仿真环境中取得[货品名称]属于[目标大类]应放置在[目标仓库]"
2 子任务2完成 "已将[货品名称]放入[仓库类别]"
3 子任务3完成 "仿真任务已完成,已将[货品名称]放入[仓库类别]"
4 子任务4决策 左转 / 右转 / 直行 / 停止
5 子任务5完成 "任务完成"(停稳后10秒内开始,30秒内完成)

交付接口

接口 类型 说明
/voice_command Topic 解析后的指令结构体 → 给决策组
/speak Service 输入文本,执行TTS播报,播报完成后返回
/wake_status Topic 唤醒状态

技术栈

讯飞语音SDK, Python, ALSA/audio

验收标准

  • 唤醒词3米内识别率 > 95%
  • 指令解析准确率 > 90%
  • TTS播报清晰,格式完全符合规则
  • 播报完成有回调确认(不能播一半就继续下一步)

核心难点

  • 赛场噪声干扰(观众、其他设备)
  • 指令中货品名称的自然语言理解
  • 播报格式必须一字不差,否则该任务不计分

人数建议:2-3人


⑤ 硬件与电路组(红绿灯 + 车模改装)

负责人:洪云哲 徐科含

使命:自制合规红绿灯 + 车模维护(必须最早启动)

A. 电子红绿灯(竞赛硬性要求)

序号 任务 规格要求
1 PCB设计 原理图→PCB布局→打样
2 主控芯片 聆思科技 CSK5062(必须用此芯片,不可用其他MCU)
3 显示屏 WS2812/WS2812B LED点阵,宽高≤20cm或直径≤20cm,分辨率≤256
4 单板设计 电源管理+MCU+驱动电路全在一块PCB上(屏幕除外)
5 四种状态 直行/左转/右转(绿色灯光)、红灯
6 语音控制 通过CSK5062语音控制灯状态切换
7 结构设计 整体高度≤40cm,宽度≤50cm,外观可拆卸(需检查丝印)
8 PCB丝印 丝印层加队伍名称,不加其他厂商LOGO(加工厂编号和LED屏幕除外)
9 供电 电池供电
10 联调协调 提前告知视觉组红绿灯显示规格,方便采集识别训练数据

B. 车模改装与维护

序号 任务 说明
1 合规性检查 底盘垂直投影≥342×256mm,高度≤172mm
2 电机 空载转速≤320±10%rpm
3 传感器安装标定 摄像头角度、激光雷达位置、IMU固定
4 电池管理 比赛全程供电充足
5 赛前检录 准备检录材料,验证所有参数合规

技术栈

Altium Designer / KiCad(PCB), C/C++(CSK5062固件), SolidWorks(结构)

验收标准

  • 红绿灯通过官方检录
  • 四种状态显示清晰,语音控制响应正常
  • 车模所有参数在合规范围内

核心难点

  • CSK5062资料少(非主流芯片),需查聆思官方文档
  • PCB打样周期长(至少2-3周),必须最早启动
  • WS2812驱动+语音控制集成在单板上

人数建议:3-4人(需有电子工程背景)


⑥ 仿真与通信组(虚实协同)

负责人:熊静 刘祎舒 殷铭

使命:搭建Gazebo仿真环境 + 实现虚实通信

任务清单

序号 任务 说明
1 Gazebo环境搭建 复刻5m×6m场地(仓储区/生产区/停车区),放置锥桶、标识牌、巡线
2 虚拟机器人模型 URDF/Xacro建模,需有机械臂
3 虚拟机器人任务脚本 子任务3触发后:巡检→拾取→避障→放置(预设路径或简单自主规划)
4 虚实通信协议 实体车→仿真发就绪信号;仿真→实体车发完成信号
5 联调测试 实体车停泊→发信号→仿真启动→仿真完成→实体车收到信号

交付接口

接口 类型 说明
/sim_trigger Service 实体车调用,触发仿真任务
/sim_complete Topic 仿真发布完成信号
Gazebo场景文件 文件 场景.world + 虚拟机器人URDF

技术栈

Gazebo, URDF/Xacro, ROS, Python

验收标准

  • 仿真任务在收到触发后30秒内完成
  • 通信可靠,无丢包
  • 仿真环境与真实场地布局一致

核心难点

  • Gazebo环境精度(锥桶位置、标识牌朝向)
  • 虚拟机器人机械臂控制
  • 虚实通信的网络配置(仅大模型调用和任务领取允许联网)

人数建议:2-3人


三、团队间接口定义总表

接口名称 提供方 使用方 类型 说明
/go_to_pose ①导航组 ③决策组 Service 导航到目标点
/nav_status ①导航组 ③决策组 Topic 导航状态
/line_offset ②视觉组 ①导航组 Topic 巡线偏差量
/scan_qrcodes ②视觉组 ③决策组 Service 二维码货品列表
/traffic_light ②视觉组 ③决策组 Topic 交通灯状态
/sign_recognition ②视觉组 ③决策组 Topic 厂区标识牌
/classify_product ③决策组 全局 Service 大模型分类
/task_state ③决策组 全局 Topic 状态机状态
/voice_command ④语音组 ③决策组 Topic 语音指令解析
/speak ④语音组 ③决策组 Service TTS播报
/wake_status ④语音组 ③决策组 Topic 唤醒状态
/sim_trigger ⑥仿真组 ③决策组 Service 触发仿真
/sim_complete ⑥仿真组 ③决策组 Topic 仿真完成信号

四、时间线建议(倒排计划)

假设比赛日为 T,建议按以下里程碑倒排:

T-10周:各组独立开发

组别 里程碑
⑤硬件组 PCB打样完成,开始CSK5062固件开发(最早启动
①导航组 SLAM建图 + 基础导航跑通
②视觉组 二维码识别 + 巡线算法原型
③决策组 星火API封装 + 状态机框架搭建
④语音组 唤醒 + ASR + TTS基本功能
⑥仿真组 Gazebo环境搭建 + 虚拟机器人建模

T-6周:组间两两联调

联调组合 目标
①导航 × ②视觉 巡线导航联调
③决策 × 大模型 Prompt测试 + 状态机走通
④语音 × ③决策 指令解析对接
⑤硬件 红绿灯原型可演示

T-3周:全系统集成

  • 5个子任务全链路走通(即使慢、即使有bug)
  • ⑥仿真 × ③决策:虚实通信联调
  • ⑤硬件红绿灯接入 ②视觉识别
  • 完整流程跑通一遍

T-1周:实战演练

  • 模拟比赛(30分钟全流程,2次机会)
  • 扣分点专项排查:压线、碰锥桶、播报格式、抢跑
  • 异常恢复预案演练
  • 准备检录材料

五、人员分配建议

假设总共约20人:

组别 人数 能力要求 优先级
①导航组 4人 ROS基础、C++/Python、控制理论 最高
②视觉组 3-4人 OpenCV、深度学习、图像处理
③决策组 3人 全队最强编程能力、Python、系统架构 最高
④语音组 2-3人 讯飞SDK、音频处理、NLP
⑤硬件组 3-4人 电子工程、PCB设计、嵌入式C 高(最早启动)
⑥仿真组 2-3人 Gazebo、URDF、ROS

关键角色

  • 总负责人(PM):不写代码或少量写代码,专注跨组协调、接口对齐、进度跟踪
  • 每组组长:参加每周跨组对齐会,负责本组进度和对外接口
  • 硬件组提前2周启动:PCB打样+固件开发周期最长

六、风险清单与应对

风险 影响 应对措施
CSK5062开发受阻(资料少) 红绿灯无法完成=无法参赛 T-12周即开始调研芯片文档,联系聆思技术支持QQ群
大模型API现场网络波动 子任务1失败→连锁崩盘 本地缓存常见分类结果作为兜底(但必须实际调用API)
锥桶随机摆放导致避障失败 碰锥桶扣分,超30秒终止 充分测试DWA/TEB参数,准备多套场景
巡线选错入口 子任务5不可逆失败 交通灯识别反复验证,岔路口决策双重确认
播报格式不合规 对应任务不计分 播报内容模板化,状态机中硬编码格式
30分钟内2次都失败 无有效成绩 第1次策略偏保守,确保基础分;第2次追求完整流程

七、资料下载