换台电脑克隆后启动失败,是因为 site 和启动脚本写死了 /home/cc/ros2。仓库内路径改成相对仓库根,加载时再展开;缺 install 时先说明要编译,而不是 source 一个不存在的文件。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+37
-29
@@ -10,8 +10,8 @@
|
||||
# 用法:复制本文件为 config/site.yaml,然后把所有 <占位符> 换成现场实际值。
|
||||
# 现场值包括:机械臂 SN / IP、相机序列号、夹爪串口、传感器 USB 路径。
|
||||
#
|
||||
# 说明:site.yaml 里的路径出现 /home/USER 是因为生成时匿名化了用户名;
|
||||
# 部署时请改成实际用户的 home 目录。
|
||||
# 说明:仓库里的文件用相对仓库根的路径(例如 models/yolo/...)。
|
||||
# 不要改回某个用户的绝对家目录,换台电脑就会找不到文件。
|
||||
# =============================================================================
|
||||
|
||||
# =============================================================================
|
||||
@@ -61,13 +61,15 @@ robot:
|
||||
# (status 里的 init=need_init 只说明"绝对位置标定没做",不影响夹持)
|
||||
# 想让开机必初始化(无人值守的上电流程)就显式改 true,并确认爪里是空的。
|
||||
auto_init: false
|
||||
named_poses_file: "/home/USER/ros2/src/arm_control/config/named_poses_89.yaml"
|
||||
named_poses_file: "src/arm_control/config/named_poses_89.yaml"
|
||||
paths:
|
||||
handeye_file: "/home/USER/ros2/handeye/results/89_eye_in_hand.yaml"
|
||||
handeye_waypoints: "/home/USER/ros2/handeye/poses/89_eye_in_hand.yaml"
|
||||
handeye_workdir: "/home/USER/ros2/handeye/tmp/89"
|
||||
handeye_file: "handeye/results/89_eye_in_hand.yaml"
|
||||
handeye_waypoints: "handeye/poses/89_eye_in_hand.yaml"
|
||||
handeye_workdir: "handeye/tmp/89"
|
||||
handeye:
|
||||
# Studio tcp_location(法兰系,米 + qwxyz)。与 rdk Tool.params 必须一致。
|
||||
# 眼在手上:AX=XB 的手是这份 TCP,再折成 cam→法兰写 T_4x4。
|
||||
# 眼在手外:AX=XB 的手同样是这份 TCP(板夹在工具上);T_4x4 仍是 cam→基座,不折。
|
||||
gripper_tool: "tool10120938"
|
||||
gripper_tcp_xyz: [-0.0005, 0.0067, 0.2245]
|
||||
gripper_tcp_qwxyz: [1.0, 0.0, 0.0, 0.0]
|
||||
@@ -177,7 +179,8 @@ robot:
|
||||
# 落在本文件下方注释记录的合理区间 0.204~0.233 内。
|
||||
# 复核:python3 scripts/sense_tool_length.py --sn Rizon4-XXXXXX
|
||||
# python3 scripts/lib/real_geometry_check.py --sn Rizon4-XXXXXX
|
||||
# 下臂安全距离按 tool10120938 的 TCP +Z,不再用旧 tool1 的 0.223。
|
||||
# 2026-10-12:下臂安全距离改按 Studio 工具 tool10120938 的 TCP +Z。
|
||||
# 上面 0.223 是旧 tool1(夹爪 TCP 0.147 + 规露出 0.076),这把工具不再用。
|
||||
tool_tip_below_flange_m: 0.2245
|
||||
# >>> 仿真那台臂(Gazebo)也登记成 robots[] 里的一台 <<<
|
||||
# 为什么必须登记:应用是按"当前臂"的名字去查 frame / joint / 相机话题的
|
||||
@@ -208,7 +211,7 @@ robot:
|
||||
# 为什么必须给文件而不能留空:visual_servo 的 servo_node 需要
|
||||
# T_flange_cam 矩阵做像素→笛卡尔换算;留空它就直接拒绝启动
|
||||
#("手眼标定结果缺失"),S04 跟踪起不来。
|
||||
handeye_file: "/home/USER/ros2/handeye/results/sim_eye_in_hand.yaml"
|
||||
handeye_file: "handeye/results/sim_eye_in_hand.yaml"
|
||||
# 运动参数:**大部分**与 89 共用(锚点),但**高度类**必须按仿真台的几何改写。
|
||||
#
|
||||
# 为什么不能直接共用:真机是"机械臂装在台面同一高度",所以"法兰相对基座"
|
||||
@@ -302,11 +305,11 @@ robot:
|
||||
port: "/dev/ttyUSB1"
|
||||
stroke_mm: 30.0
|
||||
auto_init: false
|
||||
named_poses_file: "/home/USER/ros2/src/arm_control/config/named_poses_91.yaml"
|
||||
named_poses_file: "src/arm_control/config/named_poses_91.yaml"
|
||||
paths:
|
||||
handeye_file: "/home/USER/ros2/handeye/results/91_eye_in_hand.yaml"
|
||||
handeye_waypoints: "/home/USER/ros2/handeye/poses/91_eye_in_hand.yaml"
|
||||
handeye_workdir: "/home/USER/ros2/handeye/tmp/91"
|
||||
handeye_file: "handeye/results/91_eye_in_hand.yaml"
|
||||
handeye_waypoints: "handeye/poses/91_eye_in_hand.yaml"
|
||||
handeye_workdir: "handeye/tmp/91"
|
||||
# >>> 右臂跟踪高度:只改这里,89 仍用上面那段 <<<
|
||||
# 法兰 Z;RGI 比平行爪高,通常要比 89 略抬一点。改完重启:
|
||||
# bash ~/ros2/scripts/run_visual_servo_rt.sh --arm 91 --control
|
||||
@@ -327,7 +330,7 @@ robot:
|
||||
|
||||
paths:
|
||||
# >>> YOLO 权重(标准放法,不必改代码)<<<
|
||||
# 1) 把 .onnx / .pt 放到 /home/USER/ros2/models/yolo/
|
||||
# 1) 把 .onnx / .pt 放到 models/yolo/
|
||||
# 2) 这一行改成那个绝对路径(写 .onnx 即可;TensorRT 会找同名 .engine)
|
||||
# 3) backend=tensorrt 时必须先导出引擎(只需做一次):
|
||||
# bash ~/ros2/scripts/weights.sh convert <源文件> --name <名字> --group yolo
|
||||
@@ -341,18 +344,18 @@ paths:
|
||||
# ultralytics 解不了 pose 的 TensorRT engine,运行时走
|
||||
# arm_application/pose_detector.py 的自解码(见该模块头)。
|
||||
# 仍然用 .engine(实测 ~2.6 ms/帧;onnx 只有 CPU provider,约 27 ms)。
|
||||
yolo_weights: "/home/USER/ros2/models/yolo/gongjian0929.onnx"
|
||||
yolo_weights: "models/yolo/gongjian0929.onnx"
|
||||
# 换模型:把 models/yolo/ 下别的 .onnx / .pt 绝对路径填进来即可。
|
||||
# 未在用的模型已移出仓库(体积大且干扰 `weights.sh list`),要恢复见 models/README.md。
|
||||
# 入孔模型(backend=yolo 时把孔当框)。two_stage 用下面的工件权重。
|
||||
# pose 模型两处共用同一份 —— 它既能框工件,又直接给 k1/k2 关键点。
|
||||
# 查悬空引用:bash ~/ros2/scripts/weights.sh doctor
|
||||
hole_weights: "/home/USER/ros2/models/yolo/gongjian0929.onnx"
|
||||
hole_weights: "models/yolo/gongjian0929.onnx"
|
||||
# 下面是缺省(未匹配到 robots[] 时)。真机以 robots[].paths 为准:89 / 91 各一份。
|
||||
handeye_file: "/home/USER/ros2/handeye/results/89_eye_in_hand.yaml"
|
||||
handeye_waypoints: "/home/USER/ros2/handeye/poses/89_eye_in_hand.yaml"
|
||||
handeye_calibrate: "/home/USER/ros2/handeye/calibrate.yaml"
|
||||
handeye_workdir: "/home/USER/ros2/handeye/tmp/89"
|
||||
handeye_file: "handeye/results/89_eye_in_hand.yaml"
|
||||
handeye_waypoints: "handeye/poses/89_eye_in_hand.yaml"
|
||||
handeye_calibrate: "handeye/calibrate.yaml"
|
||||
handeye_workdir: "handeye/tmp/89"
|
||||
# 空=默认 DDS(SHM);勿强制 UDP-only,否则相机预览收不到 /workpiece/detection
|
||||
fastdds_profile: ""
|
||||
|
||||
@@ -593,6 +596,7 @@ servo:
|
||||
# 混合模式必填。交回 D405 的等待不再用它,见 d435_handback_sec。
|
||||
lock_still_sec: 3.0
|
||||
# 进程内 MoveL 到位后,法兰 XY 连续停稳这么久才交回 D405。
|
||||
# 旧 3s 是杀栈冷启动的垫时间;不杀栈后只留机械停稳。晃了把数加大,不许再杀栈。
|
||||
d435_handback_sec: 0.5
|
||||
# 框心对准并且法兰停稳这么久,才精拍一次小孔关键点、进对孔。实时点到此为止。
|
||||
wrist_align_sec: 0.5
|
||||
@@ -675,10 +679,10 @@ gripper:
|
||||
hole_detect:
|
||||
backend: "two_stage" # two_stage | yolo | hough
|
||||
# backend=yolo 时用。
|
||||
weights: "/home/USER/ros2/models/yolo/gongjian0929.onnx"
|
||||
weights: "models/yolo/gongjian0929.onnx"
|
||||
# 二阶段工件检测权重。pose 模型既框工件、又直接给 k1/k2 关键点,
|
||||
# 所以和上面的跟踪权重是同一份。
|
||||
workpiece_weights: "/home/USER/ros2/models/yolo/gongjian0929.onnx"
|
||||
workpiece_weights: "models/yolo/gongjian0929.onnx"
|
||||
# pose 关键点优先:检测器给了 k1/k2 就直接用,不用再找圆。
|
||||
# 关键点不可信(低于 keypoint_min_conf / 两点几乎重合)时自动回落到
|
||||
# 亮环 + Hough 那套老路径。
|
||||
@@ -686,7 +690,7 @@ hole_detect:
|
||||
keypoint_min_conf: 0.30
|
||||
keypoint_min_dist_px: 15.0
|
||||
keypoint_hole_radius_px: 12.0 # 关键点没有半径;反投影时按这个半径取孔周深度环
|
||||
config: "/home/USER/ros2/src/arm_application/config/hole_detect.yaml"
|
||||
config: "src/arm_application/config/hole_detect.yaml"
|
||||
conf: 0.25
|
||||
iou: 0.7
|
||||
imgsz: 640
|
||||
@@ -769,17 +773,21 @@ hole_detect:
|
||||
# —— 柔顺运动(夹爪持规,防急加速/急停/过冲把规震脱):速度放慢 + 平滑刹车 ——
|
||||
align_speed: 0.014 # 对准段笛卡尔速度 [m/s](原0.03,放缓防冲)
|
||||
move_speed: 0.022 # 升降/粗居中段速度 [m/s](原0.05,放缓防震规)
|
||||
# 对小孔关键点:只用像素射线交到 workpiece_surface_z_m,不读深度图。
|
||||
hole_visual_only: true
|
||||
# 本分支实验:true=悬停拍一次并走完到孔;main 保存点应保持 false。
|
||||
# 本分支实验(exp/hole-keypoint-once):true=悬停拍一次,框心→k1 一次走完
|
||||
# (40mm 上限)。main 保存点是 false(多走多拍)。
|
||||
hole_keypoint_once: true
|
||||
# true=悬停走完后一条厂家 MoveL 贴面。对照观察高补交时改 false。
|
||||
# true=悬停走完后一条厂家 MoveL 贴面(不补拍)。对照 37b85aa 改回 false。
|
||||
hole_once_lock_xy_descend: true
|
||||
# 0=笛卡尔锁 XY 只降 Z。k>0 才沿 -look 加前馈。
|
||||
# 贴面相对悬停:沿 -look 走 k×剩余下降 [m/m]。0=笛卡尔锁 XY 只降 Z。
|
||||
# 0.018 在框心改平面交点后两条链路都 +1.3mm X 过补,插不进。
|
||||
once_ff_look_per_m: 0.0
|
||||
final_gap_mm: 2.0 # 对准后贴面目标:规尖离面 [mm]。CLI --final-gap 覆盖。
|
||||
final_gap_mm: 2.0 # 对准后贴面目标:规尖离面 [mm](不接触)。笛卡尔锁 XY
|
||||
# 时法兰 Z = 工具长 + 工件面 + 本值。CLI --final-gap 覆盖。
|
||||
observe_gap_mm: 15.0 # --no-descent 时的观测下降:只降到离面这么高 [mm],
|
||||
# 方便看规尖偏没偏。必须 ≥ final_gap_mm。
|
||||
# 左臂89:悬停间隙约 75mm(0.320−0.223−0.022)⇒ 大约下降 60mm。
|
||||
# 左臂89:悬停间隙约 73.5mm(0.320−0.2245−0.022)⇒ 观测下降约 58mm。
|
||||
final_descent_speed: 0.005 # 最后轻降速度 [m/s](很慢,柔顺)
|
||||
# ✅ 2026-10-08 定稿:下降量**只由几何决定**(法兰 FK − 工具长 − 工件面 − final_gap),
|
||||
# 深度读数只做交叉核对、不再参与任何决策。两段真机事故方向相反、都指向这条:
|
||||
@@ -792,7 +800,7 @@ hole_detect:
|
||||
# ⇒ 读数往**小**错一次就永远到不了目标。
|
||||
# 同一套读数两个方向各错一次、幅度 150mm 量级、随位姿乱跳 —— 它对"能降多少"
|
||||
# 和"该不该停"都没有发言权。现在它只在偏差 >10mm 时喊一句"深度测距与几何不符"。
|
||||
# 现行几何:悬停 0.320 − 工具长 0.223 − 工件面 0.022 = 75mm 间隙 ⇒ 降 73mm 到 2mm。
|
||||
# 现行几何:悬停 0.320 − 工具长 0.2245 − 工件面 0.022 = 73.5mm 间隙 ⇒ 降 71.5mm 到 2mm。
|
||||
# 三道**物理/几何**保险:descent_budget_m(配置上限)+ 腕部 FT 接触检测(停+退 1mm)
|
||||
# + 任一步 _goto 走不到位就停。
|
||||
# 缺几何(工具长/工件面没配)时**拒绝下降**并报错(保持悬停),绝不拿测距去赌。
|
||||
@@ -1093,7 +1101,7 @@ tactile:
|
||||
# 传感器型号。必须与 devices/sensors/orisys/models/ 下的子目录名一致。
|
||||
model: "dd03"
|
||||
# 型号配置随 SDK 一起放:devices/sensors/orisys/models/<型号>/config.json
|
||||
config_file: "/home/USER/ros2/devices/sensors/orisys/models/dd03/config.json"
|
||||
config_file: "devices/sensors/orisys/models/dd03/config.json"
|
||||
# 用 by-path 稳定路径(插哪个 USB 口就认哪个口,不受 video 编号漂移影响)。
|
||||
# 当前:3.4.1=左指 3.4.2=右指;若左右反了,互换两行即可。
|
||||
left_video: "/dev/v4l/by-path/pci-0000:00:14.0-usb-0:X.Y.Z:1.0-video-index0"
|
||||
|
||||
Reference in New Issue
Block a user