P3b:手眼标定支持 --mode 模式选择与 --points 目标点数
--mode eye_in_hand|eye_to_hand - 切换读写的文件为 <臂号>_<模式>.yaml,两种模式的采点与结果互不覆盖、可共存 - 臂号从 Flexiv 序列号后两位取(Rizon4-063989 → 89),不做硬编码映射 - 非法模式立即报错退出。不静默退回默认值 —— 那会造成"以为标的是 eye-to-hand、其实算的是 eye-in-hand",是这类工具最难排查的错误 - 求解侧本来就支持(calibrate_hand_eye(eye_to_hand=...) 对 gripper2base 求逆), 这次把入口补上,让模式不再只存在于参数文件里 --points N(仅 teach) - teach 新增 target_points 参数并实现计数:显示 [3/12] ... 还差 9 个点, 采够时提示可以收工 - 刻意不强制关窗:实际采点常出现"某个角度还没覆盖",强制退出要重开 usage 重写:路径改为 handeye/,补上全局选项与组合示例; usage() 的 sed 行号随之同步(原 2,18p 已不覆盖新头部)。 handeye/README.md 补第 5 节:模式切换与点数的完整用法, 并说明为什么非法模式要报错而不是兜底。 测试:224 passed
This commit is contained in:
@@ -160,6 +160,40 @@ bash ~/ros2/scripts/run_handeye.sh show --arm 89
|
||||
|
||||
两者共用同一份 `poses/*.yaml`,顺序是 `teach`(采)→ `merge`(存)→ `calibrate`(算)。
|
||||
|
||||
### 切换 eye-in-hand / eye-to-hand
|
||||
|
||||
```bash
|
||||
# 用腕部相机(默认)
|
||||
bash ~/ros2/scripts/run_handeye.sh --arm 89 teach
|
||||
|
||||
# 用固定相机
|
||||
bash ~/ros2/scripts/run_handeye.sh --arm 89 teach --mode eye_to_hand
|
||||
bash ~/ros2/scripts/run_handeye.sh --arm 89 merge --mode eye_to_hand
|
||||
bash ~/ros2/scripts/run_handeye.sh --arm 89 calibrate --mode eye_to_hand
|
||||
```
|
||||
|
||||
`--mode` 会把读写的文件切到 `<臂号>_<模式>.yaml`,所以:
|
||||
|
||||
- 两种模式**互不覆盖**,可以分别标定、共存
|
||||
- 跑完想切换使用,改 `config/site.yaml` 里 `robots[89].paths.handeye_file`
|
||||
指向对应那份即可,代码不用动
|
||||
|
||||
传了非法模式会立刻报错并退出(不会悄悄退回默认值 —— 那会导致"以为标的是
|
||||
eye-to-hand、其实算的是 eye-in-hand"这种最难查的错)。
|
||||
|
||||
### 设定采集点数
|
||||
|
||||
```bash
|
||||
bash ~/ros2/scripts/run_handeye.sh --arm 89 teach --points 12
|
||||
```
|
||||
|
||||
采点过程中会显示 `[3/12] ... 还差 9 个点`,采够时提示可以收工。
|
||||
**不会强制关窗** —— 常常采到一半发现某个角度还没覆盖,强制退出反而要重开;
|
||||
想多采就继续按 `Enter`,想结束按 `q`。
|
||||
|
||||
不加 `--points` 则不限数量(默认),建议 8~12 个点,至少 5 个。
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 6. 结果怎么被用起来
|
||||
|
||||
Reference in New Issue
Block a user