跳转到主要内容

概述

RAICOM 2026 智能侦察 — 系统目标、分层架构、数据流与运行时状态。

全国大学生机器人大赛(RAICOM)「智能侦察」赛项的整车 ROS 软件。小车在 5 分钟内自主穿越 A–D 四区,完成人物识别与水弹打靶、雷区计数、反坦克检测与避障,并输出 6 行字节精确report.txt

  • 平台:ROS Melodic · Ubuntu 18.04 · catkin 工作空间 1raicom_ws
  • 仓库raicom2026

系统在做什么

比赛任务可以概括为三条链路:

  1. 导航 — 按预设航点巡航(move_base + Cartographer 定位)
  2. 感知 — 到任务点触发视觉识别(人物 / 雷区 / 反坦克)
  3. 输出 — 各任务写分报告,最后合并为 6 行 report.txt

启动分两段:prep 拉起全部传感器与模型;裁判计时后 go 只启动导航编排,秒级出发。

七层架构
系统分层:由硬件到比赛任务

分层结构

内容主要位置
M1 硬件麦克纳姆底盘、IMU、2D 雷达、云台枪、webcam、Orbbecconfig/udev/
M2 驱动串口/雷达/相机驱动,里程计chassis_driverimu_driverleishen/orbbec_camera
M3 融合EKF:odom_raw + IMU → /odomrobot_localization
M4 模型URDF、静态 TFrobot_description
M5 定位导航地图、Cartographer、move_baseraicom2026/launch/robot_navigation/
M6 比赛任务导航编排、视觉检测、报告raicom2026/scripts/
M7 运维prep/go、标定工具scripts/test/

总数据流

总数据流
传感器 → 融合 → 定位 → 规划 → 底盘;nav 经 Service 触发视觉任务

传感器 → 融合 → 定位 → 规划 → 底盘

  • 雷达 /scan、IMU、odom_raw 经 EKF 得到 /odom
  • Cartographer 发布 map → odom
  • move_base 输出 /move_base/cmd_velcmd_vel_merge/cmd_vel → 底盘

任务触发(Service,非连续话题):nav_competition.py 调用 /person_detect_service/mine_detect_service/antitank_check_service

双相机分工

双相机分工
相机安装模型任务
云台 webcam随舵机转person.onnxA–D 区人物识别 + 水弹打靶
云台 webcam同上mine.onnxA/B 雷区计数
Orbbec DCW2车头固定antitank.onnx反坦克检测 → costmap 避障

prep / go 两阶段

prep 与 go
阶段命令做什么
prepstart_match_prep.sh后台主 launch,起传感器/模型/定位/move_base
gostart_match_go.sh清空报告,仅起 nav_competition.py

详见 使用说明

stateDiagram-v2
    [*] --> BOOT
    BOOT --> NAV: map就绪 + move_base
    NAV --> TASK: 到达任务航点
    TASK --> NAV: 检测完成
    NAV --> REPORT: 航点完成或预算耗尽
    REPORT --> DONE: 合并 report.txt
    DONE --> [*]

状态话题:/nav_competition/state(如 NAV:P3TASK:人物A)。