报名日期:2026年5月1日 - 2026年8月1日 场地:5m×6m 智慧工厂场景 核心技术:讯飞星火大模型 Spark X2 + 多模态感知融合 + Gazebo虚实协同
┌─────────────────────────────────────┐
│ 总技术负责人 / PM │
│ (指导老师或最靠谱的学生) │
│ 统筹进度 + 跨组协调 + 系统联调 │
└──────────────┬──────────────────────┘
│
┌─────────┬───────┼───────┬────────┬──────────┐
│ │ │ │ │ │
①导航组 ②视觉组 ③决策组 ④语音组 ⑤硬件组 ⑥仿真组
负责人:洪云哲 徐科含
使命:让车动起来、跑得稳、不撞东西
| 序号 | 任务 | 说明 |
|---|---|---|
| 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坐标变换
锥桶随机摆放(抽签决定位置和数量),局部避障必须可靠
使命:看懂场地里的一切标志
负责人:方子行 魏晨巧
| 序号 | 任务 | 说明 |
|---|---|---|
| 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(二维码)
负责人:刘璐玮 陈智其
使命:货品分类推理 + 全局任务调度(全队指挥中枢)
| 序号 | 任务 | 说明 |
|---|---|---|
| 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 | 决策输出(导航目标、巡线方向等) |
Python, ROS, SMACH / BehaviorTree, Requests
负责人:姚伶洁
使命:听懂指令、说出结果
| 序号 | 任务 | 说明 |
|---|---|---|
| 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
负责人:洪云哲 徐科含
使命:自制合规红绿灯 + 车模维护(必须最早启动)
| 序号 | 任务 | 规格要求 |
|---|---|---|
| 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 | 联调协调 | 提前告知视觉组红绿灯显示规格,方便采集识别训练数据 |
| 序号 | 任务 | 说明 |
|---|---|---|
| 1 | 合规性检查 | 底盘垂直投影≥342×256mm,高度≤172mm |
| 2 | 电机 | 空载转速≤320±10%rpm |
| 3 | 传感器安装标定 | 摄像头角度、激光雷达位置、IMU固定 |
| 4 | 电池管理 | 比赛全程供电充足 |
| 5 | 赛前检录 | 准备检录材料,验证所有参数合规 |
Altium Designer / KiCad(PCB), C/C++(CSK5062固件), SolidWorks(结构)
负责人:熊静 刘祎舒 殷铭
使命:搭建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
| 接口名称 | 提供方 | 使用方 | 类型 | 说明 |
|---|---|---|---|---|
/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,建议按以下里程碑倒排:
| 组别 | 里程碑 |
|---|---|
| ⑤硬件组 | PCB打样完成,开始CSK5062固件开发(最早启动) |
| ①导航组 | SLAM建图 + 基础导航跑通 |
| ②视觉组 | 二维码识别 + 巡线算法原型 |
| ③决策组 | 星火API封装 + 状态机框架搭建 |
| ④语音组 | 唤醒 + ASR + TTS基本功能 |
| ⑥仿真组 | Gazebo环境搭建 + 虚拟机器人建模 |
| 联调组合 | 目标 |
|---|---|
| ①导航 × ②视觉 | 巡线导航联调 |
| ③决策 × 大模型 | Prompt测试 + 状态机走通 |
| ④语音 × ③决策 | 指令解析对接 |
| ⑤硬件 | 红绿灯原型可演示 |
假设总共约20人:
| 组别 | 人数 | 能力要求 | 优先级 |
|---|---|---|---|
| ①导航组 | 4人 | ROS基础、C++/Python、控制理论 | 最高 |
| ②视觉组 | 3-4人 | OpenCV、深度学习、图像处理 | 高 |
| ③决策组 | 3人 | 全队最强编程能力、Python、系统架构 | 最高 |
| ④语音组 | 2-3人 | 讯飞SDK、音频处理、NLP | 中 |
| ⑤硬件组 | 3-4人 | 电子工程、PCB设计、嵌入式C | 高(最早启动) |
| ⑥仿真组 | 2-3人 | Gazebo、URDF、ROS | 中 |
| 风险 | 影响 | 应对措施 |
|---|---|---|
| CSK5062开发受阻(资料少) | 红绿灯无法完成=无法参赛 | T-12周即开始调研芯片文档,联系聆思技术支持QQ群 |
| 大模型API现场网络波动 | 子任务1失败→连锁崩盘 | 本地缓存常见分类结果作为兜底(但必须实际调用API) |
| 锥桶随机摆放导致避障失败 | 碰锥桶扣分,超30秒终止 | 充分测试DWA/TEB参数,准备多套场景 |
| 巡线选错入口 | 子任务5不可逆失败 | 交通灯识别反复验证,岔路口决策双重确认 |
| 播报格式不合规 | 对应任务不计分 | 播报内容模板化,状态机中硬编码格式 |
| 30分钟内2次都失败 | 无有效成绩 | 第1次策略偏保守,确保基础分;第2次追求完整流程 |