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