Files
Presa-Mano/config.yaml
T
AdrianoandClaude Opus 4.7 fb0e9b9112 feat(pose_3d): tag locator save, front-tag overlay, sidebar tabs, cloud params persist
- Sidebar a 3 tab verticali (POSE / CAMERAS / MISC) per ridurre lo scroll
- Tag locator: POST /api/pose_3d/tag_offset/{save,} salva crocetta nel
  viewport con snapshot giunti, current.json + archive rotation
- Front-camera tag overlay (MISC):
  - GET /api/pose_3d/front_tags scansiona ArUco sul D435i e per ogni tag
    misura i 4 corner 3D via depth sensor (indipendente da solvePnP);
    outlier rejection ±20% dalla mediana per ignorare corner che catturano
    background sul bordo del marker
  - Rendering quad cyan + label compatta (id, edge_mm, distanza camera)
    agganciato al d435_link, segue la camera anche in modalita' hand-eye
  - Trigger via pollState() quando il flag e' on, niente timer separato
- Cloud cross-camera: memorizza step/max_depth/sizes/scale_xy/flip/handeye
  in pose_3d.cloud_params al click di Acquisisci, ripopola UI da config
  al primo poll (state.cloud_params_populated guard)
- D435i front cloud: applica nuwa_to_cv_frame (il servizio ritorna native,
  non OpenCV come si pensava)
- Cache-bust per pose_3d.js e pose_3d.css

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-01 16:53:26 +02:00

185 lines
3.3 KiB
YAML

services:
nuwa:
base_url: http://localhost:8877
timeout_s: 5.0
api_key: null
marker_finder:
base_url: http://localhost:8082
timeout_s: 5.0
yolo:
base_url: http://localhost:8879
timeout_s: 10.0
g1:
base_url: http://localhost:8765
timeout_s: 5.0
write_timeout_s: 30.0
h1:
base_url: http://localhost:8767
timeout_s: 5.0
write_timeout_s: 30.0
sam21:
base_url: http://localhost:8002
timeout_s: 10.0
open3dmodel:
base_url: http://localhost:8878
timeout_s: 30.0
api_key_env: OPEN3D_API_KEY
max_stl_bytes: 20000000
front_camera:
base_url: http://192.168.123.99:8878
timeout_s: 5.0
aruco:
dictionary: DICT_4X4_50
wrist_marker:
id: 10
size_mm: 40.0
robot:
wrist_side: right
active: g1
tab_right_arm:
yolo_class: pestello
yolo_conf_front: 0.4
yolo_conf_wrist: 0.4
move_offset_camera_mm:
x: 100.0
y: 0.0
z: 100.0
axis_sign_cam_to_wrist:
x: 1
y: -1
z: -1
cam_to_wrist_perm:
- z
- x
- y
camera_offset_wrist_mm:
x: 0.0
y: 0.0
z: 100.0
cluster_depth_window_m: 0.2
verify_marker:
id: 1
size_mm: 40.0
max_step_m: 0.15
z_floor_m: null
home_pose:
position:
- 0.3
- -0.2
- 0.3
rpy_deg:
- 0
- 0
- 0
custom_pose:
position:
- 0.3
- -0.2
- 0.3
rpy_deg:
- 0
- 0
- 0
pose_3d:
live_max_step_m: 0.15
tag_offset:
save_dir: /home/harry/robot/logging/wrist-tag-offset
right_wrist_camera:
enabled: true
mesh_url: /static/assets/nuwa/nuwa-hp60c.stl
offset_m:
- 0.05
- 0
- 0.1
rpy_deg:
- 0
- -90
- -90
clouds:
nuwa:
use_nuwa_camera_transform: true
extra_offset_m:
- 0.0
- 0.0
- 0.0
extra_rpy_deg:
- 0
- 0
- 0
d435:
offset_m:
- -0.01
- 0.015
- -0.005
rpy_deg:
- -90
- 90
- 0
transform_pelvis_4x4:
- - 0.03273746934835532
- -0.9960477706629303
- -0.0825657111522212
- -0.00771413467718246
- - -0.7734929889294071
- 0.027067579810660346
- -0.633226612043623
- 0.37547513731967447
- - 0.6329588092267278
- 0.08459423550455474
- -0.7695498431821574
- 0.33337005199505626
- - 0.0
- 0.0
- 0.0
- 1.0
named_poses:
Base:
side: left
position:
- 0.2561414814483791
- 0.14648003458557432
- 0.10874469031742239
quaternion:
- -0.005339006082777725
- -0.047703617194205114
- -0.005110044879619669
- 0.9988341941293186
cloud_params:
step: 2
max_depth_mm: 1000
nuwa_size_mm: 5
d435_size_mm: 5
d435_scale_xy: 1
flip_nuwa:
- false
- false
- false
flip_d435:
- false
- false
- false
d435_use_handeye: false
grasp:
approach_offset_m: 0.1
pre_grasp_clearance_m: 0.05
max_object_width_m: 0.08
pointcloud_step: 1
pointcloud_max_depth_mm: 2000
use_sam21: true
visual_servo:
min_distance_m: 0.1
step_fraction: 0.5
wrist_marker_rvec:
- 0
- 0
- 0
find_model:
sample_points: 2000
min_fitness: 0.5
max_rmse_mm: 5.0
calibration:
min_samples: 5
method: DANIILIDIS
file: data/calibration.yaml
samples_file: data/samples.json