五一演示版冲刺计划¶
目标:2026-05-01 前交付全流程可交互演示版本 可以只针对 4–6 种器械和若干指令,但流程必须端到端跑通。 策略:用定制支架槽位替代堆叠器械盘,大幅降低识别难度,快速建立可演示的闭环。
核心策略:槽位支架方案¶
原问题¶
MVP 解法¶
三重简化叠加效果:
| 维度 | 原方案 | 槽位方案 |
|---|---|---|
| 检测范围 | 全图搜索 | 已知 ROI,裁剪后识别 |
| 目标状态 | 随意堆叠,有遮挡 | 固定朝向,单件无遮挡 |
| 位置精度 | 完全依赖视觉 | 视觉 + 槽位先验兜底 |
| 置信度预期 | 经常 < 0.7 | 稳定 > 0.9 |
六周冲刺时间表¶
Week 1 2026-03-16 ~ 03-22
✅ core/ 骨架代码(config / interfaces / safety_manager / logger)
✅ 雄安测试问题归因完成
□ position_registry.py 数据结构设计
□ keyword_matcher.py 关键词→器械 映射
Week 2 03-23 ~ 03-29 【硬件对接周】
□ hardware/dobot_arm.py TCP 连接 + 基本运动封装
□ hardware/gripper.py 夹爪 Modbus 封装 + 运行时参数注入
□ 上机标定各槽位名义坐标,写入 registry.json
□ safety_manager 工作空间边界校验上线
Week 3 03-30 ~ 04-05 【感知 + NLP 周】
□ slot_detector.py ROI 裁剪 → YOLO 推理 → 夹取点修正
□ Z 轴高度补偿(托盘平面标定)
□ ASR 切换本地 FunASR(≤1s 延迟目标)
□ keyword_matcher 联调测试
Week 4 04-06 ~ 04-12 【状态机集成周】
□ core/state_machine.py 完整状态机串联
□ 决策层:rule_planner.py(纯规则,无 VLA)
□ 全流程第一次端到端跑通(允许有 bug)
Week 5 04-13 ~ 04-19 【联调稳定周】
□ 4 种器械 × 3 条指令完整场景测试
□ 夹取成功率 ≥ 85% 目标
□ 异常处理:低置信度提示、急停、力反馈释放
Week 6 04-20 ~ 04-30 【演示准备周】
□ 演示脚本定稿(器械配置一次即可用)
□ 参数配置界面(速度 / Z偏移 / 夹持力,不改代码)
□ 压力测试 + 边界情况修复
□ 文档 & 演示视频录制
MVP 系统架构(简化版)¶
graph LR
MIC[🎙️ 麦克风] --> ASR[本地 ASR\nFunASR]
ASR --> NLP[关键词匹配\nkeyword_matcher]
NLP -->|instrument_id| REG[槽位注册表\nposition_registry]
REG -->|ROI + 名义坐标| DET[ROI 内 YOLO\nslot_detector]
DET -->|GraspTarget| SAFE[安全校验\nsafety_manager]
SAFE --> ARM[Dobot 机械臂\ndobot_arm.py]
ARM --> GRIP[夹爪\ngripper.py]
GRIP -->|力反馈| DOC[👨⚕️ 医生]
代码目录规划¶
surgbot/
├── core/
│ ├── config.py ✅ 全局配置(速度/阈值/路径,外置不改代码)
│ ├── interfaces.py ✅ GraspTarget / InstrumentCommand 数据类
│ ├── safety_manager.py ✅ 工作空间边界校验 + 急停
│ └── logger.py ✅ 结构化日志
│
├── hardware/
│ ├── dobot_arm.py □ Dobot TCP 封装(Dashboard 29999 + 反馈 30005)
│ └── gripper.py □ Modbus RTU 夹爪封装 + 4 器械力度预设
│
├── modules/
│ ├── perception/
│ │ ├── position_registry.py □ 槽位注册表 JSON 读写
│ │ └── slot_detector.py □ ROI 裁剪 + YOLO + 夹取点修正
│ ├── nlp/
│ │ ├── asr_local.py □ FunASR 本地语音识别
│ │ └── keyword_matcher.py □ 关键词 → instrument_id
│ └── decision/
│ └── rule_planner.py □ 纯规则动作规划(不用 VLA)
│
├── core/
│ └── state_machine.py □ 完整状态机串联
│
├── data/
│ └── instrument_registry.json □ 槽位配置(上机标定后填写)
│
└── main.py □ 入口
图例:✅ 已完成 □ 待开发
槽位注册表格式(草案)¶
{
"slots": {
"slot_01": {
"instrument_id": "INS-031",
"name": "持针器_大",
"aliases": ["持针器", "大持针器", "needle holder"],
"grasp_point_nominal": [120.5, -30.2, 180.0],
"grasp_orientation_deg": 45.0,
"delivery_mode": "handle_to_doctor",
"gripper_preset": 3,
"roi_image": [120, 80, 320, 280],
"camera_id": 0
},
"slot_02": {
"instrument_id": "INS-007",
"name": "剪刀",
"aliases": ["剪刀", "scissors"],
"grasp_point_nominal": [200.0, -30.2, 180.0],
"grasp_orientation_deg": 0.0,
"delivery_mode": "handle_to_doctor",
"gripper_preset": 2,
"roi_image": [330, 80, 530, 280],
"camera_id": 0
}
},
"calibration": {
"z_plane_offset_mm": 0.0,
"hand_eye_matrix": "data/hand_eye_latest.npy"
}
}
配置一次即可复用:支架位置固定后,
grasp_point_nominal只需标定一次。 更换器械种类只需更新name/aliases/gripper_preset三个字段。
MVP 范围边界¶
五一版本包含:
- 4–6 种器械,每种对应一个槽位
- 语音指令:「递 XX」「把 XX 给我」「要 XX」
- 完整执行:抓取 → 递送 → 力反馈释放 → 回到待机姿态
- 参数配置文件(不改代码)
- 基本安全校验(工作空间边界)
五一版本不包含(后续迭代):
- OpenVLA / VLA 决策模型
- 二维码扫描验证
- 多托盘 / 多摄像头切换
- Isaac Sim 仿真对接
- 器械归位回收