Initial import of ORISYS arm workstation

This commit is contained in:
cheng
2026-10-16 17:27:30 +08:00
commit 2b74c50ba8
745 changed files with 1199101 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
# config/
| 文件 | git | 说明 |
|------|-----|------|
| `site.example.yaml` | 提交 | 模板。克隆后复制为 `site.yaml` |
| `site.yaml` | 不提交 | 本机 SN、IP、相机、锁高、权重路径 |
| `fastdds_visual_servo.xml` | 提交 | 可选 DDS;默认 `site.yaml` 里 `fastdds_profile: ""` |
改跟踪 / 手眼 / 相机:**只改 `site.yaml`**。字段说明见 [docs/SITE_CONFIG.md](../docs/SITE_CONFIG.md)。
Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

+84
View File
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
visual-servo 硬实时路径用的 FastDDS 配置(Ubuntu 22.04 / Humble 默认 RMW)。
用法:
export FASTRTPS_DEFAULT_PROFILES_FILE=~/ros2/config/fastdds_visual_servo.xml
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
目标:
- 低延迟的控制话题优先使用 UDP 单播
- 缩短发现 / 参与者租约,避免后加入的节点把 100 Hz 卡住
- 保持较浅的历史队列,让订阅者永远不必去追积压的旧数据
-->
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
<transport_descriptors>
<transport_descriptor>
<transport_id>udp_transport</transport_id>
<type>UDPv4</type>
<!-- 避免繁重的感知与伺服之间因共享内存积压而卡顿 -->
<maxMessageSize>65500</maxMessageSize>
</transport_descriptor>
</transport_descriptors>
<participant profile_name="visual_servo_participant" is_default_profile="true">
<rtps>
<userTransports>
<transport_id>udp_transport</transport_id>
</userTransports>
<useBuiltinTransports>false</useBuiltinTransports>
<builtin>
<discovery_config>
<!-- 加快发现;缩短租约,让已经死掉的节点尽快被剔除 -->
<leaseDuration>
<sec>10</sec>
<nanosec>0</nanosec>
</leaseDuration>
<leaseAnnouncement>
<sec>3</sec>
<nanosec>0</nanosec>
</leaseAnnouncement>
<initialAnnouncements>
<count>5</count>
<period>
<sec>0</sec>
<nanosec>100000000</nanosec>
</period>
</initialAnnouncements>
</discovery_config>
</builtin>
</rtps>
</participant>
<!-- 感知图像话题:BEST_EFFORT + KEEP_LAST(丢弃旧帧) -->
<data_reader profile_name="sensor_best_effort">
<qos>
<reliability>
<kind>BEST_EFFORT</kind>
</reliability>
<history>
<kind>KEEP_LAST</kind>
<depth>5</depth>
</history>
<durability>
<kind>VOLATILE</kind>
</durability>
</qos>
</data_reader>
<!-- /visual_servo/cmd_vel:永远只保留最新的 Twist -->
<data_writer profile_name="cmd_vel_latest">
<qos>
<reliability>
<kind>RELIABLE</kind>
</reliability>
<history>
<kind>KEEP_LAST</kind>
<depth>1</depth>
</history>
<durability>
<kind>VOLATILE</kind>
</durability>
</qos>
</data_writer>
</profiles>
+120
View File
@@ -0,0 +1,120 @@
# 左臂 89 当前生效的参数。从旧仓库 config/site.yaml 抽出,去掉注释。
# 节点代码还在读旧的 site.yaml,这一份还没接上。
robot:
sn: "Rizon4-063989"
ip: "192.168.2.101"
pc_ip: "192.168.2.50"
iface: "enp4s0"
tool_name: "tool10120938"
tcp_xyz_m: [-0.0005, 0.0067, 0.2245]
tcp_qwxyz: [1.0, 0.0, 0.0, 0.0]
workpiece_surface_z_m: 0.022
handeye_file: "handeye/results/89_eye_in_hand.yaml"
ft_wrench_topic: "/Rizon4_063989/external_wrench_in_tcp"
camera:
wrist_name: "d405_left"
wrist_serial: "352122274408"
wrist_ae_limit_us: 4000
wrist_emitter: false
overhead_width: 848
overhead_height: 480
overhead_fps: 15
overhead_ae_limit_us: 8000
yolo:
weights: "models/yolo/gongjian0929.onnx"
backend: "onnx"
conf: 0.10
iou: 0.45
imgsz: 640
device: "0"
half_precision: true
min_conf: 0.12
reacquire_conf: 0.55
vision_hz: 30.0
feature_mode: "keypoint"
keypoint_index: 0
keypoint_min_conf: 0.30
keypoint_border_px: 6
track_max_step_m: 0.04
reacquire_far_px: 120
reacquire_confirm_frames: 3
jump_px: 400.0
jump_z_m: 0.10
z_ref_m: 0.22
min_depth_m: 0.04
max_depth_m: 0.55
feature_min_range_m: 0.14
meas_blend: 0.85
camera_frame: "d405_color_optical_frame"
servo:
control_hz: 100.0
ee_z_m: 0.320
hole_hover_z_m: 0.320
min_ee_z_m: 0.20
safe_z_m: 0.45
z_min_m: 0.22
xy_track: "hover"
ee_vertical_down: true
kp_xy: 4.20
kd_xy: 0.20
kp_z: 0.80
kd_z: 0.35
deadzone_m: 0.003
v_max_xy: 0.45
v_max_z: 0.04
slow_far_m: 0.05
v_slow_xy: 0.08
a_max: 3.00
workspace_xyz_min: [0.08, -0.55, 0.18]
workspace_xyz_max: [0.85, 0.55, 0.65]
wrist_align_sec: 0.5
d435_handback_sec: 0.5
jump_confirm_frames: 3
traj_topic: "rizon_arm_controller/joint_trajectory"
point_topic: "visual_servo/filtered_point"
hole:
backend: "two_stage"
conf: 0.25
iou: 0.7
imgsz: 640
target_hole: "k1"
align_tol_m: 0.00025
align_max_iters: 12
final_gap_mm: 2.0
observe_gap_mm: 15.0
hough_param2: 26
hough_min_radius: 6
hough_max_radius: 30
expected_holes: 2
perception:
source: "yolo"
track_camera: "wrist"
wrist_handoff_conf: 0.5
overhead_min_depth_m: 0.25
overhead_max_depth_m: 1.80
overhead_oneshot_conf: 0.5
overhead_cooldown_s: 1.5
gripper:
port: "/dev/ttyUSB0"
baud: 115200
slave_id: 1
stroke_mm: 20.0
force_pct: 20
speed_pct: 50
auto_init: false
tactile:
model: "dd03"
left_video: "/dev/v4l/by-path/pci-0000:00:14.0-usb-0:3.4.1:1.0-video-index0"
right_video: "/dev/v4l/by-path/pci-0000:00:14.0-usb-0:3.4.2:1.0-video-index0"
baseline_seconds: 2.0
filter_alpha: 0.25
target_fps: 30.0
publish_hz: 20.0
File diff suppressed because it is too large Load Diff
+1146
View File
File diff suppressed because it is too large Load Diff