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>
3.5 KiB
3.5 KiB
site.yaml
路径:~/ros2/config/site.yaml(从 config/site.example.yaml 复制,不进 git)。
目录总表:WORKSPACE.md。查看解析:bash ~/ros2/scripts/show_site_config.sh
改完后重启对应进程才会进节点(夹爪 CLI 每次重读)。
三台相机
| 相机 | 序列号 | 位置 | 脚本 |
|---|---|---|---|
| 左腕 D405 | 352122274408 |
89 平行夹爪 | run_camera_d405.sh --arm 89 |
| 右腕 D405 | 260522274442 |
91 旋转夹爪(新,易过曝) | run_camera_d405.sh --arm 91 |
| 中间 D435 | 262522073161 |
双臂之间手外 | run_camera_d435.sh --preview |
列出:bash ~/ros2/scripts/list_realsense.sh
右腕过曝:robots[] 里 ae_limit_us: 1500 且关投射器。仍亮则把该臂 auto_exposure: false 并设 exposure_us: 800。
双臂(89 / 91)
89 和 91 各有一份 手眼、腕部相机序列号、夹爪串口、named poses。
robot.robots[] 里写该臂覆盖项;run_*.sh --arm 89|91 会合并进去。
| 臂 | SN | IP | 手眼 | 夹爪 |
|---|---|---|---|---|
| 左 89 | Rizon4-063989 | 192.168.2.101 | handeye/results/89_eye_in_hand.yaml |
PGEA /dev/ttyUSB0 |
| 右 91 | Rizon4-063991 | 192.168.2.100 | handeye/results/91_eye_in_hand.yaml |
RGI /dev/ttyUSB1 |
bash ~/ros2/scripts/run_real.sh --arm 89
bash ~/ros2/scripts/run_camera_d405.sh --arm 89 --preview
bash ~/ros2/scripts/run_visual_servo_rt.sh --arm 89 --control
bash ~/ros2/scripts/run_handeye.sh --arm 91 teach # 91 必须单独标定
每个终端都要带同一 --arm,或改 robot.sn。不要把 89 的 T_4x4 拷到 91。
棋盘尺寸仍是全局 handeye.board_*(两臂共用同一块板)。
谁读哪些段
| 段 | 读者 |
|---|---|
robot network |
run_real.sh、RDK 工具切换 |
camera |
run_camera_d405.sh;overlay_hold_sec 运行中会跟文件 |
paths yolo servo |
visual_servo.launch.py |
handeye paths.handeye_* |
run_handeye.sh |
gripper |
run_gripper.sh / dh_pgea / dual_gripper |
hole_detect |
run_hole_detect.sh(算法参数也在这一段) |
tactile |
run_tactile.sh |
go_home |
go_home.sh |
常改项
| 键 | 含义 |
|---|---|
robot.sn / --arm |
当前臂。可被 run_real.sh --arm 91 覆盖 |
robot.robots[].camera.serial |
该臂腕部 D405。91 必须单独填写 |
robot.robots[].paths.handeye_file |
该臂手眼结果(handeye/results/<臂号>_<模式>.yaml),禁止混用 |
paths.yolo_weights |
写 .onnx 或 .pt;backend: tensorrt 时须有同名 .engine(见 models/README.md) |
yolo.imgsz |
必须等于模型输入边长 |
yolo.backend |
tensorrt / onnx / auto |
camera.serial width height fps |
D405 流。改分辨率要重启相机 |
servo.ee_z_m |
法兰锁高 [m];写在 robots[].servo,89/91 分开 |
servo.xy_track |
hover(法兰/爪心正对工件)或 lookat |
camera.name |
d405_left / d405_right,话题与预览按臂分开 |
servo.v_max_xy kp_xy a_max |
跟踪快慢 |
gripper.force_pct open_position close_position |
左臂 PGEA 力与开度 |
robots[].gripper.port model |
该臂串口与型号(91 为 RGI) |
hole_detect.backend hough_* conf |
入孔检测 |
tactile.left_video right_video config |
Orisys 左右指设备与 dd03 |
路径写成绝对路径。换机器改 USER 和 SN,不要改 Python。