MOVE_AI/CHANGELOG.md
Robofish 5c0752c7db feat: 重构系统架构,添加决策节点和ROS2视觉集成
## 核心更新

### 1. 决策节点 (rm_decision)
- 新增决策节点作为系统核心控制器
- 整合视觉自瞄控制(云台)和运动控制(底盘)
- 50Hz控制频率,实时决策
- 订阅: /data_mcu, /data_ref, /vision/aim, /nav_status, /cmd_vel_move
- 发布: /data_ai (综合控制), /nav_goal (导航目标)

### 2. 消息系统重构
- 新增 DataAim.msg - 视觉自瞄控制(仅云台)
- 新增 ChassisMode.msg - 底盘模式定义
- 新增 GimbalState.msg - 云台状态数据
- 修改 DataAI.msg - 综合控制指令(云台+底盘)

### 3. 视觉系统 ROS2 集成
- 创建 GimbalROS 适配器,替代直接串口通信
- 订阅 /data_mcu 获取云台状态
- 发布 /vision/aim 输出云台控制指令
- 修改所有视觉任务文件使用 ROS2 接口

### 4. 视觉系统标准化 (rm_vision_bringup)
- 添加 package.xml 使 rm_vision 成为标准 ROS2 包
- 创建 sentry_vision.launch.py - Sentry 专用启动
- 创建 calibration.launch.py - 统一标定工具
- 支持参数化启动不同类型的视觉程序

### 5. 数据流架构
MCU ↔ Serial Driver → Vision/Decision → Simple Move → Nav2

## 启动方式改进
之前: cd build/mr_vision && ./standard_mpc configs/standard4.yaml
现在: ros2 launch rm_vision_bringup sentry_vision.launch.py

## 文档更新
- 完善 README.md,添加完整系统架构图
- 新增 CHANGELOG.md 记录更新历史
- 添加详细的启动流程和标定工具说明

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-05 15:47:25 +08:00

4.1 KiB
Raw Permalink Blame History

更新日志

2026-03-05 - Sentry 分支重大更新

🎯 核心架构重构

1. 决策节点 (rm_decision)

  • 新增决策节点作为系统核心控制器
  • 整合视觉自瞄控制(云台)和运动控制(底盘)
  • 订阅话题:/data_mcu, /data_ref, /vision/aim, /nav_status, /cmd_vel_move
  • 发布话题:/data_ai (综合控制), /nav_goal (导航目标)
  • 50Hz 控制频率,实时决策

2. 消息系统重构

  • 新增 DataAim.msg - 视觉自瞄控制(仅云台)
  • 新增 ChassisMode.msg - 底盘模式定义
  • 新增 GimbalState.msg - 云台状态数据
  • 修改 DataAI.msg - 综合控制指令(云台+底盘)

3. 视觉系统 ROS2 集成

  • 创建 GimbalROS 适配器,替代直接串口通信
  • 订阅 /data_mcu 获取云台状态
  • 发布 /vision/aim 输出云台控制指令
  • 修改所有视觉任务文件使用 ROS2 接口
  • 创建 rm_vision_bringup 包,支持标准 ROS2 启动

4. 视觉系统标准化

  • 添加 package.xml 使 rm_vision 成为标准 ROS2 包
  • 添加 install 规则,可执行文件和配置文件正确安装
  • 创建 sentry_vision.launch.py - Sentry 专用启动文件
  • 创建 calibration.launch.py - 统一标定工具启动
  • 支持参数化启动不同类型的视觉程序

5. 运动控制增强

  • rm_simple_move 订阅 /cmd_vel_move 输出底盘速度
  • 决策节点整合底盘速度到 /data_ai 消息

📊 数据流架构

MCU (下位机)
  ↕ 串口
Serial Driver
  ↓ /data_mcu, /data_ref, /gimbal/state
  ↓
Vision System ──→ /vision/aim ──→ Decision Node ←── /nav_status
                                        ↓              ↑
                                   /nav_goal      /cmd_vel_move
                                        ↓              ↑
                                   Simple Move ────────┘
                                        ↓
                                   Nav2 Stack

🚀 启动方式改进

之前(复杂):

cd build/mr_vision && ./standard_mpc configs/standard4.yaml

现在(标准化):

ros2 launch rm_vision_bringup sentry_vision.launch.py

🎯 Sentry 专用支持

  • 默认使用 sentry.yaml 配置
  • 专用启动文件 sentry_vision.launch.py
  • 完整的标定工具链支持

📝 文档更新

  • 完善 README.md添加完整的系统架构图
  • 添加详细的启动流程说明
  • 添加话题接口文档
  • 添加标定工具使用指南
  • 添加测试命令和调试技巧

🔧 技术改进

  • 所有模块统一使用 ROS2 标准接口
  • 消息类型明确分离(云台/底盘)
  • 决策节点作为唯一的控制指令输出点
  • 支持 50Hz 高频控制循环
  • 线程安全的数据访问mutex 保护)

📦 新增包

  • rm_decision - 决策节点
  • rm_vision_bringup - 视觉系统启动包

🐛 修复问题

  • 修复视觉系统 ROS2 类型支持库链接问题
  • 修复 capture.cpp 缺少 node 参数传递
  • 修复多个视觉任务文件缺少 ROS2 头文件
  • 修复 launch 文件可执行文件路径错误

📋 待完成

  • 一键启动脚本 full_system.launch.py
  • 完整的系统测试和验证
  • 性能优化和参数调优

使用说明

完整启动流程

# 1. 串口驱动
ros2 launch rm_serial_driver serial_driver.launch.py

# 2. 导航系统
ros2 launch rm_nav_bringup nav.launch.py

# 3. Sentry 视觉系统
ros2 launch rm_vision_bringup sentry_vision.launch.py

# 4. 决策节点
ros2 launch rm_decision decision.launch.py

标定工具

# 采集标定图像
ros2 launch rm_vision_bringup calibration.launch.py calibration_type:=capture

# 标定相机
ros2 launch rm_vision_bringup calibration.launch.py calibration_type:=calibrate_camera

# 手眼标定
ros2 launch rm_vision_bringup calibration.launch.py calibration_type:=calibrate_handeye

青岛理工大学 QUT MOVE 战队 | RoboMaster 2026