6edb8d39ab
在开始'设备契约层 + 目录重构 + 通止规装配'改造之前,先钉住当前可运行状态, 使后续任何删除/重构都可回退。 本基线包含: - 现有 ROS 2 工作区全部源码(arm_application / arm_control / arm_bringup 等) - 官方 flexiv_ros2 栈(含 flexiv_hardware / flexiv_controllers 等符号链接) - 设备契约层 src/arm_interfaces(新增,46 项单测通过) - devices/ 设备选型与品牌清单(新增) - scripts/gen_site_example.py 与由它生成的 config/site.example.yaml 按 .gitignore 排除:build/ / install/ / log/ / config/site.yaml / 模型权重二进制。
3.4 KiB
3.4 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_result_89.yaml |
PGEA /dev/ttyUSB0 |
| 右 91 | Rizon4-063991 | 192.168.2.100 | handeye_result_91.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 |
该臂手眼结果,禁止混用 |
paths.yolo_weights |
.onnx 或 .pt;backend: tensorrt 时必须有同名 .engine |
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。