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

143 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 更新日志
## 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
```
### 🚀 启动方式改进
**之前(复杂):**
```bash
cd build/mr_vision && ./standard_mpc configs/standard4.yaml
```
**现在(标准化):**
```bash
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`
- ⏳ 完整的系统测试和验证
- ⏳ 性能优化和参数调优
---
## 使用说明
### 完整启动流程
```bash
# 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
```
### 标定工具
```bash
# 采集标定图像
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