## 核心更新 ### 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>
143 lines
4.1 KiB
Markdown
143 lines
4.1 KiB
Markdown
# 更新日志
|
||
|
||
## 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
|