d93dab31c9
P3 把 handeye 相关文件从 src/arm_application/config/ 迁到了仓库根的 handeye/, 但文档还写着老路径。这类"代码改了、文档没跟"的偏差最麻烦:新人照着文档敲 命令会直接报文件不存在,然后开始怀疑人生。 同步内容 - docs/HANDEYE.md / WORKSPACE.md / SITE_CONFIG.md / ARCHITECTURE.md: 手眼结果与示教点位改指 handeye/results|poses/<臂号>_<模式>.yaml, 临时目录改指 handeye/tmp/<臂号>/,并补上 --mode / --points / --auto-solve。 - docs/INTERFACES.md / TRACKING.md / docs/HOLE_DETECT.md / README.md: 权重那一行从 export_yolo_trt.sh 改为 weights.sh,并注明前者已是兼容转发壳。 - docs/HOLE_DETECT.md:hole_weights / workpiece_weights 的实际取值改为 models/hole_insert/detect_best_1.onnx(原文档写的是不存在的 best.pt)。 - scripts/merge_handeye_poses.py:只更新文件头注释里的示例路径。 多处改为指向 models/README.md 与 handeye/README.md,避免同一套规则在 七八个文件里各写一遍、然后各自漂移。 验证:rg 扫 docs/ README.md,已无 handeye_poses_/handeye_result_/ /tmp/handeye 之类过期路径残留。 Co-authored-by: Cursor <cursoragent@cursor.com>
2.2 KiB
2.2 KiB
视觉伺服
启动
T1 bash ~/ros2/scripts/run_real.sh --arm 89 # 或 --arm 91
T2 bash ~/ros2/scripts/run_camera_d405.sh --arm 89 --preview
T3 bash ~/ros2/scripts/run_visual_servo_rt.sh --arm 89 # 只看框
bash ~/ros2/scripts/run_visual_servo_rt.sh --arm 89 --control # 动臂
三个终端必须带同一个 --arm。89 相机话题是 /d405_left/...,91 是 /d405_right/...,预览顶栏会写「左臂89 / 右臂91」。不要混用。
--control 从当前法兰位姿开节点,不再先抬 safe_z_m、也不回 home。
hover + ee_vertical_down:法兰(夹爪中心)XY 压在工件上,法兰轴线朝下。腕部相机有倾角,绿框不必对准画面十字。锁高在 robots[].servo.ee_z_m,89/91 分开。
数据流
D405 彩图+深度
→ perception_node(绿框中心 × 立体平面 Z;红点应在绿框里)
→ /visual_servo/filtered_point (相机系)
→ servo_node 100 Hz
hover: 法兰 XY → 工件 XY(基座)
锁高: 法兰 Z → ee_z_m
姿态: 法兰 +Z 朝世界 −Z
→ /rizon_arm_controller/joint_trajectory
绿框:相机回调立刻把最新帧丢给 GPU;画出的框会按像素速度补上推理延迟,所以应贴在当前工件上,而不是 YOLO 看到的旧位置。丢检时绿框只滑行几帧(不驱动 3D);预览 overlay_hold_sec 必须短,否则旧框会糊在新画面上。丢检空窗内伺服用基座系 KF 预测继续跟(眼在手上安全,不随臂动漂移),超过 stale_hold_sec 才钉住。
调参(site.yaml → servo / yolo)
| 目标 | 键 |
|---|---|
| 绿框跟手、少丢 | 略降 conf/min_conf;加大 jump_px、miss_clear_frames;重启 T3 |
| 绿框稳、少跳 | 略降 box_ema_alpha;重启 T3 |
| 臂跟手 | 加大 v_max_xy kp_xy |
| 臂丝滑 | 加大 a_max 会更快起步;减小 a_max / vel_lpf_alpha 更顺 |
| 轨迹预测 | predict_enable predict_sec;乱飞则减小 predict_sec 或关预测 |
| 画面中心对准 | xy_track: lookat |
| 换模型 | paths.yolo_weights + yolo.imgsz;模型布局与转换见 models/README.md |
改完重启 T3。