Commit Graph

13 Commits

Author SHA1 Message Date
2275fd2cf4 移除视觉部分,单独使用rm_vision 2026-03-07 23:32:55 +08:00
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
f82cbf86b2 fix: NAV 模式在收到目标时立即发送导航请求
问题: TF 查询失败导致 timer_callback 提前退出,publish_nav_goal() 未执行

修复: 将 NAV 模式的目标发送移到 nav_goal_callback 中
- 收到目标后立即发送 Action 请求,不依赖 TF
- 避免 TF 时间戳问题影响导航功能
- 测试成功:导航到 (4, -4) 完成

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-05 02:30:48 +08:00
6286274ff2 fix: 修复 TF 时间戳问题和 NAV 目标重复发送
问题:
1. TF 查询使用 TimePointZero 导致时间戳错误
2. NAV 模式每次 timer 都发送目标,应该只发送一次

修复:
- TF 查询添加超时参数 (0.5秒)
- 添加 nav_goal_sent_ 标志,NAV 模式只发送一次目标
- 使用 WARN_THROTTLE 限制 TF 错误日志频率

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-05 02:24:16 +08:00
ecadb68f55 fix: 使用 Action 接口与 Nav2 通信
问题: 之前使用话题发布目标,Nav2 无法响应
原因: Nav2 使用 Action 接口 /navigate_to_pose,不是简单话题

修复:
- 添加 rclcpp_action 和 nav2_msgs 依赖
- 使用 Action Client 发送导航目标
- NAV 模式现在可以正确触发导航系统

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-04 22:37:35 +08:00
ebdafcca7c fix: 修复 /current_pose 没有数据的问题
问题: 当没有收到目标点时,timer_callback 直接返回,不发布当前位置

修复:
- 始终发布当前位置到 /current_pose
- 只有在有目标点时才执行控制逻辑
- 改善了节点的可观测性

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-04 22:19:41 +08:00
58c4fc993e fix: 避免 PID 和 NAV 模式的 cmd_vel 冲突
改动:
- 统一输出到 /cmd_vel_move (底盘订阅此话题)
- PID 模式: 直接计算并发布到 /cmd_vel_move
- NAV 模式: 订阅导航的 /cmd_vel 并转发到 /cmd_vel_move
- 避免两种模式同时发布到 /cmd_vel 导致冲突

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-04 22:12:55 +08:00
298d700d81 更新sentry 2026-03-04 21:42:48 +08:00
12a9ec9011 fix protucal 2026-03-04 18:16:02 +08:00
b64dc0740f 整理 2026-03-04 17:54:59 +08:00
ea8fa41bd3 driver ok 2026-03-04 17:50:55 +08:00
1166d90bd5 docs: add project description to README 2026-02-10 03:37:59 +08:00
f4d47d4d51 Initial commit 2026-02-10 03:28:11 +08:00