b903161113
眼在手上改用该 TCP 做 AX=XB,再折回相机→法兰;A5 内角点改为 11×8,09-04 / 10-09 旧结果留在 backup。一阶段 D435 迁臂改成一条 FollowJointTrajectory(余弦加减速,近处降速,XY 进门槛后再单独收垂直),跟踪锁高与悬停齐平,避免倾斜相机下先降一截把孔位重投影偏掉。--no-descent 只降到离面 15 mm;跳过三阶段时触觉 USB 打不开不再空等几分钟。 Co-authored-by: Cursor <cursoragent@cursor.com>
73 lines
3.1 KiB
YAML
73 lines
3.1 KiB
YAML
# 手眼自动标定配置。
|
||
#
|
||
# 工作空间:~/ros2
|
||
#
|
||
# 先示教位姿,再求解(推荐用封装脚本):
|
||
# bash ~/ros2/scripts/run_handeye.sh teach
|
||
# bash ~/ros2/scripts/run_handeye.sh merge
|
||
# bash ~/ros2/scripts/run_handeye.sh calibrate
|
||
|
||
handeye_calibrate:
|
||
ros__parameters:
|
||
mode: "eye_in_hand"
|
||
|
||
# ⚠️ 站点相关值**故意不写在这里**(joint_prefix / output_dir / num_poses /
|
||
# waypoint_positions),它们由 run_handeye.sh 在运行时提供:
|
||
# joint_prefix ← 由 arms.yaml 按臂号解析,-p 传入
|
||
# output_dir ← 按"臂号 + 模式"算出的临时目录,-p 传入
|
||
# num_poses / waypoint_positions ← 来自 handeye/poses/<臂号>_<模式>.yaml
|
||
# (作为后一个 --params-file,会覆盖本文件)
|
||
# 它们此前在这里各留了一份副本,与 poses/ 里的实际数据并不一致
|
||
# (本文件是 2026-08-28 的 13 点,poses/89 是 2026-09-02 的 12 点),
|
||
# 只是恰好被覆盖顺序压住。留着就是给"改了脚本顺序 / 直连节点"埋雷:
|
||
# 会静默用上旧数据,而症状只是标定结果变差,很难联想到这份副本。
|
||
# 注:waypoint_positions 的节点默认值是全 0,所以**直连节点是跑不了的**,
|
||
# 必须经 run_handeye.sh(或自己传 --params-file)—— 这是有意为之。
|
||
#
|
||
# 设备ID 相关的东西同理,不写死在这里,见 config/site.yaml 与 arms.yaml。
|
||
|
||
joint_names: [joint1, joint2, joint3, joint4, joint5, joint6, joint7]
|
||
velocity_scale: 0.10
|
||
action_name: "follow_joint_trajectory"
|
||
move_time_sec: 4.0
|
||
start_index: 0
|
||
min_poses: 5
|
||
|
||
# 相机装在法兰上(eye-in-hand):D405
|
||
camera_source: "d405" # d405 | d435 | manual
|
||
camera_serial: ""
|
||
camera_namespace: ""
|
||
realsense_width: 1280
|
||
realsense_height: 720
|
||
image_topic: ""
|
||
camera_info_topic: ""
|
||
|
||
camera_fx: 0.0
|
||
camera_fy: 0.0
|
||
camera_cx: 0.0
|
||
camera_cy: 0.0
|
||
camera_dist: [0.0, 0.0, 0.0, 0.0, 0.0]
|
||
|
||
# 板尺寸的权威在 site.yaml → handeye.boards.<模式>。
|
||
# 这里只写眼在手上那块板的兜底(A5 / 11×8 / 15mm);run_handeye.sh 会按
|
||
# --mode 用 -p 覆盖成对应模式的值。没配过的模式会被脚本当场拦下,
|
||
# 不会静默用这份兜底去标另一块板。
|
||
board_cols: 11
|
||
board_rows: 8
|
||
square_size_m: 0.015
|
||
|
||
settle_sec: 0.4
|
||
stable_window: 8
|
||
stable_pixel_std: 0.45
|
||
stable_timeout_sec: 25.0
|
||
|
||
# 临时产物(采点图、taught_poses.txt、captures.json)落在 handeye/tmp/ 下。
|
||
# 注意 handeye/tmp/ 不进 git。
|
||
# output_dir 不写在这里:由 run_handeye.sh 按"臂号 + 模式"算出击(handeye/tmp/89 等)。
|
||
# 留一个共享的 output_dir 会让多条臂互相覆盖采点,症状是"标定结果突然变差"。
|
||
#
|
||
# 留空 = 由 run_handeye.sh 按"设备ID + 模式"给出路径,
|
||
# 即 handeye/results/<臂号>_<模式>.yaml(如 89_eye_in_hand.yaml)。
|
||
result_file: ""
|
||
cleanup_images: true
|